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


機器學習基礎(一)

emm... 那個第一篇文章,簡單的自我介紹一下,機器學習小白,希望和大家一起進步,有什么問題可以留言一起探討。

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

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

1 基本概念

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

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,從而進行推理並給出相應的結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM