【雲駐共創】機器學習概覽

語言: CN / TW / HK

持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第27天,點選檢視活動詳情

機器學習是人工智慧的核心,研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能,它是使計算機具有智慧的根本途徑,其應用遍及人工智慧的各個領域。現在我們來一起探究一下機器學習的知識。​

一.機器學習演算法概念​

機器學習(包括深度學習分支)是研究“學習演算法”的一門學問。所謂“學習”是指:對於某類任務T和效能度量P,一個計算機程式在T上以P衡量的效能隨著經驗E而自我完善,那麼我們稱這個計算機程式在從經驗E學習。​

我們看下面圖來理解:​

編輯

那麼,人類學習過程與機器學習的過程有什麼區別呢?

人類學習的過程:經驗歸納規律,規律預測未來。​

機器學習的過程:歷史資料訓練模型,模型預測未來。​

總結:機器學習就是通過歷史資料訓練得到的模型。得到了模型之後就是讓機器學到了東西。

1.1機器學習演算法與傳統基於規則的區別

編輯

總結出來的規則不一定會符合所有的情況。

為了適用更多的環境,更多的資料集,我們需要窮舉我們的規則。通過機器學習相關的演算法,通過樣板訓練,學習到一個演算法,這個演算法適用於所有的情況。​

1.2什麼時候該使用機器學習

問題的解決方案很複雜,或者問題可能涉及到大量的資料卻沒有明確的資料分佈函式。​

  1. 人臉識別和語音識別​
  2. 任務的規則隨著資料改變​
  3. 資料本身隨著時間不斷變化,需要程式不斷的重新適應。​

機器學習演算法的理性認知:​

編輯

目標函式未知,學習演算法無法得到一個完美的函式f。​

假設g函式逼近函式f,但是可能和函式f不同。​

機器學習演算法,從數學上來講,就是得到了一個函式方程,理性的去認識機器學習。​

1.3機器學習解決的主要問題

機器學習可以解決多種型別的任務,下面列出最典型的常見的三種:

  1. 分類:計算機程式需要指定輸入屬於k類中的哪一類。為了完成這個任務,學習演算法通常會輸出一個函式

    編輯

    。比如計算機視覺中的影象分類演算法解決的就是一個分類任務。​

  2. 迴歸:這類任務中,計算機程式會對給定輸入預測輸出數值。學習演算法通常會輸出一個函式f:Rn→R,這類任務的一個示例是預測投保人的索賠金額(用於設定保險費),或者預測證券未來的價格。​

  3. 聚類:對大量未知標註的資料集,按資料的內在相似性,將資料劃分為多個類別,是類 別內的資料相似度較大,而類別間的相似性比較小。可以被運用在圖片檢索,使用者畫像等 場景中。​

分類和迴歸是預測問題的兩種主要型別,佔到80%-90%,分類的輸出是離散的類別值,而回歸的輸出是連續數值。​

二.機器學習的分類​

1.監督學習:利用已知類別的樣本,訓練學習得到一個最優模型,使其達到所要求效能,再利用這個訓練所得模型,將所有的輸入對映為相應的輸出,對輸出進行簡單的判斷,從而實現分類的目的,即可以對未知資料進行分類。​

2.無監督學習:對於沒有標記的樣本,學習演算法直接對輸入資料集進行建模,例如聚類,即“物以類聚,人以群分”。我們只需要把相似度高的東西放在一起,對於新來的樣本,計算相似度後,按照相似程度進行刊歸類就好。​

3.半監督學習:試圖讓學習器自動地對大量未標記資料進行利用以鋪助少量有標記資料進行學習。​

4.強化學習:學習系統從環境到行為對映的學習,以使獎勵訊號(強化訊號)函式值最大,強化學習不同於連線主義學習中的監督學習,主要表現在教師訊號上,強化學習中由環境提供的強化訊號是對產生動作的好壞作一種評價(通常為標量訊號),而不是告訴強化學習系統如何去產生正確的動作。​

