CNN
卷积神经网络(Convolutional Neural Network,简称CNN),是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像处理。卷积神经网络包括卷积层和池化层。
卷积神经网络是受到生物思考方式启发的MLPs(多层感知器),它有着不同的类别层次,并且各层的工作方式和作用也不同。
5个层级结构:
输入层
卷积层
激活层
池化层
全连接层
流程图像:
如何理解卷积层和池化层?
个人认为:
图像是人来定义的,人不用经过函数的计算就能理解图像,但是计算机不行,计算机只能把二位图像转变成“点”。也就是矩阵去识别,是计算机理解图像的形式。
(越看越觉得大脑牛啊!!还是人yyds!!)
基本上,机器会把图像打碎成像素矩阵,存储每个表示位置像素的颜色码。在下图的表示中,数值 1 是白色,256 是最深的绿色(为了简化,我们示例限制到了一种颜色)
卷积层:
能否对卷积神经网络工作原理做一个直观的解释? - 知乎 (zhihu.com)
个人认为卷积层就是把矩阵分成更小的矩阵
池化层:
有时图像太大,我们需要减少训练参数的数量,它被要求在随后的卷积层之间周期性地引进池化层。池化的唯一目的是减少图像的空间大小。池化在每一个纵深维度上独自完成,因此图像的纵深保持不变。池化层的最常见形式是最大池化。
激活函数的作用是什么?
个人认为:就是把线性转变为非线性
有点像化学里面的 把分子转变成原子 然后再重新转换成新的分子
引入非线性因素。
在我们面对线性可分的数据集的时候,简单的用线性分类器即可解决分类问题。但是现实生活中的数据往往不是线性可分的,面对这样的数据,一般有两个方法:引入非线性函数、线性变换。
线性变换
就是把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。
激活函数
激活函数是如何引入非线性因素的呢?在神经网络中,为了避免单纯的线性组合,我们在每一层的输出后面都添加一个激活函数(sigmoid、tanh、ReLu等等),这样的函数长这样:
实现猫狗分类
对于学长给的内容进行了相关运行,因为不怎么涉及代码,只用来体验,所以只放置结果