0%

前言

在介绍 RNN 的文章中,重点是学习 RNN 的结构,前向传播和反向传播的大致流程,所以在实现代码中并不是很全面,甚至没有关于损失函数的定义,这个作业基于字符级别,实现了一个语言模型。

阅读全文 »

前言

按照吴恩达 Deeplearning 系列课程,应该是先学卷积神经网络,但是自己的实验中要用到递归神经网络,感觉不能再拖了,就先学习一下序列模型这一章节。在普通的神经网络中,一般都是输入一个向量,然后输出一个向量或者通过 Sigmoid 函数后输出一个值。

阅读全文 »

前言

在深度神经网络中,有效的参数初始化和输入特征归一化等方法能够很大程度上避免梯度消失,加速网络的训练过程。但是深度神经网络由很多层网络叠加,而每一层网络的参数更新会导致下一层网络的输入数据的分布发生变化,通过层层叠加,输入的分布变化会非常剧烈,这就使得网络需要不断重新适应不同分布的输入,而批归一化能够很出色地解决隐藏层间输入分布改变问题。

阅读全文 »

前言

单单通过特征缩放提高梯度下降的收敛速度并不够,有时候还需要改进梯度下降算法。例如动量梯度下降 (Grandient descent with Momentum)、RMSprop 算法和 Adam 优化算法(Adam optimization algorithm)。

阅读全文 »

前言

在机器学习中经常使用梯度下降算法来优化代价函数,得到局部最优解。但是梯度下降算法有时候效率并不高,有一些算法能够很大程度上提高梯度下降算法的性能。例如前面提到的小批量梯度下降,每次使用一部分样本更新参数,能够加速训练过程,还有特征缩放

阅读全文 »

前言

神经网络反向传播计算各个参数的梯度,用于梯度下降更新参数。用链式法则求解各个参数的导数的过程中,梯度的计算很复杂,容易出错,而梯度检验可以帮助我们确保梯度的计算正确。

阅读全文 »

前言

在机器学习中,当训练数据太少或者模型过于复杂等情况,当模型学习了数据的噪声的细节,那么模型在未知的数据表现就会不好,即泛化误差比训练误差大,这就是过拟合。模型选择的典型方法是正则化,使用正则化技术可以很大程度上减缓过拟合问题。

阅读全文 »

前言

DeepLearning.ai 第二部分内容是改善深层神经网络,主要包括超参数的调试、正则化以及优化。这些内容大部分都是机器学习的基础,深度学习是机器学习的一个特定分支,要想充分理解深度学习就必须对机器学习的基本原理有深刻的理解。

阅读全文 »

前言

在做实验的时候经常会遇到一些 Python 的运行环境问题,有很多工具都可以解决这些问题,在 Pycharm 中也提供了各种配置解释器的方法,由于需要使用服务器的环境在本地开发,折腾了一个多小时终于弄好了。记录一下折腾过程的同时顺便把其他配置解释器的方法弄懂。

阅读全文 »

前言

为什么需要深度学习?为什么需要多个隐藏层?隐藏层中神经元的数量越多拟合能力不就越强吗?这个问题困惑了我好久,说白了就是书读的太少,想得太多。吴恩达用电路理论和二叉树解决了我这个困惑!

阅读全文 »