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














