Chap.08 딥러닝

2022. 1. 10. 22:51

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

BELATED ARTICLES

more