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

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 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天前
|
机器学习/深度学习 Python
验证集的划分方法:确保机器学习模型泛化能力的关键
本文详细介绍了机器学习中验证集的作用及其划分方法。验证集主要用于评估模型性能和调整超参数,不同于仅用于最终评估的测试集。文中描述了几种常见的划分方法,包括简单划分、交叉验证、时间序列数据划分及分层抽样划分,并提供了Python示例代码。此外,还强调了在划分数据集时应注意随机性、数据分布和多次实验的重要性。合理划分验证集有助于更准确地评估模型性能并进行有效调优。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习模型之深度神经网络的特点
深度神经网络(Deep Neural Networks, DNNs)是一类机器学习模型,通过多个层级(层)的神经元来模拟人脑的工作方式,从而实现复杂的数据处理和模式识别任务。
6 1
|
9天前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
8天前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
77 1
|
12天前
|
机器学习/深度学习 PHP 开发者
探索PHP中的面向对象编程构建你的首个机器学习模型:以Python和scikit-learn为例
【8月更文挑战第30天】在PHP的世界中,面向对象编程(OOP)是一块基石,它让代码更加模块化、易于管理和维护。本文将深入探讨PHP中面向对象的魔法,从类和对象的定义开始,到继承、多态性、封装等核心概念,再到实战中如何应用这些理念来构建更健壮的应用。我们将通过示例代码,一起见证PHP中OOP的魔力,并理解其背后的设计哲学。
|
11天前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
21 1
|
14天前
|
机器学习/深度学习
机器学习回归模型相关重要知识点总结
机器学习回归模型相关重要知识点总结
|
13天前
|
机器学习/深度学习 人工智能 Android开发
揭秘AI编程:从零开始构建你的第一个机器学习模型移动应用开发之旅:从新手到专家
【8月更文挑战第29天】本文将带你走进人工智能的奇妙世界,一起探索如何从零开始构建一个机器学习模型。我们将一步步解析整个过程,包括数据收集、预处理、模型选择、训练和测试等步骤,让你对AI编程有一个全面而深入的理解。无论你是AI初学者,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启示。让我们一起开启这段激动人心的AI编程之旅吧! 【8月更文挑战第29天】在这篇文章中,我们将探索移动应用开发的奇妙世界。无论你是刚刚踏入这个领域的新手,还是已经有一定经验的开发者,这篇文章都将为你提供有价值的信息和指导。我们将从基础开始,逐步深入到更复杂的主题,包括移动操作系统的选择、开发工具的使用、
|
16天前
|
机器学习/深度学习 自动驾驶 算法
揭秘机器学习:用Python构建你的首个预测模型
【8月更文挑战第26天】 机器学习,这个听起来既神秘又遥不可及的领域,实际上正悄然改变着我们的世界。从推荐系统到自动驾驶汽车,机器学习技术无处不在。本文将带你走进机器学习的世界,通过一个简单的Python代码示例,展示如何构建一个基本的线性回归模型来预测房价。不需要复杂的数学公式或深奥的理论,我们将以最直观的方式理解机器学习的核心概念。无论你是编程新手还是数据科学爱好者,这篇文章都将为你打开一扇新的大门,让你看到数据背后的力量。
|
4天前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的基本原理与Python代码实践
【9月更文挑战第6天】本文深入探讨了人工智能领域中的机器学习技术,旨在通过简明的语言和实际的编码示例,为初学者提供一条清晰的学习路径。文章不仅阐述了机器学习的基本概念、主要算法及其应用场景,还通过Python语言展示了如何实现一个简单的线性回归模型。此外,本文还讨论了机器学习面临的挑战和未来发展趋势,以期激发读者对这一前沿技术的兴趣和思考。

相关产品

  • 人工智能平台 PAI
  • 下一篇
    DDNS