之前的文章通过识别手写数字来学习什么是多层感知器,本文将会通过识别CIFAR-10图像这个项目来认识什么是卷积神经网络。
这篇文章将会分成两个部分,第一部分会简单介绍一下卷积神经网络的结构,第二部分将通过构建卷积神经网络来识别CIFAR-10图像,让大家了解卷积神经网络是如何搭建和工作的。
1 卷积神经网络简介
1.1卷积神经网络结构
先上一张看起来很牛X的图(图片来源:百度百科)
(1) 卷积层
维基百科是这样解释的:
卷积层(Convolutional layer),卷积神经网上中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法最优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。
其实我也不是很懂维基百科的解释,但我简单点理解就是在一个卷积层中,把输入样本(输入样本是一个矩阵)和m(m>0)个卷积核(卷积核是一个n*n维的矩阵,n的大小不定)作内积运算,然后把内积的结果(m个矩阵)通过激活函数的计算,最后得出m个特征图(每个特征图还是一个矩阵),下 一个及以后的卷积层都会把前一个卷积层得出的特征图作为输入。换