在當今科技飛速發展的時代,人工智慧(Artificial Intelligence)作為模擬人類智慧的前沿科技,是最具影響力的技術之一,其核心在於通過演算法與數據驅動實現感知、學習與決策能力。人工智慧廣泛應用於各個領域,是第四次工業革命的核心技術驅動力。本文將深入淺出地介紹 AI 的基礎知識,包括流派、演算法思想、機器學習的任務類型與工作流程、以及其中涉及的數據和數學知識,並以鳶尾花分類為案例,拆解機器學習過程,説明大家瞭解理論與實踐相結合的知識體系。
人工智慧(Artificial Intelligence)並不是簡單的“投入多少人工,就能產生多少智慧”,它是通過演算法與數據來實現智慧化的決策。人工智慧的演算法代價很高,它不能解決所有問題,所有的智慧都需要通過野蠻的數據計算來置換,從工程應用的角度來說,優先選擇簡單有效的方式,人工智慧是最後的選擇。人工智慧主要有三大流派:
行為主義人工智慧
擁有一套自動控制系統,能感知外界的變化,並自動做出相應的反饋,比如工業機器人,包括:機械臂、機器人、機器狗、無人機等,還有比較熱門的具身智慧。
符號主義人工智慧
最典型的應用是專家系統,缺點是泛化能力不足,比較依賴知識圖譜、大模型+知識庫,需人工構建知識庫,難以處理模糊的規則及超出知識庫之外的情況。
聯結主義人工智慧
聯結主義主張類比人腦設計,通過模仿人類的大腦,用全連接方式代替機器學習,深度學習就是聯結主義人工智慧的典型應用,包括用卷積網路用來生成圖像視頻、迴圈神經網路和多頭(自)注意力機制對應時序數據、基於transformer架構的GPT模型等。特點是泛化能力強,善於處於非線性問題。
融合統一是發展趨勢
大模型對 NLP 的整合、多模態對 CV 和 NLP 的整合,以及具身智慧(動作+多模態大模型)的發展,都在一定程度上推動著人工智慧的加速融合,理論上聯結主義用數據驅動學習、符號主義用知識約束推理、行為主義用環境感知反覆運算,而現實任務往往需要三者結合,人們需要的是具有自主感知、認知、決策、學習、執行以及社會協作能力的通用人工智慧體,這種“混合智慧”更接近人類的多維度認知方式。
在數學當中有函數對應關係:y=f(x),在人工智慧領域中黑盒思想是我們理解計算方式的第一法則,給計算機指定一個解決思路,具體的解決過程是計算機去完成。即有輸入:x,有轉換關係:F(x),有輸出:y。
傳統演算法是基於規則的演算法,適用於規則比較清晰的場景,比如在多輪對話任務的智慧客服系統,因為規則是人為規定的,所以這類系統對人的業務熟練度要求比較高,但是對計算機的性能要求相對低,特點是執行速度快,演演算法和時間、空間的複雜度低。
人工智慧演算法是基於數據的經過訓練和推理的演算法。訓練階段:從老數據,一般叫訓練集中挖掘規律,構建演算法規則,然後進行推理,即把規律作用於新數據(測試集),這種經過訓練推理的方法適用於規則比較模糊的場景,特點是執行速度慢,對計算機性能的要求很高,需要大量的數據與算力,對演演算法工程師的要求低,執行效果的魯棒性特別好,泛化能力極強,但解釋性差。
廣義的機器學習主要是一個研究如何讓計算機通過數據學習規律,並利用這些規律進行預測和決策的過程。這裡的Machine並非物理意義上的機器,可以理解為電腦軟硬體組織;Learning可以理解為一個系統或平台經歷了某些過程后,性能得到提升,這個過程為學習,是個動態過程。
分類:將數據樣本劃分到定義好的類別中,比如鳶尾花根據花瓣和花萼的屬性,將它分為3種類別,類別標籤可以用0、1、2來表示,通常放在樣本數據的最後一列。
回歸:根據輸入特徵來預測一個值,跟分類任務不同,回歸任務預測的值通常是連續的值,比如根據房子的城市、地段、大小等預測房價。
聚類:將數據樣本劃分成不同的組,同一組的樣本具有較高的相似性,比如將具有相似消費行為的客戶分成一組,以便企業進行精準運營。
人工智慧要按照訓練數據有無標籤可分為有監督學習、無監督學習和自監督學習
有監督學習:有特徵、有標籤,在分類問題中,標籤是在有限的類別中選擇一個,比如:性別、左右、對錯等,在鳶尾花分類任務中,共幾百個樣本,4個特徵,3個類別;回歸問題的標籤為連續變數,通常用來預測一個值:比如:身高、年齡、股價等。
無監督學習:有特徵、無標籤,即通過模型自主從數據中提取資訊,比如降維演算法、聚類演算法,通過無監督學習可以將高維數據降維,去除冗餘資訊,降低計算成本。
自監督學習:base大模型的訓練進行學習,讓模型自動從數據中挖掘出有價值的特徵,比如利用大量無標籤數據進行預訓練,學習到通用的特徵表示后再進行進行微調,提升模型的性能。
如果決定要用人工智慧去解決一個問題,具體的步驟為:
1.分析問題
從巨集觀角度分析問題,確定輸入和輸出以及任務類型,比如做一個中英翻譯器,輸入中文,輸出英文;房價預測輸入房子特徵資訊,輸出價格;人臉檢測輸入圖片,輸出檢測到的人臉。
2. 採集數據
根據輸入和輸出構建數據集,在機器學習領域,數據集通常以二維表格形式呈現,一行一個樣本,一列一個特徵,最後一列是標籤或回歸數值。按照訓練數據的特點,可選擇對數據進行預處理,常見的機器學習數據預處理方法有:
3. 模型選擇與訓練
根據任務和數據特點遴選一種合適的演算法,將處理好的數據給演算法去學習,完成模型的訓練,挖掘出輸入與輸出之間具體的映射關係。常見的分類演算法有KNN:K值鄰近演算法、GNB:高斯貝葉斯演算法、DT:決策樹演算法、SVM:支援向量機演算法、RF:隨機森林演算法、EL:集成學習演算法等,在實際案例中需要遵循引入模型、構建模型、訓練模型的過程。
4. 模型評估
對訓練的模型進行驗證和調參工作,通過各種評估指標來衡量模型的效果,如準確率、召回率、F1 值等,找到預測效果最理想的模型參數。
5. 上線部署
工程部署、系統集成,進行當地語系化部署、雲端部署或者邊緣部署,雲端部署適合數據量較大、計算資源需求高的場景;邊緣部署更注重即時性和數據隱私,適用於對回應速度要求高的場景,如政務系統、智慧安防監控等。
6. 模型推理
把規則作用於新的數據進行預測,並依據新的數據不斷反覆運算升級。
1. 分析問題,確定輸入和輸出
在人工智慧演算法中,所有的實體都需要變成數位才能被計算和預測,如何將一個實體數位化呢?一般用這個實體的特徵或者屬性來描述,比如:顏色、大小、重量等,這就需要對業務有足夠的瞭解,比如鳶尾花的四個屬性(特徵):花瓣長、花瓣寬、花萼長、花萼寬,最後一列為類別編號。
2. 數據採集與預處理
比如每個類別各採集50朵花,按照一行一個樣本,一列一個特徵組成特徵矩陣。對樣本進行切割,分為訓練集、測試集和驗證集,通常會按照60:20:20 或者70:15:15的比例來劃分。本次案例分為訓練集和測試集,測試集佔20%,並確保每次切分的數據保持一致。
3. 選擇演算法
完成輸入到輸出的映射,我們選擇 KNN 演算法進行訓練。KNN 演算法通過計算測試集與訓練集每個特徵之間的距離,選擇距離最近的 K 個樣本,再根據這 K 個樣本的類別來判斷測試樣本的類別。
4. 模型評估與部署
用準確率評估鳶尾花分類任務,最終得到的準確率為96.7%,這是一個比較不錯的數據,表明 KNN 演算法在該任務上表現良好,可以應用到相似場景中,比如在農業鄰域中,通過提取植物的特徵(如葉片形狀、顏色、花朵特徵等)對不同品種進行分類。
人工智慧依賴向量化和矩陣化程式設計,與線性代數密切相關,比如經常用到矩陣乘法,計算過程需要高性能的計算資源,在數據科學中按照維度定義和處理數據。python為人工智慧提供了豐富的庫和工具,最常用的庫有:
深度學習常用的框架有pytorch、tensorflow,pytorch可在官網下載,支援安裝gpu和cpu版本。
矩陣
人工智慧中處理的大量數據通常以矩陣形式存儲和表示,機器學習中對矩陣的處理包括:
樣本相似度度量
1)歐氏距離
建立個直角座標系,把每個樣本看作一個點,有多少特徵就有多少維度的歐氏空間,歐氏距離是歐氏空間中用於衡量兩個點之間距離的一種度量方式,比如在聚類演算法中衡量數據點之間的相似性;在鳶尾花分類任務中,遍歷計算測試集與訓練集中各個樣本的歐氏距離,找出與測試集樣本最接近的K個點,距離越小越相似。
在二維平面上,設兩個點α(x1, x2)、β(x3, x4),
則α和β兩點之間的歐氏距離為:
2)點乘積和餘弦相似度
每個樣本可以看作一個向量空間內的向量,樣本的相似度度量方法可以用餘弦相似度和點乘積來計算
向量的模(長度):
點乘積:
點乘積的值不僅與向量的模(長度)有關,還和向量的方向相關,當兩向量夾角為0時,點乘積值最大,兩個向量越相似,反之亦然。
餘弦相似度:
餘弦取值範圍在[−1,1]之間,值越接近 1 表示兩個向量的方向越趨同,則樣本越相似;值越接近 -1 表示兩個向量方向相反;值接近 0 表示兩個向量近乎正交,即樣本差異較大。
正太分佈
在現實世界中,許多數據都近似服從正態分佈,在機器學習中,我們把每個特徵數據看作相互獨立,通常也假設數據服從正態分佈,均值和方差是描述正態分佈的關鍵參數,在計算時可以簡化模型計算的複雜度。除此之外,在數據預處理時,對於數據的中心化、標準化和歸一化處理也需要均值和標準差。
均值:均值是一組數據的算術平均數,反映了特徵數據的中心位置,對於一組數據x1, x2,…xn,其均值為:
方差:方差用來衡量一組數據的離散程度,方差越大,數據分佈越分散;方差越小,數據分佈越集中。對於一組數據x1, x2,…xn,其方差為:
上圖顯示均值都為0時,擁有不同方差數據的分佈特點,其中x代表均值,var代表方差
理論上我們需要求出所有數據的準確方差值,在實際計算場景中,數據量往往非常大,獲取和計算數據成本太高,需用樣本方差代替總體方差去計算。整體方差是在所有數據參與的前提下計算出的值,樣本方差是從總體中抽取一部分數據作為樣本。
標準差:標準差是方差的平方根,與方差的作用類似也是用於衡量數據的離散程度,正太分佈以均值為中心,標準差越大,數據分佈越分散,圖像越扁平;方差越小,數據分佈越集中,圖像越窄長。對於一組數據x1, x2,…xn,其標準差為:
本文由 @AI產品薇薇 原創發佈於人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基於CC0協定。