不少自學的朋友很容易陷入到焦慮當中,尤其是在學習理論受挫之後。 再加上不少人是碼農出身,實作演算法是就成了最容易緩解焦慮的途徑。
然而要警惕掉到「用忙碌而逃避困難「的陷阱當中去,更好的緩解焦慮的方法是套用演算法,去解決具體問題。 眾所周知,機器學習最不友好的部份不是編程,而是背後的數學原理,以及如何使用它來解決問題。照我來看,只有兩種情況值得動手造輪子:
除此之外,對於研究者來說,復現前沿研究也有一定的價值,因為可能:
對於大部份人而言,想要了解怎麽調參、每個參數的含義,都不必重新實作演算法。可以直接閱讀文件,也可以在在各種場景中慢慢摸索。比如參加比賽的過程中,或者實際工作裏,甚至看看部落格、讀讀知乎都可以有些收獲。 同時,如果能夠透過解決實際問題來加深對模型的理解,還可以增強自己的信心,比實作演算法可能要更為劃算且有效。
在不少公司,機器學習研究員和工程師是兩個崗位,前者提出思路和理論,後者去高效的實作。從這點上也不難看出一個實踐者不一定需要具備兩方面技能,畢竟時間有限。 如果你對自己的定位是使用者(更接近工程師的話),多補補理論是當務之急。如果你想成為一個研究者,必要的編程能力要有,但不要花過多的時間在提高碼力上,能做好理論已經很難,可以交給工程師實作、最佳化你的理論。
所以,沒什麽特殊情況,實作演算法可以當做玩票,多看看模型、了解一些理論、套用到具體案例上去才是正事。
對於自學的朋友,也可以參考一下我的文章:如何用3個月零基礎入門機器學習?