深度学习笔记
激活函数
sigmoid函数主要用于二元分类的输出层,其他情况不推荐使用
与sigmoid相比,tanh激活函数一般要优与sigmoid函数,因为其均值为0,当用在分类时,因最后的结果最好为概率,故最后的输出层可用sigmoid函数,否则优先考虑tanh函数
更受欢迎的则是ReLU函数,因梯度下降快,训练速度快
参数与超参数
参数:W,B
超参数:激活函数、学习率、隐藏层数量、隐藏单元数量、迭代次数
超参数决定了参数w和b的最终值
卷积神经网络CNN
卷积、padding、步长
原始图像矩阵通过与过滤器(核)进行卷积操作可检测出图像的边缘(此处所说的卷积为数学上的互相关,而并不是真正的数学意义上的卷积),使用卷积的一个重要原因为其可减少数据规模(不准确但差不多),方便训练
padding是为了解决图像外围像素不能够有效利用(或边缘像素会损失信息)的问题,通常在原始图像周围加入几层像素,以达到在经过卷积之后的图像大小与原始图像相同
所以,假设原始图像矩阵大小为n*n,过滤器为f*f,则输出的图像为(n-f+1)*(n-f+1),若想通过padding之后使得变换后的图像大小不变(假设填充了p层),则有n-f+1+2p=n,即p=(f-1)/2,从结果可看出,过滤器通常为奇数矩阵
步长为过滤器在图像上移动到下一个位置时距离上一个位置的像素间隔
如果设置的步长为s,则输出的图像大小为(n-f+2p)/s + 1,结果向下取整
卷积层、池化层、全连接层

循环序列模型RNN
对于序列信息,比如一句话,它的含义是前后相关的,所以通过之前学到的知识来处理之后的输入会更加有效,所以RNN就出现了,RNN会通过前边输入的结果来帮助后边的学习,但也有情况是前边与后边相关,若预先知道后边的知识则对前边的判断学习很有帮助,所以BRNN(双向循环神经网络)就出现了
正向传播

反向传播

RNN的不同类型

RNN中的梯度消失和梯度爆炸
梯度爆炸比较容易发现和解决,梯度爆炸发生时其梯度值为NaN,而通常采用梯度修剪法便可解决
梯度消失是比较难解决的,随着深度的增加,反向传播的导数很难传回到前边,在RNN中这种情况很容易发生
门控循环单元GRU
The cat, which ……., was full.
The cats, which ……., were full.
GRU解决了梯度消失和单复数问题,可以学习比较深的网络

长短时记忆网络LSTM

双向循环神经网络BRNN

深层循环神经网络
