bert理解的基礎
(1)word embedding
(2)rnn
(3)seq2seq
(4)transformer
word embedding脈絡
w2v:詞對映到低維稠密空間,使得語義上相似的兩個詞在語義空間的距離也會比較近。
w2v的問題: 語義是上下文相關的。 而w2v訓練出來詞的向量始終只有乙個。
rnn/lstm/gru 來解決。 能記住一些歷史資訊。再往後發展,seq2seq由兩個rnn組成, 可用於翻譯、摘要、問答和對話系統。
rnn/lstm/gru的問題:大部分場景下監督資料量不足,難以學到複雜的上下文表示。
解決方案:無監督的上下文 word embedding,如elmo、openai gpt、 bert。
詳解變遷
(1)獨熱編碼
問題:高維、稀疏、正交(無法表達語義相似程度)
(2)語言模型,如n-gram模型,**句子概率
問題:a. 長距離依賴問題(住在法國…所以說xx流利)
b. 泛化能力問題(侷限於訓練資料)
(3)2023年 神經網路語言模型 可以解決問題 b.
原因:通過訓練出 詞向量,相似詞的詞向量在向量空間相近。
問題:計算低效。
(4)2023年 word2vec
分布式假設: 兩個詞上下文相似,則它們的語義也相似。
cbow:context**中心詞
skip-gram:中心詞**context
可以訓練出乙個比較的詞向量表示(「副產物」)
問題:沒考慮上下文
(5)rnn 有「記憶」能力
問題:反向傳播演算法中loss傳遞帶來的 梯度消失。無法解決長距離依賴的問題。
(6)lstm 通過門的機制來避免梯度消失
gru 把遺忘門和輸入門合併稱乙個更新門
乙個rnn的輸出:序列標註:n->n、文字分類:n->1
當n->m:機器翻譯,對話機械人等領域 沒法用乙個rnn實現。
所以使用兩個rnn, encoder和decoder。
普通seq2seq的問題:定長的context向量
(8)attention機制
翻譯某個詞時pay attention to 相關詞:
(soft對齊)
(9)rnn的問題:
c. 順序依賴,無法並行。很難訓練很深的rnn、lstm。
d. 單向資訊流的問題。
(10)self-attention 解決d 問題
普通的attention需要外部的「驅動」:
self-attention 自驅動:
編碼第t個詞時,用當前狀態去驅動:
(11)transformer結構
self-attention是transformer的一部分。
本質:多層的encoder-decoder。
而每一層 encoder 和 decoder:
decoder 還有 「普通」 的 attention 輸入來自 encoder。
encoder詳細結構, 注意 self-attention 和 fnn 的區別:
未完待續,具體學習資料參見:
bert簡介 Bert基礎介紹
bert理解 1 預訓練模型 bert是乙個預訓練的模型,那麼什麼是預訓練呢?假設已有a訓練集,先用a對網路進行預訓練,在a任務上學會網路引數,然後儲存以備後用。預訓練過程 當來乙個新的任務b,採取相同的網路結構,網路引數初始化的時候可以載入a訓練集學習好的引數,其他的高層引數隨機初始化,之後用b任...
BERT學習理解
在看了好多大牛們的部落格之後,關於bert有了乙個大概的理解,將一些知識點整理到這裡。bert的全稱是bidirectional encoder representation from transformers,利用了transformer的encoder部分,重點是預處理 訓練pre traini...
BERT的通俗理解
bert是乙個預訓練的模型,那麼什麼是預訓練呢?舉例子進行簡單的介紹 假設已有a訓練集,先用a對網路進行預訓練,在a任務上學會網路引數,然後儲存以備後用,當來乙個新的任務b,採取相同的網路結構,網路引數初始化的時候可以載入a學習好的引數,其他的高層引數隨機初始化,之後用b任務的訓練資料來訓練網路,當...