1. 程式人生 > >機器學習與計算機視覺入門專案——視訊投籃檢測(三)

機器學習與計算機視覺入門專案——視訊投籃檢測(三)

在第二部分,我記錄了實驗中提取影象特徵的HOG運算元及其實現程式碼,我們接下來就要構造幾個簡單的分類器,對資料集的HOG特徵來分類,實現進球/不進球的分類任務。

分類器的設計和選擇

實驗中要用到的分類模型主要有四個:

  • logistic迴歸
  • SVM支援向量機
  • MLP多層感知機
  • CNN卷積神經網路

構建分類器的過程中總有許多因素會對最終效能產生影響,比如資料的增廣方式、模型的超引數、是否引入某個修正項等等。不同因素的組合會產生非常多的可選方案,因此我們採用交叉驗證和繪製ROC曲線的形式來確定模型的最優超引數,並比較不同引數及不同模型的優劣。交叉驗證ROC曲線在隨後都會講到。

幾種損失函式

函式名稱 形式
均方誤差損失 MSE=1ni=1n(y^iyi)2MSE=-\frac{1}{n} \sum_{i=1}^{n} (\widehat{y}_{i}-y_i)^2
yiy_i是資料的真實標籤,y^i\widehat{y}_i是模型的輸出結果
平均交叉熵損失 1m[i=1mj=011{y(i)=j}logp(y(i)=jx(i);θ)]-\frac{1}{m}[\sum_{i=1}^{m}\sum_{j=0}^{1}\ 1\{ y^{(i)}=j\}\ log \ p(y^{(i)}=j\mid x^{(i)};\theta)] 1{}1\{ \cdot \}是指示函式,當y(i)=j
y^{(i)}=j
時函式值為1否則為0
010-1損失 L0,1=i=0mIf(x(i))y(i)L_{0,1}=\sum_{i=0}^{m}\ I_{f(x^{(i)})\ne y^{(i)}} IxI_x也是指示函式,0-1損失相當於記錄了模型分類出錯的次數
負對數似然損失 NLL(θ,D)=i=0DlogP(Y=y(i)x(i),θ)NLL(\theta,D)=-\sum_{i=0}^{\mid D \mid}\ log\ P(Y=y^{(i)}\mid x^{(i)},\theta)
L1L1正則化 E(θ,D)=NLL(θ,D)+λθ1E(\theta,D)=NLL(\theta,D)+\lambda\mid \mid \theta \mid \mid_1 θp=(j=0θθjp)1pp=1\mid \mid \theta \mid \mid_p=(\sum_{j=0}^{\mid \theta\mid}\ \mid \theta_j \mid^p)^{\frac{1}{p}} \quad p=1
L2L2正則化 E(θ,D)=NLL(θ,D)+λθ2E(\theta,D)=NLL(\theta,D)+\lambda\mid \mid \theta \mid \mid_2 θp=(j=0θθjp)1pp=2\mid \mid \theta \mid \mid_p=(\sum_{j=0}^{\mid \theta\mid}\ \mid \theta_j \mid^p)^{\frac{1}{p}} \quad p=2

我所理解的正則化的一個目的是限制θ\theta的各維分量不至於出現極大的值,也就是避免出現輸入向量中某一維度

Logistic迴歸

基本原理

