“机器学习”系列之Perceptron(感知机)


感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

“机器学习”系列之perceptron(感知机) -

“机器学习”系列之感知机

0 简介

  • 感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化。

同时介绍一个可视化实验网址,效果如下:网站链接

“机器学习”系列之Perceptron(感知机) -

1 感知机模型

  • 假设输入空间(特征向量)是x∈Rnx∈Rn,输出空间为,输入Y∈−1,1Y∈−1,1表示实例的特征向量,对应于输入空间的点,输出x∈Xx∈X表示实例的类别,则由输入空间到输出空间的表达形式为:

“机器学习”系列之Perceptron(感知机) -

  • 上面该函数称为感知机,其中w,b称为模型的参数,x∈Rnx∈Rn称为权值,bb称为偏置,w∗xw∗x表示为w,xw,x的内积

“机器学习”系列之Perceptron(感知机) -

  • 如果我们将sign称之为激活函数的话,感知机与logistic regression的差别就是感知机激活函数是sign,logistic regression的激活函数是sigmoid。sign(x)将大于0的分为1,小于0的分为-1;sigmoid将大于0.5的分为1,小于0.5的分为0。因此sign又被称为单位阶跃函数,logistic regression也被看作是一种概率估计。
  • 该感知机线性方程表示为:w∗x+b=0w∗x+b=0,它的几何意义如下图所示:

“机器学习”系列之Perceptron(感知机) -

  • 学习参数w与b,确定了w与b,图上的直线(高维空间下为超平面)也就确定了,那么以后来一个数据点,我用训练好的模型进行预测判断,如果大于0就分类到+1,如果小于0就分类到-1。
  • 用到了超平面分离定理:超平面分离定理是应用凸集到最优化理论中的重要结果,这个结果在最优化理论中有重要的位置。所谓两个凸集分离,直观地看是指两个凸集合没有交叉和重合的部分,因此可以用一张超平面将两者隔在两边。如下图所示,在大于0的时候,我将数据点分类成了D类,在小于0的时候,我将数据点分类成了C类

“机器学习”系列之Perceptron(感知机) -

Openflow Openflow

一键极速绘图,赋能行业工作流

Openflow 88 查看详情 Openflow

2 感知机学习策略

  • 学习出超平面的参数w,b,这就需要用到我们的学习策略。距离公式如下:

1∣w∣∣w∗x0+b∣∣w∣1∣w∗x0+b∣

  • 每一个误分类点都满足:−yi(w∗x0+b)>0−yi(w∗x0+b)>0
  • 因为当我们数据点正确值为+1的时候,你误分类了,那么你判断为-1,则算出来(w∗x0+b)0(w∗x0+b)−yi(w∗x0+b)>0−yi(w∗x0+b)>0
  • 当数据点是正确值为-1的时候,你误分类了,那么你判断为+1,则算出来(w∗x0+b)>0(w∗x0+b)>0,所以满足−yi(w∗x0+b)>0−yi(w∗x0+b)>0
  • 得到误分类点的距离为:

−1∣w∣yi(w∗xi+b)−∣w∣1yi(w∗xi+b)

  • 又因−yi(w∗x0+b)>0−yi(w∗x0+b)>0,所以可以直接将绝对值去掉。那么可以得到总距离为:

−1∣w∣Σyi(w∗xi+b)−∣w∣1Σyi(w∗xi+b)

  • 不考虑1∣w∣∣w∣1,我们可以得到损失函数为:

L(w,b)=−Σyi(w∗xi+b)L(w,b)=−Σyi(w∗xi+b)

  • 其中M为误分类点的数目。

3 总结

  • 感知机的模型是f(x)=sign(w∗x+b)f(x)=sign(w∗x+b),它的任务是解决二分类问题,要得到感知机模型我们就需要学习到参数w,b。
  • 学习策略,不断的迭代更新w,b,所以我们需要找到一个损失函数。很自然的我们想到用误分类点的数目来表示损失函数,但是由于不可导,无法进行更新,改为误分类点到超平面的距离来表示,然后不考虑1∣w∣∣w∣1,得到我们最终的损失函数

4 代码实现

以iris数据集中两个分类的数据和[sepal length,sepal width]作为特征进行代码举例

