Program Club

신경망 역 전파의 편향을 업데이트하는 방법은 무엇입니까?

proclub 2020. 11. 5. 19:47
반응형

신경망 역 전파의 편향을 업데이트하는 방법은 무엇입니까?


누군가 역 전파 전반에 걸쳐 편향을 업데이트하는 방법을 설명해 주시겠습니까?

나는 꽤 많은 책을 읽었지만 편향 업데이트를 찾을 수 없습니다!

편향은 가중치가 추가 된 1의 추가 입력이라는 것을 이해합니다 (각 뉴런에 대해). 공식이 있어야합니다.


Rojas 1996, 7 장의 표기법에 따라 역전 파는 오류 함수의 편미분을 계산합니다 E(일명 비용, 일명 손실).

∂E/∂w[i,j] = delta[j] * o[i]

여기서 w[i,j]뉴런 간의 연결의 무게 ij, j보다 네트워크의 하나의 층 이상 존재 i하고, o[i]출력 (활성)은 i피쳐의 단지 치의 "입력 층"의 경우 ( i상기 트레이닝 샘플은 아래 고려). 결정 방법 delta은 교과서에 나와 있으며 활성화 기능에 따라 다르므로 여기서 반복하지 않겠습니다.

이 값은 가중치 업데이트에 사용할 수 있습니다.

// update rule for vanilla online gradient descent
w[i,j] -= gamma * o[i] * delta[j]

gamma학습률은 어디 입니까?

편향 가중치에 대한 규칙 은 이전 계층의 입력이 없다는 점을 제외하면 매우 유사합니다. 대신, 편향은 (개념적으로) 활성화가 1 인 뉴런의 입력에 의해 발생합니다. 따라서 편향 가중치에 대한 업데이트 규칙은 다음과 같습니다.

bias[j] -= gamma_bias * 1 * delta[j]

bias[j]뉴런에 대한 편향의 가중치는 어디 입니까? j1의 곱셈은 분명히 생략 gamma_bias할 수 있으며 gamma다른 값 으로 설정 하거나 설정할 수 있습니다 . 내가 정확하게 기억한다면, 이론적 정당성에 대해서는 확신 할 수 없지만 더 낮은 값이 선호됩니다.


각 개별 가중치 및 편향을 변경하는 양은 각 개별 가중치 및 각 개별 편향과 관련하여 비용 함수의 편도 함수가됩니다.

∂C/∂(index of bias in network)

비용 함수가 개별 가중치 및 값에 명시 적으로 의존하지 않을 수 있으므로 (예를 들어 비용은 네트워크 출력-예상 출력) ^ 2와 같을 수 있으므로 각 가중치 및 편향의 편도 함수를 사용자가 원하는 항목과 연관시켜야합니다. 즉, 뉴런의 활성화 값 (출력)을 알고 있습니다. 다음은이를위한 훌륭한 가이드입니다.

https://medium.com/@erikhallstrm/backpropagation-from-the-beginning-77356edf427d

이 가이드는 이러한 작업을 수행하는 방법을 명확하게 설명하지만 때로는 설명이 부족할 수 있습니다. 위에 링크 된 가이드를 읽으면서이 책의 ​​1 장과 2 장을 읽는 것이 매우 유용하다는 것을 알았습니다.

http://neuralnetworksanddeeplearning.com/chap1.html (질문에 대한 답변에 대한 필수 배경 제공)

http://neuralnetworksanddeeplearning.com/chap2.html (질문에 답변)

기본적으로 편향은 가중치가 업데이트되는 것과 동일한 방식으로 업데이트됩니다. 변경은 다차원 지점에서 비용 함수의 기울기를 기반으로 결정됩니다.

네트워크에서 해결하려는 문제를 다차원 언덕과 계곡 (그라데이션)의 풍경이라고 생각하십시오. 이 환경은 가중치와 편향의 변화에 ​​따라 비용이 어떻게 변하는 지 그래픽으로 표현한 것입니다. 신경망의 목표는이 환경에서 가장 낮은 지점에 도달하여 가장 적은 비용을 찾고 오류를 최소화하는 것입니다. 네트워크가 이러한 기울기 (예 : 기울기 하강)의 맨 아래에 도달하려는 여행 자라고 상상하면 각 가중치 (및 편향)를 변경하는 양은 기울기 기울기 (함수 기울기)와 관련이 있습니다. 여행자가 현재 아래로 내려가는 중입니다. 여행자의 정확한 위치는 다차원 좌표 점 (weight1, weight2, weight3, ... weight_n)에 의해 제공되며 편향은 다른 종류의 가중치로 간주 될 수 있습니다.

참고 URL : https://stackoverflow.com/questions/3775032/how-to-update-the-bias-in-neural-network-backpropagation

반응형