깊은 다층 퍼셉트론이 노드를 연결하는 가중치를 학습하는 점과 비교하면 두 신경망의 학습 알고리즘은 크게 다를 것으로 보인다.
하지만 이들이 사용하는 손실 함수와 옵티마이저는 같다.
컨볼루션 신경망의 내부 구조는 깊은 다층 퍼셉트론과 다르지만 출력층은 같다.
예)
숫자 인식을 하는 신경망이라면 출력층에 노드가 10개 있고 softmax or tanh활성 함수의 결과를 출력한다.
이때 매개변수가 어느 방향으로 변해야 손실 함수의 최저점에 가까워지는지 알아야 하는데 , 손실 함수를 매개변수로 미분하여 방향을 알아낸다.
컨볼루션신경망은
커널이 매개변수에 해당하고 깊은 다층 퍼셉트론은 에지의 가중치가 매개변수라는 점만 다르고 미분으로 방향을 얻어내는 원리는 똑같다.
- 고전적인 컴퓨터 비전에서는 수평에너지와 수직 에너지 특징을 추출하는 커널을 사람이 직접 설계했다. 이런 설계방식을 수작업 특징이라고 한다.
수자업 특징은 사람의 직관으로 설계되므로 어느 정도 수준의 성능을 제공하지만 , 자연 영상과 같이 복잡한 데이터에서는 아주 낮은 성능에 머물러 있다.
패턴 ->특징 추출 -> 분류 -> 부류 순으로 진행
패턴->특징 + 분류 -> 부류 순으로 진행
특징 추출과 분류를 동시에 학습으로 알아내는 딥러닝 방식이다.
딥러닝은 특징을 학습으로 알아내기 때문에 특지으 학습을 한다고 말한다.
입력 패턴에서 최종 출력에 이르는 전체 과정을 한꺼번에 학습한다는 의미에서 통째 학습 end to end learning 을 한다고 말한다.
통째 학습은 딥러닝의 월등한 성능을 설명하는 가장 중요한 요인이다.
앞부분의 컨볼루션층과 폴링층 : 특징 추출
뒷부분의 완전연결층 : 분류
컨볼루션 신경망의 학습 알고리즘은 깊은 다층 퍼셉트론과 마찬가지로 오류 역전파 알고리즘을 사용한다.
단지 , 최적화해야 할 매개변수가 완전 연결층의 가중치 뿐만 아니라 컨볼루션층의 커널도 포함한다는 점만 다르다.
커널과 가중치를 난수로 초기화한 다음 , 오류를 줄이는 방향으로 커널과 가중치를 개선하면서 최저점으로 수렴한다.
- 통쨰 학습을 한다.
- 특징 추출과 분류를 동시에 최적화하는 학습 방법은 따로 최적화한 후에 결합하는 학습 방법보다 뛰어나다.
- 특징 학습을 한다.
- 주어진 데이터셋에 최적인 특징 추출 알고리즘을 학습으로 알아내기 때문에 상당한 성능 향상이 있다.
- 신경망의 깊이를 더욱 깊게 하여 풍부한 특징을 추출한다.
- 컨볼루션층은 부분 연결성과 가중치 공유로 인해 매개변수 개수가 적다 . 따라서 신경망의 깊이를 충분히 깊게 해도 학습이 잘 된다.
수백 ~ 층을 사용하기도 한다.- 컨볼루션 연산은 데이터의 원래 구조를 그대로 유지한 채 특징을 추출한다.
- 입력 데이터가 컬러 영상의 3차원 텐서라면 컨볼루션층이 출력하는 특징 맵도 3차원 텐서이다. 영상의 한 화소는 상하좌우에 있는 이웃 화소와 상관관계가 큰데 , 컨볼루션 연산은 상관 관계 정보를 유지하는 강점이 있다.
하지만, 깊은 다층 퍼셉트론에서는 영상을 1차원으로 펼쳐 입력하기 때문에 이웃 정보가 사라진다.
이상으로 컨볼루션 신경망의 학습에 대한 이야기를 마치도록 하겠습니다 .
감사합니다.
더 나은 개발이 되길 바라며:)