HEU机器学习基础0.03
线性回归Extra
前言
Preview
based on Andrew Ng
多元线性回归multiple linear regression
有多个输入特征的线性回归模型
x
j
x_j
xj =
j
t
h
j^{th}
jth feature
n = number of features
x
⃗
i
\vec{x}^{i}
xi = features of
i
t
h
i^{th}
ith training example
x
j
x_j
xj = value of feature j in
i
t
h
i^{th}
ith training example
初始模型single linear regression model
f w , b ( x ) = w x + b f_{w,b}(x) = wx+b fw,b(x)=wx+b
multiple linear regression
f w , b ( x ) = w 1 x 1 + w 2 x 2 + . . . + w n x n + b f_{w,b}(x) = w_1x_1+w_2x_2+...+w_nx_n+b fw,b(x)=w1x1+w2x2+...+wnxn+b
向量化vectorization
基本步骤
w
⃗
\vec{w}
w = [
w
1
w_1
w1
w
2
w_2
w2
w
3
w_3
w3 …
w
n
w_n
wn]
b = constant
x
⃗
\vec{x}
x = [
x
1
x_1
x1
x
2
x_2
x2
x
3
x_3
x3 …
x
n
x_n
xn]
减少变量数量,加快运行速度
Final result
f w , b ( x ⃗ ) = w ⃗ ⋅ x ⃗ + b f_{w,b}(\vec{x}) = \vec{w}\cdot\vec{x}+b fw,b(x)=w⋅x+b
Previous notation | Vector notation | |
---|---|---|
Parameter | w 1 w_1 w1… w n w_n wn | w ⃗ \vec{w} w = [ w 1 w_1 w1 … w n w_n wn] |
Model | f w , b ( x ) = w 1 x 1 + w 2 x 2 + . . . + w n x n + b f_{w,b}(x) = w_1x_1+w_2x_2+...+w_nx_n+b fw,b(x)=w1x1+w2x2+...+wnxn+b | f w , b ( x ⃗ ) = w ⃗ ⋅ x ⃗ + b f_{w,b}(\vec{x}) = \vec{w}\cdot\vec{x}+b fw,b(x)=w⋅x+b |
Cost function | J ( w 1 , . . . , w n , b ) J(w_1, ... ,w_n, b) J(w1,...,wn,b) | J ( w ⃗ , b ) J(\vec{w},b) J(w,b) |
Gradient descent | repeat{ w j = w j − α ∂ ∂ w j ∂ J ( w 1 , w 2 , . . . w n , b ) w_j = w_j - \alpha\frac{\partial}{\partial w_j}\partial J(w_1,w_2,...w_n,b) wj=wj−α∂wj∂∂J(w1,w2,...wn,b) b = b − α ∂ ∂ b ∂ J ( w 1 , w 2 , . . . w n , b ) b = b - \alpha\frac{\partial}{\partial b}\partial J(w_1,w_2,...w_n,b) b=b−α∂b∂∂J(w1,w2,...wn,b)} | repeat{ w j = w j − α ∂ ∂ w j ∂ J ( w ⃗ , b ) w_j = w_j - \alpha\frac{\partial}{\partial w_j}\partial J(\vec w,b) wj=wj−α∂wj∂∂J(w,b) b = b − α ∂ ∂ b ∂ J ( w ⃗ , b ) b = b - \alpha\frac{\partial}{\partial b}\partial J(\vec w, b) b=b−α∂b∂∂J(w,b)} |
特性缩放Feature Scaling
加快梯度下降速度(加快运算)
通常来说:大特征对应小参数,小特征对应大参数
使用特性缩放,使参数下降的过程更长,避免出现梯度下降过快导致的超调。
如何特性缩放:类似标准化(归一化)normalization
均值归一化 Mean normalization
使用均值进行归一化处理
Z-Score 归一化 Z-score normalizaation
参考正态分布
使用标准差进行归一化处理
特性缩放的目的
调整特征的量级,以匹配学习率,避免出现超调或梯度下降过慢的情况。
一般希望在
−
1
≤
x
j
≤
1
-1 \leq x_j \leq 1
−1≤xj≤1
−
0.1
≤
x
j
≤
0.1
-0.1 \leq x_j \leq 0.1
−0.1≤xj≤0.1
这个数量级范围
检查梯度下降是否收敛
绘制学习曲线Learning curve
(#iteration,J(
w
⃗
\vec w
w,b))
横坐标:#iteration 迭代次数
纵坐标:代价函数J(
w
⃗
\vec w
w,b)
判断是否收敛Convergence
设参数 ϵ \epsilon ϵ= 1 0 − 3 10^{-3} 10−3,如果单次迭代的代价函数变化率小于 ϵ \epsilon ϵ,则表示已经收敛。
学习率调试
Situation1:
α
\alpha
α过大
Situation 2:
α
\alpha
α过大 或 代码错误(
w
1
w_1
w1=
w
1
w_1
w1 -
α
\alpha
α
d
1
d_1
d1, 注意是减法)
多项式回归
f w ⃗ , b ( x ) = w 1 ⋅ x 1 + w 2 ⋅ x 2 + . . . + w n ⋅ x n f_{\vec w, b}(x)=w_1 \cdot x^1+w_2\cdot x^2+...+w_n \cdot x^n fw,b(x)=w1⋅x1+w2⋅x2+...+wn⋅xn