2.1監督學習

編輯

注意:每條監督學習必須要有一個標籤,每一條都會有特徵,主要的還是標籤問題。​

2.2監督學習——迴歸問題

迴歸:反映了樣本資料集中樣本的屬性值的特性,通過函式表達樣本對映的關係來發現屬性值之間的依賴關係。​

2.3監督學習——分類問題

分類:分類問題屬於有監督學習,通過分類模型,將樣本資料集中的樣本對映到某個給定的類別中。​

2.4無監督學習

編輯

最典型的無監督學習就是聚類。

2.5無監督學習——聚類問題

聚類:通過聚類模型,將樣本資料集中的樣本分為幾個類別,屬於同一類別的樣本相似性比較大。​

2.6半監督學習:

編輯

半監督學習特點:有的有標籤,有的資料是沒有標籤的。

2.7強化學習—最佳行為

強化學習:強化學習總是在尋找什麼樣的行動才是最佳的?強化學習針對的物件是機器或者機器人。​

三.機器學習的整體流程​

編輯

3.1機器學習基本概念-資料集

  1. 資料集:在機器學習任務中使用的一組資料,其中的每一個數據稱為一個樣本。反映樣本在某方面的表現或性質的事項或屬性稱為特徵。​
  2. 訓練集:訓練過程中使用的資料集,其中每個訓練樣本稱為訓練樣本。從資料中學得模型的過程稱為學習(訓練)。​
  3. 測試集:學得模型後,使用其進行預測的過程稱為測試,使用的資料集稱為測試集,每個樣本稱為測試樣本。​

3.2資料處理的重要性

訓練集:訓練過程中使用的資料集,其中每個訓練樣本稱為訓練樣本。從資料中學得模型的過程稱為學習(訓練)。

編輯

3.3資料清理

大部分的機器學習模型所處理的都是特徵,特徵通常是輸入變數所對應的可用於模型的數值表示。​

大部分情況下,收集得到的資料需要經過預處理後才能夠為演算法所使用,預處理的操作主要包括以下幾個部分:​

  1. 資料過濾​
  2. 處理資料缺失​
  3. 處理可能的異常、錯誤或者異常值​
  4. 合併多個數據源資料​
  5. 資料彙總​

3.4髒資料

真實的資料中通常會出現一些資料質量問題:​

  1. 不完整:資料中缺少屬性或者包含一些確實的值。​
  2. 多噪音:資料包含錯誤的記錄或者異常點。​
  3. 不一致:資料中存在矛盾的、有差異的記錄。​

編輯

3.5資料的轉化

對資料進行初步的預處理後,需要將其轉換為一種適合機器學習模型的表示形式,以下是一些常見的資料轉化的形式。​

  1. 在分類問題中,將類別資料編碼成為對應的數值表示(啞編碼)。​
  2. 數值資料轉換為類別資料以減少變數的值(對年齡分段)。​
  3. 其他資料
  1. 從文字資料中提取有用的資料(一般使用詞袋法、TF-IDF或者word2vec)。​
  2. 處理影象資料(顏色空間,灰度化,幾何變化,haar特徵等,影象增強)。​
  1. 特徵工程​
  2. 對特徵進行歸一化、標準化,以保證同一模型的不同輸入變數的值域相同。​
  3. 特徵擴充:對現有變數進行組合或轉換以生成新特徵,比如平均數。​

四.其他機器學習的重要方法​

4.1機器學習訓練方法-梯度下降

梯度下降法的優化思想是用當前位置負梯度方向作為搜尋方向,該方向為當前位置最快下降方向,梯度下降中越接近目標值,變化量越小,公式如下:​

編輯

編輯

批量梯度下降(BGD),使用所有資料集中的樣本(共m個樣本)在當前點的梯度之和來對權重引數進行更新操作。​

編輯

隨機梯度下降(SGD),隨機選取一個數據集中的樣本在當前的梯度來對權重引數進行更新操作。​

編輯

