ML(七)_正则化

正则化(Regularization)

标签(空格分隔): ML standford机器学习视频 笔记


过拟合的问题

正则化用来定位、处理过拟合的问题。无论是预测还是分类问题,都会有过拟合、欠拟合的问题出现,表现为假设函数与训练集的趋势没有很好匹配,通常因为函数模型太过简单或太过复杂。一般而言,函数模型中高次方相影响越多,更容易出现过拟合的问题。
对于过拟合问题,一般有两种方法:
1. 减少特征的数量
人工选择要保留的特征
通过一个选择算法
2. 正则化:减小(注意不是减少!!!)参数 θj θ j ,当有很多有点小用的特征是效果好。

代价函数

通过修改代价函数来减小某些参数 θ θ 的影响。如想要消除下式中3,4次项的影响:

θ0+θ1x+θ2x2+θ3x3+θ4x4 θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 + θ 4 x 4

minθ 12mi=1m(hθ(x(i))y(i))2+1000θ23+1000θ24 m i n θ   1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + 1000 ⋅ θ 3 2 + 1000 ⋅ θ 4 2

此时,为了减小代价函数,显然需要 θ3 θ 3 θ4 θ 4 尽可能接近于0.同样可以对所有参数同时进行“惩罚”:
minθ 12m [i=1m(hθ(x(i))y(i))2+λ j=1nθ2j] m i n θ   1 2 m   [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ   ∑ j = 1 n θ j 2 ]

通过控制 λ λ 来控制拟合程度。显然 λ λ 越大,拟合程度越低,曲线更光滑。
正则化适用于线性回归和逻辑回归。

正则线性回归

对于线性回归的求解,我们之前推导了两种学习算法:一种基于梯度下降,一种基于正规方程。
1.基于梯度下降
修正梯度下降方程,注意 θ0 θ 0 需要排除在外。

Repeat {    θ0:=θ0α 1m i=1m(hθ(x(i))y(i))x(i)0    θj:=θjα [(1m i=1m(hθ(x(i))y(i))x(i)j)+λmθj]}          j{1,2...n} Repeat   {         θ 0 := θ 0 − α   1 m   ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i )         θ j := θ j − α   [ ( 1 m   ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ) + λ m θ j ]                     j ∈ { 1 , 2... n } }

可以整理成:
θj:=θj(1αλm)α1mi=1m(hθ(x(i))y(i))x(i)j θ j := θ j ( 1 − α λ m ) − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i )

理解为在每一次更新时都人为减小 θj θ j 的量。
2.基于正规方程(Normal Equation)
方程修正为:
θ=(XTX+λL)1XTywhere  L=0111 θ = ( X T X + λ ⋅ L ) − 1 X T y where     L = [ 0 1 1 ⋱ 1 ]

其中L用来实现正则化。之前当m<=n时, XTX X T X 不可逆,加了L矩阵也能解决这一问题。

正则逻辑回归

逻辑回归的代价函数如下:

J(θ)=1mi=1m[y(i) log(hθ(x(i)))+(1y(i)) log(1hθ(x(i)))] J ( θ ) = − 1 m ∑ i = 1 m [ y ( i )   log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) )   log ⁡ ( 1 − h θ ( x ( i ) ) ) ]

修正后如下:
J(θ)=1mi=1m[y(i) log(hθ(x(i)))+(1y(i)) log(1hθ(x(i)))]+λ2mj=1nθ2j J ( θ ) = − 1 m ∑ i = 1 m [ y ( i )   log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) )   log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2

注意,这里同样没有对 θ0 θ 0 进行正则化。则逻辑回归的梯度下降为:
Repeat {    θ0:=θ0α 1m i=1m(hθ(x(i))y(i))x(i)0    θj:=θjα [(1m i=1m(hθ(x(i))y(i))x(i)j)+λmθj]}          j{1,2...n} Repeat   {         θ 0 := θ 0 − α   1 m   ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i )         θ j := θ j − α   [ ( 1 m   ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ) + λ m θ j ]                     j ∈ { 1 , 2... n } }

<script type="math/tex; mode=display" id="MathJax-Element-22"></script>
<script type="math/tex; mode=display" id="MathJax-Element-23"></script>
<script type="math/tex; mode=display" id="MathJax-Element-24"></script>
<script type="math/tex; mode=display" id="MathJax-Element-25"></script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值