深度学习入门到实践:相关基础概述

news/2024/4/25 1:03:25/文章来源:https://blog.csdn.net/qq_34740277/article/details/130331057

绪论

    深度学习(Deep Learning)是近年来发展十分迅速的研究领域,并且在人工智能的很多子领域都取得了巨大的成功。从根源来讲,深度学习是机器学习的一个分支,是指一类问题以及解决这类问题的方法。
    深度学习问题是一个机器学习问题,指从有限样例中通过算法总结出一般性的规律,并可以应用到新的未知数据上。比如,我们可以从一些历史病例的集合中总结出症状和疾病之间的规律.这样当有新的病人时,我们可以利用总结出来的规律,来判断这个病人得了什么疾病。

机器学习的三个基本要素

    机器学习是从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并可以将总结出来的规律推广应用到未观测样本上。机器学习方法可以粗略地分为三个基本要素:模型、学习准则、优化算法

  1. 模型
        对于一个机器学习任务,首先要确定其输入空间𝒳 和输出空间𝒴。不同机器学习任务的主要区别在于输出空间不同。在二分类问题中𝒴 = {+1, −1},在𝐶 分类问题中𝒴 = {1, 2, ⋯ , 𝐶},而在回归问题中𝒴 = ℝ。
        输入空间𝒳 和输出空间𝒴 构成了一个样本空间。对于样本空间中的样本(𝒙, 𝑦) ∈ 𝒳 × 𝒴,假定𝒙 和𝑦 之间的关系可以通过一个未知的真实映射函数𝑦 =𝑔(𝒙) 来描述.机器学习的目标是找到一个模型来近映射函数𝑔 ∶ 𝒳 → 𝒴。似真实映射函数𝑔(𝒙) 。
        假设空间ℱ 通常为一个参数化的函数族:
