Sunday, December 12, 2021

Perplexity

Perplexity 

2020/12/21

-----

PPL,Transformer 的評估標準之一。

-----


https://pixabay.com/zh/photos/confused-muddled-illogical-880735/

-----

likelihood 與 probability 的差異

2021/11/20

「Likelihood:用已知的(實驗)數據作出(影響實驗結果的)參數的函數,藉以求取參數的數值。 Probability:用已知的(影響實驗結果的)參數作出(能夠預測實驗結果的)函數,藉以預測實驗的結果。」

簡單說,先有理論得到數據,是 probability,先取樣得到數據,再建立機率模型,是 likelihood。

https://www.zhihu.com/question/50828855

-----

「Perplexity is defined as the exponentiated average negative log-likelihood of a sequence. 」


https://huggingface.co/transformers/perplexity.html

-----

References

# PPL

Gamallo, Pablo, José Ramom Pichel Campos, and Inaki Alegria. "A perplexity-based method for similar languages discrimination." Proceedings of the fourth workshop on NLP for similar languages, varieties and dialects (VarDial). 2017.

https://www.aclweb.org/anthology/W17-1213.pdf


Perplexity of fixed-length models — transformers 4.1.1 documentation

https://huggingface.co/transformers/perplexity.html

BLEU

 BLEU

2020/11/02

-----

BLEU(Bilingual Evaluation Understudy,發音近似 blue),Transformer 的評估標準之二。

-----


https://pixabay.com/zh/photos/champs-de-lave-volcans-paysage-4637076/

-----

「通常我們有 BLEU score(Bilingual Evaluation Understudy 雙語評估替補) 來解決。在戲曲界,understudy 指的是候補演員。」[2]。

「聽到老法講到 Cordon Bleu 時 bleu 的發音就跟英文的 blue 相近。」[3]。

-----


# BLEU

-----

Bilingual Evaluation Understudy 雙語評估替補。understudy 在戲曲界指的是候補演員。

一、modified n-gram(Pn)統計預測句的 n-gram 出現在參考句中的次數,但每個 gram 的次數不得超出參考句該 gram 的次數。舉例,輸出句有 7 個 the,參考句有 2 個 the,輸出句只能算 2 個正確,不能算 7 個正確。。

二、BP:短句比較容易得高分,所以加一個懲罰項。

-----


-----

BLEU 計算範例

candidate:Going to play basketball this afternoon ?(含標點符號字數為 7)

reference:Going to play basketball in the afternoon ?(含標點符號字數為 8)

P1 = 6/7 = 0.857...(Going to play basketball afternoon ?)

P2 = 4/6 = 0.666...(Going to, to play, play basketball, afternoon ?)

P3 = 2/5 = 0.4(Going to play, to play basketball)

P4 = 1/4 = 0.25(Going to play basketball)

r = 8

c = 7

BLEU = 0.423

-----

https://www.cnblogs.com/by-dream/p/7679284.html

https://blog.csdn.net/qq_42067550/article/details/105957469

https://tw.answers.yahoo.com/question/index?qid=20080619000016KK03830

-----


References

◎ 主要論文

[1] BLEU

Papineni, Kishore, et al. "BLEU: a method for automatic evaluation of machine translation." Proceedings of the 40th annual meeting of the Association for Computational Linguistics. 2002.

https://www.aclweb.org/anthology/P02-1040.pdf

-----

◎ 網路文章

[2] NLP机器翻译任务中,如何用Bleu score评价翻译质量(学习心得)_AItrust的博客-CSDN博客

https://blog.csdn.net/qq_42067550/article/details/105957469


[3] 請問一下這個字bleu | Yahoo奇摩知識+

https://tw.answers.yahoo.com/question/index?qid=20080619000016KK03830

-----

Zoom

 Zoom

2021/03/01

-----


https://pixabay.com/zh/photos/architecture-new-york-city-manhattan-1850129/

-----

Zoom 注意事項。


一,使用前一天先將筆電的電池充飽。其實接上電源就可以。

二,服裝整齊。

三,新會議。

四,測試喇叭和麥克風。喇叭不要外接,才能調整音量。

五,停止視訊。將開啟視訊取消。畫面會由 WebCam 變成 Icon。

六,分享畫面(螢幕)。

七,上方功能表。更多。會議資訊。邀請連結。複製連結。

