Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >机器学习-15:MachineLN之感知机

机器学习-15:MachineLN之感知机

作者头像
MachineLP
发布于 2022-05-09 06:50:56
发布于 2022-05-09 06:50:56
3050
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

你要的答案或许都在这里 : 小鹏的博客目录

我想说:

其实感知机虽然原理简单,但是不得不说他的意义重大,为什们呢? 他是SVM的前身,后面的SVM是由此进化来的,其实两个结合起来学习会更好的,但是内容太多,SVM三境界,我可能还是停留在“昨夜西风调碧树,独上高楼,望尽天涯路”, 期待突破后面的两重天:“衣带渐宽终不悔,为伊消得人憔碎”, “众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”。说起三境界不得不提佛家三境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水。两者相通互补吧,才疏学浅不敢瞎说,理解还是有点困难的,突然感觉很多事情都是相通的,分久必合,合久必分?乱了乱了,我整天就知道瞎说,别介意。另外最近开始想这么一个问题:什么样的数据不适合用卷积? 什么样的数据不适合用池化? 什么样的数据只适合用全连接的结构? 稍微有点眉目;感觉真的没有通用的网络!!!真是悲哀,以前提通用AI差点被骂死,出来DL后没人再提,只是说针对特定领域特定问题的AI;

看完文章记得最下面的原文链接,有惊喜哦!

说起感知机,那么我的问题:(根据MachineLN之三要素:模型、策略、算法)

(1)什么是感知机?(模型)

(2)感知机是如何学习的?(策略)

(3)感知机学习算法?(算法)

看到这里你的答案是什么?下面是我的答案:

1. 什么是感知机?

感知机是一个二类分类的线性分类模型。那么说起线性与非线性请参考MachineLN之激活函数;

感知机模型:

其中,w和b为感知机参数,w∈Rn叫做权值或权值向量,b∈R叫做偏置,w⋅x表示w和x的内积。感知机学习的目的就在于确定参数w和b的值。符号函数sign(x)不用多解释吧:

看到这里其实可以联系到两个模型:(1)逻辑回归:把sign改为sigmoid就是逻辑回归表达式;(2)SVM:表达式可以定义为一样;策略和算法差不远了去了(为了解决感知机的不足);

几何解释:

可以用下面的线性方程表示:

可以理解时一个特征空间中的一个超平面,其中w是超平面的法向量(为什么?),b是超平面的截距,这个超平面会把分成两部分,将点分为正、负两部分,看一下图吧:

下面是w为什么是超平面的法向量? (看书时候的笔记)

是的感知机就是在找这么一个能够将两个类别数据分开的超平面;并且超平面不是唯一的(参数更新的时候:样本的顺序是很大因素);(SVM就是将感知机的不唯一变为唯一,后面我们会撸svm原代码,使用拉格朗日直接求解参数,和使用tensorflow的梯度下降求解参数,这时候损失函数要重新定义)

2. 感知机是如何学习的?

其实这里就是策略,就是常提的损失函数:用来衡量预测值和真实值的相似度的;有时候损失函数直接选择误分类点的总数更直观,但是这个损失函数不是参数的连续可导的函数(那么为什么非要可导:好像无论梯度下降,最小二乘法等都得可导吧,那么为什么非得用梯度下降最小二乘法等?有人说你这是瞎搞,哦nonono,这才是真正要探索的东西,你如果有好的方法不用非让损失函数可导,那么你就厉害了);

先看一下下面的公式:应该很熟悉吧,点到直线的距离;

是L2范数应该很明白了。

但是,这里很重要:要弄明白所关心的是什么点到直线的距离作为函数,是分类正确的点?还是分类错误的点? 提醒到这里大家就很明白,不说透的话是不是感觉云里雾里!那么说到误分类点,它是满足下面条件的:(为什么呢? 因为我们预测的输出为[-1, 1],误分类点和真实值肯定异号,正确分类的点肯定同号)

那么我们可以重新定义损失函数:就是 误分类点的点到超平面的距离,注意是误分类!!!下一篇代码实现可以格外注意一下;用下面的式子定义:

那么所有误分类点到超平面的总距离可以定义为:

不考虑

,得到感知机的损失函数为:

那么问题又来了,为什么不考虑呢??? 这也正是它的分类超平面不唯一的原因之一!(在SVM中为什么又考虑呢?)

个人理解:因为感知机任务是进行二分类工作,最终并不关心得到的超平面点的距离有多少(SVM格外关心哦!)(所以我们才可以不去考虑L2范式;)只是关心最后是否正确分类(也就是只考虑误分类点的个数)正如下面这个图(有点糙)x1,x2是一类,x3是一类,对于感知机来说是一样好的,而SVM就是那么最求完美的人,我只要最好!

好了,策略有了,该研究通过什么方法来是损失函数最小了,下面介绍算法;

3. 感知机学习算法?

其实我们机器学习算法就是在求损失函数的最值,用数学表达式表示为:

