談談基於機器學習的程式設計到底比傳統程式設計強在哪裡?
在本文開始之前,筆者要和大家分享兩個在網路上流行的公式:
傳統程式設計的公式:規則+資料=答案
機器學習的公式:答案+資料=規則
這兩個公式中的三個關鍵詞是一模一樣的,分別是資料、規則和答案,但是這三個關鍵詞在等號左右的排列位置卻不同。從中我們不難看出,機器學習正在改變著整個程式設計行業。
而這一觀點也得到了一些專家的佐證,以網路安全為例,Institute for Critical Infrastructure Technology高階研究員James Scott 曾表示,基於簽名的惡意軟體檢測已死,取而代之的是基於機器學習的人工智慧,它將成為防禦變異雜湊最好的方式。
那麼,基於機器學習的程式設計到底與傳統程式設計有哪些不同呢?顧名思義,機器學習大部分工作是由機器來完成的,而傳統程式設計需要程式設計師自己根據具體的問題建模解決。除此之外,基於機器學習的程式設計比傳統程式設計還強在哪裡呢?
輸入
首先,兩者輸入的都是資料,但是能夠接受的資料型別不同。基於機器學習的程式設計基本可以接受所有的資料型別,例如聲音、圖片、視訊、文字等等,而傳統程式設計接受的資料型別要看程式設計師的設定,一般來說只可以接受程式設計師定義好的資料型別。
基於機器學習的資料選擇還可以分為三部分,訓練用資料、驗證用資料和測試用資料。隨著資料的不斷累積,反覆讓之前的簡單邏輯與資料結果進行比對,不斷修正驗證,最終結果會愈趨向正確。而傳統程式設計是基於規則的演算法,如果發生錯誤,那麼在被發現之前,該錯誤會一直重複發生。
處理
基於機器學習的程式設計中,處理包括知識表示和模式匹配、搜尋、邏輯、問題解決和學習。而在傳統程式設計中,需要根據待解決的問題設計程式,並完成字元輸入。
機器學習比較常見的3個應用場景分別是:一次性模型,要解決的問題是由上級嚴格定義的,並且提供了一些小型資料;嵌入模型,裡面有許多變數,比如,模型是靜態的還是迭代的,是區域性的還是通過API遠端呼叫的等等;深度模型,建立用於特定某個領域預測的模型,並通過經驗和技巧來提升和證明其準確性。
預測
基於機器學習的程式設計是基於預測的,而傳統程式設計是基於解釋的。基於概率、基於反饋、基於總結,這是機器學習這種經驗主義最大的特點,也是與傳統程式設計這種基於因果關係的最大不同點。
結論
通過上文對比,基於機器學習的程式設計在很多方面都勝過傳統程式設計,傳統程式設計更適合於簡單的任務,而基於機器學習的程式設計更適合解決複雜的問題。針對基於機器學習的程式設計步驟,普華永道也給出了描述,筆者在此貼出來,希望能對大家有用。
普華永道資訊圖總結的機器學習的主要流程/步驟:
- 選擇資料:這一過程又分為三部分,分別是訓練用資料、驗證用資料、測試用資料
- 資料建模:使用訓練資料構建涉及相關特徵的模型
- 驗證模型:用驗證資料驗證建立的模型
- 除錯模型:為了提升模型的效能,使用更多的資料、不同的特徵,調整引數,這也是最耗時耗力的一步
- 使用模型:部署模型訓練好的模型,對新的資料進行預測
- 測試模型:使用測試用資料驗證模型,並評估模型的效能
相關文章
- 高階程式設計師到底強在哪裡?程式設計師
- 談談機器學習與傳統程式設計之間的區別機器學習程式設計
- 程式設計到底難在哪裡?程式設計
- 好的程式設計師到底好在哪裡?程式設計師
- 非科班程式設計師和科班程式設計師的差距到底在哪裡?程式設計師
- 談談程式設計師程式設計師
- 談談非同步程式設計非同步程式設計
- 漫談程式設計師系列:程式設計師到底是什麼角色程式設計師
- 淺談程式設計程式設計
- 程式設計師的差距在哪裡?程式設計師的三個級別,你在哪裡?程式設計師
- 談談對程式設計師的管理程式設計師
- 談談 JavaScript 非同步程式設計JavaScript非同步程式設計
- 談談程式設計師的焦慮感程式設計師
- 談談對程式設計師的培養程式設計師
- 淺談程式設計思想程式設計
- 也談程式設計改革程式設計
- 談談程式設計師的離職和跳槽程式設計師
- “菜鳥”程式設計師和“大神”程式設計師差距在哪裡程式設計師
- 因《C程式設計伴侶》的爭執,談譚浩強《C程式設計》的批評C程式程式設計
- 程式設計師談薪指北程式設計師
- 淺談非同步程式設計非同步程式設計
- 淺談Windows API程式設計WindowsAPI程式設計
- 範型程式設計雜談程式設計
- 大齡程式設計師的前途在哪裡?程式設計師
- 程式設計師的上升空間在哪裡程式設計師
- 談談VB的資料庫程式設計方式 (轉)資料庫程式設計
- 漫談程式設計師系列:程式設計師零門檻?程式設計師
- 月入5000和20000的程式設計師,差距到底差在哪裡?程式設計師
- 談談依賴注入與面向介面程式設計依賴注入程式設計
- 漫談程式設計師系列:那些害死程式設計師的細節程式設計師
- 程式設計師的認知體現在哪裡?程式設計師
- 淺談程式設計正規化程式設計
- 漫談哲學與程式設計程式設計
- 談UIView Animation程式設計藝術UIView程式設計
- 漫談iOS AOP程式設計之路iOS程式設計
- 淺談物件導向程式設計物件程式設計
- 淺談程式設計師創業程式設計師創業
- 程式設計師談薪技巧公開,這樣談比預期高30%程式設計師