機器學習系列(一)——基礎概念及分類

機器學習基礎(一)

emm... 那個第一篇文章,簡單的自我介紹一下,機器學習小白,但願和你們一塊兒進步,有什麼問題能夠留言一塊兒探討。編程

本文撰寫於2020/1/1 是本人學習機器學習時,作的筆記摘要,爲方便往後查漏補缺,以博客的形式粘貼出來,文中所引數據及內容僅做學習之用。網絡

機器學習是人工智能的一個子集,目前已經發展出許多有用的方法,好比支持向量機,迴歸,決策樹,隨機森林,強化方法,集成學習,深度學習等等,必定程度上能夠幫助人們完成一些數據預測,自動化,自動決策,最優化等初步替代腦力的任務。本章咱們主要介紹下機器學習的基本概念、監督學習、分類算法、邏輯迴歸、代價函數、損失函數、LDA、PCA、決策樹、支持向量機、EM算法、聚類和降維以及模型評估有哪些方法、指標等等。框架

1 基本概念

機器學習(Machine Learning, ML),顧名思義,讓機器去學習。這裏,機器指的是計算機,是算法運行的物理載體,你也能夠把各類算法自己當作一個有輸入和輸出的機器。那麼到底讓計算機去學習什麼呢?對於一個任務及其表現的度量方法,設計一種算法,讓算法可以提取中數據所蘊含的規律,這就叫機器學習。若是輸入機器的數據是帶有標籤的,就稱做有監督學習。若是數據是無標籤的,就是無監督學習。dom

1.1 ML各類常見算法圖示

​ 平常使用機器學習的任務中,咱們常常會碰見各類算法。機器學習

迴歸算法 聚類算法 正則化方法
決策樹學習 貝葉斯方法 基於核的算法
:----------------------: :----------------------: :----------------------:
聚類算法 關聯規則學習 人工神經網絡
:----------------------: :----------------------: :-----------------------:
深度學習 下降維度算法 集成算法
:-----------------------: :-----------------------: :-----------------------:

1.2 導數的計算

計算圖導數計算是反向傳播,利用鏈式法則和隱式函數求導。函數

​ 假設 \(z = f(u,v)\) 在點 \((u,v)\) 處偏導連續,\((u,v)\)是關於 \(t\) 的函數,在 \(t\) 點可導,求 \(z\)\(t\) 點的導數。工具

根據鏈式法則有
\[ \frac{dz}{dt}=\frac{\partial z}{\partial u}.\frac{du}{dt}+\frac{\partial z}{\partial v} .\frac{dv}{dt} \]
​鏈式法則用文字描述:「由兩個函數湊起來的複合函數,其導數等於裏邊函數代入外邊函數的值之導數,乘以裏邊函數的導數。學習

1.3 關於局部最優和全局最優的描述

局部最優和全局最優測試

柏拉圖有一天問老師蘇格拉底什麼是愛情?蘇格拉底叫他到麥田走一次,摘一顆最大的麥穗回來,不準回頭,只可摘一次。柏拉圖空着手出來了,他的理由是,看見不錯的,殊不知道是否是最好的,一次次僥倖,走到盡頭時,才發現還不如前面的,因而放棄。蘇格拉底告訴他:「這就是愛情。」這故事讓咱們明白了一個道理,由於生命的一些不肯定性,因此全局最優解是很難尋找到的,或者說根本就不存在,咱們應該設置一些限定條件,而後在這個範圍內尋找最優解,也就是局部最優解——有所斬獲總比空手而歸強,哪怕這種斬獲只是一次有趣的經歷。
柏拉圖有一天又問什麼是婚姻?蘇格拉底叫他到樹林走一次,選一棵最好的樹作聖誕樹,也是不準回頭,只許選一次。此次他一身疲憊地拖了一棵看起來直挺、翠綠,卻有點稀疏的杉樹回來,他的理由是,有了上回的教訓,好不容易看見一棵看似不錯的,又發現時間、體力已經快不夠用了,也不論是不是最好的,就拿回來了。蘇格拉底告訴他:「這就是婚姻。」

​ 優化問題通常分爲局部最優和全局最優。其中,

(1)局部最優,就是在函數值空間的一個有限區域內尋找最小值;而全局最優,是在函數值空間整個區域尋找最小值問題。

