신경망 역 전파의 편향을 업데이트하는 방법은 무엇입니까?
누군가 역 전파 전반에 걸쳐 편향을 업데이트하는 방법을 설명해 주시겠습니까?
나는 꽤 많은 책을 읽었지만 편향 업데이트를 찾을 수 없습니다!
편향은 가중치가 추가 된 1의 추가 입력이라는 것을 이해합니다 (각 뉴런에 대해). 공식이 있어야합니다.
Rojas 1996, 7 장의 표기법에 따라 역전 파는 오류 함수의 편미분을 계산합니다 E(일명 비용, 일명 손실).
∂E/∂w[i,j] = delta[j] * o[i]
여기서 w[i,j]뉴런 간의 연결의 무게 i및 j, 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
'Program Club' 카테고리의 다른 글
| 콘텐츠 높이에 따라 iframe 높이 크기 조정 (0) | 2020.11.05 |
|---|---|
| setup.py에서 여러 작성자 / 이메일을 지정하는 방법 (0) | 2020.11.05 |
| 하나의 PHP 포함 파일에서 다른 파일로 변수 전달 : 글로벌 vs. 아님 (0) | 2020.11.05 |
| iOS6 UDID-identifierForVendor가 identifierForAdvertising에 비해 어떤 이점이 있습니까? (0) | 2020.11.05 |
| 앱이 닫히면 Android 서비스가 중지됨 (0) | 2020.11.05 |