역전파

Backpropagation

기계학습에서 역전파(backprop,[1] BP)는 피드포워드 뉴럴 네트워크를 훈련하기 위해 널리 사용되는 알고리즘이다.역전파의 일반화는 다른 인공신경망(ANN) 및 일반적으로 기능에 대해 존재한다.이러한 알고리즘의 클래스는, 통칭으로 「역전파」[2]라고 불립니다.신경망을 장착할 때 역전파는 단일 입력-출력 예에 대한 네트워크의 가중치에 대한 손실 함수의 구배를 계산하고, 각 가중치에 대한 구배의 순진한 직접 계산과는 달리 효율적으로 계산한다.이 효율성은 다층 네트워크를 훈련하기 위해 구배 방법을 사용할 수 있게 하며, 손실을 최소화하기 위해 가중치를 업데이트한다. 구배 강하 또는 확률적 구배 강하와 같은 변형이 일반적으로 사용된다.역전파 알고리즘은 체인 규칙에 의한 각 무게에 대한 손실 함수의 구배를 계산하고, 구배를 한 번에 1개씩 계산하며, 체인 규칙에서 중간 용어의 중복 계산을 피하기 위해 마지막 계층에서 역방향으로 반복함으로써 작동한다.이것은 동적 프로그래밍[3]한 예이다.

역전파라는 용어는 엄격하게 구배 계산 알고리즘만을 참조하며, 구배 사용 방법은 참조하지 않는다. 그러나 이 용어는 종종 확률적 구배 [4]강하와 같은 구배 사용 방법을 포함한 전체 학습 알고리즘을 참조하기 위해 느슨하게 사용된다.역전파는 역전파의 단일층 버전인 델타 규칙에서 구배 계산을 일반화하며, 역전파는 역전파의 특수한 경우(또는 "역모드")[5]인 자동 미분에 의해 일반화된다.루멜하트, 힌튼 & 윌리엄스(1986a)에서 역전파라는 용어와 신경 네트워크에서의 일반적인 용도가 발표되었고, 그 후 루멜하트, 힌튼 & 윌리엄스(1986b)에서 정교하고 대중화되었지만, 이 기술은 여러 번 독립적으로 재발견되었고 1960년대 이전 기술도 많이 있다. [6]역사를 보라.Goodfellow, Bengio & Courville(2016)[7]의 딥러닝 교과서에 현대적인 개요가 제시되어 있다.

개요