4.1 导包、数据集加载

In [1]
import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisimport matplotlib.pyplot as plt
%matplotlib inline
In [2]
# load datairis = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['label'] = iris.target
In [3]
#df.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'label']
df.label.value_counts()
2    50
1    50
0    50
Name: label, dtype: int64
In [4]
plt.scatter(df[:50]['sepal length'], df[:50]['sepal width'], label='0')
plt.scatter(df[50:100]['sepal length'], df[50:100]['sepal width'], label='1')
plt.xlabel('sepal length')
plt.ylabel('sepal width')
plt.legend()
<matplotlib.legend.Legend at 0x7f70182f1490>
<Figure size 432x288 with 1 Axes>
In [5]
data = np.array(df.iloc[:100, [0, 1, -1]])
In [6]
X, y = data[:,:-1], data[:,-1]
In [7]
y = np.array([1 if i == 1 else -1 for i in y])

4.2 定义Perceptron(感知机)函数

In [9]
# 数据线性可分,二分类数据# 此处为一元一次线性方程class Model:
    def __init__(self):
        self.w = np.ones(len(data[0])-1, dtype=np.float32)
        self.b = 0
        self.l_rate = 0.1
        # self.data = data
    
    def sign(self, x, w, b):
        y = np.dot(x, w) + b        return y    
    # 随机梯度下降法
    def fit(self, X_train, y_train):
        is_wrong = False
        while not is_wrong:
            wrong_count = 0
            for d in range(len(X_train)):
                X = X_train[d]
                y = y_train[d]                if y * self.sign(X, self.w, self.b) <= 0:
                    self.w = self.w + self.l_rate*np.dot(y, X)
                    self.b = self.b + self.l_rate*y
                    wrong_count += 1
            if wrong_count == 0:
                is_wrong = True
        return 'Perceptron Model!'
        
    def score(self):
        pass
In [10]
perceptron = Model()
perceptron.fit(X, y)
'Perceptron Model!'

4.3 结果展示

In [11]
x_points = np.linspace(4, 7,10)
y_ = -(perceptron.w[0]*x_points + perceptron.b)/perceptron.w[1]
plt.plot(x_points, y_)

plt.plot(data[:50, 0], data[:50, 1], 'bo', color='blue', label='0')
plt.plot(data[50:100, 0], data[50:100, 1], 'bo', color='orange', label='1')
plt.xlabel('sepal length')
plt.ylabel('sepal width')
plt.legend()
<matplotlib.legend.Legend at 0x7f7f43472150>
<Figure size 432x288 with 1 Axes>

4.4 使用scikit-learn中的Perceptron方法

In [15]
from sklearn.linear_model import Perceptron
In [27]
clf = Perceptron(fit_intercept=False,max_iter=5000, shuffle=False)
clf.fit(X, y)
Perceptron(alpha=0.0001, class_weight=None, early_stopping=False, eta0=1.0,
           fit_intercept=False, max_iter=5000, n_iter_no_change=5, n_jobs=None,
           penalty=None, random_state=0, shuffle=False, tol=0.001,
           validation_fraction=0.1, verbose=0, warm_start=False)
In [28]
# Weights assigned to the features.print(clf.coef_)
[[ 16.3 -24.2]]
In [29]
# 截距 Constants in decision function.print(clf.intercept_)
[0.]
In [30]
x_ponits = np.arange(4, 8)
y_ = -(clf.coef_[0][0]*x_ponits + clf.intercept_)/clf.coef_[0][1]
plt.plot(x_ponits, y_)

plt.plot(data[:50, 0], data[:50, 1], 'bo', color='blue', label='0')
plt.plot(data[50:100, 0], data[50:100, 1], 'bo', color='orange', label='1')
plt.xlabel('sepal length')
plt.ylabel('sepal width')
plt.legend()
<matplotlib.legend.Legend at 0x7f7ef401f410>
<Figure size 432x288 with 1 Axes>

以上就是“机器学习”系列之Perceptron(感知机)的详细内容,更多请关注其它相关文章!


