一、神经网络概述
- 是什么:
- 神经网络学习
- 机器学习与神经网络这两个学科领域的交叉部分
- 包含了很多参数的数学模型
- 最基本的成分:
- 神经元模型
- M-P神经元模型
- 干什么:
- 神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阙值进行比较,然后通过“激活函数”处理以产生神经元的输出
- 图示:
- 激活函数:
- 图示:
- 理想的激活函数:阶跃函数
- 将输入值映射为输出值0/1
- 不太好的性质:
- 不连续、不光滑
- Sigmoid函数
- 性质:
- 性质:
- 图示:
- 干什么:
- M-P神经元模型
- 神经元模型
- 提高容量的方法:
- 增加隐层的数目
- 隐层增加,相应的神经元连接权、阙值等参数就会更多
- 这种做法存在的问题:
- 多隐层神经网络难以直接用经典算法进行训练
- 训练有效手段1:无监督逐层训练
- 基本思想:
- 预训练
- 每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入
- 对整个网络进行微调训练
- 预训练
- 基本思想:
- 训练有效手段2:权共享(在CNN卷积神经网络中发挥了重要作用)
- 让一组神经元使用相同的连接权
- 训练有效手段1:无监督逐层训练
- 多隐层神经网络难以直接用经典算法进行训练
- 单纯增加隐层神经元的数目
- 增加隐层的数目
- 学习过程:
- 根据训练数据来调整神经元之间的连接权以及每个功能神经元的阙值
- 感知机:
- 组成:
- 两层神经元:
- 输入层:接收外界输入信号后传递给输出层
- 输出层:M-P神经元/阙值逻辑单元
- 两层神经元:
- 特点:
- 实现与^、或(向下的箭头)、非运算很容易
- 对于给定数据集,权重及阙值可通过学习得到,而阙值可被看成连接权重,所以这个学习可统一为权重的学习
- 组成:
- BP神经网络&误差逆传播(error BackPropagation:BP)算法
- BP算法是什么:
- 训练多层网络的学习算法
- 一个迭代学习算法
- BP算法目标:
- 最小化训练集上的累积误差
- BP算法分类:
- 累积BP算法
- 特点:
- 直接针对累积误差最小化,在读取整个训练集一遍后才对参数进行更新,参数更新的频率低得多,但在很多任务中,累积误差下降到一定程度后,进一步下降会非常缓慢
- 特点:
- 标准BP算法
- 特点:
- 每次更新只针对单个样例,参数更新得非常频繁,而且对不同样例进行更新的效果可能出现“抵消”现象,为了达到同样的累积误差极小点,需要进行更多次数的迭代
- 特点:
- 累积BP算法
- BP神经网络:
- 是什么:
- BP算法训练的多层前馈神经网络
- 特点:
- 表示能力强大,经常遭遇过拟合问题,训练误差持续降低,测试误差却可能上升
- 缓解过拟合问题的策略:
- 早停
- 将数据分为训练集、验证集
- 训练集用于计算梯度、更新连接权和阙值
- 验证集用来估计误差
- 若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阙值
- 将数据分为训练集、验证集
- 正则化
- 基本思想
- 在误差目标函数中增加一个用于描述网络复杂度的部分
- 基本思想
- 早停
- 缓解过拟合问题的策略:
- 表示能力强大,经常遭遇过拟合问题,训练误差持续降低,测试误差却可能上升
- 是什么:
- BP算法详解:
- 给定训练集,构建拥有d个输入神经元,l个输出神经元,q个隐层神经元的多层前馈网络结构
- 给定训练集,构建拥有d个输入神经元,l个输出神经元,q个隐层神经元的多层前馈网络结构
- 神经网络的输出:
- 网络在(Xk,Yk)上的均方误差:
- BP算法是什么:
- 其他常见的神经网络:
- RBF网络、ART网络、SOM网络、级联相关网络、Elman网络、Bpltzmann机
- 很深层的神经网络:深度学习/特征学习/表示学习
- 优点:
- 可解决复杂模型训练效率低,易陷入过拟合的问题
- 可通过机器学习技术自身来产生好特征
- 优点: