参考学习书目:Understanding Deeplearning
记录一下学习该书的过程。
深度神经网络可以认为是一类机器学习模型,而将其应用到数据上的过程称为深度学习。我们在日常生活中用到的自然语言处理(Natural Language Processing)的算法翻译文本,计算机视觉(Computer Vision)搜索特定图像,语音识别(Speech Recognition)界面都是深度学习的实际应用。
对于机器学习而言,主要是分为三大类:监督学习(Supervised Learning)、无监督学习(Un supervised Learning)和强化学习(Reinforcement Learning)。
1.1 监督学习
监督学习可以理解为从输入数据到输出预测到关系模型。那么对于监督学习而言,我们可以拆分为输入、输出、模型本身以及“训练”模型为了什么。
比如说以下有几个现实例子:
例1:
输入: 年龄为10岁
模型:小朋友的身高和年龄的拟合关系
输出:预测的10岁小朋友的身高是多少
例2:
输入:房屋的平米数为120
和卧室数量为3个
模型:房屋的平米数和卧室数量与房价的关系
输出:房价为9000/
例3:
输入:音频文件
模型:音频文件和音乐类型的对应
输出:音乐类型
例4:
输入:图片(包含牛和背景)
模型:识别属于牛的部分还是背景的部分
输出:指示出来的标签(1代表牛,0代表背景)
例5:
输入:英文段落
模型:英文与中文的对应翻译
输出:中文段落
那么我们了解到,想要预测出我们想要的东西,最需要弄清楚的就是“模型”部分是什么。那么目前来说,我们可以把模型当作一个黑盒子,相当于接受输入向量返回输出向量的盒子。而对于黑盒子真实结构而言,它其实是一个数学方程,更精确一点,它是一系列的方程,用于将输入映射到输出的部分,而特定的方程是根据数据特定选择的。对于例3而言,音频文件是标记好的输入,音乐类型是标记好的输出,那么这个输入/输出在训练过程中相当于”监督者“,这就是”监督学习“术语的由来。
对于深度神经网络而言,它可以处理非常大,变化特别多的输入,并且能包含各种内部结构,也可以输出单个实数(回归)、多个数值(多变量回归)、两类别或多类别的概率(对应二元和多类别分类),所以也可以得到非常大,变化非常多的输出。
对于例4可以理解为用于语义分割的多变量二元分类模型,输入图像的每个像素可以识别为二元标签,指示属于牛还是背景。对于例5可以理解为翻译模型,输入是英文文本,输出是中文翻译。原则上而言,例5可以在标准的监督学习框架下解决,但是会比较困难:
1. 输出可能模糊不清,中英对应有许多有效翻译,任何描述都可能有不同的对应;
2. 输出包含的结构复杂,不是所有的单词串都能成为有效的英文和中文句子
所以我们除了学习输入到输出的映射,还需要遵循输出的“语法”,幸运的是,这种“语法”可以在不需要输出标签的情况下学习,例如我们可以通过大量文本数据的统计信息来构建有效的英语句子。这就是接下来的“无监督学习”。
1.2 无监督学习
含义:从没有对应输出标签的输入数据中构建模型成为无监督学习。
对于无监督学习而言,目的不是为了学习输入到输出的映射关系,而是描述或者理解数据的结构,就如监督学习一般,数据可能具有不同特点,离散/连续,低维/高维…
无监督模型中,很重要的一个便是生成式模型,这类模型能学习如何合成新的数据实例,并使其在统计上与训练数据难以区分,比如通过输入数据的概率分布,从该分布中抽样生成新实例,应用则有图像修复或文本补全。
一些生成式模型中会利用一个观点:数据的维度可以比原始观测变量的数量更小,那么就引出一个想法是我们可以用较少的潜在变量描述每个数据实例,而深度学习的作用是描述这些潜变量和数据之间的映射关系。对于潜在变量一般会被设计为简单的概率分布,通过该分布抽样并将结果传到深度学习模型,创造出新的样本。
1.3 强化学习
在这个范畴里,引入了代理(agent)的概念,代理可以理解为每个时间步骤中执行特定行动,行动会改变系统的状态,但是不一定是确定性的。执行行动可能会有“奖励”,强化学习的目标是让代理学会选择能平均获得最高奖励的行动。