机器学习从零开始系列【第三话】多项式回归问题

特征缩放 (Features scaling)

为什么需要特征缩放?
目的让所有的变量处在一个数量级上,如果某一个变量的数量级和其他的相差太严重会导致收敛太慢,因为我们对每个变量使用的学习率都是一致的。
假如有某个变量的数量级太大,会导致损失函数的梯度图呈现这样扁竖的样子:
机器学习从零开始系列【第三话】多项式回归问题

【解决方法:均值归一化】(Mean normalization)

X:=Xavg(X)rangeX:=\frac{X-avg(X)}{range}
这样可以把X控制在 0.5<X<0.5-0.5<X<0.5

多项式回归

例如:
h(θ)=θ0+θ1x1+θ2x1+θ3x3....h(\theta)=\theta_0+\theta_1x_1+\theta_2x_1+\theta_3x_3....
如果把变量参数都看作矩阵:
机器学习从零开始系列【第三话】多项式回归问题
为什么会有:
θ=(XTX)1XTy\theta=(X^TX)^{-1}X^Ty
(注意:这里的θ\theta是矩阵),假设样本总数m=4,特征数n=5。Hypothesis function 可以表示为
Y=XθY=X\theta
Y=m * 1
X=m * n
θ\theta=n * 1
XTX^T=n * m
假如我们需要求θ=X1Y\theta=X^{-1}Y,但我们不能保证X一定是方阵,可以使用矩阵转置来帮助θ=(XTX)1XTy\theta=(X^TX)^{-1}X^Ty