【机器学习】学习笔记(五)之正则化

一、正则化

在介绍正则化之前,我们先介绍几个名词:

  1. 泛化能力:一个假设模型应用到新样本的能力。
  2. 拟合数据:即代价函数为0时,代价为0,从而泛化弱。
  3. 欠拟合、过拟合
    下面从左到右依次是:欠拟合、拟合的最好、过拟合
    在这里插入图片描述
    在这里插入图片描述
    就以多项式理解,𝑥 的次数越高,拟合的越好,但相应的预测的能力就可能变差,即泛化能力变弱。

如果我们发现了过拟合问题,应该如何处理?

  1. 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如模型选择算法 PCA)
  2. 正则化, 保留所有的特征,但是减少参数的大小(magnitude)。

正是那些高次项导致了过拟合的产生,所以如果我们能让这些高次项的系数接近于 0 的话,我们就能很好的拟合了。所以我们要做的就是在一定程度上减小这些参数𝜃 的值,这就是正则化的基本方法
能防止过拟合问题的假设:
在这里插入图片描述
其中𝜆又称为正则化参数(Regularization Parameter)。 注:根据惯例,我们不对𝜃0 进行惩罚。经过正则化处理的模型与原模型的可能对比如下图所示:
在这里插入图片描述
如果选择的正则化参数 λ 过大,则会把所有的参数都最小化了,导致模型变成 ℎ𝜃(𝑥) = 𝜃0,也就是上图中红色直线所示的情况,造成欠拟合。
如果我们令 𝜆 的值很大的话,为了使 Cost Function 尽可能的小,所有的 𝜃 的值0(不包括𝜃0)都会在一定程度上减小,则可以避免过拟合的发生。
所以对于正则化,我们要取一个合理的 𝜆 的值,这样才能更好的应用正则化。

二、线性回归的正则化

对于线性回归的求解,我们之前推导了两种学习算法:一种基于梯度下降,一种基于正规方程。
线性回归的正则化的代价函数为:
在这里插入图片描述
正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令𝜃值减少了一个额外的值。
我们同样也可以利用正规方程来求解正则化线性回归模型,方法如下所示:
在这里插入图片描述

三、逻辑回归的正则化

针对逻辑回归问题,学习过两种优化算法:

1.使用梯度下降法来优化代价函数𝐽(𝜃)
2.更高级的优化算法,需要自己设计代价函数𝐽(𝜃)

逻辑回归的正则化的代价函数为:
在这里插入图片描述

import numpy as np
def costReg(theta, X, y, learningRate):
 theta = np.matrix(theta)
 X = np.matrix(X)
 y = np.matrix(y)
 first = np.multiply(-y, np.log(sigmoid(X*theta.T)))
 second = np.multiply((1 - y), np.log(1 - sigmoid(X*theta.T)))
 reg = (learningRate / (2 * len(X))* np.sum(np.power(theta[:,1:theta.shape[1]],2))
 return np.sum(first - second) / (len(X)) + reg

注:看上去同线性回归一样,但是知道 ℎ𝜃(𝑥) = 𝑔(𝜃𝑇𝑋),所以与线性回归不同。
注意:

  1. 虽然正则化的逻辑回归中的梯度下降和正则化的线性回归中的表达式看起来一样,
    但由于两者的ℎ𝜃(𝑥)不同所以还是有很大差别。
  2. 𝜃0不参与其中的任何一个正则化
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tialyg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值