티스토리 뷰

반응형

이전 까지의 내용 

  • 이전 글에서는 가중치 초기화의 방법들에 대해서 살펴보고 출력값 자체를 정규화하는 아이디어에 대해 살펴보았습니다. 이번 글에서는 각 층의 출력값 자체를 안정화하는 방법인 배치 정규화를 다룰 예정입니다.

  • 전체 내용은 SlideShare 에서 한번에 보실 수 있으며 youtube 로도 볼 수 있습니다.



배치 정규화 

  • 배치 정규화는 각 층의 출력값들을 정규화하는 방법입니다. 배치라는 단어는 전체 데이터에서 일부분을 칭하는 단어 입니다. 신경망을 학습시킬 때 보통 전체 데이터를 한 번에 학습시키지 않고 조그만 단위로 분할해서 학습을 시키는데 이 때의 조그만 단위가 배치입니다. 배치별로 구분하고 각각의 출력값들을 정규화 하기 때문에 배치 정규화 라는 이름을 갖고 있습니다.

  • Part.5 , Part.6 에서 Vanishing Gradient 현상을 해결하고 학습을 안정화하기 위해서 새로운 활성화 함수를 찾거나 가중치를 초기화하는 방법을 사용했었습니다만 이 배치 정규화를 통해 보다 근본적으로 학습과정을 안정화할 수 있고 빠르게할 수 있습니다.



이론 

                             



  • 깊은 신경망일 수록 같은 Input 값을 갖더라도 가중치가 조금만 달라지면 완전히 다른 값을 얻을 수 있습니다.

  • 이를 해결하기 위해 각 층의 출력값에 배치 정규화 과정을 추가해준다면 가중치의 차이를 완화하여 보다 안정적인 학습이 이루어질 수 있습니다.

  • 출력값을 정규화할 때의 평균과 표준편차, 얼마나 이동시킬지 등의 parameter 들 또한 역전파를 통해 학습이 가능합니다. 

  • 배치 정규화를 사용할 때 주의할 점은 train 시의 배치정규화 parameter 들을 저장해놓고 test 할 때 저장해놓은 값들을 사용해야한다는 점입니다.

  • 배치 정규화에 대해 심도깊게 정리된 페이지가 있어 링크를 남깁니다. 더 수리적으로 살펴보고 싶으신 분들은 참고하시면 좋을 것 같습니다.




  • 지금까지 학습과정에서 문제가 (Vanishing Gradient) 생겼을 때 어떻게 해결해야하는지에 대해 살펴보았습니다. 새로운 활성화 함수를 찾기도 하고 발전된 가중치 초기화 방법을 사용하기도 했으며 배치 정규화 과정을 거치기도 했습니다. 

  • 일련의 과정을 통해 성공적으로 학습은 이루어지기 시작했지만 속도가 너무 느리다는 단점과 모델의 성능이 정체되는 현상 등이 발생하기 시작했습니다. 이를 개선하기 위해 우리가 지금까지 사용하던 학습식 그 자체를 개선하기 시작했습니다.

  • 다음 글 에서는 개선된 학습식들, 새로운 Optimizer 에 대해 살펴보겠습니다.


다음 글 - Part. 8 : Optimizer






부족한 블로그에 방문해 주셔서 감사합니다.

잘못된 부분이나 질문이 있으시면 

댓글로 말씀해주세요.


금방 확인하고 피드백 드리겠습니다.


좋은 하루 되세요. ^^


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함