机器学习初步_吴恩达_学习笔记

前言

  1. 通俗易懂的讲解让人停不下来,与国内对于机器学习的讲解来说,少了一堆严格定义的特有名词充斥课堂,而是更多的不断用例子来说其核心概念。

  2. 还有神经网络、支持向量机、无监督学习等模块还没有写,有空了再写

1. 初始机器学习

机器学习的定义

最常见的两类机器学习算法
有监督学习:我们教会计算机做某件事情
无监督学习:我们让计算机自己学习
其他类型算法:强化学习、推荐系统

有监督学习

举例预测房价和推测乳腺癌良性与否的例子,来说明的有监督学习的定义
同时对于在处理数据时想用大量的特征怎么办?引出了支持向量机的概念,里面有一个巧妙的数学技巧,能让计算机处理无限多个特征。

无监督学习

没有提前告诉算法一些信息,只是给了算法一堆数据,我们并不知道数据里面有什么,也不知道里面有什么类型,但是算法会自动根据数据本身的结构进行聚类,从而得到从数据本身出发的分类类型

举例了鸡尾酒宴问题来介绍聚类算法的应用,从两个麦克风中中,分离出不同人声,就应用到了聚类算法,聚类算法根据数据的结构从而实现了分离

2. 单变量线性回归

模型描述

回归问题:预测连续值输出
分类问题:预测离散值输出(每个类别单独编号即为离散)

将监督学习算法的工作方式表示如下,这里形象的把训练过程表示成把训练数据“喂”给特定算法,从而得到一个假设hypothesis,这里的hypothesis就是如下的 h θ ( x ) = θ 0 + θ 1 x h_\theta \left( x \right)=\theta_{0} + \theta_{1}x hθ(x)=θ0+θ1x,也就是我们训练出来的模型
image.png

代价函数

如何选择出合适的参数来表示模型呢?在线性回归回归问题中,模型预测出来的值与训练集中实际值之间的差距越小说明模型越准确,即这就是建模误差。
我们的目标就是时建模误差的平方和最小(对所有点的误差同时进行衡量,同时避免了负数的问题),这就是代价函数(求得参数使得平方五误差最小)
** J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J \left( \theta_0, \theta_1 \right) = \frac{1}{2m}\sum\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2 **

  • 常数只是为了结果表达更直白一点
  • 平方误差代价函数可能是解决回归问题最常用的手段,除此之外我们还可以选择其他代价函数
  • 回归算法所做的就是找到能使代价函数最小的参数,这就是回归算法的目标函数,这里只是一个比较形象的写法,具体目标函数长什么样,需要看我们具体选择什么算法 。

image.png

等高线图

梯度下降法

举例下山的例子来说明梯度下降法。每走一小步路后,先看看从哪个方向下山最快,再接着走,这样每一走一步路看一下,直到收敛至局部最低点。但是这样容易陷入局部最优解。若是在这个例子中稍微移动一下原本的出发点位置 ,就可能得到的是另一个最低点了。
image.png
image.png

  • 在使用梯度下降法时,需要同时更新所有参数,即同步更新,先把所有参数更新值都算出来后,再把它们统一更新。下列图片中展示了正确做法和错误做法。同步更新是更自然的做法
  • 因为在更新参数时,所有参数都需要保持在同一轮次的更新状态中,我们不能在本轮更新某个参数时,用下一轮已经被更新好的参数来更新它。
  • 当通过梯度下降法使得参数处于一个局部最优点后,参数就不会在发生变化,也就是收敛,即梯度下降法终止条件,当参数的值不再发生变化说明已经找到了一个局部最优解。

image.png

这个公式中最重要的两个部分就是学习率和导数部分

导数部分

image.png
因为这里是梯度下降,也就说沿着与该点的梯度方向相反的方向移动,也就说某点正处于下降趋势,偏导部分就是负的,那么就会加快该点朝着最低点走去;若某点正处于上升趋势,偏导部分就是正数,那么就会使该点减缓上升趋势,朝着最低点走去

学习率

