CNN網絡的基本介紹(一)


    CNN,是卷積神經網絡的簡稱,是深度學習的算法之一,目前在圖像的分割領域有着廣泛的應用。此篇博客類似於學習筆記,將學習到了CNN知識做記錄、總結。

首先,先談一下,CNN學習必須要掌握的部分:

1、卷積神經網絡的表示

2、線性回歸算法

3、梯度下降法

4、激活函數

5、卷積運算

6、池化層

7、全連接層

8、卷積神經網絡

9、目標函數

 

本系列的第一部分,將展示1-3部分的具體內容。

一、卷積神經網絡的表示

神經網絡結構主要包括:輸入層,隱藏層,輸出層,如下圖所示:

輸入層是向神經網絡輸入數據,輸出層則輸出運算之后的數據,隱藏層則是具體的運算過程節點的真正數值,不過我們看不見,我們只能看見輸入層和輸出層。

需要提及的是,神經網絡的層數是指,除輸入層以外的其他層數的合計,此處只有一層隱藏層和一層輸出層。

a[n]表示第N層神經元的激活函數組成的矩陣,z[n]函數表示第N層神經元的處理邏輯做出的矩陣,激活函數a通過z函數的數據來產生合理的輸出並傳遞給下一層。

如下圖所示,Z[2]的輸入來自於上一次激活函數產生的值,是一個四行一列的矩陣,而W[2]是一個一行四列的矩陣,最后運算會產生的a[2]是一個一行一列的矩陣。

二、線性回歸

基本術語:

  (色澤=青綠;根蒂=收縮;敲聲=濁響)

  (色澤=烏黑;根蒂=稍蜷;敲聲=沉悶)

  (色澤=淺白;根蒂=硬挺;敲聲=清脆)

  每對括號內是一條記錄,這組記錄的集合稱為一個數據集,每條記錄是關於一個事件或對象的描述,稱為一個示例或樣本,反映事件或對象在某方面的表現或性質的事項。我們也把一個示例稱為-一個“特征向量”(feature vector)

 線性回歸:

給定數據集D={(x1, y1), (x2, y2), ... },我們試圖從此數據集中學習得到一個線性模型,這個模型盡可能准確地反應x(i)和y(i)的對應關系。這里的線性模型,就是屬性(x)的線性組合的函數,可表示為:

  

  向量表示為

  

  其中

  

  W在這里稱為權重,直觀的表達了各屬性在預測中的重要性,因此線性模型有很好的可解釋性,例如西瓜問題中學到如下圖的模型,那么意味着通過考慮色澤、根蒂和敲聲來判斷掛的好壞,其中根蒂最重要,敲聲次之。

  

  線性回歸試圖學得一個線性模型以盡可能准確地預測實值輸出標記:

  

  這稱為多元線性回歸。

Sigmod函數:

我們在做概率估計的時候,預測值處於0~1之間,Sigmod函數正是這樣一條平滑曲線,我們可以借助它來預測概率。

  

損失函數:

如何確定w和b,關鍵在於衡量f(x)與y之間的差異。均方誤差是回歸任務中最常用的性能度量,因此我們可試圖讓均方誤差最小化,即:

  

  均方誤差有非常好的集合意義,他對應了常用的歐幾里得距離或歐式距離。基於均方誤差最小化來進行模型求解的方法稱為“最小二乘法”。在線性回歸中,最小二乘法就是試圖找到一條直線,是所有樣本到直線上的歐式距離之和最小。

三、梯度下降法

梯度下降法(英語:Gradient descent)是一個一階最優化算法。 要使用梯度下降法找到一個函數的局部極小值,必須向函數上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行迭代搜索。如果相反地向梯度正方向迭代進行搜索,則會接近函數的局部極大值點;這個過程則被稱為梯度上升法。

梯度下降方法基於以下的觀察:如果實值函數
在點
處可微且有定義,那么函數
點沿着梯度相反的方向
下降最快。
因而,如果
對於
為一個夠小數值時成立,那么
考慮到這一點,我們可以從函數F的局部極小值的初始估計
出發,並考慮如下序列
使得
因此可得到

  
如果順利的話序列
收斂到期望的極值。注意每次迭代 步長可以改變。
右側的圖片示例了這一過程,這里假設F定義在平面上,並且函數圖像是一個碗形。藍色的曲線是等高線,即函數F為常數的集合構成的曲線。紅色的箭頭指向該點梯度的反方向。(一點處的梯度方向與通過該點的等高線垂直)。沿着梯度 下降方向,將最終到達碗底,即函數F值最小的點。下圖中的J函數和F同理:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM