白话机器学习的数学-2-分类

1、设置问题

图片分类:只根据尺寸把它分类为 纵向图像和横向图像。

如果只用一条线将图中白色的点和黑色的点分开:

这次分类的目的就是找到这条线。

2、内积

找到一条线,这是否意味着我们要像学习回归时那样,求出一次函数的斜率和截距?

这个又不一样, 这次的目的是找出向量。

刚才画的那条线,是使权重向量成为法线向量的直线。

设权重 向量为 w,那么那条直线的表达式就是这样的:

实向量空间的内积是各相应元素乘积的和:

比如我们设权重向量为 w = (1, 1):

内积表达式表示的是这样的直线:

权重向量 w 和这条直线是垂直的, 这就是“使权重向量成为法线向量的直线”在图形上的解释。

用向量之间的夹角 θ 和 cos 计算内积的表达式:

这是内积的另一个表达式。用这个表达式也没有问题。

表达式中 的 |w| 和 |x| 是向量的长,因此必定是正数。

所以要想使内积为 0,只能使 cos θ = 0。

要想使 cos θ = 0,也就意味着 θ = 90◦ 或 θ = 270◦ ,这两种情况也是直角。

最终找到与上面画的直线成直角的权重向量就行了:

当然,一开始并不存在这条直线,而是要通过训练找到权重向量,然后才能得到与这个向量垂直的直线,最后根据这条直线就可以对数据进行分类了。

3、感知机

具体要如何求出权重向量?

基本做法和回归时相同:将权重向量用作参数,创建更新表达式来 更新参数。接下来,要说明的就是被称为感知机(perceptron) 的模型。

感知机是接受多个输入后将每个值与 各自的权重相乘,最后输出总和的模型:

感知机是非常简单的模型,基本不会应用在实际的问题中, 但它是神经网络和深度学习的基础模型。

训练数据的准备

设表示宽的轴为 x1、表示高的轴为 x2,用 y 来 表示图像是横向还是纵向的,横向的值为 1、纵向的值为 −1。

判别函数:

这是根据内积的符号(正或负)来给出不同返回值的函数。

如: 与权重向量 w 的内积为负的向量 x 是 什么样的向量?

 |w| 和 |x| 必定为正数,所以决定 内积符号的是 cos θ:

在 90◦ <θ< 270◦ 的时候 cos θ 为负。

所以与权重向量 w 之间的夹角为 θ,在 90◦ <θ< 270◦ 范围内的所有向量都符合条件:

同样使内积为正的向量:

这样就 可以根据内积的正负来分割。

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

权重向量的更新表达式

这样定义权重向量的更新表达式:

更新表达式只有在判别函数分类失败的时候才会更新参数值。

如下图: 现在权重向量 w 和训练数据的向量 x(1) 二者的方向几乎相 反,w 和 x(1) 之间的夹角 θ 的范围是 90◦ <θ< 270◦ ,内积为负, 判别函数 fw(x(1)) 的分类结果为 −1,实际 y(1) 为 1。

说明分类失败,需要更新权重:

刚才x(1) 与权重向量分居直线两侧,现在它们在同 一侧。

刚才处理的是标签值 y = 1 的情况,而对于 y = −1 的情况,只是 更新表达式的向量加法变成了减法而已,做的事情是一样的。

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

4、线性可分

感知机非常简单又容易理解,但相应地,缺点也有很多。

最大的缺点就是它只能解决线性可分的问题。

之前提到的感知机也被称为简单感知机或单层感知机,真的是很弱的模型。不过,既然有单层感知机,那么就会有多层感知机。实际上多层感知机就是神经网络了。

5、逻辑回归

逻辑回归与感知机的方法不一样。

逻辑回归与感知机的不同之处在于,它是把分类作为概率来考虑的。

这里设横向的值为 1、纵向的值为 0。这个也和感知机的时候不一样了,纵向不是 −1 了。

只要是两个不同的值,用什么都可以。在学习感知机时之所以设置值为 1 和 −1,是因为这样会使参数更新表达式看起来更简洁, 而现在则是设置为 1 和 0 会更简洁。

sigmoid 函数

学习回归时定义过这样一个带参数的函数:

我们需要能够将未知数据分类为某个类别的函数 fθ(x):

这个函数的名字叫 sigmoid 函数,设 θTx 为横轴,fθ(x) 为纵轴:

θTx = 0 时 fθ(x)=0.5,以及 0 < fθ(x) < 1 是 sigmoid 函数的两 个特征。

因为 sigmoid 函数的取值范围是 0 < fθ(x) < 1,所以它可以作为概率来使用。

决策边界

把未知数据 x 是横向图像的概率作为 fθ(x):

这是在给出 x 数据时 y = 1,即图像为横向的概率。

应该是以 0.5 为阈值,然后根据 fθ(x) 的结果分类横向或纵向:

所以我们可以把上面的表达式改写:

下面像学习感知机时那样,设横轴为图像的宽(x1)、纵轴为图像的高(x2),并且画出图来考虑。

然后像学习回归时那样,先随便确定 θ 再具体地去考虑。 

比如当 θ 是这样的向量时,我们来画一下 θTx ⩾ 0 的图像:

这个不等式表示的范围也就是图像被分类为横向的范围了:

为纵向的范围:

也就是说,将 θTx = 0 这条直线作为边界线,就可以把这条线两侧的数据分类为横向和纵向了。

这样用于数据分类的直线称为决策边界。

实际应用时这个决策边界似乎不能正确地分类图像,这是因为我们决定参数时太随意了:

为了求得正确的参数 θ 而定义目标函数,进行微分,然后求参数的更新表达式。

这种算法就称为逻辑回归。

6、 似然函数

训练数据的标签 y 和 fθ(x)是什么样的关系会比较理想:

● y = 1 的时候,我们希望概率 P(y = 1|x) 是最大的 

● y = 0 的时候,我们希望概率 P(y = 0|x) 是最大的

这适用于全部的训练数据。对于一开始列举的那 6 个训练数据,我们期待的最大概率是这样

假定所有的训练数据都是互不影响、独立发生的,这种情况下整体的概率就可以用下面的联合概率来表示(同时发生的概率):

且联合概率的表达式是可以一般化的,写法如下:

(该联合乘法符号读作“派”)

接下来考虑一下使这个目标函数最大化的参数 θ。

回归的时候处理的是误差,所以要最小化,而现在考虑的是联合概率,我们希望概率尽可能大,所以要最大化。

这里的目标函数 L(θ) 也被称为似然,函数的名字 L 取自似 然的英文单词 Likelihood 的首字母。

它的意思是最近似的。我们可以认为似然函数 L(θ) 中,使其值最大的参数 θ 能够最近似地说明训练数据。

7、对数似然函数

直接对似然函数进行微分有点困难,在此之前要把函数变形。

首先它是联合概率。概率都是 1 以下的数,所以像联合概率这种 概率乘法的值会越来越小。

如果值太小,编程时会出现精度问题。另外还有一个,那就是乘法与加法相比,乘法的计算量要大得多。

解决方法:

只要取似然函数的对数就好了,像这样在等式两边加上 log 即可:

回归的时候是随便乘了个常数(1/2),这次随便取对数也没问题吗?

没问题的,因为 log 是单调递增函数:

单调递增函数是在 x1 < x2 时, f(x1) < f(x2) 的函数 f(x)。

现在考察的似然函数也是在 L(θ1) < L(θ2) 时,有 logL(θ1) < logL(θ2) 成立。

也就是说,使 L(θ) 最大化等价于使 logL(θ) 最大化。

把对数似然函数变形:

每一行的变形分别利用了下面这些特性:

● 第 2 行是 log(ab) = log a + log b 

● 第 3 行是 log ab = b log a 

● 第 4 行是 P(y(i) = 0|x(i) ) = 1 − P(y(i) = 1|x(i) ) 

似然函数的微分

总结一下就是逻辑回归将这个对数似然函数用作目标函数:

接下来对各个参数 θj 求微分:

把似然函数也换成这样的复合函数, 然后依次求微分:

log(v) 的微分是 1/v 。

