天天看點

一篇文章入門機器學習

作者:進擊的Grey

你好,我是堅持分享幹貨的 EarlGrey,翻譯出版過《Python程式設計無師自通》、《Python并行計算手冊》等技術書籍。

如果我的分享對你有幫助,請關注我,一起向上進擊。

來源丨網絡

1. 機器學習概述

1)什麼是機器學習

人工智能(Artificial intelligence)是研究、開發用于模拟、延伸和擴充人的智能的理論、方法、技術及應用系統的一門新的技術科學。它是一個籠統而寬泛的概念,人工智能的最終目标是使計算機能夠模拟人的思維方式和行為。大概在上世紀50年代,人工智能開始興起,但是受限于資料和硬體裝置等限制,當時發展緩慢。

一篇文章入門機器學習

機器學習(Machine learning)是人工智能的子集,是實作人工智能的一種途徑,但并不是唯一的途徑。它是一門專門研究計算機怎樣模拟或實作人類的學習行為,以擷取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能的學科。大概在上世紀80年代開始蓬勃發展,誕生了一大批數學統計相關的機器學習模型。深度學習(Deep learning)是機器學習的子集,靈感來自人腦,由人工神經網絡(ANN)組成,它模仿人腦中存在的相似結構。在深度學習中,學習是通過互相關聯的「神經元」的一個深層的、多層的「網絡」來進行的。「深度」一詞通常指的是神經網絡中隐藏層的數量。大概在2012年以後爆炸式增長,廣泛應用在很多的場景中。讓我們看看國外知名學者對機器學習的定義:

一篇文章入門機器學習

機器學習研究的是計算機怎樣模拟人類的學習行為,以擷取新的知識或技能,并重新組織已有的知識結構,使之不斷改善自身。從實踐的意義上來說,機器學習是在大資料的支撐下,通過各種算法讓機器對資料進行深層次的統計分析以進行「自學」,使得人工智能系統獲得了歸納推理和決策能力。

一篇文章入門機器學習

通過經典的 垃圾郵件過濾 應用,我們再來了解下機器學習的原理,以及定義中的T、E、P分别指代什麼:

一篇文章入門機器學習

2)機器學習三要素

機器學習三要素包括資料、模型、算法。這三要素之間的關系,可以用下面這幅圖來表示:

一篇文章入門機器學習

(1)資料

資料驅動:資料驅動指的是我們基于客觀的量化資料,通過主動資料的采集分析以支援決策。與之相對的是經驗驅動,比如我們常說的「拍腦袋」。

一篇文章入門機器學習

(2)模型&算法

模型:在AI資料驅動的範疇内,模型指的是基于資料X做決策Y的假設函數,可以有不同的形态,計算型和規則型等。算法:指學習模型的具體計算方法。統計學習基于訓練資料集,根據學習政策,從假設空間中選擇最優模型,最後需要考慮用什麼樣的計算方法求解最優模型。通常是一個最優化的問題。

一篇文章入門機器學習

3)機器學習發展曆程

人工智能一詞最早出現于1956年,用于探索一些問題的有效解決方案。1960年,美國國防部借助「神經網絡」這一概念,訓練計算機模仿人類的推理過程。2010年之前,谷歌、微軟等科技巨頭改進了機器學習算法,将查詢的準确度提升到了新的高度。而後,随着資料量的增加、先進的算法、計算和存儲容量的提高,機器學習得到了更進一步的發展。

4)機器學習核心技術

分類:應用以分類資料進行模型訓練,根據模型對新樣本進行精準分類與預測。聚類:從海量資料中識别資料的相似性與差異性,并按照最大共同點聚合為多個類别。異常檢測:對資料點的分布規律進行分析,識别與正常資料及差異較大的離群點。回歸:根據對已知屬性值資料的訓練,為模型尋找最佳拟合參數,基于模型預測新樣本的輸出值。

5)機器學習基本流程

機器學習工作流(WorkFlow)包含資料預處理(Processing)、模型學習(Learning)、模型評估(Evaluation)、新樣本預測(Prediction)幾個步驟。

一篇文章入門機器學習

資料預處理:輸入(未處理的資料 + 标簽)→處理過程(特征處理+幅度縮放、特征選擇、次元約減、采樣)→輸出(測試集 + 訓練集)。模型學習:模型選擇、交叉驗證、結果評估、超參選擇。模型評估:了解模型對于資料集測試的得分。新樣本預測:預測測試集。

6)機器學習應用場景

作為一套資料驅動的方法,機器學習已廣泛應用于資料挖掘、計算機視覺、自然語言處理、生物特征識别、搜尋引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識别和機器人等領域。

一篇文章入門機器學習

智能醫療:智能假肢、外骨骼、醫療保健機器人、手術機器人、智能健康管理等。人臉識别:門禁系統、考勤系統、人臉識别防盜門、電子護照及身份證,還可以利用人臉識别系統和網絡,在全國範圍内搜捕逃犯。機器人的控制領域:工業機器人、機械臂、多足機器人、掃地機器人、無人機等。

2.機器學習基本名詞

一篇文章入門機器學習

監督學習(Supervised Learning):訓練集有标記資訊,學習方式有分類和回歸。無監督學習(Unsupervised Learning):訓練集沒有标記資訊,學習方式有聚類和降維。強化學習(Reinforcement Learning):有延遲和稀疏的回報标簽的學習方式。

一篇文章入門機器學習

示例/樣本:上面一條資料集中的一條資料。屬性/特征:「色澤」「根蒂」等。屬性空間/樣本空間/輸入空間X:由全部屬性張成的空間。特征向量:空間中每個點對應的一個坐标向量。标記:關于示例結果的資訊,如((色澤=青綠,根蒂=蜷縮,敲聲=濁響),好瓜),其中「好瓜」稱為标記。分類:若要預測的是離散值,如「好瓜」,「壞瓜」,此類學習任務稱為分類。假設:學得模型對應了關于資料的某種潛在規律。真相:潛在規律自身。學習過程:是為了找出或逼近真相。泛化能力:學得模型适用于新樣本的能力。一般來說,訓練樣本越大,越有可能通過學習來獲得具有強泛化能力的模型。

3.機器學習算法分類

1)機器學習算法依托的問題場景

機器學習在近30多年已發展為一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、計算複雜性理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動「學習」的算法。機器學習算法從資料中自動分析獲得規律,并利用規律對未知資料進行預測。機器學習理論關注可以實作的、行之有效的學習算法。很多推論問題屬于無程式可循難度,是以部分的機器學習研究是開發容易處理的近似算法。

一篇文章入門機器學習

機器學習最主要的類别有:監督學習、無監督學習和強化學習。

一篇文章入門機器學習

監督學習:從給定的訓練資料集中學習出一個函數,當新的資料到來時,可以根據這個函數預測結果。監督學習的訓練集要求是包括輸入和輸出,也可以說是特征和目标。訓練集中的目标是由人标注的。常見的監督學習算法包括回歸分析和統計分類。

更多監督學習的算法模型總結,可以檢視ShowMeAI的文章 AI知識技能速查 | 機器學習-監督學習(公衆号不能跳轉,本文連結見文末)。

無監督學習:與監督學習相比,訓練集沒有人為标注的結果。常見的無監督學習算法有生成對抗網絡(GAN)、聚類。

更多無監督學習的算法模型總結可以檢視ShowMeAI的文章 AI知識技能速查 | 機器學習-無監督學習。

強化學習:通過觀察來學習做成如何的動作。每個動作都會對環境有所影響,學習對象根據觀察到的周圍環境的回報來做出判斷。

2)分類問題

分類問題是機器學習非常重要的一個組成部分。它的目标是根據已知樣本的某些特征,判斷一個新的樣本屬于哪種已知的樣本類。分類問題可以細分如下:二分類問題:表示分類任務中有兩個類别新的樣本屬于哪種已知的樣本類。多類分類(Multiclass classification)問題:表示分類任務中有多類别。多标簽分類(Multilabel classification)問題:給每個樣本一系列的目标标簽。

了解更多機器學習分類算法:KNN算法、邏輯回歸算法、樸素貝葉斯算法、決策樹模型、随機森林分類模型、GBDT模型、XGBoost模型、支援向量機模型等。(公衆号不能跳轉,本文連結見文末)

3)回歸問題

了解更多機器學習回歸算法:決策樹模型、随機森林分類模型、GBDT模型、回歸樹模型、支援向量機模型等。
一篇文章入門機器學習

4)聚類問題

了解更多機器學習聚類算法:聚類算法。
一篇文章入門機器學習

5)降維問題

了解更多機器學習降維算法:PCA降維算法。
一篇文章入門機器學習

4.機器學習模型評估與選擇

1)機器學習與資料拟合

機器學習最典型的監督學習為分類與回歸問題。分類問題中,我們學習出來一條「決策邊界」完成資料區分;在回歸問題中,我們學習出拟合樣本分布的曲線。

2)訓練集與資料集

我們以房價預估為例,講述一下涉及的概念。訓練集(Training Set):幫助訓練模型,簡單的說就是通過訓練集的資料讓确定拟合曲線的參數。測試集(Test Set):為了測試已經訓練好的模型的精确度。當然,test set這并不能保證模型的正确性,隻是說相似的資料用此模型會得出相似的結果。因為在訓練模型的時候,參數全是根據現有訓練集裡的資料進行修正、拟合,有可能會出現過拟合的情況,即這個參數僅對訓練集裡的資料拟合比較準确,這個時候再有一個資料需要利用模型預測結果,準确率可能就會很差。

3)經驗誤差

在訓練集的資料上進行學習。模型在訓練集上的誤差稱為「經驗誤差」(Empirical Error)。但是經驗誤差并不是越小越好,因為我們希望在新的沒有見過的資料上,也能有好的預估結果。

4)過拟合

過拟合,指的是模型在訓練集上表現的很好,但是在交叉驗證集合測試集上表現一般,也就是說模型對未知樣本的預測表現一般,泛化(Generalization)能力較差。

一篇文章入門機器學習

如何防止過拟合呢?一般的方法有Early Stopping、資料集擴增(Data Augmentation)、正則化、Dropout等。正則化:指的是在目标函數後面添加一個正則化項,一般有L1正則化與L2正則化。L1正則是基于L1範數,即在目标函數後面加上參數的L1範數和項,即參數絕對值和與參數的積項。資料集擴增:即需要得到更多的符合要求的資料,即和已有的資料是獨立同分布的,或者近似獨立同分布的。一般方法有:從資料源頭采集更多資料、複制原有資料并加上随機噪聲、重采樣、根據目前資料集估計資料分布參數,使用該分布産生更多資料等。DropOut:通過修改神經網絡本身結構來實作的。

5)偏差

偏差(Bias),它通常指的是模型拟合的偏差程度。給定無數套訓練集而期望拟合出來的模型就是平均模型。偏差就是真實模型和平均模型的差異。簡單模型是一組直線,平均之後得到的平均模型是一條直的虛線,與真實模型曲線的差别較大(灰色陰影部分較大)。是以,簡單模型通常高偏差。

一篇文章入門機器學習

複雜模型是一組起伏很大波浪線,平均之後最大值和最小組都會互相抵消,和真實模型的曲線差别較小,是以複雜模型通常低偏差(見黃色曲線和綠色虛線幾乎重合)。

一篇文章入門機器學習

6)方差方差(Variance),它通常指的是模型的平穩程度(簡單程度)。簡單模型的對應的函數如出一轍,都是水準直線,而且平均模型的函數也是一條水準直線,是以簡單模型的方差很小,并且對資料的變動不敏感。

一篇文章入門機器學習

複雜模型的對應的函數千奇百怪,毫無任何規則,但平均模型的函數也是一條平滑的曲線,是以複雜模型的方差很大,并且對資料的變動很敏感。

一篇文章入門機器學習

7)偏差與方差的平衡

一篇文章入門機器學習

8)性能度量名額

性能度量是衡量模型泛化能力的數值評價标準,反映了目前問題(任務需求)。使用不同的性能度量可能會導緻不同的評判結果。更詳細的内容可見 模型評估方法與準則(連結見文末)。

(1)回歸問題

關于模型「好壞」的判斷,不僅取決于算法和資料,還取決于目前任務需求。回歸問題常用的性能度量名額有:平均絕對誤差、均方誤差、均方根誤差、R平方等。

一篇文章入門機器學習

平均絕對誤差(Mean Absolute Error,MAE),又叫平均絕對離差,是所有标簽值與回歸模型預測值的偏差的絕對值的平均。平均絕對百分誤差(Mean Absolute Percentage Error,MAPE)是對MAE的一種改進,考慮了絕對誤差相對真實值的比例。均方誤差(Mean Square Error,MSE)相對于平均絕對誤差而言,均方誤差求的是所有标簽值與回歸模型預測值的偏差的平方的平均。均方根誤差(Root-Mean-Square Error,RMSE),也稱标準誤差,是在均方誤差的基礎上進行開方運算。RMSE會被用來衡量觀測值同真值之間的偏差。R平方,決定系數,反映因變量的全部變異能通過目前的回歸模型被模型中的自變量解釋的比例。比例越接近于1,表示目前的回歸模型對資料的解釋越好,越能精确描述資料的真實分布。

(2)分類問題

分類問題常用的性能度量名額包括錯誤率(Error Rate)、精确率(Accuracy)、查準率(Precision)、查全率(Recall)、F1、ROC曲線、AUC曲線和R平方等。更詳細的内容可見 模型評估方法與準則(連結見文末)。

