Python 神经网络中两个隐层的反向传播和正向传播
我的问题是当隐藏单元数大于1时,深层神经网络的正向和反向传播 我知道如果我有一个隐藏层,我必须做什么。在单个隐藏层的情况下,如果我的输入数据Python 神经网络中两个隐层的反向传播和正向传播,python,neural-network,deep-learning,Python,Neural Network,Deep Learning,我的问题是当隐藏单元数大于1时,深层神经网络的正向和反向传播 我知道如果我有一个隐藏层,我必须做什么。在单个隐藏层的情况下,如果我的输入数据X\u列具有n样本,具有d数量的特征(即X\u列是(n,d)维度矩阵,y\u列是(n,1)维度向量)如果我在第一个隐藏层中有h1个隐藏单元,那么我使用Z_h1=(X_train*w_h1)+b_h1(其中w_h1是一个带有随机数项的权重矩阵,它的形状(d,h1),b_h1是一个带有形状(h1,1)的偏差单元)。我使用乙状结肠激活A_h1=sigmoid(Z_
X\u列
具有n
样本,具有d
数量的特征(即X\u列
是(n,d)
维度矩阵,y\u列
是(n,1)
维度向量)如果我在第一个隐藏层中有h1
个隐藏单元,那么我使用Z_h1=(X_train*w_h1)+b_h1
(其中w_h1
是一个带有随机数项的权重矩阵,它的形状(d,h1)
,b_h1
是一个带有形状(h1,1)的偏差单元)
。我使用乙状结肠激活A_h1=sigmoid(Z_h1)
,发现A_h1
和Z_h1
都有形状(n,h1)
。如果我有t
输出单元的数量,那么我使用带有尺寸(h1,t)
和b_out
的权重矩阵
获取输出Z_out=(A_h1*w_h1)+b_h1
。从这里我可以得到A_out=sigmoid(Z_out)
具有形状(n,t)
如果我在第一个隐藏层之后和输出层之前有第二个隐藏层(单位数为h2),那么我必须向正向传播添加哪些步骤,我应该修改哪些步骤?
我还知道如何处理单隐层神经网络的反向传播。对于上一段中的单隐层示例,我知道在第一个反向传播步骤
(输出层->隐藏层1)
,我应该执行步骤1\u BP1:Err\u out=A\u out-y\u train\u onehot
(此处y\u-train\u-onehot
是y\u-train
的onehot表示法Err\u-out
具有形状(n,t)
。接下来是步骤2\u BP1:delta\u-w\u-out=(A\u h1)^t*Err\u-out
和delta\u-b\u-out=sum(Err\u-out)
。符号()^T
表示矩阵的转置。对于第二个反向传播步骤(隐藏层1->输入层)
,我们执行以下步骤1\u BP2:sig\u derivu h1=(A\u h1)*(1-A\u h1)
。这里sig\u derivu h1
具有形状(n,h1)
。在下一步中,我执行步骤2\u BP2:Err uh1=\Sum\u I\Sum\Sum\u j[(Err_{i,j}*sig_derivu h1{i,j})
]在这里,erru h1
具有形状(n,h1)
。在最后一步中,我执行步骤3:delta_w_h1=(X_列)^T*erru h1
和delta_b_h1=sum(Err_h1)
如果我有第二个隐藏层(h2个单元数),我应该添加哪些反向传播步骤在第一个隐藏层之后和输出层之前?我是否应该修改我在这里描述的一个隐藏层情况的反向传播步骤?对于正向传播,第一个隐藏层的输出尺寸必须与第二个输入层的尺寸相适应
如上所述,您的输入具有维度(n,d)
。隐藏层1的输出将具有维度(n,h1)
。因此第二个隐藏层的权重和偏差必须分别为(h1,h2)
和(h1,h2)
因此w_h2
将是(h1,h2)
维度,b_h2
将是(h1,h2)
输出层的权重和偏差尺寸将为w_输出
尺寸将为(h2,1)
,b_输出
尺寸将为(h2,1)
在反向传播中也必须重复相同的操作。● 设X为具有形状
(n,d)
的样本矩阵,其中n
表示样本数量,d
表示特征数量
● 设wh1为形状权重矩阵(d,h1)
,以及
● 设bh1为形状(1,h1)
的偏差向量
向前传播和向后传播需要执行以下步骤:
► 正向传播:
⛶ 第1步:
Zh1=[X•wh1]+bh1
↓ ↓ ↓ ↓
(n,h1)
(n,d)
(d,h1)
(1,h1)
这里,符号•表示矩阵乘法,h1
表示第一隐藏层中隐藏单元的数量
⛶ 第2步:
设Φ()为激活函数,得到
ah1=Φ(Zh1)
↓ ↓
(n,h1)
(n,h1)
⛶ 第三步:
获得新的权重和偏差:
● wh2形状(h1,h2)
,以及
● bh2形状(1,h2)
⛶ 第4步:
Zh2=[ah1•wh2]+bh2
↓ ↓ ↓ ↓
(n,h2)
(n,h1)
(h1,h2)
(1,h2)
这里,h2
是第二个隐藏层中隐藏单元的数量
⛶ 第5步:
ah2=Φ(Zh2)
↓ ↓
(n,h2)
(n,h2)
⛶ 第6步:
获得新的权重和偏差:
● wout的形状(h2,t)
,以及
● 关于形状(1,t)
这里,t
是类的数量
⛶ 第7步:
Zout=