Friday, December 10, 2021

Deep Learning

 Deep Learning

2021/09/30

-----


https://pixabay.com/zh/photos/moutain-landscape-viet-nam-2093983/

-----

How the Embedding Layers in BERT Were Implemented

2021/12/08

「The Segment Embeddings layer only has 2 vector representations. The first vector (index 0) is assigned to all tokens that belong to input 1 while the last vector (index 1) is assigned to all tokens that belong to input 2.」

https://medium.com/@_init_/why-bert-has-3-embedding-layers-and-their-implementation-details-9c261108e28a

-----

Label Smoothing

2021/11/30

「網路會驅使自身往正確標籤和錯誤標籤差值大的方向學習,在訓練數據不足以表徵所以的樣本特徵的情況下,這就會導致網路過擬合。」

「label smoothing 的提出就是為了解決上述問題。最早是在 Inception v2 中被提出,是一種正則化的策略。其通過"軟化"傳統的 one-hot 類型標籤,使得在計算損失值時能夠有效抑製過擬合現象。」

https://blog.csdn.net/qiu931110/article/details/86684241

-----

multi-head attention

2021/11/26

「學習 Transformer 模型的時候,建議大家先關注多頭注意力。而當你學習 multi-head attention 時,在看到什麼是 scaled dot-product attention 之前,你應該了解 multi-head attention 的整個結構。」

https://data-science-blog.com/blog/2021/04/07/multi-head-attention-mechanism/

-----

Transformer 的 FFN

2021/11/26

維度從 512 到 2048 到 512,使用一維卷積(Conv1)。

一、「第一層 的 activation 是 ReLU,後面一層沒有activation。」「第一層映射到更大的空間,無外乎就是用了更大的網路,提升了模型的空間,沒有 FFN 當然也可以,但效果卻明顯較差。」

二、「鞏固自己原有信息來獲取一個 unique representation,不然結果可能每個位置的最後輸出會差不太多。」

https://zhuanlan.zhihu.com/p/75787683

-----

Masked

2021/11/23

「Decoder block 的第一個 Multi-Head Attention 採用了Masked 操作,因為在翻譯的過程中是順序翻譯的,即翻譯完第 i 個單詞,才可以翻譯第 i+1 個單詞。通過 Masked 操作可以防止第 i 個單詞知道 i+1 個單詞之後的信息。」

「Decoder 可以在訓練的過程中使用 Teacher Forcing 並且並行化訓練,即將正確的單詞序列 (<Begin> I have a cat) 和對應輸出 (I have a cat <end>) 傳遞到 Decoder。那麼在預測第 i 個輸出時,就要將第 i+1 之後的單詞掩蓋住。」

https://zhuanlan.zhihu.com/p/338817680

-----

VOLO: Vision Outlooker for Visual Recognition

2021/11/17

「這篇論文與 T2T-ViT 為同一篇作者,T2T-ViT 是在 2021/1 提出的,而 VOLO 則是 2021/6 提出的論文。在這篇論文中,作者又再一次提到 ViT backbone 不足的地方,於是這一次作者乾脆提出了一個全新的架構:Vision outlooker (VOLO),使得 transformer 中各個 token 之間的上下關系能進一步加強。」

https://mushding.space/2021/08/13/Vision-Transformer-%E6%BC%94%E5%8C%96%E5%8F%B2-VOLO-Vision-Outlooker-for-Visual-Recognition-%E4%B8%80%E7%A8%AE%E5%9F%BA%E6%96%BC-Transformer-%E7%9A%84%E6%96%B0%E6%9E%B6%E6%A7%8B/

-----

Masked Autoencoders Are Scalable Vision Learners

2021/11/17

「這篇論文展示了一種被稱為掩蔽自編碼器(masked autoencoders,MAE)的新方法,可以用作計算機視覺的可擴展自監督學習器。MAE 的方法很簡單:掩蔽輸入圖像的隨機區塊並重建丟失的像素。它基於兩個核心理念:研究人員開發了一個非對稱編碼器- 解碼器架構,其中一個編碼器只對可見的 patch 子集進行操作(沒有掩蔽 token),另一個簡單解碼器可以從潛在表徵和掩蔽 token 重建原始圖像。」

https://www.jiqizhixin.com/articles/2021-11-13

-----

中科院 DeepMind 聯手,用深度學習揭示大腦如何識別人臉

2021/11/15

「中科院常樂和加州理工曹穎之前都對獼猴的視覺機制做過研究,找出負責獼猴大腦負責識別面孔的是下顳葉皮層 (inferotemporal cortex)中的一部分。這次與 DeepMind 的合作中,他們選用自監督的 β-VAE(β 變分自動編碼器)來模擬大腦中負責識別面孔的模塊。」

https://min.news/science/d51a269de384a05bf3170181bcad63c5.html

-----

ELMo

2021/11/08

「在還沒有使用 ELMO 抽出來的 embedding 之前是不會知道 α1, α2 的值,先設定好要執行的任務,再將參數 α1, α2 與任務一起訓練,然後才得到 α1, α2 ,總之就是視為模型的一部份,一起訓練學習而得。」

https://hackmd.io/@shaoeChen/Bky0Cnx7L

-----

softmax

2021/11/07

使用自適應 softmax 的巨大加速只帶來了最低的準確性成本,因此任何進行語言建模的人都應該考慮使用它。

