日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

训练softmax分类器实例_CS224N NLP with Deep Learning(四):Window分类器与神经网络

發(fā)布時間:2023/12/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 训练softmax分类器实例_CS224N NLP with Deep Learning(四):Window分类器与神经网络 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Softmax分類器

我們來回顧一下機器學習中的分類問題。首先定義一些符號,假設我們有訓練集

,其中 為輸入, 為標簽,共包括 個樣本; 表示第 個樣本,是一個 維的向量; 表示第 個樣本的標簽,它的取值是 個類別的其中一個。對于簡單的二分類問題,我們可以用簡單的邏輯回歸來訓練。而對于多分類問題,則可以用OVR (one-vs-rest) 等方法構造多個邏輯回歸,或者用更簡潔一些的softmax分類器,接下來我們就來介紹一下softmax分類器。設 權重矩陣,那么softmax分類器預測的概率為

其中

表示 的第 行。顯然我們希望我們預測的概率分布與真實的分布盡量相似,而在信息論中,KL散度(KL divergence)是一種用來衡量兩個分布的差異的方法,那么也就是說我們想讓預測分布和真實分布的KL散度最小。對于 ,如果用 表示其類別的真實分布,則 ,即類 的概率為 ,其他類的概率為 。如果我們預測的概率分布為 ,則 與 的KL散度為

注意到其中

是一個常數(shù),因此最小化 和 的KL散度相當于最小化

叫做交叉熵(cross entropy)損失函數(shù)。由于這里只有 ,因此這時交叉熵與負對數(shù)似然 等價。接下來我們就通過交叉熵來定義softmax分類器的損失函數(shù)

其中

。而在實踐中我們通常還要在損失函數(shù)中加上一個正則化項來防止過擬合,即

過擬合

通常

是模型中的所有參數(shù)組成的向量,這里 是 的所有列向量組成的向量,即

而在更新時,我們需要求

而如果我們需要同時訓練詞向量的話,我們則需要求

這時其維數(shù)達到了

,當詞匯量很大時,將會很容易過擬合。那么我們需不需要自己訓練詞向量呢?我們來看下面的例子。

考慮一個用邏輯回歸做單詞分類問題。假設我們有預訓練的詞向量,其中單詞“TV”、“telly”和“television”這幾個詞很接近,此時直接用邏輯回歸得到的結果如下

而如果我們的訓練集中有“TV”和“telly”,而沒有“television”,并且在這個訓練集上重新訓練詞向量的話,那么“TV”和“telly”的詞向量就會有一定的偏移,但“television”的詞向量卻沒有變化。即

這顯然不是我們想要的結果。那么也就是說需不需要自己訓練詞向量取決于數(shù)據(jù)集。如果你只有一個很小的訓練集,那么不要自己訓練詞向量,直接用預訓練的詞向量效果就會很好;而如果你有充足的訓練集,那么自己訓練詞向量效果可能會更好一些。


Window Classification

對一個單詞進行分類的問題并不常見,但是在判斷多義詞的詞義時還是會用到。有些多義詞可以同時表達兩個相反的意思,比如“to sanction”的含義可能是“to permit”,也可能是“to punish”;“to seed”可能表示“to place seeds”,也可能表示“to remove seeds”。有些多義詞則可能表示兩個完全不相關的事物,比如“Paris”可能是法國巴黎,也可能是“Paris Hilton”(帕麗斯·希爾頓);“Hathaway”可能是“Berkshire Hathaway”(伯克希爾·哈撒韋公司),也可能是“Anne Hathaway”(安妮·海瑟薇女神!)。想要判斷多義詞在文中到底是哪個意思,就需要上下文的幫助。一個簡單的方法就是Window Classification,即考慮一定窗口大小內的上下文。

比如一個命名實體識別(Named Entity Recognition, NER)任務,通常是四分類(人名、地名、機構名、None)任務,假設我們判斷單詞“Paris”,如果選取大小為2的窗口,那么我們需要考慮包括“Paris”在內的五個單詞,即

我們把這五個單詞的詞向量拼在一起,得到

,之后我們通過softmax分類器來判斷其詞義了。令 表示真實的類 的預測概率,則

然后同樣用交叉熵作為損失函數(shù)

其中

。接下來我們來推導損失函數(shù)的梯度,首先

其中

是我們預測的分布, 是真實分布(One-hot向量)。從而得到

簡化一下,就是

這就是損失函數(shù)對

的導數(shù)了,也就是說 。同樣我們可以求出損失函數(shù)對權重 的梯度 ,將兩個梯度拼在一起就是 。然后就可以使用梯度下降來訓練模型了。

Neural Network

softmax雖然簡單有效,但只能擬合線性的決策邊界,無法解決線性不可分的問題。接下來我們來看看能夠擬合非線性決策邊界神經(jīng)網(wǎng)絡。一個簡單的單層神經(jīng)網(wǎng)絡可以表示為

其中

是激活函數(shù),通常使用非線性的sigmoid函數(shù)或ReLU等。損失函數(shù)通常也使用上文提到的交叉熵損失函數(shù)。

為了對神經(jīng)網(wǎng)絡有一個更深入的了解,我們來考慮一個簡化版的NER任務:判斷單詞是不是地名。如果我們用一個簡單的單層神經(jīng)網(wǎng)絡來建模,輸入仍是

,而輸出層只有一個神經(jīng)元 表示其得分,那么

如果我們用

表示正確窗口(即中心詞是地名)的得分,用 來表示錯誤窗口(即中心詞不是地名)的得分,那么自然地會希望 要比 大。這時候我們就不需要交叉熵損失函數(shù)了,我們可以使用更簡單的Max-margin loss(也稱hinge loss,常用于SVM),即

的時候 ,而當 時, 。也就是說,我們不僅希望 比 大,而且至少要大 ,這樣才能更好的判斷結果。

上面是對于單個窗口的損失函數(shù),而完整的損失函數(shù)則要對每個正確窗口采樣幾個錯誤窗口,然后再求和。這與Word2Vec的負采樣類似。

接下來我們來推導其反向傳播,首先

之后

這一步是對矩陣

求導,不理解的同學可以先考慮對單個元素 求導,由于 只出現(xiàn)在 中,因此

繼續(xù)推導可得

也就是說

,拼成整個矩陣就是 。類似的,我們可以推導出

對于

,求導的過程也類似,在此不再贅述。至此我們成功推導了一個簡單的單層神經(jīng)網(wǎng)絡的前向傳播和反向傳播,對于更復雜的神經(jīng)網(wǎng)絡,我們之后再詳細說明。

相關閱讀:

TJH:CS224N NLP with Deep Learning(一):Introduction?zhuanlan.zhihu.comTJH:CS224N NLP with Deep Learning(二):詞向量之Word2Vec?zhuanlan.zhihu.comTJH:CS224N NLP with Deep Learning(三):詞向量之GloVe?zhuanlan.zhihu.comTJH:CS224N NLP with Deep Learning(四):Window分類器與神經(jīng)網(wǎng)絡?zhuanlan.zhihu.comTJH:CS224N NLP with Deep Learning(番外1):fastText?zhuanlan.zhihu.comTJH:CS224N NLP with Deep Learning(五):反向傳播?zhuanlan.zhihu.comTJH:CS224N NLP with Deep Learning(五):依存分析?zhuanlan.zhihu.comTJH:CS224N NLP with Deep Learning(六):語言模型與循環(huán)神經(jīng)網(wǎng)絡?zhuanlan.zhihu.com

總結

以上是生活随笔為你收集整理的训练softmax分类器实例_CS224N NLP with Deep Learning(四):Window分类器与神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。