沐神的动手学深度学习第二版网址https://zh-v2.d2l.ai/
目前中文版还没翻译完。
下面我用沐神这本书来做一个笔记,记录下来。主要的是对于代码的注释方面。
数据关键组件
数据
模型
目标函数
定义模型的优劣程度的度量。
损失函数:定义一个目标函数,并希望优化它到最低点。
当任务为试图预测数值时,最常见的损失函数是平方误差(squared error),即预测值与实际值之差的平方。 当试图解决分类问题时,最常见的目标函数是最小化错误率,即预测与实际情况不符的样本比例。分类目前一般用交叉熵损失函数。
数据集由一些为训练而收集的样本组成,称为训练集。
还会有一个训练过程中用新数据来测试模型好坏的数据集称为验证集。作用:1、评估模型效果,为调整超参服务。2、调整超参,使得模型在新数据即验证集上效果更好。验证集并不是必须的。如果超参不需要中途调整,就可以不需要验证集了。
测试集用来评估模型性能。
优化算法
我们需要一种算法来搜索出最佳参数,以最小化损失函数。最经典的就是梯度下降法。现在有很多更好地变种。
各种机器学习分类
监督学习
监督学习(supervised learning)的数据集中有特征及标签一一对应。通过训练生成一个模型,使得输入一个新的特征后模型能预测出标签结果。
回归
任何有关"多少"的问题就是回归。标签可以取范围内的任意数值。即连续值。回归问题常见损失函数为平方误差损失函数(MSE)。
分类
分类就是预测出哪一类的问题。当有两类以上类别时,称为多分类问题。分类问题常见的损失函数称为交叉熵(cross-entropy)。
我们宁愿错误地分入一个相关的类别,也不愿错误地分入一个遥远的类别,这通常被称为层次分类(hierarchical classification)。
标记问题
学习预测不相关排斥的类别的问题称为多标签分类(multilabel classification)。
搜索
在信息检索领域,我们希望对一组项目进行排序。 以网络搜索为例,我们的目标不是简单的“查询(query)-网页(page)”分类,而是在海量搜索结果中找到用户最需要的那部分。搜索结果的排序也十分重要,我们的学习算法需要输出有序的元素子集。
推荐系统
它的目标是向给特定用户进行“个性化”推荐。
序列学习
以上大多问题都具有固定大小的输入和产生固定大小的输出。在这些情况下,模型只会将输入作为生成输出的“原料”,而不会“记住”输入的具体内容。
序列学习需要摄取输入序列或预测输出序列,或两者兼而有之。 具体来说,输入和输出都是可变长度的序列,例如机器翻译和从语音中转录文本。
标记和解析。
自动语音识别。
文本到语音。
机器翻译。
无监督学习
将数据中不含有“目标”的机器学习问题为无监督学习(unsupervised learning)。
- 聚类(clustering)问题:没有标签的情况下,我们是否能给数据分类呢?
- 主成分分析(principal component analysis)问题:我们能否找到少量的参数来准确地捕捉数据的线性相关属性?比如,一个球的运动轨迹可以用球的速度、直径和质量来描述。
- 因果关系(causality)和概率图模型(probabilistic graphical models)问题:我们能否描述观察到的许多数据的根本原因?例如,如果我们有关于房价、污染、犯罪、地理位置、教育和工资的人口统计数据,我们能否简单地根据经验数据发现它们之间的关系?
- 生成对抗性网络(generative adversarial networks):为我们提供一种合成数据的方法,甚至像图像和音频这样复杂的结构化数据。潜在的统计机制是检查真实和虚假数据是否相同的测试,它是无监督学习的另一个重要而令人兴奋的领域。
与环境互动
不管是监督学习还是无监督学习,我们都会预先获取大量数据,然后启动模型,不再与环境交互。 这里所有学习都是在算法与环境断开后进行的,被称为离线学习(offline learning)。
这种简单的离线学习有它的魅力。 好的一面是,我们可以孤立地进行模式识别,而不必分心于其他问题。 但缺点是,解决的问题相当有限。 如果你更有雄心壮志,那么你可能会期望人工智能不仅能够做出预测,而且能够与真实环境互动。 与预测不同,“与真实环境互动”实际上会影响环境。 这里的人工智能是“智能代理”,而不仅是“预测模型”。 因此,我们必须考虑到它的行为可能会影响未来的观察结果。
强化学习
在强化学习问题中,agent 在一系列的时间步骤上与环境交互。 在每个特定时间点,agent 从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后 agent 从环境中获得 奖励(reward)。 此后新一轮循环开始,agent 接收后续观察,并选择后续操作,依此类推。
强化学习的目标是产生一个好的策略(policy)。 强化学习 agent 的选择的“动作”受策略控制,即一个从环境观察映射到行动的功能。
强化学习框架的通用性十分强大。 例如,我们可以将任何监督学习问题转化为强化学习问题。
当环境可被完全观察到时,我们将强化学习问题称为马尔可夫决策过程(markov decision process)。 当状态不依赖于之前的操作时,我们称该问题为上下文赌博机(contextual bandit problem)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)。