ℱ = {𝑓(𝒙; 𝜃)|𝜃 ∈ ℝ 𝐷}
    其中𝑓(𝒙; 𝜃) 是参数为𝜃 的函数,也称为模型,𝐷 为参数的数量.
  1. 学习准则
        令训练集𝒟 = {(𝒙(𝑛), 𝑦(𝑛))}是由𝑁个独立同分布的(Independent and Identically Distributed,IID)样本组成,即每个样本(𝒙, 𝑦) ∈ 𝒳 × 𝒴 是从𝒳 和𝒴 的联合空间中按照某个未知分布𝑝𝑟(𝒙, 𝑦)独立地随机产生的。这里要求样本分布𝑝𝑟(𝒙, 𝑦)必须是固定的(虽然可以是未知的),不会随时间而变化。如果𝑝𝑟(𝒙, 𝑦)本身可变的话,就无法通过这些数据进行学习。
        一个好的模型𝑓(𝒙, 𝜃∗) 应该在所有(𝒙, 𝑦) 的可能取值上都与真实映射函数𝑦 = 𝑔(𝒙) 一致,即

    |𝑓(𝒙, 𝜃∗) − 𝑦| < 𝜖, ∀(𝒙, 𝑦) ∈ 𝒳 × 𝒴,

        其中𝜖是一个很小的正数。
    2.1 损失函数
        损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异。下面介绍几种常用的损失函数。
    0-1 损失函数
        最直观的损失函数是模型在训练集上的错误率,即0-1 损失函数。
    在这里插入图片描述
        其中𝐼(⋅) 是指示函数。
        虽然0-1 损失函数能够客观地评价模型的好坏,但其缺点是数学性质不是很好:不连续且导数为0,难以优化。因此经常用连续可微的损失函数替代。
    平方损失函数
        平方损失函数(Quadratic Loss Function)经常用在预测标签𝑦为实数值的任务中,定义为
    在这里插入图片描述
        平方损失函数一般不适用于分类问题。
    交叉熵损失函数
        交叉熵损失函数(Cross-Entropy Loss Function)一般用于分类问题.假设样本的标签𝑦 ∈ {1, ⋯ , 𝐶} 为离散的类别,模型的输出为类别标签的条件概率分布,即
    在这里插入图片描述
        并满足
    在这里插入图片描述
        我们可以用一个𝐶 维的one-hot 向量𝒚 来表示样本标签.假设样本的标签为𝑘,那么标签向量𝒚 只有第𝑘 维的值为1,其余元素的值都为0.标签向量𝒚 可以看作样本标签的真实条件概率分布𝑝𝑟(𝑦|𝒙),),即第𝑐 维(记为𝑦𝑐,1 ≤ 𝑐 ≤ 𝐶)是类别为𝑐 的真实条件概率.假设样本的类别为𝑘,那么它属于第𝑘 类的概率为1,属于其他类的概率为0。
        对于两个概率分布,一般可以用交叉熵来衡量它们的差异.标签的真实分布𝒚 和模型预测分布𝑓(𝒙; 𝜃) 之间的交叉熵为
    在这里插入图片描述
        比如对于三分类问题,一个样本的标签向量为𝒚 = [0, 0, 1]T,模型预测的标签分布为𝑓(𝒙; 𝜃) = [0.3, 0.3, 0.4]T,则它们的交叉熵为−(0 × log(0.3) + 0 ×log(0.3) + 1 × log(0.4)) = − log(0.4).
        因为𝒚 为one-hot 向量,上式也可以写为
    在这里插入图片描述
        其中𝑓𝑦(𝒙; 𝜃) 可以看作真实类别𝑦 的似然函数.因此,交叉熵损失函数也就是负对数似然函数(Negative Log-Likelihood)。

  2. 优化算法
        在确定了训练集𝒟、假设空间ℱ 以及学习准则后,如何找到最优的模型𝑓(𝒙, 𝜃∗) 就成了一个最优化(Optimization)问题.机器学习的训练过程其实就是最优化问题的求解过程。
    参数与超参数
        在机器学习中,优化又可以分为参数优化和超参数优化.模型𝑓(𝒙; 𝜃) 中的𝜃 称为模型的参数,可以通过优化算法进行学习.除了可学习的参数𝜃 之外,还有一类参数是用来定义模型结构或优化策略的,这类参数叫作超参数(Hyper-Parameter)。
        常见的超参数包括:聚类算法中的类别个数、梯度下降法中的步长、正则化分布的参数。项的系数、神经网络的层数、支持向量机中的核函数等。超参数的选取一般都是组合优化问题,很难通过优化算法来自动学习。因此,超参数优化是机器学习的一个经验性很强的技术,通常是按照人的经验设定,或者通过搜索的方法对一组超参数组合进行不断试错调整。
    3.1 梯度下降法
        为了充分利用凸优化中一些高效、成熟的优化方法, 比如共轭梯度、拟牛顿法等,很多机器学习方法都倾向于选择合适的模型和损失函数,以构造一个凸函数作为优化目标。但也有很多模型(比如神经网络)的优化目标是非凸的,只能退而求其次找到局部最优解。
        在机器学习中,最简单、常用的优化算法就是梯度下降法,即首先初始化参数𝜃0,然后按下面的迭代公式来计算训练集𝒟 上风险函数的最小值:
    在这里插入图片描述
        其中𝜃𝑡 为第𝑡 次迭代时的参数值,𝛼 为搜索步长.在机器学习中,𝛼 一般称为学习率(Learning Rate)。
    3.2 提前停止
        针对梯度下降的优化算法,除了加正则化项之外,还可以通过提前停止来防止过拟合。
        在梯度下降训练的过程中,由于过拟合的原因,在训练样本上收敛的参数,并不一定在测试集上最优。因此,除了训练集和测试集之外,有时也会使用一个验证集(Validation Set)来进行模型选择,测试模型在验证集上是否最优。在每次迭代时,把新得到的模型𝑓(𝒙; 𝜃)在验证集上进行测试,并计算错误率。如果在验证集上的错误率不再下降,就停止迭代.这种策略叫提前停止(Early Stop).如果没有验证集,可以在训练集上划分出一个小比例的子集作为验证集.下图给出了提前停止的示例。
    在这里插入图片描述
    3.3 随机梯度下降法
        在梯度下降法中,目标函数是整个训练集上的风险函数,这种方式称为批量梯度下降法(Batch Gradient Descent,BGD).批量梯度下降法在每次迭代时需要计算每个样本上损失函数的梯度并求和.当训练集中的样本数量𝑁 很大时,空间复杂度比较高,每次迭代的计算开销也很大。
        在机器学习中,我们假设每个样本都是独立同分布地从真实数据分布中随机抽取出来的,真正的优化目标是期望风险最小.批量梯度下降法相当于是从真实数据分布中采集𝑁 个样本,并由它们计算出来的经验风险的梯度来近似期望风险的梯度.为了减少每次迭代的计算复杂度,我们也可以在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数,即随机梯度下降法(Stochastic Gradient Descent,SGD)。当经过足够次数的迭代时,也可以收敛到局部最优解[Nemirovski et al., 2009]。

机器学习算法的类型

    机器学习算法可以按照不同的标准来进行分类.比如按函数𝑓(𝒙; 𝜃) 的不同,机器学习算法可以分为线性模型和非线性模型;按照学习准则的不同,机器学习算法也可以分为统计方法和非统计方法。
    但一般来说,我们会按照训练样本提供的信息以及反馈方式的不同,将机器学习算法分为以下几类:
监督学习
    如果机器学习的目标是建模样本的特征𝒙 和标签𝑦 之间的关系:𝑦 = 𝑓(𝒙; 𝜃) 或𝑝(𝑦|𝒙; 𝜃),并且训练集中每个样本都有标签,那么这类机器学习称为监督学习(Supervised Learning)。根据标签类型的不同,监督学习又可以分为回归问题、分类问题和结构化学习问题。
    (1) 回归(Regression)问题中的标签𝑦 是连续值(实数或连续整数),𝑓(𝒙; 𝜃) 的输出也是连续值。
    (2) 分类(Classification)问题中的标签𝑦 是离散的类别(符号)。在分类问题中,学习到的模型也称为分类器(Classifier)。分类问题根据其类别数量又可分为二分类(Binary Classification)和多分类(Multi-class Classification)问题。
    (3) 结构化学习(Structured Learning)问题是一种特殊的分类问题。在结构化学习中,标签𝒚 通常是结构化的对象,比如序列、树或图等。由于结构化学习的输出空间比较大,因此我们一般定义一个联合特征空间,将𝒙, 𝒚 映射为该空间中的联合特征向量𝜙(𝒙, 𝒚),预测模型可以写为
在这里插入图片描述     其中Gen(𝒙) 表示输入𝒙 的所有可能的输出目标集合.计算arg max 的过程也称为解码(Decoding)过程,一般通过动态规划的方法来计算。
无监督学习
    无监督学习(Unsupervised Learning,UL)是指从不包含目标标签的训练样本中自动学习到一些有价值的信息。典型的无监督学习问题有聚类、密度估计、特征学习、降维等。
强化学习
    强化学习强化学习Reinforcement Learning,RL)是一类通过交互来学习的机器学习算法.在强化学习中,智能体根据环境的状态做出一个动作,并得到即
时或延时的奖励.智能体在和环境的交互中不断学习并调整策略,以取得最大化的期望总回报。
    监督学习需要每个样本都有标签,而无监督学习则不需要标签。一般而言,监督学习通常需要大量的有标签数据集,这些数据集一般都需要由人工进行标
注,成本很高。因此,也出现了很多弱监督学习(Weakly Supervised Learning)和半监督学习(Semi-Supervised Learning,SSL)的方法,希望从大规模的无标注数据中充分挖掘有用的信息,降低对标注样本数量的要求。强化学习和监督学习的不同在于,强化学习不需要显式地以“输入/输出对”的方式给出训练样本,是一种在线的学习机制。
    下图给出了三种机器学习类型的比较。在这里插入图片描述