学习率是一个正的常数,它影响着参数的变化幅度大小。如果学习率太小,将会导致收敛速度太慢;如果学习率太大,将会导致无法收敛或者发散(跨度过大,可能导致一次又一次越过最低点,最后离最低点越来越远 )
image.png

  • 梯度下降法在接近局部最优点时,会自动采取不断变小的幅度来收敛到最低点,因为越接近局部最优点(导数为0的点),导数值会自动变得越来越小,所以梯度下降法会自动采取较小的幅度,所以没有再另外减小学习率,

线性回归的梯度下降

上面只是单独把梯度下降拎出来讲了,现在把梯度下降和线性回归中的代价函数结合在一起看。
结合过程就是把代价函数对不同参数求偏导同步更新直至收敛为止。
image.png
梯度下降与线性回归的代价函数结合在一起之后
image.png

关于梯度下降在线性回归中的局部最优解问题

线性回归的代价函数一般是没有局部最优解的,它的代价函数图像一般是弓形函数(凸函数),这样的函数没有局部最优,只有一个全局最优。所以说当我们对线性回归使用递归下降时,得到的都是全局最优解,因为没有其他局部最优解
image.png

批量(Batch)梯度下降法

因为上述的梯度下降法其实应用到了整个训练集,在每一次下降的过程中,我们都会遍历整个训练集,所以也成为批量梯度下降法。当然还存在其他梯度下降法,只应用了训练集的子集来更新参数,后面还会继续学到相关内容。
image.png

3. 多变量线性回归

多了输入数据的特征值,也就多了参数。当多了参数后,线性回归的模型也就变复杂了变长了,此时我们将模型的数学表达式用向量内积的方式来简化表达。

  • h θ ( x ) = θ T X = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta}\left( x \right)=\theta^{T}X={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}} hθ(x)=θTX=θ0+θ1x1+θ2x2+...+θnxn
  • 其中额外规定 x 0 ( i ) = 1 x_0^{(i)}=1 x0(i)=1,这就使得原本的n个变量和n+1个参数,对齐变成n+1个参数和n+1个变量了,每个向量就都是 n+1维向量,通过这种更紧凑的表达,来表示多元模型

多元梯度下降法

和之前单变量线性回归中的梯度下降操作是一样的,只是这里的问题模型变了,参数变多了,所以我们需要更新的参数也就变多了,但本质算法思想都是一样的。
image.png

特征缩放

在多元回归问题中当我们面对多维特征时,可以对这些多维特征进行特征缩放,让这些特征的取值范围都具有相近的尺度,这能够帮助梯度下降更快地收敛。

以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000,而房间数量的值则是0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁很长,这将会导致梯度下降算法需要非常多次的迭代才能收敛。
而尝试将所有特征的尺度都缩放到0-1之间之后,在进行梯度下降就会发现收敛的非常快
image.png

一般来说,都是把特征缩放到 (-1,1)之间,当然大一点或者小一点都是可以接受的,并不需要要求所有特征的缩放范围都需要完全一致,只要它们都足够接近就行了,梯度下降都会正常地工作,
但是也不能太大或者过于小了,如下图所示。
image.png

均值归一化

上面的特征缩放是用变量取值范围中的最大值作为分母来除与每一个数,除此之外还有一种叫做均值归一化的特征缩放。
比如可以用 x i − μ i x_i - \mu_i xiμi来替代 x i x_i xi,这样就可以特征的平均值为0了,然后把特征值最大值与最小值之间的差值作为分母除去,或者把分母换成特征值的标准差也可以,就能把特征值的取值范围缩放到 (-0.5,0.5)。
实际真实取值范围也可能会多一点或者少一点,上面只是一个大概范围,但这都不重要,只要我们把特征值的取值范围都缩放到一个相似的范围就可以了,并不需要太精确,这样做只是为了梯度下降更快一点而已。
image.png

学习率 α \alpha α

我们并不能提前得知梯度下降收敛所需要的迭代次数,所以我们需要不断尝试,绘制出迭代次数和代价函数之间的变化关系的图表,来观测算法在何时收敛。其实也就是不断去迭代。然后找到一段变化趋于停止的曲线。
image.png

