Monthly Archive: 十二月 2017

Deep Learning Note: 2-3 优化问题

1. 标准化输入   对输入数据进行标准化(Normalizing)有利于提高学习速度。   例如对于如图 1 所示的数据,其标准化过程分为两步,首先让数据减去其均值(如图 2 中左图),然后再除以方差(如图 2 中右图):   计算过程为: \begin{equation} x := \frac{x – \mu}{\sigma} \tag{1} \end{equation}   其中…
Read more

Deep Learning Note: 2-2 正则化

  解决过拟合问题的主要方法是使用正则化(Regularization)和获取更多数据,但并不是总能获取到更多的数据,或者获取更多数据的成本过高,因此通常首选使用正则化。 1. 逻辑回归的正则化   首先以逻辑回归为例,说明正则化的过程。逻辑回归的代价函数为: \begin{equation} J(w, b) = \frac{1}{m} \sum_{i=1}^m L(\hat{y}^{(i)}, …
Read more

Deep Learning Note: 2-1 设置机器学习应用

1. 训练集、开发集、测试集   在训练模型时,通常会将整个用于训练的数据分成三部分:训练集(Train Set),保留的交叉验证集(Hold-out Cross Validation Set)或称为开发集(Development Set / Dev Set),和测试集(Test Set)。通常的工作流程是: 选择算法/超参数等条件。 使用训练集对模型进行训练。 使用开发集对训练得到的模型进行评估…
Read more

Deep Learning Note: 1-9 深度神经网络

  前面以一个简单的 2 层神经网络为例,介绍了前向传播和反向传播的计算过程。下面扩展到 L 层神经网络的情况。   以图 1 所示的网络为例,记网络的层数为 $L$,此时 $L = 4$。使用 $n^{[l]}$ 表示第 $l$ 层中节点的个数,记输入层为第 0 层,输入有三个特征,故 $n^{[0]} = n_x = 3$;第一个隐藏层有 5 个节点,故 $n^{[1]} = 5$,以此类推,…
Read more

Deep Learning Note: 1-7 反向传播

1. 神经网络中的梯度下降   本文以前面 给出的用于二分类的两层神经网络为例,展示神经网络中梯度下降的计算过程。在该神经网络中: 各层节点数分别为 $n^{[0]}$、$n^{[1]}$、$n^{[2]}$,由于是二分类问题,只有一个输出,故 $n^{[2]} = 1$ 输入为 $n^{[0]} \times m$ 的特征向量矩阵 $X$,其中 $m$ 为样本个数 输出为 $1 \times m…
Read more

Deep Learning Note: 1-5 浅神经网络

1. 基本概念   图 1 给出了一个简单的神经网络。   在图 1 中,左边的 $x_1$、 $x_2$、 $x_3$ 为输入的特征,称为输入层(Input Layer);中间的一列 4 个节点称为隐藏层(Hidden Layer);最右边的一个节点称为输出层(Output Layer),输出预测 $\hat{y}$。输入层的特征和输出层的预测都与样本集合有关,而隐藏层的数值则在样本集合中没有体…
Read more

Deep Learning Note: 1-4 向量化

1. 逻辑回归的向量化   前文给出了逻辑归回的模型和通过梯度下降优化逻辑回归代价函数的算法。算法描述中包含了很多循环的步骤。在具体实现中,通过向量化(Vectorization)移除显式的 for 循环,有利于充分利用硬件性能,提高执行速度。如 Python 的 NumPy 包中有很多内置函数都提供了输入和处理多维数组的能力,在内部实现了并行计算的优化。   将之前得到的梯度下降计算各偏导的过程…
Read more

Deep Learning Note: 1-3 m 个样本上的梯度下降

1. m 个样本上的梯度下降   前文通过计算图得到了对于单个样本的各个参数的偏导,下面扩展到 m 个样本的情况,给出在 m 个样本上进行逻辑回归梯度下降的方法。   回顾一下前面得到的逻辑回归的代价函数为: \begin{equation} J(w, b) = \frac{1}{m} \sum_{i = 1}^m L(a^{(i)}, y{(i)}) \tag{1} \end{equation}…
Read more