人工智能與傳統演算法程式設計

從傳統演算法程式設計邁向人工智慧

Anthony Quattrone, PhD 2022年4月30日

人工智慧的進展使得過去難以解決、棘手或高度組合性的複雜運算問題得以被有效解決。這些問題包括臉部辨識、物體偵測、路徑規劃以及高度個人化的線上推薦系統。

組織邁向未來所面臨的挑戰,在於策略決策者須在傳統方法與人工智慧方法之間做出抉擇,以解決複雜的運算問題。無論採用哪種方法,在準確性、成本、實作難度與可維護性等層面上,要建構一套穩健的系統皆面臨獨特的挑戰。

解決問題的傳統演算法程式設計方法

古典程式設計範式涉及透過規範性演算法及利用定義明確的指令序列來解決問題。輸入被定義並受約束,開發演算法以透過定義的程式設計範式(程序式、物件導向、函數式及邏輯式)處理輸入,從而產生輸出。

發現演算法以解決時間和空間上高效能的問題是眾所周知的挑戰。在計算複雜性理論中,問題分為 P(多項式)、NP(非確定性多項式)、NP-完全或 NP-困難。多項式問題可以快速求解和驗證,而非多項式問題則不能。NP 問題難以通過經典演算法方法求解。

P 問題的一個例子是尋找兩點之間的最短路徑,而 NP 問題的一個例子是旅行推銷員問題,即給定一系列位置後,走最短可能距離訪問所有地點的最佳路徑是什麼。恰好目前許多需要以計算方式解決的問題都屬於 NP 類別。在大多數情況下,就實際目的而言,近似解通常已經足夠。在日常生活中,人類總是想出近似解,即導航。

在傳統演算法範式下以高效率方式解決問題存在著實施上的挑戰。演算法複雜度是電腦科學的一個分支,探討演算法在時間域(時間複雜度)和空間域(空間複雜度)中執行的效率。

雖然實作演算法有許多不同的方法,但一種明顯但可能效率不高的演算法實作方式通常被稱為「樸素」演算法。最高效的演算法不易被發現,電腦科學家已經花費多年時間尋找解決各類問題的最佳演算法。生產系統中的演算法是以時間和空間上高效的方式實作的。最大的軟體公司透過同儕程式設計來確保最高的演算法標準,這類似於同儕審查。高效地實作演算法需要多年的訓練和高度的技能。

實際上,儘管程式設計技術不斷演進,且程式語言(即 C、C++、Java、JavaScript、PHP、Python)的普及程度各有不同,但自 1970 年代 Bell Labs 編寫首批 C 模組以來,基本原理始終保持不變。有一些實用的方法可以讓理論上具挑戰性的問題在生產環境中運作,例如使用分散式系統。進階方法的成本較高,且除了最注重技術進步的組織外,超出了其他所有組織的能力範圍。

考量到傳統演算法程式設計方法的複雜性,機構長久以來一直難以建立有效的團隊在內部開發此類系統。此外,許多機構也難以找到外部供應商來解決理論上可實作的利基挑戰。隨著問題複雜度增加,設計特定演算法會變得更加複雜。對於多變數問題尤其如此。在演算法能快速解決問題且適用於大多數情況的情境下,最好使用傳統演算法方法。

解決問題的 AI 方法

人工智慧範式嘗試透過將輸入與期望輸出饋入系統,讓系統學習如何解決問題,以通用方式解決問題。目前的 AI 方法透過傳統程式設計技術在傳統電腦上運行。最令人振奮的 AI 方法是神經網路與強化學習。

人工神經網路利用人類對心智如何學習及概括問題的理解。強化學習使用代理程式輸入目標狀態及一系列情境。學習演算法在多次迭代中保留偏好結果並放棄不利結果。強化學習類似於操作制約。代理程式在多次訓練迭代中學習如何達成目標。

訓練人工智能解決方案的一項要求是要麼有一個定義明確的龐大資料集,通常透過結合各種資料倉儲或群眾外包來編製;要麼系統可以透過一系列反覆運算來學習以達成目標狀態。一個例子是系統與自己對弈遊戲(如西洋棋或圍棋),以進一步學習如何制定策略來改善結果。人工網路和強化學習都在未經訓練的情境中執行,並以類似其他機器學習方法的方式進行評估。這些方法具有良好的泛化能力,並能針對特定類別的問題提供高效的解決方案。基於人工智能的解決方案適用於無法輕易使用一系列指令來定義的問題;相反地,它們需要更多的「直覺」和價值判斷。

通常,人工智慧系統使用資料集進行訓練,隨後在評估集上進行評估。輸入到 AI 系統的高品質訓練資料越多,系統達到高標準表現的可能性就越高。AI 方法的優勢在於,隨著系統學習得更多,它們可以隨著時間持續改進。因此,複雜的問題可以由運算系統進行概括和解決。這包括傳統上由人工解決的問題,儘管弱 AI 可被視為對現有人工輸入的補充,以確保更好的結果。

由於此類系統缺乏可追溯性,且無法確定其對使用案例的回應方式,人工智慧和機器學習長期以來一直被組織謹慎看待。因此,AI 可能在罕見情況下行動,並在最意想不到時做出不可預測的回應。這就是為什麼重要的是要明確定義 AI 的使用時機、可接受的錯誤程度,以及 AI 系統產出的結果將如何透過人工輸入進行同儕審查以確保準確性。

總體而言,我們預測 AI 系統帶來的準確度提升,加上透過輔助人工輸入所獲得的效率提升,將產生極大的財務誘因,使得許多組織在未來幾年無法忽視,AI 系統將變得無所不在。

何時選擇人工智能以及何時選擇傳統演算法程式設計方法來解決問題

雖然沒有硬性且快速的規則來決定何時使用哪種方法,但作為一般規則,需要近似解決方案且涉及目標導向的長期規劃、複雜模式識別和處理大量變數的問題更適合 AI。經典演算法方法更適合涉及大量邏輯和運算的精確或接近最佳的解決方案。

選擇正確的方法可以為您的組織帶來顯著的效益,而選擇次優的方法則可能導致巨額資本損失,因為科技專案成本高昂。通常,採用經過驗證且可演示的系統(如 Telemus AI™)可以幫助組織確保其人工智慧數位轉型的成功。

立即聯絡我們,免費諮詢 Telemus AI™ 如何整合到您的組織中。