遇到機器學習論文中完全看不懂的數學公式該怎樣才能看懂,有沒有什麼工具可以推導解釋計算的啊?
本人小白 對能看懂論文的人很羨慕 想花時間提升下自己 ,最近在看FM因子分解機的時候 發現網上很多博客講的都不清晰 就去看論文 然後發現各種符號表示還有公式 看不明白是什麼意思,請問遇到自己不熟悉的數學符號公式,有沒有什麼工具可以幫助理解,還是隻能從頭學,程度到了自然就看懂了?
https://www.csie.ntu.edu.tw/~b97053/paper/Factorization%20Machines%20with%20libFM.pdf
如果不是專門研究演算法的非計算機專業的學生,我的建議是對於機器學習,更多的是從宏觀上了解該某個機器學習方法的作用是什麼?輸入是什麼?輸出是什麼?可調節的超參數是什麼?各個超參數的含義是什麼?對於具體的數學公式其實不必做過多的糾結,更多的是理解數學公式背後的物理含義和數學意義。
下面針對每一個問題舉個例子哈。
(1)比如某個機器學習方法的作用是什麼?其實無外乎兩大類:監督學習和非監督學習,監督學習又分為分類和回歸,非監督學習又分為聚類、降維。因此,對於某個特定的機器學習方法,只要分清它是分類還是回歸,抑或是聚類還是降維就可以運用演算法了。比如常見的分類演算法包括Logistic Regression,Decision tree等,回歸演算法包括神經網路、線性回歸等,聚類包括K-means和DBSCAN,降維主要是PCA。瞭解各個演算法的分類後,就能知道各個演算法的作用是什麼,具有相同作用的演算法在一定程度上是可以互相替代的,只不過針對不同的數據集特徵,可能某一演算法會表現出更好的學習效果。
(2)輸入輸出是什麼?對於所有演算法,輸入都是數據集的特徵,不同的在於演算法的輸出和訓練樣本。對於分類演算法,輸出是樣本所在的類別;對於回歸演算法,輸出是一個連續空間上的任意實數;因為分類和回歸演算法都是監督學習範疇,所以訓練樣本是包含標籤的,也就是訓練樣本是包含輸出值的。對於聚類演算法,輸出同樣是樣本的類別,不過和分類演算法不一樣的地方在於,聚類是無監督學習,因此它的訓練樣本是不包含輸出值的。對於降維演算法,輸出是降維後的樣本特徵,同樣它的訓練樣本也是不包含輸出值的。
(3)可調節的超參數是什麼?超參數的含義是什麼?這個也是不同機器學習演算法的核心所在,比如k-means演算法中可調節的超參數包括聚類中心的數目、樣本點間距的度量方法等,其中聚類中心的數目規定了將樣本自動劃分為幾類,顯然聚類中心數越多,樣本會被分的越精細,但會丟失對樣本共性特徵的挖掘;若聚類中心數很少,樣本被分的越粗,不能體現出各聚類結果間的差異性,因此需要對聚類中心的數目進行試錯或通過特定方法進行確定。樣本點間距的度量方法包括幾何度量、絕對值度量等,它定義了樣本間差異性的度量規則,不同的度量規則可能導致不同的聚類結果。
瞭解了上述基本概念後,實際上就可以利用Python中提供的sklearn庫做自己的機器學習演算法啦~sklearn庫對目前絕大部分機器學習演算法做了封裝,使用起來特別簡單,只要給定輸入輸出,指定超參數,系統就能自己進行模型參數的學習和訓練~而常見論文中的公式,大部分都是抄的,並不是真的寫了那麼複雜的代碼,實際上代碼都是用的第三方庫。
當然上面的回答針對的是非計算機專業的學生,如果是專門研究機器學習演算法的,需要提出新演算法的,就另當別論了,那就真的需要讀懂數學公式還要自己寫代碼啦~
我的下面這個回答裏給出了推薦的機器學習的網站,在看視頻的時候,只需要從宏觀上對相關的理論進行把握,理解理論的intuition,至於具體的實現可以完全交給sklearn庫以及類似tensorflow的神經網路庫,裡面還給出了推薦配套閱讀的書籍以及相關資料的免費下載地址,希望對大家有所幫助哈~
有哪些可以自學機器學習、深度學習、人工智慧的網站??www.zhihu.com不需要什麼鬼工具,沒有什麼公式會是「完全看不懂的」,我的經驗是看不懂只有這麼幾點原因,先對個對號
數學符號有沒接觸過的
這個要麼不會碰到,要麼一碰到就完全無解,但能用在機器學習論文中的數學符號大多都有成熟的數學體系,或者純粹就是表示方便而已。這個只要翻一些基礎的資料就好了,其中機器學習領域這部分多數來自泛函分析或近世代數。
變數符號沒懂
先排除作者各種slightly abuse的情況,絕大多數期刊會議的論文能發出來給你看到的基本每條公式上下文都會有where X is XXXX這種很完備的解釋,先把每個變數都弄明白是啥含義在哪個空間意義是啥,公式裏哪怕有一個變數不知道都要翻整篇文章找到他的定義。如果作者沒有明確表達自己給出的符號是啥意思,請直接刪掉這篇民科論文。
絕大多數人看不懂公式不是因為真的專業知識不夠,而是一眼看到一大條嚇人的公式就條件反射的噁心。上面兩條基本就能搞定六七成問題,但如果想「看懂」一條公式,這還不太夠。
基礎不紮實
萬惡之源好吧……下至高數線代概率論,上至泛函測度概率圖模型,哪看不懂就回溯。但更多的情況是一篇論文前面有好多好多奠基的貢獻,這篇論文才在這些基礎上蹦出來的,這不屬於專業知識不足而是文章基礎知識不完善的問題,說白了就閱讀技巧。如果你無法從一篇文章中立刻找到從最簡單的模型到這篇論文是怎麼演化的,就先把這篇放一放,詳細看看related work,把前人提出的東西都扒出來擼一遍,通常這麼做完你會發現這篇文章如此複雜的公式,先是從很基礎的東西,經很多篇論文迭代優化以後形成的,這篇文章只不過是多次迭代中你看到的最後一次,而他的intuition就在introduction裏說明瞭。
不知道怎麼構造的
當你想知道一條公式為什麼這麼構造而去討論的時候,是不是經常都會聽到不少人(不乏老師教授等)很不在乎地對你說「這就是構造!巧妙的構造!你還問他怎麼來的當然是構造出來的!」放你羅圈屁哦。沒有哪條公式是瞎構造的,這個確實很玄學,但全靠個人慢慢積累,最關鍵的是各種運算元都有哪些性質和不足你都要十分清楚,這篇文章想解決什麼問題也要摸清楚。比方說幾個向量結合成一個向量你要怎麼構造,mean sum max min concat效果怎麼樣為什麼會這樣這樣有什麼問題,變換以後再這一溜效果怎麼樣為什麼會這樣這樣有什麼問題,這個變換怎麼構造效果怎麼樣為什麼會這樣這樣有什麼問題,常帶著這個疑問看論文時間長了以後,你自然可以批判地看待新提出的公式了。
廢話已完,直接拿題主這個為例(戰術後仰)