不过对 log(1 − v) 微分时,要像这样通过复合函数来求。还要注意,这样做最后的表达式前面会有个负号:

微分结果是:

接下来是 v 对 θj 的微分:

sigmoid 函数的 微分是这样的:

求解:

v 对 z 微分:

z 对 θj 的微分:

得出:

最后代入各个结果:

接下来要做的就是从这个表达式导出参数更新表达式。

不过现在是以最大化为目标,所以必须按照与最小化时相反的方向移动参数。

也就是说,最小化时要按照与微分结果的符号相反的方向移动,而最大化时要与微分结果的符号同向移动:

为了与回归时的符号保持一致,也可以将表达式调整为下面这样:

注意,η 之前的符号和 ∑中的符号反转了。

8、 线性不可分

最后,我们将逻辑回归应用于线性不可分问题。

我们可以像学习多项式回归时那样,去增加次数, 向训练数据中加入 x1^2 :

假设 θ 是这样的向量,那么 θTx ⩾ 0 的图形是什么样的?

先代入:

移项后最终得到的表达式是 x2 ⩾ x1^2 ,将这个画成图:

之前的决策边界是直线,现在则是曲线了。

参数 θ 是随便定的,所以数据完全没有被正确地分类。

之后通过随意地增加次数,就可以得到复杂形状的决策边界了。 比如在 x1^2 之外再增加一个 x2^2,就会有圆形的决策边界。

在逻辑回归的参数更新中也可以使用随机梯度下降法。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据背景下基于联邦学习的小微企业信用风险评估研究

摘要&#xff1a; 小微企业信用风险评估难是制约其融资和发展的一个主要障碍。基于大数据的小微企业信用风险评估依然面临着单机构数据片面、跨机构数据共享难、模型不稳定等诸多挑战。针对相关问题和挑战&#xff0c;本项目拟在多主体所有权数据隐私保护与安全共享的背景下&am…

梳理Langchain-Chatchat-UI接口文档

在 Langchain-Chatchat v0.1.17 版本及以前是有前后端分离的 Vue 项目的&#xff0c;但是 v0.2.0 后就没有了。所以本文使用的是 Langchain-Chatchat v0.1.17 版本中的 Vue 项目。经过一番折腾终于将 Langchain-Chatchat v0.1.17 版本前端 Vue 接口和 Langchain-Chatchat v0.2.…

人大金仓数据库与mysql比较

简介 人大金仓数据库是基于 PostgreSQL 开发的。 SQL语言 语法 关键字 KES&#xff1a; MYSQL&#xff1a; 语句 *特性MYSQLKES字符串字面量单引号()或 双引号(")十六进制字面量0x5461626c65&#xff0c;X5461626c65/BIT字面量b1000001,0b1000001/Boolean字面量常…

数据加密、端口管控、行为审计、终端安全、整体方案解决提供商

PC端访问地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 以下是关于这几个概念的解释&#xff1a; 数据加密&#xff1a;这是一种通过加密算法和密钥将明文转换为密文&#xff0c;以及通过解密算法和解密密钥将密文恢复为明文…

生活常识-如何开社保证明(四川)

下载并打开天府市民云APP 注册后登陆 点击社保服务 点击社保证明 点击【四川省社会保险个人社保证明名(近24个月)】 点击下载 下载后点击【QQ发送给好友&#xff0c;然后发送给自己的电脑设备(我的电脑)】

设计模式之工厂设计模式【创造者模式】

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

国标GB28181对接的时候如何配置服务端口和本地端口

目 录 一、国标GB28181对接需要配置的端口等参数 二、GB28181服务器端口的配置&#xff1a;SIP服务器端口 三、GB28181设备测端口的配置&#xff1a;本地SIP端口 &#xff08;一&#xff09;本地SIP端口配置的意义 &#xff08;二&#xf…

香橙派5plus从ssd启动Ubuntu

官方接口图 我实际会用到的就几个接口&#xff0c;背面的话就一个M.2固态的位置&#xff1a; 其中WIFI模块的接口应该也可以插2230的固态&#xff0c;不过是pcie2.0的速度&#xff0c;背面的接口则是pcie3.0*4的速度&#xff0c;差距还是挺大的。 开始安装系统 准备工作 一张…

