你不得不瞭解的人工智能基礎知識

你不得不瞭解的人工智能基礎知識

1.什麼是人工智能?

首先我們利用傳統的軟件和人工智能進行比較,就容易使大家更容易理解。

(1) 傳統軟件 VS 人工智能

傳統軟件是[基於規則]的,需要人爲的設定條件,並且告訴計算機符合這個條件後該做什麼。

人工智能則是機器從[特定]大量數據中總結規律,歸納出某些[特定知識],然後將這種知識應用到特定的場景中去解決實際問題。

然而,當前的人工智能知其然,但不知所以然。

也正是因爲歸納邏輯,所以需要依賴大量的數據。數據越多,歸納出來的經驗越具有普適性。

而我們在探尋AI的邊界時,我們可以簡單粗暴的把AI分成3個級別:

2.圖靈測試

圖靈測試的提出是因爲圖靈在思考一個問題:機器能否思考?

並且圖像相信是可以製作出會思考的機器,於是就在想第二個問題:如何判斷機器能否思考?

於是就有了圖靈測試。

那麼什麼是圖靈測試呢?

讓一個人坐在電腦前,跟另一邊用鍵盤進行對話,如果這個人分不清跟自己對話的是一個人還是一個機器,那麼這個對話機器就通過了圖靈測試並具備人工智能。

3.什麼是算法?

算法簡單來說,就是解決問題的手段,並且是批量化解決問題的手段。

比如你想要木頭桌子,那麼製造桌子的工廠就是“一套算法”。提供(輸入)木頭,就會得到(輸出)桌子。

關於算法,有3點需要注意:

  • 1.沒有某種算法是萬能的。
  • 2.算法沒有高級和低級之分。
  • 3.根據不同的環境選擇合適的算法很嚴重。

4.人工智能中的算力是什麼?

在普通的電腦中,CPU就提供了算力幫助電腦快速運行,而在玩遊戲中就需要顯卡來提供算力,幫助電腦快速處理圖形,。那麼在人工智能中,就需要有類似的CPU和GPU的硬件來提供算力,幫助算法快速運算出結果。

在上述聲什麼是算法裏講過,在製造木桌的過程中,工廠的流水線就是算法。在那個例子中,工廠中的機器就像算力,機器越好越先進,製造的過程就越快

5.什麼是監督學習?

監督學習是機器學習中的一種訓練方式/學習方式:

監督學習需要有明確的目標,很清楚自己想要什麼結果。比如:按照“既定規則”來分類、預測某個具體的值…

監督學習的流程:

  • 1.選擇一個適合目標任務的數學模型
  • 2.先把一部分已知的“問題和答案(訓練集)”送給機器去學習
  • 3.機器總結除了自己的“方法論”
  • 4.人類把“新的問題(測試集)”給機器,讓它去解答。

監督學習的2個任務:

  • 1.迴歸:預測連續的、具體的數值。
  • 2.分類:對各種事物分門別類,用於離散型數據預測。

6.什麼是無監督學習?

無監督學習是機器學習中的一種訓練方式/學習方式:

下面通過跟監督學習的對比來理解無監督學習:

  • 1.監督學習是一種目的明確的訓練方式,你知道得到的是什麼;而無監督學習則是沒有明確目的的訓練方式,你無法提前知道結果是什麼。
  • 2.監督學習需要給數據打標籤;而無監督學習不需要給數據打標籤。
  • 3.監督學習由於目標明確,所以可以衡量效果;而無監督學習幾乎無法量化效果如何

無監督學習是一種機器學習的訓練方式,它本質上是一個統計手段,在沒有標籤的數據裏可以發現潛在的一些結構的一種訓練方式。

無監督學習的使用場景:

  • 1.發現異常數據:通過無監督學習,我們可以快速把行爲進行分類,雖然我們不知道這些分類意味着什麼,但是通過這種分類,可以快速排出正常的用戶,更有針對性的對異常行爲進行深入分析。
  • 2.用戶細分:這個對於廣告平臺很有意義,我們不僅把用戶按照性別、年齡、地理位置等維度進行用戶細分,還可以通過用戶行爲對用戶進行分類。

常見的2類無監督學習算法:

  • 1.聚類:簡單說就是一種自動分類的方法,在監督學習中,你很清楚每一個分類是什麼,但是聚類則不是,你並不清楚聚類後的幾個分類每個代表什麼意思。
  • 2.降維:降維看上去很像壓縮。這是爲了在儘可能保存相關的結構的同時降低數據的複雜度。

