干货|感知机更新算法正确性的直观理解
这里我们就用一个例子,本来该点应该分为正类,错分为负类,进行更新后,直观上算法的正确性判断。
首先当我们感知机算法更新到某一点的时候,假如原来A点的正确类别是正类,y=1,算法将它判断为负类,判断为-1,如下所示:
我们能够看到此时更新到了左下角的红色正方框,此时是将它分错了,假设它为正类y=1,而我们将它分为了负类,分成了-1。
那么进行参数更新!更新方式如下:
那么为什么更新后的超平面一定就比没有更新后的超平面好呢?
下面从理论和可视化两个部分来说明一下
理论
未更新前,我们的wx+b是小于0的,才导致我们错分为了负类,正确的标签是y=1,为正类。那么进行更新后,我们再进行计算,如下:
其中y=1,已经带入式子。
我们可以通过看出,经过更新后,比原来的wx+b加上了正值,也就是说,更新后,一定使得原来分错的负值往正向走!!
这也就是在理论上证明了每次更新都会更好的结论。
可视化
这种更新方式,我们也有直观上的感觉,可以可视化理解一下,如下图:
上图中的w是学习的超平面的法线向量,可以看出它将x已经分错了。那么此时我们需要将超平面往x方向走,才能将x点最后分对。
当我们数据点应该分类为y=+1的时候,我们错分成-1(则判断wx+b<0了,那么说明wx<0,代表w与x向量夹角大于90度),这个时候应该调整,更新过程为w=w+1x,往x向量方向更接近了,往能够分对x点的方向走!如下图:
这也从可视化角度直观的说明了更新算法的正确性。
致谢:张岳老师
推荐阅读:
精选干货|近半年干货目录汇总----全是通俗易懂的硬货!欢迎阅读!
干货|台湾大学林轩田机器学习基石课程学习笔记3 -- Types of Learning
干货|台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No
干货|台大林轩田机器学习基石笔记1 -- The Learning Problem
欢迎关注公众号学习交流~
- 学习笔记(17):程序员的数学:优化理论-最直观易理解的优化算法
- 统计学习方法——感知机学习算法的对偶形式理解。
- 对算法导论中用循环不变式证明算法正确性的理解
- 学习笔记(11):程序员的数学:优化理论-最直观易理解的优化算法
- 算法直观与对模型的理解
- Lua的系统学习(杂)_通过Lua调用C#方法(热更新最直观的原理理解)_简单的随机数实现
- 出海干货 | 1次掌握 2020 年 Google 核心算法更新,独立站 SEO 设置 So easy!
- 算法直观与对模型的理解(二)
- 感知机核心算法的两种理解!
- 关于K-SVD算法中逐列更新的目标函数的理解,再看不懂就打死我吧
- 《机器学习实战》第五章梯度上升算法的直观理解
- 学习笔记(06):程序员的数学:优化理论-最直观易理解的优化算法
- 如何理解算法的正确性
- 通俗理解卡尔曼滤波及其算法实现(带实例解析)
- MPI实现fft的迭代算法 源于并行计算——结构。算法。编程中伪码 更新2
- 你真的理解Python中MRO算法吗?[转]
- 程序人生:干货 | 程序员必须知道的十大基础实用算法及其讲解
- [深入理解Java虚拟机]第三章 对象存活判定算法
- [深入理解Java虚拟机]第三章 HotSpot的垃圾收集算法实现