https://towardsdatascience.com/speed-up-your-deep-learning-language-model-up-to-1000-with-the-adaptive-softmax-part-1-e7cc1f89fcc9

-----

gi

2021/11/02

「gi 是上一個時間點 i−1 的 target embedding。」

「下圖用動畫更具體的示意 attention 的流程。」

Bahdanau 使用 decoder t-1 的時間(以及 encoder 的輸出)作為 attention 的計算來源。

Loung 使用 decoder t 的時間(以及 encoder 的輸出)作為 attention 的計算來源。

ConvS2S 兼具兩者之長,使用 t-1 的時間(gi)與 t 的時間,作為 attention 的計算來源。

https://ycts.github.io/weeklypapers/convSeq2seq/

-----

gi

2021/11/02

「gi:Decoder 在每一個時刻的輸入序列。」

https://zhuanlan.zhihu.com/p/27464080

-----

Close Test LSTM

2021/11/01

「Then for a word wi, we use (wi−k,…,wi−1,wi+1,…,wi+k) to try to predict wi.」

https://stefanengineering.com/2018/11/05/cloze-deletion-detection/

-----

RNN 語言模型

2021/10/31

「RNN (Recurrent Neural Network) 結構通過不斷的應用同一個矩陣 W 可實現參數的有效共享,並且沒有固定窗口的限制。」

「與之前的模型相比,RNN 模型的優勢是:1. 可以處理任意長度的輸入。2. 理論上 t 時刻可以利用之前很早的歷史信息。3. 對於長的輸入序列,模型大小並不增加。4. 每一時刻都採用相同的權重矩陣,有效的進行了參數共享。」

https://zhuanlan.zhihu.com/p/63397627

-----

ConvS2S 的 Padding

2021/10/29

「這邊有個細節:為了保證Conv的輸出長度和輸入是相同的,會在每層的 input 做 padding,Encoder 的部分如下圖:

但是在 Decoder, 為了 不讓某個時間點 看到 該時間點以後的資訊,會有稍微不同的結構: 假設 kernel size 為  k ,則在 input 前後 pad (k-1) 的單位,最後把後端的 k 個單位刪除。如下圖 (k=3):」

https://ycts.github.io/weeklypapers/convSeq2seq/

-----

What is the positional encoding in the transformer model?

2021/10/28

https://datascience.stackexchange.com/questions/51065/what-is-the-positional-encoding-in-the-transformer-model

-----

三種 positional encoding 方法簡述

2021/10/27

「在我們常用的文本模型中,RNN 和 textCNN 都是關於位置敏感的,使用它們對文本數據建模時,模型結構天然考慮了文本中詞與詞之間的順序關係。而以 attention 為核心的 transformer 則是位置不敏感的,使用這一類位置不敏感的模型的時候需要額外加入 positional encoding 引入文本中詞與詞的順序關係。」

https://zhuanlan.zhihu.com/p/121126531

-----

byte-pair encoding (BPE)

2021/10/26

「BPE 最早由 Philip Gage 提出,用來做數據壓縮上。它的原理是將常見連續的兩個符號以另一個符號表達。例如 ababab 中 a 後面很常接著 b 我們就用 c 表達 ab,並得到一個新的序列 ccc,c = ab 。」

https://theblackcat102.github.io/BPE/

-----

計算對齊分數

2021/10/06

「在 Luong Attention 中,對齊評分函數有 3 種不同的定義方式 —— dot、general 和 concat。這些評分函數利用上一步中產生的編碼器輸出和解碼器隱藏狀態來計算對齊分數。」

「點

第一個是點評分功能。這是最簡單的功能;為了產生對齊分數,我們只需要獲取編碼器的隱藏狀態並將它們乘以解碼器的隱藏狀態。」

「通用

第二種稱為通用,類似於點函數,只是在方程中加入了一個權重矩陣。」

「Concat

最後一個函數有點類似於 Bahdanau Attention 中計算對齊分數的方式,即解碼器隱藏狀態添加到編碼器隱藏狀態。」

https://blog.floydhub.com/attention-mechanism/

-----

Local Attention

2021/10/01

「這裡,context vector ct 的計算只關注窗口 [pt - D, pt + D] 內的 2D + 1 個 source hidden states(若發生越界,則忽略界外的 source hidden states)。其中 pt 是一個 source position index,可以理解為 attention的焦點,作為模型的參數, D 根據經驗來選擇。關於 pt 的計算,文章給出了兩種計算方案,Monotonic alignment (local-m) 與 Predictive alignment (local-p)。」

https://zhuanlan.zhihu.com/p/48424395

-----

Subword algorithms

2021/09/30

「OOV 處理的方法,大致上分為兩種,一種就是直白的說了「我不知道」,另一種則是委婉地說了「我再查查看」。前者語言模型會產生 UNK token,意思就是 Unknown(我不知道)。後者則被需使用 back-off 機制去處理。配有 back-off 的語言模型,需要維持數個不同精度的語言模型,當單詞不在最大精度的模型中,就「退到」更高精度模型查詢。」

「第三種方法,那就是利用產生 subwords 的方式來自動建立 vocabulary。」

https://medium.com/hackergirly/subword-algorithms-372f4c08d01f

-----

No comments: