Deep Learning
딥러닝 등장
특징 학습의 부각
Hand-crafted feature
- 기계 학습의 적용 범위가 분류나 회귀라는 작업에 제한됨
- 특징 추출은 기계 학습과 별개로 구현한 후에 결합하여 사용
End-to-end learning
- 깊은 신경망에서는 특징 추출 자체도 기계 학습으로 설계함
- 센서로 획득한 패턴이 신경망의 입력이고, 여러 단계의 은닉층이 자동으로 계층적인 특징을 추출함
- 앞 단계의 은닉층은 주로 low-level feature(엣지, 코너)를 추출하고 뒤로 갈수록 추상적인 high-level feature를 추출
깊은 다층 퍼셉트론(DMLP)
은닉층을 L-1개 가지고, 마지막에 출력층이 있어 총 L개의 층을 가짐
오류 역전파 알고리즘
- MLP와 마찬가지로 오류 역전파 알고리즘을 이용해서 그래디언트를 계산함
- l=1~L-1까지는 주로 활성함수로 ReLU를 사용함
- l=L에서는 주로 softmax, tanh, 시그모이드 등을 사용함
컨볼루션 신경망(CNN; 합성곱 신경망)
DMLP와 CNN
DMLP
- 완전연결 구조fully-connected라서 가중치가 많아서 복잡도가 높음
-> 학습이 더디고 과잉적합에 빠질 가능성이 큼
- 입력이 일렬로 늘어선 벡터 구조
-> 입력 샘플이 항상 같은 크기를 가져야하고, 특징 벡터의 차원이 항상 같아야함(행렬의 곱 연산을 위해서)
CNN
- 부분연결 구조partially-connected라서 복잡도는 낮추면서 모든 층의 좋은 특징을 추출해옴
- 영상과 같은 행렬 구조 또는 3차원 이상의 텐서 구조까지 처리 가능
- 가변 크기의 입력까지 처리 가능
-> 특징 맵의 크기가 달라질 뿐
-> FC 층 바로 직전에 원하는 크기로 조정하면 됨
-> 풀링을 사용하면 쉽게 원하는 크기로 조정이 가능해서 마스크 크기와 보폭을 적절히 바꾸면서 필요한 수만큼 샘플링
- 영상처럼 격자 구조를 가진 데이터에 적합함
전체 구조
컨볼루션 결과에 활성함수 적용한 후 풀링 연산 적용
- k'개를 사용하도록 커널을 확장함
- 특징 맵의 요소마다 활성함수를 적용함(CNN은 주로 ReLU)
e.g. LeNet-5
컨볼루션층
컨볼루션 연산
- kernel, filter, window를 통해서 feature map을 추출해냄
가중치 공유와 다중 특징 맵 추출
- 모든 노드는 같은 커널을 사용하므로 weight sharing
- 같은 가중치를 여러 곳에 묶어둔 것으로 볼 수 있어서 tied weight라고도 함
- 커널에 따라 추출하는 특징이 달라짐 e.g. 엣지 커널
- 수십 ~ 수백 개의 커널을 사용해서 다양한 특징 맵을 추출함
- 커널 값은 학습을 통해서 알아내야함
- 사람이 경험을 바탕으로 커널을 설계하던 hand-crafted feature 방식을 벗어나 기계 학습으로 훈련집합에 최적인 커널을 자동으로 찾아줌
- 커널은 어떤 feature map을 추출할지 규정하므로 학습 과정을 feature learning, representation learning이라고 부를 수 있음
- 오류 역전파 알고리즘을 이용하여 커널을 학습함
컨볼루션 연산에 따른 CNN 특성
1. 컨볼루션은 translation equivariant
-> 신호가 이동하면 이동 정보가 특징 맵에 그대로 반영됨
-> 이동한 것에 컨볼루션을 적용한 결과와 컨볼루션을 먼저 적용하고 이동한 결과가 같음
2. 병렬 분산 구조
- 깊은 구조를 가지므로 영향력 범위가 층을 거듭할수록 커져 뒤로 가면 맵 전체에 영향을 줌
큰 보폭에 의한 다운샘플링
보폭을 k로 설정하여 노드 k마다 하나씩 샘플링하여 커널을 적용함
-> 결과는 출력 데이터가 입력 데이터보다 1/k로 축소됨
-> 2차원 영상은 m*n이 (m/k)*(n/k)로 축소됨
텐서에 적용
입력 데이터가 k*m*n의 크기라고 하면 커널은 k*h*h의 크기를 가짐
-> 입력 데이터와 커널의 채널 수는 둘 다 k로서 같아야 함
풀링층
풀링 연산
- 잡음 등 지나치게 상세한 정보를 summary statistics을 추출해서 성능 향상에 기여
-> feature map이 작아져서 속도, 메모리 향상
- 학습할 매개변수가 없음
- 특징 맵의 수가 그대로 유지 됨
- 커널의 크기를 키울수록 작은 이동에 둔감해짐