IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> $ |infty$-former: Infinite Memory Transformer -> 正文阅读

[人工智能]$ |infty$-former: Infinite Memory Transformer

Martins P., Marinho Z. and Martins A. ∞ \infty -former: Infinite Memory Transformer. arXiv preprint arXiv:2109.00301, 2021.

在transformer中引入一种长期记忆机制.

主要内容

假设 X ∈ R L × d X \in \mathbb{R}^{L \times d} XRL×d, 即每一行 x i x_i xi?代表一个token对应的特征.
Attention需要进行如下的步骤:
Q = X W Q , K = X W K , V = X W V , Z = s o f t m a x ( Q K T d ) V . Q = XW^Q, K = X W^K, V = XW^V, \\ Z = \mathrm{softmax}(\frac{QK^T}{\sqrt{d}})V. Q=XWQ,K=XWK,V=XWV,Z=softmax(d ?QKT?)V.
为了符号简易起见, 我们不考虑multi-head的情形, 下面的思想可以直接应用之.

我们知道, 可以通过径向基函数来逼近任意的连续函数:
∑ k b k ψ k ( t ) → f ( t ) . \sum_{k} b_k \psi_k (t) \rightarrow f(t). k?bk?ψk?(t)f(t).
现在, 我们令 t i = i L t_i = \frac{i}{L} ti?=Li?, 即对 L L L个tokens冠以时序, X X X的每一列都可以看成一个特殊的 f j ( t ) f_j(t) fj?(t)的位于 t i , i = 0 , 1 , ? ? , L ? 1 t_i, i=0,1,\cdots, L-1 ti?,i=0,1,?,L?1处的值.
给定 N N N个基函数 ψ k ( t ) , k = 0 , 1 , ? ? , N ? 1 \psi_k (t), k=0,1,\cdots, N-1 ψk?(t),k=0,1,?,N?1, 我们要通过求解系数 b j = [ b j 0 , b j 1 , ? b j , N ? 1 ] T \bm{b}_j = [b_{j0}, b_{j1},\cdots b_{j,N-1}]^T bj?=[bj0?,bj1?,?bj,N?1?]T来逼近 f j f_j fj?( X X X的第 j j j列).
Ψ ∈ R N × L , Ψ k i = ψ k ( t i ) \Psi \in \mathbb{R}^{N \times L}, \Psi_{ki}=\psi_{k}(t_i) ΨRN×L,Ψki?=ψk?(ti?), B ∈ R d × N , B j k = b j k B \in \mathbb{R}^{d \times N}, B_{jk} = b_{jk} BRd×N,Bjk?=bjk?.
作者通过岭回归来求解系数 b b b:
B = arg ? min ? B ∥ B Ψ ? X T ∥ F 2 + λ ∥ B ∥ F 2 , B = \arg \min_{B} \|B \Psi - X^T\|_F^2 + \lambda \|B\|_F^2, B=argBmin?BΨ?XTF2?+λBF2?,
其显示表达式为:
B = X T Ψ T ( Ψ Ψ T + λ I ) ? 1 . B = X^T\Psi^T(\Psi\Psi^T + \lambda I)^{-1}. B=XTΨT(ΨΨT+λI)?1.