역전파는 손실함수에 관한 피드포워드 뉴럴 네트워크의 무게공간에서의 구배를 계산한다.다음을 나타냅니다.

  • {\ x : 입력(기능의 일부)
  • y 목표 출력
    분류의 경우 출력은 클래스 확률의 벡터(예를 들어 (0..22 타겟 출력은 one-hot/dummy 변수(예를 들어 ,0에 의해 부호화된 특정 클래스입니다.
  • C 손실 함수 또는 "비용 함수"[a]
    분류의 경우 일반적으로 교차 엔트로피(XC, 로그 손실)이며 회귀의 경우 일반적으로 SEL(Square Error Loss)입니다.
  • L: 레이어 수
  • l ( j l) { { Wl } = ( w { }^{ } : -1 ~{ 사이의 무게. 서 w { _ { }^ { l { l}^1 - l l l l l l l l l l l in in in l1 - l - l - node l ( ) : l - l l 1 l in l l l l l l l j - 1의 세번째 노드 {\ l
  • l{\f^{ : l {\ l에서의 활성화 기능
    분류의 경우 마지막 레이어는 보통 이진 분류를 위한 로지스틱 함수이며, 다중 클래스 분류를 위한 softargmax(softargmax)인 반면, 은닉 레이어의 경우 전통적으로 각 노드(좌표)에서 Sigmoid 함수(로지스틱 함수 또는 기타)였지만, 현재정류기(램프, ReLU)가 일반적이기 때문에 더 다양합니다.

역전파의 도출에는 다른 중간량이 사용되며, 필요에 따라 아래에 소개된다.바이어스 항은 고정 입력이 1인 가중치에 해당하므로 특별히 처리되지 않습니다.역전파의 목적상, 특정 손실 함수 및 활성화 함수는 그러한 함수와 그 파생상품을 효율적으로 평가할 수 있는 한 중요하지 않다.기존의 활성화 기능에는 Sigmoid, tanh 및 ReLU가 포함되지만 이에 한정되지 않습니다. 이때부터 swish,[8][9] mish 및 기타 활성화 기능도 제안되었습니다.

네트워크 전체는 함수 구성매트릭스 곱셈의 조합입니다.

트레이닝 세트의 경우 입력-출력 쌍의 세트{ ( i , i ) { left \ { ( _ { , _ { ) \ } 。트레이닝 세트의 각 입력-출력쌍( , 대해 모델의 손실은 그 쌍의 차이입니다. ) { g ( _ { ) } the the y y y yi { y {} :

구별에 주의해 주세요.모델 평가 중 가중치는 고정되지만 입력은 변화하고(및 타깃 출력을 알 수 없는 경우도 있습니다), 네트워크는 출력 레이어로 종료됩니다(손실 함수는 포함되지 않습니다).모델 트레이닝 중에, 입력-출력 쌍은 고정되고, 무게는 변화하며, 네트워크는 손실 함수로 끝납니다.

역전파는 고정 입출력 쌍 의 구배를 계산합니다.여기서 w k jk 다를 수 있습니다.그라데이션의 각 성분인C / j l, \ \ C / \ w { }^{ l}는 체인규칙으로 계산할 수 있지만, 각 무게에 대해 별도로 이 작업을 수행하는 것은 비효율적입니다.역전파는 불필요한 중간값을 계산하지 않고 중복 계산을 회피함으로써 구배를 효율적으로 계산한다.구배는 각 층의 가중치 입력의 구배( §l \^{를 후방에서 전방으로 계산한다.

비공식적으로 중요한 것은 l W 무게가 손실에 영향을 미치는 유일한 방법은 다음 레이어에 대한 영향을 통해 선형적으로 영향을 미치므로 ^{ l l에서 무게의 구배를 계산하기 위해 필요한 데이터는 l\displaystyle \delta ^{l}뿐입니다.n 이전 레이어 l - { \ { l -1 } 을 계산하고 재귀적으로 반복합니다.이를 통해 두 가지 방법으로 비효율성을 방지할 수 있습니다.첫째, 구배를 계산할 때 l+, l+ , ... (\ l + 1, l + displaystyle + + 2, \}, 각 단계에서 가중치의 변화에 관한 숨겨진 레이어 값의 파생물을 불필요하게 계산하는 대신 최종 출력(손실에 대한 가중치의 구배를 직접 계산하기 때문에 한 중간 계산을 회피한다

역전파는 단순한 피드포워드 네트워크에 대해 매트릭스 곱셈의 관점에서, 또는 보다 일반적으로 인접 그래프로 표현할 수 있습니다.

행렬 곱셈

각 레이어의 노드가 (레이어를 건너뛰지 않고) 바로 다음 레이어의 노드에만 접속되어 최종 출력의 스칼라 손실을 계산하는 손실함수가 있는 피드포워드 네트워크의 기본 케이스에서는 매트릭스 곱셈만으로 [c]역전파를 이해할 수 있다.본질적으로 역전파는 각 계층 간의 가중치 구배를 부분적 산물의 단순한 수정('역전파 오차')으로 하여 왼쪽에서 오른쪽으로 각 계층 간의 파생물의 곱으로서 비용함수의 파생물에 대한 식을 평가한다.

입출력 쌍,) { 의 경우 손실은 다음과 같습니다.

이를 계산하려면 입력 x에서 시작하여 앞으로 이동합니다. 각 레이어의 가중치 입력은 z z이고 l(\a 출력은l(\ a^{l입니다. 역전파의 경우 는 l a입니다.} 및 파생( l) { { ( f { l ) } { z { l} ) {\pass for pass for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for for

입력에 관한 손실의 미분은 체인 규칙에 의해 주어집니다.각 항은 입력 x의 네트워크 값으로 평가되는 총 미분입니다.

여기서 { Hadamard 제품으로 요소별 제품으로 왼쪽에서 오른쪽으로 제품을 가져옵니다.

손실함수의 [d]도함수, [e]활성화함수의 도함수,[f] 가중치의 행렬은 다음과 같다.

구배δ(\ 입력에 관한 출력의 도함수 전치이므로 행렬은 전치되고 곱셈 순서는 반전되지만 엔트리는 동일합니다.

역전파는 기본적으로 이 식을 오른쪽에서 왼쪽으로 평가하고(등가적으로 왼쪽에서 오른쪽으로 도함수에 대한 이전 식을 곱하는 것), 도중에 각 계층에서 구배를 계산하는 것으로 구성됩니다. 가중치의 구배는 단순한 하위 표현식이 아니기 때문에 추가된 단계가 있습니다: 추가 곱셈이 있습니다..

부분 제품(오른쪽에서 왼쪽으로 곱하기)의 보조량 l \^{ 소개합니다.이것은 " l l에서 "error"로 해석되며 l\ style l에서 입력값의 기울기로 정의됩니다.

^{ l의 노드 수와 같은 길이의 벡터입니다.각 컴포넌트는 "그 노드의 (값)에 기인하는 비용"으로 해석됩니다.

l\ 무게의 구배는 다음과 같습니다.

a 계수는 레벨l l 사이의 W({ W 입력(활성화)에 비례하여 l({l})에 영향을 미치기 때문입니다.

§ \^{ 다음과 같이 재귀적으로 쉽게 계산할 수 있습니다.

따라서 체중의 구배는 각 수준에 대해 몇 개의 행렬 곱셈을 사용하여 계산할 수 있다. 이것은 역전파이다.

순진하게 포워드를 하는 경우와 비교(에 §l \^{ 사용):

역전파에는 다음 두 가지 주요 차이점이 있습니다.

  1. §- (\^{ 연산하면 l(\\^{ 이후 의 명백한 중복을 피할 수 있습니다.
  2. 역방향으로 전파하는 L C에서 시작하는 곱셈은 각 스텝이 벡터(\^{가중치 행렬( T를 곱하는 것을 의미합니다. 활성화의 (l- 1) { ( 이와는 대조적으로, 앞의 층의 변화에서 시작하여 앞으로 곱하는 것은 각 곱셈이 행렬에 행렬을 곱하는 것을 의미합니다.이는 비용이 많이 들기 때문에 l + + l + 1 { W^ { l +1})에 + 2 W^ { +를 곱하는 경우)로 향하는1개의 l(\ l 변경 경로를 모두 추적하고 deri를 곱하는 데 대응합니다.활성화의 변동) 체중 변화가 숨겨진 노드의 값에 어떻게 영향을 미치는지에 대한 중간 양을 불필요하게 계산한다.

인접 그래프

보다 일반적인 그래프 및 기타 고급 변형에 대해서는 역 전파를 자동 미분이라는 관점에서 이해할 수 있다. 여기서 역 전파는 역 누적(또는 "역 모드")[5]의 특수한 경우이다.

직감

동기

지도 학습 알고리즘의 목적은 입력 세트를 올바른 출력에 가장 잘 매핑하는 함수를 찾는 것입니다.역전파의 동기는 입력과 [10]출력의 임의의 매핑을 학습할 수 있도록 적절한 내부 표현을 학습할 수 있도록 다층 신경망을 훈련시키는 것이다.

최적화 문제로서의 학습

역전파 알고리즘의 수학적 도출을 이해하기 위해, 먼저 뉴런의 실제 출력과 특정 훈련 예에 대한 정확한 출력 사이의 관계에 대한 직관을 개발하는 데 도움이 됩니다.2개의 입력 단위, 1개의 출력 단위와 숨겨진 단위가 없는 단순한 신경망을 생각해 보자.각 뉴런이 입력의 가중치 합인 선형 출력을 사용한다(입력에서 출력으로의 매핑이 [g]비선형인 신경망에 대한 대부분의 작업과 달리).

2개의 입력 유닛(각각 1개의 입력)과 1개의 출력 유닛(각각 2개의 입력)이 있는 단순한 뉴럴 네트워크

처음에는 훈련 전에 체중이 랜덤으로 설정됩니다.그런 다음 뉴런은 일련튜플1, ,t {1}, 구성됩니다.서 x 1 2({x_}})는 네트워크에 대한 입력이고 t는 올바른 출력입니다(네트워크가 제공하는 출력 t).호스 입력(교육된 경우) 번째 네트워크({ 2 { 에서는 t(임의 가중치 부여)와는 다른 출력 y가 계산됩니다.손실함수 L ,) { L)}은 목표출력 t와 연산출력 y의 불일치 측정에 사용된다.회귀 분석 문제의 경우 오차 제곱을 손실 함수로 사용할 수 있으며, 분류를 위해 범주형 교차 엔트로피를 사용할 수 있습니다.

예를 들어, 제곱 오차를 손실로 사용하는 회귀 문제를 고려하십시오.

여기서 E는 불일치 또는 오류입니다.

네트워크를 단일 트레이닝 케이스(( ,, 0 , 0) )로 검토합니다. 입력 x x 각각 1과 1이며 올바른 출력 t는 0입니다.수평축의 네트워크 출력 y와 수직축의 오차E 사이에 관계가 플롯되어 있으면 결과는 포물선이 됩니다.포물선의 최소값은 오차 E를 최소화하는 출력 y에 해당합니다.단일 훈련의 경우 최소값은 수평축에도 해당됩니다.즉, 오차는 0이 되고 네트워크는 목표 출력 t와 정확히 일치하는 출력 y를 생성할 수 있습니다.따라서 입력을 출력에 매핑하는 문제는 최소한의 오차를 발생시키는 함수를 찾는 최적화 문제로 줄일 수 있습니다.

단일 교육 사례에 대한 선형 뉴런 오류 표면

그러나 뉴런의 출력은 모든 입력의 가중치 합계에 따라 달라진다.

서 w 1 w({ 입력 장치에서 출력 장치로 연결되는 무게입니다.따라서, 오류는 또한 뉴런에 유입되는 무게에 의존하며, 이는 궁극적으로 학습을 가능하게 하기 위해 네트워크에서 변경되어야 하는 것이다.

이 예에서는 트레이닝 데이터를 주입하면 손실 함수가

다음 손실 E({ E 포물선 원통의 형태를 취하며 베이스는 1 w({}=-2를 따릅니다. 따라서 w w ({{1}=-2}})를 충족하는 모든 무게 세트가 손실 함수를 최소화해야 하므로, 이 추가 제약 조건이 충족해야 합니다.고유한 솔루션으로 수렴할 수 있습니다.가중치에 특정 조건을 설정하거나 추가 훈련 데이터를 주입하여 추가 제약 조건을 생성할 수 있다.

오류를 최소화하는 가중치 집합을 찾기 위해 일반적으로 사용되는 알고리즘 중 하나는 경사 강하이다.역전파를 통해 가장 가파른 하강 방향은 손실 함수 대 현재 시냅스 가중치로 계산된다.그런 다음, 가장 가파른 하강 방향을 따라 무게를 수정할 수 있으며, 오차는 효율적인 방법으로 최소화된다.

파생

경사 강하법은 네트워크의 가중치에 관한 손실 함수의 도함수를 계산하는 것을 포함한다.이것은 보통 역전파를 사용하여 이루어집니다.하나의 출력 [h]뉴런을 가정할 때, 제곱 오차 함수는 다음과 같습니다.

어디에

{\ L은 출력y {\ y t {\ t의 손실입니다.
t는 트레이닝 샘플의 타깃 출력입니다.
y는 출력 뉴런의 실제 출력입니다.

jj에 대해 다음과 같이 정의됩니다.

여기서 활성화 함수(\ 비선형이며 구별 가능합니다(ReLU가 한 지점에 없는 경우에도).이전에 사용된 활성화 함수는 로지스틱 함수입니다.

다음과 같은 편리한 파생어가 있습니다.

뉴런에 대한 j_{j})는 이전 뉴런의 k(\ 가중치 합계입니다.뉴런이 입력 레이어 뒤의 첫 번째 레이어에 있는 경우 입력 레이어의 k})는 네트워크에 대한 k})일 뿐입니다.뉴런의 입력 단위 수는 n입니다 w j(\ 이전 의 뉴런k(\ k 현재 레이어의 j(\ j 사이의 무게를 나타냅니다.

오류의 도함수 찾기

여기서 사용되는 표기법을 설명하기 위한 인공 신경망의 다이어그램

대한오차의 부분 도함수 계산은 체인 규칙을 사용하여 두 번 수행합니다

(제1호)

위의 오른쪽 마지막 요소에서는 j에서 j에 의존하는 용어는 1개뿐입니다.

(제2호)

뉴런이 입력 레이어 뒤의 첫 번째 레이어에 있는 경우 {\}}는 입니다.

입력에 대한 jj 출력의 도함수는 단순히 활성화 함수의 부분 도함수이다.

(제3호)

로지스틱 활성화 기능 케이스는 다음과 같습니다.

역전파에는 활성화 기능이 차별화되어야 하는 이유가 여기에 있습니다.(단, AlexNet 등에서는 0으로 구분할 수 없는 ReLU 활성화 기능이 매우 보급되어 있습니다.)

번째 인자는 j (\y})이기 때문에 뉴런이 출력층에 있는지 평가하는 것은 간단하다.

(제4호)

제곱 오차의 절반을 손실 함수로 사용하면 다음과 같이 다시 쓸 수 있습니다.

j(\j)가 네트워크의 임의의 내부 레이어에 (\o_{j})에 대한 E E 찾는 것은 그다지 명확하지 않습니다.

E E 모든 L { , , , w}(\ L=\{, , \, 함수로 하여 j(\ j로부터 입력을 받습니다.

j {\에 대한 전체 도함수를 취하면 도함수에 대한 재귀 식을 얻을 수 있다.

(제5호)

Therefore, the derivative with respect to can be calculated if all the derivatives with respect to the outputs of the next layer – the ones closer to the output neuron – are known.(: 집합의 뉴런 중 하나라도 j({j에 연결되어 있지 않은 경우, ({ij})와는 독립적이며, 합계에서 대응하는 편도함수는 0으로 사라집니다.)

Eq.1의 Eq.2, Eq.3 Eq.4 Eq.5대체하면 다음을 얻을 수 있다.

와 함께

\ \ }가 로지스틱 함수이고 오류가 제곱 오류인 경우:

To update the weight using gradient descent, one must choose a learning rate, . The change in weight needs to reflect the impact on of an increase or decrease in . If , an increase in increases ; conversely, if , an increase in decreases . The new is added to the old weight, and the product of the learning rate and the gradient, multiplied by guarantees that changes in a way that always decreases . In other words, in the equation immediately below, always changes in such a way that is decreased:

Second-order gradient descent

Using a Hessian matrix of second-order derivatives of the error function, the Levenberg-Marquardt algorithm often converges faster than first-order gradient descent, especially when the topology of the error function is complicated.[11][12] It may also find solutions in smaller node counts for which other methods might not converge.[12] The Hessian can be approximated by the Fisher information matrix.[13]

Loss function

The loss function is a function that maps values of one or more variables onto a real number intuitively representing some "cost" associated with those values. For backpropagation, the loss function calculates the difference between the network output and its expected output, after a training example has propagated through the network.

Assumptions

The mathematical expression of the loss function must fulfill two conditions in order for it to be possibly used in backpropagation.[14] The first is that it can be written as an average over error functions , for individual training examples, . The reason for this assumption is that the backpropagation algorithm calculates the gradient of the error function for a single training example, which needs to be generalized to the overall error function. The second assumption is that it can be written as a function of the outputs from the neural network.

Example loss function

Let be vectors in .

Select an error function measuring the difference between two outputs. The standard choice is the square of the Euclidean distance between the vectors and :

The error function over training examples can then be written as an average of losses over individual examples:

Limitations

Gradient descent may find a local minimum instead of the global minimum.
  • Gradient descent with backpropagation is not guaranteed to find the global minimum of the error function, but only a local minimum; also, it has trouble crossing plateaus in the error function landscape. This issue, caused by the non-convexity of error functions in neural networks, was long thought to be a major drawback, but Yann LeCun et al. argue that in many practical problems, it is not.[15]
  • Backpropagation learning does not require normalization of input vectors; however, normalization could improve performance.[16]
  • Backpropagation requires the derivatives of activation functions to be known at network design time.

History

The term backpropagation and its general use in neural networks was announced in Rumelhart, Hinton & Williams (1986a), then elaborated and popularized in Rumelhart, Hinton & Williams (1986b), but the technique was independently rediscovered many times, and had many predecessors dating to the 1960s.[6][17]

The basics of continuous backpropagation were derived in the context of control theory by Henry J. Kelley in 1960,[18] and by Arthur E. Bryson in 1961.[19][20][21][22][23] They used principles of dynamic programming. In 1962, Stuart Dreyfus published a simpler derivation based only on the chain rule.[24] Bryson and Ho described it as a multi-stage dynamic system optimization method in 1969.[25][26] Backpropagation was derived by multiple researchers in the early 60's[22] and implemented to run on computers as early as 1970 by Seppo Linnainmaa.[27][28][29] Paul Werbos was first in the US to propose that it could be used for neural nets after analyzing it in depth in his 1974 dissertation.[30] While not applied to neural networks, in 1970 Linnainmaa published the general method for automatic differentiation (AD).[28][29] Although very controversial, some scientists believe this was actually the first step toward developing a back-propagation algorithm.[22][23][27][31] In 1973 Dreyfus adapts parameters of controllers in proportion to error gradients.[32] In 1974 Werbos mentioned the possibility of applying this principle to artificial neural networks,[30] and in 1982 he applied Linnainmaa's AD method to non-linear functions.[23][33]

Later the Werbos method was rediscovered and described in 1985 by Parker,[34][35] and in 1986 by Rumelhart, Hinton and Williams.[17][35][36] Rumelhart, Hinton and Williams showed experimentally that this method can generate useful internal representations of incoming data in hidden layers of neural networks.[10][37][38] Yann LeCun proposed the modern form of the back-propagation learning algorithm for neural networks in his PhD thesis in 1987. In 1993, Eric Wan won an international pattern recognition contest through backpropagation.[22][39]

During the 2000s it fell out of favour[citation needed], but returned in the 2010s, benefitting from cheap, powerful GPU-based computing systems. This has been especially so in speech recognition, machine vision, natural language processing, and language structure learning research (in which it has been used to explain a variety of phenomena related to first[40] and second language learning.[41]).

Error backpropagation has been suggested to explain human brain ERP components like the N400 and P600.[42]

See also

Notes

  1. ^ Use for the loss function to allow to be used for the number of layers
  2. ^ This follows Nielsen (2015), and means (left) multiplication by the matrix corresponds to converting output values of layer to input values of layer : columns correspond to input coordinates, rows correspond to output coordinates.
  3. ^ This section largely follows and summarizes Nielsen (2015).
  4. ^ The derivative of the loss function is a covector, since the loss function is a scalar-valued function of several variables.
  5. ^ The activation function is applied to each node separately, so the derivative is just the diagonal matrix of the derivative on each node. This is often represented as the Hadamard product with the vector of derivatives, denoted by , which is mathematically identical but better matches the internal representation of the derivatives as a vector, rather than a diagonal matrix.
  6. ^ Since matrix multiplication is linear, the derivative of multiplying by a matrix is just the matrix: .
  7. ^ One may notice that multi-layer neural networks use non-linear activation functions, so an example with linear neurons seems obscure. However, even though the error surface of multi-layer networks are much more complicated, locally they can be approximated by a paraboloid. Therefore, linear neurons are used for simplicity and easier understanding.
  8. ^ There can be multiple output neurons, in which case the error is the squared norm of the difference vector.

References

  1. ^ Goodfellow, Bengio & Courville 2016, p. 200, "The back-propagation algorithm (Rumelhart et al., 1986a), often simply called backprop, ..."
  2. ^ Goodfellow, Bengio & Courville 2016, p. 200, "Furthermore, back-propagation is often misunderstood as being specific to multi-layer neural networks, but in principle it can compute derivatives of any function"
  3. ^ Goodfellow, Bengio & Courville 2016, p. 214, "This table-filling strategy is sometimes called dynamic programming."
  4. ^ Goodfellow, Bengio & Courville 2016, p. 200, "The term back-propagation is often misunderstood as meaning the whole learning algorithm for multilayer neural networks. Backpropagation refers only to the method for computing the gradient, while other algorithms, such as stochastic gradient descent, is used to perform learning using this gradient."
  5. ^ a b Goodfellow, Bengio & Courville (2016, p. 217–218), "The back-propagation algorithm described here is only one approach to automatic differentiation. It is a special case of a broader class of techniques called reverse mode accumulation."
  6. ^ a b Goodfellow, Bengio & Courville (2016, p. 221), "Efficient applications of the chain rule based on dynamic programming began to appear in the 1960s and 1970s, mostly for control applications (Kelley, 1960; Bryson and Denham, 1961; Dreyfus, 1962; Bryson and Ho, 1969; Dreyfus, 1973) but also for sensitivity analysis (Linnainmaa, 1976). ... The idea was finally developed in practice after being independently rediscovered in different ways (LeCun, 1985; Parker, 1985; Rumelhart et al., 1986a). The book Parallel Distributed Processing presented the results of some of the first successful experiments with back-propagation in a chapter (Rumelhart et al., 1986b) that contributed greatly to the popularization of back-propagation and initiated a very active period of research in multilayer neural networks."
  7. ^ Goodfellow, Bengio & Courville (2016, 6.5 Back-Propagation and Other Differentiation Algorithms, pp. 200–220)
  8. ^ Ramachandran, Prajit; Zoph, Barret; Le, Quoc V. (2017-10-27). "Searching for Activation Functions". arXiv:1710.05941 [cs.NE].
  9. ^ Misra, Diganta (2019-08-23). "Mish: A Self Regularized Non-Monotonic Activation Function". arXiv:1908.08681 [cs.LG].
  10. ^ a b Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (1986a). "Learning representations by back-propagating errors". Nature. 323 (6088): 533–536. Bibcode:1986Natur.323..533R. doi:10.1038/323533a0. S2CID 205001834.
  11. ^ Tan, Hong Hui; Lim, King Han (2019). "Review of second-order optimization techniques in artificial neural networks backpropagation". IOP Conference Series: Materials Science and Engineering. 495 (1): 012003. Bibcode:2019MS&E..495a2003T. doi:10.1088/1757-899X/495/1/012003. S2CID 208124487.
  12. ^ a b Wiliamowski, Bogdan; Yu, Hao (June 2010). "Improved Computation for Levenberg–Marquardt Training" (PDF). IEEE Transactions on Neural Networks and Learning Systems. 21 (6).
  13. ^ Martens, James (August 2020). "New Insights and Perspectives on the Natural Gradient Method" (PDF). Journal of Machine Learning Research (21). arXiv:1412.1193.
  14. ^ Nielsen (2015), "[W]hat assumptions do we need to make about our cost function ... in order that backpropagation can be applied? The first assumption we need is that the cost function can be written as an average ... over cost functions ... for individual training examples ... The second assumption we make about the cost is that it can be written as a function of the outputs from the neural network ..."
  15. ^ LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey (2015). "Deep learning". Nature. 521 (7553): 436–444. Bibcode:2015Natur.521..436L. doi:10.1038/nature14539. PMID 26017442. S2CID 3074096.
  16. ^ Buckland, Matt; Collins, Mark (2002). AI Techniques for Game Programming. Boston: Premier Press. ISBN 1-931841-08-X.
  17. ^ a b Rumelhart; Hinton; Williams (1986). "Learning representations by back-propagating errors" (PDF). Nature. 323 (6088): 533–536. Bibcode:1986Natur.323..533R. doi:10.1038/323533a0. S2CID 205001834.
  18. ^ Kelley, Henry J. (1960). "Gradient theory of optimal flight paths". ARS Journal. 30 (10): 947–954. doi:10.2514/8.5282.
  19. ^ Bryson, Arthur E. (1962). "A gradient method for optimizing multi-stage allocation processes". Proceedings of the Harvard Univ. Symposium on digital computers and their applications, 3–6 April 1961. Cambridge: Harvard University Press. OCLC 498866871.
  20. ^ Dreyfus, Stuart E. (1990). "Artificial Neural Networks, Back Propagation, and the Kelley-Bryson Gradient Procedure". Journal of Guidance, Control, and Dynamics. 13 (5): 926–928. Bibcode:1990JGCD...13..926D. doi:10.2514/3.25422.
  21. ^ Mizutani, Eiji; Dreyfus, Stuart; Nishio, Kenichi (July 2000). "On derivation of MLP backpropagation from the Kelley-Bryson optimal-control gradient formula and its application" (PDF). Proceedings of the IEEE International Joint Conference on Neural Networks.
  22. ^ a b c d Schmidhuber, Jürgen (2015). "Deep learning in neural networks: An overview". Neural Networks. 61: 85–117. arXiv:1404.7828. doi:10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509.
  23. ^ a b c Schmidhuber, Jürgen (2015). "Deep Learning". Scholarpedia. 10 (11): 32832. Bibcode:2015SchpJ..1032832S. doi:10.4249/scholarpedia.32832.
  24. ^ Dreyfus, Stuart (1962). "The numerical solution of variational problems". Journal of Mathematical Analysis and Applications. 5 (1): 30–45. doi:10.1016/0022-247x(62)90004-5.
  25. ^ Russell, Stuart; Norvig, Peter (1995). Artificial Intelligence : A Modern Approach. Englewood Cliffs: Prentice Hall. p. 578. ISBN 0-13-103805-2. The most popular method for learning in multilayer networks is called Back-propagation. It was first invented in 1969 by Bryson and Ho, but was more or less ignored until the mid-1980s.
  26. ^ Bryson, Arthur Earl; Ho, Yu-Chi (1969). Applied optimal control: optimization, estimation, and control. Waltham: Blaisdell. OCLC 3801.
  27. ^ a b Griewank, Andreas (2012). "Who Invented the Reverse Mode of Differentiation?". Optimization Stories. Documenta Matematica, Extra Volume ISMP. pp. 389–400. S2CID 15568746.
  28. ^ a b Seppo Linnainmaa (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master's Thesis (in Finnish), Univ. Helsinki, 6–7.
  29. ^ a b Linnainmaa, Seppo (1976). "Taylor expansion of the accumulated rounding error". BIT Numerical Mathematics. 16 (2): 146–160. doi:10.1007/bf01931367. S2CID 122357351.
  30. ^ a b The thesis, and some supplementary information, can be found in his book, Werbos, Paul J. (1994). The Roots of Backpropagation : From Ordered Derivatives to Neural Networks and Political Forecasting. New York: John Wiley & Sons. ISBN 0-471-59897-6.
  31. ^ Griewank, Andreas; Walther, Andrea (2008). Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, Second Edition. SIAM. ISBN 978-0-89871-776-1.
  32. ^ Dreyfus, Stuart (1973). "The computational solution of optimal control problems with time lag". IEEE Transactions on Automatic Control. 18 (4): 383–385. doi:10.1109/tac.1973.1100330.
  33. ^ Werbos, Paul (1982). "Applications of advances in nonlinear sensitivity analysis" (PDF). System modeling and optimization. Springer. pp. 762–770.
  34. ^ Parker, D.B. (1985). "Learning Logic". Center for Computational Research in Economics and Management Science. Cambridge MA: Massachusetts Institute of Technology. {{cite journal}}: Cite journal requires journal= (help)
  35. ^ a b Hertz, John. (1991). Introduction to the theory of neural computation. Krogh, Anders., Palmer, Richard G. Redwood City, Calif.: Addison-Wesley Pub. Co. p. 8. ISBN 0-201-50395-6. OCLC 21522159.
  36. ^ Anderson, James Arthur, (1939- ...)., ed. Rosenfeld, Edward, ed. (1988). Neurocomputing Foundations of research. MIT Press. ISBN 0-262-01097-6. OCLC 489622044. {{cite book}}: last= has generic name (help)CS1 maint: multiple names: authors list (link)
  37. ^ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (1986b). "8. Learning Internal Representations by Error Propagation". In Rumelhart, David E.; McClelland, James L. (eds.). Parallel Distributed Processing : Explorations in the Microstructure of Cognition. Vol. 1 : Foundations. Cambridge: MIT Press. ISBN 0-262-18120-7.
  38. ^ Alpaydin, Ethem (2010). Introduction to Machine Learning. MIT Press. ISBN 978-0-262-01243-0.
  39. ^ Wan, Eric A. (1994). "Time Series Prediction by Using a Connectionist Network with Internal Delay Lines". In Weigend, Andreas S.; Gershenfeld, Neil A. (eds.). Time Series Prediction : Forecasting the Future and Understanding the Past. Proceedings of the NATO Advanced Research Workshop on Comparative Time Series Analysis. Vol. 15. Reading: Addison-Wesley. pp. 195–217. ISBN 0-201-62601-2. S2CID 12652643.
  40. ^ Chang, Franklin; Dell, Gary S.; Bock, Kathryn (2006). "Becoming syntactic". Psychological Review. 113 (2): 234–272. doi:10.1037/0033-295x.113.2.234. PMID 16637761.
  41. ^ Janciauskas, Marius; Chang, Franklin (2018). "Input and Age-Dependent Variation in Second Language Learning: A Connectionist Account". Cognitive Science. 42: 519–554. doi:10.1111/cogs.12519. PMC 6001481. PMID 28744901.
  42. ^ Fitz, Hartmut; Chang, Franklin (2019). "Language ERPs reflect learning through prediction error propagation". Cognitive Psychology. 111: 15–52. doi:10.1016/j.cogpsych.2019.03.002. hdl:21.11116/0000-0003-474D-8. PMID 30921626. S2CID 85501792.

Further reading

External links