N-gram模型,根據(jù)歷史有限的長(zhǎng)度的總模型生成小模型的概率
//P表示某幾個(gè)詞在一起的概率
Never too late to learn = W(learn/never,too,late) = P(never, too) * P(never,too,late) *P(never,too,late,to)*P(never,too,late,to,learn)
該模型符合馬可夫鏈模型

神經(jīng)元組成
n個(gè)W權(quán)重和輸入值X,相乘后和一個(gè)b組成輸入,F代表函數(shù),輸出一個(gè)h代表輸出值

神經(jīng)元的前向計(jì)算
當(dāng)輸入的值交叉輸入神經(jīng)網(wǎng)絡(luò)時(shí),他從一個(gè)向量變成了一個(gè)X*W的矩陣,所以輸出的時(shí)候,h1他變成了一個(gè)向量,重復(fù)H1 * Wh1

*為什么F是非線性函數(shù),因?yàn)榫€性的F會(huì)將多層神經(jīng)網(wǎng)絡(luò)坍縮成一層,就是多層其實(shí)可以用單層表示,不符合神經(jīng)網(wǎng)絡(luò)的規(guī)律

常見非線性函數(shù)

sigmoid 可以解決二分類問題
softmax 可以計(jì)算概率問題,多分類問題

Z代表是最后的層
其中 z 是一個(gè)向量,z_i 和 z_j 是其中的一個(gè)元素,把他們變成e的z_i次方,除以他們e冪次方的總和,y_i的總和是1,代表概率分布
損失函數(shù)
訓(xùn)練的目的就是降低損失?
常用損失減小的辦法:
均方差
用預(yù)測(cè)值-正確值的平方,越小則代表越準(zhǔn)

交叉熵 -log(f(x))
交叉熵可以看作是在真實(shí)分布p下,使用預(yù)測(cè)分布q來編碼信息所需的平均位數(shù)。交叉熵越小,表示預(yù)測(cè)分布越接近真實(shí)分布,信息的損失越小。
交叉熵的應(yīng)用范圍:
交叉熵可以用來作為神經(jīng)網(wǎng)絡(luò)的損失函數(shù),用來優(yōu)化分類模型的性能。分類模型的目標(biāo)是讓預(yù)測(cè)的概率分布盡可能接近真實(shí)的概率分布,即讓交叉熵盡可能小。交叉熵作為損失函數(shù)有以下優(yōu)點(diǎn):
交叉熵與最大似然估計(jì)相關(guān),最小化交叉熵等價(jià)于最大化數(shù)據(jù)的似然函數(shù),即最大化模型的擬合程度。
交叉熵適用于梯度下降優(yōu)化,因?yàn)樗且粋€(gè)可微分的函數(shù),而且它的梯度與預(yù)測(cè)值和真實(shí)值的差值成正比,這樣可以有效地調(diào)整模型的參數(shù)。
交叉熵可以處理類別不平衡的問題,因?yàn)樗鼘?duì)每個(gè)類別的貢獻(xiàn)是不同的,即使某些類別的樣本很少,也可以通過交叉熵給予足夠的懲罰。
P13非常難懂
大概意思就是:
一個(gè)神經(jīng)網(wǎng)絡(luò)的開發(fā)方向:
1. 前向傳播(Forward Propagation):
- 輸入數(shù)據(jù)傳入網(wǎng)絡(luò)。
- 數(shù)據(jù)在每一層被加權(quán)和偏置處理,然后通常會(huì)通過一個(gè)激活函數(shù)(比如ReLU或Sigmoid)。
- 最終產(chǎn)生輸出。
2. 計(jì)算損失(Loss Calculation):
- 使用損失函數(shù)(比如均方誤差或交叉熵)計(jì)算網(wǎng)絡(luò)輸出與實(shí)際值之間的差距。
3. 反向傳播(Backpropagation):
- 計(jì)算損失函數(shù)相對(duì)于每個(gè)參數(shù)的梯度。這個(gè)過程從輸出層開始,逐層向后進(jìn)行,直到輸入層。
- 梯度告訴我們參數(shù)應(yīng)該如何改變以減少損失。
4. 更新參數(shù)(Update Parameters):
- 使用計(jì)算出的梯度來更新網(wǎng)絡(luò)中的權(quán)重和偏置。
- 這里的學(xué)習(xí)率決定了更新的步長(zhǎng)大小。

- 求損失函數(shù)的梯度函數(shù),然后根據(jù)梯度就知道損失函數(shù)最陡峭或者最不陡峭的方向,然后根據(jù)學(xué)習(xí)率(0 - 1)乘以他得到梯度前進(jìn)的值
求該函數(shù)的斜率,維度多了就變成了求偏導(dǎo)數(shù)
正向-反向傳播可以求偏導(dǎo)數(shù)得到梯度下降法則
梯度下降法
P14:詞向量
Word2Vector
CBOW:根據(jù)輸入多個(gè)詞預(yù)測(cè)目標(biāo)詞

Skip-gram:根據(jù)target詞預(yù)測(cè)輸入詞

Negative Sampling 負(fù)采樣(減少計(jì)算量,采樣整個(gè)文本詞和采樣幾個(gè)詞)
采樣非目標(biāo)詞 后進(jìn)行softmax
Sub Sampling 負(fù)采樣(平衡罕見詞和常用詞)
1 - 根號(hào)(t/f(x))
RNN 循環(huán)神經(jīng)網(wǎng)絡(luò)

RNN容易出現(xiàn)梯度消失,或者梯度爆炸,沒聽懂
GRU 門控制單元
W和H加入一個(gè)Z控制輸入矩陣W和輸入H的調(diào)整
LSTM

ft的區(qū)間是是0-1之間,代表遺忘率




