在機器學習中,資料並非通常意義上的數量值,而是對於物件某些性質的描述。被描述的性質叫做屬性,屬性的取值稱為屬性值,不同的屬性值有序排列得到的向量就是資料,也叫例項。
根據輸入輸出型別的不同,預測問題可分為一下三類。
分類問題:輸出變數為有限個離散變數,當個數為2時即為最簡單的二分類問題;
迴歸問題:輸入變數、輸出變數均為連續變數;
標註問題:輸入變數和輸出變數均為變數序列。
整合學習:使用多個個體學習器來獲得比獲得比每個單獨的個體學習器更好的效能。
個體學習器效能要有一定的保證,並且效能要有一定的差異,保持多樣性。
整合學習的核心在於多樣性和準確性之間做出這種,進而產生並結合各具優勢的個體學習器。
個體學習器的生成方式很大程度上取決於資料的使用策略。
整合學習方法可以分成兩類:個體之間存在強依賴關係必須序列生成的序列化方法,和個體學習器之間不存在強依賴關係可以同時生成的並行化方法。
序列化方法中的資料使用方式被稱為提升(Boosting),其基本思路是對所用訓練資料進行多次重複使用,每次應用前需要對資料的機率分佈做出調整,以達到不同的訓練效果。
與Boosting相比,並行化方法中資料使用機制是將原始的使用資料分成若干個互不交疊的子集,再根據每個子集獨立的訓練處不同的個體學習器,這種方式稱為自助聚合。簡稱打包(Bagging)。在B啊剛剛ing機制中,不同的個體學習器之間多樣性容易得到保障,但是由於每個個體學習器只能使用一小部分資料進行學習,其效果就容易出現斷崖式下跌。
典型的序列化學習演算法是自適應提升方法(Adaptive Boosting)。先透過改變訓練資料的權重分佈,訓練出一系列具有粗糙規則的弱個體分類器,再基於這些弱分類器進行反覆學習和組合,構造出具有精細規則的強分類器。Adaptive Boosting要解決兩個問題:訓練資料權重調整策略和弱分類器的組合策略。
隨著訓練過程的深入,弱學習器的訓練中心逐漸被自行調整到被分類器錯誤分類的樣本上,因而每一輪次的模型都會根據之前輪次模型的訓練結果進行調整。
典型的並行學習方法是隨機森林方法。隨機森林就是對多個決策樹模型的整合。隨機的含義體現在兩個方面:一是每個資料子集中的樣本是在原始的訓練資料集中隨機抽取的;二是在決策樹生成的過程中引入了屬性的隨機選擇。在隨機森林中,每棵決策樹在選擇屬性劃分時,首先從結點的屬性集合中隨機抽取出包含k個屬性的一個子集,再在這個子集中選擇最優的屬性生成決策樹。
計算機視覺:傳統的計算機視覺通常包括影像預處理、特徵提取、特徵篩選、影像識別等幾個步驟。
機器學習
機率這個基礎概念村子著兩種不同的解讀,他們分別對應著機率的頻率學派和貝葉斯學派。
機器學習是一門透過計算的手段利用經驗來改善系統自身效能的學科。
頻率學派和貝葉斯學派解決的是怎麼學的問題,對於一個給定的問題到底要學到什麼程度需要專門的計算學習理論來解釋。
機器學習學的是輸入和輸出之間的對映關係,學到的對映會以模型的形式出現。
機器學習需要格努問題特定和已有資料確定具有最強解釋性或預測力的模型。
其過程需要經過三個階段:
模型擬合(利用訓練資料集對模型的普通引數進行擬合);
模型選擇(利用驗證資料集對模型的超參進行調整,篩選出效能最好的模型);
模型評價(利用測試資料集來測試篩選出的模型在未知資料上的真實效能)。
脫離問題的實際情況談論模型優劣是沒有意義的,只有讓模型的特點和問題的特徵相匹配,模型才能發揮最大的作用。
模型本身及其背後學習方法的泛化能力,也就是模型對未知資料的預測能力,是機器學習的核心問題。
特徵的本質是用於預測分類結果的資訊,特徵工程實際上就是對這些資訊的編碼。
正則化是抑制過擬合的方法的統稱。它透過動態調整估計引數的取值來降低模型的複雜度,以偏差的增加為代價來換取方差的下降。這是因為當一些引數足夠小時,它們對應的屬性對輸出結果的貢獻就會微乎其微,這在實質上去除了非相關屬性的影響。
邏輯迴歸是基於似然度的分類方法,透過對資料機率建模來得到軟輸出。
支援向量機並不關心資料的機率,而是要基於判別式找到最優的超平面作為二分類問題的決策邊界。支援向量機有三個核心的概念:間隔、對偶、核技巧。
如果將區域性特性持續加以細化,細化到讓每個資料點都定義出不同區域性特性的子區間,其結果就是基於例項的學習。
基於例項的學習也叫基於記憶的學習,它學習的不是泛化的模型而是樣本之間的關係。
在基於例項的學習方法中,最典型的代表就是k近鄰,它將每個訓練例項都表示成高維特徵空間中的一個點。
隱藏層指多級前饋神經網路中,除輸入層和輸出層之外的層。
當單個隱藏層在廣度上難以實現時,一個自然的思路就是以網路結構的深度來換取廣度,也就是增加隱藏層的數目來降低每個隱藏層中神經元的數目,這就是深度學習的起源。
準確的說,深度學習是一類學習方法,它應用的模型架構是深度神經網路。
深度學習既可以用於解釋也可以用於預測。在實際中,這兩個功能通常被組合使用,解釋功能可以看做編碼器,對高維資訊進行低維重構;預測功能可以看做解碼器,將低維重構恢復成高維資訊。這樣的兩個深度網路級聯起來,就形成了編碼-解碼結構。
卷積神經網路本身就可以看成是個龐大的編碼器,其中的卷積層用於提取特徵,不同的卷積核代表著不同的特徵。
在影像的每個區域性上,和卷積核相似度最高的區域都被下采樣操作篩選出來,用於下一階段的特徵提取。在卷積層和下采樣層的迭代過程中,低層次的特徵不斷組合成高層次的特徵,數字影像的標識方式也從原始的畫素集合變成卷積得到的特徵組合,這兩個層也就構成了卷積神經網路的編碼器。
和卷積神經網路相比,編解碼結構更直觀的應用是在迴圈神經網路中。迴圈神經網路是增加了時間維度的神經網路,是自然語言處理、尤其是機器翻譯的利器。
編解碼結構的核心是生成資料表示,因而屬於表示學習的範疇。
表示學習又叫特徵學習,其目標是讓機器自動發現原始資料中與輸出相關度較高的隱含特徵,因而能夠生成新特徵的技術都可以歸納到表示學習中。
區域性化模型典型的處理方式先將整體劃分成區域性,使每個區域性都體現出一定的規律性,再對每個區域性的規律做出擬合。
整合學習是將多個基學習器進行整合,以得到比每個單獨基學習器更優預測效能的方法。每個用於整合學習的基學習器都是弱學習器,其效能可以只比隨機猜測好一點。整合學習的作用就是將這多個弱學習器提升成一個強學習器,達到任意小的錯誤率。
提升方法透過改變訓練資料的分佈來訓練不同的弱學習器,再將他們組合成強學習器。提升方法的重點在取新模型之長補舊模型之短來降低偏差,儘可能獲取無偏差的估計,模型之間是相互依賴的。如果去除對依賴性的限制,使用相互獨立的模型來實現整合,典型的方法就是裝袋法。
裝袋法是自主聚合的簡稱,是模型均衡的一種手法。從訓練資料集中利用重取樣抽取出若干個子集,利用每個子集分別建立預測模型,再對這多個預測值求平均,就能夠降低統計學習方法的方差。需要注意的是裝袋法並沒有降低偏差的效果,也沒有提升預測的準確性,因此在選擇基學習器時應當以偏差較小的優先。
直接使用提升發和裝袋法只是初級的策略,將它們的強化版用在決策樹上可以得到更加強大的萬能模型,也就是梯度提升決策樹和隨機森林。
梯度提升法常見變種:梯度提升決策樹(GBDT,使用決策樹作為弱模型),極限梯度提升(XGBoost,加入了正則化和並行處理,提升了效能和速度)。
在深度學習和神經網路中,梯度是一個向量,表示損失函式(也成為目標函式)對模型引數的導數。換句話說,梯度指示了損失函式在引數空間的變化方向和速率。損失函式:衡量模型預測和實際目標之間差距的函式。常見的損失函式有均方誤差(MSE),交叉熵損失等。
梯度消失是指在深度神經網路中,梯度在向後傳播時逐漸變得非常小,最終接近於0。這會導致掐年層(靠近輸入層)的引數更新極其緩慢,甚至無法更新,從而阻礙網路的訓練和收斂。
卷積神經網路試圖用向量來描述一個矩陣的資訊。從工具的角度講,卷積神經網路利用兩個特殊的架構來對影像進行總結,卷積層和池化層。
常見網路模型:VGG、GoogleNet、ResNet