컴퓨터 비전을 위한 신경망
매우 높은 차원의 입력 (4k)
픽셀의 2d / 3d topology
변동에 대한 불변성
합성곱 신경망 (Convolutional Neural Network, CNN)
Local connectivity
Parameter sharing
Pooling / subsampling
Convolutional Neural Network
데이터 처리를 위한 특별한 종류의 신경망
grid-like topology (격자형태에 특화된)
e.g., 1D time-series data (data가 시간에 따라 바뀌는) / 2D image data / 3D video data
실제 응용 분야에서 엄청난 성공을 거두었다.
Operation
Convolution
Pooling
Convolution (합성곱)
예시: 레이저 스펜서로 우주선의 위치를 추적한다.
레이저 출력: x(t), 시간 t에서 우주선의 위치.
레이저가 다소 nosiy 하다고 가정
여러 측정값을 함께 평균화한다.
weighting function w(a), a는 측정기간이다.
CNN 용어로
첫 번째 인수 (x)는 입력(input)이다.
두 번째 인수 (w)는 커널이다.
output은 feature map이다.
일반적으로 컴퓨터의 데이터는 시간이 이산화된다.
머신러닝 응용 프로그램에서, 입력은 일반적으로 데이터의 다차원 배열이고 커널은 일반적으로 매개변수의 다차원 배열이다.
e.g., 2D image input, 2D kernel
컨볼루션 연산은 filpped 커널을 사용하여 교환 속성을 얻는다.
대신 많은 신경망 라이브러리는 교차 상관 (cross-correlation) 이라는 관련 함수를 구현한다.
컨볼루션과 동일하지만 커널을 뒤집지 않음
많은 머신 러닝 라이브러리는 상호 상관 (cross-correlation) 을 구현하지만 이를 컨볼루션이라고 한다.
수제 필터 (Hand-crafted filter)
Sobel filter
컨볼루션은 머신러닝 시스템을 개선하는 데 도움이 될 수 있는 세 가지 중요한 아이디어를 활용한다.
Sparse interactions
Parameter sharing
Equivariant representations
Sparse Interactions
Sparse connectivity or sparse weights
Local connectivity
각 출력 값은 작은 입력에만 의존한다.
mn >> kn
→ 다 보는게 아니라 connection을 끊어서 weight 계산을 줄인다. (sparse ↔ dense)
파라미터 공유 (parameter sharing)
모델에서 둘 이상의 feature에 대해 동일한 매개변수를 사용한다.
CNN에서 커널의 각 구성원은 출력의 모든 위치에서 사용된다.
이미지의 한 부분에서 유용한 특징 검출기
파라미터 수 줄이기
등가 표현 (equivalent representation)
등가 (equivalent): 입력이 변경되면 출력도 같은 방식으로 변경된다.
시계열 데이터 처리
이미지 edge 검출기
convolutional layer가 mlp보다 어떤 점이 좋은가?
합성곱 걔층과 MLP 간의 주요 차이점은 합성곱 계층은 주로 이미지와 같은 그리드 형태의 데이터 처리에 탁월하고, MLP는 벡터 형태의 데이터 처리에 주요 사용된다.
합성곱 계층은 합성곱 필터를 사용하여 여러 위치에서 동일한 가중치를 공유하며, 이로 인해 모델의 크기와 요구되는 과적합 가능성을 감소시킨다.
합성곱 계층은 공유 가중치와 희소연결 (sparse connectivity) 덕분에 더 적은 매개변수를 가지고 이미지의 특징을 더 효과적으로 학습할 수 있다. 따라서 낮은 리소스 및 용량으로 높은 성능을 달성할 수 있다.
stride(보폭): 이미지 또는 비디오에 대한 움직임의 양을 수정하는 신경망 필터의 매개변수
볼륨이 공간적으로 축소됨 (32 → 28 → 24)
빠른 수축은 좋지 않다.
32 x 32 x 3 image → 3072 x 1 로 늘이기
신경망의 전형적인 layer
다양한 크기의 입력을 처리하는데 필수적이다.
→ 데이터 특성 보존 & 차원 축소
종종 FC 계층의 과적합을 줄이기 위해 드롭아웃을 사용한다.
분류, 회귀 등 고도의 추론
종종 softmax 기능이 내장됨
더 이상 공간적으로 위치하지 않음 → FC 계층 이후에 가능한 컨볼루션 레이어 없음
CNN 아키텍쳐에서 매개변수의 대부분을 설명할 수 있다.
Layer 1 → Layer l
input 사이즈 감소
필터 개수 증가
수용 필드 (receptive field): 특정 CNN의 기능이 영향을 받는 입력 공간의 영역이다.
팽창률 (dilation rate) 사용
e.g., dilation rate = 2 → 2칸 건너뛰어서 convolution
33 필터이지만 55 수용 필드 (9개 매개변수 사용)
여러 매개 변수를 사용하여 더 넓은 field.
segmentation (분할)
1*1 convolution
깊이(depth) 조절에 사용
너비, 높이 유지 (공간 크기)
깊이 유지 / 증가 / 감소 하기 위해 사용
공간적으로 분리 가능한 컨볼루션
컨볼루션을 두 개의 개별 작업으로 분해한다.
e.g., 2D kernel → two 1D kernel (decompose)
2D = 1D x 1D로 분해 가능 → 연산횟수가 줄어듬
계산 비용 감소
parameters
operations
딥러닝에서 잘 쓰이지 않는다.
두 단계
depthwise convolution
1*1 convolution
계산 비용이 상당히 줄어든다.
컨볼루션 반대 방향
다운샘플링(downsampling: conv + pooling): project 기능은 더 낮은 희미한 공간에 매핑된다.
업샘플링(upsampling): project 기능은 높은 희미한 공간에 매핑된다.
Unpooling (규칙 기반 업샘플링 업풀링)
Nearest Neighbor Unpooling
Bed of Nails
Max Unpooling
전치 합성곱 (transpose convolution) : Learnable convolution
deconvolution을 언급하지 않음
업샘플링(더 작은 map에서 더 큰 map으로)