# 所示  # 谷歌seo指南图  # 梅江网站优化公司招聘  # 网站log分析优化  # 丽江营销推广  # 新镇外贸网站建设  # facebook营销推广的优势  # 中国社区网站建设  # 创新网站推广服务费用  # 株洲网站建设在线咨询  # 南开区自助营销推广招聘  # 两类  # ai  # 我将  # 应于  # 线性方程  # 成了  # 最优化  # 求出  # 系列之  # 中文网  # type  # fig 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: 陈丹琦ACL学术报告来了!详解大模型「*」数据库7大方向3大挑战,3小时干货满满  国内通用人形机器人将发布、产业加速突破  如何获得元宇宙的第一个属于自己的空间  电力人工智能数据集目录首次发布  北京市元宇宙产业创新中心筹建工作正式启动  GPT-4使用混合大模型?研究证明MoE+指令调优确实让大模型性能超群  官宣!爱康AI未来之夜三大亮点提前剧透!  山东机器人编程:Scratch编程基础,认识舞台!~济南机器人编程  BLIP-2、InstructBLIP稳居前三!十二大模型,十六份榜单,全面测评「多模态大语言模型」  网易加速行业AI大模型应用,将覆盖100多个应用场景  陈根:ChatGPT和人类合作开发机器人  日入400万,第一批AI骗子已上岗  智能技术提高现代商业运营的7七种方式  再也不怕「视频会议」尬住了!谷歌CHI顶会发布新神器Visual Captions:让图片做你的字幕助手  中国移动主导创立元宇宙产业联盟,包括科大讯飞、芒果TV等在内,共24家成员  看懂AI,找到增长新势能 | 笔记侠AI峰会等你来  OpenOOD更新v1.5:全面、精确的分布外检测代码库及测试平台,支持在线排行榜、一键测试  脑机接口产业联盟发布十大脑机接口关键技术  百度文心一言App上架苹果商店,人工智能创作引发热议  映宇宙集团执行总编辑:元宇宙还是要以人为媒介  DeepMind用AI重写排序算法;将33B大模型塞进单个消费级GPU  联通发布鸿湖图文AI大模型1.0,可实现以文生图  利用AI技术更好地发展农村电商  AIGC浪潮下,联想集团再加码计算与人工智能  如何对员工进行再培训以充分利用供应链管理中的人工智能创新  Prompt解锁语音语言模型生成能力,SpeechGen实现语音翻译、修补多项任务  全国体育人工智能大会举办,专家聚焦体育人工智能领域人才培养  清华&中国气象局大模型登Nature:解决世界级难题,「鬼天气」预报时效首次达3小时  创作音乐/音频的Meta开源AI工具AudioCraft,让用户通过文本提示实现  特斯拉门店可能启动机器人卖车?也许不是你想的那样  联想创投携手12家被投企业MWC展示元宇宙、机器人等技术  “三夏”农忙保障用电,无人机高空巡视高压线  全球首款AI裸眼3D平板 国产的售价破万  智能化解决方案:保障数据安全阻击泄露和丢失  美的推出 AI 双视精准避障的自动集尘扫拖机器人 V12,售价仅为2999元  水路两栖艇、消防灭火机器人……这个展览“黑科技”抢眼  外科医生的智能助手,“机器人手术”得到补充商业医保覆盖  华为小艺AI助手将实现强大的大模型能力  OpenAI 引入个性化指令功能,消除对话中的重复偏好与信息  大脚攀爬者车主福利!无人机、运动相机大奖等你来挑战  谷歌StyleDrop在可控性上卷翻MidJourney,前GitHub CTO用AI颠覆编程  周鸿祎参加中美青年科技创新峰会,分享人工智能创新机遇  面向AI大模型,腾讯云首次完整披露自研星脉高性能计算网络  无人机自主巡检为高海拔输电线路运维添“新彩”  全新升级的广州麦当劳:面积最大餐厅正式引入智慧机器人  周星驰支持的人工智能与 Web3 初创公司 Moonbox 完成 100 万美元融资  马斯克“揭秘”人工智能真面目  Stability AI 推出文生图模型 SDXL0.9,GPU要求下探至消费级水平  用AI技术点亮老照片:Deep Nostalgia带给照片新生动感  IBM 与 NASA 携手开源地理空间 AI 模型,促进气候科学研究进步 

 2025-08-01

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.