【机器学习】线性分类——感知机算法(理论+图解+公式推导)

简介: 【机器学习】线性分类——感知机算法(理论+图解+公式推导)

2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。


概述

本篇文章将要讲解的算法为感知机算法,它最初是一种最简单的二分类算法,后来根据它的提出不断衍生了很多基于它的相关算法,比如支持向量机还有现在比较流行的神经网络,可以说神经网络就是多层感知机的叠加,不过还是优质的神经网络结构还是有其它的其它的网络块的。

感知机算法就是找到一条直线能够完全分类两种样本数据,但是感知机算法简单就简单在只是找到这么一条即可,因为在上图中可能存在很多条都能将两种样本进行分类,但是感知机只要找到一条即可,但是支持向量机不同,它是找到最优的那一条,让所有样本距离该直线距离最大的那一条,因为这样会增大模型的泛化能力,如果有新样本进来的话,大几率仍会正确分类。

感知机算法原理

感知机的原理就是不断调整参数w的值,直到拟合的直线能够区分所有的样本点,那么我们就需要定义一个损失函数来进行衡量。

假设我们的模型为:

f ( x ) = s i g n ( w T x + b ) f(x)=sign(w^Tx+b)f(x)=sign(wTx+b)

其中sign为越阶函数,如果函数值大于0,结果为1,反之为-1,那么就有:

s i g n ( w T x + b ) = { 1 w T x + b ≥ 0 − 1 w T x + b < 0 sign(w^Tx+b)=

{1wTx+b01wTx+b<0{1wTx+b≥0−1wTx+b<0

sign(wTx+b)={1wTx+b01wTx+b<0

所以我们就想能不能使用误分类的个数作为损失,那么构造的就是0-1损失:

L ( w ) = ∑ i = 1 m I ( y i ( w T x + b ) < 0 ) L(w)=\sum_{i=1}^mI(y_i(w^Tx+b)<0)L(w)=i=1mI(yi(wTx+b)<0)

该式中的 I ( x ) I(x)I(x) 为指示函数,意思是如果 x成立,结果为1,否则为0,我们的损失函数意思就是只要某个样本误分类,总的分类错误个数就+1。

但是这样也会存在问题,这个损失函数是不可导的,因为指示函数不连续,所以无法采用算法进行优化,那么就需要采用一种新的方式去进行衡量损失。

我们观察到只要满足 y i ( w T x + b ) < 0 y_i(w^Tx+b)<0yi(wTx+b)<0 ,就说明是误分类的,也就是说如果这个式子越接近0,那么代表的损失越小,但是因为它的乘积是小于0的,我们表示损失需要一个正数,该数值越小损失越小,所以我们在前面添加一个负号就变成了:

L ( w ) = ∑ i = 1 D − y i ( w T x + b ) L(w)=\sum_{i=1}^D-y_i(w^Tx+b)L(w)=i=1Dyi(wTx+b)

但是我们求和的不是所有样本,而是分类错误的样本数据,D为分类错误的样本数,我们只关注分类错误的,正确的不予理会。

然后针对于该损失函数,由于没有极值点,所以不可直接求导,我们需要使用梯度下降法找到接近最优解的参数 w。

w t + 1 = w t − λ ∂ L ( w ) ∂ w w_{t+1}=w_t-\lambda \frac{\partial L(w)}{\partial w}wt+1=wtλwL(w)


目录
相关文章
|
3月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
193 6
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
266 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
1月前
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
52 14
|
3月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
77 1
|
2天前
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
1月前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
1月前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
147 68
|
1月前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。
|
3天前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
3天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。