下面就是随机梯度下降的过程(随机梯度下降就是在极小化损失函数的过程中,每次只选一个误分类点,不使用所有的点):

下面是损失函数的导数:也就是我们梯度下降中的那个梯度:

随机选一个误分类点,进行参数更新:

式中η(0<η≤1)是步长,又称为学习率,通过迭代的方式可以不断减小损失函数;(如果是看成数学问题,那么就严重了,说话得有根据,这里还要证明算法的收敛性。。。)

那么感知机原始算法的形式可以总结为:

算法的对偶形式:(对偶?)

对偶形式的基本想法是,将w,b表示成为实例xi和标记yi的线性组合的形式,通过求解其系数而得到w和b。不失一般性,将初始值w0,b0设为0.对误分类点(xi,yi)通过

逐步修该w,b,设修改了n次,则w,b关于(xi,yi)的增量分别为aiyixi和aiyi,这里ai=niη最终学习到的w,b可以表示为

实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。换句话说,这样的实例对学习结果影响很大。

那么感知机算法的对偶形式可以总结为:

好好理解一下对偶,SVM也需要对偶一下的;

好了感知机理论说到这里,有疑惑留言哦,下一遍我们上感知机源代码!

推荐阅读:

1. 机器学习-1:MachineLN之三要素

2. 机器学习-2:MachineLN之模型评估

3. 机器学习-3:MachineLN之dl

4. 机器学习-4:DeepLN之CNN解析

5. 机器学习-5:DeepLN之CNN权重更新(笔记)

6. 机器学习-6:DeepLN之CNN源码

7. 机器学习-7:MachineLN之激活函数

8. 机器学习-8:DeepLN之BN

9. 机器学习-9:MachineLN之数据归一化

10. 机器学习-10:MachineLN之样本不均衡

11. 机器学习-11:MachineLN之过拟合

12. 机器学习-12:MachineLN之优化算法

13. 机器学习-13:MachineLN之kNN

14. 机器学习-14:MachineLN之kNN源码

15. 机器学习-15:MachineLN之感知机

16. 机器学习-16:MachineLN之感知机源码

17. 机器学习-17:MachineLN之逻辑回归

