최적의 필터를 학습으로 알아낸다!
영상에 필터를 씌워서, 학습시키는 방법이다. 이 CNN에 대한 이해를 다지고 프로젝트를 진행하는게 나을 것 같아서, CNN에 대해서 공부하고 정리해보는 시간을 가졌다.
입력 특징 맵(feature map)에 컨볼루션을 적용해서 얻은 특징 맵 출력한다.
입력 특징 맵은 개 채널로 구성되어 깊이가 인 크기의 맵!
여러 개의 필터를 사용해서 풍부한 특징 추출
로짓에 활성 함수를 적용한 결과를 출력 특징 맵에 씀
- 컨볼루션 층의 경우 보통 ReLU 또는 ReLU의 변종을 사용함
필터 개수 k’로 표기했는데, 보통 16, 32, 64, 128, 256 사용한다.
필터 하나가 특징 맵 하나를 생성한다고 본다!
맵의 경계에서 필터를 대면 일부 화소가 밖으로 나가기 때문에 적용 불가능한 문제 발생한다.
[CS231n Convolutional Neural Networks for Visual Recognition](https://cs231n.github.io/convolutional-networks/#conv)
가중치 공유 weight sharing
부분 연결성 partial connection
이러한 특징들이 학습 알고리즘이 최적화해야 할 가중치 개수를 획기적으로 줄여줌
컨볼루션층 뒤에 풀링층이 따르는 편!
상세함을 줄이는 효과와 특징 맵의 크기를 줄여 신경망의 효율을 높이는 효과 제공
예시
신경망의 앞 부분의 컨볼루션층과 풀링층은 특징 추출 역할 담당!
뒷부분은 완전연결층을 쌓아 분류 수행을 진행한다.
앞부분과 뒷부분 사이 flatten 연산의 경우, 컨볼루션층의 다차원 구조를 1차원 구조로 변환해 완전연결층에 입력하는 것
이후, 출력층에는 분류할 클래스 개수에 해당하는 만큼 노드 배치!
컨볼루션 신경망의 구성요소
을 쌓아서 만들기 때문에 데이터에 따라 또는 풀어야 하는 문제에 따라 다양한 모양으로 조립할 수 있음!
1단계의 전방 계산에서 컨볼루션층 & 풀링층 → 완전연결층 거쳐 출력 벡터 를 출력
2단계에서 손실 함수를 통해 와 참값 벡터 의 오류를 계산함
3단계 역전파 단계에서 오류를 줄이는 방향으로 가중치 갱신
다층 퍼셉트론을 위한 역전파 알고리즘과 컨볼루션 신경망에 그대로 적용됨
but, 완전연결층과 계산이 다르기 때문에 계산식에 따라 미분만 다르게 수행하면 됨!
고전적 패러다임 = 수작업 특징으로 분류 모델 학습 → 특징 추출 프로그램 + 분류기 프로그램 결합
이렇게 유용한 정보를 공유해주셔서 감사합니다.