神经网络-前向传播
Posted 小帆的帆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络-前向传播相关的知识,希望对你有一定的参考价值。
转载请标明出处:小帆的帆的专栏
记号
下面会用到这些记号
记号这样设计的原因是,希望产生这样的效果
zl+1=alWl+bl
上一层经过计算,产生,下一层的数据
X: 泛指样本集,不明确说明是用于,训练、验证还是测试
X(,j)
: 所有样本,第j个特征的值
y: 泛指样本集的真实输出值
alj
: 第l层,第j个神经元的激活值
al
: 第l层,神经元中的激活值。对于输入层来说,X就是
a1
wljk
:权重。第l层,从第j个神经元指向下一层第k个神经元
wlk
:权重。第l层,指向下一层第k个神经元的权重
zlj
: 第l层,第j个神经元激活前的值
zl
: 第l层,神经元中激活前的值。
zl
从
z2
开始,没有
z1
σ
: 表示某个激活函数
X_train: 训练样本集
y_train: 训练样本集的真实输出值
m: 样本集个数,也就是X的行数
n: 样本集的特征数,也就是X的列数,也等于input_size
input_size: 输入层神经元数量
hidden_size: 隐藏层神经元数量
output_size: 输出层神经元数量
特点
方向:从左往右
作用:由最左边的输入,计算出最右边的输出
推导
1、计算
在前向传播过程中,我们只使用 al 而不使用X,因为 al 可以代表每一层中神经元的激活值,而X只表示输入层的值,所以
a1=X(1)
2、计算 a2 ,隐藏层
首先需要算
z2
,然后
z2
经过激活函数后得到
a2
3、计算 a3 ,输出层
与计算
a2
一样
总结
当把X赋值给 a1 后,后面计算方式都是一样的,所以只需要下面三个公式就可以计算任何层级的前向传播了。
a1=X(1)zl+1=alWl+bl(6)al=σ(zl)前向传播和反向传播