您的位置:首页 > 理论基础 > 计算机网络

连接图像和自然语言(翻译)二

2018-01-03 15:24 309 查看

深度学习的背景

本章提供机器学习和神经网络的必要技术背景。我们推荐Goodfellow等人的“深度学习”一书。 [3]。

2.1监督学习

许多实际问题可以表述为需要计算机执行映射f:X→Y,其中X是输入空间,Y是输出空间。例如,在视觉识别中,X可以是图像的空间,Y可以是表示猫出现在图像某处的概率的区间[0,1]。不幸的是,在许多情况下,通过常规手段手动指定函数f是困难的(例如,不清楚如何写下识别猫的程序)。监督式学习范式提供了一种替代方法,它利用了一个事实,即获得所需映射的例子(x,y)∈X⇥Y通常比较容易。在我们的运行示例中,这将对应于收集每个标有猫的存在或不存在的图像的数据集,如由人注释的。

目标。具体来说,我们假设一个训练数据集的例子{(x1,y1),。 。 。 (xn,yn)}由来自数据生成分布D的独立同分布(i.i.d.)样本组成;即对于所有的i,(xi,yi)〜D。然后,我们通过搜索一组候选函数并找到最符合训练实例的映射来思考映射f:X - > Y的学习。

更精确地说,我们考虑一些特定的函数类F,并选择一个标量值损失函数L(y,y)来衡量某个f∈F的预测标签yi = f(xi)和真实标签yi之间的不一致。我们学习的目标是找到理想满足的f *∈F:



换句话说,我们寻求一个函数f ,使数据生成分布D的期望损失最小化。在实际应用中,一旦我们识别这个函数,我们可以丢弃原始的训练数据,只保留我们使用的学习函数f 将X的元素映射到Y.

不幸的是,上述优化问题是棘手的,因为我们无法获得D的所有可能元素,因此无法对分析的期望进行评估或简化,也不会对D,L或f的形式做出不切实际的强烈假设。 但是,根据i.i.d. 假设我们可以通过对可用训练数据的损失进行平均来近似上式(2.1)中的预期损失:



换句话说,我们只是通过可用的训练样例优化损失,但是希望这是方程2.1中实际目标的一个很好的代理目标。

正则。遗憾的是,优化公式2.2而不是公式2.1会带来挑战。例如,考虑函数f,将训练数据中的每个xi映射到其yi,而在其他地方返回零。这将是方程2.2的解(对于任何在y = y时达到最小值的合理损失函数L),但是我们可以期望D中所有不在训练集中的其他点的损失非常高。换句话说,我们不希望这个函数推广到所有的(x,y)〜D。另一个不那么深奥的问题是,可能有很多不同的函数都可以在方程2.2中实现相同的损失(所以没有独特的解决方案),但是他们在训练数据之外的泛化可能会有所不同。如果我们所有的都是训练数据,那么我们如何在整个f2F集合中进行选择,在方程2.2中都能达到相同的损失?通过为目标引入正则化术语R可以缓解这两个问题:



其中R是一个标量值函数,它对某些函数的偏好进行编码,而不管它们是否适合于训练数据。按照奥卡姆剃刀的原理,这个加法可以是部分合理的,可以这样说:“假设存在两种解释。在这种情况下,更简单的通常更好“。换句话说,正则化是一个函数复杂度的度量。与正则化项一起,方程2.3中的目标鼓励简单的解决方案,它也适合训练数据,其预期效果在一定程度上弥补了方程2.2和方程2.1中的目标之间的差异。

例如:线性回归。考虑一个简单的例子,其中我们给出了一个100(n = 100)二维点(X = R2)的数据集,每个点用一个标量(Y = R)进行注释。假设类F可以考虑从X到Y(即F = {wT x + b | w∈R2,b∈R})的线性函数集合。在这种情况下,假设空间由3个参数(w1,w2,b)组成,其中w = [w1,w2]。回归设置中常用的损失函数是目标与预测值L(y ^,y)=(y ^ -y)^ 2。最后,作为常用的正则化,我们可以使用阻止参数w1,w2过大的R(w,b)=(w1 ^ 2 + w2 ^ 2),导致一个输入特征对预测产生不成比例的影响,并且也是指定正则化强度的参数。把这些东西放在一起,问题就是解决:



尤其还要注意的是,排除正规化中的偏倚项是常见的,因为这些项不会与输入产生乘数相互作用; 他们只是让模型偏离原点。

例如:神经网络回归。 作为一个简短的预览,为了将上面的例子扩展到神经网络,它使得假设空间F更复杂。 例如,不是搜索形式f(x)= wT x + b的线性函数,我们可以使用f(x)= w2 tanh(W1T x + b1)+ b2,其中W1,w2,b1,b2都是参数 :W1是大小为H * 2的矩阵,b1是大小为H的向量,w2是大小为H的向量,并且b2是标量。 这里H是一个我们可以自由选择的整数(例如100;它通常被解释为隐藏层中神经元的数量),而双曲正切tanh则是元素化的(它将值压缩到区间[1,1]和 在神经网络中通常被称为非线性)。 目标因此变成:



例如:神经网络分类。不是预测每个输入的一些标量值,而是一个常用的实际设置是分类,其中一个想要为输入分配一个离散类别。例如,使用三个可能的类,我们可以使用f(x)= W2 tanh(W1T x + b1)+ b2,其中W2现在是K×H矩阵(在这个例子中K = 3),所以f的输出是一个三维矢量。通常将这个向量中的数字解释为logits,因此通过将这个向量通过softmax函数来计算三个类别的概率,这个函数取一个向量z并输出一个相同大小的向量。



注意向量z可以包含任意的实数值,但是向量p被归一化,所以它的所有元素都在0和1之间,并且和为1(例如[0.2,0.5,0.3])。这个向量p本质上就是我们对网络的预测y,而正确的标号y是一个3维向量,除了在真实类的索引处的单个1以外,它全部为零。例如,如果正确的类是第三个类,那么y = [0,0,1]。在分类设置中最常用的损失函数是交叉熵损失,其形式如下:





第一个等式是两个分布之间交叉熵的定义H(p,q)=



, 第二个等式简化了表达式,因为分类设置中的真实分布通常被假定为在单个正确元素上具有所有的概率质量,其整数指数表示y = 1。由于我们将网络的输出解释为包含概率 在三个不同的类别中,我们也看到我们正在有效地最小化正确类别的负对数概率,与对这种损失的概率性解释一致,以使得以输入x为条件的类别y的对数似然最大化。

概要。 在监督式学习中,我们给出了n个数据点{(x1,y1),…的数据集。。。 (xn,yn)}其中(xi,yi)∈X * Y,我们确定三个量来形式化问题:

1.函数F的搜索空间,其中每个f∈F将X映射到Y.

2.标量值损失函数L(y ^,y),用于评估真实标签y和y之间的不匹配

预测标签y ^ = f(x)。

3.测量映射复杂度的标量正则化损失R(f)。

最常见的是在深度学习中,函数F的空间将是一个具有如上例所示的参数的神经网络,损失L将是回归中的欧氏亏损或分类中的交叉熵损失,正则化R是最 通常是L2范数(即所有权重的平方和)。

一旦做出这些选择,学习监督学习任务的模型的问题就减少到一般形式的优化问题,



其中θ是一个参数矢量和。



这里我们清楚地表明参数θ通常完全属于函数映射f,函数L,R不涉及任何参数。 现在我们转向在实践中解决这个优化问题的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息