拓撲學在機器學習里有哪些應用呢?
01-25
就在之前還和數學出身的朋友討論過這個,就順便說一句。
說有沒有用,要看你這個用怎麼定義。如果說應用的用,那可以明確告訴你,幾乎沒用,如果你是機器學習出身,除非用到了特定的某個借鑒了這個思想的演算法,否則幾乎是用不上的。
那有沒有用處呢?答案完全相反,有用,用處是讓你更多的理解什麼是數學。其實上面的說法估計大家都知道,但之所以我想回答這個問題,是因為我想說下面這些話。
很多人對數學在機器學習(或者更廣泛的說,所有非數學學科)內的作用有誤解,經常能聽有人在說什麼都是數學。那就先回答這樣的一個問題:
【為什麼不是所有科研工作者都是數學出身?為什麼在數學之外,還要設置其他學科?】
為什麼要說這個,是應為,我覺得非數學專業的人,學數學的順序要和數學專業的相反。就說機器學習,從數學開始學你就完了,不知道哪年才能學到東西。正確的順序應該是:1.學習經典問題2.學習經典演算法3.學習經典演算法的直接數學基礎4.學習機器學習的一般性數學基礎(也就是適用所有演算法的基礎)
5.重新學一遍線代、概率、高數這些「基本的」東西。6.【最好再學次4】7.你可以開始學分析了8.你可以開始學拓撲這樣的【基礎】了9.帶徒弟的經驗,1-8步最快也要4-5年
可以看到,這是一個所謂【需求導向】的學習過程,為什麼要這樣?因為一個簡單的事實是:你不可能理解你學的數學是幹嗎用的,數學畢竟不是專門為機器學習(或者任何一個學科)服務的,數學和具體學科之間要有一個連接點(具體說,就是指出你的學科為什麼是符合數學公理的),並且事實上,幾乎所有學科都只在使用數學的(很小一個)子集。如果不是需求導向的學習,你學到轉行都學不到你要學的(想想為什麼學醫的不是從物理開始學)。【最終,就題主的問題,我給出的答案(只是給題主個人的答案)是:不著急學,等你分析學的差不多,感覺有實際需求的時候再開始也不晚。否則就和線代一樣,你當年就算考100,學了機器學習後照樣需要打回原形從新學】
初學者來試答一下,如有不妥之處還請高手指點。如果做深入的機器學習理論研究,會涉及到泛函分析,微分流形這些數學理論。而點集拓撲是這些理論的基礎,它不對機器學習有直接的影響,但如果不學好拓撲,很難理解那些高深的數學知識。事實上,拓撲是分析,代數共同的基礎。
推薦芒克里斯的拓撲學,我也剛開始學習。
推薦閱讀: