Python TensorFlow,卷积神经网络(CNN),手动实现卷积神经网络

普通的深层神经网络,层与层之间通过全连接进行稠密矩阵运算,矩阵中的权重系数比较多(参数多),影响效率且容易出现过拟合。

卷积神经网络的结构:卷积层、激活函数、池化层、全连接层。

卷积层:将原始图片通过Filter(过滤器,权重矩阵,卷积核,观察窗口),分割出局部信息,过滤器经过多次平移取样(步长)形成一个个局部信息然后组成卷积层,卷积层中的每一个单位点对应前面层的局部信息。(卷积的意义:一个点与临近的点联系比较紧密,离得越远的点,联系越不紧密。)。当神经网络中的层数逐渐增加时,卷积层中的局部信息就会逐渐与全局信息产生联系。过滤器大小一般设为3*3或5*5(奇数),步长1。(卷积核的计算过程:卷积核(权重矩阵)与输入图片的局部矩阵中的像素进行一一对应的线性相乘求和再加偏置得到卷积层中的一个单位值,卷积核进行平移继续得到卷积层中的全部值(2维)。可以有多个卷积核,多个卷积核的观察(计算)结果共同组成卷积层(3维)。如果图片是3通道,那么卷积核也是3通道,3个通道的计算结果再求和 加偏置形成卷积层中的单位点(卷积层形状的深度与通道数无关,只与卷积核的数量有关))。

池化层:(下采样、欠采样,特征降维),减少矩阵的长和宽(也是通过观察窗口的形式实现),减少参数个数,避免过拟合。分为最大池化层和平均池化层(将观察窗口中的最大值或平均值作为其输出)。池化层中的观察窗口大小一般设为2*2,步长2。(池化层的计算过程:通过观察窗口截取卷积层,截取出的矩阵中的最大值(或平均值)作为池化层中的单位点,观察窗口进行平移形成整个池化层。池化只会减少卷积层形状的长和宽,并不会影响形状的深度)

激活函数:解决非线性划分问题,一般是一个非线性的函数,(神经网络的矩阵运算只是一个线性变化)。

全连接层:前面的卷积和池化相当于做特征工程(并没有进行矩阵乘法,只是一一对应的线性相乘),后面的全连接相当于做真正的特征加权(矩阵乘法)。最后的全连接层在整个卷积神经网络中起到“分类器”的作用。(如果卷积神经网络不是用于分类问题,那么可以不使用全连接层)

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值