深度学习引言

news2025/7/19 7:22:48

动手学深度学习pytorch版-笔记

  • 原文链接
  • 日常生活中的机器学习
  • 机器学习中的关键组件
    • 数据
    • 模型
    • 目标函数
    • 优化算法
  • 各种机器学习问题
    • 监督学习
      • 回归
      • 分类
      • 标记问题
      • 搜索
      • 推荐系统
      • 序列学习
    • 无监督学习
    • 与环境互动
    • 强化学习
  • 特点
  • 小结

原文链接

动手学深度学习pytorch中文版

日常生活中的机器学习

参数可以被看作旋钮,旋钮的转动可以调整程序的行为。 任一调整参数后的程序被称为模型(model)。通过操作参数而生成的所有不同程序(输入-输出映射)的集合称为“模型族”。 使用数据集来选择参数的元程序被称为学习算法(learning algorithm)

机器学习中的关键组件

  1. 可以用来学习数据(data);
  2. 如何转换数据模型(model);
  3. 一个目标函数(objective function),用来量化模型的有效性
  4. 调整模型参数优化目标函数算法(algorithm)。

数据

每个数据集由一个个样本(example, sample)组成,大多时候,它们遵循独立同分布(independently and identically distributed, i.i.d.)。 样本有时也叫做数据点(data point)或者数据实例(data instance),通常每个样本由一组称为特征(features,或协变量(covariates))的属性组成。机器学习模型会根据这些属性进行预测。 在上面的监督学习问题中,要预测的是一个特殊的属性,它被称为标签(label,或目标(target))。

  • 独立同分布:指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立,那么这些随机变量是独立同分布。如果随机变量X1和X2独立,是指X1的取值不影响X2的取值,X2的取值也不影响X1的取值且随机变量X1和X2服从同一分布,这意味着X1和X2具有相同的分布形状和相同的分布参数,对离散随机变量具有相同的分布律,对连续随机变量具有相同的概率密度函数,有着相同的分布函数,相同的期望、方差。如实验条件保持不变,一系列的抛硬币的正反面结果是独立同分布。
  • 当每个样本的特征类别数量都是相同的时候,其特征向量是固定长度的,这个长度被称为数据的维数(dimensionality)。
  • 与传统机器学习方法相比,深度学习的一个主要优势是可以处理不同长度的数据。

模型

深度学习与经典方法的区别主要在于:前者关注功能强大的模型,这些模型由神经网络错综复杂的交织在一起,包含层层数据转换,因此被称为深度学习(deep learning)

目标函数

  • 在机器学习中,我们需要定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的,这被称之为目标函数(objective function)。 我们通常定义一个目标函数,并希望优化它到最低点。 因为越低越好,所以这些函数有时被称为损失函数(loss function,或cost function)。
  • 当任务在试图预测数值时,最常见的损失函数是平方误差(squared error),即预测值与实际值之差的平方。
  • 当试图解决分类问题时,最常见的目标函数是最小化错误率,即预测与实际情况不符的样本比例。
  • 损失函数是根据模型参数定义的,并取决于数据集。
  • 在一个数据集上,我们可以通过最小化总损失来学习模型参数的最佳值。 该数据集由一些为训练而收集的样本组成,称为训练数据集(training dataset,或称为训练集(training set))。 然而,在训练数据上表现良好的模型,并不一定在“新数据集”上有同样的性能,这里的“新数据集”通常称为测试数据集(test dataset,或称为测试集(test set))。
  • 训练数据集用于拟合模型参数测试数据集用于评估拟合的模型
  • 当一个模型在训练集上表现良好,但不能推广到测试集时,这个模型被称为过拟合(overfitting)的。

优化算法

当我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,接下来就需要一种算法,它能够搜索出最佳参数,以最小化损失函数。 深度学习中,大多流行的优化算法通常基于一种基本方法–梯度下降(gradient descent)。 简而言之,在每个步骤中,梯度下降法都会检查每个参数,看看如果仅对该参数进行少量变动,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。

各种机器学习问题

