IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【机器学习基石】感知机模型+PLA(二) -> 正文阅读

[人工智能]【机器学习基石】感知机模型+PLA(二)


写在前面

本节内容主要介绍了感知机模型,还提出了机器学习中的第一个算法PLA,最后对PLA进行了优化得出Packet Algorithm。公式性的推导比较多。

本文整理自台湾大学林轩田的《机器学习基石》


1.感知机模型

? \bullet ? 引例:银行需要对客户进行判断是否可以给他们发放信用卡。现在收集客户资料,分别收集每个客户的年龄、年薪、工作年龄以及现在的负债。然后就这些因素下面我们使用感知机(Preceptron)模型进行进行分析。

? \bullet ? 建立模型

? \triangleright ? 个体 x = ( x 1 , x 2 , x 3 , . . . x d ) x=(x_{1},x_{2},x_{3},...x_{d}) x=(x1?,x2?,x3?,...xd?) x i x_{i} xi? 表示客户 x x x的属性,我们根据每个属性的重要程度分别为其设置一个权重 w i w_{i} wi? (weight),那么对应属性与对应权重的乘积就可以表示我们对该客户的打分情况。

? \triangleright ? 同时设置一个阈值 t h r e s h o l d threshold threshold,如果打分大于阈值的话就发放信用卡,反之,则不发放信用卡。

{ ? ∑ i = 1 d w i x i > t h r e s h o l d ?放发信用卡? ? ∑ i = 1 d w i x i < t h r e s h o l d ?不放发信用卡? \begin{cases} & \text{ } {\textstyle \sum_{i=1}^{d}}w_{i}x_{i}>threshold & \text{ 放发信用卡 } \\ & \text{ } {\textstyle \sum_{i=1}^{d}}w_{i}x_{i}<threshold & \text{ 不放发信用卡 } \end{cases} {??i=1d?wi?xi?>threshold?i=1d?wi?xi?<threshold??放发信用卡??不放发信用卡??

? \triangleright ? 返回值 y : { + 1 ( g o o d ) , ? 1 ( b a d ) } y:\left \{ +1(good),-1(bad) \right \} y:{+1(good),?1(bad)},我们可以设置+1(正数)发放,-1(负数)不发放。0的话情况比较少见,则忽略,随便进行选择 。

可以建立一个函数来进行表示,标红的变量为函数影响因素:
h ( x ) = s i g n ( ( ∑ i = 1 d w i x i ) ? t h r e s h o l d ) {\color{red}h}(x)=sign((\sum_{i=1}^{d} {\color{red}w_{i}}x_{i})-{\color{red}threshold}) h(x)=sign((i=1d?wi?xi?)?threshold)

? \triangleright ? 函数优化:因为现在 h ( x ) h(x) h(x) 的表达式还比较凌乱,我们进行设置使其变得更整齐一点。我们设置:
w 0 = ? t h r e s h o l d , ? x 0 = + 1 w_{0} = -threshold,\ x_{0}=+1 w0?=?threshold,?x0?=+1

那么就可以将该项合并到求和中,也就是( w 、 x w、x wx 为两个向量):
h ( x ) = s i g n ( ∑ i = 0 d w i x i ) = s i g n ( w T x ) {\color{red}h}(x) = sign(\sum_{i=0}^{d}w_{i}x_{i})=sign({\color{red}w^{T}}x) h(x)=sign(i=0d?wi?xi?)=sign(wTx) ( w 、 x w、x wx 为两个向量)

? \bullet ? 分析:

我们以两个维度为例进行分析,也就是 x = ( x 1 , x 2 ) x = (x_{1},x_{2}) x=(x1?,x2?)

那么函数为:
h ( x ) = s i g n ( w 0 + w 1 x 1 + w 2 x 2 ) h(x) = sign(w_{0}+w_{1}x_{1}+w_{2}x_{2}) h(x)=sign(w0?+w1?x1?+w2?x2?)

其中 x x x 就可以表示为二维平面内的点; y y y 的话可以用点的形状来反映,我们设置 o 表示+1,× 表示-1;而假设 h h h 就为二维平面内的直线(我们把它叫做 l i n e a r ? c l a s s i f i e r s linear \ classifiers linear?classifiers),直线一边表示发信用卡,一边表示不发信用卡;权重 w w w不同,对应的直线就不同,表示不同的假设情况。如下图所示:

在这里插入图片描述
当图形中 o 在直线一边,× 在直线一边时,此时模型最优,准确率最高。


2.PLA算法

我们希望最终从假设集中寻找到的函数 g g g 最接近理想函数 f f f,所以就需要介绍一下寻找最优函数的过程。

? \bullet ? PLA过程

? \triangleright ? 首先随机选择一条直线 g 0 g_{0} g0?,下面我们用 w 0 w_{0} w0?(权重向量) 来辅助进行观察, w 0 w_{0} w0? 相当与直线的法线(垂直于该直线)。当点判断出错时,就进行纠正,直到所有点都准确无误即可(这也被叫做循环PLA)。

? \triangleright ? 我们开始找犯错的点,一共有两种情况。第一种是点本来是正,结果判断为负。即现在 w t T x n ( t ) < 0 w_{t}^{T}x_{n(t)}<0 wtT?xn(t)?<0(t表示第t次纠正),那就表示 w w w x x x的夹角大于90°,也就是 x x x 被误分在直线下侧,法向量方向为正方向,那么为了纠正的话就需要将角度缩小,也就是让 w = w + y x , y = 1 w=w+yx,y=1 w=w+yx,y=1另一种是点本来为负,结果误分为正。即现在 w t T x n ( t ) > 0 w_{t}^{T}x_{n(t)}>0 wtT?xn(t)?>0,那就表示 w w w x x x的夹角小于90°,也就是 x x x 被误分在直线上侧,法向量方向为正方向,那么为了纠正的话就需要将角度扩大,也就是让 w = w + y x , y = ? 1 w=w+yx,y=-1 w=w+yx,y=?1

在这里插入图片描述
综上所述:调整公式就为 w t + 1 ← w t + y n ( t ) x n ( t ) w_{t+1} \gets w_{t} + y_{n(t)}x_{n(t)} wt+1?wt?+yn(t)?xn(t)?

? \bullet ? PLA算法可以停止的要求:首先前提就是存在直线将两个部分完全分割开,这种情况我们叫线性可分(linear separable)。如果是非线性可分的,那么PLA就不会停止。

? \bullet ? 练习

n = n ( t ) n = n(t) n=n(t),通过下面的PLA规则,判断哪个公式是错误的。
s i g n ( w t T x n ) ≠ y n , ? w t + 1 ← w t + y n x n sign(w_{t}^{T}x_{n})≠y_{n},\ w_{t+1} \gets w_{t}+y_{n}x_{n} sign(wtT?xn?)?=yn?,?wt+1?wt?+yn?xn?

a. w t + 1 T x n = y n w_{t+1}^{T}x_{n}=y_{n} wt+1T?xn?=yn?

b. s i g n ( w t T x n ) = y n sign(w_{t}^{T}x_{n})=y_{n} sign(wtT?xn?)=yn?

c. y n w t + 1 T x n ≥ y n w t T x n y_{n}w_{t+1}^{T}x_{n}≥y_{n}w_{t}^{T}x_{n} yn?wt+1T?xn?yn?wtT?xn?

d. y n w t + 1 T x n < y n w t T x n y_{n}w_{t+1}^{T}x_{n}<y_{n}w_{t}^{T}x_{n} yn?wt+1T?xn?<yn?wtT?xn?


对于a,b来说,纠正后这个点是符合规律了,但是其他点还有可能出错,所以a,b错误。

对于c,d来说,我们在上面第二个式子左右两边同时乘以 y n x n y_{n}x_{n} yn?xn? 就会发现左边恒加了一个非负数,所以选c。


3. PLA中的公式

对于线性可分的数据样本D,存在 w f w_{f} wf? 使得 y n = s i g n ( w f T x n ) y_{n}=sign(w_{f}^{T}x_{n}) yn?=sign(wfT?xn?),使得正负两部分完全分开。

? \bullet ? 因为 y n y_{n} yn? w f T x n w_{f}^{T}x_{n} wfT?xn? 符号相同,所以它们的乘积(表示到直线的距离)恒大于0,所以存在:
y n ( t ) w f T x n ( t ) ≥ m i n n ? y n w f T x n > 0 y_{n(t)}w_{f}^{T}x_{n(t)}≥\underset{n}{min} \ y_{n}w_{f}^{T}x_{n}>0 yn(t)?wfT?xn(t)?nmin??yn?wfT?xn?>0

PLA会对每次错误的点进行纠正,每次更新 w t w_{t} wt? 以后该直线也与目标直线更为接近,体现在 w f T w_{f}^{T} wfT? w t w_{t} wt? 的内积更大,过程如下:
w f T w t + 1 = w f T ( w t + y n ( t ) x n ( t ) ) ≥ w f T w t + m i n n ? y n w f T x n > w f T w t + 0 w_{f}^{T}w_{t+1}=w_{f}^{T}(w_{t}+y_{n(t)}x_{n(t)})≥w_{f}^{T}w_{t}+\underset{n}{min} \ y_{n}w_{f}^{T}x_{n}>w_{f}^{T}w_{t}+0 wfT?wt+1?=wfT?(wt?+yn(t)?xn(t)?)wfT?wt?+nmin??yn?wfT?xn?wfT?wt?+0

但是内积变大并不一定是角度变小使得更接近目标直线,也有可能是向量长度变大了,下面我们验证 w t + 1 w_{t+1} wt+1? w t w_{t} wt? 的长度关系:

∥ w t + 1 ∥ 2 = ∥ w t + y n ( t ) x n ( t ) ∥ 2 ≤ ∥ w t ∥ 2 + 0 + ∥ y n ( t ) x n ( t ) ∥ 2 ≤ ∥ w t ∥ 2 + m a x n ? ∥ y n x n ∥ 2 \left \| \underset{}{} w_{t+1} \right \|^{2} = \left \| \underset{}{} w_{t}+y_{n(t)}x_{n(t)} \right \|^{2}≤\left \| \underset{}{} w_{t} \right \|^{2}+0+\left \| \underset{}{} y_{n(t)}x_{n(t)} \right \|^{2}≤\left \| \underset{}{} w_{t} \right \|^{2}+\underset{n}{max} \ \left \| \underset{}{} y_{n}x_{n} \right \|^{2} ??wt+1??2=??wt?+yn(t)?xn(t)??2??wt??2+0+??yn(t)?xn(t)??2??wt??2+nmax????yn?xn??2

很明显可以看出来向量长度是在缓慢的增长,所以确实是向量角度变小了,每次纠正过后更加接近目标函数了。

? \bullet ? 那么迭代 T T T 次以后结果如何呢,我们接着上面的式子进行分析:

w f T w t ≥ w f T w t ? 1 + m i n n ? y n w f T x n ≥ w 0 + T m i n n ? y n w f T x n ( T 次 迭 代 以 后 ) ≥ T m i n n ? y n w f T x n w_{f}^{T}w_{t}≥w_{f}^{T}w_{t-1}+\underset{n}{min} \ y_{n}w_{f}^{T}x_{n}≥w_{0}+T\underset{n}{min} \ y_{n}w_{f}^{T}x_{n}(T次迭代以后)≥T\underset{n}{min} \ y_{n}w_{f}^{T}x_{n} wfT?wt?wfT?wt?1?+nmin??yn?wfT?xn?w0?+Tnmin??yn?wfT?xn?TTnmin??yn?wfT?xn?

该向量的长度变为:
∥ w t ∥ 2 ≤ ∥ w t ? 1 ∥ 2 + m a x n ? ∥ x n ∥ 2 ≤ ∥ w 0 ∥ + T m a x n ? ∥ x n ∥ 2 ( T 次 迭 代 以 后 ) = T m a x n ? ∥ x n ∥ 2 \left \| \underset{}{} w_{t} \right \|^{2}≤\left \| \underset{}{} w_{t-1} \right \|^{2}+\underset{n}{max} \ \left \| \underset{}{} x_{n} \right \|^{2}≤\left \| \underset{}{} w_{0} \right \|+T\underset{n}{max} \ \left \| \underset{}{} x_{n} \right \|^{2}(T次迭代以后)=T\underset{n}{max} \ \left \| \underset{}{} x_{n} \right \|^{2} ??wt??2??wt?1??2+nmax????xn??2??w0??+Tnmax????xn??2T=Tnmax????xn??2

所以根据上面两个式子最终可以得出:
w f T ∥ w f ∥ w T ∥ w T ∥ = T m i n n ? y n w f T x n ∥ w f T ∥ ? ∥ w t ∥ ≥ T m i n n ? y n w f T x n ∥ w f T ∥ ? T ? m a x n ? ∥ x n ∥ = T ? c o n s t a n t \frac{w_{f}^{T}}{\left \| \underset{}{} w_{f}\right \| } \frac{w_{T}}{\left \| \underset{}{}w_{T} \right \| }=\frac{T\underset{n}{min} \ y_{n}w_{f}^{T}x_{n}}{\left \| \underset{}{} w_{f}^{T} \right \| *\left \| \underset{}{} w_{t}\right \| }≥\frac{T\underset{n}{min} \ y_{n}w_{f}^{T}x_{n}}{\left \| \underset{}{} w_{f}^{T} \right \| * \sqrt T*\underset{n}{max} \ \left \| \underset{}{} x_{n} \right \|}=\sqrt T *constant ??wf??wfT????wT??wT??=??wfT?????wt??Tnmin??yn?wfT?xn????wfT???T ??nmax????xn??Tnmin??yn?wfT?xn??=T ??constant

因为上式左半部分实际上计算的是 w T w_{T} wT? w f w_{f} wf? 之间夹角的余弦值,所以我们可以知道该式一定小于等于1,在这里我们重新定义两个变量用来简化上式,分别为:
R 2 = m a x n ? ∥ x n ∥ 2 , ρ = m i n n ? y n w f T ∥ w f ∥ x n R^{2} =\underset{n}{max} \ \left \| \underset{}{} x_{n} \right \|^{2} , ρ = \underset{n}{min} \ y_{n} \frac{w_{f}^{T}}{ \left \| \underset{}{} w_{f} \right \|}x_{n} R2=nmax????xn??2,ρ=nmin??yn???wf??wfT??xn?

所有可以得到:
T m i n n ? y n w f T x n ∥ w f T ∥ ? T ? m a x n ? ∥ x n ∥ ≤ 1 ? T ≤ R 2 ρ 2 \frac{T\underset{n}{min} \ y_{n}w_{f}^{T}x_{n}}{\left \| \underset{}{} w_{f}^{T} \right \| * \sqrt T*\underset{n}{max} \ \left \| \underset{}{} x_{n} \right \|}≤1\Leftrightarrow T ≤\frac{R^{2}}{ρ^{2}} ??wfT???T ??nmax????xn??Tnmin??yn?wfT?xn??1?Tρ2R2?

此时同样可以发现迭代次数 T T T 存在上限,所以对于线性可分的情况迭代次数一定是有限的。


4.其它关于PLA的内容

? \bullet ? 虽然上面证明了对于线性可分情况下迭代次数是有限的,但是实际情况下我们并不知道是否为线性可分,其次就算我们知道是线性可分,但是迭代次数是多少同时还是未知的。

? \bullet ? 所以我们可以适当容忍一些点的错误,在这里使用类似贪心策略的方法寻找函数 g g g,该方法被叫做 Packet Algorithm。首先我们还是需要初始化一条直线,记录错误的点数,然后更新权重 w w w,得到新的直线再记录错误点数,选取并存储错误点数较少的权重向量 w w w,之后重复该操作到一定次数以后,记录的权重就是最优权重。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:05:08  更:2021-08-07 12:05:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 16:32:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码