CNN-卷积神经网络

【模型】基础卷积神经网络的模型结构

作者 : 老饼 发表日期 : 2024-01-18 12:06:16 更新日期 : 2024-03-01 18:51:53
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com



基础卷积神经网络是CNN中的通用基础模型,是CNN的入门基础

本文讲解基础卷积神经网络的模型结构和模型设计时的一些核心思想




    01. 基础卷积神经网络的结构    



本节讲解基础卷积神经网络的结构




      基础CNN卷积神经网络的结构     


基础CNN卷积神经网络的结构如下:
 
如图所示,卷积神经网络的结构一般由{卷积(relu)+池化层}×N-->全连接层(relu)->全连接->softmax构成
1. 前N层通过卷积和池化不断地将输入图片的信息进行提取与压缩,得到较小的、有效的的图片特征       
2. 使用全连接层拟合图片特征与图片类别的关系,得到图片的类别信息(类别判别值)                               
3. 使用softmax函数将类别信息转换为类别的概率                                                                                 
✍️关于基础卷积神经网络的说明:
1. 关于卷积:这里的卷积是带阈值的卷积                                                                                              
2. 关于激活函数:卷积后都带一个Relu激活函数                                                                                    
 添加激活函数的目的是给网络增加非线性功能                            
由于卷积+池化构成一个完整的信息降维层,所以一般只需添加一个Relu     
要么在卷积后Relu,要么在池化后 Relu,比较常见的是在卷积后ReLu         

3. 关于全连接层:具有两个(或三个)全连接层,最后一个全连接层没有激活函数                                      
                   全连接层主要用于特征与输出的拟合,两个全连接层再加上输入,就是经典的三层全连接层
 
4. 关于softmax:softmax往往只具形式意义                                                                                         
                             输出阶段的softmax对于模型往往只具有形式上的意义                                     
因为只需根据类别判别值的大小,就可以确定图片的类别                 

除了最后输出层的全连接层,其余全连接层(神经元较多情况下)一般都使用Dropout(p=0.5)的方式进行训练
这样做可以增强模型的泛化能力






    02. 基础卷积神经网络的常见设计方法    



本节讲解基础卷积神经网络常见的设计方法与思路




    CNN结构设计-卷积与池化的设计方法    


CNN卷积的常用设置
一般将卷积核的大小k设为奇数,然后对输入上下左右各进行(k-1)/2的填充
 
卷积前对输入进行(k-1)/2的填充,共有两个好处:
1. 在卷积前进行填充,这样对边缘的像素相对公平                    
2. 这样的设置可以令输出与输入的Size一致,有利于结构的修改
 CNN池化的常用设置
为了避免一次性降维过快而导致信息损失过于严重,一般使用2x2,步幅为2的池化窗口进行池化,
因此,在卷积神经网络的结构设计中,往往尽量让第一个池化的输入的高宽都为偶数,
以这样的设计,可以使得FeatureMap一直以半倍进行缩小,让卷积神经网络的结构设计更加便利
 这并非是绝对的,只是这种设置是卷积神经网络结构设计中最常用、最基本的核心方法与思路





     CNN结构设计-特征压缩过程的设计    


在CNN中卷积与池化主要用于特征压缩,一般经过反复使用卷积与池化来将特征进行逐步压缩
 究竟要用多少个(卷积+池化)、以及卷积核的Size则需要根据具体问题具体确定
例如,图片像素特别高,那么卷积核的Size理论上需要更大一些,这样视野相对更大一些

 CNN特征压缩设计常见方案
CNN特征压缩的过程常见的三种方案如下:
 
1. 直接使用单通道压缩,直到特征个数足够小                                
2. 分解为多通道进行压缩,最后把各个通道都压缩到足够小            
3. 分解为多通道进行压缩,把各个通道都压缩到足够小后,再用一个卷积/池化将所有通道压缩为一个单一特征
 CNN特征压缩设计的核心思想
事实上,将特征压缩仅是这部分的首要目的,它同时肩负"特征提取"的任务
因此,在中间过程不必过于在意是否升维还是降维,而是"如何有利于提取特征"
总的来说,"卷积+池化"部分只需要保障的以下两点:
 👉1. 参数的数量需要控制在可承受范围内                           
👉 2. 最终的输出个数在全连接层的承受范围内    
                
在整个过程中,FeatureMap一般会越来越小,而通道数则渐进式扩大到一定数量
FeatureMap的减小与通道数的扩大往往是同时进行的,这样可以减小FeatureMap缩小时带来的信息损失






好了,以上就是基础卷积神经网络的模型结构的全部内容了~









 End 






联系老饼