機器學習中有哪些形式簡單卻很巧妙的 idea?
- 2019 年 12 月 2 日
- 筆記
編輯:紅色石頭 報道:AI有道 https://www.zhihu.com/question/347847220
有哪些像 GAN 這種形式簡單卻功能強大的 idea?
1. 異常檢查演算法Isolation Forest(孤立森林)
作者:桔了個仔 https://www.zhihu.com/question/347847220/answer/836019446
原理超簡單,但檢測效果可以說是state of the art. 對一個空間進行二分,早劃分「孤立」出來的就是很可能異常的。「孤立」指的是這一邊只有這一個數據點。因為是二分,我們可以構建一顆二叉樹。例如下圖的一棵樹,第一次二分,左邊有數據的a,b,c,右邊只有d,那麼d大概率就是異常點。為啥?想想你畫一條線,把一把米分成了兩邊,左邊只有一粒,那左邊那粒很可能是離其他米粒很遠。

為了更直觀,有更多一步了解,請看下圖,直覺上我們就知道 [公式] 是普通點, [公式] 是異常點。那麼用Isolation tree怎麼解釋呢?

如果要把xi孤立出來,需要很11次劃線,而x0需要的次數要少很多。所以x0比xi更可能是異常點。一棵樹不夠可信?沒事,記得隨機森林random forest不?沒錯,這裡也引進一堆樹。如果多數的樹都在前幾次分割時分出同一個點,那麼這個點是異常點的概率就非常高了。

可以看到,樹的數量(橫軸)超過10時,平均分割次數(縱軸)就收斂了。從這個圖我們可以看出,某個點x0 被「孤立」前,平均分割次數低於5,那麼x0就是異常點。
原理是不是超級簡單呢。如果想了解更多數學上的原理,可以參考下面的參考文獻。
參考文獻:
https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf
2. word2vec
作者:苘郁蓁
https://www.zhihu.com/question/347847220/answer/881216785
2013年Mikolov的神作word2vec,目前兩篇paper的引用量已經達到15669和12670了!這個工作屬於nlp預訓練和graph embedding的里程碑,而且思想還賊好理解。
word2vec的思想可以簡單的歸結為一句話:利用海量的文本序列,根據上下文單詞預測目標單詞共現的概率,讓一個構造的網路向概率最大化優化,得到的參數矩陣就是單詞的向量。
具體來說,對於Skip-Gram模型,就是給定句子中一個特定的詞(input word),隨機選它附近的一個詞,網路的目標是預測選到這個附近詞的概率。而對於CBOW模型則相反。而對於一個單詞,先作one-hot,乘以參數矩陣,就得到了單詞的向量表示,一圖勝千言:

更加細緻的negative sampling和hierarchical softmax都是針對訓練問題的優化,但這一思想的本質就是很簡單優雅。
舉個簡單的例子:詞表大小為9的一段文本序列one-hot,乘以一個參數矩陣(藍色部分),做均值pooling,乘以一個參數矩陣然後經過softmax層得到對應目標單詞的概率向量(最後的紅色部分),向量維度為詞表大小,再根據ground truth反向傳播優化參數矩陣,最後得到的就是類似圖1的參數矩陣,列為詞表大小9,行為詞向量的維度4(注意:參數矩陣方向跟圖1反過來了)。

word2vec在nlp領域的應用就不用說了,目前已經成為所有nlp模型的標配步驟。
更令我吃驚的是它在其他領域的遍地開花。這裡整理一下最近幾年在其他領域的embedding工作合集,全部是高峰會!全部都有落地!就是這麼簡單粗暴而優雅!

3. 成分分析(Principal components analysis,PCA)
作者:Evan
https://www.zhihu.com/question/347847220/answer/871450361

4. Residual learning
作者:我愛吃三文魚
https://www.zhihu.com/question/347847220/answer/854604632
Kaiming大神的Residual learning:
形式:y = f(x) + x
影響了後續的3萬份研究工作。
5. SVM
作者:Cuute
https://www.zhihu.com/question/347847220/answer/874707947
我不知道svm的形式算不算簡單,但是從圖上來講很直觀。

這個小東西是上個世紀六七十年代就已經提出來的一個想法。通過不同類別分界的某些點來畫出一個分割面,進而實現了分類。很像夾逼定理。
svm的精巧在於這個想法,是一個很自然的方法,不用數學光看圖就能看出來的一個方法。並且能很自然的去發散。
比如說,圖中的兩個類別的邊界極其明顯,是一個線性的邊界。但是一定會存在這樣的兩類點,不能在當前的平面上使用一個線性的分類來解決。那麼如果這些點只是三維向二維平面的投影呢?
如果這兩類點是有高度差的,那麼是不是有可能還會找到一個分介面在三維空間進行分類?
三維找不到,那會不會是四維……
於是,我們引出了核方法。
最後,你覺得機器學習中有哪些形式簡單卻又很巧妙的 idea?歡迎評論~