티스토리 뷰
이전 까지의 내용
이전 글에서는 각 층의 출력값 자체를 안정화하는 방법인 배치 정규화를 다루고 학습식을 개선할 필요성에 대해 살펴보았습니다. 이번 글에서는 학습식을 어떻게 개선해나가고 있는지에 대해 살펴보겠습니다.
전체 내용은 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 의 학습과정에 대해 살펴보겠습니다.
부족한 블로그에 방문해 주셔서 감사합니다.
잘못된 부분이나 질문이 있으시면
댓글로 말씀해주세요.
금방 확인하고 피드백 드리겠습니다.
좋은 하루 되세요. ^^
'머신러닝' 카테고리의 다른 글
[딥러닝] 뉴럴 네트워크 Part. 8 - 옵티마이저 (Optimizer) (8) | 2018.03.29 |
---|---|
[딥러닝] 뉴럴 네트워크 Part. 7 - 배치 정규화 (0) | 2018.03.28 |
[딥러닝] 뉴럴 네트워크 Part. 6 - 가중치 초기화 (2) | 2018.03.27 |
[딥러닝] 뉴럴 네트워크 Part. 5 - 새로운 활성화 함수 (4) | 2018.03.25 |
[딥러닝] 뉴럴 네트워크 Part. 4 - 역전파 (backpropagation) (26) | 2018.03.24 |
- Total
- Today
- Yesterday
- 알고리즘
- sql
- 백준
- bukhansannationalpark
- 영월여행
- 커플여행
- 머신러닝
- 가족캠핑
- 카카오
- 캠핑장추천
- 가평여행
- 서울근교캠핑
- 글램핑
- 강원도여행
- 여름휴가
- Oracle
- 캠핑초보
- 여름캠핑
- 영월캠핑
- python
- 여름휴가추천
- 강원도캠핑
- 반려견캠핑
- 자연힐링
- 파이썬
- Koreancuisine
- 가평캠핑
- SeoulTravel
- 가족여행
- 계곡캠핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |