Câu trả lời:
Thuật toán lan truyền ngược là một độ dốc gốc để phù hợp với mô hình mạng thần kinh. (như được đề cập bởi @Dikran) Hãy để tôi giải thích làm thế nào.
Chính thức: Sử dụng tính toán độ dốc ở cuối bài này trong phương trình [1] bên dưới (đó là định nghĩa của độ dốc gốc) đưa ra thuật toán lan truyền ngược như một trường hợp cụ thể của việc sử dụng độ dốc gốc.
Một mô hình mạng thần kinh Chính thức, chúng tôi sửa các ý tưởng bằng một mô hình lớp đơn giản:
nơi g : R → R và s : R M → R M được biết đến với cho tất cả m = 1 ... , M , s ( x ) [ m ] = σ ( x [ m ] ) và
Một hàm mất bậc hai được thực hiện để sửa ý tưởng. Do đó các đầu vào vectơ của R p có thể được trang bị cho sản lượng thực tế ( y 1 , ... , y n ) của R (có thể là vectơ) bằng cách giảm thiểu sự mất mát thực nghiệm: R n ( A 1 , A 2 ) = n ∑ i = 1 ( y i - f ( x liên quan đến sự lựa chọn A 1 và A 2
Gradient descent Một grandient gốc để giảm thiểu là một thuật toán lặp: một l + 1 = một l - γ l ∇ R ( một l ) , l ≥ 0. Đối với kích thước bước cũng chọn ( γ l ) l (hay còn gọi là tỷ lệ học trong khuôn khổ tuyên truyền trở lại). Nó đòi hỏi sự tính toán của gradient của R . Trong trường hợp được xem xét a l = ( A 1 l , A 2
Here I used the R notation: is the vector composed of the coordinates of from index to index .
Back-propogation is a way of working out the derivative of the error function with respect to the weights, so that the model can be trained by gradient descent optimisation methods - it is basically just the application of the "chain rule". There isn't really much more to it than that, so if you are comfortable with calculus that is basically the best way to look at it.
If you are not comfortable with calculus, a better way would be to say that we know how badly the output units are doing because we have a desired output with which to compare the actual output. However we don't have a desired output for the hidden units, so what do we do? The back-propagation rule is basically a way of speading out the blame for the error of the output units onto the hidden units. The more influence a hidden unit has on a particular output unit, the more blame it gets for the error. The total blame associated with a hidden unit then give an indication of how much the input-to-hidden layer weights need changing. The two things that govern how much blame is passed back is the weight connecting the hidden and output layer weights (obviously) and the output of the hidden unit (if it is shouting rather than whispering it is likely to have a larger influence). The rest is just the mathematical niceties that turn that intuition into the derivative of the training criterion.
I'd also recommend Bishops book for a proper answer! ;o)
It's an algorithm for training feedforward multilayer neural networks (multilayer perceptrons). There are several nice java applets around the web that illustrate what's happening, like this one: http://neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html. Also, Bishop's book on NNs is the standard desk reference for anything to do with NNs.