8.11 Matching Networks 匹配网络

Posted 炫云云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.11 Matching Networks 匹配网络相关的知识,希望对你有一定的参考价值。


8.7 Meta learning元学习全面理解、MAML、Reptile

人类在很少的样本学习——例如,一个孩子可以从一本书中的一张图片概括出“长颈鹿”的概念。

然而我们最好的深度学习系统需要成百上千的例子。这激发了我们的兴趣:“one-shot”学习,即从一个单一的例子中学习。

对于one-shot学习的问题 ,Matching Networks作为元学习的方法, 能够在不改变网络的情况下,为未观察到的新类生成合理的标签。

1、前言

深度学习需要大数据,因为使用随机梯度下降更新参数,需要数据进行缓慢地学习。

相比之下,许多非参数模型允许新例子被快速吸收,同时不会遭受灾难性的遗忘。这个家族中的一些模型(例如,最邻近)不需要任何训练,但性能取决于所选的度量。

我们的目标是合并来自参数和非参数模型的最佳特征——即,快速获取新例子,同时从常见例子中提供好的特征。

匹配网络(MN),利用注意力和记忆的方法,使其快速学习。训练程序基于一个简单的机器学习原理:测试和训练条件必须匹配。从而网络快速学习

image-20210620141435866
匹 配 网 络 匹配网络

g θ g_{\\theta} gθ f θ f_{\\theta} fθ 分另是对训练数据和测试数据的编码函数。

2、方法

给定一个(小)support 集 S S S, 模型为每个 S S S定义一个函数 c S c_{S} cS(或分类器),即映射 S → c S ( . ) S \\rightarrow c_{S}(.) ScS(.)。其次, 采用了从support 集 S S S中 one-shot学习的训练策略。

2.1 Model 结构

对于one-shot学习的问题 ,Matching Networks能够在不改变网络的情况下,为未观察到的新类生成合理的标签。更准确地说,从 k k k个图像标签对 S = { ( x i , y i ) } i = 1 k S=\\left\\{\\left(x_{i}, y_{i}\\right)\\right\\}_{i=1}^{k} S={(xi,yi)}i=1k的(小)support 集映射到一个分类器 c S ( x ^ ) c_{S}(\\hat{x}) cS(x^) c S ( x ^ ) c_{S}(\\hat{x}) cS(x^)输入 x ^ \\hat{x} x^,输出 y ^ \\hat{y} y^的概率分布 P ( y ^ ∣ x ^ , S ′ ) . P\\left(\\hat{y} \\mid \\hat{x}, S^{\\prime}\\right) . P(y^x^,S).

一般来说,对于输入新类的例子 x ^ \\hat{x} x^和support 集 S S S,预测输出类变成 arg ⁡ max ⁡ y P ( y ∣ x ^ , S ) \\arg \\max _{y} P(y \\mid \\hat{x}, S) argmaxyP(yx^S)

**因此,在测试过程中:**给定一个新的支撑集 S ′ S^{'} S ,我们可以用之前学到的模型对每个测试样本 x ^ \\hat{x} x^ 得到他们可能的label y ^ \\hat{y} y^ 。以最简单的形式计算 y ^ \\hat{y} y^,如下所示:
y ^ = ∑ i = 1 k a ( x ^ , x i ) y i (1) \\hat{y}=\\sum_{i=1}^{k} a\\left(\\hat{x}, x_{i}\\right) y_{i}\\tag{1} y^=i=1ka(x^,xi)yi(1)
其中 x i , y i x_{i}, y_{i} xiyi是来自support 集 S = { ( x i , y i ) } i = 1 k S=\\left\\{\\left(x_{i}, y_{i}\\right)\\right\\}_{i=1}^{k} S={(xiyi)}i=1k的样本和标签,而 a a a是一个注意机制。注意,eq. 1实质上将新类的输出描述为support 集中标签的线性组合。其中注意机制 a a a X × X X \\times X X×X上的一个内核,那么(1)类似于内核密度估计器。

这里即得到 P ( y ^ ∣ x ^ , S ′ ) = ∑ i = 1 k a ( x ^ , x i ) y i P\\left(\\hat{y} \\mid \\hat{x}, S^{\\prime}\\right) =\\sum_{i=1}^{k} a\\left(\\hat{x}, x_{i}\\right) y_{i} P(y^x^,S)=i=1ka(x^,xi)yi

根据一些距离度量和适当的常数,对于 b b b x ^ \\hat{x} x^之间最远的 x i x_{i} xi,注意机制为零,则(1)等价于’ k − b k-b kb '最近的邻居。

因此(1)包含了KDE和kNN方法。(1)的另一种观点是, a a a作为一种注意机制, y i y_{i} yi作为记忆绑定到相应的 x i . x_{i} . xi. 在这种情况下可以理解这是一种特殊的联想记忆,给定一个输入,我们“指向”support 集中相应的示例,检索它的标签。

然而,与其他注意记忆机制不同,(1)在本质上是非参数的:随着支持集大小的增长,所使用的记忆也会增长。因此,分类器 c S ( x ^ ) c_{S}(\\hat{x}) cS(x^)定义的函数形式非常灵活,可以很容易地适应任何新的支持集。

2、2Attention

方程1依赖于 a ( . , . ) a(., .) a(.,.),注意机制,它完全指定了分类器。最简单的形式是使用softmax在余弦距离 c c c上,即,
a ( x ^ , x i ) = e c ( f ( x ^ ) , g ( x i ) ) / ∑ j = 1 k e c ( f ( x ^ ) , g ( x j ) ) (2) a\\left(\\hat{x}, x_{i}\\right)=e^{c\\left(f(\\hat{x}), g\\left(x_{i}\\right)\\right)} / \\sum_{j=1}^{k} e^{c\\left(f(\\hat{x}), g\\left(x_{j}\\right)\\right)}\\tag{2} a(x^,xi)=ec(f(x^),g(r-net:machine reading comprehension with self-matching networks

Scala之模式匹配(Patterns Matching)

LeetCode 44 Wildcard Matching(字符串匹配问题)

Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException:请求匹配多个端点

稳定匹配 - Stable Matching

LeetCode - 10 - Regular Expression Matching