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

news2024/11/24 22:55:33

绪论

    深度学习(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.coloradmin.cn/o/460269.html

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

相关文章

【Arduino SD卡和数据记录教程】

【Arduino SD卡和数据记录教程】 1. 前言2. 工作原理3. Arduino SD 卡模块代码4. Arduino SD卡数据记录1. 前言 在本Arduino教程中,我们将学习如何将SD卡模块与Arduino板一起使用。此外,结合DS3231实时时钟模块,我们将制作一个数据记录示例,将温度传感器的数据存储到SD卡中…

分布式消息队列Kafka(一)

一.kafka基础架构 &#xff08;1&#xff09;Producer&#xff1a;消息生产者&#xff0c;就是向 Kafka broker 发消息的客户端。 &#xff08;2&#xff09;Consumer&#xff1a;消息消费者&#xff0c;向 Kafka broker 取消息的客户端。 &#xff08;3&#xff09;Consumer…

每日一个小技巧:1分钟告诉你截图翻译软件哪个好用

随着互联网的发展&#xff0c;我们对各种语言文字的翻译需求越来越高。在翻译时&#xff0c;大家经常会遇到一些生词或专业术语&#xff0c;这时候我们就需要使用翻译软件来帮助理解。但是&#xff0c;有些时候大家需要翻译的内容并不是一段文本&#xff0c;而是一张图片或截图…

《前端bug齁逼多,真假开发说》2023/4/10-2023/4/18问题汇总

1 高德地图 运行抱错 INVALID_USER_SCODE 这里是错误信息对应原因 错误信息列表-参考手册-地图 JS API | 高德地图API 这里是高德地图api设置说明 准备-入门-教程-地图 JS API | 高德地图API 如果你自己能排查出错误 那不用看我的&#xff0c;如果都写的对还是抱错…

最常用的从A到Z的Linux命令,真的很好记,三分钟刷完!

Linux的命令行是一个非常强大的工具。如果你知道如何利用Linux命令&#xff0c;你可以轻松地在Linux系统中执行各种任务。在这篇文章中&#xff0c;我们将介绍从A到Z的Linux命令。 alias alias命令允许你为常用的命令设置一个短的别名&#xff0c;以节省时间和减少敲击。例如&…

界面开发框架Qt新手入门 - 自定义排序/筛选模型示例(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 自定义排序/筛选模型…

IBL-镜面反射(LUT篇)

1. LUT需要求解什么 首先我们将镜面反射部分的积分分割为两个部分。 L o ( p , ω o ) ∫ Ω L i ( p , ω i ) d ω i ∗ ∫ Ω f r ( p , ω i , ω o ) n ⋅ ω i d ω i L_{o}\left(p, \omega_{o}\right)\int_{\Omega} L_{i}\left(p, \omega_{i}\right) d \omega_{i} * …

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

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

外贸软件解决玩具行业管理难点,提升业务效率

在玩具外贸市场&#xff0c;中国显而易见是玩具的生产大国&#xff0c;但却不是玩具生产强国。与发达国家相比&#xff0c;我国玩具行业市场集中度较低&#xff0c;对于国外玩具采购商来说&#xff0c;他们对于采购费用都是相对固定的&#xff0c;连对采购的需求也不会有多少变…

解决在vue中使用elementUI自定义校验及点击提交不生效问题

前言&#xff1a; 本章讲述的主要是对身份证号码的校验 及 为何校验了但提交不生效问题。 拓展小知识&#xff1a; &#x1f340; 1、身份证号码&#xff08;二代18位身份证&#xff09;的含义&#xff1a; 1️⃣ 1-2位&#xff1a;代表所属省级政府的代码&#xff1b; 2️⃣ 3…

【前端】原型和原型链

最近面试的时候&#xff0c;面试官有问到这个&#xff0c;答得很简单&#xff0c;感觉了解得不深&#xff0c;下来之后自己又搜索了一下动手看了看相关的内容。 a. 每个函数都有prototype属性&#xff0c;称之为原型&#xff1b;因为这个属性的值有时候是一个对象&#xff0c;…

2023-04-04 2016天梯赛决赛练习题L2

7-11 互评成绩 学生互评作业的简单规则是这样定的&#xff1a;每个人的作业会被k个同学评审&#xff0c;得到k个成绩。系统需要去掉一个最高分和一个最低分&#xff0c;将剩下的分数取平均&#xff0c;就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。 输…

JUC概述

1. JUC是什么&#xff1f; 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包&#xff0c;在此包中增加了在并发编程中很常用的工具类。此包包括了几个小的、已标准化的可扩展框架&#xff0c;并提供一些功能实用的类&#xff0c;没有这些类&#xff0c;一些功能会很难实现或…

【JavaEE】SpringBoot配置文件的设置及其读取

目录 配置文件作用 配置文件注意事项 properties 用法 修改字符集 优缺点 yml 用法 优缺点 读取配置文件 使用 Value注解 读properties配置文件 读yml配置文件 使用 ConfigurationProperties 注解 读properties配置文件 读yml配置文件 配置文件作用 SpringBoot的…

MCMC采样

MCMC采样 MCMC 是一种随机的近似推断&#xff0c;其核心就是基于采样的随机近似方法蒙特卡洛方法。而近似推断中又可以分成两大类&#xff0c;即为确定性近似 (VI) 和随机近似 (MCMC)。我们需要从概率分布中取 个点&#xff0c;从而近似计算这个积分。常用采样方法有&#xff…

开关柜绝缘状态检测与故障诊断

摘要:电力开关柜作为电力系统的关键设备广泛应用于输电配电网络&#xff0c;其运行可靠性直接影响着电力系统供电质量及安全性能。开关柜绝缘状态检测与故障诊断是及时维修、更换和预防绝缘故障的重要技术手段。在阐述开关柜绝缘状态评估的基础上&#xff0c;指出其内典型的局部…

Docker --- 基本操作、Dockerfile自定义镜像

一、Docker的基本操作 1.1、镜像操作 镜像名称 首先来看下镜像的名称组成&#xff1a; 镜名称一般分两部分组成&#xff1a;[repository]:[tag]。 在没有指定tag时&#xff0c;默认是latest&#xff0c;代表最新版本的镜像 如图&#xff1a; 这里的mysql就是repository&…

数据库课设--基于Python+MySQL的餐厅点餐系统(表的设计)

文章目录 一、系统需求分析二、系统设计1. 功能结构设计2、概念设计2.2.1 bill_food表E-R图2.2.2 bills表E-R图2.2.3 categories E-R图2.2.4 discounts表 E-R图2.2.5 emp表E-R图2.2.6 food 表E-R图2.2.7 member表E-R图2.2.8 member_point_bill表E-R图2.2.9 servers表E-R图2.2.1…

MySQL的事务原理和实现

一、事务属性与架构概述 1、基本概念&#xff1a; 事务&#xff08;Transaction&#xff09;是访问和更新数据库的程序执行单元&#xff1b;事务中可能包含一个或多个sql语句&#xff0c;这些语句要么都执行&#xff0c;要么都不执行。作为一个关系型数据库&#xff0c;MySQL…

为什么很多程序员不反感加班?行内人:老板给钱是真的给啊

为什么很多程序员不反感加班&#xff1f;行内人&#xff1a;说给钱老板真的给&#xff01; 一提到程序员&#xff0c;大部分人第一反应是加班多、996、脱发&#xff0c;这几乎成了外界对程序员刻板印象的标配。不少知名的互联网大厂也是加班之风盛行&#xff0c;譬如著名的华为…