最近看了一篇僞雷達論文,裏面有些機器學習的概念不是很懂,這裏記錄下學習筆記。
1 端到端深度學習
傳統的機器學習流程通常由多個獨立模塊串行組成,每個獨立模塊單獨完成一個任務,前一個模塊的結果會影響下一個模塊,而使用神經網絡的深度學習模型,中間的所有操作都在神經網絡內部執行,不再分爲多個獨立的模塊處理,這就稱爲端到端(end-to-end)。
可以把 end-to-end 理解爲一個函數黑盒,由輸入數據直接得到輸出數據,下面是一個自然語言處理問題中傳統機器學習和端到端深度學習的比較(圖片來自 CSDN @ViatorSun):
2 神經網絡
這篇博客講的非常好,很適合入門:從神經元到深度學習,我摘取了一些關鍵性的內容。
一個單獨的神經元模型:
- 一個神經網絡的訓練算法就是讓權重的值調整到最佳,以使得整個網絡的預測效果最好。
- 神經網絡的本質就是通過參數與激活函數來擬合特徵與目標之間的真實函數關係,理論證明兩層神經網絡可以無限逼近任意連續函數。
- 初學者可能認爲畫神經網絡的結構圖是爲了在程序中實現這些圓圈與線,但在一個神經網絡的程序中,既沒有「線」這個對象,也沒有「單元」這個對象,實現一個神經網絡最需要的是線性代數庫。
- 隱藏層的作用:從輸入層到隱藏層時,數據發生了空間變換,因爲矩陣和向量相乘,本質上就是對向量的座標空間進行一個變換。隱藏層參數矩陣的作用就是使得數據的原始座標空間從線性不可分,轉換成了線性可分,從而兩層神經網絡可以處理非線性分類任務。
- 兩層神經網絡通過兩層的線性模型模擬了數據內真實的非線性函數。因此,多層的神經網絡的本質就是複雜函數擬合。
- 在設計一個神經網絡時,輸入層的節點數需要與特徵的維度匹配,輸出層的節點數要與目標的維度匹配,而中間層的節點數,卻是由設計者指定的,主要憑藉經驗確定(網格搜索法)。
- 機器學習模型訓練的目的,就是使得參數儘可能的與真實的模型逼近。
- 深度學習:多層神經網絡
- 多層神經網絡中的層數增加了很多,增加更多的層次有什麼好處?更深入的表示特徵,以及更強的函數模擬能力。通過抽取更抽象的特徵來對事物進行區分,從而獲得更好的區分與分類能力。
- 神經網絡強大預測能力的根本,就是多層的神經網絡可以無限逼近真實的對應函數,從而模擬數據之間的真實關係。
- 感知器 = 神經網絡,loss function = cost function = error function,active function = transfer function,權重 + 偏置 = 參數
3 卷積神經網絡 CNN
受到人類視覺系統的啓發,人們發明了 CNN (圖片@easyai.tech):
CNN 擅長處理圖片,有 2 個特點:
- 能夠將大數據量的圖片降維成小數據量
- 能夠保留圖片特徵,符合圖像處理的原則
這兩個特點也是之前人工智能處理圖像的 2 個難點,現在有了 CNN 可以很好的解決,CNN 建立在前饋神經網絡模型上,將其中的隱藏層換成了:
- 卷積層(Convolution Layers):提取特徵
- 池化層(Pooling Layers):數據降維
- 稠密層(Dense Layers):輸出結果
圖片來自知乎:@量子位
3.1 卷積層
卷積就是用卷積核在圖像上滑動,來提取圖像特徵,類似人眼的特徵提取:
一副圖像可以使用多個卷積核提取特徵,卷積核的數量就可以代表所提取圖像的底層紋理模式,比如使用 25 個卷積核提取一副圖像的特徵,則表示用這 25 種底層特徵就能描繪一副圖像。
3.2 池化層
池化層的作用是降低圖片像素數據量,防止過擬合,降維過程可以用下面 2 個圖概括(@量子位):
常用最大池化(Max-Pooling),意思是用一個最大值表示一個網格。
3.3 稠密層
稠密層主要用來計算最後結果,就是前饋神經網絡:
CNN 常見應用:
- 圖像分類,檢索
- 人,車等目標檢測
- 目標分割
- 人臉識別
- 等等…
參考博客:
4 損失函數
我參考的這篇博客:機器學習 - 損失函數
cost funstion 或 loss function 用來估計你的機器學習模型的預測值 Yp 與真實值 Yr 不一致的程度,它是一個非負實值函數,損失函數越小,說明模型的魯棒性就越好,在神經網絡訓練參數中,通過最小化損失函數來確定合適的模型參數。
常用的損失函數:
- 對數損失函數
- 平方損失函數
- 指數損失函數
- Hinge 損失函數(SVM)
5 圖像卷積
圖像卷積要利用一個二維濾波器矩陣(卷積前進行 180 度翻轉),稱爲卷積核,用該卷積核在二維圖像上滑動,並計算卷積核和對應領域的乘積作爲一次卷積結果,重複這個過程,完成二維圖像的卷積,LeetCode 上有圖像卷積的算法題。
第一個元素卷積後的結果是 -13。
元素 1 的卷積結果爲 -8。
這個卷積過程沒有對所有元素進行,所以卷積後的圖像變小了,但是卷積的過程是相同的。圖像卷積可以對圖像進行銳化,邊緣檢測,浮雕化,模糊等操作。
圖片來自:圖像卷積
6 深度圖
深度圖像(depth image) 也被稱爲距離影像(range image),是指將從圖像採集器到場景中各點的距離(深度)作爲像素值的圖像,它直接反映了物體可見表面的幾何形狀。深度圖像經過座標轉換可以計算爲點雲數據,有規則及必要信息的點雲數據也可以反算爲深度圖。
在表達方式上,許多文獻都不同,但含義都一樣:
- depth image
- range image
- 3D image
- 2.5D image
- 3D data
- xyz maps
- dense-depth map
- dense-range map
深度圖像的獲取方法有激光雷達深度成像法、計算機立體視覺成像、座標測量機法、莫爾條紋法、結構光法等等。
7 立體視覺深度估計
深度估計是指:從 2D 圖片 img 中用函數 F 估計對應其深度圖 map = F(img)。如果從單張圖片中估計每個像素的深度,相當於在 2D 空間估計 3D 空間,在單目相機中只能使用單目估計,效果不是很好(不使用深度學習方法)。
目前更加側重於立體視覺(Stereo Vision)深度估計,就是用雙目立體相機模仿人眼來進行深度估計,因爲有多個角度的圖片就能估計出視差的變化,從而求出深度值。
推薦關注我的公衆號「登龍」,查看更多優質原創!