回覆列表
-
1 # 論智
-
2 # Aimanooooo
隨著演算法應用地位的商業提升,演算法類職位逐漸細分為演算法工程師、演算法科學家、演算法架構師,目前大部分演算法集中在機器學習領域和運籌學演算法,機器學習領域又以深度學習最為炙手,廣泛運用在計算機視覺,自然語言處理,資料探勘,搜尋推薦方向中。對於機器學習工程師而言,首先要熟悉基本的數學知識如線性代數和數學分析,還要有較好的數理統計基礎,從實踐中講,最最佳化方法和多元統計分析、隨機過程使用率最廣,另外還有資訊理論相關知識。演算法科學家一般要求專業數學素養,這個且不言表,注意大學的高等數學和專業數學不可同日而語。工程師的角色在於理解運用解決具體實踐問題,而不在於創新。
對於機器學習演算法工程師而言,統計和線性代數毫無疑問是需要掌握的。
統計比如評估機器學習演算法的表現,用到的各種指標就源於統計學,包括準確率、召回、F1、AUROC等。
再比如很多機器學習演算法都假定資料符合某種分佈(或至少接近某種分佈),同樣,這些分佈的知識也屬於統計學。
線性代數尤其是矩陣的各種變換,因為大量機器學習演算法都是在和矩陣打交道。
比如,現在很火熱的深度學習中最常用的卷積操作,就是矩陣的變換。
其他還有一些內容:
多變數微積分。比如,現在無比熱門的神經網路,最佳化方法幾乎全是基於梯度下降,而梯度下降,其實就是鏈式求導。不過,理工科應該都學過這方面的課程。
機率論。機率也是機器學習演算法中頻繁用到的。不過基礎的機率知識在統計學中已經包括了,而比較深入的機率知識其實在機器學習演算法設計的時候並不經常用到。