18. 机器学习-18:MachineLN之逻辑回归源码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
应用示例荟萃 | 全方位认识 information_schema
在上一篇《InnoDB 层压缩相关字典表 | 全方位认识information_schema》中,我们详细介绍了InnoDB层记录压缩表信息的字典表,本期我们将为大家带来系列第九篇《应用示例荟萃 | 全方位认识information_schema》,也是"全方位认识information_schema"的最后一篇,下面请跟随我们一起开始information_schema系统库的系统学习之旅吧
老叶茶馆
2020/11/26
7110
Server层表级别对象字典表 | 全方位认识 information_schema
在上一篇《Server层统计信息字典表 | 全方位认识 information_schema》中,我们详细介绍了information_schema系统库的列、约束等统计信息字典表,本期我们将为大家带来系列第三篇《Server层表级别对象字典表 | 全方位认识information_schema》。
老叶茶馆
2020/11/26
1.1K0
InnoDB 层系统字典表 | 全方位认识 information_schema(IFS)
在《Server 层混杂信息字典表 | 全方位认识 information_schema》中,我们详细介绍了information_schema下的状态变量、系统变量、进程状态、字符集和校对规则等字典表,本期我们将为大家带来系列第五篇《InnoDB 层系统字典表 | 全方位认识 information_schema》,下面请跟随我们一起开始information_schema 系统库的系统学习之旅吧。
老叶茶馆
2020/11/26
9770
InnoDB 层锁、事务、统计信息字典表 | 全方位认识 information_schema
在上一篇《InnoDB 层系统字典表|全方位认识 information_schema》中,我们详细介绍了InnoDB层的系统字典表,本期我们将为大家带来系列第六篇《InnoDB 层锁、事务、统计信息字典表|全方位认识 information_schema》
老叶茶馆
2020/11/26
1.4K0
Server 层混杂信息字典表 | 全方位认识 information_schema(中)
该表提供查询关于语句性能分析的信息。其记录内容对应于SHOW PROFILES和SHOW PROFILE语句产生的信息
老叶茶馆
2020/11/26
4120
Server 层混杂信息字典表 | 全方位认识 information_schema(上)
在上一篇《Server层表级别对象字典表 | 全方位认识 information_schema》中,我们详细介绍了information_schema系统库的表级别对象字典表,本期我们将为大家带来系列第四篇《Server层混杂信息字典表 | 全方位认识 information_schema》,下面请跟随我们一起开始information_schema系统库的系统学习之旅吧。
老叶茶馆
2020/11/26
9540
Server 层混杂信息字典表 | 全方位认识 information_schema(下)
该表提供查询关于表级别权限信息,该表中的内容来自mysql.tables_priv
老叶茶馆
2020/11/26
3260
统计信息查询视图|全方位认识 sys 系统库
在上一篇《会话和锁信息查询视图|全方位认识 sys 系统库》中,我们介绍了如何使用 sys 系统库总的视图来查询会话状态信息以及锁等待信息,本期的内容先给大家介绍查询表和索引相关的统计信息快捷视图。下面请跟随我们一起开始 sys 系统库的系统学习之旅吧。
沃趣科技
2018/09/04
2.3K0
统计信息查询视图|全方位认识 sys 系统库
mysql中information_schema库下的COLUMNS_EXTENSIONS表详解
`information_schema.COLUMNS_EXTENSIONS` 表是 MySQL 8.0.22 及以上版本中引入的一个元数据表,用于存储与表列相关的扩展属性。这些属性主要用于存储引擎级别的信息,例如 InnoDB 存储引擎的列属性。下面是对该表的详细解释:
jack.yang
2025/04/05
850
mysql的information_schema下的COLUMNS表详解
`information_schema.COLUMNS` 表是 MySQL 中的一个元数据表,用于存储数据库中所有表的列信息。这个表对于查询和管理数据库结构非常有用,可以帮助您了解每个表中的列定义、数据类型、约束等细节。
jack.yang
2025/04/05
860
mysql中information_schema库下的KEY_COLUMN_USAGE表详解
`information_schema.KEY_COLUMN_USAGE` 表是 MySQL 中的一个元数据表,用于存储关于表的键列信息,包括主键、唯一键以及外键的详细信息。这个表包含了关于哪些列参与了哪些类型的键约束的信息。下面是这个表的详细解释:
jack.yang
2025/04/05
990
MySQL information_schema详解 COLUMNS
如果一个栏位在多个索引中,COLUMN_KEY只会显示其中优先级最高的一个,顺序为PRI, UNI, MUL
bsbforever
2020/08/18
4K0
InnoDB 层压缩相关字典表 | 全方位认识 information_schema
在上一篇《InnoDB 层全文索引字典表|全方位认识 information_schema》中,我们详细介绍了InnoDB层的全文索引字典表,本期我们将为大家带来系列第八篇《InnoDB 层压缩相关字典表|全方位认识 information_schema》,下面请跟随我们一起开始 information_schema 系统库的系统学习之旅吧。
老叶茶馆
2020/11/26
4410
MySQL information_schema详解 KEY_COLUMN_USAGE
https://dev.mysql.com/doc/refman/5.7/en/key-column-usage-table.html
bsbforever
2020/08/18
1.7K0
MySQL字段信息统计机制场景
同事咨询个问题:某个业务基于 INFORMATION_SCHEMA 统计表的信息(比如最大值)向表里面插入数据。
bisal
2023/08/09
4260
MySQL information_schema 系统库介绍
当我们安装好 MySQL 数据库后,会发现数据库实例自带有 information_schema 系统库,你是否有去关注过这个系统库呢?是否有查询过此库中的表数据呢?又是否清楚此库存在的具体作用呢?带着这些疑问,我们一起来看本篇文章。
MySQL技术
2021/08/24
9730
介绍一下 information_schema 库
今天给大家介绍一款 Mysql 中附属的数据库,就是 information_schema 数据库,为什么说是附属呢?是因为这个数据库是在安装 Mysql 的同时就会安装到你电脑上。这个数据库里面主要存储了关于数据库里面的各种库、表、列、注释等信息。这个库对我们有什么用呢?有很大用处,尤其是当一个公司没有数据字典的时候,你就可以通过查看这个数据库,然后自己去梳理字典。
张俊红
2019/06/24
1.9K0
权限系统表 | 全方位认识 mysql 系统库(一)
前面我们已经完整的介绍了performance_schema 、sys、information_schema三个系统库,今天开始我们为大家开启"全方位认识 mysql 系统库"系列,这也是MySQL中的最后一个系统库 ,在更早之前,我们在《MySQL 的 help 命令你真的会用吗?》一文中其实已经介绍过mysql 系统库的帮助信息表了。在接下来的系列文章中,我们将全面介绍 mysql 系统库。下面,请跟随我们一起开始mysql 系统库 的学习之旅吧。
老叶茶馆
2020/12/15
1K0
mysql的information_schema库下COLUMN_STATISTICS表详解
`information_schema.COLUMN_STATISTICS` 表是 MySQL 8.0.16 及更高版本中引入的一个元数据表,用于存储关于表列的统计信息,特别是直方图数据。这些统计信息有助于优化器更准确地估计查询的成本,从而选择更高效的执行计划。
jack.yang
2025/04/05
600
InnoDB 层全文索引字典表 | 全方位认识 information_schema
在上一篇中,我们详细介绍了InnoDB 层的锁、事务、及其相关的统计信息字典表,本期我们将为大家带来系列第七篇《InnoDB 层全文索引字典表 | 全方位认识 information_schema》。
老叶茶馆
2020/11/26
1.2K0
推荐阅读
相关推荐
应用示例荟萃 | 全方位认识 information_schema
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档