李宏毅机器学习——学习笔记(9)Convolutional neural network

Convolutional neural network

  1. CNN是简化版的原因:

    神经网络不需要整张图片进行图像识别,只需要图像的部分区域就可以了;同一个识别特征的区域可能再图像的不同位置;subsameple不会改变图片里面的内容,只是将图片变小。这些方式都能够使图片再具有较少参数的情况下,识别精度保持不变;
    在这里插入图片描述

  2. CNN的实现方式:

    利用filter来表示原来的整幅图像,可以用一个filter来表示一个特征,通过与图像内的每一块进行比较,确定该特征出现的位置。
    在这里插入图片描述
    学习不同的filter以后所得到的就是一个feature map
    在这里插入图片描述
    CNN其实是Fully connected neural network的简化版,将整个图像上的所有pixel铺开成向量输入,将feature map也铺开成输出向量,则一个filter相当于连接部分输入(filter向量大小)以及输出向量的权重,而且每个filter连接都是共享权重的,所以相对比fully connected neural network 所需要的参数要少的多。在这里插入图片描述
    max pooling值的是选定一个范围,用里面最大的值来代替着这个范围内的值
    在这里插入图片描述
    convolution 和 max pooling之后,得到一个新的image,重复上述过程。
    在这里插入图片描述
    得到足够小的image以后,将新的image拉直(Flatter),最后放到fully connected network 里面进行训练
    在这里插入图片描述

  3. CNN 在keras中的实现方式如图所示:

    由于在靠近输出层时,特征抽象,所以需要的filter越多;除此以外,每次的convolution中的filter都要看上一层中所生成图像的三维架构来确定filter的数量
    在这里插入图片描述
    将最终的结果flatter后,输入到全连接网络中,进行训练
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37757740/article/details/88933140