神经网络

本文介绍了神经网络的基本构成单元——神经元模型,并详细解释了多层前馈神经网络的工作原理及反向传播算法,包括前向传播过程、损失函数计算及权重更新等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

优快云这几天坏了ヽ(`Д´)ノ︵ ┻━┻ ┻━┻
##一. 神经元模型
神经网络中最基本的成分:神经元模型
神经元模型: 线性模型+激活函数
这里写图片描述
线性模型+符号函数 = 感知机
线性模型+sigmoid函数 = 逻辑回归
##二 . 多层前馈神经网络
定义: 每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。

假设第l−1l−1l1层共有mmm个神经元,第lll层共有nnn个神经元,
则第lll层的线性系数WWW组成了一个n×mn×mn×m的矩阵WlW^lWl,
lll层的偏置bbb组成了一个n×1n×1n×1的向量blb^lbl ,
l−1l−1l1层的的输出aaa组成了一个m×1m×1m×1的向量al−1a^{l−1}al1
lll层的的未激活前线性输出ZZZ组成了一个n×1n×1n×1的向量ZlZ^lZl,
激活函数σ\sigmaσ 可以有多种选择。
sigmoid tanh ReLu
lll层的的输出aaa组成了一个n×1n×1n×1的向量ala^lal。则用矩阵法表示,
lll层的输出为:
al=σ(Zl)=σ(Wlal−1+bl)a^l=\sigma (Z^l) = \sigma(W^la^{l-1}+b^l) al=σ(Zl)=σ(Wlal1+bl)
前向传播算法:
从输入层开始,一层层的向后计算,一直到运算到输出层,得到输出结果aLa^LaL
##三. 反向传播算法(BackPropagation)
这里写图片描述
训练数据集 D={(x1,y1),(x2,y2),..(xm,ym)}D=\{(x_1,y_1),(x_2,y_2),..(x_m,y_m)\}D={(x1,y1),(x2,y2),..(xm,ym)}
损失函数最小化, 神经网络可选的损失函数有很多: 平方损失函数,交叉熵 , 对数似然。
待求参数是每一个层与层之间的权值矩阵wlw^lwl和偏置矩阵blb^lbl
这里以平方损失函数为例。aLa^LaL 是输出层的结果。
E(W,b,x,y)=12∥aL−y∥22E(W,b,x,y) = \frac{1}{2}\|a^L-y\|^2_{2}E(W,b,x,y)=21aLy22
=12∥σ(WLaL−1+bL)−y∥22=\frac{1}{2}\|\sigma(W^La^{L-1}+b^L)-y\|^2_{2}=21σ(WLaL1+bL)y22
求导
∂E∂WL=∂E∂aL∂aL∂ZL∂ZL∂WL=(aL−y)⊙σ′(ZL)(aL−1)T\frac{\partial E}{\partial W^L}= \frac{\partial E}{\partial a^L} \frac{\partial a^L}{\partial Z^L}\frac{\partial Z^L}{\partial W^L}=(a^L-y) \odot \sigma^{'}(Z^L)(a^{L-1})^TWLE=aLEZLaLWLZL=(aLy)σ(ZL)(aL1)T
∂E∂bL=∂E∂aL∂aL∂ZL∂ZL∂bL=(aL−y)⊙σ′(ZL)\frac{\partial E}{\partial b^L}= \frac{\partial E}{\partial a^L} \frac{\partial a^L}{\partial Z^L}\frac{\partial Z^L}{\partial b^L}=(a^L-y) \odot \sigma^{'}(Z^L)bLE=aLEZLaLbLZL=(aLy)σ(ZL)
其中$\odot 表示Hadamard积,矩阵的对应元素相乘。&lt;fontcolor=red&gt;权值矩阵先影响到输出层神经元的输入表示Hadamard积,矩阵的对应元素相乘。 &lt;font color =red&gt;权值矩阵先影响到输出层神经元的输入Hadamard<fontcolor=red>ZL$,再影响到输出层神经元的输出$aL,然后影响到损失函数,然后影响到损失函数E$。
由此我们算出了输出层的梯度,那如何计算下一层,下下一层的梯度呢?
反向传播:从输出层开始,一层一层往下计算

∂E∂WL−1=∂E∂ZL∂ZL∂ZL−1∂ZL−1∂WL−1\frac{\partial E}{\partial W^{L-1}}= \frac{\partial E}{\partial Z^L} \frac{\partial Z^{L}}{\partial Z^{L-1}}\frac{\partial Z^{L-1}}{\partial W^{L-1}}WL1E=ZLEZL1ZLWL1ZL1
第一项就是上面LLL层梯度链式法则中前两项的乘积
第二项 很容易算
ZL=WLaL−1+bL=WLσ(ZL−1)+bLZ^L=W^La^{L-1}+b^L=W^L\sigma(Z^{L-1})+b^LZL=WLaL1+bL=WLσ(ZL1)+bL
第三项 很容易算
ZL−1=WL−1aL−2+bL−1Z^{L-1}=W^{L-1}a^{L-2}+b^{L-1}ZL1=WL1aL2+bL1
由此算出了L−1L-1L1层的梯度,如此递推
L−2L-2L2
∂E∂WL−2=∂E∂ZL−1∂ZL−1∂ZL−2∂ZL−2∂WL−2\frac{\partial E}{\partial W^{L-2}}= \frac{\partial E}{\partial Z^{L-1}} \frac{\partial Z^{L-1}}{\partial Z^{L-2}}\frac{\partial Z^{L-2}}{\partial W^{L-2}}WL2E=ZL1EZL2ZL1WL2ZL2
第一项 是上面的L−1L-1L1层梯度链式法则前两项的乘积
第二项 第三项 同上 很好算
根据梯度下降算法(SGD, MBGD)就能学出神经网络了。(╯°O°)╯( ┻━┻再掀一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值