(2)函數局部最小點是它的函數值小於或等於附近點的點,可是有可能大於較遠距離的點。

(3)全局最小點是那種它的函數值小於或等於全部的可行點。

1.4 大數據與深度學習之間的關係

首先來看大數據、機器學習及數據挖掘三者簡單的定義:

大數據一般被定義爲「超出經常使用軟件工具捕獲,管理和處理能力」的數據集。
機器學習關心的問題是如何構建計算機程序使用經驗自動改進。
數據挖掘是從數據中提取模式的特定算法的應用,在數據挖掘中,重點在於算法的應用,而不是算法自己。

機器學習和數據挖掘之間的關係以下:
數據挖掘是一個過程,在此過程當中機器學習算法被用做提取數據集中的潛在有價值模式的工具。
大數據與深度學習關係總結以下:

(1)深度學習是一種模擬大腦的行爲。能夠從所學習對象的機制以及行爲等等不少相關聯的方面進行學習,模仿類型行爲以及思惟。

(2)深度學習對於大數據的發展有幫助。深度學習對於大數據技術開發的每個階段均有幫助,不論是數據的分析仍是挖掘仍是建模,只有深度學習,這些工做纔會有可能一一獲得實現。

(3)深度學習轉變了解決問題的思惟。不少時候發現問題到解決問題,走一步看一步不是一個主要的解決問題的方式了,在深度學習的基礎上,要求咱們從開始到最後都要基於一個目標,爲了須要優化的那個最終目標去進行處理數據以及將數據放入到數據應用平臺上去,這就是端到端(End to End)。

(4)大數據的深度學習須要一個框架。在大數據方面的深度學習都是從基礎的角度出發的,深度學習須要一個框架或者一個系統。總而言之,將你的大數據經過深度分析變爲現實,這就是深度學習和大數據的最直接關係。

2 機器學習的分類

根據數據類型的不一樣,對一個問題的建模有不一樣的方式。依據不一樣的學習方式和輸入數據,機器學習主要分爲如下四種學習方式。

2.1 監督學習

​ 特色:監督學習是使用已知正確答案的示例來訓練網絡。已知數據和其一一對應的標籤,訓練一個預測模型,將輸入數據映射到標籤的過程。

​ 常見應用場景:監督式學習的常見應用場景如分類問題和迴歸問題

​ 算法舉例:常見的有監督機器學習算法包括支持向量機(Support Vector Machine, SVM)樸素貝葉斯(Naive Bayes)邏輯迴歸(Logistic Regression)K近鄰(K-Nearest Neighborhood, KNN)決策樹(Decision Tree)隨機森林(Random Forest)AdaBoost以及線性判別分析(Linear Discriminant Analysis, LDA)等。深度學習(Deep Learning)也是大多數以監督學習的方式呈現。

2.2 非監督式學習

​ 定義:在非監督式學習中,數據並不被特別標識,適用於你具備數據集但無標籤的狀況。學習模型是爲了推斷出數據的一些內在結構。

​ 常見應用場景:常見的應用場景包括關聯規則的學習以及聚類等。

​ 算法舉例:常見算法包括Apriori算法以及k-Means算法

2.3 半監督式學習

​ 特色:在此學習方式下,輸入數據部分被標記,部分沒有被標記,這種學習模型能夠用來進行預測。

​ 常見應用場景:應用場景包括分類和迴歸,算法包括一些對經常使用監督式學習算法的延伸,經過對已標記數據建模,在此基礎上,對未標記數據進行預測。

​ 算法舉例:常見算法如圖論推理算法(Graph Inference)或者拉普拉斯支持向量機(Laplacian SVM)等。

2.4 弱監督學習

​ 特色:弱監督學習能夠看作是有多個標記的數據集合,次集合能夠是空集,單個元素,或包含多種狀況(沒有標記,有一個標記,和有多個標記)的多個元素。 數據集的標籤是不可靠的,這裏的不可靠能夠是標記不正確,多種標記,標記不充分,局部標記等。已知數據和其一一對應的弱標籤,訓練一個智能算法,將輸入數據映射到一組更強的標籤的過程。標籤的強弱指的是標籤蘊含的信息量的多少,好比相對於分割的標籤來講,分類的標籤就是弱標籤。

