본문 바로가기
딥러닝관련/기초 이론

신경망 정리 10-2 (오차 역전파 활성화 함수 계층 구현, Sigmoid)

by 머리올리자 2021. 7. 19.

Sigmoid

시그모이드 함수는 아래와 같다.

 

위 함수를 아래와 같은 계산 그래프로 나타낼 수 있다.

 

1단계

'/'노드 y = 1/x를 미분하면 아래와 같다.

상류의 예측값에 -y^2을 곱해서 하류로 전달.

 

 

2단계

+노드는 그대로 흘려보낸다.

3단계

'exp' 노드의 미분은 아래와 같다.

계산 그래프에서는 상류의 값에 순전파 때의 출력을 곱해 하류로 전달

4단계

'X' 노드는 순전파 때의 값을 '서로 바꿔 곱한다'

 

이 예에서는 -1을 곱한다.

 

순전파의 입력 x와 y만으로 역전파를 계산을 할 수 있다.

 

 

 

위 sigmoid에 의해 역전파되는 값을 아래와 같이 정리할 수 있다.

위 처럼 sigmoid 계층의 역전파는 순전파의 출력(y)만으로도 계산할 수 있다.

 

 

 

코드로 sigmoid backpropagation 구현

# 참고 https://github.com/oreilly-japan/deep-learning-from-scratch/blob/master/common/layers.py


class Sigmoid:
    def __init__(self):
        self.y = None

    def forward(self, x):
        y = sigmoid(x)
        self.y = y
        return y

    def backward(self, dout):
        dx = dout * (1.0 - self.y) * self.y

        return dx

 

내용 참고

book.naver.com/bookdb/book_detail.nhn?bid=11492334