深度学习-自学手册

来源:互联网 发布:中科院软件所邮编 编辑:程序博客网 时间:2024/06/05 22:52

人工智能

机器学习
神经网络
前馈神经网络:没有回路的
反馈神经网络:有回路的
DNN 深度神经网络
CNN 卷积神经网络
RNN 循环神经网络
LSTM 是RNN的一种,长短期记忆网络
自然语言处理

神经网络

这里写图片描述

神经元-分类器
Hebb 学习方法,随机 –类似SGD

一篇神经网络入门
这里写图片描述

BP反向传播,表示很复杂的函数/空间分布
从最后一层往前调整参数,反复循环该操作

y=a(wx+b) x输入 y输出 a激活函数 b偏移 w权重
每一层网络都是这样

神经网络训练权重–使损失函数最小–SGD
BP是求梯度的一种方法

权重要初始化:均匀分布初始化权重

前馈神经网络:多个感知器组合,由不同激活函数控制

激活函数:把线性–非线性的,一般用ReLU y=max(x,0)

输入层与输出层节点是固定的
圆圈是神经元,连线代表权重

两层神经网络可以无限逼近任意连续函数
多层神经网络本质就是复杂函数拟合

隐藏层的数量,每层的节点数都是手工调的,根据经验来判断

神经网络防止过拟合–正则化–权重衰减
正则化–Dropout

多层神经网络–深度学习
参数一样的情况下,更深的网络比浅层网络有更好的识别效率

Keras

1、Dense层
Dense就是常用的全连接层,第一层指定输入维度和输出维度,后面的层只需要指定输出维度。

2、Activation层
激活层对一个层的输出施加激活函数。一般用relu。
有 relu、tanh、sigmoid

sigmoid:未激活是0,激活是1。[0,1]。容易饱和,输出不是0均值的–收敛慢

tanh:[-1,1] 。梯度饱和–梯度为0

relu:f(x)=max(0,x)。
优点:收敛快,梯度不会饱和,计算简单
缺点:神经元坏死,x<0时梯度为0,该神经元就无效了。
学习率大–坏死;合适的较小的学习率–不会频繁坏死

LeakyReLU :
f(x)=αx,(x<0)
f(x)=x,(x>=0)
这里的 α 是一个很小的常数。这样,即修正了数据分布,又保留了一些负轴的值,使得负轴信息不会全部丢失。

PReLU:
对于 Leaky ReLU 中的α,通常都是通过先验知识人工赋值的。
然而可以观察到,损失函数对α的导数我们是可以求得的,可以将它作为一个参数进行训练。
带参数的ReLU,a是可调的,对a本身做SGD,不断更新a

3、Dropout层
Dropout将在训练过程中每次更新参数时按一定概率(rate)随机断开输入神经元,Dropout层用于防止过拟合。正则化。

4、优化器optimizers
SGD
默认:optimizer=’sgd’

  • lr:大或等于0的浮点数,学习率,步长,梯度的权重
  • momentum:大或等于0的浮点数,动量参数。加速收敛,跳出局部最小值。 v=\beta*v-a*dx 更新x<–x+v 。其中\beta
    即momentum系数,通俗的理解上面式子就是,如果上一次的momentum(即v)与这一次的负梯度方向是相同的,那这次下降的幅度就会加大,所以这样做能够达到加速收敛的过程。
  • decay:大或等于0的浮点数,每次更新后的学习率衰减值,lr会越来越小
  • nesterov:布尔值,确定是否使用Nesterov动量,梯度更新时做校正,避免前进太快,提高灵敏度。

Adam
默认:optimizer=’adam’

  • lr:大或等于0的浮点数,学习率
  • beta_1/beta_2:浮点数,
    0<\beta<1,通常很接近1。一阶矩估计/二阶矩估计,动态调整每个参数的学习率。每次迭代学习率都有范围,使参数比较平稳。善于处理稀疏梯度,非平稳目标,内存需求小。为不同参数计算不同的自适应学习率。适用于非凸优化,大数据集和高维空间
  • epsilon:大或等于0的小浮点数,防止除0错误,非常小的正浮点数

经验:

  • 对于稀疏数据,尽量使用学习率可自适应的优化方法,不用手动调节,而且最好采用默认值
  • SGD通常训练时间更长,但是在好的初始化和学习率调度方案的情况下,结果更可靠
  • 如果在意更快的收敛,并且需要训练较深较复杂的网络时,推荐使用学习率自适应的优化方法。
  • Adadelta,RMSprop,Adam是比较相近的算法,在相似的情况下表现差不多。
  • 在想使用带动量的RMSprop,或者Adam的地方,大多可以使用Nadam取得更好的效果

5、 损失函数loss
mean_squared_error或mse:均方差
mean_absolute_error或mae:绝对误差
mean_absolute_percentage_error或mape:平均绝对百分差
mean_squared_logarithmic_error或msle
binary_crossentropy(亦称作对数损失,logloss),逻辑回归,和sigmoid一起使用。
categorical_crossentropy:亦称作多类的对数损失,和softmax一起使用。
这里写图片描述

6、评价指标和训练
这里写图片描述

7、LSTM
这里写图片描述