通过曲线找到收敛迭代次数,我们也可以发现梯度下降的性能如何,学习率的取值是否合适。从理论上来说,在线性回归问题上只要学习率足够小,代价函数的值一定是越来越小的。 如果我们发现随着迭代次数的增加,代价函数却并不会在每次迭代后下降,那就有可能是因为学习率过大了,此时我们就可以尝试降低学习率参数。
image.png

在实际使用梯度下降过程中,我们需要不断尝试学习率的值,直到找到一个可以曲线快速下降的学习率
image.png

多项式线性回归

线性回归并适用于所有情况,所以有时候我们需要使用曲线来适应我们的数据,也就是使用多项式模型来拟合数据。在多项式回归中,需要对同一变量进行次方运算,此时特征缩放就十分重要,因为做幂运算会导致不同特征之间的取值差距非常大,不做好特征缩放就会导致梯度下降收敛非常慢。
image.png

对于特征值的选择并不是固定的,我们可以根据对训练数据形状的观察以及对于一些常见函数图像的了解,来选择合适的特征,这有助于我们得到更好的模型。我们先观察数据然后再决定尝试使用什么样的模型。
image.png

对于现有的特征,我们也可以根据情况去改造设计它们,从而得到更简洁的模型。
h θ ( x ) = θ 0 + θ 1 × f r o n t a g e + θ 2 × d e p t h h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}\times{frontage}+{\theta_{2}}\times{depth} hθ(x)=θ0+θ1×frontage+θ2×depth
x 1 = f r o n t a g e {x_{1}}=frontage x1=frontage(临街宽度), x 2 = d e p t h {x_{2}}=depth x2=depth(纵向深度),
我们在这里将这两个特征结合起来, x = f r o n t a g e ∗ d e p t h = a r e a x=frontage*depth=area x=frontagedepth=area(面积),
那么模型就变成了: h θ ( x ) = θ 0 + θ 1 x {h_{\theta}}\left( x \right)={\theta_{0}}+{\theta_{1}}x hθ(x)=θ0+θ1x

正规方程

正规方程也一种用于求解使得代价函数最小化参数的算法,在求解线性回归的某些时候它会比梯度下降法更好用。它是一次性求解出来 θ \theta θ参数向量的,不像梯度下降需要靠迭代一个个求解参数,但是两者各有明显的优缺点,后面再接着细说。
image.png

  • 从图中我们可以看到,正规方程求解参数的过程,就是利用训练数据设计特定矩阵,完成转置求逆矩阵乘法等操作,从而得到一个参数向量。

  • 下图是更详细的过程。我们将每一个特征向量转置展平作为 X X X矩阵的每一行,然后 X X X矩阵中的每一行特征向量对应的实际结果 y y y作为 Y Y Y矩阵中的每一行,然后得到了这两个矩阵之后就可以根据正规方程的参数向量求解公式得到最终参数了。

image.png

正规方程与梯度下降法的优缺点

梯度下降法缺点

  1. 梯度下降法需要运行多次,尝试不同的学习率,才能找到运行效果最好的那个
  2. 梯度下降是一步步逼近最优点的,可能需要迭代很多次

正规方程优点:

  1. 梯度下降的缺点正是正规方程的优点,正规方程不需要选择学习率
  2. 正规方程不需要进行迭代得到最终参数,它只需要进行一次运行运算即可。

梯度下降优点和正规方程缺点:

  1. 在处理大量的训练数据时,使用梯度下降来慢慢迭代出来最终答案,效率反而很好
  2. 相对来说,正规方程在处理有大量的特征数据时效率很差,因为正规方程进行的是矩阵之间的乘法运算和矩阵的逆运算,矩阵的逆运算代价是很大的。

总结:只要特征变量的数量不是很多(小于一万),使用正规方程是比梯度下降更好的选择
image.png

正规方程在矩阵不可逆情况下的解决方法

正规方程中的需要对矩阵进行逆运算,那么要是 ( X T X ) \left( {X^{T}}X \right) (XTX)是不可逆矩阵怎么办?虽然说存在这种情况,但我们还是很少有可能会遇到这样的情况。

导致矩阵不可逆一般是有两个原因:

  1. 特征变量中存在多余的变量,也就是说有特征变量之间存在线性关系,一个变量可以用另一个变量表示,这样有一个特征向量就多余了,这样就会使得矩阵的行列值为0,也就将会导致矩阵不可逆。

