前馈神经网络

1.神经网络

神经网络最早是作为一种主要的连接主义模型。
20世纪80年代后期,最流行的一种连接主义模型是分布式并行处理(Parallel Distributed Processing,PDP)网络,其有3个主要特性:
1)信息表示是分布式的(非局部的);
2)记忆和知识是存储在单元之间的连接上;
3)通过逐渐改变单元之间的连接强度来学习新的知识。
引入误差反向传播来改进其学习能力之后,神经网络也越来越多地应用在各种机器学习任务上。
人工神经网络主要由大量的神经元以及它们之间的有向连接构成。因此考虑三方面:

神经元的激活规则

主要是指神经元输入到输出之间的映射关系,一般为非线性函数。

网络的拓扑结构

不同神经元之间的连接关系。

学习算法

通过训练数据来学习神经网络的参数。

2.网络结构

1.前馈网络
2.记忆网络(有循环,历史状态,记忆能力)
3.图网络

3.前馈神经网络(全连接神经网络、多层感知器)

各神经元分别属于不同的层,层内无连接。
相邻两层之间的神经元全部两两连接。
整个网络中无反馈,信号从输入层向输出层单向传播,可用一个有向无环图表示。
这是一个有向无环图

记号                              含义                                  
L
Mi l
fl() l
W(l)RMl×Ml1 l1l
b(l)RMl l1l
z(l)RMl l()
a(l)RMl l()

3.1信息传递过程

前馈神经网络通过下面公式进行信息传播
z(l)=W(l)a(l1)+b(l)
a(l)=fl(z(l)),fz(l),

a(l)=fl(W(l)a(l1)+b(l))
前馈计算:
x=a(0)z(1)a(1)z(2)....a(L1)z(L)a(L)=ϕ(x;W,b),W,b

,
3,5,
M1=3,M2=5,W2R5×3,,α1R3,b2inR5,z2R5
z2=W2a1+b2
R5=R5×3R3+R5

3.2 通用近似定理

根据通用近似定理,对于具有线性输出层和至少一个使用“挤压”性质的激活函数的隐藏层组成的前馈神经网络,只要其隐藏层神经元的数量足够,它可以以任意的精度来近似任何从一个定义在实数空间中的有界闭集函数。
所以"挤压"性质的函数是指像sigmoid函数的有界函数,ReLU也使用

关于证明可以搜索

A visual proof that neural nets can compute any function

作业

ReLU也满足通用近似定理的证明

3.3 挤压函数Squashing function

挤压函数是将大范围输入挤压到较小区间的函数,通常被用于做 激活函数 ,主要有 Sigmoid 函数 和 TANH 双曲正切函数两种。
其中 Sigmoid 函数是一种常见的挤压函数,可将较大范围的输入挤压到 (0,1) 区间内
TAHN 双曲正切函数是 Sigmoid 函数的变体,其取值范围在 [ -1 , 1 ],定义域为 R,其同为挤压函数的一种。

3.4 前馈神经网络在机器学习中的应用

神经网络可以作为一个“万能”函数来使用,可以用来进行复杂的特征转换,或逼近一个复杂的条件分布。
y^=g(ϕ(x);θ),ϕ(x),g,P(y|x)=ϕ(x)
如果g()为Logistic回归,那么Logistic回归分类器可以看成神经网络的最后一层。
也可以是其他复杂的分类器,比如SVM等等,但是分类器不是关键,关键是特征

3.5 计算梯度-误差反向传播算法

3.5.1 链式法则

1.xR,y=g(x)RM,z=f(y)RN,
zx=yxzyR1×N
1.xRM,y=g(x)RK,z=f(y)RN,
zx=yxzyRM×N
1.XRM×N,y=g(x)RK,z=f(y)R,
zxij=yxijzyR

3.5.2 结构化风险函数

R(W,b)=1Nn=1NL(y(n),y^(n))+12λ||W||F2
z(l)=W(l)α(l1)+b(l)
wij(l),b(l)

z,
L(y,y^)wij(l)=z(l)wij(l)L(y,y^)z(l)
L(y,y^)b(l)=z(l)b(l)L(y,y^)z(l)
1.z(l)wij(l)=[z1(l)wij(l),...,zi(l)wij(l),...,zMl(l)wij(l)]=[0,...,(wi:(l)a(l1)+bi(l))wij(l),...,0]
=[0,...,aj(l1),...,0]R1×Ml
2.L(y,y^)z(l)δ(l)RMl,

3.z(l)b(l)=IMlRMl×Ml

3.5.3 δ(l)

先放两条公式
z(l+1)=W(l+1)α(l)+b(l+1)
a(l)=fl(z(l))
δ(l)=L(y,y^)z(l)
=a(l)z(l)z(l+1)a(l)L(y,y^)z(l+1)

a(l)z(l)a(l)=fl(z(l))
z(l+1)a(l)z(l+1)=W(l+1)α(l)+b(l+1)

=diag(fl(z(l)))(W(l+1))Tδ(l+1)
=fl(z(l))((W(l+1))Tδ(l+1))RMl
((W(l+1))Tδ(l+1)),diag,((W(l+1))Tδ(l+1))
,l+1δlδ,

3.5.4 计算完整梯度

回到计算梯度的目标函数
L(y,y^)wij(l)=z(l)wij(l)L(y,y^)z(l)
L(y,y^)b(l)=z(l)b(l)L(y,y^)z(l)
1.L(y,y^)wij(l)
=[0,...,aj(l1),...,0]δ(l)
=δi(l)aj(l1)

L(y,y^)W(l)=δ(l)(a(l1))TRMl×Ml1
L(y,y^)b(l)=IMδ(l)=δ(l)RMl

3.5.6 完整学习步骤

posted @   筷点雪糕侠  阅读(800)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示