diff --git a/notes/week2.md b/notes/week2.md index 1328bc7..b637e38 100644 --- a/notes/week2.md +++ b/notes/week2.md @@ -64,29 +64,39 @@ $\begin{aligned} & \text{repeat until convergence:} \; \lbrace \newline \; & \th -为了优化梯度下降的收敛速度,采用特征缩放方法,使各特征值的**范围尽量一致**。 +为了优化梯度下降的收敛速度,采用特征缩放的技巧,使各特征值的**范围尽量一致**。 除了以上图人工选择并除以一个参数的方式,**均值归一化(Mean normalization)**方法更为便捷,可采用它来对所有特征值统一缩放: $x_i=\frac{x_i-average(x)}{maximum(x)-minimum(x)}, 使得 $ $x_i \in (-1,1)$$ -对于特征的范围,并不一定需要使得 $-1 < x < 1$,类似于 $1\leqslant x \leqslant 3$ 也是可取的。 +对于特征的范围,并不一定需要使得 $-1 \leqslant x \leqslant 1$,类似于 $1\leqslant x \leqslant 3$ 等也是可取的,而诸如 $-100 \leqslant x \leqslant 100 $,$-0.00001 \leqslant x \leqslant 0.00001$,就显得过大/过小了。 另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。 ## 4.4 梯度下降实践2-学习速率(Gradient Descent in Practice II - Learning Rate) -对于梯度下降,一般给定迭代次数来得出最小化损失函数的参数值,当然也可以设定比如 $J\left(\theta\right) < {10}^{-3}$ 等下限值来得到参数值,不过我们更常用的是**给定迭代次数**来得到参数值。 +通常,有两种方法来确定函数是否收敛 -通过绘制损失函数关于迭代次数的图像,我们可以可视化梯度下降的执行过程,直观的图形可以帮助我们发现损失函数趋向于多少时能趋于收敛,参考图像来调整诸如学习速率的取值,迭代次数的选定等问题。 +- 多次迭代收敛法 + - 无法确定需要多少次迭代 + - 较易绘制关于迭代次数的图像 + - 根据图像易预测所需的迭代次数 +- 自动化测试收敛法(比较阈值) + - 不易选取阈值 + - 损失函数近乎直线时无法确定收敛情况 + +对于梯度下降,一般采用多次迭代收敛法来得出最小化损失函数的参数值,自动化测试收敛法(如设定 $J\left(\theta\right) < {10}^{-3}$ 为阈值)则几乎不会被使用。 + +我们可以通过绘制**损失函数关于迭代次数的图像**,可视化梯度下降的执行过程,借助直观的图形来发现损失函数趋向于多少时能趋于收敛,依据图像变化情况,确定诸如学习速率的取值,迭代次数的大小等问题。 ![](image/20180108_103357.png) -对于学习速率 $\alpha$,一般上图为合适,下图中左图可能表明 **$\alpha$ 过大**,损失函数**无法收敛**,右图可能表明 **$\alpha$ 过小**,损失函数**收敛的太慢**。当然,$\alpha$ 足够小时,损失函数在每轮迭代后一定会减少。$\alpha$ 可选取如 $\dots\;0,001,\;0.003,\;0.01,\;0.03,\;0.1,\;\dots$ +对于学习速率 $\alpha$,一般上图展现的为适中情况,下图中,左图可能表明 **$\alpha$ 过大**,损失函数**无法收敛**,右图可能表明 **$\alpha$ 过小**,损失函数**收敛的太慢**。当然,$\alpha$ 足够小时,损失函数在每轮迭代后一定会减少。 ![](image/20180108_104701.png) -另外,迭代次数刚开始可尽量高些,后面再根据需要同 $\alpha$ 进行调整。 +通过不断改变 $\alpha$ 值,绘制并观察图像,并以此来确定合适的学习速率。 尝试时可取 $\alpha$ 如 $\dots\;0,001,\;0.003,\;0.01,\;0.03,\;0.1,\;\dots$ ## 4.5 特征和多项式回归(Features and Polynomial Regression) @@ -106,6 +116,8 @@ $\begin{aligned} & \text{repeat until convergence:} \; \lbrace \newline \; & \th ## 4.6 正规方程(Normal Equation) +对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。 + 正规方程法,即令 $\frac{\partial}{\partial{\theta_{j}}}J\left( {\theta_{j}} \right)=0$ ,通过解析函数的方式直接计算得出参数向量的值 $\theta ={{\left( {X^T}X \right)}^{-1}}{X^{T}}y$ ,Octave 中为 `theta = inv(X'*X)*X'*y`。 > ${X}^{-1}$: 矩阵 $X$ 的逆,在 Octave 中,`inv` 函数计算矩阵的逆,类似的还有 `pinv` 函数。