| @@ -154,7 +154,23 @@ $h_\theta(x)=\theta_0+\theta_1x$,为解决房价问题的一种可行表达式 | |||
| 单变量,即只有一个特征(如例子中房屋的面积这个特征)。 | |||
| ## 2.2 损失函数(Cost Function) | |||
| ## 2.2 代价函数(Cost Function) | |||
| > 李航《统计学习方法》一书中,损失函数与代价函数两者为**同一概念**,未作细分区别,全书没有和《深度学习》一书一样混用,而是统一使用**损失函数**来指代这类类似概念。 | |||
| > | |||
| > 吴恩达(Andrew Ng)老师在其公开课中对两者做了细分。**如果要听他的课做作业,不细分这两个概念是会被打小手扣分的**!这也可能是因为老师发现了业内混用的乱象,想要治一治吧。 | |||
| > | |||
| > **损失函数**(Loss/Error Function): 计算**单个**训练集的误差 | |||
| > | |||
| > **代价函数**(Cost Function): 计算整个训练集**所有损失函数之和的平均值** | |||
| > | |||
| > | |||
| > | |||
| > 综合考虑,本笔记对两者概念进行细分,若有所谬误,欢迎指正。 | |||
| > | |||
| > [机器学习中的目标函数、损失函数、代价函数有什么区别?- 知乎](https://www.zhihu.com/question/52398145/answer/298003145) | |||
| 我们的目的在于求解预测结果 $h$ 最接近于实际结果 $y$ 时 $\theta$ 的取值,则问题可表达为**求解 $\sum\limits_{i=0}^{m}(h_\theta(x^{(i)})-y^{(i)})$ 的最小值**。 | |||
| @@ -170,7 +186,7 @@ $h_\theta(x)=\theta_0+\theta_1x$,为解决房价问题的一种可行表达式 | |||
| 上图展示了当 $\theta$ 取不同值时,$h_\theta\left(x\right)$ 对数据集的拟合情况,蓝色虚线部分代表**建模误差**(预测结果与实际结果之间的误差),我们的目标就是最小化所有误差之和。 | |||
| 为了求解最小值,引入损失函数(Cost Function)概念,用于度量建模误差。考虑到要计算最小值,应用二次函数对求和式建模,即应用统计学中的平方损失函数(最小二乘法): | |||
| 为了求解最小值,引入代价函数(Cost Function)概念,用于度量建模误差。考虑到要计算最小值,应用二次函数对求和式建模,即应用统计学中的平方损失函数(最小二乘法): | |||
| $$J(\theta_0,\theta_1)=\dfrac{1}{2m}\displaystyle\sum_{i=1}^m\left(\hat{y}_{i}-y_{i} \right)^2=\dfrac{1}{2m}\displaystyle\sum_{i=1}^m\left(h_\theta(x_{i})-y_{i}\right)^2$$ | |||
| @@ -180,22 +196,22 @@ $$J(\theta_0,\theta_1)=\dfrac{1}{2m}\displaystyle\sum_{i=1}^m\left(\hat{y}_{i}-y | |||
| 讨论到这里,我们的问题就转化成了**求解 $J\left( \theta_0, \theta_1 \right)$ 的最小值**。 | |||
| ## 2.3 损失函数 - 直观理解1(Cost Function - Intuition I) | |||
| ## 2.3 代价函数 - 直观理解1(Cost Function - Intuition I) | |||
| 根据上节视频,列出如下定义: | |||
| - 假设函数(Hypothesis): $h_\theta(x)=\theta_0+\theta_1x$ | |||
| - 参数(Parameters): $\theta_0, \theta_1$ | |||
| - 损失函数(Cost Function): $ J\left( \theta_0, \theta_1 \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( {{h}_{\theta }}\left( {{x}^{(i)}} \right)-{{y}^{(i)}} \right)}^{2}}} $ | |||
| - 代价函数(Cost Function): $ J\left( \theta_0, \theta_1 \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( {{h}_{\theta }}\left( {{x}^{(i)}} \right)-{{y}^{(i)}} \right)}^{2}}} $ | |||
| - 目标(Goal): $\underset{\theta_0, \theta_1}{\text{minimize}} J \left(\theta_0, \theta_1 \right)$ | |||
| 为了直观理解损失函数到底是在做什么,先假设 $\theta_1 = 0$,并假设训练集有三个数据,分别为$\left(1, 1\right), \left(2, 2\right), \left(3, 3\right)$,这样在平面坐标系中绘制出 $h_\theta\left(x\right)$ ,并分析 $J\left(\theta_0, \theta_1\right)$ 的变化。 | |||
| 为了直观理解代价函数到底是在做什么,先假设 $\theta_1 = 0$,并假设训练集有三个数据,分别为$\left(1, 1\right), \left(2, 2\right), \left(3, 3\right)$,这样在平面坐标系中绘制出 $h_\theta\left(x\right)$ ,并分析 $J\left(\theta_0, \theta_1\right)$ 的变化。 | |||
|  | |||
| 右图 $J\left(\theta_0, \theta_1\right)$ 随着 $\theta_1$ 的变化而变化,可见**当 $\theta_1 = 1$ 时,$J\left(\theta_0, \theta_1 \right) = 0$,取得最小值,**对应于左图青色直线,即函数 $h$ 拟合程度最好的情况。 | |||
| ## 2.4 损失函数 - 直观理解2(Cost Function - Intuition II) | |||
| ## 2.4 代价函数 - 直观理解2(Cost Function - Intuition II) | |||
| > 注:该部分由于涉及到了多变量成像,可能较难理解,要求只需要理解上节内容即可,该节如果不能较好理解可跳过。 | |||
| @@ -203,7 +219,7 @@ $$J(\theta_0,\theta_1)=\dfrac{1}{2m}\displaystyle\sum_{i=1}^m\left(\hat{y}_{i}-y | |||
|  | |||
| 参数在 $\theta_0$ 不恒为 $0$ 时损失函数 $J\left(\theta\right)$ 关于 $\theta_0, \theta_1$ 的3-D图像,图像中的高度为损失函数的值。 | |||
| 参数在 $\theta_0$ 不恒为 $0$ 时代价函数 $J\left(\theta\right)$ 关于 $\theta_0, \theta_1$ 的3-D图像,图像中的高度为代价函数的值。 | |||
|  | |||
| @@ -217,13 +233,13 @@ $\theta_0 = 360, \theta_1 =0$ 时: | |||
|  | |||
| 上图中最中心的点(红点),近乎为图像中的最低点,也即损失函数的最小值,此时对应 $h_\theta\left(x\right)$ 对数据的拟合情况如左图所示,嗯,一看就拟合的很不错,预测应该比较精准啦。 | |||
| 上图中最中心的点(红点),近乎为图像中的最低点,也即代价函数的最小值,此时对应 $h_\theta\left(x\right)$ 对数据的拟合情况如左图所示,嗯,一看就拟合的很不错,预测应该比较精准啦。 | |||
| ## 2.5 梯度下降(Gradient Descent) | |||
| 在特征量很大的情况下,即便是借用计算机来生成图像,人工的方法也很难读出 $J\left(\theta\right)$ 的最小值,并且大多数情况无法进行可视化,故引入**梯度下降(Gradient Descent)方法,让计算机自动找出最小化损失函数时对应的 $\theta$ 值。** | |||
| 在特征量很大的情况下,即便是借用计算机来生成图像,人工的方法也很难读出 $J\left(\theta\right)$ 的最小值,并且大多数情况无法进行可视化,故引入**梯度下降(Gradient Descent)方法,让计算机自动找出最小化代价函数时对应的 $\theta$ 值。** | |||
| 梯度下降背后的思想是:开始时,我们随机选择一个参数组合$\left( {\theta_{0}},{\theta_{1}},......,{\theta_{n}} \right)$即起始点,计算损失函数,然后寻找下一个能使得损失函数下降最多的参数组合。不断迭代,直到找到一个**局部最小值(local minimum)**,由于下降的情况只考虑当前参数组合周围的情况,所以无法确定当前的局部最小值是否就是**全局最小值(global minimum)**,不同的初始参数组合,可能会产生不同的局部最小值。 | |||
| 梯度下降背后的思想是:开始时,我们随机选择一个参数组合$\left( {\theta_{0}},{\theta_{1}},......,{\theta_{n}} \right)$即起始点,计算代价函数,然后寻找下一个能使得代价函数下降最多的参数组合。不断迭代,直到找到一个**局部最小值(local minimum)**,由于下降的情况只考虑当前参数组合周围的情况,所以无法确定当前的局部最小值是否就是**全局最小值(global minimum)**,不同的初始参数组合,可能会产生不同的局部最小值。 | |||
| 下图根据不同的起始点,产生了两个不同的局部最小值。 | |||
| @@ -277,13 +293,13 @@ $\begin{align*} & \text{repeat until convergence:} \; \lbrace \newline \; &{{\th | |||
| 可能越过最低点,甚至导致无法收敛。 | |||
| **学习速率只需选定即可**,不需要在运行梯度下降算法的时候进行动态改变,随着斜率越来越接近于0,损失函数的变化幅度会越来越小,直到收敛到局部极小值。 | |||
| **学习速率只需选定即可**,不需要在运行梯度下降算法的时候进行动态改变,随着斜率越来越接近于0,代价函数的变化幅度会越来越小,直到收敛到局部极小值。 | |||
| 如图,品红色点为初始点,损失函数随着迭代的进行,变化的幅度越来越小。 | |||
| 如图,品红色点为初始点,代价函数随着迭代的进行,变化的幅度越来越小。 | |||
|  | |||
| **最后,梯度下降不止可以用于线性回归中的损失函数,还通用于最小化其他的损失函数。** | |||
| **最后,梯度下降不止可以用于线性回归中的代价函数,还通用于最小化其他的代价函数。** | |||
| ## 2.7 线性回归中的梯度下降(Gradient Descent For Linear Regression) | |||
| @@ -299,7 +315,7 @@ $\begin{align*} & \text{repeat until convergence:} \; \lbrace \newline \; &{{\th | |||
|  | |||
| 当 $j = 0, j = 1$ 时,**平方损失函数求导的推导过程:** | |||
| 当 $j = 0, j = 1$ 时,**线性回归中代价函数求导的推导过程:** | |||
| $\frac{\partial}{\partial\theta_j} J(\theta_1, \theta_2)=\frac{\partial}{\partial\theta_j} \left(\frac{1}{2m}\sum\limits_{i=1}^{m}{{\left( {{h}_{\theta }}\left( {{x}^{(i)}} \right)-{{y}^{(i)}} \right)}^{2}} \right)=$ | |||
| @@ -38,11 +38,11 @@ $h_\theta\left(x\right)=\begin{bmatrix}\theta_0\; \theta_1\; ... \;\theta_n \end | |||
| ## 4.2 多变量梯度下降(Gradient Descent for Multiple Variables) | |||
| 多变量损失函数类似于单变量损失函数, | |||
| 多变量代价函数类似于单变量代价函数, | |||
| 即 $J\left( {\theta_{0}},{\theta_{1}}...{\theta_{n}} \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}$ ,其中 $h_\theta\left(x\right)= \theta^T x$。 | |||
| 前文提到梯度下降对于最小化损失函数的通用性,则多变量梯度下降公式即 | |||
| 前文提到梯度下降对于最小化代价函数的通用性,则多变量梯度下降公式即 | |||
| $\begin{align*} & \text{repeat until convergence:} \; \lbrace \newline \; &{{\theta }_{j}}:={{\theta }_{j}}-\alpha \frac{\partial }{\partial {{\theta }_{j}}}J\left( {\theta_{0}},{\theta_{1}}...{\theta_{n}} \right) \newline \rbrace \end{align*}$ | |||
| @@ -65,11 +65,11 @@ $$ | |||
| ## 4.3 梯度下降实践1-特征值缩放(Gradient Descent in Practice I - Feature Scaling) | |||
| 在应用梯度下降算法实践时,由于各特征值的范围不一,可能会影响损失函数收敛速度。 | |||
| 在应用梯度下降算法实践时,由于各特征值的范围不一,可能会影响代价函数收敛速度。 | |||
| 以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。 | |||
| 下图中,左图是以原始数据绘制的损失函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。 | |||
| 下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。 | |||
|  | |||
| @@ -95,15 +95,15 @@ $$ | |||
| - 根据图像易预测所需的迭代次数 | |||
| - 自动化测试收敛法(比较阈值) | |||
| - 不易选取阈值 | |||
| - 损失函数近乎直线时无法确定收敛情况 | |||
| - 代价函数近乎直线时无法确定收敛情况 | |||
| 对于梯度下降,一般采用多次迭代收敛法来得出最小化损失函数的参数值,自动化测试收敛法(如设定 $J\left(\theta\right) < {10}^{-3}$ 时判定收敛)则几乎不会被使用。 | |||
| 对于梯度下降,一般采用多次迭代收敛法来得出最小化代价函数的参数值,自动化测试收敛法(如设定 $J\left(\theta\right) < {10}^{-3}$ 时判定收敛)则几乎不会被使用。 | |||
| 我们可以通过绘制**损失函数关于迭代次数的图像**,可视化梯度下降的执行过程,借助直观的图形来发现损失函数趋向于多少时能趋于收敛,依据图像变化情况,确定诸如学习速率的取值,迭代次数的大小等问题。 | |||
| 我们可以通过绘制**代价函数关于迭代次数的图像**,可视化梯度下降的执行过程,借助直观的图形来发现代价函数趋向于多少时能趋于收敛,依据图像变化情况,确定诸如学习速率的取值,迭代次数的大小等问题。 | |||
|  | |||
| 对于学习速率 $\alpha$,一般上图展现的为适中情况,下图中,左图可能表明 **$\alpha$ 过大**,损失函数**无法收敛**,右图可能表明 **$\alpha$ 过小**,损失函数**收敛的太慢**。当然,$\alpha$ 足够小时,损失函数在每轮迭代后一定会减少。 | |||
| 对于学习速率 $\alpha$,一般上图展现的为适中情况,下图中,左图可能表明 **$\alpha$ 过大**,代价函数**无法收敛**,右图可能表明 **$\alpha$ 过小**,代价函数**收敛的太慢**。当然,$\alpha$ 足够小时,代价函数在每轮迭代后一定会减少。 | |||
|  | |||
| @@ -108,25 +108,25 @@ ${h_\theta}\left( x \right)=g\left( {\theta_0}+{\theta_1}{x_1}+{\theta_{2}}{x_{2 | |||
| 简单来说,决策边界就是**分类的分界线**,分类现在实际就由 $z$ (中的 $\theta$)决定啦。 | |||
| ## 6.4 损失函数(Cost Function) | |||
| ## 6.4 代价函数(Cost Function) | |||
| 那我们怎么知道决策边界是啥样?$\theta$ 多少时能很好的拟合数据?当然,见招拆招,总要来个 $J(\theta)$。 | |||
| 如果直接套用线性回归的损失函数: $J\left( {\theta} \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}$ | |||
| 如果直接套用线性回归的代价函数: $J\left( {\theta} \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}$ | |||
| 其中 $h_\theta(x) = g\left(\theta^{T}x \right)$,可绘制关于 $J(\theta)$ 的图像,如下图 | |||
|  | |||
| 回忆线性回归中的损失函数,其是一个二次凸函数(碗状),二次凸函数的重要性质是只有一个局部最小点即全局最小点。上图中有许多局部最小点,这样将使得梯度下降算法无法确定收敛点是全局最优。 | |||
| 回忆线性回归中的平方损失函数,其是一个二次凸函数(碗状),二次凸函数的重要性质是只有一个局部最小点即全局最小点。上图中有许多局部最小点,这样将使得梯度下降算法无法确定收敛点是全局最优。 | |||
|  | |||
| 如果损失函数也是一个凸函数,是否也有同样的性质,从而最优化?这类讨论凸函数最优值的问题,被称为**凸优化问题(Convex optimization)**。 | |||
| 如果此处的损失函数也是一个凸函数,是否也有同样的性质,从而最优化?这类讨论凸函数最优值的问题,被称为**凸优化问题(Convex optimization)**。 | |||
| 当然,损失函数不止平方损失函数一种。 | |||
| 对于逻辑回归,更换平方损失函数为**对数损失函数**,可由统计学中的最大似然估计方法可推出损失函数 $J(\theta)$: | |||
| 对于逻辑回归,更换平方损失函数为**对数损失函数**,可由统计学中的最大似然估计方法推出代价函数 $J(\theta)$: | |||
| $\begin{align*}& J(\theta) = \dfrac{1}{m} \sum_{i=1}^m \mathrm{Cost}(h_\theta(x^{(i)}),y^{(i)}) \newline & \mathrm{Cost}(h_\theta(x),y) = -\log(h_\theta(x)) \; & \text{if y = 1} \newline & \mathrm{Cost}(h_\theta(x),y) = -\log(1-h_\theta(x)) \; & \text{if y = 0}\end{align*}$ | |||
| @@ -134,13 +134,13 @@ $\begin{align*}& J(\theta) = \dfrac{1}{m} \sum_{i=1}^m \mathrm{Cost}(h_\theta(x^ | |||
|  | |||
| 如左图,当训练集的结果为 $y=1$(正样本)时,随着假设函数趋向于 $1$,损失函数的值会趋于 $0$,即意味着拟合程度很好。如果假设函数此时趋于 $0$,则会给出一个**很高的损失**,拟合程度**差**,算法会根据其迅速纠正 $\theta$ 值,右图 $y=0$ 同理。 | |||
| 如左图,当训练集的结果为 $y=1$(正样本)时,随着假设函数趋向于 $1$,代价函数的值会趋于 $0$,即意味着拟合程度很好。如果假设函数此时趋于 $0$,则会给出一个**很高的代价**,拟合程度**差**,算法会根据其迅速纠正 $\theta$ 值,右图 $y=0$ 同理。 | |||
| 区别于平方损失函数,对数损失函数也是一个凸函数,但没有局部最优值。 | |||
| ## 6.5 简化的成本函数和梯度下降(Simplified Cost Function and Gradient Descent) | |||
| 由于懒得分类讨论,对于二元分类问题,我们可把损失函数**简化**为一个函数: | |||
| 由于懒得分类讨论,对于二元分类问题,我们可把代价函数**简化**为一个函数: | |||
| $Cost\left( {h_\theta}\left( x \right),y \right)=-y\times log\left( {h_\theta}\left( x \right) \right)-(1-y)\times log\left( 1-{h_\theta}\left( x \right) \right)$ | |||
| 当 $y = 0$,左边式子整体为 $0$,当 $y = 1$,则 $1-y=0$,右边式子整体为0,也就和上面的分段函数一样了,而一个式子计算起来更方便。 | |||
| @@ -167,7 +167,7 @@ $\begin{align*}& \text{repeat until convergence:} \; \lbrace \newline \; & \thet | |||
| **对数损失函数求导的推导过程:** | |||
| **逻辑回归中代价函数求导的推导过程:** | |||
| $J(\theta) = - \frac{1}{m} \displaystyle \sum_{i=1}^m [y^{(i)}\log (h_\theta (x^{(i)})) + (1 - y^{(i)})\log (1 - h_\theta(x^{(i)}))]$ | |||
| @@ -195,15 +195,15 @@ $={({{y}^{(i)}}-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}}$ | |||
| $={\left({{y}^{(i)}}-{h_\theta}\left( {{x}^{(i)}} \right)\right)x_j^{(i)}}$ | |||
| $={\left({h_\theta}\left( {{x}^{(i)}} \right)-{{y}^{(i)}}\right)x_j^{(i)}}$ | |||
| 则可得对数损失函数的导数: | |||
| 则可得代价函数的导数: | |||
| $\frac{\partial }{\partial {\theta_{j}}}J(\theta) = -\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{\partial }{\partial {\theta_{j}}}f(\theta)}=\frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_j^{(i)} $ | |||
| ## 6.6 进阶优化(Advanced Optimization) | |||
| 运行梯度下降算法,其能最小化损失函数 $J(\theta)$ 并得出 $\theta$ 的最优值,在使用梯度下降算法时,如果不需要观察损失函数的收敛情况,则直接计算 $J(\theta)$ 的导数项即可,而不需要计算 $J(\theta)$ 值。 | |||
| 运行梯度下降算法,其能最小化代价函数 $J(\theta)$ 并得出 $\theta$ 的最优值,在使用梯度下降算法时,如果不需要观察代价函数的收敛情况,则直接计算 $J(\theta)$ 的导数项即可,而不需要计算 $J(\theta)$ 值。 | |||
| 我们编写代码给出损失函数及其偏导数然后传入梯度下降算法中,接下来算法则会为我们最小化损失函数给出参数的最优解。这类算法被称为**最优化算法(Optimization Algorithms)**,梯度下降算法不是唯一的最小化算法[^1]。 | |||
| 我们编写代码给出代价函数及其偏导数然后传入梯度下降算法中,接下来算法则会为我们最小化代价函数给出参数的最优解。这类算法被称为**最优化算法(Optimization Algorithms)**,梯度下降算法不是唯一的最小化算法[^1]。 | |||
| 一些最优化算法: | |||
| - 梯度下降法(Gradient Descent) | |||
| @@ -224,7 +224,7 @@ Octave/Matlab 中对这类高级算法做了封装,易于调用。 | |||
| 下面为 Octave/Matlab 求解最优化问题的代码实例: | |||
| 1. 创建一个函数以返回损失函数及其偏导数: | |||
| 1. 创建一个函数以返回代价函数及其偏导数: | |||
| ```matlab | |||
| function [jVal, gradient] = costFunction(theta) | |||
| @@ -257,7 +257,7 @@ initialTheta = zeros(2,1); | |||
| > | |||
| > `functionVal`: 引用函数最后一次的返回值 | |||
| > | |||
| > `exitFlag`: 标记损失函数是否收敛 | |||
| > `exitFlag`: 标记代价函数是否收敛 | |||
| 注:Octave/Matlab 中可以使用 `help fminunc` 命令随时查看函数的帮助文档。 | |||
| @@ -345,17 +345,17 @@ exitFlag = 1 | |||
| - 减少/惩罚各参数大小(magnitude),以减轻各参数对模型的影响程度 | |||
| - 当有很多参数对于模型只有轻微影响时,正则化方法的表现很好 | |||
| ## 7.2 损失函数(Cost Function) | |||
| ## 7.2 代价函数(Cost Function) | |||
| 很多时候由于特征数量过多,过拟合时我们很难选出要保留的特征,这时候应用正则化方法则是很好的选择。 | |||
| 上文中,$\theta_0 + \theta_1x + \theta_2x^2 + \theta_3x^3 + \theta_4x^4$ 这样一个复杂的多项式较易过拟合,在不减少特征的情况下,**如果能消除类似于 $\theta_3x^3$、$\theta_4x^4$ 等复杂部分,那复杂函数就变得简单了**。 | |||
| 为了保留各个参数的信息,不修改假设函数,改而修改损失函数: | |||
| 为了保留各个参数的信息,不修改假设函数,改而修改代价函数: | |||
| $min_\theta\ \dfrac{1}{2m}\sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 + 1000\cdot\theta_3^2 + 1000\cdot\theta_4^2$ | |||
| 上式中,我们在损失函数中增加了 $\theta_3$、$\theta_4$ 的惩罚项(penalty term) $1000\cdot\theta_3^2 + 1000\cdot\theta_4^2$,如果要最小化损失函数,那么势必需要极大地**减小 $\theta_3$、$\theta_4$**,从而使得假设函数中的 $\theta_3x^3$、$\theta_4x^4$ 这两项的参数非常小,就相当于没有了,假设函数也就**“变得”简单**了,从而在保留各参数的情况下避免了过拟合问题。 | |||
| 上式中,我们在代价函数中增加了 $\theta_3$、$\theta_4$ 的惩罚项(penalty term) $1000\cdot\theta_3^2 + 1000\cdot\theta_4^2$,如果要最小化代价函数,那么势必需要极大地**减小 $\theta_3$、$\theta_4$**,从而使得假设函数中的 $\theta_3x^3$、$\theta_4x^4$ 这两项的参数非常小,就相当于没有了,假设函数也就**“变得”简单**了,从而在保留各参数的情况下避免了过拟合问题。 | |||
|  | |||
| @@ -363,7 +363,7 @@ $min_\theta\ \dfrac{1}{2m}\sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 + 1000\cd | |||
| 根据上面的讨论,有时也无法决定要减少哪个参数,故统一惩罚除了 $\theta_0$ 外的所有参数。 | |||
| 损失函数: | |||
| 代价函数: | |||
| $J\left( \theta \right)=\frac{1}{2m}[\sum\limits_{i=1}^{m}{{{({h_\theta}({{x}^{(i)}})-{{y}^{(i)}})}^{2}}+\lambda \sum\limits_{j=1}^{n}{\theta_{j}^{2}}]}$ | |||
| @@ -429,11 +429,11 @@ L = | |||
| ## 7.4 逻辑回归正则化(Regularized Logistic Regression) | |||
| 为逻辑回归的损失函数添加正则化项: | |||
| 为逻辑回归的代价函数添加正则化项: | |||
| $J(\theta) = - \frac{1}{m} \sum_{i=1}^m \large[ y^{(i)}\ \log (h_\theta (x^{(i)})) + (1 - y^{(i)})\ \log (1 - h_\theta(x^{(i)}))\large] + \frac{\lambda}{2m}\sum_{j=1}^n \theta_j^2$ | |||
| 前文已经证明过逻辑回归和线性回归的损失函数的求导结果是一样的,此处通过给正则化项添加常数 $\frac{1}{2}$,则其求导结果也就一样了。 | |||
| 前文已经证明过逻辑回归和线性回归的代价函数的求导结果是一样的,此处通过给正则化项添加常数 $\frac{1}{2}$,则其求导结果也就一样了。 | |||
| 从而有应用正则化的逻辑回归梯度下降算法: | |||