模型表示
以之前的房屋交易问题为例,我们根据之前的数据预测出一个准确的输出值,从而得到一个房子能卖多少钱。
这就是一个监督学习算法的工作方式,我们可以看到这里有我们的训练集里房屋价格 我们把它喂给我们的学习算法,学习算法的工作了,然后输出一个函数,通常表示为小写 h 表示。h 代表hypothesis(假设),h表示一个函数,输入是房屋尺寸大小,就像你朋友想出售的房屋,因此 h 根据输入的 x值来得出 y 值,y 值对应房子的价格 因此,h 是一个从x 到 y 的函数映射。
其中,假设函数h为:
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_{\theta}\left( x \right) =\theta _0+\theta _1x
hθ(x)=θ0+θ1x
由于仅有x一个输入变量,因此叫作单变量线性回归。
代价函数
对于回归问题,代价函数(cost function)通常选择平方误差函数:
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J\left( \theta _0,\theta _1 \right) =\frac{1}{2m}\sum_{i=1}^m{\left( h_{\theta}\text{(}x^{\text{(}i\text{)}}\text{)}-y^{\text{(}i\text{)}} \right) ^2}
J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
其中m为样本个数。
我们要做的便是找到一组参数
(
θ
0
,
θ
1
)
\left( \theta _0,\theta _1 \right)
(θ0,θ1),使得损失函数最小。
梯度下降
我们将使用梯度下降算法来求出代价函数 J ( θ 0 , θ 1 ) J\left( \theta _0,\theta _1 \right) J(θ0,θ1)的最小值。
步骤:
a. 初始化
(
θ
0
,
θ
1
)
\left( \theta _0,\theta _1 \right)
(θ0,θ1)为[0,0]的转置
b. 更新公式:
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
\theta _j:=\theta _j-\alpha \frac{\partial}{\partial \theta _j}J\left( \theta \right)
θj:=θj−α∂θj∂J(θ)
在单变量线性回归问题当中:
梯度的求解公式:
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
=
∂
∂
θ
j
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
\frac{\partial}{\partial \theta _j}J\text{(}\theta _0,\theta _1\text{)}=\frac{\partial}{\partial \theta _j}\frac{1}{2m}\sum_{i=1}^m{\left( h_{\theta}\text{(}x^{\text{(}i\text{)}}\text{)}-y^{\text{(}i\text{)}} \right)}^2
∂θj∂J(θ0,θ1)=∂θj∂2m1i=1∑m(hθ(x(i))−y(i))2
具体的更新步骤:
θ
0
:
=
θ
0
−
a
1
/
m
∑
(
i
=
1
)
m
(
h
θ
(
x
(
(
i
)
)
)
−
y
(
(
i
)
)
)
\theta _0:=\theta _0-a1/m∑_{\left( i=1 \right)}^{m}\left( h_{\theta}\left( x^{\left( \left( i \right) \right)} \right) -y^{\left( \left( i \right) \right)} \right)
θ0:=θ0−a1/m∑(i=1)m(hθ(x((i)))−y((i)))
θ
1
:
=
θ
1
−
a
1
m
∑
i
=
1
m
(
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
⋅
x
(
i
)
)
\theta _1:=\theta _1-a\frac{1}{m}\sum_{i=1}^m{\left( \left( h_{\theta}\text{(}x^{\text{(}i\text{)}}\text{)}-y^{\text{(}i\text{)}} \right) \cdot x^{\text{(}i\text{)}} \right)}
θ1:=θ1−am1∑i=1m((hθ(x(i))−y(i))⋅x(i))
其中,α为学习率,一般我们会设定迭代次数,如1000次,如此可得迭代1000次所得的参数。