Chap.08 딥러닝
8-0. Intro
이번장의 목표는 딥러닝의 특징과 과제, 그리고 가능성을 알아 가는 것이다.
8-1. 더 깊게
우리는 그 동안 신경망에 대해 많은 것을 배웠다. 이제 그 동안 배운 기술들을 활용해 MNIST 데이터셋의 손글씨 숫자 인식에 도전해보자.
신경망 구현
손글씨 숫자 인시모델을 만들기 위해 VGG 신경망을 참고해 다음과 같은 신경망을 구현하였다.

위 신경망의 구현 내용은 다음과 같다.
- 3x3의 작은 필터를 사용한 합성곱 계층
- 활성화 함수는 ReLU
- 완전연결 계층 뒤에 드롭아웃 계층 사용
- Adam을 사용해 최적화
- 가중치의 초기값은 He초기값 사용
이와 같은 깊은 신경망의 특징은 층이 깊어지면서 채널 수가 더 늘어난다는 것이다. 또한 풀링 계층에서 중간 데이터의 공간 크기를 점차 줄여나간다.
이 신경망의 손글씨 숫자 인식의 정확도는 99.38%이다. 아주 높은 성능이다.
정확도 높이기
이러한 신경망의 정확도를 높이기 위해서 다음 과 같은 방법들을 사용할 수 있다.
- 앙상블 학습
- 학습률 감소
- 데이터 확장
💡 데이터 확장이란?
입력 이미지를 회전하거나 세로로 이돌하는들 미세한 변화를 주어 이미지의 개수를 늘리는 것
층을 깊게 하는 것의 중요성
대부분의 신경망은 깊게 층을 구현할 수록 정확도가 증가한다. 또한 신경망의 매개변수를 줄일 수 있다는 이점이있다.


다음 두 개의 그림은 신경망을 얕게 했을 때와 깊게 했을 때의 예를 나타낸것이다.
얕게 구현한 신경망은 출력 데이터를 추출 해내야되기 때문에 5x5의 필터를 사용하고 총 25개의 매개변수가 필요하다. 하지만 층을 깊게 한경우에는 3x3의 필터를 사용해 중간 데이터에 보내고 다시 한번 3x3의 필터를 사용해 출력 데이터로 보낸다. 여기서 매개변수는 총 18개가 필요 하다.
또 층을 깊게 하면 학습의 효율성도 증가 시킬 수있다.
개를 인식하는 문제를 생각해볼 때 얕은 신경망에서는 한 개의 합성곱 계층이 개의 특징 대부분을 이해해야 한다. 하지만 깊은 신경망에서는 여러개의 합성곱 신경망에서 특징들을 나눠서 이해 할 수있다.
또 층을 깊게 하면 정보를 계층적으로 전달 할 수 있다.
예를 들어 에지르 추출한 층의 다음 층은 에지 정보를 쓸 수 있고, 더 고도의 패턴을 효과적으로 학습하리라 기대 할 수 있다.
8장 그 뒤로는 정리하기 보다 한 번 읽어보면 좋다는 생각이 들어 여기서 마무으리~!
출처: 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, 한빛미디어(2017)
'Deep Learning > deep learning from scratch' 카테고리의 다른 글
| Chap.07 합성곱 신경망(CNN) (0) | 2022.01.10 |
|---|---|
| Chap.06 학습 관련 기술들 (0) | 2022.01.09 |
| Chap.05 오차역전파법 (0) | 2022.01.07 |
| Chap.04 신경망 학습 (0) | 2022.01.07 |
| Chap.03 신경망 (0) | 2022.01.05 |



