视觉机器学习20讲-MATLAB源码示例(16)-CNN学习算法
1. CNN学习算法
卷积神经网络(CNN 或 ConvNet)是一种深度学习网络架构,它直接从数据中学习,不需要手动提取特征。
CNN 特别适合在图像中寻找模式以识别物品、人脸和场景。这类网络也能很好地对一些非图像数据进行分类,如音频、时间序列和信号数据。
需要目标识别和计算机视觉的应用(如自动驾驶汽车和人脸识别应用)高度依赖 CNN。
卷积神经网络CNN的结构一般包含这几个层:
(1)输入层:用于数据的输入
(2)卷积层:使用卷积核进行特征提取和特征映射
(3)激励层:由于卷积也是一种线性运算,因此需要增加非线性映射
(4)池化层:进行下采样,对特征图稀疏处理,减少数据运算量。
(5)全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失
CNN的三个特点:
(1)局部连接:这个是最容易想到的,每个神经元不再和上一层的所有神经元相连,而只和一小部分神经元相连。这样就减少了很多参数
(2)权值共享:一组连接可以共享同一个权重,而不是每个连接有一个不同的权重,这样又减少了很多参数。
(3)下采样:可以使用Pooling来减少每层的样本数,进一步减少参数数量,同时还可以提升模型的鲁棒性。
2. Matlab仿真
%%</