Day 1 - Section 5 오차 역전파법의 정리

4617 단어 심층 학습
이 기사는 개인 공부용 메모입니다.

이 공부의 위치



심층 학습 Day 1

Section 0 신경망의 전체 이미지
Section 1 입력층~중간층
Section 2 활성화 함수
Section 3 출력 레이어
Section 4 기울기 강하법
Section 5 오차 역전파법 ← ← 이것

강의



오차 역전파법



각각의 처리 장소에서 미분한다.
미분된 값을 이전 층에서 사용한다.
  • 오차 함수
  • 출력 계층에서 활성화 함수
  • 출력 레이어에서 가중치 계산
  • 중간층에서 활성화 함수 (1 층씩)
  • 중간층에서의 가중치 계산(1층씩)

  • 미분된 값을 연쇄율로 곱한다.

    오차 함수



    입력 1: 출력 레이어의 값 y
    입력 2: 정답 값 d
    출력: 오차 E

    수식 $\frac{\partial E}{\partial y}$

    출력층의 활성화 함수



    입력 1: 총 입력 u
    출력; 활성화 함수 처리 후 값 y

    수식 $\frac{\partial y}{\partial u}$

    가중치 계산



    입력 1: 입력 데이터 값 x
    입력 2: 가중치 w
    출력 : 위의 곱셈의 합계 u

    수식 $\frac{\partial u}{\partial w}$

    오차 E를 가중치 w로 편미분 한 미분 값



    최종적으로 구한 미분값
    \begin{align}
    \frac{\partial E}{\partial w} 
    = \frac{\partial E}{\partial y}\frac{\partial y}{\partial u}\frac{\partial u}{\partial w}
    \end{align}
    

    전술 한 바와 같이 간접적으로 미분 값을 계산할 수있다.
    각각의 미분값은 인간이 미리 계산해 둔다.

    구현 연습



    1_3_stochastic_gradient_descent.ipynb

    주어진 소스는
    순전파 : ReLU 함수
    역전파: 시그모이드 함수의 도함수
    가 되어 있어 함수가 불통일이었으므로, 순전파를 시그모이드 함수로 변경해 실행했다.



    학습이 진행됨에 따라 급속하게 오차가 작아지는 모습을 확인할 수 있다.

    확인 테스트



    이미 수행한 계산 결과를 보유한 소스 코드의 위치





    z1: 이전 레이어의 출력값
    delta2 : 오차 함수 MSE를 미분 한 값 유지
    grad['W2']: 이하의 3개의 값을 곱한 값을 유지
    1. delta2의 값
    2. 항등함수를 미분한 값 1(y = u2보다)
    3. u2를 W2로 미분한 값 z1(u2=W2 z1 + b2보다)

    (유지라고 해도, 1회의 가중치 갱신으로 일시적으로 유지할 뿐. 다음의 에포크에서의 가중치 갱신시는 모두 재계산한다.)

    두 개의 공란에 해당하는 소스 코드의 위치



    수식 $\frac{\partial E}{\partial y}\frac{\partial y}{\partial u}$ 의 소스 코드
    $\frac{\partial y}{\partial u}$ 는 1이므로 위의 수식 전용 소스 코드는 보이지 않지만
    강하게 말하면 다음 소스 코드.



    수식 $\frac{\partial E}{\partial y}\frac{\partial y}{\partial u}\frac{\partial u}{\partial w_{ji}^2}$ 의 소스 코드



    모범 해답에 의하면, 위에 붙인 자신의 2개의 해답은 둘 다 부정해라는 것이지만,
    사실일까.
    forward 함수를 읽으면 다음과 같이 중간층이 2층으로 되어 있다.



    이 질문은 $w_{ji}^{(2)}$ 즉 2층째의 가중치의 기울기를 요구하는 소스 코드를 찾는다.
    그러나, 왠지 모범 해답은 1층째의 가중치의 기울기를 요구하는 소스 코드를 가리키고 있다.
    만약 1층명의 가중의 기울기를 요구하는 경우, 수식은 이하일 것.
    \frac{\partial E}{\partial y}
    \frac{\partial y}{\partial u2}
    \frac{\partial u2}{\partial z1}
    \frac{\partial z1}{\partial u1}
    \frac{\partial u1}{\partial w_{ji}^{(1)}}
    

    수료 테스트~연습 문제~



    문제 4(시그모이드 함수의 미분)



    이것은 암기하는 것이 가장 빠르다.
    f'(z)=f(z)(1-f(z))
    

    계산에서도 구할 수 있다.
    f(z)=\frac{1}{1+e^{-z}}\\
    

    $1+e^{-z} = t$ 이면 $f(z) =\frac{1}{t}\Rightarrow\frac{\partial f(z)}{\partial t}=-t^ {-2}=-\frac{1}{t^2}$
    $e^{-z} = s$로 설정하면 $1+s=t\Rightarrow\frac{\partial t}{\partial s}=1$
    $-z=u$ 로 설정하면 $e^u=s\Rightarrow\frac{\partial s}{\partial u}=e^u$
    또한 $\frac{\partial u}{\partial z}=-1$
    \begin{align}
    \frac{\partial f(z)}{\partial z}
    &=
    \frac{\partial f(z)}{\partial t}
    \frac{\partial t}{\partial s}
    \frac{\partial s}{\partial u}
    \frac{\partial u}{\partial z}
    \\
    &=
    \biggl(-\frac{1}{t^2}\biggr)
    \times
    1
    \times
    e^u
    \times
    (-1)
    \\
    &=
    \frac{e^{-z}}{(1+e^{-z})^2}
    \\
    &=
    \frac{1}{1+e^{-z}}
    \frac{1+e^{-z}-1}{1+e^{-z}}
    \\
    &=
    \frac{1}{1+e^{-z}}
    \Biggl(
    1-
    \frac{1}{1+e^{-z}}
    \Biggr)
    \\
    &=
    f(z)(1-f(z))
    \end{align}
    

    문제 5(계산 그래프에서의 역전파)



    오른쪽의 빨간색 선의 값은 $1$이고 중앙 아래의 검은색 선은 $20$이므로, 중앙의 빨간색 선은 $1\times 20=20$
    가운데 빨간색 선은 $20$이고 왼쪽 위 검정색 선은 $3$이므로 왼쪽 빨간색 선은 $20\times 3=60$

    참고
    빨간 책의 5.3.2 곱셈 노드의 역 전파

    좋은 웹페이지 즐겨찾기