一天搞懂深度学习
这个 PPT 来源于d0evi1的博客,关于机器学习的学习资料推荐。
概论
步骤
- 定义函数集
- 判断函数好坏
- 损失函数
- 交叉熵
- 选择最优函数
- 梯度下降法
- 存在局部最优解的问题
- 计算梯度的算法是反向传播算法,简称BP
- 越多的参数带来越好的预测能力
- 为什么在网络形状上,Deep比Fat更好
- 层数和单层参数量的均衡分配能带来最优的预测效果。在单层参数够多的情况下,增加层数带来的效果更好。
- 可以把神经网络和数字电路做类比,简单多层的结构使模型更简单
- Deep -> Modularization -> Less training data
- 梯度下降法
神经网络
- 神经元由以下元素组成
- weights
- bias
- activation function
- 不同的连接导致不同的网络结构
- 全连接前馈神经网络
- Deep 的含义是包含很多隐藏的中间层
- 可选的输出层
- 使用 sigmoid 函数
- 使用 softmax 层
训练方法
发掘深度神经网络潜能的一些问题:
- 没办法得到很好的训练结果:重新选择训练方式
- 没有办法得到很好地测试结果:往往由于过度拟合导致,需要重新定义方法
- 层数过多可能出现反效果,使精确度下降
- 梯度消失问题
优化训练方法的手段
- 选择合适的损失函数:使用交叉熵的效果要好于均方差
- 每次训练使用少量数据能缩短训练周期,提高训练效率和精确度
- 激活函数
- 使用
ReLU(Rectified Linear Unit)
替代sigmoid - RBM(受限玻尔兹曼机)
可以解决梯度消失的问题,可以训练更深的神经网络。激活函数类似于模拟电路的数字化,模拟信号最后输出0或1。- Leaky ReLU
- Parametric ReLU
- Learnable activation function
- 使用
- Adaptive learning rate
- 每几代都根据比率减小学习速率
- Momentum:一定程度上避免陷入局部最低点的问题
- 平原区学习速率非常缓慢
- 卡在小峰之前
- 卡在局部最小点
避免过度拟合(overfitting)的方法:
- 即时提早停止:使用交叉验证方式,及时发现预测精度下降
- Weight Decay:删除不必要的神经元连接
- Dropout
- dropout是删除神经元,dropconnect 是删除神经元连接
- dropout 优于 maxout
- dropout 可以抵抗输入噪声
- Network structure:其他形态的网络,例如CNN
神经网络变体
卷积神经网络(CNN)
通常情况下,一个CCN包含多次的卷积(convolution)、池化(max pooling),然后flatten,最终通过一个深度神经网络进行学习预测。
应用于图像、语音识别。核心思想在于一些物体的特征往往可以提取出来,并且可能出现在图片任何位置,而且通过卷积、池化可以大大减少输入数据,加快训练效率。
循环神经网络(RNN)
RNN的思想是将隐藏层的数据存储下来,然后作为输入给下一个网络学习。这种网络的想法可以解决自然语言中前后词语是存在关联性的,所以RNN可以把这些关联性放到网络中进行学习。
还存在双向的RNN结构、LSTM(long short-term memory。LSTM中三个控制信号分别控制输入、遗忘和输出)。
LSTM = Zo * (Zf * F(Cf)) * (Zi * z)
基于RNN的神经网络的损失函数输出存在巨大的跳跃性。
还有一些特殊的结构,比如 Clockwise RNN、Structurally Constrained Recurrent Network (SCRN)。
库的使用
- keras 是 tensorflow 和 theano 的接口封装
- keras 支持 LSTM、GRU(Gated Recurrent Unit,模型比LSTM简单)、SimpleRNN
其他前沿技术
分类
- 监督学习
- Ultra Deep Network
- Attention Model
- 文本语义分析
- 视觉问答
- 托福听力理解问答
- 强化学习
- 无监督学习
- 认识图片
- 理解文本含义
- 无监督地学习人类语言(语音)
Ultra Deep Network
2015年出现了152层的Residual Net实现了图片3.57%错误率。
- AlexNet 2012
- VGG 2014
- GoogleNet 2014
- Residual Net 2015
Reinforcement Learning
通过奖励机制强化学习,并且做出相应的动作。
强化学习的困难:
- 牺牲短期奖励来获得长期奖励
- 每个动作动影响了后续收到的数据
Unsupervised Learning
- Deep Style
- 生成图片
- VAE (Variation Auto-encoder)
- GAN (Generative Adversarial Network)
- 无需人工介入理解文字的含义
- 词向量
- 机器阅读
- 语音理解
- 语音碎片
- 语音向量
- 语音理解 Sequence-to-sequence auto-encoder
- 语音生成 WavaNet (DeepMind)
为什么需要AI训练师
- 训练师要根据不同模型属性挑选适合的模型来学习
- 需要足够的经验才能操控模型效果