-
1 # 鳶尾花公爵
-
2 # 論智
sklearn、TensorFlow(包括TensorFlow的高層封裝Keras)、PyTorch……Python有這麼多優秀的庫,實現各種機器學習演算法很方便,何必要自己造輪子呢?
你可以看看最近發表的機器學習演算法方面的論文,很多論文都開源了配套的程式碼,這些程式碼基本都是基於各種框架實現模型,幾乎看不到從頭自己造輪子實現的。
自己造輪子,不僅寫起來麻煩(這還假設你造的輪子語義上沒有錯誤、效能上也不差),別人閱讀起來也不方便。
很多人過分推崇從頭寫起(write X from scratch),恨不得什麼都自己寫,不屑於使用TensorFlow等框架。但是,TensorFlow不用,那numpy用不用呢?所以說,這種想法其實不可取。
當然,這也不是絕對的,以下情形屬於例外:
基於學習的目的,加深對基本概念/模組的理解。比如用框架寫的話,像反向傳播之類的輪子都是現成的。脫離框架自己手寫,可以更好地理解這些基本概念/模組。基於效能需求進行最佳化,比如,使用了特殊的硬體,或者應用場景非常特殊,現有的輪子不能用或者不好用。應付面試。其實這個可以歸入第一條。因為之所以有些面試會設定脫離框架手寫演算法的題目,就是為了看你對基本概念/模組的理解程度。 -
3 # 網際網路奇點
不需要。
原因之一:Python有它非常強大並且開源的免費庫,這是Python語言為什麼要優於其他語言的原因。
原因之二:我們只需要找到相對應的庫進行加以修改即可。
原因之三:現在機器學習的演算法大多都已成熟,我們沒有必要重新研究別人已經研究出來的演算法,浪費時間,得不償失。
然而,如果設計的新演算法時,我推薦在已有的演算法基礎升級會更好,因為從無到有畢竟是很困難的。
-
4 # AI踐行者
不用自己寫輪子,為了理解實現細節的話,可以自己寫寫。在專案中,沒有必要,很多可用好用的庫。只要把這些庫提供的演算法介面,熟練使用就行。呵呵,說起來,這就是別人眼中的調庫軍。其實也就是苦力活。別被嚇著了啊。
其實在應用工程上有很多需要把這些演算法組合,整合起來,達到應用的要求。這也很考驗對機器學習演算法的掌握能力。說多了。
-
5 # 滑翔的小鹿
如果是出於學習階段,理解機器學習的演算法並自己去實現是有必要的。這可以加深對知識的理解。但即便如此,也不是要求從頭開始造輪子,很多時候只是二次開發。
如果是工程應用,那麼就完全沒有必要去重複造輪子了。python目前提供的庫已經很強大了,也相當成熟,基本上能夠滿足一般工程應用的需求,這個時候再花大量精力去重複造輪子是很沒必要的。
回覆列表
目前機器學習主要有兩種形態,其一是搞演算法,主力是世界上知名大學(學院派)如MIT,大公司的發paper的核心團隊,如google。他們基本都是名校畢業的博士或在職的教授,為大家造輪子;其二是工程應用,自動駕駛,醫療影象,城市公共交通,語音識別等等,主要是要快速把演算法變現為可執行工程專案,絕大部分都是拿輪子直接用。
那麼是不是我們做工程的就一定不用做輪子了?那到不是,根據專案需求,改造輪子或重新造輪子都是可能的。