机器学习的流程如下图,我们的目标是找到
f
f
,但是我们不知道 长啥样,但是我们有一堆数据
D
D
,现在我们要用数据 进行训练,然后会得到一个假设集Hypothesis,接着我们再设计一条演算法,该演算法的任务就是从假设集Hypothesis中找到一个
g
g
,使得 .
现在回到上一节提到的信用卡发卡问题,我们计算客户是否符合发卡要求的公式是
h(x)=sign(W0+W1X1+W2X2)
h
(
x
)
=
s
i
g
n
(
W
0
+
W
1
X
1
+
W
2
X
2
)
,但是我们其实不知道具体的
W0+W1X1+W2X2
W
0
+
W
1
X
1
+
W
2
X
2
到底长啥样,它表现在平面上有无限种可能,也就是有无限条线。现在我们的目标就是找到一条合适的线
g
g
,把所有的结果进行一个分类(圈圈叉叉都分在不同的两边),如下图:
那么如何下手呢?首先我们从一条线开始,令这条线为,然后以这条线为基准,不停的旋转修正它,直到把所有的圈圈和叉叉都分在不同的两边为止。
这里我们需要用到向量的加减的相关知识,下面是向量加减法的运算法则:
接下来我们就要用上面的数学知识去找到合适的线,直到能够把所有的圈圈叉叉都分在不同的两边。具体的方法如下:
如上图,假设现在我们需要的值是+1,但是我们所拥有的
W
W
与进行
sgin(WX)
s
g
i
n
(
W
X
)
运算后却不等于+1,即
yn(t)≠sign(WTtXn(t))
y
n
(
t
)
≠
s
i
g
n
(
W
t
T
X
n
(
t
)
)
,根据符号函数的定义(符号函数sign,假设 y=sign(x) 当x>0,y=+1;当x=0,y=0;x<0,y=-1),我们知道这是由于向量
W
W
和之间的夹角太大,我们需要把它们的夹角变小,这样才能够更接近我们的需要。
相反,如果我们需要的是-1,而实际上向量
W
W
和之间的夹角又太小,所以我们需要做减法把向量间的夹角变大,如下图:
通过这种方式进行筛选 g g 的算法叫做PLA,即Perceptron Learning AIgorithm.
以下就是在林轩田老师的视频中旋转图的其中一个画面,我这里只拿出一张来解释其中的含义:
如上图,表示我们当前拥有的向量,它的法向量就是我们所需要的那条最终的线
g
g
,显然没有符合我们的需求,因为还在红色的那一边,所以我们从原点
O
O
连接作为向量
X
X
,这说明离
Xg
X
g
太远了,我们需要让它们的夹角更小,于是就两个向量相加得到
W(t+1)
W
(
t
+
1
)
,然后又对
W(t+1)
W
(
t
+
1
)
做一条法向量,观察其是否能够把圈圈叉叉都分在不同的两边,如果是,那就表示我们找到了一条适合的
g
g
,如果不是就继续下一轮运算。这样不断的循环往复,直至能够把所有的圈圈叉叉都分在不同的两边为止才停止运算,最后拿到正确的 。
但是问题来了,这样的循环什么时候停止?要知道平面上可是有无限多条线!并且,我们真能保证 g≈f g ≈ f 吗?答案是不能!所以下面的课我们要解决这些问题。
本节到此结束,下节继续。
===========================懵逼分割线===========================
欢迎大家加入Q群讨论:463255841
===========================懵逼分割线===========================