小批量梯度下降(MBGD),結合BGD與SGD的特性,每次選擇資料集中n個樣本的梯度來對權重引數進行更新操作。​

編輯

4.2模型中的引數與超引數

模型中不但有引數,還有超引數的存在。其目的是為了讓模型能夠學習到最佳的引數。​

  1. 引數有模型自動學習​
  2. 超引數由人工手動設定​

編輯

4.3超引數的調節方法-網格搜尋

  1. 網格搜尋嘗試窮舉搜尋所有可能的超引數組合形成超引數值網格。​
  2. 在實踐中,人工指定的範圍和步驟之間的值。​

編輯

網格搜尋是一種昂貴且耗時的方法:​

這種方法在超引數數目相對較少的情況下工作良好。因此一般機器學習演算法中可行,但在神經網路等情況下就行不通了。​

常見演算法​

編輯

5.1線性迴歸

線性迴歸的模型函式如下。其中w為權重引數, b為偏置, x表示樣本​

編輯

模型預測與真實值的關係如下。其中y表示真實值,

編輯

表示誤差。​

編輯

5.2線性迴歸擴充套件-多項式迴歸

多項式迴歸,是線性迴歸的拓展,通常資料集的複雜度會超過用一條直線來擬合的可能性,也就是使用原始的線性迴歸模型會明顯欠擬合。解決的辦法就是使用多項式迴歸。

編輯

編輯

5.3邏輯迴歸擴充套件-Softmax函式

Softmax為多類問題中的每個分類分配了概率值。這些概率加起來等於1。​

Softmax可能產生一個屬於特定類別的形式可能以如下方式展示​

編輯

5.4決策樹

決策樹:決策樹(decision tree)是一個樹結構(可以是二叉樹或非二叉樹)。其每個非葉節點表示一個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放一個類別。使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特徵屬性,並按照其值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作為決策結果。​

編輯

5.5支援向量機

支援向量機(support vector machine,SVM)是一種二分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器。SVM還包括核技巧,這使它成為實質上的非線性分類器。支援向量機的學習演算法是求解凸二次規劃的最優化演算法。​

編輯

5.6K最鄰近演算法

K最近鄰(k-Nearest Neighbor, KNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別​

編輯

六.案例​

假設我們有一個數據集,給出了來自某城市房屋銷售的21,613套住房的居住面積利價格。根據這樣的資料,我們可以預測該城市其他房屋的價格。​

編輯

分析:​

編輯

線性迴歸的目標是找到一條最符合資料集的直線。​

線性迴歸是引數型模型,我這裡我們要學習引數w0,w1。當這兩個引數被找到後最好的模型也顯現出來了。​

編輯

為了尋找最佳引數,我們需要構建損失函式(Loss function),並找到當損失函式到達最小的時候的引數值。​

6.1梯度下降演算法

梯度下降演算法通過選代法來找到一個函式的最小值。​

梯度下降演算法的目標是在損失函式上隨機一個初始點,然後根據負梯度方向,找到損失函式的全域性最小值,此時的引數值就是我們要求的最佳引數值​

編輯

編輯

迭代的過程:​

編輯

當訓練完成之後,我們需要使用測試集進行測試,確保模型的泛化能力。​

如果出現過擬合,我們可以使用帶有正則項的LASSO迴歸或者Ridgel迴歸,並調節超引數。​

如果是欠擬合,我們可以使用更加複雜的迴歸模型,比如GBDT。​

注意:真實的資料也同時注意到資料清理與特徵工程的作用。​

編輯

編輯

主要介紹了機器學習的定義、分類與要解決的主要問題,同時對機器學習的整體流程(資料收集,資料清理,特徵提取,模型訓練,模型訓練與評估,模型部署)、常見的機器學習演算法(線性迴歸,邏輯迴歸,決策樹,SVM,樸素貝葉斯,KNW,整合學習,K-meas等),梯度下降演算法,超引數等機器學習重要的知識點進行了梳理與學習。​​​