神经网络与梯度下降,反向传播总结

神经网络与梯度下降,反向传播总结

引自3Blue1Brown的视频,b站上有它的官方账号。它的线性代数的原理,微积分的原理及神经网络系列都是神作

MLP多层感知机

3Blue1Brown

https://www.bilibili.com/video/BV1bx411M7Zx?spm_id_from=333.999.0.0 一定要多看几遍

一、MLP神经网络的结构和原理

理解神经网络主要包括两大内容,一是神经网络的结构,其次则是神经网络的训练和学习,其就好比我们的大脑结构是怎么构成的,而基于该组成我们又是怎样去学习和识别不同事物的,这次楼主主要讲解第一部分,而训练和学习则放到后续更新中。

神经网络其实是对生物神经元的模拟和简化,生物神经元由树突、细胞体、轴突等部分组成。树突是细胞体的输入端,其接受四周的神经冲动;轴突是细胞体的输出端,其发挥传递神经冲动给其他神经元的作用,生物神经元具有兴奋和抑制两种状态,当接受的刺激高于一定阈值时,则会进入兴奋状态并将神经冲动由轴突传出,反之则没有神经冲动。

img

我们基于生物神经元模型可得到多层感知器MLP的基本结构,最典型的MLP包括包括三层:输入层、隐层和输出层,MLP神经网络不同层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。

img

img

由此可知,神经网络主要有三个基本要素:权重、偏置和激活函数

权重:神经元之间的连接强度由权重表示,权重的大小表示可能性的大小

偏置:偏置的设置是为了正确分类样本,是模型中一个重要的参数,即保证通过输入算出的输出值不能随便激活。

激活函数:起非线性映射的作用,其可将神经元的输出幅度限制在一定范围内,一般限制在(-11)或(01)之间。最常用的激活函数是Sigmoid函数,其可将(-∞,+∞)的数映射到(0~1)的范围内。

img

激活函数还有tanh和ReLU等函数,tanh是Sigmoid函数的变形,tanh的均值是0,在实际应用中有比Sigmoid更好的效果;ReLU是近来比较流行的激活函数,当输入信号小于0时,输出为0;当输入信号大于0时,输出等于输入;具体采用哪种激活函数需视具体情况定。

img

从上面可知下层单个神经元的值与上层所有输入之间的关系可通过如下方式表示,其它以此类推。

img

MLP的最经典例子就是数字识别,即我们随便给出一张上面写有数字的图片并作为输入,由它最终给出图片上的数字到底是几。

img

对于一张写有数字的图片,我们可将其分解为由28*28=784个像素点构成,每个像素点的值在(0~1)之间,其表示灰度值,值越大该像素点则越亮,越低则越暗,以此表达图片上的数字并将这786个像素点作为神经网络的输入。

而输出则由十个神经元构成,分别表示(09)这十个数字,这十个神经元的值也是在(01)之间,也表示灰度值,但神经元值越大表示从输入经判断后是该数字的可能性越大。

img

隐层的层数和神经元的选择需根据具体情况选择,此例选择两层隐层,每层16个神经元。那么根据上面的叙述,根据权重、偏置的个数此神经网络将会有13002个参数需要去调节,而如何调整这些参数,

image-20211116100534588通过楼主上面的叙述,该图像识别问题最终可通过线性方程的方式表示出来,从而来描述本篇通过MLP神经网络进行数字识别的案例,并通过建立的问题描述模型来编程实现。

深度学习之梯度下降法

首先,复习上一章,我们构建mLP模型是基于我们“也许”能在每一层提取出图像的部分特征来进行学习与识别,并赋予权重来得到最有可能的图像来进行分类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJseaZzb-1637919292000)(https://i.loli.net/2021/11/26/yzv6FuiHDRfSTrs.png)]这次来学习神经网络是如何学习的,我们需要找到一种算法可以调整13000个权重和偏置值,以提高网络对训练数据的表现

image-20211126091549959

同时希望它可以识别更多未知的图像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DsjroT0k-1637919292004)(https://i.loli.net/2021/11/26/aRCE7K9GptToZYN.png)]

我们以Minst数据集用于进行手写数字的识别来进行我们的训练来进行讲解

weight代表着权重,各个神经元的重要程度,偏置值则代表神经元是否更容易被激活

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zpFCLuzi-1637919292007)(https://i.loli.net/2021/11/26/t2XP9uew1xCIFT7.png)]一开始我们完全随机权重值和偏置值

这样我们得到一个“垃圾”网络

如何衡量网络性能,一般利用均方误

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yqcgFUYr-1637919292009)(https://i.loli.net/2021/11/26/bnxzkLEgsqQHpD2.png)]

只告诉电脑有多糟糕并不行,需要告诉电脑要怎样才能优化权重

将问题转化为优化问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5dShNvcP-1637919292012)(https://i.loli.net/2021/11/26/w7RM1ipIm8PDTQs.png)]

一个朴素的想法是直接求导,找极值(微积分思想)

但是这样的工作量太大了 不适合,因此需要考虑利用梯度下降法来不断寻找极值点,我们只需要告诉我们的函数向那个方向移动可以使得损失函数下降最快,再朝这个地方去移动就可以。(梯度下降法思想

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2oIyMUou-1637919292014)(https://i.loli.net/2021/11/26/Nn4P2sv3O6Ykx95.png)]

代价函数 的输入与输出

代价函数梯度告诉我们如何调整权重最快

接下来 我们考虑神经网络是如何工作的,我们把各个层的输出展示出来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lb6KxRP5-1637919292016)(https://i.loli.net/2021/11/26/vclJ1ZMUxEPA6ty.png)]

实际上 并没有什么规律

由此,由神经网络的工作原理,我们可以得到神经网络不能自己写数字,只能识别 看起来并没有这么智能

反向传播

反向传播算法是神经网络的核心

视频地址https://www.bilibili.com/video/BV16x411V7Qg/?spm_id_from=333.788.videocard.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值