7.如何合理劃分數據集?

首先先來介紹這三種數據集,訓練集 測試集 驗證集。先用一個不恰當的比喻來說明3種數據集之間的關係:

  • 1.訓練集相當於上課學知識
  • 2.驗證集相當於課後的的練習題,用來糾正和強化學到的知識
  • 3.測試集相當於期末考試,用來最終評估學習效果

(1)什麼是訓練集

訓練集(Training Dataset)是用來訓練模型使用的。

(2)什麼是驗證集

當我們的模型訓練好之後,我們並不知道他的表現如何。這個時候就可以使用驗證集(Validation Dataset)來看看模型在新數據(驗證集和測試集是不同的數據)上的表現如何。同時通過調整超參數,讓模型處於最好的狀態。

作用:

  • 1.評估模型效果,爲了調整超參數而服務
  • 2.調整超參數,使得模型在驗證集上的效果最好

(3)什麼是測試集

當我們調好超參數後,就要開始「最終考試」了。我們通過測試集(Test Dataset)來做最終的評估。

(4)如何合理的劃分數據集

數據集的劃分並沒有明確的規定,不過可以參考3個原則:

  • 1.對於小規模樣本集(幾萬量級),常用的分配比例是 60% 訓練集、20% 驗證集、20% 測試集。
  • 2對於大規模樣本集(百萬級以上),只要驗證集和測試集的數量足夠即可,例如有 100w 條數據,那麼留 1w 驗證集,1w 測試集即可。1000w 的數據,同樣留 1w 驗證集和 1w 測試集。
  • 3.超參數越少,或者超參數很容易調整,那麼可以減少驗證集的比例,更多的分配給訓練集。

3種主流的交叉驗證法

  • 1.留出法(Holdout cross validation): 按照固定比例將數據集靜態的劃分爲訓練集、驗證集、測試集。的方式就是留出法。
  • 2.留一法(Leave one out cross validation):每次的測試集都只有一個樣本,要進行 m 次訓練和預測。 這個方法用於訓練的數據只比整體數據集少了一個樣本,因此最接近原始樣本的分佈。但是訓練複雜度增加了,因爲模型的數量與原始數據樣本數量相同。 一般在數據缺乏時使用。
  • 3.K折交叉驗證(k-fold cross validation)
    靜態的「留出法」對數據的劃分方式比較敏感,有可能不同的劃分方式得到了不同的模型。「k 折交叉驗證」是一種動態驗證的方式,這種方式可以降低數據劃分帶來的影響。具體步驟如下:
    • 1.將數據集分爲訓練集和測試集,將測試集放在一邊
    • 2.將訓練集分爲 k 份
    • 3.每次使用 k 份中的 1 份作爲驗證集,其他全部作爲訓練集。
    • 4.通過 k 次訓練後,我們得到了 k 個不同的模型。
    • 5.評估 k 個模型的效果,從中挑選效果最好的超參數
    • 6.使用最優的超參數,然後將 k 份數據全部作爲訓練集重新訓練模型,得到最終模型。

8.機器學習的評估指標大全

所有事情都需要評估好壞,尤其是量化的評估指標。

  • 1.高考成績用來評估學生的學習能力
  • 2.槓鈴的重量用來評估肌肉的力量
  • 3.跑分用來評估手機的綜合性能

爲了快速理解各項指標的計算方式,用具體的例子將分類問題進行圖解,幫助大家快速理解分類中出現的各種情況。

例子:

我們有10張照片,5張男性、5張女性。如下圖:

有一個判斷性別的機器學習模型,當我們使用它來判斷「是否爲男性」時,會出現4種情況。如下圖:

  • 實際爲男性,且判斷爲男性(正確)
  • 實際爲男性,但判斷爲女性(錯誤)
  • 實際爲女性,且判斷爲女性(正確)
  • 實際爲女性,但判斷爲男性(錯誤)

這4種情況構成了經典的混淆矩陣,如下圖:

  • TP – True Positive:實際爲男性,且判斷爲男性(正確)

  • FN – False Negative:實際爲男性,但判斷爲女性(錯誤)

  • TN – True Negative:實際爲女性,且判斷爲女性(正確)

  • FP – False Positive:實際爲女性,但判斷爲男性(錯誤)

準確率-Accuracy

預測正確的結果佔總樣本的百分比,公式如下:

準確率 =(TP+TN)/(TP+TN+FP+FN)

