人工智慧有三駕馬車:數據、演算法、算力。本文重點介紹演算法相關的知識。
本文將介紹演算法在人工智慧里的概念,演算法的4個特徵、6個通用方法。以及在選擇演算法時需要注意的3個點。
什麼是演算法?
簡單的說,演算法就是:解決問題的手段,並且是批量化解決問題的手段。
菜譜就是一種「演算法」,只要按照菜譜的方法做,就能做出對應的菜。
人工智慧里的演算法主要是用來訓練模型的。
機器學習 一共有7步,第3步就是選擇合適的演算法模型。通過訓練得到最後的可預測模型。
演算法的4個基本特徵
演算法具有下面4個特徵:
- 可行性
- 確定性
- 有窮性
- 擁有足夠的情報
關於這4項特徵詳細的說明請查看《演算法的基本概念》
演算法的6個基本方法
計算機的演算法和人類計算的方式不同,大致有6種不同的思路:
- 列舉法
- 歸納法
- 遞推
- 遞歸
- 減半遞推技術
- 回溯法
想要了解詳情可以查看《演算法的基本概念》
選擇演算法時的3個Tips
- 解決不同的問題可能會用到不同的演算法,也可能用相同的演算法。沒有某種演算法是萬能的,只是適用的範圍不同而已。
- 演算法沒有高級和低級之分,快速便宜的解決問題才是目的,一味追求複雜的演算法(例如:深度學習),相當於「用大炮打蚊子」
- 有時候有多種演算法可以解決同一個問題,用最低的成本和最短的時間解決問題才是目的。根據不同環境選擇合適的演算法很重要。
百度百科+維基百科
演算法是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。
如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。 演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。
在數學和計算機科學中,演算法是如何解決一類問題的明確規範。演算法可以執行計算,數據處理和自動推理任務。
作為一種有效的方法,演算法可以在有限的空間和時間內以及用於計算函數的明確定義的形式語言中表達。從初始狀態和初始輸入開始,指令描述了一種計算,當執行時,通過有限個明確定義的連續狀態,最終產生「輸出」和終止於最終結束狀態。
演算法的概念已經存在了幾個世紀。希臘數學家在例如Eratosthenes的篩子中使用演算法來尋找素數,並使用Euclidean演算法來找到兩個數的最大公約數。演算法這個詞本身來自9世紀的數學家MuḥammadibnMūsāal-Khwārizmī,拉丁化的Algoritmi。對於現代演算法概念的部分形式化始於試圖解決大衛希爾伯特於1928年提出的Entscheidungsproblem(決策問題)。後來的形式化被定義為試圖定義「有效可計算性」或「有效方法」 。這些形式化包括1930年,1934年和1935年的Gödel-Herbrand-Kleene遞歸函數,1936年的Alonzo Church的lambda演算,1936年的Emil Post的Formulation 1,以及1936-37和1939年的Alan Turing的圖靈機。