zoukankan      html  css  js  c++  java
  • 二、卷积神经网络概念

    学习目标:了解卷积神经网络概念和相关操作;

    一、全连接神经网络

    定义:每个神经元与前后相邻层的每一个神经元都有连接,输入:特征,输出:预测的结果。

    参数个数:w+b = ∑ (前层 × 后层 + 后层)

    注意:待优化的参数过多, 容易导致模型过拟合。 在实际应用中,会先对原始图像进行特征提取,把提取到的特征喂给全连接
    网络,再让全连接网络计算出分类评估值。

    二、卷积 Convolutional
    2.1 定义

    卷积是一种有效提取图片特征的方法。 一般用一个正方形卷积核,遍历图片上的每一个像素点。图片与卷积核重合区域内相对应的每一个像素值乘卷积核
    内相对应点的权重,然后求和, 再加上偏置后,最后得到输出图片中的一个像素值。


     例如,5x5x1 的灰度图片(1 表示单通道, 5x5 表示分辨率,共有 5 5列个灰度值)。 若用一个 3x3x1 的卷积核对此 5x5x1 的灰度图片进行卷积, 偏置项b=1
    当前位置计算一个卷积值:(-1)x1+0x0+1x2+(-1)x5+0x4+1x2+(-1)x3+0x4+1x5+1=1

    输出图片边长=(输入图片边长卷积核长+1/步长,此图为:(5 – 3 + 1)/ 1 = 3, 输出图片是 3x3 的分辨率, 用了 1 个卷积核, 输出深度是 1,最后输出的是3x3x1 的图片。

    2.2 全零填充 Padding

    在输入图片周围进行全零填充,可以保证输出图片的尺寸和输入图片一致 。例如:5x5x1 的图片周围进行全零填充, 可使输出图片仍保持 5x5x1
    维度。 这个全零填充的过程叫做
    padding

    使用 padding 的输出图片边长 = 输入图片边长/步长; 

    标记:如果用全零填充, 也就是 padding=SAME。 如果不用全零填充, 也就是 padding=VALID
    三、函数操作

    tf.nn.conv2d是TensorFlow里面实现卷积的函数,实际上这是搭建卷积神经网络比较核心的一个方法.

    函数原型:

        tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)

    函数说明:

        

    其中,

    (1)batch 表示一次喂入多少张图片;分辨率:5行5列;灰度图为单通道,参数写 1,RGB 三个颜色组成的彩色图为3通道,参写3;

    (2)注意: 卷积核的通道数是由输入图片的通道数决定的,卷积核的通道数等于输入图片的通道数,所以卷积核的通道数也是 1。一共有 16 个这样的卷积核,说明卷积操作后输出图片的深度是 16,也就是输出为16 通道,输出16张3*3的feature map。

    (3)核滑动步长:第一个 1 和最后一个 1 这里是固定的,这句表示横向纵向都以 1 为步长。最后一个参数表示是否使用 padding。

    RGB 三个颜色组成的彩色图:

    卷积核的深度应该等于输入图片的通道数,所以使用 3x3x3的卷积核,最后一个 3 表示匹配输入图像的 3 个通道。

    卷积计算方法:和单层卷积核相似,卷积核为了匹配红绿蓝三个颜色,把三层的卷积核套在三层的彩色图片上,重合的 27 个像素进行对应点的乘加运算,最后的结果再加上偏置项 b,求得输出图片中的一个值。

    tf.nn.conv2d函数:

    四、池化

    3.1 最大池化

      卷积核在输入图片重合部分取最大值,Tensorflow最大池化用 tf.nn.max_pool 函数;这里结果就被压缩为原来的1/4。

    函数描述:

    3.2 平均池化

      卷积核在输入图片重合部分取平均值,平均池化用 tf.nn.avg_pool 函数。 

    舍弃 Dropout

            在神经网络训练过程中,为了减少过多参数常使用 dropout 的方法,将一部分神经元按照一定概率从神经网络中舍弃。这种舍弃是临时性的,仅在训练时舍弃一些神经元;在使用神经网络时,会把所有的神经元恢复到神经网络中。比如上面这张图,在训练时一些神经元不参加神经网络计算了。Dropout 可以有效减少过拟合,加快模型的训练速度。

    dropout 一 般 会 放 到 全 连 接 网 络 中 。 如 果在 训 练 参 数 的 过 程 中 , 输 出=tf.nn.dropout(上层输出,暂时舍弃神经元的概率),这样就有指定概率的神经元被随机置零,置零的神经元不参加当前轮的参数优化。

    总结:

    卷积神经网络可以认为由两部分组成:(1)对输入图片进行特征提取;(2)就是全连接网络。只不过喂入全连接网络的不再是原始图片,而是经过若干次卷积、激活和池化后的特征信息。

  • 相关阅读:
    render()中添加js函数
    切图相关记录
    Jenkins 配置代理。
    Ant 打包 web 项目 xml 模板
    linux 删除命令
    git 创建 本地 裸 仓库
    swagger spring-boot 配置
    Idea 根据 表 生成 实体类
    java 流 api
    spring eureka 注册显示 ip:端口号
  • 原文地址:https://www.cnblogs.com/lxl-lennie/p/10427445.html
Copyright © 2011-2022 走看看