机器学习问题总结(04)
文章目錄
- 1、MLP的BP過程
- 2、maxpool層BP怎么做的
- 2.1 **mean pooling**
- 2.2 max pooling
- 3、opencv遍歷像素的方式,講兩種?
- 4、傳統圖像處理有了解過嗎,比如去噪 特征提取
- 5、問在linux下寫過代碼嗎? 問用了什么軟件工具
- 6、LDA(狄利克雷分布)
- 7、PR曲線、ROC曲線
- 7.1、查準率、查全率、F1
- 7.2、ROC和AUC
- 7.3、偏差和方差
- 8、特征工程
- 8.1、特征工程是什么?
- 9、數據預處理的方法
- 10、特征選擇的方法有哪些
- 11、寫K-means、GMM的公式
- 11.1 k-means
- 11.2 GMM
- 12、CNN與RNN的區別
- 13、你所知道的距離度量方式、損失函數
- 13.1 距離度量
- 13.2 損失函數
1、MLP的BP過程
MLP(multilayer perceptron)多層神經網絡
1、單層神經網絡的BP算法
反向誤差傳播
delta就是誤差的反向傳播,用來更新網絡參數(w,b)
使得損失函數向最小值靠近
2、深層前向、后向
3、MLP(multilayer perceptron)的BP
- 無監督預訓練 RBM
- 有監督微調 BP
2、maxpool層BP怎么做的
2.1 mean pooling
mean pooling的前向傳播就是把一個patch中的值求取平均來做pooling,那么反向傳播的過程也就是把某個元素的梯度等分為n份分配給前一層,這樣就保證池化前后的梯度(殘差)之和保持不變,還是比較理解的
2.2 max pooling
max pooling也要滿足梯度之和不變的原則,max pooling的前向傳播是把patch中最大的值傳遞給后一層,而其他像素的值直接被舍棄掉。那么反向傳播也就是把梯度直接傳給前一層某一個像素,而其他像素不接受梯度,也就是為0。
- Max Pooling比較有意思,forward的時候需要記錄 每個窗口內部最大元素的位置
- 然后bp的時候,對于窗口內最大元素的gradient是1,否則是0。原理和ReLu是一樣的。
3、opencv遍歷像素的方式,講兩種?
(1). C操作符[] (指針方式訪問)
(2). 迭代器iterator
(3). 動態地址計算
像素遍歷方式在速度上不同,用C操作符[]是最快的訪問方式
at()函數和行首指針
4、傳統圖像處理有了解過嗎,比如去噪 特征提取
1、圖像去噪
圖像去噪是指減少數字圖像中噪聲的過程稱為圖像去噪。現實中的數字圖像在數字化和傳輸過程中常受到成像設備與外部環境噪聲干擾等影響,稱為含噪圖像或噪聲圖像。
噪聲是圖象干擾的重要原因。一幅圖象在實際應用中可能存在各種各樣的噪聲,這些噪聲可能在傳輸中產生,也可能在量化等處理中產生。
去除圖像噪聲的方法簡介
- 均值濾波器:采用鄰域平均法
- 自適應維納濾波器
- 中值濾波器
- 小波去噪:(1)對圖象信號進行小波分解 (2)對經過層次分解后的高頻系數進行閾值量化 (3)利用二維小波重構圖象信號
2、圖像特征提取
- HOG特征(方向梯度直方圖)
- LBP特征(局部二值模式)(編碼:中心像素做閾值)
- Haar-like特征
5、問在linux下寫過代碼嗎? 問用了什么軟件工具
寫過
- 一般寫Python,簡單的C/C++程序用的是sublime,然后通過終端去運行,調試
- 寫Linux界面程序的話用QT軟件比較多
- 寫Linux下的驅動程序,用的是交差編譯的環境,是在win下面開發,然后將工程通過網絡傳輸到Linux機子上去,然后通過終端運行命令進行編譯和執行。驅動程序編寫使用VS(win)
6、LDA(狄利克雷分布)
Dirichlet Distribution(狄利克雷分布)的定義和性質
隱含狄利克雷分布(Latent Dirichlet Allocation,簡稱LDA)是由 David M. Blei、Andrew Y. Ng、Michael I. Jordan 在2003年提出的,是一種詞袋模型,它認為文檔是一組詞構成的集合,詞與詞之間是無序的。一篇文檔可以包含多個主題,文檔中的每個詞都是由某個主題生成的,LDA給出文檔屬于每個主題的概率分布,同時給出每個主題上詞的概率分布。LDA是一種無監督學習,在文本主題識別、文本分類、文本相似度計算和文章相似推薦等方面都有應用。
multinomial distribution(多項式分布)
LDA中,多項式分布, 和狄利克雷分布的 形式一致,所以稱為共軛
共軛分布:共軛先驗分布,在貝葉斯統計中,如果后驗分布與先驗分布屬于同類,則先驗分布與后驗分布被稱為共軛分布,而先驗分布被稱為似然函數的共軛先驗。
7、PR曲線、ROC曲線
PR曲線、ROC曲線、AUC、Accuracy
7.1、查準率、查全率、F1
對于二分類問題,可將樣例根據其真實類別與學習器預測類別的組合劃分為真正例(TP),假反例(FN),假正例(FP),真反例(TN),具體分類結果如下
查準率P和查全率R分別定義為:
查準率關心的是”預測出正例的正確率”即從正反例子中挑選出正例的問題。
查全率關心的是”預測出正例的保證性”即從正例中挑選出正例的問題。
這兩者是一對矛盾的度量,查準率可以認為是”寧缺毋濫”,適合對準確率要求高的應用,例如商品推薦,網頁檢索等。
查全率可以認為是”寧錯殺一百,不放過1個”,適合類似于檢查走私、逃犯信息等。
下圖為查準率-查全率曲線(P-R圖)
若一個學習器的P-R曲線被另一個學習器完全”包住”,則后者的性能優于前者。當存在交叉時,可以計算曲線圍住面積,但比較麻煩,平衡點(查準率=查全率,BEP)是一種度量方式。
但BEP還是過于簡化了些,更常用的是F1和Fp度量,它們分別是查準率和查全率的調和平均和加權調和平均。定義如下
7.2、ROC和AUC
很多學習器是為測試樣本產生一個實值或概率預測,然后將這個預測值與一個分類閾值進行比較,若大于閾值分為正類,否則為反類,因此分類過程可以看作選取一個截斷點。
不同任務中,可以選擇不同截斷點,若更注重”查準率”,應選擇排序中靠前位置進行截斷,反之若注重”查全率”,則選擇靠后位置截斷。因此排序本身質量的好壞,可以直接導致學習器不同泛化性能好壞,ROC曲線則是從這個角度出發來研究學習器的工具。
曲線的坐標分別為真正例率(TPR)和假正例率(FPR),定義如下
下圖為ROC曲線示意圖,因現實任務中通常利用有限個測試樣例來繪制ROC圖,因此應為無法產生光滑曲線,如右圖所示。
計算曲線圍住的面積(AUC)來評價性能優劣
7.3、偏差和方差
泛化誤差可以分解為偏差、方差與噪聲之和
偏差度量了學習算法的期望預測和真實結果偏離程度。
方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響。
噪聲可以認為數據自身的波動性,表達了目前任何學習算法所能達到泛化誤差的下限。
偏差大說明欠擬合,方差大說明過擬合。
8、特征工程
8.1、特征工程是什么?
有這么一句話在業界廣泛流傳:數據和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已。那特征工程到底是什么呢?顧名思義,其本質是一項工程活動,目的是最大限度地從原始數據中提取特征以供算法和模型使用。通過總結和歸納,人們認為特征工程包括以下方面:
特征處理是特征工程的核心部分,sklearn提供了較為完整的特征處理方法,包括數據預處理,特征選擇,降維等。首次接觸到sklearn,通常會被其豐富且方便的算法模型庫吸引,但是這里介紹的特征處理庫也十分強大!
9、數據預處理的方法
我們使用sklearn中的preproccessing庫來進行數據預處理
通過特征提取,我們能得到未經處理的特征,這時的特征可能有以下問題:
- 不屬于同一量綱
- 信息冗余
- 定性特征不能直接使用
- 存在缺失值
- 信息利用率低
10、特征選擇的方法有哪些
根據特征選擇的形式又可以將特征選擇方法分為3種:
- Filter:過濾法,按照發散性或者相關性對各個特征進行評分,設定閾值或者待選擇閾值的個數,選擇特征。
- Wrapper:包裝法,根據目標函數(通常是預測效果評分),每次選擇若干特征,或者排除若干特征。(每次增加或者減少一維特征,觀察模型的結果從而決定是否添加或刪除該特征)
- Embedded:嵌入法,先使用某些機器學習的算法和模型進行訓練,得到各個特征的權值系數,根據系數從大到小選擇特征。類似于Filter方法,但是是通過訓練來確定特征的優劣。(通過最終訓練好的模型的參數來選擇特征,LASSO回歸,RF模型等)
我們使用sklearn中的feature_selection庫來進行特征選擇。
11、寫K-means、GMM的公式
11.1 k-means
11.2 GMM
12、CNN與RNN的區別
在普通的全連接網絡或CNN中,每層神經元的信號只能向上一層傳播,樣本的處理在各個時刻獨立,因此又被成為前向神經網絡(Feed-forward Neural Networks)。而在RNN中,神經元的輸出可以在下一個時間戳直接作用到自身,即第i層神經元在m時刻的輸入,除了(i-1)層神經元在該時刻的輸出外,還包括其自身在(m-1)時刻的輸出!表示成圖就是這樣的:
我們可以看到在隱含層節點之間增加了互連。為了分析方便,我們常將RNN在時間上進行展開,得到如圖6所示的結構:
13、你所知道的距離度量方式、損失函數
13.1 距離度量
- 距離函數種類:歐式距離、曼哈頓距離、明式距離(閔可夫斯基距離)、馬氏距離、切比雪夫距離、標準化歐式距離、漢明距離、夾角余弦等
- 常用距離函數:歐式距離、馬氏距離、曼哈頓距離、明式距離
1.歐式距離
歐式距離是最容易直觀理解的距離度量方法,我們小學,中學,高中所接觸的兩個空間中的距離一般都是指的是歐式距離。
2.曼哈頓距離(Manhattan Distance)
兩個點在標準坐標系上的絕對軸距總和
3.切比雪夫距離
各坐標數值差的最大值
4.閔可夫斯基距離
閔氏距離不是一種距離,而是一組距離的定義,是對多個距離度量公式的概括性的表述。
5.標準化歐氏距離
定義: 標準化歐氏距離是針對歐氏距離的缺點而作的一種改進。標準歐氏距離的思路:既然數據各維分量的分布不一樣,那先將各個分量都**“標準化”**到均值、方差相等。
6.馬氏距離
**概念:**馬氏距離是基于樣本分布的一種距離。物理意義就是在規范化的主成分空間中的歐氏距離。所謂規范化的主成分空間就是利用主成分分析對一些數據進行主成分分解。再對所有主成分分解軸做歸一化,形成新的坐標軸。由這些坐標軸張成的空間就是規范化的主成分空間。
馬氏距離的優點:與量綱無關,排除變量之間的相關性干擾
7.余弦距離
夾角余弦取值范圍為[-1,1]。余弦越大表示兩個向量的夾角越小,余弦越小表示兩向量的夾角越大。當兩個向量的方向重合時余弦取最大值1,當兩個向量的方向完全相反余弦取最小值-1。
8.漢明距離
定義:兩個等長字符串s1與s2的漢明距離為:將其中一個變為另外一個所需要作的最小字符替換次數。
9.信息熵
以上的距離度量方法度量的皆為兩個樣本(向量)之間的距離,而信息熵描述的是整個系統內部樣本之間的一個距離,或者稱之為系統內樣本分布的集中程度(一致程度)、分散程度、混亂程度(不一致程度)。系統內樣本分布越分散(或者說分布越平均),信息熵就越大。分布越有序(或者說分布越集中),信息熵就越小。
13.2 損失函數
- log對數 損失函數(邏輯回歸)
- 平方損失函數(最小二乘法)
- 指數損失函數(AdaBoost)
- Hinge損失函數(SVM)
- 0-1損失函數
- 絕對值損失函數
損失函數(loss function)是用來估量你模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函數,通常使用L(Y, f(x))來表示,損失函數越小,模型的魯棒性就越好。
損失函數是經驗風險函數的核心部分,也是結構風險函數重要組成部分。模型的結構風險函數包括了經驗風險項和正則項
1.log對數 損失函數
在邏輯回歸的推導中,它假設樣本服從伯努利分布(0-1分布),然后求得滿足該分布的似然函數。
log函數是單調遞增的,(凸函數避免局部最優)
在使用梯度下降來求最優解的時候,它的迭代式子與平方損失求導后的式子非常相似
2.平方損失函數(最小二乘法, Ordinary Least Squares)
最小二乘法是線性回歸的一種,OLS將問題轉化成了一個凸優化問題。
在線性回歸中,它假設樣本和噪聲都服從高斯分布(為什么假設成高斯分布呢?其實這里隱藏了一個小知識點,就是中心極限定理),最后通過極大似然估計(MLE)可以推導出最小二乘式子。
為什么它會選擇使用歐式距離作為誤差度量呢(即Mean squared error, MSE),主要有以下幾個原因:
- 簡單,計算方便;
- 歐氏距離是一種很好的相似性度量標準;
- 在不同的表示域變換后特征性質不變
3.指數損失函數(AdaBoost)
4.hinge損失
在機器學習算法中,hinge損失函數和SVM是息息相關的。在線性支持向量機中,最優化問題可以等價于下列式子:
損失函數總結
總結
以上是生活随笔為你收集整理的机器学习问题总结(04)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python综合应用(1)--名片管理系
- 下一篇: MachineLearning(9)-最