Datawhale 零基礎入門CV賽事學習筆記--第3次打卡-字符識別模型

 

1、CNN介紹

卷積神經網絡(簡稱CNN)是一類特殊的人工神經網絡,是深度學習中重要的一個分支。CNN在很多領域都表現優異,精度和速度比傳統計算學習算法高很多。特別是在計算機視覺領域,CNN是解決圖像分類、圖像檢索、物體檢測和語義分割的主流模型。

CNN每一層由衆多的卷積核組成,每個卷積覈對輸入的像素進行卷積操作,得到下一次的輸入。隨着網絡層的增加捲積核會逐漸擴大感受野,並縮減圖像的尺寸。

CNN是一種層次模型,輸入的是原始的像素數據。CNN通過卷積(convolution)、池化(pooling)、非線性激活函數(non-linear activation function)和全連接層(fully connected layer)構成。

如下圖所示爲LeNet網絡結構,是非常經典的字符識別模型。兩個卷積層,兩個池化層,兩個全連接層組成。卷積核都是5×5,stride=1,池化層使用最大池化。

通過多次卷積和池化,CNN的最後一層將輸入的圖像像素映射爲具體的輸出。如在分類任務中會轉換爲不同類別的概率輸出,然後計算真實標籤與CNN模型的預測結果的差異,並通過反向傳播更新每層的參數,並在更新完成後再次前向傳播,如此反覆直到訓練完成 。

與傳統機器學習模型相比,CNN具有一種端到端(End to End)的思路。在CNN訓練的過程中是直接從圖像像素到最終的輸出,並不涉及到具體的特徵提取和構建模型的過程,也不需要人工的參與。

2、CNN歷史

隨着網絡結構的發展,研究人員最初發現網絡模型結構越深、網絡參數越多模型的精度更優。比較典型的是AlexNet、VGG、InceptionV3和ResNet的發展脈絡。

3、CNN搭建

Pytorch中構建CNN模型非常簡單,只需要定義好模型的參數和正向傳播即可,Pytorch會根據正向傳播自動計算反向傳播。

在本章我們會構建一個非常簡單的CNN,然後進行訓練。這個CNN模型包括兩個卷積層,最後並聯6個全連接層進行分類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章