评价指标

    为了衡量一个机器学习模型的好坏,需要给定一个测试集,用模型对测试集中的每一个样本进行预测,并根据预测结果计算评价分数。
    对于分类问题,常见的评价标准有准确率、精确率、召回率和F 值等.给定测试集𝒯 ,假设标签𝑦(𝑛) ∈ {1, ⋯ , 𝐶},用学习好的模型𝑓(𝒙; 𝜃∗)对测试集中的每一个样本进行预测。
准确率
    最常用的评价指标为准确率(Accuracy):
在这里插入图片描述
    其中𝐼(⋅) 为指示函数。
错误率
    和准确率相对应的就是错误率(Error Rate):
在这里插入图片描述
精确率和召回率
    准确率是所有类别整体性能的平均,如果希望对每个类都进行性能估计,就需要计算精确率(Precision)和召回率(Recall)。精确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,在机器学习的评价中也被大量使用。
    对于类别𝑐 来说,模型在测试集上的结果可以分为以下四种情况:
    (1) 真正例(True Positive TP):一个样本的真实类别为𝑐 并且模型正确地预测为类别𝑐.这类样本数量记为
在这里插入图片描述
    (2) 假负例(False Negative,FN):一个样本的真实类别为𝑐,模型错误地预测为其他类。这类样本数量记为
在这里插入图片描述
    (3) 假正例(False Positive,FP):一个样本的真实类别为其他类,模型错误地预测为类别𝑐.这类样本数量记为
在这里插入图片描述
    (4) 真负例(True Negative,TN):一个样本的真实类别为其他类,模型也预测为其他类.这类样本数量记为𝑇𝑁,对于类别𝑐 来说,这种情况一般不需要关注。
    这四种情况的关系可以用如下所示的混淆矩阵(Confusion Matrix)来表示。
在这里插入图片描述
    根据上面的定义,我们可以进一步定义查准率、查全率和F值。
    精确率(Precision),也叫精度或查准率,类别𝑐 的查准率是所有预测为类别𝑐 的样本中预测正确的比例:
在这里插入图片描述
    召回率(Recall),也叫查全率,类别𝑐 的查全率是所有真实标签为类别𝑐 的样本中预测正确的比例:
在这里插入图片描述
    F 值(F Measure)是一个综合指标,为精确率和召回率的调和平均:
在这里插入图片描述
    其中𝛽 用于平衡精确率和召回率的重要性,一般取值为1.𝛽 = 1 时的F 值称为F1值,是精确率和召回率的调和平均。
宏平均和微平均
    宏平均和微平均
    为了计算分类算法在所有类别上的总体精确率、召回率和F1值,经常使用两种平均方法,分别称为宏平均(Macro Average)和微平均(Micro Average)。
    宏平均是每一类的性能指标的算术平均值:
在这里插入图片描述
    微平均是每一个样本的性能指标的算术平均值.对于单个样本而言,它的精确率和召回率是相同的(要么都是1,要么都是0)。因此精确率的微平均和召回率的微平均是相同的。同理,F1 值的微平均指标是相同的。当不同类别的样本数量不均衡时,使用宏平均会比微平均更合理些.宏平均会更关注小类别上的评价指标。
    在实际应用中,我们也可以通过调整分类模型的阈值来进行更全面的评价, 比如AUC(Area Under Curve)、ROC(Receiver Operating Characteristic)曲线、PR(Precision-Recall)曲线等.此外,很多任务还有自己专门的评价方式,比如TopN 准确率。

    交叉验证(Cross-Validation)是一种比较好的衡量机器学习模型的统计分析方法,可以有效避免划分训练集和测试集时的随机性对评价结果造成的影响。我们可以把原始数据集平均分为𝐾组不重复的子集,每次选𝐾 − 1组子集作为训练集,剩下的一组子集作为验证集。这样可以进行𝐾 次试验并得到𝐾 个模型,将这𝐾 个模型在各自验证集上的错误率的平均作为分类器的评价。

总结

    本章简单地介绍了机器学习的基础知识,并为后面介绍的神经网络进行一些简单的铺垫.机器学习算法虽然种类繁多,但其中三个基本的要素为:模型、学习准则、优化算法.大部分的机器学习算法都可以看作这三个基本要素的不同组合.相同的模型也可以有不同的学习算法.比如线性分类模型有感知器、Logistic回归和支持向量机,它们之间的差异在于使用了不同的学习准则和优化算法。

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

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

相关文章

halcon灰度积分投影/垂直积分投影

简介:关于灰度投影积分可以用到的场合很多,例如分割字符,分割尺子上的刻度等,适用于有规律的变化这些内容的检测。本文复现了论文《基于深度学习和灰度纹理特征的铁路接触网绝缘子状态检测》中灰度积分投影实现了对绝缘子缺陷位置的检测。见(图1)灰度积分垂直方向投影获得…

AI智能智能课程第四讲 -数据库领域专家

使用chatGPT让你成为数据库领域专家 作业 现在要测试电商的下单功能&#xff1a;测试员张三在公司的电商平台上下了几个单&#xff0c;现在需要验证&#xff1a;张三这个客户下单的所有订单信息&#xff0c;包含订单编号&#xff0c;商品名称&#xff0c;商品价格&#xff0c;…

分支和循环语句(2)

文章目录 3.2 for循环3.2.1 for语句的语法3.2.2 for循环中的break和continue3.2.3 for语句的循环控制变量3.2.4 一些for循环的变种3.2.5 一道笔试题 3.3 do while循环3.3.1 do语句的语法3.3.2 do语句的特点3.3.3 do while循环中的break和continue 3.4 练习3.4.1 计算 n的阶乘3.…

Compiler- 尾调用

我们还是用例子来引入本次要探讨的问题--尾调用 #include <stdio.h>int fib(int a) {return a < 2 ? 1 : fib(a - 1) fib(a - 2); }int main() {int n,result;scanf("%d",&n);result fib(n);printf("result is %d.\n",result);return 0; …

创建路由React router(使用react-router dom V6版本)

React路由 隔了很长一段时间&#xff0c;重新捡起来React学习。 发现React的路由从原来的 Switch改成了Routes。nice&#xff0c;nice&#xff0c;nice&#xff01;&#xff01;&#xff01;&#xff01; 刚开始接触确实还是有一点生疏的。之前的关于【传参】【js跳转】【跳转模…

矿井下无人值守变电所电力监控系统的探讨与产品选型

摘要&#xff1a;为了探讨井下无人值守变电所的电力监控系统技术&#xff0c;以西山煤电马兰矿为背景&#xff0c;详细阐述了井下无人值守变电所电力监控系统技术的各项基本参数&#xff0c;如额定工作电压及整机输入视在功率、交换机或监控分站的传输口、高压配电装置的传输口…

下载VMWare

1、首先登录到vmware官网 官网&#xff1a;https://www.vmware.com/ 2、点击Resource 3、找到Product Downloads 4、找到我们要下载的产品&#xff0c;点击download product 5、选择自己要下载的版本和对应的系统 6、点击去下载 7、点击download now

国云筑基“翼”气风发,天翼云以科技创新绘就数字中国蓝图

科技云报道原创。 全球新一轮技术革命方兴未艾&#xff0c;特别是以数字技术为核心的信息技术革命&#xff0c;正在实现群体突破和加快广泛深度应用。 从2017年的“促进数字经济加快成长”&#xff0c;到2019年的“壮大数字经济”&#xff0c;到2020年的“全面推进‘互联网&am…

SpringBoot的配置和日志

1.配置文件的作用和意义 配置文件中配置整个项目中所有重要的数据&#xff0c;比如&#xff1a; 1.数据库的连接信息&#xff08;包含用户名和密码的设置&#xff09;&#xff1b; 2.项目的启动端口&#xff1b; 3.第三方系统的调用秘钥等信息&#xff1b; 4.用于发现和定位问…

Unity之OpenXR+XR Interaction Toolkit实现 抓取物体

