参考
5.1 神经元模型
神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的的交互反应。
M-P神经元模型
神经元收到其他n个神经元传递的输入信号,输入信号通过带权重的连接进行连接,神经元将总输入值与神经元阈值进行比较,通过激活函数处理,产生输出。即
对于激活函数,理想的激活函数应当是阶跃函数,因为阶跃函数能够将输入值映射为“0”或者“1”,这两个输出结果很好的对应了“兴奋”与“抑制”状态。但是由于阶跃函数具有不连续,不光滑等不太友好的数学性质,会导致后期最优解问题的棘手,估在神经网络的激活函数不采用阶跃函数,而是采用sigmod函数,两者在坐标轴如图所示
把许多这样的神经元按一定层次结构连接起来就得到神经网络。
5.2 感知机和多层网络
感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)
公式
给定训练数据集,权重和阈值
可以通过学习得到,阈值
可以看做一个固定输入,则此时可以看作为一个权重学习模型。
对训练样例,若当前的感知机的输出为
,则其对应的权重调整公式为
是
对应于第i个输入神经元的分量;
通常设置为小正数,在0和1之间,称之为学习率(learning rate)
在输入层(input layer)和输出层(output layer)之间存在隐含层(hidden layer),且隐含层和输出层神经元都是拥有激活函数的功能神经元,可解决非线性可分问题,两层感知机就能解决异或可分问题。
根据训练数据来调整神经元之间的连接权(connection weight)以及每个功能神经元的阈值。
5.3 误差逆传播算法
前面提到的简单二层感知机的学习规则并不适用于多层的神经网络,对于多层神经网络的学习,我们通常通过误差逆传播(error BackPropagation,简称BP)算法进行学习。误差逆传播算法适用于多种神经网络,例如常见的多层前馈神经网络,递归神经网络等。
在样本上的损失函数为
梯度下降法迭代参数
令
这时,梯度下降更新
算法过程
5.4 全局最小与局部最小
跳出局部最小的策略:
以多组不同的参数值初始化多个神经网络,即从多个不同的初始点开始搜索,这样有可能陷入不同的局部极小;取其中误差最小的解作为最终参数。
使用“模拟退火”技术:在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小。每步迭代中,接受“次优解”的概率随时间的推移而逐渐降低,保证算法稳定。
使用随机梯度下降。即便陷入局部极小,计算出的梯度仍可能不为0。
5.5 深度学习
理论上来说,参数越多的模型复杂度越高,容量越大,这意味着它能完成更复杂的学习任务。一般情形下,复杂模型的训练效率低,易陷入过拟合,计算能力的大幅提高可缓解训练低效性,训练数据的大幅增加则可降低过拟合风险。典型的深度学习模型,就是很深层的神经网络。使用经典算法进行训练时,因为误差在多隐层内逆传播时,往往会发散而不嗯呢该收敛达到稳定状态
解决办法
无监督逐层训练
预训练(Pre-training):每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入。
调优(Fine-turning):在预训练全部完成后,在对整个网络进行微调训练。
权共享(weight sharing),让一组神经元使用相同的连接权,典型代表CNN(Convolutional Nerual Network 卷积神经网络,
特征学习或表示学习,逐渐将初始的“低层”特征表示转化为“高层”特征表示,然后用“简单模型”即可完成复杂的分类等学习任务
参考
https://blog.csdn.net/black_shuang/article/details/80737836