티스토리 뷰

반응형


이전 까지의 내용 

  • 이전 글에서는 각 층의 출력값 자체를 안정화하는 방법인 배치 정규화를 다루고 학습식을 개선할 필요성에 대해 살펴보았습니다. 이번 글에서는 학습식을 어떻게 개선해나가고 있는지에 대해 살펴보겠습니다.

  • 전체 내용은 SlideShare 에서 한번에 보실 수 있으며 youtube 로도 볼 수 있습니다.



MLP 의 문제점 

  • 여러 문제를 풀어내는데 능한 MLP 지만, 영상이나 이미지를 처리하는데 있어서 MLP 는 문제점이 있습니다.


  • 숫자 1을 MLP 로 인식하는 예를 한 번 들어보겠습니다. 같은 숫자 1 임에도 불구하고 좌측으로 한 칸씩만 움직이면 인풋값이 20개가 변화합니다. 이는 학습해놓은 weight 들이 모두 무력화되는 결과를 갖고옵니다.


  • 이를 해결하기 위해서 위치나 기울기 등이 아닌 특징을 찾아서 이미지를 인식하는 방법을 사용하기로 합니다. 컴퓨터가 특징을 인식해서 결과를 찾는 과정을 살펴볼까요.




  • 처음에는 가장 기초가 되는 특징 (feature) 부터 확인하고 그 특징들을 조합해서 보다 복잡한 특징이 존재하는지 살펴본 뒤 마지막으로 물체를 분류하는 과정입니다. 이런 기능을 하는 Convolution Neural Network 구조는 다음과 같습니다.




  • 처음 이미지를 input 으로 받은 뒤 Convolution 과정과 Pooling 과정을 반복하여 거친 뒤 MLP 를 거치는 것이 CNN 의 기본 구조라 할 수 있습니다. 이때의 MLP 를 모든 노드가 연결되어 있는 레이어라 해서 Fully-Connected Layer 라고도 부릅니다.

  • 그럼 CNN 의 핵심인 Convolution 과 Pooling 은 무엇인지 살펴보겠습니다.



CNN 의 핵심 - Convolution & Pooling 

  • Convolution 과정은 이미지에서 어떤 특징이 얼마나 있는지를 구하는 과정이라고 할 수 있고 Pooling 과정은 이미지의 뒤틀림이나 크기변화에 따른 왜곡의 영향을 축소하는 과정이라고 할 수 있습니다. 

  • 생선 그림 예제를 통해 구체적으로 살펴보겠습니다.





  • 생선 그림을 통해 살펴본 Convolution 과 Pooling 과정 입니다. 첫 번째 그림부터 살펴보겠습니다. 세로 필터를 거치고 나면 이미지에서 세로선인 부분이 부각되는 것을 알 수 있습니다. 또한 가로 필터를 거치고나면 이미지에서 가로선이 있는 부분들이 부각되는 것을 알 수 있고 지느러미 필터, 대각선 필터 또한 마찬가지 입니다. 부각된 뒤에 Pooling 과정을 거치고 나면 이미지에서 해당필터부분이 어디에 있는지 보다 확실하게 보여주고 이미지의 왜곡에 의한 영향을 줄여주는 역할을 해줍니다.

  • 이미지의 왜곡에 의한 영향을 줄여주는 과정을 다른 예제를 통해 더 자세히 살펴보겠습니다.


  • 아래쪽의 1은 위쪽의 1에서 좌측으로 한 칸씩 옮긴 결과물 입니다. MLP 에서 이 두 이미지를 사용한다면 38 pixel 에서 값의 변화가 있습니다. 하지만 세로 필터를 거친 뒤 Pooling 과정을 거치고 난 뒤에는 총 12 pixel 에서만 값의 변화가 있습니다. 한 번의 Pooling 과정을 통해 변화 pixel 의 수가 약 70% 나 감소합니다.

  • 또한 CNN 의 대단한 점은 Convolution 에 사용하는 Filter 또한 스스로 역전파 알고리즘을 통해 학습한다는 부분입니다.



  • 다음 글에서는 CNN 의 학습과정에 대해 살펴보겠습니다.







부족한 블로그에 방문해 주셔서 감사합니다.

잘못된 부분이나 질문이 있으시면 

댓글로 말씀해주세요.


금방 확인하고 피드백 드리겠습니다.


좋은 하루 되세요. ^^


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함