八,將連結傳至聊天室。退出 NB 的 messenger,只用手機的 messenger。

九,使用電腦語音設備(才會有聲音)。

十,錄影。

-----

Mathematics

 Mathematics

2021/10/01

-----


https://pixabay.com/zh/illustrations/geometry-mathematics-dice-1023846/

-----

likelihood 與 probability 的差異

2021/11/20

「Likelihood:用已知的(實驗)數據作出(影響實驗結果的)參數的函數,藉以求取參數的數值。 Probability:用已知的(影響實驗結果的)參數作出(能夠預測實驗結果的)函數,藉以預測實驗的結果。」

簡單說,先有理論得到數據,是 probability,先取樣得到數據,再建立機率模型,是 likelihood。

https://www.zhihu.com/question/50828855

-----

「變異數」與「標準差」

2021/11/12

「定義: 用於表示一組數值資料中的各數值相對於該組數值資料之平均數的分散程度。 計算各數值與平均數的差,取其平方後加總,再除以數值個數,得「變異數」。 變異數開根號後得「標準差」。」

http://homepage.ntu.edu.tw/~clhsieh/biostatistic/3/3-8.htm

-----

求證 n > 2,(n, 2n)區間必有一個質數。

2021/11/01

「伯特蘭-切比雪夫定理。另一個稍弱說法是:對於所有大於 1 的整數 n,存在一個質數 p,符合 n < p < 2n。1845 年約瑟·伯特蘭提出這個猜想。伯特蘭檢查了 2 至 3×10^6 之間的所有數。1850 年切比雪夫證明了這個猜想。拉馬努金給出較簡單的證明,而保羅·艾狄胥則藉二項式係數給出了另一個簡單的證明。」。

https://zhidao.baidu.com/question/296484699.html

https://zh.wikipedia.org/wiki/%E4%BC%AF%E7%89%B9%E8%98%AD-%E5%88%87%E6%AF%94%E9%9B%AA%E5%A4%AB%E5%AE%9A%E7%90%86

-----

傅立葉變換

2021/10/21

一、正交

二、傅立葉級數

三、傅立葉變換

四、應用

傅立叶变换如何理解?美颜和变声都是什么原理?李永乐老师告诉你 - YouTube

https://www.youtube.com/watch?v=0LuyxzqI3Hk

-----

Fourier Transform

2021/10/20

「「傅立葉轉換」是雙射函數,輸入輸出都是一串複數,可以是離散數列或者連續函數,各有對應名稱。」

「傅立葉轉換是線性函數,恰是正規正交矩陣。」

「時間複雜度優於 O(N²) 的傅立葉轉換演算法,老人家稱作「快速傅立葉轉換 Fast Fourier Transform, FFT 」。」

https://web.ntnu.edu.tw/~algo/Wave.html

-----

Euler's Formula

2021/10/19

「強者歐拉發現這世界上有一個神奇數字 e , e 的純虛數次方竟然在複數平面上繞圈兒。這真是一個超乎常理的發現!」

「有了歐拉公式,一個複數也可以重新表示成 e 的次方、另乘上倍率。次方值即是角度乘 𝑖 ,倍率即是長度。」

https://web.ntnu.edu.tw/~algo/Wave.html

-----

Complex Number

2021/10/18

「複數平面、二維平面、極座標平面是不同的事情,不要搞混了。」

「一個複數可以重新表示成一個長度與一個角度,叫做極座標表示法。長度可以用畢氏定理求得,角度可以用 arctan 函數求得。一個長度與一個角度也可以還原成一個複數。實部可以用 cos 函數求得,虛部可以用 sin 函數求得。」

「長度也有人稱作強度( magnitude ),角度也有人稱作相位( phase )。」

https://web.ntnu.edu.tw/~algo/Wave.html

-----

一個計量金融大師在華爾街:從物理學家到高盛董事的波瀾人生

2021/10/02

「財務學源起於經濟學,經濟學在研究有限資源的分配問題,然而財務學在研究有限資金的分配問題。由於財務問題牽涉到更多未來不確定的問題,需要處理許多隨機過程與偏微分方程式等問題,吸引數學家進入財務領域。另外,財務問題在應用上需要數值分析與程式設計,故也加入不少資訊工程人才。然而,自美蘇太空競賽結束,更多同時具備數學與資訊的物理學家進入了華爾街,也開啟了計量財務金融學的歷史新里程。」

「本書非常適合學術界的學者閱讀,也適合實務界人士閱讀,更適合有志從自然科學領域(不論是數學、物理或資訊等領域) 轉入財務金融這個社會科學領域的學子來閱讀。」

https://www.books.com.tw/products/0010348274

-----

楊振寧先生的數學貢獻

2021/10/01

「現今只有兩類數學著作。一類是你看完第一頁就不想看下去了,另一類是你看完第一句話就不想看下去了。」

https://mp.weixin.qq.com/s?__biz=MzA5NTM1MDk3Ng%3D%3D&mid=2247495573&idx=1&sn=e2dfb9dff7a761d4e07f7bdf598def37&chksm=9042163aa7359f2c965cb14c9902ee0d364497635fd0245428c794039e9dfc0539797d94ad2e&scene=21

-----

Friday, December 10, 2021

Introduction to Natural Language Processing

Introduction to Natural Language Processing

2020/07/13

-----

一、Introduction to Natural Language Processing


https://pixabay.com/zh/photos/especially-message-positive-setting-5243208/

前言:

本篇為 NLP 的簡介。一開始先介紹 CV 的向量,接著再介紹 NLP 的向量。圖像跟文字雖然各有其特性,但是進到向量層級後,主要都是數學的運算。所以奉勸想要深入 CV 或 NLP 的同好,基本的 CV 跟 NLP 知識,都是深度學習的常識,都要掌握起來。

接下來是 LSTM,基本的時間序列運算單元。Seq2seq 與 Attention 運用 LSTM 架構 Codec 進行機器翻譯等 NLP 任務。ConvS2S 將 LSTM 換成一維卷積可以平行運算,並將 Attention 拆解成 QKV。Transformer 則分別在 Encoder 與 Decoder 端有 Multi-head 的 Self-attention。

GPT-1 運用 Transformer 的 Encoder 架構單向的預訓練模型。ELMo 是雙向的 LSTM 預訓練模型。BERT 吸收 ELMo 設計,運用 Transformer 的 Decoder 架構雙向的預訓練模型。

-----

二、Outline


http://hemingwang.blogspot.com/2020/07/introduction-to-natural-language.html

Introduction to Natural Language Processing

◎ Vector
◎ Word2vec(Word to Vector)

◎ LSTM(Long Short-Term Memory)
◎ Seq2seq(Sequence to Sequence)
◎ Attention
◎ ConvS2S(Convolutonal Sequence to Sequence)
◎ Transformer

◎ BERT(Bidirectional Encoder Representations from Transformers)

-----

三、Pixel


http://hemingwang.blogspot.com/2017/03/ailenet-f6.html

說明:

本次介紹深度學習的自然語言處理。由於不少人認為 CV 或 NLP 兩者差距很大,因此在進入 NLP 之前,我們利用三張圖片講一點 CV 跟 NLP 共通之處:向量。CV 處理的是數位圖片,由像素構成,像素的值,在灰階而言,代表明暗度。三張 RGB 的灰階圖片,可以構成彩色圖片。

-----

四、3D Vector


https://c3d.libretexts.org/CalcPlot3D/CalcPlot3D-Help/section-vectorexplorations.html

說明:

如果我們把一張灰階圖片,按照像素的值 3D 化,那圖片就變成向量,每個像素是空間上的一個點。

-----

五、Conv3


https://medium.com/coinmonks/paper-review-of-vggnet-1st-runner-up-of-ilsvlc-2014-image-classification-d02355543a11

說明:

影像的特徵之一,是點與附近的點關連性很大,跟遠處的點則不一定。所以數位影像處理,我們會運用一個小的濾波器,譬如 3x3 或 5x5,進行處理。經典的分類模型 VGGNet,反覆運用 3x3 的卷積核(濾波器)串成較大的卷積核,越後面的視野越大。

點跟附近的點關連性很大,點跟自己位置的點關連性也很大。所以有 1x1 Convolution 或 Conv1,其實跟標準的卷積不一樣。Conv1 可以將同一層的 Feature Maps 壓縮成較少的張數或擴展成較多的張數。壓縮是減少運算量而保留訊息,擴展主要是調整維度的一致性以便運算。相關的文章有 NIN、SENet、SKNet。

以上,我們用三張圖,簡單介紹 CV 的向量。

