机器学习中的数学原理——感知机模型

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 机器学习中的数学原理——感知机模型

一、什么是感知机

感知机是二分类的线性分类模型输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机目的在求一个可以将实例分开的超平面,为了求它,我们用到基于误分类的损失函数和梯度下降的优化策略。

二、模型分析

之前的学习中,我们学习了权重向量的概念,明白了只要找到权重向量,就能够找到那条分割线,所有现在的问题来到了,我们应该怎么样找到权重向量呢?基本做法和回归时相同:将权重向量用作参数,创建更新表达式来更新参数。接下来,我要说明的就是被称为感知机(perceptron) 的模型。 感知机是非常简单的模型,基本不会应用在实际的问题中。 但它是神经网络和深度学习的基础模型,所以记住它没坏处。

感知机是接受多个输入后将每个值与各自的权重相乘,最后输出总和的模型。人们常用这样的图来表示它:

和我们之前说到的向量的内积很相似,这次我们从图像的角度去理解。在介绍参数更新表达式之前,我们最好做一些准备工作,我们可以先理解这一部分,磨刀不误砍柴工。

2.1训练数据的准备

我们依然以图像的横纵分类为探索问题,设表示宽的轴为 x1、表示高的轴为 x2,用 y 来 表示图像是横向还是纵向的,横向的值为 1、纵向的值为 −1。我们将其画在表里:

接下来,根据参数向量 x 来判断图像是横向还是纵向的函 数,即返回 1 或者 −1 的函数 fw(x)的定义如下。这个函数被称为判别函数。

也就是说,这是根据内积的符号来给出不同返回值的函数,这样就可以判断图像是横向还是纵向的。如果不理解也没有关系,我们对上面这句话再深入理解一下:

与权重向量 w 的内积为负的向量 x 是 什么样的向量呢?用图形来解释更容易理解,所以我们利用这个 包含 cos 的表达式来思考。

之前我们说过|w| 和 |x| 必定为正数,所以决定内积符号的是 cos θ ,我们回忆一下cos θ 的图,它什么时候为 负呢?

在 90◦ < θ < 270◦ 的时候 cos θ 为负,与权重向量 w 之间的夹角为 θ,在 90◦ < θ < 270◦ 范围内的所有 向量都符合条件,所以就在这条直线下面、与权重向量方向相反的这个区域

同理,我们也可以得到使内积为正的向量

所以可以根据内积的正负来分割内积是衡量向量之间相似程度的指标。结果为正,说明二者相似; 为 0 则二者垂直;为负则说明二者不相似。

2.2权重向量的更新表达式

在这个基础上,我们可以这样定义权重向量的更新表达式。

i 在介绍回归的时候也出现过,它指的是训练数据的索引,而不是i 次方的意思,这一点一定要注意。用这个表达式重复处理所有训练数据,更新权重向量。

虽然表达式整体看上去 乱七八糟的,但是一部分一部分分解来看就不那么难了。好好地 想清楚各部分的含义,再慢慢理解整体含义就好了。之前我们也是这么做的

我们先从表达式括号中的 fw(x(i) ) ̸= y(i)开始看,意思是通过判别函数对宽和高的向量 x 进行分类的结果与实际的标签 y不同,也就是说,判别函数的分类结果不正确。那么另外一个 fw(x(i) ) = y(i)就是分类正确。这也就是说,刚才的更新表达式只有在判别函数分类失败的时候 才会更新参数值。

现在着重看一下w := w + y(i) x(i)这个表达式的含义,我们可以结合图形来理解,一边把学习过程实际地画在 图上,一边去考虑它的含义可能就容易理解了。首先在图上随意 画一个权重向量和直线

权重向量是通过随机值来初始化的,上面向量就可以是初始向量。 在这个状态下,假设第一个训练数据是 x(1) = (125, 30),首先我们就用它来更新参数。

现在权重向量 w 和训练数据的向量 x(1) 二者的方向几乎相 反,w 和 x(1) 之间的夹角 θ 的范围是 90◦ < θ < 270◦ ,内积为负。 也就是说,判别函数 fw(x(1) ) 的分类结果为 −1。我们在这里应用刚才的更新表达式。现在 y(1) = 1,所以更新表 达式是这样的,其实就是向量的加法

这个 w + x(1) 就是下一个新的 w,画一条与新的权重向量 垂直的直线,相当于把原来的线旋转了一下,刚才x(1) 与权重向量分居直线两侧,现在它们在同一侧了

这次 θ < 90◦,所以内积为正,判别函数 fw(x) 的分类结果为1。而且x(1) 的标签也为 1,说明分类成功了。这样就可以更新参数的权重向量,刚才处理的是标签值 y = 1 的情况,而对于 y = −1 的情况,只是 更新表达式的向量加法变成了减法而已,做的事情是一样的。

也就是说,虽然有加法和减法的区别,但它们的做法都是在分类失败时更新权重向量,使得直线旋转相应的角度,这就是感知机的学习方法。


相关文章
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
实战派教学:掌握Scikit-learn,轻松实现数据分析与机器学习模型优化!
【10月更文挑战第4天】Scikit-learn凭借高效、易用及全面性成为数据科学领域的首选工具,简化了数据预处理、模型训练与评估流程,并提供丰富算法库。本文通过实战教学,详细介绍Scikit-learn的基础入门、数据预处理、模型选择与训练、评估及调优等关键步骤,助你快速掌握并优化数据分析与机器学习模型。从环境搭建到参数调优,每一步都配有示例代码,便于理解和实践。
91 2
|
1月前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
【10月更文挑战第6天】如何使用机器学习模型来自动化评估数据质量?
|
6天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
15天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
11天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
41 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
16天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
40 1
|
1月前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
66 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
25天前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
68 1
|
28天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
10天前
|
机器学习/深度学习 自然语言处理 语音技术
探索机器学习中的深度学习模型:原理与应用
探索机器学习中的深度学习模型:原理与应用
23 0

热门文章

最新文章

相关产品

  • 人工智能平台 PAI
  • 下一篇
    无影云桌面