感知机——如何判断一个人的性别

1. 引子

目标:运用感知机,教会机器人通过外观去判断一个人的性别。

2. 数据

2.1 文字数据

 

  头发(长发、短发、光头) 衣服(长裤、裙子) 性别(男、女)
路人1 长发 裙子
路人2 短发 长裤
路人3 光头 长裤
路人4 长发 长裤
路人5 短发 裙子
路人6 长发 裙子
路人7 长发 裙子
路人8 短发 长裤

路人9

短发 长裤

路人10 短发 长裤

 

2.2 数字数据

  x1 x2 label
x1 1 1 1
x2 0.5 0 -1
x3 0 0 -1
x4 1 0 1
x5 0.5 1 1
x6 1 1 1
x7 1 1 1
x8 0.5 0 -1

x9

0.5 0

-1

x10 0.5 0 -1

 

3. 模型

$$f(x)=sign(w*x+b)$$

4. 策略

在模型空间中,选取使得$L(w,b)=-∑y_i(w*x_i+b)$最小的模型参数$w,b$,其中$x_i、y_i$属于误分类点,误分类:$y_i*(w*x_i+b)\le0$

5. 算法

5.1 SGD随机梯度下降法

($w_1=w_0+\eta*x_i*y_i,b_1=b_0+\eta*y_i,$假设$\eta=1$)

迭代次数 误分类点 w b w*x+b
0 - (0,0) 0 0
1 x1(1,1,1) (1,1) 1 x1+x2+1=0
2 x2(0.5,0,-1) (0.5,1) 0  0.5x1+x2=0
3 x3(0,0,-1) (0.5,1) -1 0.5x1+x2-1=0
4 x4(1,0,1) (1.5,1) 0 1.5x1+x2=0
5 x8(0.5,0,-1) (1,1) -1 x1+x2-1=0
6 x4(1,0,1) (2,1) 0 2x1+x2=0
7 x8(0.5,0,-1) (1.5,1) -1 1.5x1+x2-1=0

 分离超平面:$1.5x^1+x^2-1=0$,将样本点完全正确的划分到两侧。

最优模型: $f(x)=sign(1.5x^1+x^2-1)$

5.2 BGD批量梯度下降法

($w_1=w_0+\eta*∑x_i*y_i,b_1=b_0+\eta*∑y_i$,假设$\eta=1$)(其中$x_i、y_i$属于误分类点)

 

迭代次数 误分类点 w b w*x+b
0 - (0,0) 0 0
1 x1:10 (2.5,4) 0 2.5x1+4x2=0
2 x2,3,8,9,10 (0.5,4) -5 0.5x1+4x2-5=0
3 x1,4,5,6,7 (5,8) 0 5x1+8x2=0
4 x2,3,8,9,10 (3,8) -5 3x1+8x2-5=0
5 x4 (4,8) -4 4x1+8x2-4=0
6 x4 (5,8) -3 5x1+8x2-3=0

 分离超平面:$5x^1+8x^2-3=0$,也将样本点完全正确的划分到两侧。

 

 最优模型:$f(x)=sign(5x^1+8x^2-3)$

5.3 MBGD小批量梯度下降法

($w_1=w_0+\eta*∑x_i*y_i,b_1=b_0+\eta*∑y_i$,假设$\eta=1$)(其中$x_i、y_i$属于误分类点)(求和个数有限制,假设$batch=2$)

 

迭代次数 误分类点 w b w*x+b
0 - (0,0) 0 0
1 x1,2 (1.5,1) 0 1.5x1+x2=0
2 x3,8 (1,1) -2 x1+x2-2=0
3 x1,4 (3,2) 0 3x1+2x2=0
4 x8,9 (2,2) -2 2x1+2x2-2=0
5 x4 (3,2) -1 3x1+2x2-1=0
6 x2 (2.5,2) -2 2.5x1+2x2-2=0

分离超平面:$2.5x^1+2x^2-2=0$,将样本点完全正确的划分到两侧。

 最优模型:$f(x)=sign(2.5x^1+2x^2-2)$

6. 预测

6.1 常规输入

以SGD算法得到的最优模型$f(x)=sign(1.5x^1+x^2-1)$为例,在预测时,输入(长发,裙子)的组合,即输入$(1,1)$,则输出$f(x)=sign(1.5*1+1*1-1)=sign(1.5)=1$,即判断此人的性别为女。以此类推输入$(1,0)$,输出$1$,即长发长裤的人的性别被判断为女。输入$(0.5,1)$,输出$1$,即短发裙子的人的性别被判断为女。输入$(0.5,0)$,则输出为$-1$,即短发长裤的人的性别被判断为男。输入$(0,0)$,则输出$-1$,即光头长裤的人的性别被判断为男。

6.2 特殊输入

样本数据中没有(光头,裙子)的组合,若预测时当输入为(光头,裙子)时,SGD算法得到的最优模型$f(x)=sign(1.5x^1+x^2-1)$,输出为$sign(0)=1$,判断为女生。BGD算法得到的最优模型$f(x)=sign(5x^1+8x^2-3)$,判断为女生。MBGD算法得到的最优模型$f(x)=sign(2.5x^1+2x^2-2)$,则输出为$sign(0)=1$,判断为女生。而实际是个大汉………………

 

 

对偶形式的例子,收敛性的证明……

posted @ 2020-08-17 17:06  Da熊猫  阅读(337)  评论(0)    收藏  举报