想解决这个问题,只要我们把多余的特征变量去掉就行了

  1. 还有一种情况就是特征变量的种类数量过多了,例如特征变量的个数比训练数据的个数还要多很多。

可以考虑删去一些影响不大的特征变量,又或者使用正则化(使用很多的特征来配置很多的参数 )
image.png

4. 逻辑回归

模型描述

这里同样也是求解一条曲线,也用到了回归算法,但是回归模型输出的结果要经过概阈值判定变成离散值,而且这里用到的回归模型与之前的直线或曲线模型不一样,为了能够把输出结果都缩放到(0,1)之间,这里使用了sigmoid函数(logistic函数)对曲线进行复合,最终形成的就是逻辑回归假设函数了。
image.png
image.png

决策边界

得到参数模型 h θ ( x ) h_{\theta}(x) hθ(x)后,我们就可以通过对离散值判定的阈值,进行函数转化从而得到决策边界。决策边界位于不同离散值区域的夹缝上
image.png

代价函数

在逻辑回归中,再继续用之前的平方误差代价函数显然不合适,因为这时候的假设函数已经变成sigmoid函数了,此时就很难找到参数的全局最优解,我们更希望代价函数的曲线是一个单弓形函数的图像。
image.png

这里引入了一个很巧妙的代价函数,十分贴切逻辑回归问题。根据对数函数性质和分段函数的处理

  1. 先来看看 − log ⁡ ( h θ ( x ) ) -\log(h_{\theta(x)}) log(hθ(x))时的情况

当预测值与实际值相等时,将会得到 0 的代价,而当预测值与实际值是完全相反的两个极端时,就会得到无限大的代价,这将会给算法训练过程中带来很大的惩罚。
image.png

  1. 再来看看 − log ⁡ ( 1 − h θ ( x ) ) -\log(1- h_{\theta(x)}) log(1hθ(x))时的情况

如果预测值 h θ ( x ) = 0 h_{\theta}(x)=0 hθ(x)=0 y = 0 y=0 y=0,那么根据函数我们可以得到为0 的代价,而当预测值接近1而实际值为0时,预测和实际两者处于两个取值极端时
image.png

实际上,我们可以通过一种更为简洁的方式来表达代价函数,就是将两种情况用同一个式子结合起来。当我们取其中一种情况时,另一种情况就会被乘上 0 。这样就可以很巧妙的把两种情况结合在一起了。
有了逻辑回归的代价函数后,我们同样可以可以通过梯度下降法来逐步迭代出参数最优解,这和线性回归中做的工作是一样的。
image.png

高级优化算法(求解最小化代价函数的参数的高级算法)

我们可以使用一些高级优化算法,来大大加快梯度下降的计算速度,这能使得梯度下降更适应于大型的机器学习问题中。
首先我们来分解梯度下降过程中,我们所需要计算的两个变量: J ( θ ) J\left( \theta \right) J(θ) 以及 下标索引 j _j j等于 0、1直到 n n n 时的代价函数偏导数项 ∂ ∂ θ j J ( θ ) \frac{\partial }{\partial {\theta_j}}J\left( \theta \right) θjJ(θ)。我们用求得的偏导数项不断去更新参数,直至优化出最终参数去计算模型代价 J ( θ ) J\left( \theta \right) J(θ)。只要我们把这两项都算出来,就可以让梯度下降反复执行更新操作,为我们最小化代价函数。
image.png

但是实际上运用这两个重要参数,进行代价函数优化的并不是只有梯度下降法一种算法,还有更高级、更复杂的其他算法,如 共轭梯度法 、BFGS (变尺度法) 和L-BFGS (限制变尺度法) 等更高级的优化算法。我们写好了实现了这两个参数的代码,然后交给这些高级算法,它们会按各自的算法逻辑实现更高效率的最小化代价函数求解。

  • 这三种算法的优点如下:
  1. 不需要手动选择学习率参数,算法会自动尝试不同的学习速率,并自动选择出一个好的学习速率,它们甚至可以为每次迭代选择不同的学习速率。
  2. 同时它们的收敛速度都比梯度算法更快,只是会更加复杂而已。

多类别分类 (一对多处理)

之前是用逻辑回归来处理二元分类问题,那么当种类有多种我们该怎么处理呢?

很简单,继续用之前的二元分类思想来处理问题,我们先把想让分类器识别的一个类别归为一类,把剩下的所有类别都归为另一类,这样就又变成了二元分类问题,就又可以继续使用之前的逻辑回归方法了。然后以此类推,依次去这样去对每一个类别进行分类处理。
有几种类别,我们就训练几个分类器,每一个分类器都针对其中一种情况进行训练。

最终,当我们输入新的数据想要预测类别时,就将输入依次输入每一个分类器中,最后在所有分类器中,选择一个最大值,其所对应的类别就是最终结果。

  • 选择一个让 h θ ( i ) ( x ) h_\theta^{\left( i \right)}\left( x \right) hθ(i)(x) 最大的 i i i,即 max ⁡ i   h θ ( i ) ( x ) \mathop{\max}\limits_i\,h_\theta^{\left( i \right)}\left( x \right) imaxhθ(i)(x)

image.png

5. 正则化

过拟合问题

  • 以回归问题来说明欠拟合和过拟合的概念

image.png
第一个模型没有很好地拟合训练数据,后面的数据明显趋于平缓,而预测模型却依旧陡峭,这就是欠拟合,也称为高偏差;第三个模型使用了四阶多项式,特别切合训练数据,其代价函数几乎为0,但是它千方百计地拟合训练数据,导致它无法泛化到新的样本中,失去了预测新数据的能力,这就是过拟合,也成为高方差

  • 同样分类问题中也存在类似的问题,这里以逻辑回归举例子

image.png

解决过拟合问题的方法

当我们有过多的特征变量,而又有相对比较少的训练数据时,就会出现过拟合问题。这里有两个解决过拟合的办法。

  1. 减少特征变量的数量。根据实际情况适当减去一些特征变量,或者使用一些算法来帮助我们自动选择应该保存哪些特征变量。
  2. 保留所有的特征变量,使用正则化,减少特征变量的量级或者减小参数 θ \theta θ的大小(当所有特征变量都对着预测结果有着一定影响我们不好取舍时,这时正则化就帮大忙了)

image.png

正则化的应用过程

我们可以通过在代价函数中对影响大的参数施加正则化项(惩罚),从而使得参数对于假设模型的影响变小,从而使得模型更加简单,当模型变简单了,假设模型就不会那么完全贴合原始数据了,这样我们就算解决了过拟合问题

以一个实际问题举例子:

  • 可以看出正是那些高次项导致了模型变复杂,导致过拟合的产生。如果我们能让这些高次项前面的参数系数减小,我们就可以减少这些高次项的影响,从而简化模型。所以我们要做的就是减小假设模型中的这些参数大小,这就是正则化要做的事情。
  • 如何减少参数的大小呢?很明显参数是通过对代价函数进行一定的操作(如梯度下降)得出的,如果我们在代价函数中,给这些参数增加很大的比重,那么想要最终最小化代价函数,只有一个方法,就是让这些目标参数最后取值尽可能地小,具体要多小这需要我们设置的惩罚力度。
  • 也就是说,正则化干的事情就是在原有代价函数基础上添加对一些参数的惩罚。

修改后的代价模型: J ( θ ) = min ⁡ θ   1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + 1000 θ 3 2 + 10000 θ 4 2 ] J\left( \theta \right)=\underset{\theta }{\mathop{\min }}\,\frac{1}{2m}[\sum\limits_{i=1}^{m}{{{\left( {{h}_{\theta }}\left( {{x}^{(i)}} \right)-{{y}^{(i)}} \right)}^{2}}+1000\theta _{3}^{2}+10000\theta _{4}^{2}]} J(θ)=θmin2m1[i=1m(hθ(x(i))y(i))2+1000θ32+10000θ42]
image.png