輸出門是計(jì)算ht的,傳送到下一層用的,講道理這個(gè)Ct和ht-1和Xt都用上了,非常復(fù)雜,視頻中說是對(duì)句子信息調(diào)整來修改表述
雙向RNN

卷積神經(jīng)網(wǎng)絡(luò) CNN
用于CV,Edge等圖像和NLP自然語(yǔ)言處理

Input x,類比圖像上的每個(gè)像素,Filter w代表覆蓋的像素區(qū)域滑塊. conv就是卷積操作
卷積核和每個(gè)覆蓋的值相乘,全部相加后變成一個(gè)值,就是特征值
深度學(xué)習(xí)流程
準(zhǔn)備數(shù)據(jù) -> 構(gòu)建模型 -> 訓(xùn)練模型 -> 驗(yàn)證模型 -> 測(cè)試模型
注意力機(jī)制 Attention
正常流程S1需要包含整個(gè)句子的內(nèi)容含義,這樣明顯太臃腫,屬于數(shù)據(jù)的瓶頸問題.
所以當(dāng)進(jìn)行玩Decoder解碼后,Encoder翻譯的每一個(gè)值S1開始,都與前面所以的隱向量進(jìn)行點(diǎn)積,求出關(guān)系密切程度,最后用Softmax找到分布關(guān)系最大的.此舉稱為注意力機(jī)制

最后拼接成為Yn = [On;Sn]向量去預(yù)測(cè)單詞,這里沒聽懂
直接連接Encoder和Decoder,防止梯度在RNN中傳播過長(zhǎng),可以解決梯度消失的問題,
可以解決信息瓶頸問題
可以直接可視化兩端的關(guān)系密切程度
缺點(diǎn)是順序執(zhí)行
Transformer
輸入層:
Byte Pair Encoding(BPE)
原理:
1.通過分解所有單詞變成字母,搜索字母表,找到最多出現(xiàn)的組合,變成一個(gè)新的詞
2.不斷重復(fù)1這個(gè)過程,同時(shí)刪除被合并且不再出現(xiàn)的詞,直到達(dá)到你輸入的詞匯數(shù)量限制
3.此時(shí)字典里面的每一個(gè)詞,稱為一個(gè)個(gè)Token

這里舉了一個(gè)英文最高級(jí)的例子,est,lowest,smartest,表示英文的最高級(jí),能助于模型理解詞性
解決了OOV問題(out of vocabulary),以前使用UNK代替,表示預(yù)處理造出了很多根本不存在的詞,這些詞也沒有辦法在文本中找到對(duì)應(yīng)的向量
位置編碼 Positional Encoding(PE)
很難,不太懂,原理:
Inusoidal Positional Encoding的原理是基于正弦和余弦函數(shù)的周期性特性。
這種編碼方式使得模型能夠?qū)W習(xí)到不同位置之間的相對(duì)位置信息,而不需要額外的參數(shù)或訓(xùn)練過程。
通過使用正弦和余弦函數(shù),可以保證不同位置的編碼之間存在一定的相似性,同時(shí)又能保持足夠的不同性,以區(qū)分不同位置的輸入。
具體而言,對(duì)于序列中的每個(gè)位置i和每個(gè)維度j,這里類似基數(shù)和偶數(shù)位,位置編碼PE(i, j)可以表示為:
PE(i, 2j) = sin(i / 10000^(2j/d_model))
PE(i, 2j+1) = cos(i / 10000^(2j/d_model))
其中,d_model是模型的隱藏層大?。磂mbedding的維度),i是位置,j是維度。
這樣,每個(gè)位置都會(huì)得到一個(gè)不同的編碼,而且編碼之間的差異會(huì)隨著位置的增加而增加,從而為模型提供了位置信息。
Transformer Block

多頭注意力機(jī)制 Multi-Head Attention
這章巨難!
像是對(duì)同一個(gè)X通過不同的W求了八個(gè)QKV,一共做了八次self attention
X代表輸入的某個(gè)token,W則是不同大模型通過訓(xùn)練出來的特定權(quán)重矩陣,代表不同的注意點(diǎn),比如一張圖,可以從顏色,形狀,材質(zhì),故事等方面去解析不同的attention,得到的X 乘以W,獲得不同的QKV,
可以參考這個(gè)大神講的,比較容易懂了Q、K、V 與 Multi-Head Attention 多頭注意力機(jī)制


本質(zhì)上是一種對(duì)token加權(quán)平均的做法,來表示哪個(gè)token更為重要,比如一句話中,主謂賓其實(shí)他們的權(quán)重是不一樣的,通常主語(yǔ)更重要,但是從語(yǔ)法來講,介詞和固定搭配反而比主語(yǔ)重要,多頭就是使用多個(gè)這種注意力對(duì)token進(jìn)行加權(quán),最后多頭平均在一起,那這句話的輸入就能從多維度去解讀,而不是僅僅在某一個(gè)維度,這是我的理解.其實(shí)沒太聽懂
驗(yàn)證了一下確實(shí)是這樣,通常會(huì)使用8頭,組成n x 512個(gè)維度去對(duì)一個(gè)token進(jìn)行釋義,其中QKV怎么來的,是通過transformer這個(gè)框架預(yù)訓(xùn)練的一個(gè)數(shù)據(jù)集計(jì)算出來的,里面包含了所有token他們之間的關(guān)系程度
預(yù)訓(xùn)練模型,就是基于語(yǔ)料對(duì)token進(jìn)行預(yù)處理的方法
通常針對(duì)你的自己的任務(wù),需要fine-turn自己合適的模型
Transformer實(shí)戰(zhàn)
善用Hugging face,BERT,GPT預(yù)訓(xùn)練方式
自動(dòng)Tokenization,完成token分割