語言跟影像有一個很大的差異是圖像通常用語言進行 label,而在語言每個字跟每個字是互相 label,所以海量資料的預訓練模型 BERT 目前是 NLP 的主流。

-----

六、One Hot Encoding


https://hackmd.io/@allen108108/SJ42exwlH

說明:

自然語言要用電腦進行處理,第一步還是要先把文字向量化。

一般是 one hot encoding。假設一本字典有三千個字,我們可以用一個維度三千的陣列代表一個字,然後依序編碼。

One hot encoding 有兩個主要缺點:第一,同義詞或同類別的詞無法從數值上看出關係。第二,稀疏矩陣佔的空間很大。

-----

七、Word Embedding

如果我們把高維度的向量壓縮成低維度的向量,譬如 3000 變成 512,就能解決上面兩個問題:同義詞與佔用空間。經典的演算法是 Word2vec。

-----

八、King - Man + Woman = Queen


https://arxiv.org/abs/1708.02709

說明:

舉一個經典的例子,經過 Word2vec 之後,King(向量) - Man (向量)+ Woman(向量) = Queen(向量)。

-----

九、Word2vec


https://arxiv.org/abs/1301.3781

https://medium.com/@tengyuanchang/%E8%AE%93%E9%9B%BB%E8%85%A6%E8%81%BD%E6%87%82%E4%BA%BA%E8%A9%B1-%E7%90%86%E8%A7%A3-nlp-%E9%87%8D%E8%A6%81%E6%8A%80%E8%A1%93-word2vec-%E7%9A%84-skip-gram-%E6%A8%A1%E5%9E%8B-73d0239ad698

說明:

Word2vec 其實由兩個演算法構成,CBOW 跟 Skip-gram。CBOW 利用周邊的字預測中間的字,Skip-gram 利用中間的字預測周邊的字。

-----

一0、Skip-gram


https://lilianweng.github.io/lil-log/2017/10/15/learning-word-embedding.html

說明:

以下我們簡單解說 Skip-gram。

-----

一一、Skip-gram Model



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

說明:

首先進行 one hot encoding,這是輸入層的資料。隱藏層只有一層,也沒有激活函數,隱藏層的神經元數目,就是詞向量的維度。最後則是輸出層,輸出層的輸出個數,跟 one hot encoding 的維度相同。這裡會轉換成 softmax,以便成為一個機率分布。

-----

一二、Skip Gram Data



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

訓練時會先有一個 sliding window 滑過所有句子。假定 window 大小為 5,則在句子中間,一次會有四筆訓練資料產生。反向傳播法一般會在 LeNet 這個主題說明,在此則不展開。

-----

一三、Skip-gram Result


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

說明:

訓練完後,輸入層跟隱藏層的神經元之間的權重,是一個陣列,每一列代表一個字的 word embedding。

以上簡單用八張圖說明 Word2vec。

-----

一四、RNN


http://hemingwang.blogspot.com/2019/09/understanding-lstm-networks.html

說明:

RNN 是處理時間序列的運算單元。跟時間有關的資料,都適合用 RNN 處理,譬如音樂、語音、震動的值、等等。語言轉成向量後,也可以用 RNN 來處理。RNN 構造簡單,但有很多缺點,後來有較複雜的設計。

-----

一五、LSTM


http://hemingwang.blogspot.com/2019/09/understanding-lstm-networks.html

說明:

基於 RNN,產生了 LSTM。三門設計,第一個門是忘記門,也就是上一筆資料要保留多少訊息。第二個門是輸入門。第三個門是輸出門。三門設計可以保留訊息到比較後面,中途流失較少。

最早在 LeNet,激活函數用 sigmoid。此處激活函數用 tanh。而 sigmoid 在此的用途是當「門」,讓通過的資料百分比,控制在 0 與 1 之間。

-----

一六、Stock


https://lilianweng.github.io/lil-log/2017/07/08/predict-stock-prices-using-RNN-part-1.html

說明:

這裡列出一個 LSTM 預測股價的應用。

-----

一七、Seq2seq


https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks

https://medium.com/@gau820827/%E6%95%99%E9%9B%BB%E8%85%A6%E5%AF%AB%E4%BD%9C-ai%E7%90%83%E8%A9%95-seq2seq%E6%A8%A1%E5%9E%8B%E6%87%89%E7%94%A8%E7%AD%86%E8%A8%98-pytorch-python3-31e853573dd0