前言 我们今天来说一下如何使用XR Interaction Toolkit来实现和3D物体的交互之&#xff1a;抓取&#xff0c;简单说就是通过VR手柄拿起来一个物体。 二.准备工作 有了前两篇的配置介绍,我们就不在详细说明这些了&#xff0c;大家自行复习 Unity之OpenXRXR Interaction Toolk…

BPF技术学习与整理

目录 eBPF是什么&#xff1f; eBPF是做什么的&#xff1f;可以解决什么问题&#xff1f; eBPF可以带来的解决方案是什么&#xff1f; eBPF的技术点 eBPF hookeBPF MapeBPF Helper FunctioneBPF有什么限制吗&#xff1f; 前言 21年因为项目需求而要开发一个工具&#xff0c;可以…

每日一个小技巧:1招教你wav格式如何转换mp3

wav是一种质量较高的音频格式&#xff0c;但它的文件大小通常比较大。为了更方便地分享和存储音频文件&#xff0c;许多人都会选择将其转换为mp3格式。因为mp3格式能够在保持较高音质的同时&#xff0c;尽量降低文件大小&#xff0c;帮助你节省许多磁盘空间。那你们知道wav格式…

Java基础——多线程创建

&#xff08;1&#xff09;什么是线程&#xff1f; 线程(thread)是一个程序内部的一条执行路径。程序中只有一条执行路径&#xff0c;那么这个程序就是单线程的程序。 &#xff08;2&#xff09;多线程是什么&#xff1f; 多线程是指从软硬件上实现多执行流程的技术。 &…

让 ChatGPT 扮演一个艺术家,协助我们生成绘图 prompt

stable-diffusion Prompt 生成 直接生成 按照惯用的扮演思路&#xff0c;我们可以让 ChatGPT 扮演一个艺术家&#xff0c;协助我们生成绘图 prompt。考虑到 ChatGPT 和 DallE 同为 openai 公司产品&#xff0c;且 stable-diffusion 开源模型出现较晚&#xff0c;ChatGPT 训练…

【软件工程】UML序列图

一.概述 序列图&#xff08;时序图&#xff09;是一种软件工程行化建模方法&#xff0c;用于可视化系统或应用程序中多个对象之间 的交互。在序列图中&#xff0c;每个对象都表示为竖直线&#xff0c;对象之间的消息则表示为水平箭头 从一个对象指向另一个对象。 序列图可以…

搞懂 API ,地图 API 制作方法分享

地图 API 是一种基于 Web 开发的应用程序编程接口&#xff0c;可以用于创建和展示地图及地理信息。以下是一些地图 API 制作的方法&#xff1a; 选择地图 API 平台&#xff1a;目前市场上有很多地图 API 平台供选择&#xff0c;比如 Google Maps API、百度地图 API、高德地图 A…

2023年五月份图形化三级打卡试题

活动时间 从2023年5月1日至5月21日&#xff0c;每天一道编程题。 本次打卡的规则如下&#xff1a; 小朋友每天利用10~15分钟做一道编程题&#xff0c;遇到问题就来群内讨论&#xff0c;我来给大家答疑。 小朋友做完题目后&#xff0c;截图到朋友圈打卡并把打卡的截图发到活动群…

在阿里做测试开发的这5年,收获与感悟...

正好在离职交接空档期&#xff0c;就抽空简单分享自己的一些个人经历给大家&#xff0c;希望对刚毕业不久或者工作三五年的同学能有一些帮助。 测试新人 我的职业生涯开始和大多数测试人一样&#xff0c;开始接触都是纯功能界面测试。那时候在一家电商公司做测试&#xff0c;做…

基于异常值鲁棒性问题的极限学习机的回归问题研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

2023年五月份图形化四级打卡试题

活动时间 从2023年5月1日至5月21日&#xff0c;每天一道编程题。 本次打卡的规则如下&#xff1a; 小朋友每天利用10~15分钟做一道编程题&#xff0c;遇到问题就来群内讨论&#xff0c;我来给大家答疑。 小朋友做完题目后&#xff0c;截图到朋友圈打卡并把打卡的截图发到活动群…