柚子快报邀请码778899分享:机器学习之人工神经网络

http://www.51969.com/

人工神经网络由一系列神经元组成:

每个神经元都代表了一个特定的线性函数:

每个单元都会进行以下的计算过程:

ini = ΣWj,iaj

ai = g(ini)

通过调整每一个神经元的权值W,可以使得整个神经网络非常好的拟合数据。

激活函数

每个神经元中都有一个激活函数,通常使用Sigmoid函数:

f(x) = 1/(1+e-x)

dy/dx = y(1-y)

因为它在定义域内光滑且连续,输出十分平缓。

训练过程

function ANN(examples) returns a neural network

network = a network with random weights

repeat do

for each example in examples do

FeedForward(network, example)

BackPropagation(network, example)

error = CalError(network, examples)

until error is small enough

return network

可以看到训练过程包括两个主要步骤:

前向传播(Feed Forward):将样例输入神经网络中获得每个神经元的输出;

后向反馈(Back Propagation):根据每个神经元的输出调整权值。

前向传播

在前向传播过程中,我们将输入经过两层神经元后获得每一个神经元的输出,每一层都执行以下计算:

ini = ΣWj,iaj

ai = g(ini)

function FeedForward(network, example) return a output vector

for L = 2 to layer_num do

for each node i in layer L do:

sum = weight_L_i × a_L-1 // dot product

a_L_i = g(sum)

后向反馈

在后向反馈中,我们根据输出结果与正确结果相比较后,对各个神经元的权值进行修正。

function BackPropagation(network, example)

for each node j in the output layer do

b_j = g'(a_j)*(rightanswer_j-a_j)

for L = layer_num-1 to 1 do

for each node i in layer L do

b_i = g'(a_i)*(w × b_j)

for each weight w_i,j in network do

w_i,j = w_i, j + alpha*ai*b_j // alpha 为学习率

柚子快报邀请码778899分享:机器学习之人工神经网络

http://www.51969.com/

查看原文