开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):多层感知机(二)】
课程地址:https://edu.aliyun.com/course/3112108/lesson/19267
多层感知机(二)
三、BP神经网络算法概述
BP 神经网络算法,BP 是 back propagation,BP 算法是神经网络深度学习里面最重要的算法之一,了解这个算法可以让我们更加了解神经网络深度学习模型训练的本质。
BP 神经网络是在 1986 年的时候就提出来的概念,它是一种按照误差命传播算法训练的多层神经网络,是应用会最广泛的神经网络模型之一。
BP 神经网络算法其实它的这个思想就已经写在这里,就是正向传播求损失,反向传播求误差,回传误差,它是根据误差的信号来修正每一层的权重。
比如你去投篮,打篮球的时候去投篮,把球扔向篮筐的时候可能力气大了,可能力气小了,我们目标就是把篮球投进去,每次投篮的时候,如果投不进,就要进行调整,这个调整就是学习的过程,神经网络的训练跟你去打篮球,这个投篮训练是很像的,你去训练的时候很重要的就是你需要有这个反馈,就是要知道你这个投篮的时候问题在哪里?是这个力气大了,还是力气小了,还是这个方向不对,正向传播求损失,就是按照现在的模式去投篮,投篮之后你需要去观察这个损失,你的力气大了还是小了,这个差别就是这个损失。
比如我这次投篮力气大了,那损失就是力气大了,这个投篮投过了,那我要把这个学习进来。我知道大了很多,我下一次就要修正,下次出手的力量要少一点,这个就是反向传播,我看到,我学习,我要调整,我下一次的动作就小一点,他可能就进。
这个根据误差信号来修正,其实也是你投篮力气大了很多,你就是小多一点,力气小得多一点,如果下次力气小了,小了一点点,你下次调整就稍微大一点,这个修正误差的时候是根据上修正这个权重的时候,是根据上一次的误差来做这个调整的。
所以这里面有几个关键词,一个是损失,损失就是投篮的时候离这个投进差了多少,然后这个怎么样去修正这个权重,也就是你根据这个损失大小,回来去调整权重,这样就达到一个训练的目。
BP 神经网络就是这样,就是正向传播,正向传播来了一个数据,就相当于你去投篮,开始有一个输入的值,它穿过隐层,比如这里用 sigmoid 的这个函数,然后输出,得到一个预测值,预测值就是你扔出去的那个,真实值就好像篮框真正的这个位置一样,他们可能差有差别,这个差别其实就是差别大了之后说明这个训练的不够,但是他们两个可以得到损失值,就根据预测值和真实值,就知道损失值是怎样。
根据这个损失值再反向的回去调整,根据损失值来调节这个参数,调节完之后下一次再输入训练得到预测值,再根据这个输入的训练的真实值来调整,然后再改变这个权重。你训练的时候要先知道我们在这个训练这个神经网络的时候是有训练数据的,其实已经预先知道这个输入值和这个真实值,你经过这种不断的训练,用数据不断的去训练,然后不断地去调节这个参数,这个神经网络就会被训练到这个误差,这个损失值会越来越小。
有可能是设定误差损失值小到什么程度之后就停止,或者我训练多少次之后停止。这个像打球时,我可能连续投进 10 个球就停止训练,或者是我今天要投进 200 个球,投完 200 个球,然后才能完成这个训练,就是按照训练次数或者是训练目标来决定什么时候完成。
这个算法的思想就是这个 BP 神经网络算法,这里在调节这个权重去进行修正的时候,就可以用我们之前有提到的这个梯度下降的方式去调节,这里面还有很多技术可以调优的地方。 BP 神经网络算法,我们就介绍到这里。
四、本节回顾
通过本节的学习,我们学到了:
1、感知机的概述
感知机是一种有监督的二分类算法,只能解决线性问题
2、多层感知机的层级结构与激活函数
多层感知机的层级结构主要包含输入层、隐藏层和输出层,可以用于拟合非线性函数
激活函数是一种在人工智能神经网络的神经单元上运行的函数,旨在帮助网络学习数据中的复杂模式,负责将神经元节点的输入映射到输出端
常见激活函数:Sigmoid函数、Tanh函数、ReLU函数等等
3、BP神经网络算法
BP神经网络是一种按误差逆传播算法训练的多层神经网络,正向传播求损失,反向传播回传误差,根据误差信号修正每层的权重