正规方程法和梯度下降法提升技巧--特征缩放/学习率

1 特征缩放(Feature Scaling)

在多元变量的线性回归中使用梯度下降法时,如果输入的n维特征中,特征的区间范围相差很大,那么代价函数收敛会很慢。为了提高收敛速度,可以将输入特征限制在相似的范围之内,也就是特征缩放

方法一般是用特征÷范围内最大值

目的是将特征的取值范围限制在 − 1 ≤ x i ≤ 1 -1≤x_i≤1 1xi1内,当然并不是一定要在这个范围内,只要范围不会太大或太小,都是可以接受的。

均值归一化(Mean Normalization)

在特征缩放中,我们有时也会使用均值归一化的方法

方法: ( 特 征 − 均 值 ) ( 最 大 值 − 最 小 值 ) \frac{(特征-均值)}{(最大值-最小值)} ()()

2 如何选择学习率

首先要知道如何判断代价函数是否收敛,一般通过画出代价函数J(θ)和迭代次数之间的关系来判断

吴恩达教授的方法是可以通过采用学习率为0.001、0.003、0.01、0.03、0.1、0.3、1、3,然后分别绘制出对应的代价函数J(θ)和迭代次数之间的关系,找出下降最快的学习率。

3 正规方程法

假如我们有m个训练样本,分别是 ( ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . ( x ( m ) , y ( m ) ) ) ((x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...(x^{(m)},y^{(m)})) ((x(1),y(1)),(x(2),y(2)),...(x(m),y(m))),以及n个特征变量

每一个训练样本 x ( i ) = [ x 0 ( i ) x 1 ( i ) x 2 ( i ) ⋮ x n ( i ) ] ∈ R n + 1 x^{(i)}=\left[\begin{matrix}x^{(i)}_0 \\ x^{(i)}_1 \\ x^{(i)}_2 \\ \vdots \\ x^{(i)}_n\end{matrix}\right]\in R^{n+1} x(i)=x0(i)x1(i)x2(i)xn(i)Rn+1

然后根据这m个训练样本得到一个 m × ( n + 1 ) m×(n+1) m×(n+1)维的设计矩阵 X X X

X = [ x ( 1 ) T x ( 2 ) T x ( 3 ) T ⋮ x ( m ) T ] X=\left[\begin{matrix}{x^{(1)}}^T \\{x^{(2)}}^T \\ {x^{(3)}}^T \\ \vdots \\ {x^{(m)}}^T\end{matrix}\right] X=x(1)Tx(2)Tx(3)Tx(m)T,其中 x ( i ) T {x^{(i)}}^T x(i)T x ( i ) {x^{(i)}} x(i)的转置矩阵

y = [ y ( 1 ) y ( 2 ) y ( 3 ) ⋮ y ( m ) ] y=\left[\begin{matrix}y^{(1)} \\ y^{(2)} \\ y^{(3)} \\ \vdots \\ y^{(m)}\end{matrix}\right] y=y(1)y(2)y(3)y(m)

最后,我们可以通过上述矩阵求出最佳参数 θ \theta θ
θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy,其中 ( X T X ) − 1 (X^TX)^{-1} (XTX)1 X T X X^TX XTX的逆矩阵

扩展

如果遇到 X T X X^TX XTX不可逆的情况时该怎么办?

方法:首先观察所有特征变量,看是否有多余的变量,把多余的变量删除。如果没有多余的,那么就看特征变量是否过多,在不影响的情况下,删掉一些特征,或者使用正则化

两者选择

梯度下降法的缺点是需要选择学习率,这意味着你需要运行多次从而找到最好的学习率。还需要多次的迭代。但在特征变量特别多的时候也能运行得很好。

总结:特征变量很多时选择梯度下降法,反之选择正规方程法

一般特征变量在4位数以内都可以选择正规方程法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值