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

news2024/11/17 1:56:59

这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言!这一篇就更新一下《白话机器学习中的数学——感知机》!

目录

一、什么是感知机 

二、模型分析 

2.1训练数据的准备

 2.2权重向量的更新表达式


一、什么是感知机 

感知机是二分类的线性分类模型输入为实例的特征向量,输出为实例的类别(取+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 的情况,只是 更新表达式的向量加法变成了减法而已,做的事情是一样的。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HDLC、ppp、MGRE实验(1.1)

1、首先为每个路由器的每个接口配置ip r1&#xff1a; [r1]interface Serial 4/0/0 [r1-Serial4/0/0]ip address 12.1.1.1 24 [r1-Serial4/0/0]int gi 0/0/0 [r1-GigabitEthernet0/0/0]ip add 192.168.1.1 24 r2&#xff1a; [r2-Serial4/0/0]ip add 12.1.1.2 24 [r2-Seria…

二十三、shiro安全框架详解(一)

一、 权限概述 1. 什么是权限 权限管理&#xff0c;一般指根据系统设置的安全策略或者安全规则&#xff0c;用户可以访问而且只能访问自己被授权的资源&#xff0c;不多不少。权限管理几乎出现在任何系统里面&#xff0c;只要有用户和密码的系统。 权限管理在系统中一般分为…

手把手代码实现五级流水线CPU——第三篇:流水线控制逻辑

系列文章目录 第一篇&#xff1a;初级顺序流水线 第二篇&#xff1a;分支预测流水线 文章目录系列文章目录一、控制逻辑二、具体操作1.判断暂停2.控制冒险3.跳转问题4.实现代码一、控制逻辑 通过暂停和插入气泡来动态调整流水线的状态 二、具体操作 1.判断暂停 识别&#x…

MySQL高级 索引【索引使用索引设计原则】

目录 1&#xff1a;索引使用 1.1&#xff1a;验证索引效率 1.2&#xff1a;最左前缀法则 1.3&#xff1a;范围查询&#xff08;存在索引失效的情况&#xff09; 1.4&#xff1a;索引失效情况 1.4.1&#xff1a;索引列运算&#xff08;索引会失效&#xff09; 1.4.2&…

第三十五讲:无线局域网基础知识

1. IEEE 802.11协议 802.11无线标准家族包括802.11a/b/g/n/ac五个标准理论上可以提供高达每秒1Gbit的数据传输能力标准定义了如何使用免授权2.4 GHz 和 5GHz 频带的电磁波进行信号传输。 802.11无线标准家族 802.11a 802.11b 802.11g 802.11n 802.11ac 工作频段 5GHz 2…

servelt的cookie操作

Cookie对象 Cookie是浏览器提供的一种技术&#xff0c;通过服务器的程序能将一些只须保存在客户端&#xff0c;或者在客户端进行处理的数据&#xff0c;放在本地的计算机上&#xff0c;不需要通过网络传输&#xff0c;因而提高网页处理的效率&#xff0c;并且能够减少服务器的…

Allegro如果通过CNS Show命令查看走线的阻抗操作指导

Allegro如果通过CNS Show命令查看走线的阻抗操作指导 Allegro可以通过CNS show的命令快速查看走线的阻抗,省去通过规则管理器查看的时间,如下图 具体操作如下 选择Display命令选择Constraint

使用资源绑定器获取属性配置文件中的内容(读取属性配置文件最简单的方法)

package com.javase.reflect;import java.util.ResourceBundle;/*** java.util包下提供了一个资源绑定器&#xff0c;便于获取属性配置文件中的内容&#xff0c;使用这种方式的时候&#xff0c;* 属性配置文件必须放在类路径下。该文件的文件名必须是 "*.properties&…

2022年度总结|我的CSDN成长历程

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 周榜第一&#xff0c;诚信互投 我正在参加年度博客之星评选&#xff0c;麻烦…

Leetcode:150. 逆波兰表达式求值(C++)

目录 问题描述&#xff1a; 实现代码和解析&#xff1a; 原理思路&#xff1a; 问题描述&#xff1a; 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 示例 1&#xff1a; 输入&a…

Selenium用法详解【从入门到实战】【JAVA爬虫】

目录 简介 selenium安装 java使用 浏览器控制 修改窗口大小 窗口最大化 窗口全屏显示 浏览器前进&后退 浏览器刷新 浏览器打开新标签页 浏览器窗口切换 关闭标签页 关闭浏览器 浏览器页面截图 其他操作 简介 Selenium是一个用于Web应用程序测试的工具。Seleniu…

Redis发布订阅和事务实现原理

Redis发布订阅和事务实现原理发布订阅实现频道订阅与退订频道模式订阅与退订发送消息事务事务队列执行事务WATCH命令实现ACID原子性一致性隔离性持久性发布订阅 Redis的发布订阅由PUBLISH&#xff0c;SUBSCRIBE&#xff0c;PSUBSCRIBE等命令组成,例子如下: redis中我们还可以通…

三菱FX5U系列PLC通过简单CPU通信功能实现以太网通信的具体方法示例

三菱FX5U系列PLC通过简单CPU通信功能实现以太网通信的具体方法示例 对于三菱FX5U系列PLC,只需对CPU模块进行简单的参数设置,即可实现在指定时间内与指定软元件进行数据收发的功能。以1:1的方式设置通信对象(传送源)和通信对象(传送目标),在指定的通信对象之间进行数据的…

windows下TensorFlow-GPU 的安装教程

文章目录安装环境一. 查看自己的GPU版本是否支持cuda二 .安装CUDA三. 安装cuDNN安装环境 Anaconda: 4.10.1python: 3.8.8tensorflow-gpu: 2.5.0cuda: 11.4.0cudnn: 8.2.2.26 一. 查看自己的GPU版本是否支持cuda 打开显卡的控制面板&#xff0c;查看显卡是否支持cuda 查看te…

物联网-初步探索lua

初步探索lua 在物联网行业中&#xff0c;存在各种协议&#xff1b;比如在电控和云端进行通信的时候需要对功能进行解码和编码&#xff1b;当云端下发到设备的时候需要将Json格式的命令转换成电控码&#xff1b;当电控进行上报或者返回的时候&#xff0c;需要将16进制的电控码转…

(黑马C++)L06 重载与继承

一、关系运算符重载 以重载等于号运算符为例&#xff1a; #include<string> #include <iostream> using namespace std;class Person { public:Person(string Name, int age) {this->m_Name Name;this->m_Age age;}public:string m_Name;int m_Age; };bo…

SD存储卡接口规范介绍

SD存储卡简介 SD卡高度集成闪存&#xff0c;具备串行和随机存取能力。可以通过专用优化速度的串行接口访问&#xff0c;数据传输可靠。接口允许几个卡垛叠&#xff0c;通过他们的外部连接。接口完全符合最新的消费者标准&#xff0c;叫做SD卡系统标准&#xff0c;由SD卡系统规范…

用javascript分类刷leetcode14.排序算法(图文视频讲解)

常见排序算法复杂度 n^2除nlogn在不同数据规模下的结果 常见排序算法 算法可视化来源&#xff1a;http://visualgo.net/ 冒泡排序&#xff1a;时间复杂度O(n^2) 比较相邻元素&#xff0c;如果第一个比第二个大&#xff0c;则交换他们一轮下来&#xff0c;可以保证最后一个数…

Android入门第56天-在Android里使用OKHttp多线程下载文件并展示其进度

简介 OkHttp是一个神器。OkHttp分为异步、同步两种调用。今天我们就会基于OkHttp的异步调用实现一个多线程并行下载文件并以进度条展示总进度的实用例子。当然这不是我们的Android里使用OkHttp的最终目标&#xff0c;我们最终在下一篇中会在今天这一课的基础上加入“断点续传”…

【我在异世界学Linux】认识冯诺依曼体系结构

文章目录一、冯诺依曼体系结构是什么二、冯诺依曼为什么要这么设计&#xff1f;三、内存是怎么提高效率的呢&#xff1f;解释&#xff1a;程序要运行&#xff0c;必须加载到内存四、和QQ好友聊天的时候&#xff0c;数据是怎么流向的&#xff1f;一、冯诺依曼体系结构是什么 冯诺…