說明:

Seq2seq,運用 LSTM 把一串字壓縮成一個向量。然後再轉成對應的字串。

比方說,英文可以轉德文,論文可以轉摘要,摘要可以轉標題,關鍵字可以轉短文,等等。

怎麼做?靠訓練。

以英德翻譯為例,首先有一個資料集,裡面是對應的英文句子跟德文句子,丟進去後,輸出要跟丟進去的德文句子越接近越好。用反向傳播法 BPTT 讓損失函數的值越來越小,訓練完成後,你丟英文句子進去,對應的德文句子就跑出來了。

-----

一八、Seq2seq


https://jeddy92.github.io/JEddy92.github.io/ts_seq2seq_intro/

說明:

GRU 是有別於 LSTM 的運算單元。設計上較簡單,但是較不容易理解。效能上則是類似,兩者用的人都很多。

-----

一九、Attention


https://arxiv.org/abs/1409.0473

https://medium.com/@bgg/seq2seq-pay-attention-to-self-attention-part-1-%E4%B8%AD%E6%96%87%E7%89%88-2714bbd92727

說明:

一個句子若很長,壓縮成向量後,就容易損失訊息。每一個輸出的字,都分配有一個向量,描述其跟每個輸入字的關連性,就比壓縮成單一向量解碼要精確的多。

-----

二0、Attention


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

說明:

較易理解的架構。

-----

廿一、Attention


https://arxiv.org/abs/1508.04025

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

說明:

展開後可以得到一個矩陣。

-----

廿二、ConvS2S


https://arxiv.org/abs/1705.03122

https://www.telesens.co/2019/04/21/understanding-incremental-decoding-in-fairseq/

說明:

ConvS2S 相較於 Attention,有三個主要的貢獻:

一、將 LSTM 換成一維卷積,方便平行運算。
二、將文字向量分解成 Query、Key、Value。
三、有八層 Attention Tables。

其實這些概念都不是它獨創,只是它整合的不錯。另外,它的成果也很快就被 Transformer 超越了。但位於 Attention 跟 Transformer 之間,是一篇很好的中介論文。

-----

廿三、ConvS2S


https://arxiv.org/abs/1705.03122

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

說明:

八層。

-----

廿四、QKVC


http://deeplearning.hatenablog.com/entry/convs2s

說明:

Transformer 的 QKV,在 ConvS2S 已經出現了。實際上,這個概念來自 End-to-End Memory Networks 與 Key-Value Memory Networks。

-----

廿五、Self-Attention


https://jalammar.github.io/illustrated-transformer/

說明:

Transformer 在 Encoder 端與 Decoder 端,都有 Self-Attention。圖中可以看到,it 可以指 The animal,也可以表示 tired。

-----

廿六、QKV


https://lilianweng.github.io/lil-log/2018/06/24/attention-attention.html

Query、Key、Value。大致上 Key 可以代表 index,Value 則是文字的內涵意義。

Encoder 與 Decoder,除了各自有自己的 QKV Self-Attention 編碼,另外實際解碼時,Q 在 decoder 端,K、V 在 encoder 端。

-----

廿七、PKV


https://medium.com/@joealato/attention-in-nlp-734c6fa9d983

說明:

從 Attention 到 Key-Value 到 QKV。

-----

廿八、QKV


https://jalammar.github.io/illustrated-transformer/

說明:

QKV 怎麼來的?靠訓練。

-----

廿九、STORM


https://bloody-disgusting.com/news/3285841/massive-twister-highlights-into-the-storm-poster/

說明:

深度學習的十篇基礎論文。前五篇 CV,以 LeNet、NIN、ResNet 三篇 CNN 開始,另外有 FCN 與 YOLOv1 兩個 CNN 的應用。後五篇 NLP,除了一開始 LSTM 是運算單元,後續四篇 Seq2seq、Attention、ConvS2S、Transformer,都可以理解成 Source Target Output Relational Model(STORM),是一個 Encoder-Decoder 的 Codec 架構,English-Deutsche 的英德翻譯是 Encoder-Decoder 的一個典型應用。

-----

三0、BERT


https://arxiv.org/abs/1810.04805

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

說明:

Transformer Encoder-Decoder 的架構。

GPT-1 是運用 Transformer Decoder 的單向預訓練模型。
BERT 是運用 Transformer Encoder 的雙向預訓練模型。

