本文源自李沐老师的《动手学深度学习》,为记录自己从0开始的深度学习入门。一开始可能都不能称之为复写,只能叫做摘抄。书本地址:https://zh-v2.d2l.ai/
目标函数:定义模型的优劣程度的度量
损失函数:通常定义一个目标函数,并希望优化它到最低点。因为越低越好,所以这些函数有时被称为损失函数(loss function, 或cost function)
当任务为试图预测数值时,最常见的损失函数是平方误差(squared error),即预测值与实际值之差的平方。
当试图解决分类问题时,最常见的目标函数是最小化错误率,即预测与实际情况不符的样本比例。
我们需要一种算法,它能够搜索出最佳参数,以最小化损失函数。深度学习中,大多流行的优化算法通常基于一种基本方法–梯度下降(gradient descent)。
在每个步骤中,梯度下降法都会检查每个参数,看看如果你仅对该参数进行少量变动,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。
目标是生成一个模型,能够将任何输入特征映射到标签,即预测。在一定程度上,许多重要的任务可以清晰地描述为:在给定一组特定的可用数据的情况下,估计未知事物的概率。
监督学习可以采取多种形式的模型,并且需要大量不同的建模决策,这取决于输入和输出的类型、大小和数量。
让一条线,尽量地接近特征到标签的映射
具体地说,这款应用程序需要能够自动理解照片图像中看到的文本,并将手写字符映射到已知字符之一。 这种“哪一个?”的问题叫做分类(classification)问题。
在分类问题中,我们希望模型能够预测样本属于哪个类别(category,正式称为类(class))。最简单的分类问题是只有两类,我们称之为“二元分类”。我们可以试着用概率语言来理解模型。给定一个样本特征,我们的模型为每个可能的类分配一个概率。比如猫狗分类中,分类器可能会输出图像是猫的概率为0.9。解释:分类器90%确定图像描绘的是一只猫。
当我们有两个以上的类别时,我们把这个问题称为多类分类(multiclass classification)问题。
与解决回归问题不同,分类问题的常见损失函数被称为交叉熵(cross-entropy)
分类可能变得比二元分类、多类分类复杂得多。 例如,有一些分类任务的变体可以用于寻找层次结构,层次结构假定在许多类之间存在某种关系。我们宁愿错误地分入一个相关的类别,也不愿错误地分入一个遥远的类别,这通常被称为层次分类(hierarchical classification)。
学习预测不相互排斥的类别的问题称为多标签分类(multilabel classification)。
在信息检索领域,我们希望对一组项目进行排序。 以网络搜索为例,我们的目标不是简单的“查询(query)-网页(page)”分类,而是在海量搜索结果中找到用户最需要的那部分。
该问题的一种可能的解决方案:首先为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素。PageRank,谷歌搜索引擎背后最初的秘密武器就是这种评分系统的早期例子,但它的奇特之处在于它不依赖于实际的查询。
它的目标是向给特定用户进行“个性化”推荐。
如果输入是连续的,我们的模型可能就需要拥有“记忆”功能了。
标记和解析
自动语音识别
文本到语音
机器翻译
我们称这类数据中不含有“目标”的机器学习问题为无监督学习(unsupervised learning)
无监督学习可以回答什么样的问题:
目前为止,不管是监督学习还是无监督学习,我们都会预先获取大量数据,然后启动模型,不再与环境交互。这里所有学习都是在算法与环境断开后进行的,被称为离线学习(offline learning)。
在强化学习问题中,agent 在一系列的时间步骤上与环境交互。 在每个特定时间点,agent 从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后 agent 从环境中获得 奖励(reward)。 此后新一轮循环开始,agent 接收后续观察,并选择后续操作,依此类推。
环境可以是完整观察到的,也可以是部分观察到的,解释所有这些复杂性可能会对研究人员要求太高。当环境可被完全观察到时,我们将强化学习问题称为马尔可夫决策过程(markov decision process)。 当状态不依赖于之前的操作时,我们称该问题为上下文赌博机(contextual bandit problem)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)。