常用符号
m
m
m:表示训练集中样本的数量(样本容量)
x
x
x:表示输入变量(特征)
y
y
y:表示输出变量(目标变量)
(
x
,
y
)
(x,y)
(x,y):表示训练集中的样本(即整个数据集)
(
x
(
i
)
,
y
(
i
)
)
({{x}^{(i)},{y}^{(i)}})
(x(i),y(i)):表示第
i
i
i个训练样本(即数据集中第
i
个
i个
i个数据)
h
h
h:表示函数(表示学习算法的解决方案或函数,即
h
h
h 是一个从
x
x
x 到
y
y
y 的函数映射)
代价函数
代价函数:通俗的讲,代价函数就是用来衡量假设函数h的准确性的。代价函数又叫平方误差函数、平方误差代价函数等。模型(函数)所预测的值与训练集中实际值之间的差距就是建模误差(modeling error)
以线性函数为例:
函数(Hypothesis,也叫模型):
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_\theta \left( x \right)=\theta_{0}+\theta_{1}x
hθ(x)=θ0+θ1x。
参数(Parameters):
θ
0
,
θ
1
\theta_{0},\theta_{1}
θ0,θ1
代价函数(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\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2}
J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
目标(Goal):找到使代价函数最小的参数。
我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价函数
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\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2}
J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2最小。
通俗地讲,
h
θ
(
x
(
i
)
)
−
y
(
i
)
h_{\theta}(x^{(i)})-y^{(i)}
hθ(x(i))−y(i)就是第
i
i
i个预测值与训练集中第
i
i
i个实际值之间的误差,当然是误差越小越准确。那么为什么要平方呢?因为
h
θ
(
x
(
i
)
)
−
y
(
i
)
h_{\theta}(x^{(i)})-y^{(i)}
hθ(x(i))−y(i)有可能是正数也有可能是负数,例如
h
θ
(
x
(
i
)
)
−
y
(
i
)
h_{\theta}(x^{(i)})-y^{(i)}
hθ(x(i))−y(i)有两个值,一个是0.1,另外一个是-0.01,那当然是-0.01的误差更小。那为什么是平方,不是三次方四次方呢?因为没必要!那么为什么要求和然后再乘以
1
2
m
\frac{1}{2m}
2m1呢?因为是求和算平均误差,至于为什么是
1
2
m
\frac{1}{2m}
2m1而不是
1
m
\frac{1}{m}
m1,是因为后面求导的时候可以把2约去。