ELMo 是運用 LSTM 的雙向預訓練模型。

-----

卅一、GPT and Transformer Decoder


https://leemeng.tw/gpt2-language-model-generate-chinese-jing-yong-novels.html

GPT-1 是單向的 Transformer Decoder 模型。GPT-2 一下子又超越 BERT。

-----

卅二、GPT-1


https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

https://blog.csdn.net/qq_35883464/article/details/100173045

說明:

GPT 採用兩階段過程:先利用語言模型進行預訓練,再通過 Fine-tuning 的模式解決下游任務。

-----

卅三、ELMo


https://medium.com/saarthi-ai/elmo-for-contextual-word-embedding-for-text-classification-24c9693b0045

說明:

ELMo 是個雙向的 LSTM 語言模型。可以考慮到之前的文字,也可以考慮到以後的文字。另外,對於一字多義的問題,則是以拼接不同層的向量來解決。在訓練過程中,不同層可以學到不同的概念。

-----

卅四、BERT and Transformer Encoder


https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html

說明:

BERT 是一個雙向的 Transformer Encoder 模型。

-----

卅五、Two Pretraining Methods


https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html

說明:

有預測中間字跟預測下個句子兩種預訓練方法,概念來自 Word2vec 的 CBOW 與 Skip-gram。

-----

卅六、Four Tasks


https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html

說明:

微調後,可以執行四大類 NLP 任務。

-----

卅七、BERT Family


https://www.analyticsvidhya.com/blog/2019/10/8-ambitious-data-science-projects-github/

說明:

基本上,目前的 NLP 幾乎都是 BERT 的延伸。

-----

References

[1] The Star Also Rises: AI 三部曲(深度學習:從入門到精通)
https://hemingwang.blogspot.com/2019/05/trilogy.html

[2] The Star Also Rises: 全方位 AI 課程(精華篇)
https://hemingwang.blogspot.com/2020/01/all-round-ai-lectures-highlight.html

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

-----

Thursday, November 25, 2021

高雄小旅行(二0):西子灣

 高雄小旅行(二0):西子灣

2021/11/25

立冬之後是小雪。

昨天晚上下了一點小雨。

醒的很早,打坐完,吃早餐。決定出門,臨時決定是西子灣。

-----



-----

東南北西。

東邊,算是潮州吧。

南邊,到東港。

北邊,快到樹德科大。不過還是寫澄清湖。

西邊,這次當然是西子灣。

-----



-----

穿過市區,並不算是很好的路線。

上班上學,空氣混濁。

-----



-----

西子灣,其實也可以說中山大學。在裡面騎的體驗還不錯。

往柴山的方向,騎了一小段。

還看到錦蛇。

問了一下說明錦蛇的路人。往柴山路不通,是軍事管制區。

差不多就是原路騎回。七點到九點,花了兩個小時。

本來其實沒有打算出門,不過工作有個進度,還是維持出門運動的習慣比較好。

果然感覺不錯。

-----

高雄小旅行

高雄小旅行

2021/10/07

-----


2021/03/27

-----

高雄小旅行(二0):西子灣

2021/11/25 Thu

https://hemingwang.blogspot.com/2021/11/blog-post_25.html


高雄小旅行(一九):紫雲寺

2021/11/18 Thu

https://hemingwang.blogspot.com/2021/11/blog-post_18.html


高雄小旅行(一八):澄清湖

2021/11/12 Fri

https://hemingwang.blogspot.com/2021/11/blog-post_29.html


高雄小旅行(一七):長治

2021/11/06 Sat

https://hemingwang.blogspot.com/2021/11/blog-post_51.html


高雄小旅行(一六):大樹

2021/11/04 Thu

https://hemingwang.blogspot.com/2021/11/blog-post_5.html


高雄小旅行(一五):東港

2021/10/28 Thu

http://hemingwang.blogspot.com/2021/10/blog-post_4.html


高雄小旅行(一四):鳳邑麵線

2021/10/23 Sat

https://hemingwang.blogspot.com/2021/10/blog-post_23.html


高雄小旅行(一三):大寮 - 北 - 高 71 - 捷運大寮站

2021/10/21 Thu

https://hemingwang.blogspot.com/2021/10/71.html


高雄小旅行(一二):鳳山大潤發

2021/10/16 Sat

https://hemingwang.blogspot.com/2021/10/blog-post_93.html


高雄小旅行(一一):大寮 - 南 - 光明路

2021/10/15 Fri

https://hemingwang.blogspot.com/2021/10/blog-post_8.html


高雄小旅行(一0):大寮 - 北 - 光明路

2021/10/06 Wed

https://hemingwang.blogspot.com/2021/10/blog-post_6.html


高雄小旅行(九):潮州 - 來義

2021/10/02 Sat

https://hemingwang.blogspot.com/2021/10/blog-post.html


高雄小旅行(八):大寮 - 南 - 台 25

2021/09/29 Wed

https://hemingwang.blogspot.com/2021/09/blog-post_27.html


高雄小旅行(七):大寮 - 北 - 台25

2021/09/24 Fri

https://hemingwang.blogspot.com/2021/09/25.html


高雄小旅行(六):萬丹 - 竹田

2021/09/20 Mon

https://hemingwang.blogspot.com/2021/09/blog-post_9.html


高雄小旅行(五):萬丹紅豆餅(黃)

2021/09/18 Sat

https://hemingwang.blogspot.com/2021/09/blog-post_18.html


高雄小旅行(四):萬丹 - 社皮

2021/09/17 Fri

https://hemingwang.blogspot.com/2021/09/blog-post_17.html


高雄小旅行(三):萬丹

2021/09/08 Wed

https://hemingwang.blogspot.com/2021/09/blog-post_11.html


高雄小旅行(二):六度素食

2021/09/04 Sat

https://hemingwang.blogspot.com/2021/09/blog-post.html


高雄小旅行(一):88 - 高屏溪

2021/08/29 Sun

https://hemingwang.blogspot.com/2021/08/88.html

-----

Sunday, November 21, 2021

喜寶

 喜寶

2021/11/21

喜寶是亦舒的代表作,名列世紀百強第 91。

-----

由於在世紀百強之內,又是香港人的作品,又是倪匡的妹妹,所以之前有興趣看一下。從好讀下載後,看一點,就覺得沒有很適合,就停了。

沒想到,昨天晚上,一口氣看完。

-----

回老家後,發現有「藍鳥記」跟「散髮」,都是短篇小說,都很明快流暢。雖然我不知道這兩本是哪裡跑出來的。

於是又過了一陣子,先後讀了好讀上面的四本長篇小說。

紫微願。

我的前半生。

朝花夕拾。

喜寶。

-----

「紫微願」是女強人為愛希望把年齡降低。剛好遇到外星人。降低後發現沒有那麼好用,再拜託外星人調回去。雖然有外星人,還是一個戀愛故事。帶一點人生哲理。

「我的前半生」,中年的醫生太太被離婚。之後在社會上奮鬥,又重新覓得佳偶,是一個童話。有點寫實又不太真實。

「朝花夕拾」,無意中穿越時空照顧媽媽。也有一場求不得的戀愛。衛斯理有出現。

最後是「喜寶」。一個出賣靈魂或者出賣肉體的劍橋女大學生,最後愛上了買她的富翁,最後被毀了,最後其實沒有被毀。

有種浮士德的況味。

-----

「愛」、「金錢」、「健康」,何者重要?

或者,為金錢放棄愛,值得嗎?

或者,為金錢放棄人生,值得嗎?

很辛酸的主題,最後還是有一點被寫成喜劇。

假定喜寶當初沒有賣給富翁,那她如何取得學費繼續讀書,我想這是另一個故事了。

-----


ELMo(四):Appendix

 ELMo(四):Appendix

2021/11/18

-----


https://pixabay.com/zh/photos/child-girl-face-bath-wash-foam-645451/

--

Modified from # BERT。

--

# ELMo

-----


# ELMo

-----

NER Deep Learning


# NER

-----

References

# ELMo。被引用 5229 次。ELMo 是 Context2vec 中,做的最好的。

Peters, Matthew E., et al. "Deep contextualized word representations." arXiv preprint arXiv:1802.05365 (2018).

https://arxiv.org/pdf/1802.05365.pdf


# BERT。被引用 12556 次。

Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).

https://arxiv.org/pdf/1810.04805.pdf


# NER

Yadav, Vikas, and Steven Bethard. "A survey on recent advances in named entity recognition from deep learning models." arXiv preprint arXiv:1910.11470 (2019).

https://arxiv.org/pdf/1910.11470.pdf

-----