机器学习——详解判别模型求解分类问题

news2024/11/15 5:37:27

目录

  • 逻辑回归
    • 判别模型(discriminative model)
      • 设计模型Function set
      • 设计函数选择最好的w和b
      • 更新参数w和b
    • 逻辑回归与线性回归对比
      • 逻辑回归为什么用交叉熵来找最优的参数而不用MAE或MSE
    • GM与DM区别
  • 多维分类——以三类别为例
    • GM 生成模型
    • DM 判别模型
  • 输入特征处理→深度学习

逻辑回归

视频链接
https://www.bilibili.com/video/BV1Wv411h7kN/?p=17&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=ef8c99c8c4165aea8f811dafa9772ecd

之前博客 一篇博客详解朴素贝叶斯解分类问题 讲到的是采用概率的方法求解w和b去解分类问题,叫做生成模型(Generative Model),除了这种方法外,还可以直接求解w和b,这种方法叫做判别模型(discriminative model)

判别模型(discriminative model)

判别模型的设计仍分为三步

设计模型Function set

f w , b = σ ( ∑ i w i x i + b ) , σ ( x ) = 1 1 + e − x f_{w,b}=\sigma(\sum _iw_ix_i+b),\sigma(x)=\frac 1 {1+e^{-x}} fw,b=σ(iwixi+b),σ(x)=1+ex1

加入sigmoid函数,会使得输出值在0~1之间

设计函数选择最好的w和b

这里采用了似然函数进行计算,似然函数的定义是所有训练数据根据其所属类别以及模型函数的预测乘积(对于Binary分类,若Function是定义的类别C1,则若数据属于C1则直接乘预测函数即可,若属于C2,则乘以(1-预测函数)),这样似然函数的最大值即对应最好的w,b

在这里插入图片描述
上述形式计算起来复杂度较高,可以利用ln函数将乘法转换为加法,化简过程如下:

在这里插入图片描述
在这里插入图片描述
l o s s = − ∑ i n [ y ′ i l n y i + ( 1 − y ′ i ) ( 1 − l n y i ) ] loss=-\sum _i ^n [y^{'i}lny^i+(1-y^{'i})(1-lny^i)] loss=in[yilnyi+(1yi)(1lnyi)]

更新参数w和b

更新参数仍采用gradient descent方法

以更新w为例,求导过程以及更新参数表达式如下:
在这里插入图片描述

w n e w = w o l d − η [ − ∑ i ( y i − f w , b ( x i ) ) x j i ] w_{new}=w_{old}-\eta [-\sum _i(y^i-f_{w,b}(x^i))x_j^i] wnew=woldη[i(yifw,b(xi))xji]

逻辑回归与线性回归对比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fG1Z41IR-1671293558020)(image/image_sj9MN0smfA.png)]

逻辑回归为什么用交叉熵来找最优的参数而不用MAE或MSE

在这里插入图片描述
在这里插入图片描述

上图为交叉熵和MSE的loss三维变化图,其中黑色为交叉熵,红色为MSE。可以观察到MSE的曲面整体较为平滑,随机选取一个点作为开始值,若离实际相差较大,但因曲面平缓,偏导斜率较小,更新参数会比较慢。而交叉熵曲面较为曲折,对于有与实际相差较大的地方,斜率也大,参数更新会比较快。

GM与DM区别

在这里插入图片描述

GM全称是生成模型 Generative
Model
,其主要是利用后验概率去求解分类问题即求解P(C1|x),具体是先假设样本是采取某种概率分布从而表示出P(x|C1),紧接着利用条件概率公式即可计算出P(C1|x)。

DM全称是判别模型Discriminative
Model
,这个方法是并没有做任何的假设直接求解P(C1|x),定义其模型并按照正常的线性回归三步骤去解。

两种方法模型,最后都可以求解出sigmoid(wx+b) 的形式,但参数一般不同。
一般而言,随着数据集的增加,DM比GM的准确率更好。

以下图为例,采用条件概率 GM计算测试集属于哪一个类别时,会与想象情况不太一样。

在这里插入图片描述

在这里插入图片描述

多维分类——以三类别为例

GM 生成模型

