误差反向传播算法又称BP算法,是神经网络中最好的算法,广泛应用于多层网络。
在此之前,让我们来理解几个概念吧
M-P神经元模型M-P模型是基于生物神经元结构和机制建立的抽象和简化模型。
对于第j个神经元,它接收来自多个其他神经元的输入信号xi。 各突触强度用实系数w表示,这是第I个神经元作用于第j个神经元的权重值。
多层神经网络结构
学习率
importpandasaspdimportnumpyasnpdefsigmoid (x ) :return1/(1NP.exp(-x ) ) defBP ) x_train、y_train、nu numb x_train ) ) print ) y_train: ),y_train ) v=表示NP.matrix的numb ) #随机生成输入层神经元和隐藏层神经元之间的连接权(print ) len ) y_train.t ) ) ) ) ) ) ) w ) thita=NP.matrix(NP.random.rand ) len(y_train.t ) ) )输出神经元的阈值# ppth ) thita ) garma=NP.matrix(NP.random.rand ) numb )输出神经元阈值#print('garma: ', gar ma (temp=0foriinrange (len (x _ train ) ) :alpha=x_train ).dot ) v )输入隐层神经元#print(alpha ) beta ) y _ estimate=sigmoid (beta-th ita ) )来确定y的估计(#print ) y _ estimate (g=y _ estimate.dot (1- y _ y ) ) priiimate g ) e=b.dot(1-b ).t ).dot ) g ).dot )隐层神经元的梯度#print ) ' e ),e ) e=1/2* (y _ estimate-y e ) if E temp: # )更新连接权限和阈值w=winta*(b.t ).dot (g ) print ),w ) thITA=thITA-inta*g#print ) ) thITA )、 thita ) v=vinta((x_train[I].t ).dot (e ) #print ),v ) garma=garma-inta ) e#隐层神经元的阈值(print ) ) 4 )输入层:随机生成3个样本,分别具有4个神经元y=NP.matrix (NP.random.rand ) 3,2 ) )的thita,garma=BP(x,y )