白话机器学习的数学-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://xiahunao.cn/news/2661721.html

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

相关文章

2024年第三届服务机器人国际会议(ICoSR 2024) | Ei、Scopus双检索

会议简介 Brief Introduction 2024年第三届服务机器人国际会议(ICoSR 2024) 会议时间&#xff1a;2024年7月26日-28日 召开地点&#xff1a;中国杭州 大会官网&#xff1a;www.iwosr.org 进入新时代&#xff0c;科技更新迭代快速发展&#xff0c;机器人不仅变得更加节能&#x…

创新型产品说明书模板的设计与实践,我悟了!

在当今这个快节奏、高效率的时代&#xff0c;产品说明书已经不再仅仅是一纸简单的使用指南。它既是产品的重要组成部分&#xff0c;也是品牌形象和用户体验的关键环节。然而&#xff0c;传统的产品说明书制作方式往往效率低下&#xff0c;管理混乱&#xff0c;难以满足市场的多…

vue3+ts打开echarts的正确方式

实例项目使用 vite5 vue3 ts&#xff0c;项目地址 vite-vue3-charts&#xff0c;预览地址 https://weizwz.com/vite-vue3-charts 准备工作 1. 注册为百度地图开发者 官网地址&#xff0c;然后在 应用管理 -> 我的应用 里&#xff0c;创建应用&#xff0c;创建好后复制 AK …

线上发布稳定性方案介绍

目录 一、方案说明 二、线上发布问题描述 2.1 无损上下线背景说明 2.1.1 服务⽆法及时下线 2.1.2 初始化慢 2.1.3 注册太早 2.1.4 发布态与运⾏态未对⻬ 三、问题解决方案 3.1 无损下线方案 3.1.1 什么是无损下线 3.1.2 传统解决方式 3.1.3 云原生场景解决方案 3.1…

Net6 Core webApi发布到IIS

Net6 Core Api发布到IIS不同于webapi&#xff0c;依赖框架不同&#xff0c;配置也移至项目内Program.cs 一、发布到指定文件夹和IIS&#xff0c;不过注意IIS应用程序池选择的是 “无托管代码“ 在IIS管理器中点击浏览&#xff0c;访问接口路径报500.19&#xff0c;原因是所依赖…

HALCON报错#2021:System clock has been set back 解决方案

如果操作系统修改过时间&#xff0c;再更新到正常的时间后&#xff0c;打开halcon可能会报错#2021&#xff1a;System clock has been set back. 解决方案&#xff1a; 1、联网同步Windows 系统时间。 2、检查以下目录中是否有超过当前时间的文件&#xff08;删除&#xff09…

o2o生活通全开源尊享版+多城市切换+企业付款+交友IM+平台快报

搭建教程 1.把 pigo2ov282.sql 文件里面的网址 test.souho.net 全部批量替换为你的自己的 2.使用 phpmyadmin 导入 pigo2ov282.sql 到你的数据库&#xff08;直接访问/phpmyadmin 即可&#xff09; 3.修改数据库文件/conf/db.php 里的数据库连接信息&#xff08;请勿使用记事本…

最新最全智能科学与技术专业毕业设计选题精华汇总-持续更新中

文章目录 0 简介1 如何选题2 最新智能科学与技术毕设选题3 最后 0 简介 Hi&#xff0c;大家好&#xff0c;随着毕业季的临近&#xff0c;许多同学开始向学长咨询关于选题和开题的问题。在这里&#xff0c;学长分享一些关于智能科学与技术专业毕业设计选题的内容。 以下为学长…

反转链表、链表的中间结点、合并两个有序链表(leetcode 一题多解)

一、反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路一&#xff1a;翻转单链表指针方向 这里解释一下三个指针的作用&#xff1a; n1&#xff1…

Emu2:37B参数开创多模态生成新篇章

引言 多模态任务在人工智能领域一直是极具挑战性的「技术高地」。智源研究院最近开源发布的新一代多模态基础模型Emu2&#xff0c;在这一领域取得了突破性进展。Emu2以其庞大的37B 参数规模和强大的多模态生成能力&#xff0c;为AI的多模态理解和生成开启了新的篇章。 模型概…

