1)单个神经元(二分类)
2)多个神经元(多分类)
--- 建立多个神经元,但是他只有一层
补: 单层神经元的缺陷
1)单层神经元是无法拟合“异或”运算。
异或问题看似简单,使用单层的神经元确实没办法解决。
即是输入与输出之间无法去进行线性分割,比如下图
2)总结:
Sigmoid神经元要求数据必须是线性可分的。“异或”问题无法找到一条直线去分割两个类。这个问题使得神经网络的发展停滞了很多年。
3)神经元的启发
生物的神经元一层一层连接起来,当神经信号达到某一个条件,这个神经元就会激活,然后继续传递信息下去
为了继续使用神经网络解决这种不具备线性可分性的问题,采取在神经网络的输入端和输出端之间插入更多的神经元
4)多层感知器
1、梯度下降算法
概念:梯度下降法是一种致力于找到函数极值点的算法。
前面介绍过,所谓“学习”便是改进模型参数,以便通过大量训练步骤将损失最小化。有了这个概念,将梯度下降法应用于寻找损失函数的极值点便构成了依据输入数据的模型学习。
公式:梯度的输出是一个由若干偏导数构成的向量,它的每个分量对应于函数对输入向量的相应分量的偏导
图像:梯度的输出向量表明了在每个位置损失函数增长最快的方向,可将它视为表示了在函数的每个位置向哪个方向移动函数值可以增长。
曲线对应于损失函数。
点表示权值的当前值,即现在所在的位置。
梯度用箭头表示,表明为了增加损失,需要向右移动。
此外,箭头的长度概念化地表示了如果在对应的方向移动,函数值能够增长多少。如果向着梯度的反方向移动,则损失函数的值会相应减小。
2、学习速率
概念:梯度就是表明损失函数相对参数的变化率
对梯度进行缩放的参数被称为学习速率( learning rate)
在具体实践中,通过查看损失函数值随时间的变化曲线,来判断学习速率的选取是合适的。
合适的学习速率,损失函数随时间下降,直到一个底部不合适的学习速率,损失函数可能会发生震荡。下面是不合适学习速率导致损失函数震荡的情况。
选取原则:在调整学习速率时,既需要使其足够小,保证不至于发生超调,也要保证它足够大,以使损失函数能够尽快下降,从而可通过较少次数的迭代更快地完成学习。
局部极值点:
可通过将权值随机初始化来改善局部极值的问题。权值的初值使用随机值,可以增加从靠近全局最优点附近开始下降的机会。
3、反向传播算法
前馈时,从输入开始,逐一计算每个隐含层的输出,直到输出层。
然后开始计算导数,并从输出层经各隐含层逐一反向传播。为了减少计算量,还需对所有已完成计算的元素进行复用。这便是反向传播算法名称的由来。