menu

프레임워크 없이 딥러닝 구현해보기 9일차

밑바닥부터 시작하는 딥러닝(사이토 고키)라는 책을 읽으면서 딥러닝을 다시 공부해보고 있습니다.

오늘의 배운 것

2015년, 꽤 최근에 제안된 방법 중 하나로 배치 정규화(Batch Normalization)가 있다. 미니 배치를 단위로 데이터 분포가 평균이 0, 분산이 1이 되도록 정규화하고, 확대와 이동 변환을 수행한다. 확대와 이동이 얼마나 되는 지는 학습을 통해(배치 정규화용 파라미터가 따로 있다.) 조정해간다.

train 할 때 배치 정규화 파라미터를 저장해놓고, test 할 때 저장해놓은 값들을 사용해야 한다.

배치 정규화 계층은 활성화 함수 앞이나 뒤쪽에 삽입할 수 있지만, 보통 활성화 함수 앞에 삽입한다.

배치 정규화의 장점으로, 학습 속도 개선, 초깃값에 의존성 감소, 오버피팅 억제가 있다.


해본 것

1

1

위 사진은 배치 정규화를 사용하지 않았을 때, 아래 사진은 배치 정규화를 사용했을 때의 모습이다. 확실히 1 epoch 부터 더 높은 정확도를 보여주었다.


실습한 코드는 https://github.com/woduq1414/deep-learning-without-tensorflow 에 있습니다.