演算法這個詞最近變得非常流行。它已經從僅使用數學家的東西轉變為大多數營銷團隊用來推動人工智慧解決方案的東西。
在我的項目中,我意識到一些創業公司只是使用演算法這個詞而沒有真正解釋他們使用演算法的事實如何使項目成為「AI」。我希望這篇文章能幫助您理解「AI」演算法與其他演算法之間的區別。
什麼是演算法?
好吧,讓我們從一個簡單的定義開始吧。
演算法:在計算或其他解決問題的操作中要遵循的過程或規則集,尤其是計算機。
基本上,演算法的目標是解決特定問題,通常由某人將其定義為一系列步驟。
例如,製作蛋糕的食譜 – 這是一種演算法。
換句話說,演算法是幫助我們向計算機發出指令的快捷方式。演算法只是通過「and」,「or」或「not」語句告訴計算機下一步該做什麼。顯然,就像大多數與數學相關的事情一樣,它開始時非常簡單,但在擴展時變得無限複雜。重要的是要指出並非所有演算法都與AI或機器學習有關。
演算法為您能想到的幾乎任何AI系統提供指導。
聽起來不錯,但實際上傳統演算法存在問題。實際上,您必須告訴您創建一個一步一步的過程來實現您的目標。一些計算機演算法不是僅遵循明確的程序指令,而是設計為允許計算機自己學習。
機器學習
它是什麼?
機器學習:一組演算法,使軟體能夠更新並「學習」以前的結果,而無需程序員干預。它由結構化數據提供,以完成任務而無需編程如何操作。
機器學習由一系列演算法組成。基本上,AI(機器學習是AI的一個子集)旨在以與孩子相同的方式學習。由於數據集,AI可以根據這些發現找到模式並構建假設。
這稱為基於模型的學習,它允許AI做出比人類更好的決策,因為它可以考慮更多因素並在幾毫秒內分析它們。
演算法就像遵循食譜一樣。您按照一系列說明進行操作:準備配料,將烤箱加熱至200c,然後烘烤10分鐘。輸出/結果將是一個偉大的蛋糕。
現在,讓我們想像你的烤箱太熱了。通過機器學習,系統從過去了解到烤箱變得太熱,因此將其關閉。
機器學習可以與經驗豐富的廚師進行比較(如果您有一個好的數據集)。它知道食譜,並從以前的經驗中學到了很多東西。例如,該系統已經發現這種成分與這種蛋糕配合良好(基於數據),並且可以提出建議/預測。通過使用ML,您可以獲得超出其各部分總和的東西。
正如我們所看到的,演算法是一種數學技術。它由統計學家和數學家推導出來,用於特定任務,例如預測。
機器學習中的演算法並不新鮮。在最基本的層面上,機器學習程序是代碼。因此,它們是用Python或Java或某種編程語言編寫的代碼。但是,只有當它們以代碼的形式實現時,演算法的實用性才會增加,因為計算機可以處理高計算。
AI存在許多演算法,但我認為它們通常有3個類:
你當然有這3個類的子類,你甚至可以找到試圖包含兩者的力量的混合方法。
AI和「聰明」演算法之間的區別
AI和聰明的演算法之間的區別在於它是如何編程的。
作為用戶,我們傾向於只關注收集輸入的時刻並將其輸入到系統中,其中輸出作為系統的結果產生。
然而,中間發生的事情最重要的是:讓我們把它稱為隱藏的步驟。
隱藏的步驟通常是不為人知的,因此難以區分AI和演算法。
一些元素可以幫助我們使用AI和聰明的演算法對系統進行分類
- 基本演算法
如果定義的輸入導致定義的輸出,則系統的行程可以歸類為演算法。該程序模仿公式決策背後的基本計算能力。
- 複雜演算法
如果一組複雜的規則,計算或問題解決操作可以導致定義的輸出,那麼該系統的旅程可以被歸類為複雜的演算法。
- 機器學習(AI)
在AI系統中,輸出不是確定的,而是基於數據的複雜映射來指定,然後與每個輸出相乘。
機器學習做出假設,重新評估模型並重新評估數據,所有這些都無需人工干預。這是一個改變遊戲規則的遊戲。基本上,人類工程師不需要為每個可能的動作/反應編碼。ML系統將以人類無法達到的速度和能力找出所有可能的模式。
傳統演算法。
它需要一些輸入和一些代碼形式的邏輯,並為您提供輸出。
傳統演算法基於演算法中描述的步驟產生輸出。給出演算法輸入,它根據您自己硬編碼的規則和參數生成輸出。
機器學習演算法。
它需要輸入和輸出,並為您提供一些邏輯,然後可以使用它來處理新輸入以提供輸出。產生的邏輯就是這個ML的原因。
ML演算法基於通過提供給它的輸入進行學習來預測輸出。通過輸入進行的學習稱為訓練過程。
給出要學習的演算法數據,並調整參數來解釋數據。然後,您可以使用這些參數集來解釋/預測新數據。
但並非所有ML演算法都基於神經網路,解決許多業務用例的演算法可以通過回歸或基於樹的演算法來解決。
一切都與複雜性有關……
這些演算法通常需要較少的計算和較少的數據,以便在許多問題上表現得相當好,這些問題對於某些業務問題是完美的。當你看到用於定義這些演算法的術語AI時,我相信它沒有意義。
大多數AI以某種方式修改其演算法。換句話說,相同的輸入不需要在以後產生相同的輸出/響應。例如,神經網路基於先前猜測/對輸入的響應的正確性來修改其路徑中的某些接合點的「權重」。
神經網路:一系列演算法,通過模仿人類大腦運作方式的過程,努力識別一組數據中的潛在關係。當鏈接在一起時,演算法(如代碼行)變得更加健壯。它們被組合起來構建像神經網路這樣的AI系統。
機器學習演算法的行為取決於它在訓練過程中學到的內容,然後是它與現實生活中的相似之處 – 在生產中。這與大多數常見演算法非常不同,它要求公司能夠以機器學習演算法獨有的方式評估模型性能。
ML與經典演算法
我已經看到客戶對機器學習和經典演算法項目應用類似的升級,在那裡你有一些實驗開發(PoC),然後是全面生產。
然而,其他一切都完全不同。我舉幾個例子。
- ML解決方案是真正的AI,如果它沒有被編程為執行任務,而是被編程為學習執行任務
- 傳統的學習方法,例如基於歷史訓練數據訓練模型以及根據輸入數據評估結果模型是不可行的,因為環境總是在變化
- 傳統方法具有更嚴格的數學方法,而機器學習演算法則更加數據密集
在大多數情況下,其中一個根本區別在於機器學習可以有一系列結果,這些結果都是有效的,但不一定能提前確定。
根據我的經驗,機器學習還需要大量時間才能完美地工作。例如,在生產中運行的ML項目可能根本不顯示任何錯誤,從任何類型的度量標準(如CPU利用率)中獲得完全良好的行為,但仍然會產生錯誤的預測。
總之,傳統的演算法以代碼的形式獲取一些輸入和一些邏輯並鼓勵輸出。與此相反,機器學習演算法採用輸入和輸出,並給出一些邏輯,然後可以使用這些邏輯來處理新輸入以給出一個輸出。生成的邏輯是使它成為ML的原因。
ML演算法可以從數據中學習,而經典演算法指定確切的規則來找到整體答案。
本文轉載於medium,原文地址
Comments