本文最后更新于 2024-03-11,文章内容可能已经过时。

第 0 章 引言


程序:边界情况 --> 设计规则 --> 符合逻辑的程序

机器学习:观测数据/与环境交互 --> 积累经验 --> 性能提高 【从经验中学习】

学习算法:使用数 据集来选择参数的元程序被称为学习算法(learningalgorithm)

image-20240212003529110

0.1 机器学习组件

  1. data(用于学习)
  2. model(模型-转换数据)
  3. objective function(目标函数-量化模型的有效性)
  4. algorithm(算法-调整参数优化目标函数)

data

数据由样本【数据点 or 数据实例】(example,sample)组成,一般遵循独立同分布,由 一组 特征(features or covariates) 组成,模型根据这组 特征 属性预测。

当每个样本的特征类别数量都是相同的时候,其特征向量长度固定,这个长度被称为数据的维数(dimensionality)。固定长度的特征向量可以用来量化学习大量样本。

但是大部分数据都不会满足特征向量长度固定,比如说文字,图片(分辨率不同)与传统机器学习方法相比,深度学习的一个主要优势是可以处理不同长度的数据

一般而言,数据越多、工作越容易、训练出来的模型更加强大,可以减少对于预先设想假设的依赖,!!!但是数据要正确

Garbage in,garbage out.(给我垃圾,我给你big垃圾)

model

model用于输入数据转换

深度学习关注的功能强大的模型,这些模型由神经 网络错综复杂的交织在一起,包含层层数据转换,因此被称为深度学习(deeplearning)。

objective function

机器学习-->自主提高模型完成某些任务的效 能。

  1. 什么才是提高?
  2. 什么才叫高效?

定义模型的优劣程度的度量-->目标函数(objective function)

把它优化到最低点(因为越低越好),所以也可以叫做损失函数(loss function)

预测数值时最常见的损失函数:

平方误差(squarederror),预测值与实际值之差的平方

分类问题最常见损失函数:

最小化错误率,预测与实际情况不符的样本比例

损失函数根据模型参数定义,取决于数据集

  • 训练集(training set):拟合模型参数 参考
  • 测试集(test set):评估拟合的模 型 实际

测试性能可能会显著偏离训练性能。当一个模型在训练集上表现良好,但不能推广到测试集时,这个模型被称为过拟合(overfitting)模型。

algorithm

目前,我们获得了:

  • 一堆数据
  • 一个模型
  • 一个合适的损失函数

下一步工作,优化,也就是最小化损失函数

而在深度学习中,大多流行的优化算法通常基于梯度下降(gradient descent)

0.2 机器学习问题

  • 监督学习 and 无监督学习
  • 与环境互动
  • 强化学习

监督学习 and 无监督学习


监督学习(通过示例学习):

从过去的数据中学习,并将学习的结果应用到当前的数据中,以预测未来的事件。在这种情况下,输入和期望的输出数据都有助于预测未来事件。

为了准确预测,将输入数据标记为正确答案。

image-20240212011000296

所有监督学习算法本质上都是复杂算法,分为分类或回归模型。

回归(有多少) 分类(哪一个)
假设有一组房屋销售数据表格,其中每行对应一个房子, 每列对应一个相关的属性,例如房屋的面积、卧室的数量等等。每 一行的属性构成了一个房子样本的特征向量。可能类似 于:[600,3,1,60]。有个人在市场上寻找 新房子时,需要估计一栋房子的公平市场价值。为什么这个任务可以归类为回归问题呢?本质上是输出 决定的。销售价格(即标签)是一个数值。当标签取任意数值时,我们称之为回归问题,此时的目标是生成 一个模型,使它的预测非常接近实际标签值
比如预测30分钟后下金子的概率
一家银行希望在程序中添加支票扫描功能。这款应用程序能够自动理解从图像中看到的文本,并将手写字符映 射到对应的已知字符之上。这种“哪一个”的问题叫做分类(classification)问题。分类问题希望模型能够预 测样本属于哪个类别(category,正式称为类(class))。例如,手写数字可能有10类,标签被设置为数字0~ 9。
最简单的分类问题是只有两类,这被称之为二分类(binomial classification)。例如,数据集可能由动 物图像组成,标签可能是{ a, b }两类。回归是训练一个回归函数来输出一个数值; 分类是训练一个分类器来 输出预测的类别。 当有两个以上的类别时,我们把这个问题称为多项分类(multiclass classification)问题。常见的例子包括 手写字符识别{0,1,2,...9,a,b,c,...}。与解决回归问题不同,分类问题的常见损失函数被称为交叉熵(cross entropy),最常见的类别不一定是最终用于决策的类别。

相关问题

标记问题

比如训练一个模型 标记 区分人和木头(二分类),就算这个模型精确度很高,它也处理不了狗,但是如果我们的目标是让模型描绘输入图像的内容,这个问题用二分类没有意义。

学习预测不相互排斥的类别的问题称为多标签分类(multilabel classification)。举个例子,博客上贴的标签,比如“机器学习”“技术”“小工具”“编程语言”。一篇典型的文章可 能会用很多个标签,因为这些概念是相互关联的。关于“机 器学习”的帖子也可能涉及“编程语言”。

搜索

广告推荐系统 推荐系统


无监督学习(无法提供训练数据,机器只能自行学习。机器必须能够对数据进行分类,而无需事先提供任何有关数据的信息。

先让计算机与大量变化的数据接触,并允许它从这些数据中学习,以提供以前未知的见解,并识别隐藏的模式。因此,无监督学习算法不一定有明确的结果。

image-20240212012743814

聚类(clustering) 主成分分析(principalcomponentanalysis) 因果关系(causality)和概率图模型(probabilisticgraphicalmodels)问题 生成对抗性网络(generativeadversarialnetworks)
没有标签的情况下,给数据分类 找到少量的参数来准确地捕捉数据的线 性相关属性 描述观察到的 许多数据的根本原因 提供一种合成数据的方法

与环境互动

监督学习和无监督学习,数据都是提前收集好的,在启动模型后不再和外部环境交互。--> 离线学习(offline learning)

image-20240212014244673

我们期望人工智能能够与真实环境互动。

eg:

  • 环境还记得我们以前做过什么吗?
  • 环境是否有助于我们建模?例如,用户将文本读入语音识别器。
  • 环境是否想要打败模型?
  • 环境是否重要?
  • 环境是否变化?例如,未来的数据是否总是与过去相似,还是随着时间的推移会发生变化?是自然变化还是响应我们的自动化工具而发生变化?分布偏移(distribution shift)

强化学习

Agent在一系列的时间步骤上与环境交互。在每个特定时间点,Agent从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后Agent从环境中获得奖励(reward)

强化学习的目标是产生一个好的策略(policy)

image-20240212014553707

Agent的动作会影响后续的Observation。

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