3. How to Image Classify
CNN( Convolutional neural network )
CNN은 전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 부착한 모양.
컨볼루셔널 레이어의 특징 추출 결과를 뉴럴 네트워크로 분류.
4. How to Image Classify
컨볼루셔널 레이어
입력 데이터로부터 특징을 추출하는 역할.
특징을 추출하는 필터와 필터 값을 비선형 값으로 바꾸는 액티베이션 함수로 구성
5. How to Image Classify
필터
정의된 특징이 데이터에 있는지 없는지 검출해주는 함수
특징을 가지고 있으면 큰 값이 나오고 아니면 0에 가까운 작은 값이 나온다.
6. How to Image Classify
필터 적용 방법
큰 이미지에 대하여 필터는 다음과 같이 1픽셀씩 옮겨가면서 적용한다.
필터를 적용한 Feature map은 원본보다 작아지기 때문에 적절한 처리를 해야한다.
7. How to Image Classify
원본 크기 유지하기( Padding )
32x32x3에 대한 이미지에 대해 5x5x3 필터를 적용하면 28x28x3이 되는데,
Padding을 적용하면 32x32x3의 결과를 얻을 수 있다.
Padding은 특징 유실을 막고, 오버 피팅을 방지한다.
8. How to Image Classify
액티베이션 함수
필터링된 결과값은 액티베이션 함수를 통해 특징이 있는지 없는지를 판단한다.
이전에는 왼쪽의 sigmoid 함수를 사용했지만,
계산값을 재활용하는 Back propagation에서 문제가 발생해서 ReLU를 많이 사용한다.
9. How to Image Classify
풀링
앞선 과정을 거쳐 나온 결과를 필요에 따라 sub sampling하는 과정을 거친다.
주요한 특징 몇 개를 가지고 인식 할 수 있다면 크기를 줄인다는 것이다.
그 중에서 그림의 Max polling을 가장 많이 쓴다.
컴퓨팅 리소스를 줄이고 오버피팅을 방지한다.
11. How to Image Classify
소프트 맥스
앞선 과정을 몇번 거친 결과값은 뉴럴 네트워크에 의해 다음과 같이 표현된다.
Pn(x)는 특징 x에 대해 Pn일 확률이다. Pn은 0 ~ 1 값을 가지고
P1 + … + Pn = 1이다.
어떤 동물 그림을 넣었을 때 고양이 0.8 강아지 0.2식으로 표현된다.
12. How to Image Classify
드롭아웃 계층
뉴럴 네트워크와 소프트맥스 함수 중간에 드롭아웃 계층을 둔다.
오버피팅을 막기위한 방법으로, 랜덤한 뉴럴 네트워크를 꺼서 학습을 방해한다.