Python基础进阶:9个易错知识点

你好&#xff0c;我是kelly。 kelly根据自己平时工作&#xff0c;总结9个易错知识点&#xff0c;希望对大家有用。 知识点1&#xff1a;is 和 is比较是两个变量地址是否相同&#xff0c;比较是两个变量的值&#xff08;内容&#xff09;是否相同。 示例&#xff1a; In [92…

全方面了解vcruntime140_1.dll的解决方法,多种vcruntime140_1.dll丢失的方法

在日常使用电脑时&#xff0c;我们常常遇到各种各样的问题。其中之一就是丢失vcruntime140_1.dll文件&#xff0c;这是一个重要的系统文件&#xff0c;会影响到电脑的正常运行。今天小编就来给大家详细的说说这一方面的咨询&#xff0c;教会大家多种的丢失vcruntime140_1.dll的…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《适应储能参与的调频辅助服务市场机制设计及调度策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》 这个标题涉及到储能技术在电力系统中参与调频辅助服务市场的机制设计和调度策略。下面对标题中的关键术语进行解读&#xff1a; 储能参与的调频辅助服务&am…

Cocos3D项目中fbx模型转gITF模型和glb模型

1.npm安装&#xff1a;先按照npm哈 npm install --save fbx2gltf -g 2. 到指定目录 cd C:\Program Files\nodejs\node_global\node_modules\fbx2gltf\bin\Windows_NT cmd命令行界面进入node_modules\fbx2gltf文件下的bin文件&#xff0c;然后根据平台选择进入相应目录&#…

元旦快到了,分享一些元旦祝福模板

元旦-王安石 爆竹声中一岁除&#xff0c;春风送暖入屠苏。 千门万户曈曈日&#xff0c;总把新桃换旧符。 元旦其实也是中国的传统节日了&#xff0c;不过元旦是由中国的春节演化而来的。传统的元旦时间是正月初一&#xff0c;从王安石的诗也能看的出来&#xff0c;其实描述的…

四川思维跳动商务信息咨询有限公司抖店开店可信吗

在当今的电商时代&#xff0c;越来越多的人选择在抖音平台上开设店铺&#xff0c;实现自己的创业梦想。然而&#xff0c;对于许多新手来说&#xff0c;如何顺利地在抖音上开店成为了他们面临的一大难题。四川思维跳动商务信息咨询有限公司作为一家专业的抖店咨询服务提供商&…

基于elemen二次封装弹窗组件

效果&#xff1a; 一、自定义内容类型弹窗 <!-- title&#xff1a;对话框的标题confirmLoading&#xff1a;当前是否处于提交中titleCenter&#xff1a;对话框标题居中方式footerCenter&#xff1a;底部按钮的对其方式visible&#xff1a;是否显示弹窗width&#xff1a;设置…

web自动化上传文件

1&#xff0c;web 自动化文件上传不要太简单 熟悉 web 自动化测试的大佬应该都懂&#xff0c;当采用 js 调用原生控件进行文件上传的时候&#xff0c;最常用的是使用 pywin32 等系统交互库。 当看到 pywin32 那丑陋的 api 封装只能爆粗口。就为了输入一个文件地址&#xff0c;…

MySQL HeatWave Lakehouse

在今年的Oracle Cloud World,Oracle宣布将发布一款数据库湖仓产品——MySQL HeatWave Lakehouse用以解决存储在数据库之外的文件数据等非结构化数据的查询和处理。 MySQL HeatWave是一个完全管理的数据库服务,将事务处理、分析处理和机器学习服务合并到一个MySQL数据库的云服务…

Linux中账号和权限管理

目录 一.用户账号和组账号&#xff1a; 1.用户账号类型&#xff1a; 2.组账号类型&#xff1a; 3.系统区别用户的方法 &#xff1a; 4.用户账号文件&#xff1a; 二.Linux中账户相关命令&#xff1a; 1.useradd&#xff1a; 2.passwd&#xff1a; 3.usermod&#xff1a…