机器学习笔记(一) 感知机算法 之 原理篇

简介: 机器学习笔记(一) 感知机算法 之 原理篇

这篇学习笔记强调几何直觉,同时也注重感知机算法内部的动机。限于篇幅,这里仅仅讨论了感知机的一般情形、损失函数的引入、工作原理。关于感知机的对偶形式和核感知机,会专门写另外一篇文章。关于感知机的实现代码,亦不会在这里出现,会有一篇专门的文章介绍如何编写代码实现感知机,那里会有几个使用感知机做分类的小案例。


感知机算法是经典的神经网络模型,虽然只有一层神经网络,但前向传播的思想已经具备。究其本质,感知机指这样一个映射函数:sign(wixi+b),将数据带进去计算可以得到输出值,通过比较输出值和数据原本对应的标签值是否正负号相同从而推断出模型训练的结果。

1. 何为感知机?


image.png

下面是一副经典的感知机模型图:

最左边的表示输入一个样本点的特征向量,通过各自的权重前向传播到神经元,在神经元有一个加法器,最后通过一个激活函数来决定是否激活。最下面的0是bias项,一般文献中记为b


2. 感知机可以解决什么问题?

这里我们可以看一个经典的例子,利用感知机模型来解决经典的OR问题


image.png

image.png

image.png

image.png


3. 感知机不能解决什么问题?

这里有一段经典的公案,《感知机》是这本书的出现,直接让神经网络这一流派的研究停止了二十年。因为书中在详尽介绍感知机原理的同时,还指出了感知机的致命缺陷:无法解决XOR问题。

XOR又称为异或,它的逻辑如下:

变量1 变量2 逻辑运算结果
0 0 0
0 1 1
1 0 1
1 1 0

这是个比较奇怪的逻辑,变量之间当且仅当不相等时为真。

凭着几何直觉,我们很快就能发现,不可能有这样的超平面,能准确的分开红色和蓝色两类样本。

这里小结一下:

感知机可以解决完全线性可分的问题。

这似乎是一句废话,但是感知机背后强大的思想确衍生出了支持向量机这个传统机器学习的巅峰。而对于线性不可分的样本,可以使用多层神经网络(Multi Layer Network  )或者使用核感知机,事实上两层的感知机就可以解决XOR问题


4. 感知机是如何工作的?

在上面这个略显啰嗦的例子,我们看到了感知机的工作方法。它的算法流程可以概括如下:

  1. 选取初始值w0,b00,0
  2. 在训练集中选取一个数据点(xi,yi)(,)
  3. 检查在这个样本点上,模型是否会错误分类,如果错误分类,则更新wi,bi,
  4. 回到第2步,直到整个训练集中没有误分类点

从上面的算法,我们至少能读出这么几层意思:

  1. 初始值是随机给的,赋值为0是一个简便的做法,但通常设置为一个很小的随机值,后面会详细讨论
  2. 每次训练其实只用到一个样本点,即使训练集中有很多数据点亦是如此。这和 wixi这个表达式的计算方式有关,详见上面的数值例子。
  3. 算法的重点在误分类这里,那么如何定义误分类就非常要紧了。
  4. 算法是一个迭代的过程,且要满足所有样本点都分类正确才停机。反过来理解,就是感知机算法只能运用于完全线性可分的数据集。如果数据集是不能完全线性可分的,感知机永远不会停机,除非训练之前先设置好停机条件,常见的比如设置训练次数或者误差上界(一旦误差小于$ \varepsilon $ 即可停机)。

显然,如何定义错误是感知机算法里的头等大事。


5. 该如何定义错误?


image.png

  1. 找到描述样本点到超平面距离的计算式
  2. 正确分类的样本点的距离和丢弃不看
  3. 定义误分类的距离和,对它求最小值


image.png


6. 知错后如何改错?

回顾微分学知识,我们知道一个全局的凸函数取得最小值是在导数为0处。但是,放在多元函数的观点来看,一元函数的导数本质上也是梯度。当一个函数沿着负梯度的方向运动是,函数值的减少是最快的;沿着正梯度方向运动时,函数值增加啊是最快的。下面我们就来求其梯度。


image.png


image.png


7. Novikoff 定理

先叙述一下这个定理。定理来自李航老师的《统计学习方法》第二版Page42。


image.png

先从直觉上理解下这个定理表述的意思。大意是对于可以找出线性超平面做分类的数据集,存在一个下界$ \gamma $,所有样本点到超平面的距离都至少大于这个 $ \gamma $,同时错误分类的次数有一个上界,第 k+1 次之后,分类都是正确的,算法最终是收敛的。

证明


image.png


image.png

这里R其实只是一个记号而已,它代表的意思是从所有误分类中找到模长最大的,而这个记号其实是从证明过程中产生的。


作为介绍感知机原理的文章,已经写得非常长啦,可以就此打住~

如果有任何纰漏差错,欢迎评论互动。

相关文章
|
存储 算法 调度
基于和声搜索优化算法的机器工作调度matlab仿真,输出甘特图
本程序基于和声搜索优化算法(Harmony Search, HS),实现机器工作调度的MATLAB仿真,输出甘特图展示调度结果。算法通过模拟音乐家即兴演奏寻找最佳和声的过程,优化任务在不同机器上的执行顺序,以最小化完成时间和最大化资源利用率为目标。程序适用于MATLAB 2022A版本,运行后无水印。核心参数包括和声记忆大小(HMS)等,适应度函数用于建模优化目标。附带完整代码与运行结果展示。
297 24
|
6月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)
|
11月前
|
机器学习/深度学习 数据采集 人工智能
20分钟掌握机器学习算法指南
在短短20分钟内,从零开始理解主流机器学习算法的工作原理,掌握算法选择策略,并建立对神经网络的直观认识。本文用通俗易懂的语言和生动的比喻,帮助你告别算法选择的困惑,轻松踏入AI的大门。
776 8
|
机器学习/深度学习 算法 数据安全/隐私保护
基于生物地理算法的MLP多层感知机优化matlab仿真
本程序基于生物地理算法(BBO)优化MLP多层感知机,通过MATLAB2022A实现随机数据点的趋势预测,并输出优化收敛曲线。BBO模拟物种在地理空间上的迁移、竞争与适应过程,以优化MLP的权重和偏置参数,提升预测性能。完整程序无水印,适用于机器学习和数据预测任务。
341 31
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
459 6
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
2461 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
374 14
|
机器学习/深度学习 人工智能 自然语言处理
解锁机器学习的新维度:元学习的算法与应用探秘
元学习作为一个重要的研究领域,正逐渐在多个应用领域展现其潜力。通过理解和应用元学习的基本算法,研究者可以更好地解决在样本不足或任务快速变化的情况下的学习问题。随着研究的深入,元学习有望在人工智能的未来发展中发挥更大的作用。