一篇文章入門機器學習

錯誤率:分類錯誤的樣本數占樣本總數的比例。精确率:分類正确的樣本數占樣本總數的比例。查準率(也稱準确率),即在檢索後傳回的結果中,真正正确的個數占你認為是正确的結果的比例。查全率(也稱召回率),即在檢索結果中真正正确的個數,占整個資料集(檢索到的和未檢索到的)中真正正确個數的比例。F1是一個綜合考慮查準率與查全率的度量,其基于查準率與查全率的調和平均定義:即:F1度量的一般形式-Fβ,能讓我們表達出對查準率、查全率的不同偏好。

一篇文章入門機器學習

ROC曲線(Receiver Operating Characteristic Curve)全稱是「受試者工作特性曲線」。綜合考慮了機率預測排序的品質,展現了學習器在不同任務下的「期望泛化性能」的好壞。ROC曲線的縱軸是「真正例率」(TPR),橫軸是「假正例率」(FPR)。AUC(Area Under ROC Curve)是ROC曲線下面積,代表了樣本預測的排序品質。

從一個比較高的角度來認識AUC:仍然以異常使用者的識别為例,高的AUC值意味着,模型在能夠盡可能多地識别異常使用者的情況下,仍然對正常使用者有着一個較低的誤判率(不會因為為了識别異常使用者,而将大量的正常使用者給誤判為異常。

9)評估方法

我們手上沒有未知的樣本,如何可靠地評估?關鍵是要獲得可靠的「測試集資料」(Test Set),即測試集(用于評估)應該與訓練集(用于模型學習)「互斥」。

一篇文章入門機器學習

常見的評估方法有:留出法(Hold-out)、交叉驗證法( Cross Validation)、自助法(Bootstrap)。更詳細的内容可見 模型評估方法與準則(連結見文末)。留出法(Hold-out)是機器學習中最常見的評估方法之一,它會從訓練資料中保留出驗證樣本集,這部分資料不用于訓練,而用于模型評估。

一篇文章入門機器學習

機器學習中,另外一種比較常見的評估方法是交叉驗證法(Cross Validation)。k 折交叉驗證對 k 個不同分組訓練的結果進行平均來減少方差,是以模型的性能對資料的劃分就不那麼敏感,對資料的使用也會更充分,模型評估結果更加穩定。

一篇文章入門機器學習

自助法(Bootstrap)是一種用小樣本估計總體值的一種非參數方法,在進化和生态學研究中應用十分廣泛。Bootstrap通過有放回抽樣生成大量的僞樣本,通過對僞樣本進行計算,獲得統計量的分布,進而估計資料的整體分布。

一篇文章入門機器學習

10)模型調優與選擇準則

我們希望找到對目前問題表達能力好,且模型複雜度較低的模型:

  • 表達力好的模型,可以較好地對訓練資料中的規律和模式進行學習;
  • 複雜度低的模型,方差較小,不容易過拟合,有較好的泛化表達。
一篇文章入門機器學習

11)如何選擇最優的模型

(1)驗證集評估選擇

  • 切分資料為訓練集和驗證集。
  • 對于準備好的候選超參數,在訓練集上進行模型,在驗證集上評估。

(2)網格搜尋/随機搜尋交叉驗證

  • 通過網格搜尋/随機搜尋産出候選的超參數組。
  • 對參數組的每一組超參數,使用交叉驗證評估效果。
  • 選出效果最好的超參數。

(3)貝葉斯優化

  • 基于貝葉斯優化的超參數調優。

- EOF -

文章已經看到這了,别忘了在右下角點個“贊”和“在看”鼓勵哦~

推薦閱讀 點選标題可跳轉

1、Python 項目工程化最佳實踐

2、Python 可以比 C 還要快!

3、streamlit,一個超強的 Python 庫

4、豆瓣8.9分的C++經典之作,免費送!

5、Python 3.12 版本有什麼變化?

最近我開了一家淘寶店,名字叫【打破壁壘】,主打程式開發相關付費素材、工具的共享類商品,幫助大家降低試錯和使用成本。歡迎大家關注。

一篇文章入門機器學習

回複關鍵詞「 pybook03」,領取進擊的Grey與小夥伴一起翻譯的《Think Python 2e》電子版回複關鍵詞「書單02」,領取進擊的Grey整理的 10 本 Python 入門書的電子版

告訴你更多細節幹貨

歡迎圍觀我的朋友圈

👆每天更新所想所悟

繼續閱讀