深度学习课程学习记录,与吴恩达深度学习课程、《动手学深度学习》相结合。
人工神经网络
人工神经网络 (ANN),是从微观结构与功能上模拟人脑神经系统而建立的一类 模型,是模拟人的智能的一条途径。信息处理由人工神经元间的相互作用来实现,由联接权 来传递,具有学习能力、自适应性、联接强度的可变性。
多层感知机
通过在网络中加入一个或多个隐藏层来克服线性模型的限制, 使其能处理更普遍的函数关系类型。 要做到这一点,最简单的方法是将许多全连接层堆叠在一起。 每一层都输出到上面的层,直到生成最后的输出。 我们可以把前层看作表示,把最后一层看作线性预测器。 这种架构通常称为多层感知机(multilayer perceptron),通常缩写为MLP。
感知机两层神经元之间需要在仿射变换之后对每个隐藏单元应用非线性的激活函数(activation function)。 激活函数的输出被称为活性值(activations)。 一般来说,有了激活函数,就不可能再将我们的多层感知机退化成线性模型。
常用激活函数有tanh函数,sigmoid函数,ReLU函数等。
![](https://img-blog.csdnimg.cn/img_convert/8a8998d11ddf82d2676f739b7aa5c219.png)
BP神经网络
BP神经网络是一种常用的人工神经网络,它可以用于分类、回归等任务。其基本原理是通过反向传播算法来训练网络参数,从而实现对输入输出关系的建模。
![](https://img-blog.csdnimg.cn/img_convert/fa49e6e77304bb00668eb7d9a79639bc.png)
浅层神经网络、激活函数、深层神经网络
![](https://img-blog.csdnimg.cn/img_convert/668c681b156af431bc822d73efd8a65d.png)
前向传播、反向传播实现
![](https://img-blog.csdnimg.cn/img_convert/6b6bac96b6113cec5da86cd1bb2075fd.png)
优化算法
动量法是一种常用的加速神经网络训练的方法。它的基本思想是:在更新权值时,不仅考虑当前的梯度,还要考虑之前的权值更新量的影响。通过引入一个动量因子,可以让网络在更新权值时向之前的方向继续前进,从而加速收敛。
AdaGrad具有较大偏导的参数相应有一个较大的学习率,而具有小偏导的参数则对应一个较小的学习率,具体来说,每个参数的学习率会缩放各参数反比于其历史梯度平方值总和的平方根。但是学习率是单调递减的,训练后期学习率过小会导致训练困难,甚至提前结束,因此需要设置一个全局的初始学习率。
RMSProp 也是一种自适应学习率算法,它通过对梯度平方的指数加权移动平均来调整学习率。具体来说,RMSProp维护了一个梯度平方的指数加权移动平均,然后将学习率除以这个移动平均的平方根,从而使得在每个参数的更新中,梯度较大的参数的学习率较小,而梯度较小的参数的学习率较大。
Adam 是一种结合了动量和自适应学习率的优化算法,它维护了梯度和梯度平方的指数加权移动平均,从而既能够适应不同参数的梯度范围,又能够利用动量来加速收敛。具体来说,Adam 会对梯度和梯度平方分别计算指数加权移动平均,然后利用这些移动平均来计算动量修正项和自适应学习率修正项,最后使用这些修正项来更新参数。
![](https://img-blog.csdnimg.cn/img_convert/121c5593610635fb93c110fb0893ebac.png)