• 李宏毅机器学习笔记07(CNN)


    卷积神经网络(Convolutional Neural Network)

    1、什么是CNN

      什么卷积、为什么用CNN

    2、实现CNN的步骤

      input——>convolution——>max pooling——>...——>flatten——>fully connected network——>output

    3、如何用keras搭建一个CNN

    4、CNN分析

    1、什么是CNN

      1)什么卷积

      1、卷积本质上是“加权求和”,在信号处理中是时间上的“加权求和”,在图像处理中是空间上的“加权求和

            

      2、在信号处理中,系统的响应不仅与当前时刻系统的输入有关,也跟之前若干时刻的输入有关,比如在t3时刻的响应Y(3)=Y(0)+Y(1)+Y(2),但常常系统中不是这样的,因为0时刻的响应不太可能在1时刻仍旧未变化,那么怎么表述这种变化呢,就通过h(t)这个响应函数与x(0)相乘来表述,表述为x(m)×h(t-m),公式里的m指的  t 的变化量

                 

       参考:http://muchong.com/html/201001/1773707.html

      2)为什么用CNN

         

    •  机器识图的过程:机器识别图像并不是一下子将一个复杂的图片完整识别出来,而是将一个完整的图片分割成许多个小部分,把每个小部分里具有的特征提取出来(也就是识别每个小部分),再将这些小部分具有的特征汇总到一起,就可以完成机器识别图像的过程了。

        

       

       CNN的参数比全连接神经网络少得多,为什么CNN只用较少的参数就可以用于处理图像呢?这是因为图像具有以下三点特征:

    •  一些特征比整张图片小得多,不用CNN的话会看完整幅图片才能确定一个特征,用CNN会认为只需要看图片的局部就可以了;
    •  同样的特征可能出现在图像的不同区域,不用CNN的话会认为这两个不同位置的同一个特征是不同的特征,用CNN会认为它们是同一个;
    •  对图像的降采样不会改变图像中的物体。

       CNN的卷积层的设计对应着前两点,池化层的设计对应着第三点。 

                              

    2、实现CNN的步骤

      input——>convolution——>max pooling——>...——>flatten——>fully connected network——>output

                 

        1、卷积层(减少训练参数)

    •   对应Property1:每一个Filter(待训练的参数)代表一个局部特征探测器,假设现在两个特征探测器(Filter1和Filter2)
    •     对应Property2:用Filter1就能探测出在不同位置的同一个flatten,而不需要用不同的Filter

                                             

    •   如果图片是彩色的,也就是说它是三通道的,还没卷积之前,可以说有3个通道,意味着每一个像素由3个数值表示。

        

         与全连接方式的对比:

    •  convolution的事情,就是把fully connected的部分参数拿掉
    •    拿掉部分参数以后,剩下的参数权值共享

                                  

        2、池化层

    •  目的是减少每一个特征的维度,也就是减少后面flatten的输入特征数量

                                 

        

       3、重复

         

        4、Flatten

                 

    3、如何用keras搭建一个CNN 

    •  卷积前一个pixel用多少个数值表示,取决于通道数
    •    卷积后一个pixel用多少个数值表示,取决于Filter个数,而通道数决定Filter的高
    •    上一个卷积层有多少个Filter下一层卷积input就有多少个通道

                  

    4、CNN分析

  • 相关阅读:
    java 获取pdf内容
    超快的maven setting文件
    MQTT-CN MQTT协议中文版
    Another maybe monad library for ruby
    [Game-0001] 新手引导逻辑梳理
    [Erlang-0016][aque_tcp] 一个 Erlang TCP 组件
    [Erlang-0015][Lager] Erlang日志框架Lager简析
    LeetCode.1217-交换芯片(Play with Chips)
    LeetCode.1207-唯一的元素出现次数(Unique Number of Occurrences)
    LeetCode.1200-最小绝对值差(Minimum Absolute Difference)
  • 原文地址:https://www.cnblogs.com/xxlad/p/11302699.html
Copyright © 2020-2023  润新知