什么是 CNN?
CNN,全称 卷积神经网络(Convolutional Neural Network),是一种专门用来处理图片、语音、文本等结构化数据的神经网络。
它模仿人眼识别图像的方式:
从局部到整体,一步步提取特征,最后做出判断。
什么叫“卷积”?
卷积这个词,来源于数学中的卷积操作。
简单说,就是用一个小方块(卷积核)在图片上滑动,把相邻像素做个“加权求和”,用来提取特定特征。
比如:
- 检测边缘
- 识别线条
- 找出颜色块
CNN 结构组成
CNN 通常由以下几部分组成:
- 卷积层(Convolutional Layer)
- 激活函数(Activation Function)
- 池化层(Pooling Layer)
- 全连接层(Fully Connected Layer)
- 输出层(Output Layer)
CNN 常见术语速查表
专有名词 | 含义 |
---|---|
卷积核(Filter) | 提取局部特征的小方块 |
步长(Stride) | 卷积核每次移动的格子数 |
填充(Padding) | 给图像边缘补零,避免尺寸缩小 |
激活函数 | 增强模型非线性能力,常用 ReLU |
池化 | 降维、保留关键信息,防止过拟合 |
全连接层 | 将所有特征组合分类 |
损失函数 | 衡量预测值和真实值的差距 |
图片识别
图片识别-Neuron Versin
李宏毅老师: 《机器学习》 学习笔记
overall
输入是一张图片,输出是图片的分类: cat/dog…
计算每一个像素–判断是否是cat
Cverservation 1 - 不需要观察整张图片
只观察一张图片特定的几个部分,如下面例子中的: 鸟嘴/鸟眼/鸟爪
Simplification 1 - Typical Setting
- kernel size(卷积核(filter)): 3 * 3
- all channels
- stride(步长)=1:每次移动一个像素,沿着水平+垂直方向移动
- padding:就是在输入特征图(图片或序列)边缘周围补上额外像素(通常是 0),目的是为了:
• 保持输出尺寸不变
• 控制特征图尺寸变化规律
• 更好地提取边缘特征
Cverservation 2 - 共享参数
Simplification 2
原理
- weight: 决定输入信号对神经元输出的影响程度
- bias: 偏移值,帮助模型更灵活拟合数据
Typical Setting
图片识别-Filter Version
feature map
Multiple Convolutional layers
Comparision of 2 Stories
Pooling - Max Pooling
卷积操作后,特征图通常很大,这时候用 **subsampling(池化 Pooling)**来降低特征图尺寸,但保留重要特征。
- 特征提取(Feature Extraction) 就是:从原始数据中,把能代表事物本质特征的信息挑选出来,作为模型输入的过程。
- 最大特征(Max Feature / Max Pooling): 从一堆特征值里,取最大值作为代表
- 平均特征(Average Feature / Average Pooling): 从一堆特征值里,计算平均值作为代表