EE4408: Machine Learning:
#########更新完成 ################################
更正1:MLE classifier 中是利用似然函數算出來的likehood進行判斷的,MAP中才使用后驗概率進行判斷(Lecture 4)
更正2:LDF 打成了 LDA(Lecture 6)
更正3:LDF Criterion Function
html版本(看起來好看一點)已更新!
鏈接:https://pan.baidu.com/s/1borCn8R8ig04_KzHWlVE3A?
提取碼:pocz
希望大家考試順利!!!!!!!!!!!!!
目錄
#########更新完成 #####
EE4408: Machine Learning:
Lecture1
Types of machine learning
Probability Review
Lecture 2
Graphical Model:
Belief Networks (Bayesian Networks)
Intro to Linear Algebra:
Eigenvalue and Eigenvector
Lecture 3
Bayesian Decision Theory
MLE maximum Likelihood Estimation 極大似然估計
Lecture 4
MLE Classifier Example
Cross Validation (交叉驗證)
Maximum a posteriori (MAP) Estimation
Non-parametric Classification
Dimensionality Reduction(降維)
Lecture 5
Data Scaling
Dimensionality Reduction
PCA
Eigenfaces
Lecture 6
Fisher's Linear Discriminant Analysis
LDA:Linear Discriminant Functions
Lecture 7
Linear Regression
Logistic Regression
Linear Discriminant Functions(線性判別方程)
LDF Criterion Function
Perceptron(感知機)
Non-separable Example && Convergence of Perceptron Rules
Lecture 8
Minimum Squared-Error Procedures
Support Vector Machines
SVM: Non-Separable Case
Nonlinear Mapping
Kernels(SVM的核函數)
Nonlinear SVM Step-by-Step
Multi-class SVMs
Lecture 9
Ensemble Classifiers (集成分類器)
Bagging:
Decision Tree(決策樹)
Random Forest:(隨機森林)
Boosting
Random Forests vs. Boosting
Lecture 10
Unsupervised Learning(Clustering)
K-means Clustering
Hierarchical Clustering(層次聚類)
Clustering Summary
Expectation Maximization
(據說不考)Lecture 11
神經網絡基礎知識
Perceptrons感知機
工作流程(概念)
神經網絡實現流程
Some question
EE4408: Machine Learning:
Lecture1
Types of machine learning
Supervised Learning:
-
example:Regression,*Classification
-
difference: need labels,需要標簽來學習
Unsupervised Learning:
-
example:Clustering
-
difference:not need labels,不需要標簽進行學習
Reinforcement Learning:強化學習
-
組成部分:環境,用戶
用戶根據environment所處的state產生action,作用于Environment,產生reward,返回Agent,更新action產生網絡,使得下一次的action會更好。
Probability Review
Discrete Random Variable:
Bayes Rule:
Continuous Random Variable:
Lecture 2
Graphical Model:
DAG:有向圖,沒有cycle(沒有一條路徑重新訪問一個節點)
Belief Networks (Bayesian Networks)
利用給定圖關系.求joint probablities
Intro to Linear Algebra:
-
Vectors:向量
-
scalars:標量
-
Subspace:子空間
-
Basis of Vector Space:基向量,在圖片中,基向量為:
-
Orthogonal matrices正交矩陣,滿足
-
Trace:矩陣對角線之和
-
Determinant:行列式
-
Covariance:協方差,
-
Correlation coefficient:相關系數:
-
Covariance matrix:
協方差:COV(X,Y)=E[(X-E(X))(Y-E(Y))]
-
Normal Density:正態分布
Eigenvalue and Eigenvector
用
可以求出
為Eigenvalue(特征值),
將lambda 帶入
求出的x為eigenvector(特征向量)
Lecture 3
Bayesian Decision Theory
prior:先驗概率 posterior:后驗概率
Decision using Posteriors:
-
判斷規則:
后驗概率哪個大,判斷成哪個
-
Error:
Error:給定x集合,后驗概率是確定的,所以error就是概率小的那個
-
Loss Function
Conditional Risk:
后驗概率決策的升級版,在進行決策前,設置一個參數
R()函數相當于將 每一類的錯誤率相加
MLE maximum Likelihood Estimation 極大似然估計
question
答案:a 因為對于每一個似然函數,都有一個確定的參數,比如高斯分布中的均值和方差,線性分類中的w和,所以他的判別函數的形狀是統一的.
main idea
-
用最大似然函數渠道最大值作為估計值,就是利用已知的樣本結果,反推最有可能(最大概率)導致這樣結果的參數值(模型已知,參數未知)。
-
先再寫出似然函數:
-
簡述方法:
-
寫出似然函數:
-
取對數log
-
求導數:
-
Lecture 4
MLE Classifier Example
利用train_data 進行最大似然估計(example中估計的是var和mean)
利用最大似然估計的概率進行判斷(更正)
利用測試集的標簽來計算error
Cross Validation (交叉驗證)
基礎概念:
-
訓練集(train set) —— 用于模型擬合的數據樣本。
-
驗證集(validation set)—— 是模型訓練過程中單獨留出的樣本集,它可以用于調整模型的超參數和用于對模型的能力進行初步評估。 通常用來在模型迭代訓練時,用以驗證當前模型泛化能力(準確率,召回率等),以決定是否停止繼續訓練。
-
測試集 —— 用來評估模最終模型的泛化能力。但不能作為調參、選擇特征等算法相關的選擇的依據。
一個形象的比喻:
訓練集-----------學生的課本;學生 根據課本里的內容來掌握知識。 ? 驗證集------------作業,通過作業可以知道 不同學生學習情況、進步的速度快慢。 ? 測試集-----------考試,考的題是平常都沒有見過,考察學生舉一反三的能力。K-fold cross validation
隨機將訓練數據等分成k份,S1, S2, …, Sk。
對于每一個模型Mi,算法執行k次,每次選擇一個Sj作為驗證集,而其它作為訓練集來訓練模型Mi,把訓練得到的模型在Sj上進行測試,這樣一來,每次都會得到一個誤差E,最后對k次得到的誤差求平均,就可以得到模型Mi的泛化誤差。
算法選擇具有最小泛化誤差的模型作為最終模型,并且在整個訓練集上再次訓練該模型,從而得到最終的模型。
overfitting 過擬合
模型對于訓練集來說太精確了,失去泛化性
Maximum a posteriori (MAP) Estimation
最大化后驗概率,首先后驗概率 = 先驗概率 * likehood
-
在MLE中,核心思想是最大化likehood,是不需要先驗知識的,只需要輸入觀測數據.缺點:在給定樣本不多的情況下,似然估計的參數不一定對
-
所以在MAP中,用最大后驗概率,其實是綜合了給定的樣本和先驗知識
可能會考當把先驗知識 prior =1(均勻先驗知識),則MLE和MAP等價
Non-parametric Classification
優點:可以用在任意分布,且不需要知道概率密度函數的形式
Density Estimation
其實就是用樣本算直方圖
Dimensionality Reduction(降維)
Lecture 5
Data Scaling
對數據進行預處理,歸一化,防止部分features數值過大,不利于后續操作
Dimensionality Reduction
Greedy Forward Feature Selection:從空的features集合中不斷加最好的特征
Greedy Backward Feature Selection:從所有的features集合中不斷刪除最壞的特征
PCA
一種數據降維的方法,
question
-
maxmize the variance from the new data
-
minimize reconstruction error
main idea
基于特征值分解協方差矩陣實現PCA算法
-
計算出協方差矩陣
-
利用特征分解方法求協方差矩陣的特征值與特征向量
-
取出特征值最大的k個特征向量組成新的空間
基于SVD分解協方差矩陣實現PCA算法
-
去平均值,即每一位特征減去各自的平均值。
-
計算協方差矩陣。
-
通過SVD計算協方差矩陣的特征值與特征向量。
-
對特征值從大到小排序,選擇其中最大的k個。然后將其對應的k個特征向量分別作為列向量組成特征向量矩陣。
-
將數據轉換到k個特征向量構建的新空間中。
Eigenfaces
用PCA 分解出 基圖像(Eigenfaces)
將圖像用基圖像表示:
兩個向量的距離差來表示是否是一張臉:
Lecture 6
Fisher's Linear Discriminant Analysis
把分類集合投影到一條線上進行分類
question:
explain why maximizing the distance between the projected class means is not sufficient for separating?
不能簡單的用一個維度的均值去分類
maybe have many overlapping parts,such like:
main idea
-
maximum objective function:
-
details:
-
use v to separate different classes
LDF:Linear Discriminant Functions
與Fisher 不同,Fisher 是投影到一條線上進行分類,LDF是根據在線的哪一邊進行分類.
可能會考!
LDF 對于 不連續的決策區域無法正常工作
Lecture 7
Linear Regression
步驟:
Assume a linear model: Y = β0 + β1 X
Find the line which “best” fits the data, i.e. estimate parameters β0 and β1(訓練:用最小誤差進行擬合)
Check assumptions of model(驗證)
Draw inferences and make predictions(測試)
Five Assumptions of Linear Regression
Existence: for each fixed value of X, Y is a random variable with finite mean and variance (對于每一個給定的X,Y都是隨機的但是有一個有限的均值和方差)
Independence: the set of Yi are independent random variables given Xi(對于給定Xi,Yi是獨立的隨機變量,和X沒有關系)
Linearity: the mean value of Y is a linear function of X(Y的均值對于x是一個線性的函數)
Homoscedasticity: the variance of Y is the same for any X(對于任意X,Y是同方差的)
Normality: For each fixed value of X, Y has a normal distribution (by assumption 4, σ2 does not depend on X)(對于任意X,Y是一個正態分布)
Estimating β0 and β1
實際上就是擬合 預測值和標簽值的差 的平方和 最小。(MSE最小均方誤差法----Lec8)
Logistic Regression
Aim: to learn Learn P(Y|X) directly by using the way like Linear Regression
實質:利用 l = a+bx 做線性回歸,然后講 l 帶入 logistic function表示概率p
損失計算:
利用極大似然函數法,擬合邏輯回歸中的參數(a,b)
邏輯回歸模型的數學形式確定后,剩下就是如何去求解模型中的參數。在統計學中,常常使用極大似然估計法來求解,即找到一組參數,使得在這組參數下,我們的數據的似然度(概率)最大。
設:
似然函數:
為了更方便求解,我們對等式兩邊同取對數,寫成對數似然函數:
在機器學習中我們有損失函數的概念,其衡量的是模型預測錯誤的程度。如果取整個數據集上的平均對數似然損失,我們可以得到:
即在邏輯回歸模型中,我們最大化似然函數和最小化損失函數實際上是等價的。
邏輯回歸的損失函數是:(計算方法可以用后面講到的梯度下降)
Linear Discriminant Functions(線性判別方程)
Augmented Feature Vector:
相當于多添加了一維的數據
判別形式:
Normalization:
將第二類的輸入變成原輸入的反數,這樣做是為了,簡化方法,只要滿足
就是分類正確的.
Solution Region
兩種求解方法
Optimization:
將目標函數進行求導,算導數等于0的時候,缺點:解方程復雜,且對于現在的一些問題(深度學習),不太可能寫出求導方程。
Gradient Descent(梯度下降)
更新weight vector方法:利用前一次的算出來的目標函數的導數,與目前的weight vector進行想減。
理解:梯度可以表示為目標函數下降的方向,我們只需要不斷控制weight vector往這個方向前進,如下圖。
優點:現在用的非常廣泛,并且適合任意的目標函數
LDF Criterion Function
LDF最初設立的目標函數為錯誤樣本的數量和,但是這是一個常數沒有辦法進行梯度下降,也沒有辦法進行求導為0,因此提出了后面的perceptron方法和MSE方法(與LDF最初設定方法主要不同就在于目標函數的設定)
注意:LDF 包含 Perceptron 和 MSE
Perceptron(感知機)
感知器得目標函數為所有分錯樣本的距離和,目的就是最小化這個目標函數。
利用梯度更新方法:
因為目標函數對于y求導之后只剩下y了,所以梯度與a沒有關系
Non-separable Example && Convergence of Perceptron Rules
對于以上這種沒有辦法找到一個合適的分類線的情況,對于基礎感知器或者線性判別分類器,它會一直繼續分類,沒有辦法收斂。
此時我們可以設置合適的學習率
,相當于更新次數越多,梯度會越來越不想更新。
Lecture 8
Minimum Squared-Error Procedures
MSE 只是一種設立目標函數(損失)的一個方程而已。
MSE:求解方法:
-
利用求導為0(Optimization)
-
梯度下降Gradient Descent
Support Vector Machines
Support Vector Machines
LDF出現的問題:我們只是很好的擬合了訓練集,當出現一個新的樣本(十分接近我們的決策平面),我們就很容易將它分錯。
因此就需要SVM(? Idea: maximize distance to the closest example)使最接近決策平面的兩個點之間的距離最大。
公式:
(不考數學推理:)
求解||w||,需要利用拉格朗日函數,將原來的形式轉變成:
如果利用核函數:
SVM: Non-Separable Case
通過設置 b 的大小來松弛間隔(允許多少點可以在這個間隔內)
Nonlinear Mapping
利用轉換方程實現非線性映射:
Kernels(SVM的核函數)
因為許多樣本并不是線性可分的(用一條線就能夠分出來),因此需要用到核函數(改變決策平面的形狀)
核函數一定是半正定的
核函數類型(了解):
Nonlinear SVM Step-by-Step
與之前步驟是一樣的,只是改變了核函數(感興趣可以看數學推導里面)
Multi-class SVMs
有兩種考慮角度:One-against-all:一次性分出多類 Pairwise:多次兩兩分類
(1)One-Against-All
(2)Pairwise SVMs
實質:經過多次的兩兩分類 訓練出 n*(n-1)/2 個支持向量機
SVM實現多分類的三種方案 - ZH奶酪 - 博客園 參考閱讀~? thank? 徐文熙 諸葛楊陽? for sharing?
Lecture 9
Ensemble Classifiers (集成分類器)
利用多個分類器集成來提高分類效果
主要分為 Bagging 和 boosting,其中random forest 屬于 bagging(感覺會考)
Bagging:
類似于投票機制:隨機選取樣本,利用每一次隨機選取的訓練集訓練一個分類器,最后通過所有分類器進行投票來獲得最后的分類效果。
Decision Tree(決策樹)
是一個樹狀的分類器,每一個節點的選擇是根據信息增益熵選擇的
感興趣可以看:(考試應該不考)
決策樹(decision tree)(一)——構造決策樹方法_天澤28的專欄-CSDN博客_決策樹
Random Forest:(隨機森林)
就是把決策樹當成弱分類器,然后利用Bagging方法,投票決定最后的分類。
Advantages of Random Forests
-
Very high accuracy – not easily surpassed by other algorithms
-
Efficient on large datasets
-
Can handle thousands of input variables without variable deletion
-
Effective method for estimating missing data, also maintains accuracy when a large proportion of the data are missing
-
Robust to label noise
-
Can be used in clustering, locating outliers and semi-supervised learning
Boosting
與bagging不同點在于,不是隨機的選擇每一次的訓練樣本(有規則的)
以AdaBoost為例:
第一次均勻的選取樣本
之后會根據上一次選取的樣本的錯誤率來更新,錯誤率越大就增加選取概率(為的是能夠更好地訓練分不對的點)
最后地分類由每一個分類器以及該分類器地錯誤率聯合決定(sign是一個激活函數)
Random Forests vs. Boosting
Lecture 10
Unsupervised Learning(Clustering)
為什么要用非監督學習:
Distance Measures:
考慮問題:
-
Fix the number of clusters to k(分成幾類)
-
Find the best clustering according to the criterion function (number of clusters may vary)(怎么分)
K-means Clustering
一種迭代地算法 Iterative optimization algorithms
人為選取要分地類數,上圖k=3,并且隨機初始化三個中心點,自動分類,距離哪個中心點近就是哪一類
計算每一個聚類地mean(均值)
重新將所有的點依據第二步的均值分類。
重復2 3 步驟 直到所有點不變
第二步的均值經常用距離(Distance Measures)來計算
Hierarchical Clustering(層次聚類)
由來:K-means 聚類舉要實現確定K值和初始聚類中心點的選擇,對于一部分數據不是很實用,因此提出了層次聚類。
主要分為以下兩種算法:
1.Agglomerative (bottom up) procedures:(凝聚法)
1.將樣本集中的所有的樣本點都當做一個獨立的類簇;repeat:-----------------------------------------------------------------------2.計算兩兩類簇之間的距離(后邊會做介紹),找到距離最小的兩個類簇c1和c2;3.合并類簇c1和c2為一個類簇;-----------------------------------------------------------------------直到: 達到聚類的數目或者達到設定的條件1.1.Agglomerative clustering with minimum distance(用最小距離作為簇間的距離)
有利于細長數據的分類,對噪聲很敏感
1.2.Agglomerative clustering with maximum distance(用最大的距離作為簇間距離)
對于緊湊形的數據能夠很好的作用,對于細長的數據不能很好的工作
1.3Average and Mean Agglomerative Clustering:
mean聚類比avg更加節省,應該值得是在程序中可以用矩陣運算吧,不用遍歷每個點(猜的)
2.Divisive (top down) procedures:(分裂法)
? ? ? 分裂法指的是初始時將所有的樣本歸為一個類簇,然后依據某種準則進行逐漸的分裂,直到達到某種條件或者達到設定的分類數目。用算法描述: ? 輸入:樣本集合D,聚類數目或者某個條件(一般是樣本距離的閾值,這樣就可不設置聚類數目) 輸出:聚類結果 1.將樣本集中的所有的樣本歸為一個類簇; 分裂法指的是初始時將所有的樣本歸為一個類簇,然后依據某種準則進行逐漸的分裂, 直到達到某種條件或者達到設定的分類數目。用算法描述:輸入:樣本集合D,聚類數目或者某個條件(一般是樣本距離的閾值,這樣就可不設置聚類數目) 輸出:聚類結果 1.將樣本集中的所有的樣本歸為一個類簇;repeat: --------------------------------------------------------------------------------2.在同一個類簇(計為c)中計算兩兩樣本之間的距離,找出距離最遠的兩個樣本a,b;3.將樣本a,b分配到不同的類簇c1和c2中;4.計算原類簇(c)中剩余的其他樣本點和a,b的距離,若是dis(a)<dis(b),則將樣本點歸到c1中, 否則歸到c2中;-------------------------------------------------------------------------------直到: 達到聚類的數目或者達到設定的條件()兩個簇之間的距離計算:
凝聚法和分裂法比較
(1)凝聚法通常更快
(2)分裂法不會因為局部數據而誤判(因為分裂法是自上到下的,是從全局出發的,所以不會被局部數據誤判)
Clustering Summary
能夠發現數據的結構特性
能夠應用在不同的領域
聚類對于人類來說比較簡單,對于電腦來說比較復雜(人眼一下就能看出來,電腦需要迭代聚類)
應用聚類算法很簡單,但是如何去評估它的表現很難
沒有通用的聚類算法,都需要根據數據去調整聚類算法
Expectation Maximization
參考:如何通俗理解EM算法_結構之法 算法之道-CSDN博客_em算法
引子:
-
我們已經學習過對于非監督學習(不給標簽),我們有Nonparametric approach(clustering)方法
-
對于模型參數估計我們有parametric approach(MLE)方法
其中Nonparametric approach(clustering)中不需要計算參數(概率分布)
而parametric approach(MLE)我們需要知道分類情況
但是在真正的Unsupervised Learning情況下,我們是不知道分類標簽,但如果需要去計算它的概率分布就不太容易進行.
舉個例子:
例子1. 假定我們需要統計七月在線10萬學員中男生女生的身高分布,怎么統計呢?考慮到10萬的數量巨大,所以不可能一個一個的去統計。對的,隨機抽樣,從10萬學員中隨機抽取100個男生,100個女生,然后依次統計他們各自的身高。例子1我們可以用MLE來分別擬合男女生的正太分布模型
例子2: 比如這100個男生和100個女生混在一起了。我們擁有200個人的身高數據,卻不知道這200個人每一個是男生還是女生,此時的男女性別就像一個隱變量。對于例子2來說就要用到接下來的 Expectation Maximization
看這個問題其實有點像 chicken-and-egg problem,先有雞還是先有蛋
我們想獲得男女的正太分布模型,就得知道男女分類情況,想知道男女分類情況就得知道男女的條件概率 P(性別|身高),這兩者不能同時實現
EM算法:(官方定義)
最大期望算法(Expectation-maximization algorithm,又譯為期望最大化算法),是在概率模型中尋找參數最大似然估計或者最大后驗估計的算法,其中概率模型依賴于無法觀測的隱性變量。 ? 最大期望算法經過兩個步驟交替進行計算, ? 第一步是計算期望(E),利用對隱藏變量的現有估計值,計算其最大似然估計值; 第二步是最大化(M),最大化在E步上求得的最大似然值來計算參數的值。M步上找到的參數估計值被用于下一個E步計算中,這個過程不斷交替進行。通俗理解
我們拿例子2為例:隱藏變量為性別 1.我們先初始化男女正態分布的參數(亂設都可以) 2.利用第一步的正態分布,獲得男女的條件概率,對已知的數據進行男女分類 3.利用第二步得到的男女分類,重新計算正太分布的參數值(MLE) 重復2 3 步直到收斂其中 官方定義中:
第一步計算期望值得是根據模型參數來計算出隱形變量的后驗概率(其實就是隱形變量的期望)
第二部最大化,指的就是利用第一步得到的隱形變量來計算下一步的模型參數
EM Summary
-
如果選定的概率模型不對,結果不會好
-
如果隱變量的個數選的有問題,結果也會不好
(據說不考)Lecture 11
神經網絡基礎知識
Perceptrons感知機
可以把他看成神經網絡的組成基礎,想人腦的細胞一樣
output =激活函數(w*x+b)
其中w是神經元自有的參數矩陣,是可以通過反向傳播學習的,b為偏執
激活函數包括
-
max()函數
-
Sigmoid()將概率擬合在[0,1]
-
Relu:作用 映射是局部線性的
為什么要用激活函數(可能會考)
激活函數使得網絡從線性變成非線性,如果沒有激活函數,多層網絡就沒有意義,多層網絡會變成一層網絡.
以這個例子,沒有激活函數max相當于一層網絡 輸出x*nwe(W)
工作流程(概念)
以汽車識別為例子,我們需要一個復雜的函數來判斷是否為汽車
可以用多層網絡來實現
神經網絡實現流程
利用訓練集輸入網絡
設計我們的目標函數,目標函數:在圖像分類中就是要最小化分類錯誤
通過目標函數,計算loss
通過反向傳播(鏈式法則Chain rule)
利用optimization算法更新網絡參數(每個感知機中的參數):
Some question
最后一個問題解釋:為什么需要很多層?
因為每一層的都可以重復使用,我們知道神經網絡的每一層是用來提取特征的.對于不同的類別,有些特征是相同的,比如摩托和汽車都有輪胎,所以提取摩托特征的網絡層是可以重復使用的.
-----------------------------------------------------------------------------------------感謝賈神、陳工友,無私奉獻
總結
以上是生活随笔為你收集整理的EE4408: Machine Learning:的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab plotroc 画roc曲
- 下一篇: [ios] - TommyBros(山寨