但是在一般情况(特征变量过多,训练数据相对较少的情况)下,我们并不能该选择哪些参数去缩小它们的值,于是我们可以对每一个参数都进行缩小,谁都不放过。
修改后的代价函数为: J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] 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}}]} J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]

  • 在这里我们并不对 θ 0 \theta_0 θ0进行正则化,我们只对 θ 1 → θ n \theta_1 \to \theta_n θ1θn进行正则化,因为实际结果表明有没有对 θ 0 \theta_0 θ0进行正则化,都不会怎么影响最终结果。

image.png

正则化参数

  • 在正则化项中的 λ \lambda λ称为正则化参数,它的作用就是控制两个不同目标之间的取舍,控制这两个目标之间的平衡关系,两个目标如下:
  1. 第一个目标:代价函数的第一项,它的目标是更好地拟合训练数据
  2. 第二个目标:代价函数的第二项,也就是正则化项,它的目标是尽可能地减少参数大小

image.png
在使用了正则化之后,我们依旧可以保留假设模型中的所有特征的高阶项,同时我们能够使原本曲折复杂的蓝色曲线,变为上图中的相对更平滑、更简单的粉色曲线

  • 同时,选择一个合适的正则化参数是必要的。

如果正则化参数过小,那么对参数大小的削弱也就很小;如果正则化参数过大,那么对于所有参数的惩罚效果就会太强,这样将导致除了 θ 0 \theta_0 θ0以外的参数几乎都接近于0,这样将导致最后的假设模型差不多就是一条 y = θ 0 y =\theta_0 y=θ0的直线,这样的假设模型就变成欠拟合,高偏差了,偏见性过于强。
当然,也有存在着一些算法可以自动帮我们选择合适的正则化参数,后面的课程还会继续涉及到这些。
image.png

线性回归的正则化

把正则化结合到线性回归中,我们可以更好地理解正则化具体干了什么。

1. 梯度下降的正则化

下面对线性回归中的梯度下降进行正则化,然后因为不对 θ 0 \theta_0 θ0进行正则化,于是我们就把表达式分成了两种情况。

  • 我们可以进一步对第二个式子进行改写,对算法中 j = 1 , 2 , . . . , n j=1,2,...,n j=1,2,...,n 时的更新式子进行调整可得

θ j : = θ j ( 1 − a λ m ) − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) {\theta_j}:={\theta_j}(1-a\frac{\lambda }{m})-a\frac{1}{m}\sum\limits_{i=1}^{m}{({h_\theta}({{x}^{(i)}})-{{y}^{(i)}})x_{j}^{\left( i \right)}} θj:=θj(1amλ)am1i=1m(hθ(x(i))y(i))xj(i)
很明显式子中的第二个部分和没有正则化之前的第二项是一样的,发生变化的只是参数前面的系数 ( 1 − a λ m ) (1-a\frac{\lambda }{m}) (1amλ),我们可以认为这就是正则化所干的事。

  • ( 1 − a λ m ) (1-a\frac{\lambda }{m}) (1amλ)这个系数通常是一个比1略小的数(学习率通常很小,而 m 数据数量通常很大),这样的话每次迭代更新参数时,参数一次比一次小慢慢向0方向移动,而第二项的偏导项还是和原本梯度下降时一样,每次都在原有算法更新规则的基础上令 θ \theta θ值减少了一个额外的值。
  • 这就是正则化所施加的惩罚,它能够使得收敛出来的参数变得更小,从而减少参数对模型的复杂化影响,从而让模型变得更加平滑、简单

image.png

2. 正规方程的正则化

我们同样也可以利用正规方程来求解正则化线性回归模型,方法如下所示:
image.png
图中的矩阵尺寸为 ( n + 1 ) ∗ ( n + 1 ) (n+1)*(n+1) (n+1)(n+1)

image.png

逻辑回归的正则化

正则化的做法就是对参数进行惩罚,从而使模型更平滑、简单,所以正则化要做的就是在算法优化出全局最优参数解的过程中,施加一定的干扰,减小参数迭代出来的最终值。正则化项设置的思想就是这样的。

1. 正则化的梯度下降算法

虽然逻辑回归中的正则化的梯度下降表达式和线性回归中的正则化的梯度下降表达式是一样的,但是这其中的假设函数是不一样的。
image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值