一、设置问题
例:广告费和点击量 如果花费200元,点击量大约是500次
二、定义模型
把图想象为函数。只要知道通过图中各点的函数的形式,就能根据广告费得知点击量。 点击量经常变化,这叫作“点击量中含有噪声”,所以函数并不能完美地通过所有的点。 图像为一次函数,确定了斜率和截距,就能确定一次图像的形状。
y
=
θ
0
+
θ
1
x
(2.1)
y = \theta_0 + \theta_1 x \tag{2.1}
y=θ0?+θ1?x(2.1)
在统计学领域,人们常常使用θ来表示未知数和推测值。采用θ加数字下标的形式,是为了防止当未知数增加时,表达式中大量出现a、b、c、d…这样的符号。这样不但不易理解,还可能会出现符号本身不够用的情况。
如果
θ
0
=
1
\theta_0 = 1
θ0?=1,
θ
1
=
2
\theta_1 = 2
θ1?=2,表达式
(
2.1
)
(2.1)
(2.1)会变成:
y
=
1
+
2
x
(2.2)
y = 1 + 2x \tag{2.2}
y=1+2x(2.2)
代入
x
=
1
x=1
x=1得出
y
=
201
y=201
y=201 与图像不符,说明
θ
0
=
1
\theta_0=1
θ0?=1、
θ
1
=
2
\theta_1=2
θ1?=2是错误的 需要通过算法来得出正确的
θ
0
,
θ
1
\theta_0,\theta_1
θ0?,θ1?
三、最小二乘法
将表达式2.1修改为:
f
θ
(
x
)
=
θ
0
+
θ
1
x
(3.1)
f_\theta(x) = \theta_0+\theta_1x \tag{3.1}
fθ?(x)=θ0?+θ1?x(3.1)
将
y
y
y修改为
f
θ
(
x
)
f_\theta(x)
fθ?(x)可以看出这是一个含有参数
θ
\theta
θ,并且和变量
x
x
x相关的函数。如果继续使用
y
y
y,可能会造成后续混乱。
我们拥有的广告费及其相应点击量的数据称为训练数据。 将训练数据中的广告费代入
f
θ
(
x
)
f_\theta(x)
fθ?(x),把得到的点击量与训练数据中的点击量相比较,找出使二者的差最小的
θ
\theta
θ。
例:选取图上4个点
表2-1
广告费
x
x
x | 点击量
y
y
y |
---|
58 | 374 | 70 | 385 | 81 | 375 | 84 | 401 |
刚才我们假设了一个
f
θ
x
=
1
+
2
x
f_\theta{x} = 1 + 2x
fθ?x=1+2x的表达式,将表2-1的值代入进行计算
表2-2
广告费
x
x
x | 点击量
y
y
y |
f
θ
(
x
)
=
1
+
2
x
f_\theta(x) = 1+2x
fθ?(x)=1+2x |
---|
58 | 374 | 117 | 70 | 385 | 141 | 81 | 375 | 163 | 84 | 401 | 169 |
可以看出
y
y
y和
f
θ
(
x
)
f_\theta(x)
fθ?(x)完全不同,而我们需要找出
θ
0
,
θ
1
\theta_0,\theta_1
θ0?,θ1?的值使二者最接近。 理想状态下是
y
y
y与
f
θ
(
x
)
f_\theta(x)
fθ?(x)之间的误差等于零,我们要做的是让所有点的误差之和尽可能的小。
假设有n个训练数据,那么它们的误差之和可以用表达式(3.2)表示,称为目标函数。(
E
(
θ
)
E(\theta)
E(θ)的
E
E
E是误差的单词ERROR的首字母)
E
(
θ
)
=
1
2
∑
i
=
1
n
(
y
(
i
)
?
f
θ
(
x
(
i
)
)
)
2
(3.2)
E(\theta) = \frac{1}{2} \sum_{i=1}^n (y^{(i)} - f_\theta(x^{(i)}))^2 \tag{3.2}
E(θ)=21?i=1∑n?(y(i)?fθ?(x(i)))2(3.2)
其中,角标
(
i
)
(i)
(i)表示第
i
i
i个训练数据。 我们对每个训练数据的误差取平方后,全部相加,再乘以
1
2
\frac{1}{2}
21?,以找到使
E
(
θ
)
E(\theta)
E(θ)的值最小的
θ
\theta
θ。这样的问题称为最优化问题
使用公式(3.2)来计算表(2-2)中的数据:
E
(
θ
)
=
1
2
∑
i
=
1
n
(
y
(
i
)
?
f
θ
(
x
(
i
)
)
)
2
=
1
2
[
(
374
?
117
)
2
+
(
385
?
141
)
2
+
(
375
?
163
)
2
+
(
401
?
169
)
2
]
=
112
?
176.5
(3.3)
\begin{aligned} E(\theta) &= \frac{1}{2} \sum_{i=1}^n (y^{(i)} - f_\theta(x^{(i)}))^2 \\ &=\frac{1}{2}[(374-117)^2+(385-141)^2+(375-163)^2+(401-169)^2]\\ &=112\ 176.5\tag{3.3} \end{aligned}
E(θ)?=21?i=1∑n?(y(i)?fθ?(x(i)))2=21?[(374?117)2+(385?141)2+(375?163)2+(401?169)2]=112?176.5?(3.3)
我们需要不断修改
θ
\theta
θ的值,使误差越来越小。这种方法叫最小二乘法
最速下降法
使用微分的方法可以求得需要的
θ
\theta
θ值
例: 表达式:
g
(
x
)
=
(
x
?
1
)
2
g(x)=(x-1)^2
g(x)=(x?1)2的图像:
通过微分求出增减表
d
d
x
g
(
x
)
=
2
x
?
2
(3.4)
\frac{d}{dx} g(x)=2x-2 \tag{3.4}
dxd?g(x)=2x?2(3.4)
-
比如在
x
=
3
x=3
x=3这一点,为了使
g
(
x
)
g(x)
g(x)的值减小,我们需要向左移动x,也就是必须减小x。 -
如果在另一侧
x
=
?
1
x=-1
x=?1,为了使
g
(
x
)
g(x)
g(x)变小,需要向右移动x,也就是增大x 只要向与导数的符号相反的方向移动x,g(x)就会自然而然地沿着最小值的方向前进。 最速下降法\梯度下降法:
x
:
=
x
?
η
d
d
x
g
(
x
)
(3.5)
x:=x-\eta\frac{d}{dx}g(x) \tag{3.5}
x:=x?ηdxd?g(x)(3.5) (用上一个x来定义新的x) -
η
\eta
η - 学习率的正常数。根据学习率的大小,到达最小值的更新次数也会发生变化
代入具体值:
- 从
η
=
1
,
x
=
3
\eta=1,x=3
η=1,x=3开始
x
:
=
3
?
1
(
2
?
3
?
2
)
=
?
1
x
:
=
?
1
?
1
(
2
?
?
1
?
2
)
=
3
x
:
=
3
?
1
(
2
?
3
?
2
)
=
?
1
(3.6)
\begin{aligned} &x:=3-1(2*3-2)=-1\\ &x:=-1-1(2*-1-2)=3\\ &x:=3-1(2*3-2)=-1\\ \tag{3.6} \end{aligned}
?x:=3?1(2?3?2)=?1x:=?1?1(2??1?2)=3x:=3?1(2?3?2)=?1?(3.6) - 从
η
=
0.1
,
x
=
3
\eta=0.1,x=3
η=0.1,x=3开始
x
:
=
3
?
0.1
?
(
2
?
3
?
2
)
=
2.6
x
:
=
2.6
?
0.1
?
(
2
?
2.6
?
2
)
=
2.3
x
:
=
2.3
?
0.1
?
(
2
?
2.3
?
2
)
=
2.1
x
:
=
2.1
?
0.1
?
(
2
?
2.1
?
2
)
=
1.9
(3.7)
\begin{aligned} &x:=3-0.1*(2*3-2)=2.6\\ &x:=2.6-0.1*(2*2.6-2)=2.3\\ &x:=2.3-0.1*(2*2.3-2)=2.1\\ &x:=2.1-0.1*(2*2.1-2)=1.9\\ \tag{3.7} \end{aligned}
?x:=3?0.1?(2?3?2)=2.6x:=2.6?0.1?(2?2.6?2)=2.3x:=2.3?0.1?(2?2.3?2)=2.1x:=2.1?0.1?(2?2.1?2)=1.9?(3.7)
如果η较大,那么x:=x-η(2x-2)会在两个值上跳来跳去,甚至有可能远离最小值。这就是发散状态。而当η较小时,移动量也变小,更新次数就会增加,但是值确实是会朝着收敛的方向而去。
对于目标函数:
E
(
θ
)
=
1
2
∑
i
=
1
n
(
y
(
i
)
?
f
θ
(
x
(
i
)
)
)
2
E(\theta) = \frac{1}{2} \sum_{i=1}^n (y^{(i)} - f_\theta(x^{(i)}))^2
E(θ)=21?∑i=1n?(y(i)?fθ?(x(i)))2,和
g
(
x
)
g(x)
g(x)一样是开口向上的形状,所以刚才的公式也同样适用于它。 不过目标函数中包含
f
θ
(
x
)
f_\theta(x)
fθ?(x),即两个参数
θ
0
,
θ
1
\theta_0,\theta_1
θ0?,θ1?,需要使用偏微分:
θ
0
:
=
θ
0
?
η
?
E
?
θ
0
θ
1
:
=
θ
1
?
η
?
E
?
θ
1
(3.9)
\begin{aligned} &\theta_0 := \theta_0 - \eta \frac{\partial E}{\partial\theta_0}\\ &\theta_1 := \theta_1 - \eta \frac{\partial E}{\partial\theta_1}\\ \tag{3.9} \end{aligned}
?θ0?:=θ0??η?θ0??E?θ1?:=θ1??η?θ1??E??(3.9)
省略中间求导步骤 最终得出的公式:
θ
0
:
=
θ
0
?
η
∑
i
=
1
n
(
f
θ
(
x
(
i
)
)
?
y
(
i
)
)
θ
1
:
=
θ
1
?
η
∑
i
=
1
n
(
f
θ
(
x
(
i
)
)
?
y
(
i
)
)
x
(
i
)
(3.18)
\begin{aligned} &\theta_0 := \theta_0 - \eta \sum_{i=1}^n ( f_\theta(x^{(i)}) - y^{(i)})\\ &\theta_1 := \theta_1 - \eta \sum_{i=1}^n ( f_\theta(x^{(i)}) - y^{(i)})x^{(i)}\\ \tag{3.18} \end{aligned}
?θ0?:=θ0??ηi=1∑n?(fθ?(x(i))?y(i))θ1?:=θ1??ηi=1∑n?(fθ?(x(i))?y(i))x(i)?(3.18)
|