原创 可解釋的卷積神經網絡

深度學習的可解釋性一直是比較差的,因爲神經網絡不像傳統算法,可以明確的被解釋機器爲什麼下某種判斷,做某種分析。比如決策樹,就可以直接告訴你因爲XX特徵是XX,所以我們把它歸爲某類。又或者SVM,因爲訓練集中的X1和X2是支持向量,

原创 Meta Learning技術 MAML

Learning to learn——Meta learning Meta Learning 最常被用來解決少樣本(Few-Shot)的問題,在這邊我們介紹一篇經典的論文 Model-Agnostic Meta-Learning(

原创 統計學習方法(4) GBDT算法解釋與Python實現

迴歸樹 統計學習的部分也差不多該結束了,我希望以當前最效果最好的一種統計學習模型,Xgboost的原型GBDT來結尾。 GBDT的基礎是CART決策樹。在CART基學習器上使用boosting,形成更好的集成學習器,就是GBDT的

原创 線性代數的應用場景

機器學習與線性代數 自打我開始學習機器學習的相關知識以來,線性代數就一直是制約我讀懂算法的最大短板。儘管經過大概兩個月的學習,我的代數知識積累似乎已經足以讓我不害怕任何數學推導了,但是畢竟是將來要賴以生存的本領,如果有一天忘記了它

原创 FGSM攻擊機器學習模型

FGSM技術 對抗攻擊技術,因爲網絡的深層,很少的改變就有可能改變網絡中激活函數的方向,進而直接大量改變輸出。因此,從模型中得到特殊的輸入X就能讓模型產生嚴重的誤判,這種就是神經網絡攻擊技術。 我們希望得到和原輸入類似的輸入,但是

原创 統計學習方法(1) 梯度下降法和SMO算法實現SVM

SVM SVM是深度學習之前的一種最常用的監督學習方法, 可以用來做分類也可以做迴歸. 它的本質和感知機類似, 但是額外增加了大間隔的優化目標. 結合前面提到的核技巧, 我們可以把SVM推廣到非線性. 這樣實現的分類器將有着非常好

原创 SOM神經網絡、LVQ神經網絡、CPN神經網絡與Python實現

競爭型學習神經網絡 簡述 最近對神經網絡比較感興趣,因此花了兩三天時間對整個領域進行了簡單的調研,梳理和學習。其中深度學習,尤其以我們熟悉的如今大火的深度網絡模型,如CNN, RNN, GAN和AE及它們的子類等;是在本世紀初,硬

原创 圖論算法之 Dijkstra單源最短路、歐拉回路、最小生成樹、Fold-Fulkerson最大流

基本圖算法的思想與實現 整理總結了一些學習數據結構時常用的基礎算法,其中比較簡單的BFS、DFS、染色和Floyd算法等這裏就不再多說,這篇文章主要介紹一些做OJ和考試時很重點的算法。 Dijkstra最短路徑 無向圖算法的代表應

原创 無監督學習(1) 聚類算法簡述與Python實現

距離度量 好的我們開始學習聚類,聚類是一種無監督手段,嘗試僅僅依靠自變量的分佈把數據進行分類。很多聚類算法都基於向量的歐式距離進行,所以正確處理各特徵的尺度以及確定各特徵之間的權重比是聚類是否有效的關鍵。 最常用的距離度量方法是“

原创 CMAC小腦模型神經網絡與Python實現

CMAC 小腦模型神經網絡 簡述 CMAC是cerebellar model articulation controller,一種模擬小腦的模型。小腦對肢體動作的操作是近似“反射”的,CMAC的理念就是讓訓練後的網絡在應用時對輸入

原创 最優化理論實踐——遺傳算法解組合最優化

全局優化算法實踐 全局優化算法概述 我們討論的無約束優化方法僅限於凸優化,這些方法的使用很依賴函數的性質和初始迭代點的選取,在很多情況下只能收斂到局部最小點。爲了在更大尺度,更復雜的函數中搜索,我們需要一些不被局部最優侷限的方法。

原创 受限玻爾茲曼機RBM簡述與Python實現

生成式模型 生成式模型的理念大同小異,幾乎都是用一個模型產生概率分佈來擬合原始的數據分佈情況,計算兩個概率分佈的差異使用KL散度,優化概率模型的方法是最小化對數似然,可以用EM算法或梯度優化算法。 今天表現比較好的生成模型有VA

原创 無監督學習(2) 數據降維簡述與Python實現

爲什麼要數據降維 大數據時代面臨的最大問題是"維度災難",度量上的不平衡和高維空間的學習複雜度都讓機器學習算法在高維數據上很多時候行不通。而且,如果數據超過三維,它們也很難被可視化。不能被可視化的數據是很難理解的。 如果我們的數據

原创 監督學習方法小結(附Numpy與Pytorch實現)

超平面劃分 如果兩個數據集在空間中是兩個凸集,那麼它們可以用一個超平面來實現線性分割. 因此機器學習的最基礎分類問題就是學習一個超平面, 來解決凸集劃分問題. m維超平面的表達式可以寫成wTx+b=0w^Tx+b = 0wTx+b

原创 深度學習與計算機視覺(一) 深度圖片分類器

CV和深度學習 前幾篇博客講了一些深度學習常用結構的原理, 計算方法和實現. 大致有仿射網絡層, 卷積池化層, 時序運算RNN層, 以及BN, Dropout和激活函數, 損失函數等. 我也嘗試了用這些自己寫的結構搭建深度網絡解決