機器學習算法領域里,有一個頗受爭議的觀點:機器學習算法不需要數學,因為很多算法都封裝好了,調個包就能用,并不需要大量的數學知識。
對此我先拋出個人的愚見:機器學習算法從業者的確不需要花費大量的時間在數學上,相比于數學的研究,掌握調參的技巧更加重要,更具有實踐意義。然而,數學絕非一無是處。同樣是做機器學習算法,數學更好的人可以做出更加高效、更加簡潔的模型。
機器學習算法
調參和優化,在機器學習算法里面非常重要。接觸一個場景,根據需求去做算法,你發現準確度不好、loss很高等很多問題,這個時候哪怕你擁有非常深厚的數學功底,也未必能夠找到問題出在哪里。當然,數學知識會引導你找到一個大致的解決問題的方向,但不會告訴你解決問題的具體方法。所以如何獲取解決問題的方法?靠的是經驗。哪怕只會調包,做得多了也能積累出經驗。所以數學功底好的人,真不必瞧不上那些玩調包的人,因為論找問題的經驗,不一定誰更技高一籌。
工業界里模型并沒有那么多,而能調整的參數也沒有那么多。對于數學能力不是很強的機器學習算法工程師來說,這絕對是一件好事。因為就算數學知識不強,具備一定的調參經驗,也能做出不錯的效果。就拿工業界常用的Regression算法來講,這個算法真的比其他算法好嗎?倒也不是。出眾的算法,大多都是因為它更加穩定,更加易于解釋和說明。
機器學習算法
當然,很多人都在說機器學習算法想要入門,必須具有相當強的數學基礎。類似的言論不知道勸退了多少年輕人,因為數學這門學科對于很多人而言簡直就是噩夢般的存在。大家一看,數學要求那么高,還是算了吧。為什么大家都在說數學對于算法工程師的重要性呢?這里面是否高估了數學的重要性呢?存在這樣一個大家都不愿意放在臺面上說的問題:科班出身的怕被人搶了飯碗,所以一定會說這一行門檻很高,對于數學要求很高。
對于數學一竅不通的人要做機器學習算法,那是行不通的。但是,大家也不必高估數學對于算法的重要性,如果有人告訴你想搞算法必須要精通各種高深的數學理論,你也是不必相信的,合理看待數學對于算法的作用就好了。