你不得不瞭解的人工智能基礎知識
1.什麼是人工智能?
首先咱們利用傳統的軟件和人工智能進行比較,就容易使你們更容易理解。算法
(1) 傳統軟件 VS 人工智能
傳統軟件是[基於規則]的,須要人爲的設定條件,而且告訴計算機符合這個條件後該作什麼。
機器學習
人工智能則是機器從[特定]大量數據中總結規律,概括出某些[特定知識],而後將這種知識應用到特定的場景中去解決實際問題。
性能
然而,當前的人工智能知其然,但不知因此然。
學習
也正是由於概括邏輯,因此須要依賴大量的數據。數據越多,概括出來的經驗越具備普適性。測試
而咱們在探尋AI的邊界時,咱們能夠簡單粗暴的把AI分紅3個級別:
人工智能
2.圖靈測試
圖靈測試的提出是由於圖靈在思考一個問題:機器可否思考?spa
而且圖像相信是能夠製做出會思考的機器,因而就在想第二個問題:如何判斷機器可否思考?3d
因而就有了圖靈測試。code
那麼什麼是圖靈測試呢?blog
讓一我的坐在電腦前,跟另外一邊用鍵盤進行對話,若是這我的分不清跟本身對話的是一我的仍是一個機器,那麼這個對話機器就經過了圖靈測試並具有人工智能。
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: 效果很是好,但通常不太可能