<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          transformer 中的 attention

          共 2466字,需瀏覽 5分鐘

           ·

          2022-05-10 18:10

          來源:知乎—皮特潘

          地址:https://zhuanlan.zhihu.com/p/444811538
          大火的transformer 本質就是:
          使用attention機制的seq2seq。
          所以它的核心就是attention機制,今天就講attention。直奔代碼VIT-pytorch:
          https://github.com/lucidrains/vit-pytorch/blob/main/vit_pytorch/vit.py
          中的

          class Attention(nn.Module):    def __init__(self, dim, heads = 8, dim_head = 64, dropout = 0.):        super().__init__()        inner_dim = dim_head *  heads        project_out = not (heads == 1 and dim_head == dim)
          self.heads = heads self.scale = dim_head ** -0.5
          self.attend = nn.Softmax(dim = -1) self.to_qkv = nn.Linear(dim, inner_dim * 3, bias = False)
          self.to_out = nn.Sequential( nn.Linear(inner_dim, dim), nn.Dropout(dropout) ) if project_out else nn.Identity()
          def forward(self, x): qkv = self.to_qkv(x).chunk(3, dim = -1) q, k, v = map(lambda t: rearrange(t, 'b n (h d) -> b h n d', h = self.heads), qkv)
          dots = torch.matmul(q, k.transpose(-1, -2)) * self.scale
          attn = self.attend(dots)
          out = torch.matmul(attn, v) out = rearrange(out, 'b h n d -> b n (h d)')????????return?self.to_out(out)
          看吧!就是這么簡單。今天就徹底搞懂這個東西。
          先記住attention的這么幾個點:
          • attention和CNN、RNN、FC、GCN等都是一個級別的東西,用來提取特征;既然是特征提取,一定有權重(W+B)存在。
          • attention的優(yōu)點:可以像CNN一樣并行運算 + 像RNN一樣通過一層就擁有全局資訊。有一個東西也可以做到,那就是FC,但是FC有個弱點:對輸入尺寸有限制,說白了不好適應可變輸入數(shù)據(jù),這對于序列無疑是非常不友好的。
          • 可以像CNN一樣并行運算 ,其實CNN運算也是通過im2col或winograd等轉化為矩陣運算的。
          • RNN不能并行,所以通常它處理的數(shù)據(jù)有“時序”這個特點。既然是“時序”,那么就不是同一個時刻完成的,所以不能并行化。
          綜上所述:attention優(yōu)點 = CNN并行+RNN全局資訊+對輸入尺寸(時序長度維度上)沒有限制。
          如果你能創(chuàng)造一個擁有上面三點優(yōu)點的東西出來,你也可以引領潮流。
          然后回到代碼,再熟悉這么幾個設置:
          • batch維度:大家利用同樣的權重和操作提取特征,可以理解為for循環(huán)式,相互之間沒有信息交互;
          • multi head維度:同batch類似,不過是利用的不同權重和相同操作提取特征,最后concate一起使用;
          • FC層:是作用在每一個特征上,類似CNN中的1X1,可以叫“pointwise”,和序列長度沒有關系;因為序列中所有的特征經(jīng)過的是同一個FC。
          下面看這個圖,看完不懂的可以扇自己了:
          attention的順序是:
          1. 你有長度為n(序列)的特征,每個特征都是一個向量;
          2. 每個向量都經(jīng)過FC1,F(xiàn)C2,F(xiàn)C3獲取到q,k,v三個向量(長度自己定),記住,不同特征用的是同一個FC1,F(xiàn)C2,F(xiàn)C3。可以說對于一個head,就一組FC1,F(xiàn)C2,F(xiàn)C3。
          3. 特征1的q1和所有特征的k 進行點乘,獲取一串值,注意:和自己的k也進行點乘;點乘向量變標量,表示相似性。多個K可不就是一串標量。
          4. 3中的那一串值進行softmax操作,作為權重 對所有v加權求和,獲得特征1輸出;
          5. 其他所有的特征和特征1的操作一樣,注意所有特征是一塊并行計算的;
          6. 最后獲取的和輸入一樣長度的特征序列再經(jīng)過FC進行長度(特征維度)調整,也可以不要;
          對了,softmax之前不要忘記 除以 qkv長度開方進行scaled,其實就是標準化操作(我覺得可以理解為各種N(BN,GN,LN等))。



          猜您喜歡:

          ?戳我,查看GAN的系列專輯~!
          一頓午飯外賣,成為CV視覺前沿弄潮兒!
          CVPR 2022 | 25+方向、最新50篇GAN論文
          ?ICCV 2021 | 35個主題GAN論文匯總
          超110篇!CVPR 2021最全GAN論文梳理
          超100篇!CVPR 2020最全GAN論文梳理


          拆解組新的GAN:解耦表征MixNMatch

          StarGAN第2版:多域多樣性圖像生成


          附下載 |?《可解釋的機器學習》中文版

          附下載 |《TensorFlow 2.0 深度學習算法實戰(zhàn)》

          附下載 |《計算機視覺中的數(shù)學方法》分享


          《基于深度學習的表面缺陷檢測方法綜述》

          《零樣本圖像分類綜述: 十年進展》

          《基于深度神經(jīng)網(wǎng)絡的少樣本學習綜述》


          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天射中文网 | 黄色小视频在线免费观看 | 97超碰人人模人人爱 | 特级茜茜人体444WWwtini | 青青草,十月丁香在线 |