监督学习

  • 监督学习(supervised learning)擅长在**“给定输入特征”的情况下预测标签**。 每个“特征-标签”对都称为一个样本(example)。 有时,即使标签是未知的,样本也可以指代输入特征。 我们的目标是生成一个模型,能够将任何输入特征映射到标签(即预测)。
  • 例子: 假设我们需要预测患者的心脏病是否会发作,那么观察结果“心脏病发作”或“心脏病没有发作”将是样本的标签。 输入特征可能是生命体征,如心率、舒张压和收缩压等。

监督学习的学习过程一般可以分为三大步骤:

  1. 从已知大量数据样本中随机选取一个子集,为每个样本获取真实标签。有时,这些样本已有标签(例如,患者是否在下一年内康复?);有时,这些样本可能需要被人工标记(例如,图像分类)。这些输入和相应的标签一起构成了训练数据集;

  2. 选择有监督的学习算法,它将训练数据集作为输入,并输出一个“已完成学习的模型”

  3. 将之前没有见过的样本特征放到这个“已完成学习的模型”中,使用模型的输出作为相应标签的预测

在这里插入图片描述

回归

判断回归问题的一个很好的经验法则是,任何有关“有多少”的问题很可能就是回归问题
平方误差损失函数的最小化

分类

“哪一个”的问题叫做分类(classification)问题。 分类问题希望模型能够预测样本属于哪个类别(category,正式称为类(class))

分类问题的常见损失函数被称为交叉熵(cross-entropy)

标记问题

学习预测不相互排斥的类别的问题称为多标签分类(multi-label classification)。

举个例子,人们在技术博客上贴的标签,比如“机器学习”“技术”“小工具”“编程语言”“Linux”“云计算”“AWS”。 一篇典型的文章可能会用5~10个标签,因为这些概念是相互关联的。 关于“云计算”的帖子可能会提到“AWS”,而关于“机器学习”的帖子也可能涉及“编程语言”。

搜索

在信息检索领域,我们希望对一组项目进行排序。 以网络搜索为例,目标不是简单的“查询(query)-网页(page)”分类,而是在海量搜索结果中找到用户最需要的那部分。 搜索结果的排序也十分重要,学习算法需要输出有序的元素子集。
该问题的一种可能的解决方案:首先为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素。

PageRank。谷歌依靠一个简单的相关性过滤来识别一组相关条目,然后根据PageRank对包含查询条件的结果进行排序。

搜索引擎使用机器学习和用户行为模型来获取网页相关性得分

推荐系统

目标是向特定用户进行**“个性化”推荐**。

推荐系统会为“给定用户和物品”的匹配性打分,这个“分数”可能是估计的评级或购买的概率。
由此,对于任何给定的用户,推荐系统都可以检索得分最高的对象集,然后将其推荐给用户。

关于如何处理审查、激励和反馈循环的许多问题,都是重要的开放性研究问题。

序列学习

序列学习需要摄取输入序列或预测输出序列,或两者兼而有之。 具体来说,输入和输出都是可变长度的序列,例如机器翻译和从语音中转录文本。

无监督学习

数据中不含有“目标”的机器学习问题通常被为无监督学习(unsupervised learning)

  • 聚类(clustering)问题
  • 主成分分析(principal component analysis)问题:我们能否找到少量的参数来准确地捕捉数据的线性相关属性?比如,一个球的运动轨迹可以用球的速度、直径和质量来描述。
  • 因果关系(causality)和概率图模型(probabilistic graphical models)问题:我们能否描述观察到的许多数据的根本原因?
  • 生成对抗性网络(generative adversarial networks):为我们提供一种合成数据的方法,甚至像图像和音频这样复杂的非结构化数据。潜在的统计机制是检查真实和虚假数据是否相同的测试,它是无监督学习的另一个重要而令人兴奋的领域。

与环境互动

考虑“与真实环境互动”将打开一整套新的建模问题。以下只是几个例子。

  • 环境还记得我们以前做过什么吗?

  • 环境是否有助于我们建模?例如,用户将文本读入语音识别器。

  • 环境是否想要打败模型?例如,一个对抗性的设置,如垃圾邮件过滤或玩游戏?

  • 环境是否重要?

  • 环境是否变化?例如,未来的数据是否总是与过去相似,还是随着时间的推移会发生变化?是自然变化还是响应我们的自动化工具而发生变化?

当训练和测试数据不同时,最后一个问题提出了分布偏移(distribution shift)的问题。

强化学习

在强化学习问题中,智能体(agent)在一系列的时间步骤上与环境交互。
在每个特定时间点,智能体从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后智能体从环境中获得奖励(reward)。
此后新一轮循环开始,智能体接收后续观察,并选择后续操作,依此类推。 强化学习的过程在图中进行了说明。
请注意,强化学习的目标是产生一个好的策略(policy)。 强化学习智能体选择的“动作”受策略控制,即一个从环境观察映射到行动的功能。

在这里插入图片描述

当环境可被完全观察到时,强化学习问题被称为马尔可夫决策过程(markov decision process)。
当状态不依赖于之前的操作时,我们称该问题为上下文赌博机(contextual bandit problem)。
没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)。

特点

深度学习的一个关键优势是它不仅取代了传统学习管道末端的浅层模型,而且还取代了劳动密集型的特征工程过程。
此外,通过取代大部分特定领域的预处理,深度学习消除了以前分隔计算机视觉、语音识别、自然语言处理、医学信息学和其他应用领域的许多界限,为解决各种问题提供了一套统一的工具。

除了端到端的训练,人们正在经历从参数统计描述到完全非参数模型的转变。
当数据稀缺时,人们需要依靠简化对现实的假设来获得有用的模型。
当数据丰富时,可以用更准确地拟合实际情况的非参数模型来代替。

小结

  • 机器学习研究计算机系统如何利用经验(通常是数据)来提高特定任务的性能。它结合了统计学、数据挖掘和优化的思想。通常,它是被用作实现人工智能解决方案的一种手段。

  • 表示学习作为机器学习的一类,其研究的重点是如何自动找到合适的数据表示方式。深度学习是通过学习多层次的转换来进行的多层次的表示学习。

  • 深度学习不仅取代了传统机器学习的浅层模型,而且取代了劳动密集型的特征工程。

  • 最近在深度学习方面取得的许多进展,大都是由廉价传感器和互联网规模应用所产生的大量数据,以及(通过GPU)算力的突破来触发的。

  • 整个系统优化是获得高性能的关键环节。有效的深度学习框架的开源使得这一点的设计和实现变得非常容易。

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

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

相关文章

可怕,chatGPT用3小时教会我数据分析

chatGPT这玩意真的是我的救星,用它作为我的Python教练,我用三个小时学会了数据处理(Pandas)和绘图(matplotlib)。 这两个库的学习,在之前已经困扰了我7个月。之前卡壳的原因,是我一直没有耐心从零开始,按照教材设置的教程去学习Python——我擅长在项目中学习,一点一点…

Android实现炫酷跳动的闪屏LOGO

前言:在日常开发中,经常会遇到各种视觉效果,有的效果可能一眼看去会让人觉得很复杂,但是我们必须明确一点:所有复杂动效都是可以分解成单一的基础动作,比如缩放,平移,旋转这些基础单…

最新BlackArch发布,提供1400款渗透测试工具

近日,BlackArch Linux新版本发布,此版本为白帽子和安全研究人员提供了大约1400款渗透测试工具,如果你是一位白帽子或者安全研究人员,这个消息无疑会让你很感兴趣。BlackArch Linux是一款基于Arch Linux的发行版,主要面…

luckysheet的使用——07.二次开发自动插入批注功能

在单元格编辑完成后,需要自动在这个单元格上新增批注,此时需要改造旧代码,首先找到路径为 src/controllers/postil.js的文件,找到新增批注时触发的方法,如下: 2.对方法进行改造,新增传入变量co…

深入探讨下,IPC产品与智能家居融合的无限开创性

IPC还有哪些新玩法?随着摄像头的应用场景增加,IPC作为一种能力,正在融入到越来越多的智能设备中,形成了一批富有创意的智能 IPC 融合类产品。 比如,扫地机结合智能 IPC 后,能实现可视化精准识别障碍物&…

C++实现日期类

文章目录前言1.日期类的功能分析1.大致分析2.接口设计2.具体实现1.日期类的成员函数和成员变量2.初始化(构造函数)3.对日期进行天数推算4.比较相关的运算符重载5.前置后置自增或自减6.日期相减与流插入流提取1.日期相减2.重载流插入和流提取3.总结前言 之前介绍了C…

数据结构与算法—链表list

目录 链表 链表类型 链表插入 链表删除 写程序注意点 与数组区别 链表应用 LRU 实现思想 链表 链表,一种提高数据读取性能的技术,在硬件设计、软件开发中有广泛应用。常见CPU缓存,数据库缓存,浏览器缓存等。缓存满时&#…

mongoDB5以上实现单机事务

原理就是因为目前mongodb只有副本,分片支持事务。我们就让单机变成单节点副本,同时又是主节点,可以读写一、修改bin目录下的mongod.cfg新增配置replication:replSetName: rs0二、重启mongodb服务、初始化(这是windows下的启动命令…

2月24日作业

题目:通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作--->上传CSDN 1.例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led…

day20_Map

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、比较器排序 三、Collections 四、Map 五、HashMap 六、TreeMap 零、 复习昨日 HashSet 不允许重复元素,无序 HashSet去重原理: 先比较hashco…

Java知识复习(二)Java集合

1、List、Set和Map的区别 List:存储的顺序是有序的、可重复的Set:存储的顺序是无序的、不可重复的Map:使用键值对存储,Key和Value都是无序的,其中Key不可重复,而Value可重复 2、ArrayList和LinkedList的区…

node报错

记录bug:运行 npx -p storybook/cli sb init 时报错gyp info spawn C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exegyp info spawn args [gyp info spawn args build/binding.sln,gyp info spawn args /nologo,gyp info spawn args…

OpenCV只含基本图像模块编译

编译OpenCV4.5.5只含基本图像模块,环境为Windows10 x64CMake3.23.3VS2019。默认编译选项编译得到的OpenCV库往往大几百MB甚至上GB,本文配置下编译得到的库压缩后得到的zip包大小仅6.25MB,适合使用OpenCV基本图像功能模块的项目移植而不牵涉其…

电子技术——伯德图与反馈

电子技术——伯德图与反馈 增益和相位边距 从上两节我们知道环路增益 AβA\betaAβ 可以决定一个系统的稳定性,一个更加简单和有效的方法是我们可以绘制 AβA\betaAβ 的伯德图(因为相位可以达到360度,因此这是一个四阶响应系统)…

行锁、表锁、主键外键、表之间的关联关系

Java知识点总结:想看的可以从这里进入 目录2.4、行锁、表锁2.5、主键、外键2.5.1、主键2.5.2、外键2.6、表的关联关系2.4、行锁、表锁 MyISAM默认采用表级锁,InnoDB默认采用行级锁。 表锁:开销小,加锁快,不会出现死锁…

KTV「消亡史」:辉煌、挫折与新生

【潮汐商业评论/原创】这是Ina工作的第五年,疫情之后,第一场大学同学聚会就定在了周末。同学群里大家热烈地讨论着聚会的地点,“要不咱们去KTV吧,哈哈哈哈哈哈”,突然有人提议到。“谁还去KTV啊”“多没意思啊”……随…

按字典序排列的最小的等价字符串[拆解并查集]

并查集前言一、按字典序排列的最小的等价字符串二、并查集总结参考文献前言 并查集有什么用?并查集是什么?搞懂这两个问题,相关的并查集问题就变得非常easy! 一、按字典序排列的最小的等价字符串 二、并查集 有一种方法&#x…

工单模型的理解与应用

工单(任务单)模型的定义 工单模型是一种分派任务的方法,可以用来跟踪、评估和报告任务的完成情况。它通常用于针对特定目标的重复性任务或项目,以确保任务能够按时完成并符合期望的标准。   工单模型的基本流程为:提…

GroupDocs.Merger for Java

GroupDocs.Merger for Java GroupDocs.Merger for Java是一个文档操作API,可帮助您合并、拆分、交换或删除文档页面。API通过启用或禁用密码提供保护,并允许开发人员加入PDF、Microsoft Word、Excel和Powerpoint文档。 支持的文件格式 Microsoft Office格…

常见激活函数Activation Function的选择

Activation Function激活函数一般会神经网络中隐层和输出层上,其中作用在输出层主要用于适配输出,比如sigmoid函数可用于生成[0,1]之间的概率估计值。而作用于隐层主要用于增加神经网络的非线性,增加了网络的表达能力,本文主要介绍…