[Boostcamp AI Tech] AI Math 5강

이성범·2022년 1월 21일
0

Boostcamp AI Tech

목록 보기
5/49

딥러닝 학습방법 이해하기

이번 장에서는 신경망과 신경망의 가중치 업데이트 방식인 역전파에 대하여 공부를 헸다. 이번 장에서 배운 역전파의 경우 대부분의 딥러닝 프레임 워크에서는 대부분 미리 구현되어 있는 것을 가져다 쓰기만 해, 개인적으로 완전히 이해하고 싶다는 욕심이 있었다. 엔지니어로서의 가장 필요한 능력이 자신이 생각하고 있는 알고리즘을 구현할 수 있는 능력이라고 생각하며, 이를 실현시키기 위해서는 완벽히 개념을 알아야 한다고 생각했다. 따라서 이번 장에서 나온 딥러닝의 역전파 과정을 완벽히 이해하기 위해서 많은 자료를 찾고 공부하느라, 본 내용을 정리하는데 조금 많은 시간이 걸렸다.

00. 공부 내용

  • 신경망에 대하여 공부
  • 역전파에 대하여 공부

01. 신경망

  • 신경망은 선형모델과 활성화함수를 합성한 하나의 함수이다.
  • 활성화 함수를 쓰지않은 신경망은 아무리 많은 레이어를 쌓더라도 기본적인 선형모델에 불과하다.
  • 따라서 활성화 함수는 신경망의 표현력을 높여준다고 볼 수 있으며, 활성화 함수 덕분에 우리는 비선형성을 가지는 함수도 추론할 수 있게 되는 것 이다.
  • 신경망이 아웃풋을 내는 과정을 순전파라고, 신경망의 가중치를 업데이트 하는 과정을 역전파라고 부른다.
  • 이론적으로 2층 신경망으로 충분히 임의의 연속함수를 근사할 수 있다 (universal approximation theorem) <- 매우 wide한 신경망을 만들어야 함
  • 그러나 층이 깊을수록 목적함수를 근사하는데 필요한 뉴련의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능하다.

02. 역전파

  • 역전파는 미분의 연쇄법칙 기반의 자동 미분을 사용한다.
  • 본 장에서는 직접 3Layer를 가진 신경망의 가중치를 업데이트 하는 과정을 손으로 적었다.(데이터는 1개, 활성화 함수는 시그모이드 함수)



    -주의- 식 자체를 직접 구현한 방식으로 적었기 때문에 통용적인 수학식과 맞지 않을 수 있습니다. 본 기울기 계산 방식은 데이터 1개를 대상으로 구했기 때문에 데이터의 수가 늘어난다면 데이터의 수 만큼 기울기가 생겨, 구해진 기울기를 모두 더한 후 데이터의 수로 나누어 평균 기울기 값으로 기울기를 업데이트 해야합니다.
  • 역전파 구현 코드
  • 역전파를 구현할 때 가장 중요한 것은 현재 Layer의 기울기를 구할 때는 활성화 함수의 미분 값을 곱해주고, 이후의 축척되는 기울기에는 포함되지 않음
  • 이후의 기울기를 축척할 때는 현재 Layer의 활성화 함수의 미분 값을 제외한 축척된 기울기에 현 Layer의 W를 곱해주고, 이후의 기울기 계산에 사용함

참고자료

profile
Machine Learning Engineer at Konan Technology

0개의 댓글