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),利用注意力和记忆的方法,使其快速学习。训练程序基于一个简单的机器学习原理:测试和训练条件必须匹配。从而网络快速学习
匹
配
网
络
匹配网络
匹配网络
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}(.) S→cS(.)。其次, 采用了从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(y∣x^,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=1∑ka(x^,xi)yi(1)
其中
x
i
,
y
i
x_{i}, y_{i}
xi,yi是来自support 集
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的样本和标签,而
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 k−b '最近的邻居。
因此(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
LeetCode 44 Wildcard Matching(字符串匹配问题)
Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException:请求匹配多个端点