X T ≈ B Ψ → x i ≈ B ψ ( t i ) . X^T \approx B\Psi \rightarrow x_i \approx B \psi (t_i). XTBΨxi?Bψ(ti?).
现在我们用 X ~ : = Ψ T B T \tilde{X} := \Psi^T B^T X~:=ΨTBT来代替 X X X, 则
K = X ~ W K = Ψ T B T W K , V ~ = X ~ W V = Ψ T B T W V . K = \tilde{X} W^K = \Psi^TB^TW^K, \tilde{V} = \tilde{X}W^V = \Psi^TB^TW^V. K=X~WK=ΨTBTWK,V~=X~WV=ΨTBTWV.
注意, 我们并不对 Q Q Q进行替换, 因为这个只是用作长期的记录用, Q每次重新计算.
对于每个 q i q_i qi?, 我们构建一个其关于 t t t的密度函数 p i ( t ) p_i(t) pi?(t), 文中假设其满足高斯分布:
N ( t ; μ i ; σ i 2 ) . \mathcal{N}(t; \mu_i; \sigma_i^2). N(t;μi?;σi2?).
μ i , σ i 2 \mu_i, \sigma_i^2 μi?,σi2?分别通过如下估计:
μ i = s i g m o i d ( w μ T K q i ) = s i g m o i d ( w μ T B T W K q i ) , σ i 2 = s o f t p l u s ( w σ T K q i ) = s i g m o i d ( w σ T B T W K q i ) . \mu_i = \mathrm{sigmoid} (w_{\mu}^T K q_i) =\mathrm{sigmoid} (w_{\mu}^T B^TW^K q_i), \\ \sigma^2_i = \mathrm{softplus} (w_{\sigma}^T K q_i) =\mathrm{sigmoid} (w_{\sigma}^T B^TW^K q_i). \\ μi?=sigmoid(wμT?Kqi?)=sigmoid(wμT?BTWKqi?),σi2?=softplus(wσT?Kqi?)=sigmoid(wσT?BTWKqi?).
注意最后令 w T Ψ T = w T w^T\Psi^T = w^T wTΨT=wT既然 Ψ \Psi Ψ是事先确定的.
我们知道
s o f t m a x ( K q i d ) \mathrm{softmax}(\frac{Kq_i}{\sqrt{d}}) softmax(d ?Kqi??)
实际上求解的是一个离散化的 p i ( t ) p_i(t) pi?(t), 即 q i q_i qi? k j k_j kj?的相合程度, 而
s o f t m a x ( K q i d ) T V \mathrm{softmax}(\frac{Kq_i}{\sqrt{d}})^TV softmax(d ?Kqi??)TV
实际上就是求解期望
E p i [ v ( t ) ] . \mathbb{E}_{p_i}[v(t)]. Epi??[v(t)].
现在我们近似了一个连续的 p i ( t ) p_i(t) pi?(t), 也可以通过这种方式得到最后的 z i z_i zi?:
E p i [ v ( t ) ] = E p i [ ψ T ( t ) B T W V ] = E p i [ ψ T ( t ) ] B T W V . \mathbb{E}_{p_i}[v(t)] =\mathbb{E}_{p_i}[\psi^T(t)B^TW^V] =\mathbb{E}_{p_i}[\psi^T(t)]B^TW^V. Epi??[v(t)]=Epi??[ψT(t)BTWV]=Epi??[ψT(t)]BTWV.
当我们取 ψ \psi ψ为高斯径向基函数的时候, 上述是由显示解的.

现在来剖析一下, 好在哪里?
原本的 K K K L × d L\times d L×d的, 现在由于我们只需要计算 B T W B^TW BTW, 故实际上只有 N × d N \times d N×d, 我们可以选取很大的 L L L但是选择较小的 N N N来避免较高的复杂度.

如何扩展?

难不成每一次都要重新计算 B B B? 倘若真的是这样就谈不上是长期记忆了.
作者采取了一种比较巧的方法, 实际上, 现在的 B ψ ( t ) B\psi(t) Bψ(t)可以看成是一个 d d d维的向量函数.
我们首先将其进行压缩至 [ 0 , τ ] , τ ∈ ( 0 , 1 ) [0, \tau], \tau \in (0, 1) [0,τ],τ(0,1):
B ψ ( t / τ ) , B\psi(t /\tau), Bψ(t/τ),
如此一来, 整个函数的能量集中在 [ 0 , τ ] [0, \tau] [0,τ]中, 我们可以用剩下的 ( τ , 1 ] (\tau, 1] (τ,1]来放置新的 X X X.
我们首先从 [ 0 , τ ] [0, \tau] [0,τ]中采样 M M M个点 t 0 , ? ? , t M ? 1 t_0, \cdots, t_{M-1} t0?,?,tM?1?, 并得到:
X p a s t = [ x 0 , ? ? , x M ? 1 ] T ∈ R M × d , x m = ψ T ( t m / τ ) B T . X_{past} = [x_0, \cdots, x_{M-1}]^T \in \mathbb{R}^{M \times d}, x_m=\psi^T(t_m/\tau)B^T. Xpast?=[x0?,?,xM?1?]TRM×d,xm?=ψT(tm?/τ)BT.
加上新的 X n e w X_{new} Xnew?, 我们有
X = [ X p a s t T , X n e w T ] T ∈ R ( M + L ) × d , X = [X_{past}^T, X_{new}^T]^T \in \mathbb{R}^{(M + L) \times d}, X=[XpastT?,XnewT?]TR(M+L)×d,
X X X按照上面的逻辑重新估计 B B B即可更新记忆.

关于如何采样这 M M M个点, 作者提了一种sticky memories的方法, 将其与密度函数联系在一起, 便不细讲了.

实验细节

在看这篇论文的时候, 困扰我的就是这个径向基函数是怎么选的?
举一个作者在Language Modeling中的例子便可:
选取150个高斯径向基函数 N ( t ; μ , σ 2 ) \mathcal{N}(t;\mu, \sigma^2) N(t;μ,σ2), 其中
μ \mu μ [ 0 , 1 ] [0, 1] [0,1]中均匀采样, σ ∈ { 0.01 , 0.05 } \sigma \in \{0.01, 0.05\} σ{0.01,0.05}.

还有用KL散度防止一般化就不讲了. 感觉本文有趣的点就是压缩这个地方, 还有对 Ψ \Psi Ψ的处理.

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-28 00:09:32  更:2021-09-28 00:09:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:48:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码