​ 算法舉例:舉例,給出一張包含氣球的圖片,須要得出氣球在圖片中的位置及氣球和背景的分割線,這就是已知弱標籤學習強標籤的問題。

​ 在企業數據應用的場景下, 人們最經常使用的可能就是監督式學習和非監督式學習的模型。 在圖像識別等領域,因爲存在大量的非標識的數據和少許的可標識數據, 目前半監督式學習是一個很熱的話題。

​ 處理標籤不充分時的數據

2.5 監督學習有哪些步驟

​ 監督學習是使用已知正確答案的示例來訓練網絡,每組訓練數據有一個明確的標識或結果。想象一下,咱們能夠訓練一個網絡,讓其從照片庫中(其中包含氣球的照片)識別出氣球的照片。如下就是咱們在這個假設場景中所要採起的步驟。

步驟1:數據集的建立和分類
​ 首先,瀏覽你的照片(數據集),肯定全部包含氣球的照片,並對其進行標註。而後,將全部照片分爲訓練集和驗證集。目標就是在深度網絡中找一函數,這個函數輸入是任意一張照片,當照片中包含氣球時,輸出1,不然輸出0。

步驟2:數據加強(Data Augmentation)
​ 當原始數據蒐集和標註完畢,通常蒐集的數據並不必定包含目標在各類擾動下的信息。數據的好壞對於機器學習模型的預測能力相當重要,所以通常會進行數據加強。對於圖像數據來講,數據加強通常包括,圖像旋轉,平移,顏色變換,裁剪,仿射變換等

步驟3:特徵工程(Feature Engineering)
​ 通常來說,特徵工程包含特徵提取和特徵選擇。常見的手工特徵(Hand-Crafted Feature)有尺度不變特徵變換(Scale-Invariant Feature Transform, SIFT),方向梯度直方圖(Histogram of Oriented Gradient, HOG)等。因爲手工特徵是啓發式的,其算法設計背後的出發點不一樣,將這些特徵組合在一塊兒的時候有可能會產生衝突,如何將組合特徵的效能發揮出來,使原始數據在特徵空間中的判別性最大化,就須要用到特徵選擇的方法。在深度學習方法大獲成功以後,人們很大一部分再也不關注特徵工程自己。由於,最經常使用到的卷積神經網絡(Convolutional Neural Networks, CNNs)自己就是一種特徵提取和選擇的引擎。研究者提出的不一樣的網絡結構、正則化、歸一化方法實際上就是深度學習背景下的特徵工程。

步驟4:構建預測模型和損失
​ 將原始數據映射到特徵空間以後,也就意味着咱們獲得了比較合理的輸入。下一步就是構建合適的預測模型獲得對應輸入的輸出。而如何保證模型的輸出和輸入標籤的一致性,就須要構建模型預測和標籤之間的損失函數,常見的損失函數(Loss Function)有交叉熵(Cross Entropy)、均方差(MSE)等。經過優化方法不斷迭代,使模型從最初的初始化狀態一步步變化爲有預測能力的模型的過程,實際上就是學習的過程。

步驟5:訓練
​ 選擇合適的模型和超參數進行初始化,其中超參數好比支持向量機中核函數、偏差項懲罰權重等。當模型初始化參數設定好後,將製做好的特徵數據輸入到模型,經過合適的優化方法不斷縮小輸出與標籤之間的差距,當迭代過程到了截止條件,就能夠獲得訓練好的模型。優化方法最多見的就是梯度降低法及其變種,使用梯度降低法的前提是優化目標函數對於模型是可導的

步驟6:驗證和模型選擇
​ 訓練完訓練集圖片後,須要進行模型測試。利用驗證集來驗證模型是否能夠準確地挑選出含有氣球在內的照片。
​ 在此過程當中,一般會經過調整和模型相關的各類事物(超參數)來重複步驟2和3,諸如裏面有多少個節點,有多少層,使用怎樣的激活函數和損失函數,如何在反向傳播階段積極有效地訓練權值等等。

步驟7:測試及應用
​ 當有了一個準確的模型,就能夠將該模型部署到你的應用程序中。你能夠將預測功能發佈爲API(Application Programming Interface, 應用程序編程接口)調用,而且你能夠從軟件中調用該API,從而進行推理並給出相應的結果。

相關文章
相關標籤/搜索