深度学习之感知机学习算法

一,感知机模型

感知机是一种较为简单的二分类模型,但由简至繁,感知机却是神经网络和支持向量机的基础。感知机旨在学习能够将输入数据划分为+1/-1的线性分离超平面,所以感知机是一种线性模型。
由输入空间到输出空间到函数为:其中x为实例的特征向量
在这里插入图片描述
称为感知机其中w和b为感知机模型的参数,w叫做weight(权值)b叫做bias(偏置)其中sign函数为符号函数:
在这里插入图片描述
在这里插入图片描述
w和b构成的线性方程wx+b=0极为线性分离超平面。用这个感知机模型就是要找到一条好的直线,将数据集划分开来。

二,感知机的学习策略

首先保证数据集是线性可分的,什么叫线性可分,线性可分就是说可以用一个线性函数把两类样本分开,比如二维空间中的直线、三维空间中的平面以及高维空间中的线性函数。比如在一个二维空间中,有红球和绿球,一条直线可以将它们分开,这就说明这个数据集是线性可分的,推广到三维平面,如果一个西瓜一部分是坏掉的,另一部分是好的,切下一刀,将这两者分成两个部分,那么这在三维中就是线性可分的数据集。

下面以二维平面为例子,如何找到一个超平面(直线)?

  1. 一条直线不分错一个点,就是一条好的直线。
  2. 模型要尽可能的找到一条好的直线。
  3. 如果没有好的直线,那么在差的直线中找到一条好的直线。
  4. 判断直线有多差的方式:分错的点到直线的距离求和。

那么我们在考虑到这个距离的和的时候,会有两种距离,一种叫做函数距离,一种叫做几何距离。来自知乎Jason Gu作者的解释

参考
因为函数距离如果同时放大或者缩小,那么这个距离就随之发生改变,但是用了几何距离会解决这个问题,||w||叫做w的L2范数。
||w|| = 求根(从1到n求和 wi^2)

在这里插入图片描述

很显然,损失函数L(w,b)是非负的,如果没有误分类点,那么损失函数值是0,误分类点越少,误分类点离超平面越近,那么损失函数值就越小,因此感知机的学习策略是在假设空间中选取损失函数式最小的模型参数w,b即为感知机模型。

三,感知机学习算法

现在已经知道了感知机的损失函数,感知机学习问题转化为求解损失函数式的最优化问题,最优化的方法是随机梯度下降法。x=x-nf`(x)

具体来说,我们任意选取一个超平面,由参数w0,b0表示。然后我们对w,b求梯度,我们知道梯度代表了函数下降最快的方向,那么我们沿着这个方向下降一定的距离,就可以较快的接近函数的极小值。

损失函数对w求偏导和对b求偏导会得到下面的式子:
每次梯度更新的式子为x=x-nf`(x)

在这里插入图片描述
下面介绍感知机的算法原始形式:
在这里插入图片描述

四,感知机学习算法的对偶形式

对偶形式其实是对于yixi的重复计算进行了优化,将w和b表示为实例xi和yi的线性组合的形式
在这里插入图片描述
假设修改n次,那么增量为aiyixi和aiyi,这里ai=niη。 (0<η<=1)
w = w0+a1y1x1+a2y2x2+…anynxn
b = b0+a1y1+a2y2+…anyn
w0,b0初始化为0,那么
在这里插入图片描述

把w带入感知机模型中,此时的感知机模型为
在这里插入图片描述

对于ai=niη ,ni是点(xi,yi)被误分类点次数,所以ai的每次增量为η

在这里插入图片描述
因此感知机的对偶形式算法为:
在这里插入图片描述

五,感知机学习算法的对偶形式例题

在这里插入图片描述

  • 10
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动手深度学习感知机从零开始的步骤如下: 1. 导入所需的包或模块,包括torch、numpy和d2lzh_pytorch等。 2. 获取和读取数据,可以使用Fashion-MNIST图像分类数据集作为训练和测试数据集。 3. 初始化模型参数,包括输入层维度、隐藏层维度和输出层维度等。这些参数可以根据具体情况进行设置。 4. 定义激活函数,可以使用ReLU等常见的激活函数。 5. 定义模型结构,包括输入层、隐藏层和输出层等。在每一层之间都可以加上激活函数。 6. 定义损失函数,可以使用交叉熵损失函数等。 7. 训练模型,可以使用梯度下降等优化算法进行模型参数的更新。训练过程中可以设置迭代周期数和学习率等超参数。 8. 输出结果,可以使用准确率等指标来评估模型的性能。 9. 使用预测函数进行预测,将输入数据输入模型,得到对应的预测结果。 以上是从零开始实现多层感知机的步骤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【动手学深度学习】多层感知机的从零开始实现(含源代码)](https://blog.csdn.net/wzk4869/article/details/127984842)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【从零开始学习深度学习】10.自己动手从零开始实现一个多层感知机](https://blog.csdn.net/qq_42589613/article/details/128187230)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值