雖然準確率可以判斷總的正確率,但是在樣本不平衡 的情況下,並不能作爲很好的指標來衡量結果。舉個簡單的例子,比如在一個總樣本中,正樣本佔 90%,負樣本佔 10%,樣本是嚴重不平衡的。對於這種情況,我們只需要將全部樣本預測爲正樣本即可得到 90% 的高準確率,但實際上我們並沒有很用心的分類,只是隨便無腦一分而已。這就說明了:由於樣本不平衡的問題,導致了得到的高準確率結果含有很大的水分。即如果樣本不平衡,準確率就會失效。

精確率-Precision

所有被預測爲正的樣本中實際爲正的樣本的概率,公式如下:

精準率 =TP/(TP+FP)

精準率和準確率看上去有些類似,但是完全不同的兩個概念。精準率代表對正樣本結果中的預測準確程度,而準確率則代表整體的預測準確程度,既包括正樣本,也包括負樣本。

召回率(查全率)- Recall

實際爲正的樣本中被預測爲正樣本的概率,其公式如下:

召回率=TP/(TP+FN)

召回率的應用場景: 比如拿網貸違約率爲例,相對好用戶,我們更關心壞用戶,不能錯放過任何一個壞用戶。因爲如果我們過多的將壞用戶當成好用戶,這樣後續可能發生的違約金額會遠超過好用戶償還的借貸利息金額,造成嚴重償失。召回率越高,代表實際壞用戶被預測出來的概率越高,它的含義類似:寧可錯殺一千,絕不放過一個。

F1分數

如果我們把精確率(Precision)和召回率(Recall)之間的關係用圖來表達,就是下面的PR曲線:

可以發現他們倆的關係是「兩難全」的關係。爲了綜合兩者的表現,在兩者之間找一個平衡點,就出現了一個 F1分數。

ROC曲線

真正率(TPR) = 靈敏度 = TP/(TP+FN)

假正率(FPR) = 1- 特異度 = FP/(FP+TN)

ROC(Receiver Operating Characteristic)曲線,又稱接受者操作特徵曲線。該曲線最早應用於雷達信號檢測領域,用於區分信號與噪聲。後來人們將其用於評價模型的預測能力,ROC 曲線是基於混淆矩陣得出的。

ROC 曲線中的主要兩個指標就是真正率和假正率。其中橫座標爲假正率(FPR),縱座標爲真正率(TPR),下面就是一個標準的 ROC 曲線圖。

ROC 曲線的閾值問題

與前面的 P-R 曲線類似,ROC 曲線也是通過遍歷所有閾值 來繪製整條曲線的。如果我們不斷的遍歷所有閾值,預測的正樣本和負樣本是在不斷變化的,相應的在 ROC 曲線圖中也會沿着曲線滑動。

如何判斷 ROC 曲線的好壞?

改變閾值只是不斷地改變預測的正負樣本數,即 TPR 和 FPR,但是曲線本身是不會變的。那麼如何判斷一個模型的 ROC 曲線是好的呢?這個還是要回歸到我們的目的:FPR 表示模型虛報的響應程度,而 TPR 表示模型預測響應的覆蓋程度。我們所希望的當然是:虛報的越少越好,覆蓋的越多越好。所以總結一下就是TPR 越高,同時 FPR 越低(即 ROC 曲線越陡),那麼模型的性能就越好。 參考如下:

ROC 曲線無視樣本不平衡

無論紅藍色樣本比例如何改變,ROC 曲線都沒有影響。

AUC(曲線下的面積)

爲了計算 ROC 曲線上的點,我們可以使用不同的分類閾值多次評估邏輯迴歸模型,但這樣做效率非常低。幸運的是,有一種基於排序的高效算法可以爲我們提供此類信息,這種算法稱爲曲線下面積(Area Under Curve)。

比較有意思的是,如果我們連接對角線,它的面積正好是 0.5。對角線的實際含義是:隨機判斷響應與不響應,正負樣本覆蓋率應該都是 50%,表示隨機效果。 ROC 曲線越陡越好,所以理想值就是 1,一個正方形,而最差的隨機判斷都有 0.5,所以一般 AUC 的值是介於 0.5 到 1 之間的。

AUC 的一般判斷標準

0.5 – 0.7: 效果較低,但用於預測股票已經很不錯了

0.7 – 0.85: 效果一般

0.85 – 0.95: 效果很好

0.95 – 1: 效果非常好,但一般不太可能

發佈了489 篇原創文章 · 獲贊 515 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章