談談基於機器學習的編程到底比傳統編程強在哪裏?

在本文開始之前,筆者要和大家分享兩個在網絡上流行的公式:

傳統編程的公式:規則+數據=答案
機器學習的公式:答案+數據=規則

這兩個公式中的三個關鍵詞是一模一樣的,分別是數據、規則和答案,但是這三個關鍵詞在等號左右的排列位置卻不同。從中我們不難看出,機器學習正在改變着整個編程行業。

而這一觀點也得到了一些專家的佐證,以網絡安全爲例,Institute for Critical Infrastructure Technology高級研究員James Scott 曾表示,基於簽名的惡意軟件檢測已死,取而代之的是基於機器學習的人工智能,它將成爲防禦變異哈希最好的方式。

那麼,基於機器學習的編程到底與傳統編程有哪些不同呢?顧名思義,機器學習大部分工作是由機器來完成的,而傳統編程需要程序員自己根據具體的問題建模解決。除此之外,基於機器學習的編程比傳統編程還強在哪裏呢?

輸入

首先,兩者輸入的都是數據,但是能夠接受的數據類型不同。基於機器學習的編程基本可以接受所有的數據類型,例如聲音、圖片、視頻、文本等等,而傳統編程接受的數據類型要看程序員的設置,一般來說只可以接受程序員定義好的數據類型。

基於機器學習的數據選擇還可以分爲三部分,訓練用數據、驗證用數據和測試用數據。隨着數據的不斷累積,反覆讓之前的簡單邏輯與數據結果進行比對,不斷修正驗證,最終結果會愈趨向正確。而傳統編程是基於規則的算法,如果發生錯誤,那麼在被發現之前,該錯誤會一直重複發生。

處理

基於機器學習的編程中,處理包括知識表示和模式匹配、搜索、邏輯、問題解決和學習。而在傳統編程中,需要根據待解決的問題設計程序,並完成字符輸入。

機器學習比較常見的3個應用場景分別是:一次性模型,要解決的問題是由上級嚴格定義的,並且提供了一些小型數據;嵌入模型,裏面有許多變量,比如,模型是靜態的還是迭代的,是局部的還是通過API遠程調用的等等;深度模型,建立用於特定某個領域預測的模型,並通過經驗和技巧來提升和證明其準確性。

預測

基於機器學習的編程是基於預測的,而傳統編程是基於解釋的。基於概率、基於反饋、基於總結,這是機器學習這種經驗主義最大的特點,也是與傳統程序設計這種基於因果關係的最大不同點。

結論

通過上文對比,基於機器學習的編程在很多方面都勝過傳統編程,傳統編程更適合於簡單的任務,而基於機器學習的編程更適合解決複雜的問題。針對基於機器學習的編程步驟,普華永道也給出了描述,筆者在此貼出來,希望能對大家有用。

普華永道信息圖總結的機器學習的主要流程/步驟:

  • 選擇數據:這一過程又分爲三部分,分別是訓練用數據、驗證用數據、測試用數據
  • 數據建模:使用訓練數據構建涉及相關特徵的模型
  • 驗證模型:用驗證數據驗證建立的模型
  • 調試模型:爲了提升模型的性能,使用更多的數據、不同的特徵,調整參數,這也是最耗時耗力的一步
  • 使用模型:部署模型訓練好的模型,對新的數據進行預測
  • 測試模型:使用測試用數據驗證模型,並評估模型的性能

參考鏈接:https://www.analyticsindiamag.com/heres-why-machine-learning-wins-hands-down-against-conventional-programming/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章