摘要
本文从算法的模型假设方面,对线性回归、逻辑回归和感知器做一下简要对比,说明了它们之间的联系。
符号约定
1)样本集合:
(xi,yi)(1⩽i⩽m)
(
x
i
,
y
i
)
(
1
⩽
i
⩽
m
)
,其中
i
i
表示一共个样本中的第
i
i
个
2),表示输入向量,其中
xi0=1
x
0
i
=
1
是为了统一格式
3)
yi
y
i
为标量,代表第
i
i
个样本对应的值(或分类问题中的label)
4),表示待求参数
5)
x⋅θT=θ0+∑nj=1θjxj=0
x
⋅
θ
T
=
θ
0
+
∑
j
=
1
n
θ
j
x
j
=
0
,表示
n
n
维空间中的一个超平面
问题描述
已知个样本
(xi,yi)(1⩽i⩽m)
(
x
i
,
y
i
)
(
1
⩽
i
⩽
m
)
,当
x=x0,x0∉(x1,x2,⋯,xm)
x
=
x
0
,
x
0
∉
(
x
1
,
x
2
,
⋯
,
x
m
)
时,我们想要估计出相对应的输出
y0
y
0
。根据
y0
y
0
取值范围的不同,问题分为两种情况。
1)当
y0
y
0
可以取无限多的连续值时,该问题称为回归问题
2)当
y0
y
0
只能取有限多的离散值时,该问题称为分类问题
P.S. 好吧,第2中情况称为分类,很好理解。可第1种情况,为啥叫回归?有啥意义?其实,没啥意义,完全可以忽略。但感兴趣的可以继续阅读参考文献[1]。
线性回归 Linear Regression
一、模型假设
即,我们假设输入和输出之间的关系,符合以上的模型。问题是,你为何要做这种假设呢?如果这个假设本身就是错的怎么办呢?
因为通过对样本集的观察和分析,直观上认为模型应该是这个样子的。当然如果假设本身就是错的,那么无论如何都学习不到很好的结果。这个时候只能修正模型假设,重新再来。
二、目标函数
显然,目标函数的每一项,是模型预测结果与真实值直接的误差的平方。因此,目标函数刻画的是,某一个特定的模型(对应一个特定的 θ θ ),在样本集上的整体表现。我们的目标是可以让目标函数取到最小值。求解最小值的过程,就是求解 θ θ 的过程。等号后面的 12m 1 2 m 完全可以不加,因为 m m 并不是变量,加上的好处是可以让目标函数的值不会随着样本的增多而急剧增大。毕竟,相比与目标函数从几百亿减小,大家更想看到目标函数从几百减小吧。
三、目标函数的偏导
这个很容易推导,就不解释了吧。
四、参数的迭代求解
在实际的求解过程中,因为样本可能非常多,每次迭代可以不对所有的样本求 ∂L∂θj ∂ L ∂ θ j 。最极端的情况是只对一个样本求解,但通常情况下,是把样本分成若干个一组(称为一个batch),每次对一组样本求解。
逻辑回归 Logistic Regression
一、模型假设
这里 hθ(x) h θ ( x ) 理解为 y=1 y = 1 的概率,相应的 y=0 y = 0 的概率就是 1−hθ(x) 1 − h θ ( x ) 了。因为分类问题,是一个非黑即白的结果,所以当概率大于0.5(实际可调)时,我们预测结果是 y=1 y = 1 ,否则预测结果是 y=0 y = 0 。
二、目标函数
不用说,目标函数肯定是(6.1)喽?理论上,完全没有问题;实际求解中,会有很大麻烦。因为这个目标函数关于
θ
θ
是非凸的,对该目标求最小值,会变成一个非凸最优化问题。
没关系,我们换个思路。既然 hθ(x) h θ ( x ) 是 y=1 y = 1 的概率, 1−hθ(x) 1 − h θ ( x ) 是 y=0 y = 0 的概率,那么在该模型下所有样本都被正确分类的概率为 ∏mi=1hθ(xi)yi(1−hθ(xi))1−yi ∏ i = 1 m h θ ( x i ) y i ( 1 − h θ ( x i ) ) 1 − y i 。如果能把这个值最大化,是不是说明我们的模型非常合理呢?但这里有一个问题,因为概率都是介于0到1之间的小数,乘的越多该值越小,因此应该根据样本个数 m m 做适当修正。对该值先取次幂做适当修正再取对数,(取对数即为了计算方便,也为了把问题变成我们喜欢的凸优化问题),就成了著名的极大似然估计,如(6.2)。
三、目标函数的偏导
瓦特?这不是跟(3)式一毛一样? 没错,所以逻辑回归跟线性回归可以看做是一回事,只是把线性回归的模型假设上再作用了一个 sigmoid s i g m o i d 函数而已。如果我们作用的不是一个 sigmoid s i g m o i d 函数,而是 sign s i g n 函数(完全可以把 xθT⩾0 x θ T ⩾ 0 当成一类, xθT<0 x θ T < 0 当成另一类啊)会发生什么呢?结论是,这将变成另一种机器学习算法—感知器。(但感知器的目标函数和迭代方式,稍有不同。感知器的目标函数只计算被分错类的点,而其参数迭代则是每次选取一个分错类的点,计算梯度并更新参数。)
四、参数的迭代求解
结论
逻辑回归可以看做是在线性回归的模型假设上,再作用一个sigmoid函数
还是那句话,欢迎大家从不同的角度进行交流,更恳请大家能批评指正,不胜感激。