logistic迴歸是一個基於概率的線性二分類器,通過學習一組權重向量ω\omega和偏置bb,模型將一個輸入向量對映到一個高維空間。權重可以理解為對輸入特徵向量的線性加權,體現了不同維度對分類的重要程度,偏置可以理解為系統的零輸入響應,是系統在沒有輸入的情況下的輸出值。 xωTx+bx\to \omega^Tx+b 實際上,模型的引數ω\omegabb正是決定了這個高維空間中的一個超平面,用於將樣本點分在超平面的兩側。而下面的公式也可以說明,樣本點距離超平面的距離與屬於該類別的概率成正比。 s(x)=11+e(ωTx+b)s(x)=\frac{1}{1+e^{-(\omega^T x+b)}} P(y=1xθ)=11+e(ωTx+b)P(y=1|x'\theta)=\frac{1}{1+e^{-(\omega^Tx+b)}} 我們將輸入向量稍作改動,新增一個常數1的維度,目的是將偏置bb寫進輸入向量xx,同時將權重ω\omega增加一維,用於和xx'的最後一維相乘,得到偏置。 ωTx+b=θTx\omega^Tx+b=\theta^T x'

那麼上兩式就可以改寫成 s(x)=11+eθTxs(x)=\frac{1}{1+e^{-\theta^Tx'}} P(y=1xθ)=11+eθTxP(y=1|x'\theta)=\frac{1}{1+e^{-\theta^Tx'}} 其中,θTx\theta^Tx'是高維空間中一點到由θ\theta決定的超平面的距離,因為θTx=θx\theta^Tx'=\vec \theta \cdot \vec x,預設向量都是列向量,θ\theta規定為超平面的法向量,它可以朝向平面任一側。距離越大,向量點積的值就越大,根據sigmoidsigmoid函式的影象我們知道該點屬於某一類別的概率值就越接近於1,相反如果資料點在法向量θ\theta的另一側,其點積的值越接近1-1,屬於另一類的概率就越大。 在這裡插入圖片描述 在這裡插入圖片描述

損失函式

在二值分類的問題中,我們將平均交叉熵損失函式寫成如下 J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]+λθ22J(\theta)=-\frac{1}{m}[\sum_{i=1}^{m}y^{(i)}\ log\ h_\theta(x^{(i)})+(1-y^{(i)})log\ (1-h_\theta(x^{(i)}))]+\lambda\mid \mid \theta \mid\mid ^2_2

相關推薦

機器學習計算機視覺入門專案——視訊投籃檢測

在第二部分,我記錄了實驗中提取影象特徵的HOG運算元及其實現程式碼,我們接下來就要構造幾個簡單的分類器,對資料集的HOG特徵來分類,實現進球/不進球的分類任務。 分類器的設計和選擇 實驗中要用到的分類模型主要有四個: logistic迴歸 SVM支援向量機

機器學習計算機視覺深度學習

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】       要說很多現在最火的AI是什麼,那就是深度學習。那麼深度學習和機器學習有什麼關係呢?我們可以通過一問一答的形式來解決。   1

機器學習計算機視覺darknet編譯

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】       曾經有一段時間,我自己很喜歡閱讀程式碼,但是對編譯程式碼不是很有興趣。這其實是本末倒置的做法。真正去學一門語言或者一個開源軟體,必須去實際操作

機器學習計算機視覺移動端深度學習優化框架

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】       我們利用tensorflow、keras、caffe或者mxnet訓練好的模型總要移植到嵌入式裝置上去執行,因此需要特定的深度學習優化框架。這

機器學習計算機視覺開篇

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】     這幾年,機器學習非常火。自從alpha go戰勝了韓國的李世石之後,深度學習又將機器

機器學習計算機視覺sklearn快速上手

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】      很多熟悉機器學習的同學,都知道python下面有一個sklearn的庫。這個庫使用起來很簡單,不但功能多演算法全,而且很多引數都是預設的,使用的時候直接呼叫

機器學習】動手寫一個全連線神經網路:分類

我們來用python寫一個沒有正則化的分類神經網路。 傳統的分類方法有聚類,LR邏輯迴歸,傳統SVM,LSSVM等。其中LR和svm都是二分類器,可以將多個LR或者svm組合起來,做成多分類器。 多分類神經網路使用softmax+cross entropy組

機器學習實戰系列】讀書筆記之KNN演算法

本次讀書筆記在於延續上一篇部落格的工程,做出微小的改動,即使用Matplotlib建立散點圖(散點圖使用DataMat矩陣的第一、第二列資料)。首先還是介紹一個相關知識點,方便程式碼瀏覽。知識點一:1、在使用Matplotlib生成圖表時,預設不支援漢字,所有漢字都會顯示成框

白話人工智慧機器學習計算機視覺

人類的智慧行為分為感知行為和思維活動 計算機視覺 :計算機對三維世界的感知   計算機聽覺 :語音識別 話者識別       計算機思維: 證明  推理   人工

【逐夢AI】深度學習計算機視覺應用實戰課程BAT工程師主講,無人汽車,機器人,神經網絡

bat 神經網絡 深度學習 深度學習框架 0基礎 http 提取 框架 以及 【逐夢AI】深度學習與計算機視覺應用實戰課程(BAT工程師主講,無人汽車,機器人,神經網絡)網盤地址:https://pan.baidu.com/s/1G0_WS-uHeSyVvvl_4bQnlA

分享《深度學習計算機視覺演算法原理框架應用》《大資料架構詳解從資料獲取到深度學習》PDF資料集

下載:https://pan.baidu.com/s/12-s95JrHek82tLRk3UQO_w 更多資料分享:http://blog.51cto.com/3215120 《深度學習與計算機視覺 演算法原理、框架應用》PDF,帶書籤,347頁。《大資料架構詳解:從資料獲取到深度學習》PDF,帶書籤,3

分享《深度學習計算機視覺演算法原理框架應用》PDF《大資料架構詳解從資料獲取到深度學習》PDF +資料集

下載:https://pan.baidu.com/s/12-s95JrHek82tLRk3UQO_w 更多分享資料:https://www.cnblogs.com/javapythonstudy/ 《深度學習與計算機視覺 演算法原理、框架應用》PDF,帶書籤,347頁。《大資料架構詳解:從資料獲取到深度學

分享《深度學習計算機視覺算法原理框架應用》《大數據架構詳解從數據獲取到深度學習》PDF數據集

書簽 部分 https log pdf 深入 -s 更多 實用 下載:https://pan.baidu.com/s/12-s95JrHek82tLRk3UQO_w 更多資料分享:http://blog.51cto.com/3215120 《深度學習與計算機視覺 算法原理

深度學習計算機視覺(PB-04)-rank-N準確度

在我們深入討論高階深度學習主題(如遷移學習)之前,先來了解下rank-1、rank-5和rank-N準確度的概念。當你在閱讀深度學習相關文獻時,尤其是關於計算機視覺和影象分類,你很可能會看到關於rank-N 準確度。例如,幾乎所有在ImageNet資料集上驗證的機器學習方法的論文都給出了ra

深度學習計算機視覺(PB-03)-特徵提取

從這節開始,我們將討論關於遷移學習的內容,即用預先訓練好的模型(往往是在大型資料上訓練得到的)對新的資料進行學習. 首先,從傳統的機器學習場景出發,即考慮兩個分類任務: 第一個任務是訓練一個卷積神經網路來識別影象中的狗和貓。 第二個任務是訓練一個卷積神經網路識別三

深度學習計算機視覺(PB-02)-資料增強

在深度學習實踐中,當訓練資料量少時,可能會出現過擬合問題。根據Goodfellow等人的觀點,我們對學習演算法的任何修改的目的都是為了減小泛化誤差,而不是訓練誤差。 我們已經在sb[後續補充]中提到了不同型別的正則化手段來防止模型的過擬合,然而,這些都是針對引數的正則化形式,往往要求我們

深度學習計算機視覺(PB-09)-使用HDF5儲存大資料集

到目前為止,我們使用的資料集都能夠全部載入到記憶體中。對於小資料集,我們可以載入全部影象資料到記憶體中,進行預處理,並進行前向傳播處理。然而,對於大規模資料集(比如ImageNet),我們需要建立資料生成器,每次只訪問一小部分資料集(比如mini-batch),然後對batch資料進行預處理

深度學習計算機視覺(PB-08)-應用深度學習最佳途徑

在Starter Bundle第10章中,我們提到了訓練一個神經網路模型所需要的四個因素,即: 資料集 loss函式 神經網路結構 優化演算法 有了這四個因素,實際上我們是可以訓練任何深度學習模型,但是,我們如何訓練得到一個最優的深度學習模型?如果效果

深度學習計算機視覺(PB-10)-Kaggle之貓狗比賽

在第9節中,我們提到了當資料太大無法載入到記憶體中時,如何使用HDF5儲存大資料集——我們自定義了一個python指令碼將原始影象資料集序列化為高效的HDF5資料集。在HDF5資料集中讀取影象資料集可以避免I/O延遲問題,從而加快訓練過程。 假設我們有N張儲存在磁碟上的影象資料,之前的做

深度學習計算機視覺(PB-07)-優化演算法

在之前的章節中,我們只研究和使用了隨機梯度下降法(SGD)來優化網路模型,但是,在深度學習中還有其他高階的優化演算法,這些高階方法可以加速訓練過程或者提高準確度: 在可接受的準確度下,高階演算法可以減少訓練時間(比如更少的迭代次數epochs)。 模型可以更好的適應其他超引