每一个类别都有自己的一个根据分布确定的生成函数,分布函数根据自己类别的样本数据的均值确定μ,根据所有类别的样本数据的各自的Σ
结合每个类别样本在所有样本中的比率确定最终的Σ。
根据确定的生成函数以及条件概率公式确定出选择一个样本它属于这个类的后验概率函数,若该函数值
大于0.5则可认为是该类别,否则认为不是该类别。 将测试样本作为每一个类别的后验概率函数输入,即可得到该测试样本属于每一个类别的概率。

DM 判别模型

主要与二分类的区别是,最后的输出采用softmax函数。有n个类别,就有n个w向量和b,有n个z方程,输出n维向量,向量值中最大的即为对应的类别
在这里插入图片描述

这样,三步骤就变为下图.注意样本特征的定义,样本属于哪个类别则对应的特征向量当前值为1其余均为0
在这里插入图片描述

输入特征处理→深度学习

可能会有一些输入特征难以用一条直线去划分类别,这时我们就需要对输入特征做一些处理,这个处理在深度学习中即叫做隐含层。通过加入多层的sigmoid隐含层(多个逻辑回归)处理,使得输入值变为0~1之间,最后再用一个sofmax层输出即可得到正确的输出向量。此时这个网络就叫做神经网络,也就叫做深度学习
在这里插入图片描述
在这里插入图片描述

交叉熵的loss函数 当为二分类时,交叉熵loss函数的公式是: l o s s = − ∑ i n [ y ′ i l n y i + ( 1 − y ′ i ) ( 1 − l n y i ) ] loss=-\sum _i ^n [y^{'i}lny^i+(1-y^{'i})(1-lny^i)] loss=in[yilnyi+(1yi)(1lnyi)] 当为多分类时,交叉熵loss函数的公式是: C ( y , y ′ ) = − ∑ i = 1 n ( y ′ i l n y i ) , n 为共多少个类别且 n > 2 C(y,y')=- \sum _{i=1} ^n(y'^ilny^i),n为共多少个类别且n>2 C(y,y)=i=1n(yilnyi),n为共多少个类别且n>2

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

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

相关文章

财务人员学Python有用吗?

财务人员学Python有用吗?作为财务人员每天面对大量的数据,财务人员用Python做小工具,录单审凭证不到1分钟就搞定了。把更多的时间花在财务分析上,更好更快地完成工作。 Python作为一门编程语言,属于IT技术自动化技术、…

Python:遗传算法最优路径

Hello,大家好!读研前写过一篇遗传算法的代码,比较简单,算是个入门,当时就有想用它来解决最优路径的问题,上算法导论课时碰巧有听到同学有分享过,但由于自己研究的方向不是这块,就没有…

【LeetCode每日一题】——968.监控二叉树

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 树 二【题目难度】 困难 三【题目编号】 968.监控二叉树 四【题目描述】 给定一个二叉树&…

入门:从虚拟机到容器

从虚拟机到容器 前面我们成功安装了Docker学习环境,以及浅尝了一下Docker为我们带来的应用快速部署。在正式进入学习之前,我们就先从Docker的发展开始说起。 在Docker出现之前,虚拟化技术可以说是占据了主导地位。首先我们来谈谈为什么会出现…

Adobe Pro DC 2022 软件详细安装教程

一、软件下载 网盘链接:Adobe Pro DC 2022 提取码:ib19 二、详细安装教程 1、解压安装包,右键安装程序Set-up,点击以管理员身份运行 2、更改软件安装位置,建议安装至除C盘外的其他盘(如不需更改直接点击【继续】即可…

自学编程的朋友,我想给你们这 5 个建议

0基础学编程,我想给你这 5 个建议 很多人都想转行互联网,不管是出于兴趣、行业前景还是薪资的考虑,想要转行互联网的人们必须要面对一个问题,那就是如何自学编程,更确切的说,是如何0基础学编程。 其实我基…

小师弟:2022广东省工科赛分享(越障排爆省一,完整项目)

目录日常唠嗑前言一、实验效果二、赛题分析及方案1、赛题内容:初赛:决赛:2、实施方案:三、材料选择四、程序设计程序思路PID:越障部分:颜色识别部分:五、竞赛心得六、工程获取日常唠嗑 小师弟说…

J-002 Jetson电路设计之电源设计--NANO XAVIER NX

Jetson电源设计1 电源说明1.1 电源和系统引脚描述1.2 电源控制框图详情2 上电的时许2.1 框图分析2.2 上电时序3 GND引脚1 电源说明 Jetson NANO和XAVIER NX核心板的电源为DC-5V。 1.1 电源和系统引脚描述 PIN名称描述方向类型251-260VDD_IN主电源输入5.0V235PMIC_BBATRTC时钟…

深入剖析Linux RCU原理(二)-渐入佳境

说明: Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio 1. 概述 我会假设你已经看过了深入剖析Linux RCU原理(一)初窥门径 本文将进一步去探索下…

设计模式4 - 行为型模式

23种设计模式分析与见解开篇、UML、软件设计原则https://blog.csdn.net/lili40342/article/details/128358435创建型模式https://blog.csdn.net/lili40342/article/details/128358392结构型模式https://blog.csdn.net/lili40342/article/details/128358313行为型模式https://bl…

【GRU时序预测】基于matlab卷积神经网络结合门控循环单元CNN-GRU时间序列预测【含Matlab源码 2287期】

⛄一、CNN-GRU数据预测 1 理论基础 1.1 CNN算法 负荷序列数据为一维数据,用一维卷积核对数据进行卷积处理,以获取数据的特征。 现设定卷积核的维度为3,移动步长为1,对输入数据进行卷积,以获得特征图图谱,即…

转行AI产品经理的学习过程

学习内容及思考 引言 当别人问你为什么转行AI产品经理? 你回答因为自己喜欢。 这是一句多么空洞的话呀,苍白又无力,那你为什么喜欢呢?你了解他么?仅凭自己这一腔热情,一句轻描淡写的我喜欢,是…

行为树 --- [7] BehaviorTree.CPP 4.x版本的编译及使用

根据BehaviorTree.CPP的官方介绍,3.x版本已经不再维护了,建议使用4.x版本, 4.x版本和3.x版本的区别可以看这里 — https://www.behaviortree.dev/migration 本文介绍4.x版本的编译及使用,环境是Debian 10.5,编译器是…

笔试强训(四十七)

目录一、选择题二、编程题2.1 合唱团2.1.1 题目2.1.2 题解2.2 马戏团2.2.1 题目2.2.2 题解一、选择题 (1)对于IP地址130.63.160.2,MASK为255.255.255.0,子网号为(B) A.160.2 B.160 C.63.160 D.130.63.160 …

学Python好找工作吗?需要满足Python岗位哪些要求?

学Python好找工作吗?需要满足哪些要求?随着Python的火爆,国内Python的岗位也随之增多,只要技术能力强项目经验充足,找到工作不是问题。即使是一些二线城市,Python的薪资待遇也比较好。 一、学Python好找工作…

学习编程的中小学生越来越多,是盲目追风,还是确有其用?!

首先,中小学生为什么要学习编程?未来社会,随姜信息技术和人工智能的发展,越来越多行业的工作离不开编程。美国前总统奥巴马就呼吁:“如果我们想让美国保持地位,就需要年轻代的美国人掌握这种(编程)工具和技术,它将改变我们所有的…

最简单的canvas基础+实践,确定不进来看看嘛

前言 怎么突然提到 canvas 呢❓其实是因为工作中有一个小需求,就是给特定的区域做水印😤,思来想去😎就选择使用 canvas 去做,简单效果如下: 实现思路🤷‍♂️:封装一个全局指令&am…

新装的Ubuntu无法连接有线(无有线标志)

解决方法 1、lspci命令(查看网卡型号) labhlab:~$ lspci 00:00.0 Host bridge: Intel Corporation Device 4660 (rev 02) 00:01.0 PCI bridge: Intel Corporation Device 460d (rev 02) 00:06.0 PCI bridge: Intel Corporation Device 464d (rev 02) 0…

【图像增强】局部对比度增强的CLAHE算法直方图增强【含Matlab源码 1341期】

⛄一、简介 基于matlab局部对比度增强的CLAHE算法直方图增强 ⛄二、部分源代码 %% tic %% 清空工作区与变量 clc; clear; for image_number1:1 imageNamestrcat(num2str(image_number),‘.jpg’); img imread(imageName); %% 在LAB空间进行去雾 % RGB转LAB transform mak…

【数据结构】堆(一)——堆的实现

作者:一个喜欢猫咪的的程序员 专栏:《数据结构》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 堆的概念及结构: 堆的实现思路:(我…