十四:爬虫-Redis基础

1、背景 随着互联网大数据时代的来临&#xff0c;传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力&#xff0c;来解决系统性能上的瓶颈。 2、redis是什么 Redis 全称 Remote Dictio…

TTS | NaturalSpeech语音合成论文详解及项目实现【正在更新中】

----------------------------------&#x1f50a; 语音合成 相关系列直达 &#x1f50a; ------------------------------------- ✨NaturalSpeech&#xff1a;正在更新中~ ✨NaturalSpeech2&#xff1a;TTS | NaturalSpeech2语音合成论文详解及项目实现 本文主要是 讲解了Nat…

高斯矩阵相乘

高斯分布的概率密度函数&#xff1a; 其本质问题可抽象为&#xff1a;已知两个独立高斯分布&#xff0c; N 1 ∼ ( u 1 , δ 1 2 ​ ) &#xff0c; N 2 ∼ ( u 2 , δ 2 2 ) N 1∼(u1 ,δ 1^2​ )&#xff0c;N 2 ∼ ( u 2 , δ 2^ 2 ) N1∼(u1,δ12​)&#xff0c;N2∼(u2,δ…

iOS问题记录 - iOS 17通过NSUserDefaults设置UserAgent无效(续)

文章目录 前言开发环境问题描述问题分析1. 准备源码2. 定位源码3. 对比源码4. 分析总结 解决方案补充内容1. UserAgent的组成2. UserAgent的设置优先级 最后 前言 在上篇文章中对该问题做了一些判断和猜测&#xff0c;并给出了解决方案。不过&#xff0c;美中不足的是没有进一…

基于策略模式和简单工厂模式实现zip、tar、rar、7z四种压缩文件格式的解压

推荐语 这篇技术文章深入探讨了基于策略模式和简单工厂模式实现四种常见压缩文件格式的解压方法。通过阅读该文章&#xff0c;你将了解到如何利用这两种设计模式来实现灵活、可扩展的解压功能&#xff0c;同时适应不同的压缩文件格式。如果你对设计模式和文件处理感兴趣或刚好…

elasticsearch系列六:索引重建

概述 我们再起初创建索引的时候由于数据量、业务增长量都并不大&#xff0c;常常不需要搞那么多分片或者说某些字段的类型随着业务的变化&#xff0c;已经不太满足未来需求了&#xff0c;再或者由于集群上面索引分布不均匀导致节点直接容量差异较大等等这些情况&#xff0c;此时…

ubuntu中PyCharm导入虚拟环境pytorch / TensorFlow

之前编辑pytorch框架的程序都是在jupyter notebook,虽然jupyter notebook采用交互式的方式很方便&#xff0c;有时候查看别人代码的时候&#xff0c;很不方便&#xff0c;所以就下载了Pycharm&#xff0c;这里我就不赘述如何系在pycharm和如何破解&#xff0c;希望能帮助到大家…

CRM客户关系管理系统

系统开发环境以及版本 操作系统&#xff1a; Windows_7集成开发工具&#xff1a; Eclipse EE_4.7编译环境&#xff1a;JDK_1.8Web服务器&#xff1a;Tomcat_9.0数据库&#xff1a;MySQL_5.7.23 系统框架 spring框架springmvc框架mybatis框架Logback日志框架安全验证框架maven框…

【unity学习笔记】捏人+眨眼效果+口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型&#xff08;.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。&#xff08;VRM-0.116.0_0f6c&#xff09; 3.将univrm导入到工程中&#xff08;assets&#xff09;。 三…

Hive实战:统计总分与平均分

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、创建Hive表&#xff0c;加载HDFS数据文件…

poi操作Excel给列设置下拉菜单(数据验证)

效果图&#xff1a; pom.xml文件增加依赖&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency> 12345Workbook实现类有三个&#xff1a;HSSFWork…

【银行测试】超细支付功能测试+测试点总结分析(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、支付功能怎么测…