没有详细公式推到(如有需要,欢迎看南瓜书及其讲解视频)
可能存在谬误,请尽管批评
线性模型,是指通过属性的线性组合来进行预测的函数,公式如下:(摘自西瓜书3.1)
f ( x ) = w 1 x 1 + w 2 x 2 + . . . . + w d x d + b ( 1 ) f(x) = w_1x_1 + w_2x_2 + . ...+w_dx_d + b (1) f(x)=w1x1+w2x2+....+wdxd+b(1)
用向量表达则为
f ( x ) = w T x + b ( 2 ) f(x) = w^Tx + b(2) f(x)=wTx+b(2)
其中 w = ( w 1 ; w 2 ; . . . ; w d ) w=(w_1;w_2;...;w_d) w=(w1;w2;...;wd), w w w 和 b b b 学得之后,模型就得以确定。
较为复杂的向量及其相关暂时摒弃,仅仅从二元一次方程 y = w x + b y=wx+b y=wx+b 进行考虑,使用初中知识,此时 x x x 是自变量, y y y 为因变量,求其 w w w 和 b b b。
在这样的考虑下, w w w 和 b b b 的求解非常容易,只需要使用两个已知的 x x x 和 y y y 就可以得到求得对应的 w w w 和 b b b (两点确定一条直线)。
但是,当点数大于两个,一条直线就不再百分之百的完美穿过每一个点,因此,我们要找到一条,和所有点的距离之和最近的一条直线。
以最常规的一个思路,我们可以计算当前直线与每个样本点之间的距离之和和,即公式表达为:
S u m d i s t a n c e = ∑ i = 1 m ∣ w x i − y i + b ∣ 1 + k 2 ( 3 ) Sum_{distance} = \sum_{i=1}^{m} \frac{|wx_i - y_i + b|}{\sqrt{1+k^2}} (3) Sumdistance=i=1∑m1+k2∣wxi−yi+b∣(3)
其中,当前直线公式为 y = w x + b y=wx+b y=wx+b, m m m 表示样本个数。那么最优化的直线公式,则可以视为是 S u m d i s t a n c e Sum_{distance} Sumdistance 最小时取得的 w w w 和 b b b。
另外上方公式(3)所计算的是点到直线的正交距离,但是实际上的线性模型使用更多的是欧式距离,也就是均方误差,即对于一个自变量 x x x ,计算实际的 y y y 与预期 y ′ y' y′之间的差值,则公式表达为:
S u m d i s t a n c e = ∑ i = 1 m ( y i − w x i − b ) 2 ( 4 ) Sum_{distance} = \sum_{i=1}^{m} (y_i - wx_i -b)^2 (4) Sumdistance=i=1∑m(yi−wxi−b)2(4)
同理,依然期望求得 S u m d i s t a n c e Sum_{distance} Sumdistance 最小时的 w w w 和 b b b。
注意:此刻我们的讨论,依然没有加入多元特征,我们仅考虑一个属性 x x x,也就是上方所表述的内容可以在二维平面中展示出来。(限于准备有限,没有配图)
那么,我们可以总结单个属性的线性模型,是针对每个自变量 x x x,都存在一个值 y y y,线性模型意图找到一条直线,可以使得针对于自变量 x x x,所求得的 y ′ y' y′ 与 y y y 的差值尽可能的小。
而机器学习所提到的线性模型,通常存在多个属性值,即: x = { x 1 ; x 2 ; . . . . ; x d } x = \{x_1; x_2; ....; x_d\} x={x1;x2;....;xd},但是其核心思想并无变化。
至此,我们可以说明确了一个基础的线性模型和基础线性模型索要求解的内容,再往下,是一些相关的简单讨论。
在线性模型中,如果属性值存在多个,那么就是多元线性回归,但是这里为了理解,我们继续讨论的单个属性值的情况。
针对每一个出现的 x x x,我们想要得到一个尽可能接近真实 y y y 的预期值 y ′ y' y′,而如果 y y y 的值是连续的,比如 y y y 结果应该是 [ 0 , 1 ] [0,1] [0,1]之间的任意实数,那么,我们就称其为回归任务,可以说,是回到真实值曲线上。
此时,上面使用上面的欧式距离公式就可以分析我们此刻结果的优劣性,公式如下所示:(摘自西瓜书(3.4))。
( w ∗ , b ∗ ) = a r g m i n ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 ( 5 ) (w^*, b^*) = arg min_{(w,b)} \sum_{i=1}^{m} (y_i - wx_i - b)^2 (5) (w∗,b∗)=argmin(w,b)i=1∑m(yi−wxi−b)2(5)
那么如何求解最小化的 w w w 和 b b b 呢?注意,此时 公式(4)中, x x x 和 y y y 均为已知,那么可以通过对未知变量 w w w 和 b b b 分别进行求导:
∂ E w , b ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) ) ( 6 ) \frac{\partial E_{w,b}}{\partial {w}} = 2(w \sum_{i=1}^{m} x_i^2 - \sum_{i=1}^{m}(y_i - b) x_i)) (6) ∂w∂Ew,b=2(wi=1∑mxi2−i=1∑m(yi−b)xi))(6)
∂ E w , b ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) ( 7 ) \frac{\partial E_{w,b}}{\partial {b}} = 2(mb - \sum_{i=1}^{m}(y_i - wx_i)) (7) ∂b∂Ew,b=2(mb−i=1∑m(yi−wxi))(7)
求导所得,即为梯度。
其中 E ( w , b ) E(w,b) E(w,b) 表示______,令公式 6 和公式 7 为 0 可以得到最优解的闭式解:
w = ∑ i = 1 m y i ( x i − x ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w = \frac{ \sum_{i=1}^{m}y_i (x_i - x)}{ \sum_{i=1}^{m}x_i^2 - \frac{1}{m}( \sum_{i=1}^{m}x_i)^2} w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−x)
b = 1 m ∑ i = 1 m ( y i − w x i ) 2 b = \frac{1}{m}\sum_{i=1}^{m}(y_i - wx_i)^2 b=m1i=1∑m(yi−wxi)2
回归任务似乎与线性模型一脉相承(当然也可能是我讲解问题),求预期值与实际值的差,但是对于分类任务而言,所求的结果并非是一个连续值,而是一个离散的值,例如非常经典的:{0,1}。
我们当然无法明确要求输出的 y ′ y' y′ 就是两个离散值之一,但是我们可以通过函数映射的方式,将原本离散的值映射到我们的类别中去,比如非常经典的函数之一:Sigmod
。
理解这个函数其实非常容易(但是公式推导并不容易,这里不讲解公式了),我们从线性回归上继承讨论,引入连续值 z z z,此时 y y y 是输出标记,离散值{0,1}。
根据 sigmod
我们可以列出如下公式:
y = { 0 , z < 0 ; 0.5 , z = 0 ; 1 , z > 0 y = \begin{cases} 0,& z<0;\\ 0.5,& z=0;\\1, &z>0 \end{cases} y=⎩⎪⎨⎪⎧0,0.5,1,z<0;z=0;z>0
然后,我们原本的公式可以变化为:
y = f ( z ) = f ( w x + b ) y = f(z) = f(wx+b) y=f(z)=f(wx+b)
当 w x + b wx+b wx+b 得出一个预测值 z z z 后,使用 sigmod
函数映射到 0 或者 1,即为所求的离散值。
这是一种方案,另外一种方案则是计算每个类内距离和类间距离,并求一条类内距离最小,类间距离最大的直线,公式如下所示:(摘自西瓜书公式3.34)
J = w T S b w w T S w w J = \frac{w^TS_bw}{w^TS_ww} J=wTSwwwTSbw
其中, S b S_b Sb 表示类间距离散度,而 S w S_w Sw表示类内距离三度,目标是让 J J J 尽可能的大
由于没能很好理解公式含义,这里不做过多讲解,欢迎根据南瓜书和西瓜书进行自行理解。
除了以上只是之外,西瓜书第三章还讲解了多分类以及样本不均衡,由于没有非常多公式,这里直接读西瓜书是更好的选择。