h θ ( x ) = θ T X = ∑ i = 0 n θ i x i = θ 0 + θ 1 x 1 + ⋯ + θ n x n h_\theta(x) = \theta^TX = \sum_{i=0}^{n}\theta_ix_i = \theta_0 + \theta_1x_1 + \cdots + \theta_nx_n hθ(x)=θTX=i=0∑nθixi=θ0+θ1x1+⋯+θnxn
J ( θ ) = 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h(x^{(i)}) - y^{(i)})^2 J(θ)=2m1i=1∑m(h(x(i))−y(i))2
M i n J ( θ ) Min J(\theta) MinJ(θ)
伪代码
repeat until convergence {
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 , . . . ) ( s i m u l a t e − f o r j = 0 , 1 , 2 , . . . ) \theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j}J(\theta_0, \theta_1, ...) \qquad (simulate - for \quad j=0,1,2,...) θj:=θj−α∂θj∂J(θ0,θ1,...)(simulate−forj=0,1,2,...)
θ j : = θ j − α ∂ ∂ θ j 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 ( f o r j = 0 , 1 , 2 , . . . ) \theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j}\frac{1}{2m}\sum_{i=1}^{m}(h(x^{(i)}) - y^{(i)})^2 \qquad (for \quad j=0,1,2,...) θj:=θj−α∂θj∂2m1i=1∑m(h(x(i))−y(i))2(forj=0,1,2,...)
θ j : = θ j − α 1 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) x ( i ) ( f o r j = 0 , 1 , 2 , . . . ) \theta_j := \theta_j - \alpha \frac{1}{m}\sum_{i=1}^{m}(h(x^{(i)}) - y^{(i)})x^{(i)} \qquad (for \quad j=0,1,2,...) θj:=θj−αm1i=1∑m(h(x(i))−y(i))x(i)(forj=0,1,2,...)
}
开始梯度下降之前:
梯度下降对特征的值敏感,不同的特征取值差别太大会影响收敛效率,所以需要对特征进行归一化,如 x 1 = x 1 − μ 1 s 1 x_1=\frac{x_1-\mu_1}{s_1} x1=s1x1−μ1 处理后数据集的均值为0,方差为1
初始点不同可能导致的求解的结果不一样
学习率太小,则学习时间太长;学习率太大,可能会错过最低点,最终在最低点来回摆动而无法到达最优;
梯度下降ing:
梯度下降后:
几种梯度下降方法:
居于,最优点的斜率应该为0,直接求解最小损失函数对应的 θ \theta θ向量值
X = ( x 0 ( 1 ) x 1 ( 1 ) ⋯ x n ( 1 ) x 0 ( 2 ) x 1 ( 2 ) ⋯ x n ( 2 ) ⋯ ⋯ ⋯ ⋯ x 0 ( m ) x 1 ( m ) ⋯ x n ( m ) ) X = \begin{pmatrix} x_0^{(1)} & x_1^{(1)} & \cdots & x_n^{(1)} \\ x_0^{(2)} & x_1^{(2)} & \cdots & x_n^{(2)} \\ \cdots & \cdots & \cdots & \cdots \\ x_0^{(m)} & x_1^{(m)} & \cdots & x_n^{(m)} \\ \end{pmatrix} X=⎝⎜⎜⎜⎛x0(1)x0(2)⋯x0(m)x1(1)x1(2)⋯x1(m)⋯⋯⋯⋯xn(1)xn(2)⋯xn(m)⎠⎟⎟⎟⎞
将所有的样本数据转化为一个(m, n+1)维的 X X X
记住结论
θ = ( X T X ) − 1 X T Y \theta = (X^TX)^{-1}X^TY θ=(XTX)−1XTY
注意:
梯度下降 | 正规方程 |
---|---|
需要选择学习率 | 不需要学习率 |
需要很多次的迭代 | 不需要迭代 |
特征维度n很大的时候可以工作 | n很大的时候,(n,n)矩阵的逆完全算不出来的 |
将原假设函数 h θ ( x ) = θ 0 + θ 1 x 1 + ⋯ + θ n x n h_\theta(x) = \theta_0 + \theta_1x_1 + \cdots + \theta_nx_n hθ(x)=θ0+θ1x1+⋯+θnxn中的 x i x_i xi改成多项式的形式,比如 θ 1 x 1 + θ 2 x 2 + θ 3 x 1 x 2 + θ 4 x 1 2 + θ 5 x 2 2 \theta_1x_1 + \theta_2x_2 + \theta_3x_1x_2 + \theta_4x_1^2 + \theta_5x_2^2 θ1x1+θ2x2+θ3x1x2+θ4x12+θ5x22
注意,多项式回归方程中每一项都需要进行归一化
@ 学必求其心得,业必贵其专精