卷积神经网络入门基础

简介: 卷积神经网络入门基础

文章和代码已经归档至【Github仓库:https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 神经网络基础 也可获取。

CNN

卷积神经网络发展史

卷积神经网络(convolutional neural networks, CNN )
CNN 是针对图像领域任务提出的神经网络,经历数代人的发展,在2012年之后大部分图像任务被CNN统治,例如图像分类,图像分割,目标检测,图像检索等。

CNN结构受视觉系统启发:1962 年,生物学家Torsten WieseI 和 David H. Hubel(1981年的诺贝尔医学奖)对猫的视觉系统进行研究,首次发现猫的视觉系统中存在层级机构,并且发现了两种重要的细胞 simple cells 和 compIex cells,不同类型细胞承担不同抽象层次的视觉感知功能。

猫的视觉系统实验

  1. 在猫脑上打开 3mm, 插入电极
  2. 让猫看各种形状、位置、亮度和运动的光条
  3. 观察大脑视觉神经元激活情况

神经元存在局部感受区域 ( receptive field),也称感受野

细胞感受区域存在差异:如C细胞和D细胞相反(图中X表示有响应,三角表示无响应)

在这里插入图片描述

细胞对角度有选择性。如图所示的该细胞对垂直光条响应最强。

在这里插入图片描述

细胞对运动方向有选择性(如图,a种方式感应更加强烈)

对CNN启发:

  1. 视觉系统是分层、分级的进行处理,从低级到高级的抽象过$\to$类比堆叠使用卷积和池化
  2. 神经元实际上是存在局部的感受区域的,具体来说,它们是局部敏感$\to$类比神经元局部连接

第一个卷积神经网络雏形——新认知机(Neocognitron)

1980 年,日本学者福岛邦彦(Kunihiko Fukushima) 借鉴猫视觉系统实验结论,提出具有层级结构的神经网络一一新认知机,堆叠使用类似于S细胞和C细胞的两个结构。S细胞和 C 细胞可类比现代CNN的卷积和池化。

缺点: 没有反向传播算法更新权值,模型性能有限。

福岛邦彦主页 :http://personalpage.flsi.or.jp/fukushima/index-e.html

第一个大规模商用卷积神经网络——Lenet-5

1989 年,Lecun 等人已开始研究Lenet;1998 年,Lecun等人提出Lenet-5,并成功在美国邮政系统中大规模应用于手写邮政编码识别

缺点:无大量数据和高性能计算资源

第一个技惊四座的卷积神经网络——AlexNet

2012年,AlexNet以超出第二名10.9个百分点的成绩夺得ILSVRC分类任务冠军,从此拉开卷积神经网络通知图像领域序幕。

  • 算料:ImageNet
  • 算力:GPU(GTX580 * 2)
  • 算法:AlexNet

卷积操作

卷积层(Convolutional Layer)

图像识别特点:

  • 特征具有局部性:例如老虎重要特征“王字”仅出现在头部区域 —— 卷积核每次仅连接K*K区域,K*K是卷积核尺寸;

在这里插入图片描述

0×0+1x1+3×2+4×3 =19

  • 下采样图像,不会改变图像目标

卷积核

卷积核:具可学习参数的算子,用于对输入图像进行特征提取,输出通常称为特征图(feature maps)。

具体的过程可以根据实际情况模拟以下,例如第一个边缘检测的卷积核,如果一个像素差别不大的图像,经过该卷积核卷积过程后,大概率是中间的8份额减去旁边的8个1份额,最后为0,显示为黑色。如果存在边缘非常明显的部分,经过减少之后数值仍然较大,显示为白色,因此可以形成边缘的轮廓。

2012年AlexNet网络第一个卷积层卷积核可视化,卷积核呈现边缘、频率和色彩上的特征模式。

填充 (Padding):在输入图像的周围添加额外的行/列

作用:

  • 使卷积后图像分辨率不变,方便计算特征图尺寸的变化
  • 弥补边界信息“丢失"

步幅(Stride) :卷积核滑动的行数和列数称为步幅,控制输出特征图的大小,会被缩小1/s倍。

卷积会向下取整,到边界不满足信息的话,会向下取整。(即使存在边缘信息,但是如果不满足步幅,也会舍弃)

输出特征图尺寸计算:

$$ \mathrm{F}_{\mathrm{o}}=\left[\frac{\mathrm{F}_{\text {in }}-\mathrm{k}+2 \mathrm{p}}{\mathrm{s}}\right]+1 $$

$$ > \frac{[4-3+2 * 0]}{1}+1=2 > $$

$$ > \frac{[6-3+2 * 1]}{2}+1=3 > $$

$$ > \frac{[5-3+2 * 1]}{1}+1=5 > $$

多通道卷积 : RGB图像是3*h*w的三维的数据,第一个维度3,表示channel,通道数

一个卷积核是3-D张量,第一个维与输入通道有关

注:卷积核尺寸通常指高、宽

如上,卷积核的规模为2x3x3x3。本质上还是一个二维卷积。

池化操作

图像识别特点

  • 下采样图像,不会改变图像目标——降低计算量,减少特征冗余

池化:一个像素表示一块区域的像素值,降低图像分辨率

一块区域像素如何被一个像素代替:

  • 方法1: Max Pooling,取最大值
  • 方法2: Average Pooling,取平均值

现在的模型中很多都不太用池化操作,而采用一个步长为2的卷积代替池化,通过它也可以实现降低图像的分辨率。(池化也可以理解为一种特殊的卷积,例如可以将Max pooling理解为一个最大值权值为1,其他权值为0的卷积核,将Average Pooling理解为一个平均权值的卷积核)。

因此输出尺寸计算与卷积操作类似:(注意:池化层无可学习参数)

$$ \mathrm{F}_{\mathrm{o}}=\left\lfloor\frac{\mathrm{F}_{\text {in }}-\mathrm{k}+2 \mathrm{p}}{\mathrm{s}}\right\rfloor+1 $$

池化作用

  1. 缓解卷积层对位置的过度敏感

    第一行为原矩阵,第二行为卷积后的矩阵,第三行为池化后的矩阵。左右对比可知,添加扰动后卷积结果受到影响,但是池化结果并未受到影响。参考:https://zhuanlan.zhihu.com/p/103350961

  2. 减少冗余

  3. 降低图像分辨率,从而减少参数量

Lenet-5及CNN结构进化史

1998-Lecun-Gradient-Based Learning Applied to Document Recognition

特征提取器:C1、S2、C3、S4

  • C1层: 卷积核K1=(6, 1, 5, 5), p=1, s=1,output=(6, 28, 28)
  • S2层: 最大池化层, 池化窗口=(2,2),s=2,output=(6, 14, 14)
  • C3层: 卷积核K3=(16, 6, 5, 5), p=1, s=1,output=(16, 10, 10)
  • S4层: 最大池化层, 池化窗口=(2,2),s=2,output=(16, 5, 5)

分类器:3个FC层

  • FC层: 3个FC层输出分类

CNN进化史

  1. 1980 Neocognition 福岛邦彦
  2. 1998 Lenet-5 Lecun
  3. 2012 AlexNet Alex
  4. 2014 GoogLenet Google
  5. 2014 VGG-Net VGG
  6. 2015 ResNet Kaiming He
  7. 2017 DenseNet Gao Huang
  8. 2017 SE-Net Jie Hu

参考

所有卷积示例图像的来源:https://github.com/vdumoulin/conv_arithmetic

目录
相关文章
|
17天前
|
机器学习/深度学习 人工智能 算法
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
眼疾识别系统,使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对眼疾图片4种数据集进行训练('白内障', '糖尿病性视网膜病变', '青光眼', '正常'),最终得到一个识别精确度较高的模型。然后使用Django框架开发Web网页端可视化操作界面,实现用户上传一张眼疾图片识别其名称。
52 9
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
卷积神经网络(CNN):视觉识别的革命先锋
卷积神经网络(CNN)作为人工智能领域的一颗璀璨明珠,在计算机视觉中发挥着核心作用。CNN的发展历程展现了从生物学灵感到技术创新的转变,历经LeNet-5至AlexNet、VGGNet、ResNet等里程碑式的进步。其独特结构包括卷积层、池化层及全连接层,能够层层递进地提取特征并作出决策。CNN不仅在图像分类、目标检测等领域表现卓越,还在人脸识别、医学影像分析等方面展现出巨大潜力。尽管存在局限性,如对序列数据处理能力有限及解释性问题,但通过引入注意力机制、自监督学习等方法,CNN将持续演进,引领人工智能技术走向更加精彩的未来。
22 2
|
16天前
|
机器学习/深度学习 人工智能 算法框架/工具
深入理解深度学习中的卷积神经网络
【8月更文挑战第4天】本文旨在探索卷积神经网络(CNN)的奥秘,从其基本构成到在图像识别领域的应用。我们将通过Python代码示例,展示如何构建一个简单的CNN模型,并讨论其在处理实际问题时的效能。文章末尾将提出一个思考性问题,激发读者对深度学习未来方向的想象。
|
17天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络入门到精通:Python带你搭建AI思维,解锁机器学习的无限可能
【8月更文挑战第3天】踏入人工智能领域,神经网络是开启智慧之门的钥匙。它不仅是一种技术,更是模仿人脑学习与推理的思维方式。从理解神经元间的连接到构建神经网络的基本概念,再到使用Python与TensorFlow搭建手写数字识别模型,每一步都揭示着机器学习的奥秘。随着深入学习,我们将探索更高级的主题,比如深度神经网络、卷积神经网络和循环神经网络,以及如何优化模型性能。掌握背后的数学原理,将帮助我们设计更高效准确的模型。在这个旅程中,Python将是我们的得力助手,引领我们探索AI世界的无限可能。
23 2
|
19天前
|
机器学习/深度学习 数据采集 算法框架/工具
深度学习中的模型优化:以卷积神经网络为例
【7月更文挑战第31天】在深度学习的海洋中,卷积神经网络(CNN)如同一艘强大的航船,承载着图像识别与处理的重要任务。本文将扬帆起航,深入探讨如何通过各种技术手段优化CNN的性能,从数据预处理到模型正则化,再到超参数调整,我们将一一解析这些策略如何提升CNN的效率和准确度。文章还将通过实际代码示例,展示如何在Keras框架中应用这些技术,确保理论与实践的结合,为读者提供一套完整的优化工具箱。
45 4
|
2天前
|
运维 网络协议 API
入门网络,少不了这份详细的网络基础学习指南!
入门网络,少不了这份详细的网络基础学习指南!
|
5天前
|
机器学习/深度学习 自然语言处理 算法
基于卷积神经网络(CNN)的垃圾邮件过滤方法
传统的垃圾邮件过滤手段如规则匹配常因垃圾邮件的多变而失效。基于深度学习的方法,特别是卷积神经网络(CNN),能自动学习邮件中的复杂特征,有效识别垃圾邮件的新形态。CNN通过特征学习、处理复杂结构、良好的泛化能力和适应性,以及高效处理大数据的能力,显著提升了过滤精度。在文本分类任务中,CNN通过卷积层提取局部特征,池化层减少维度,全连接层进行分类,特别适合捕捉文本的局部模式和顺序信息,从而构建高效的垃圾邮件过滤系统。
25 0
|
8天前
|
监控 安全 网络虚拟化
智能家居安全入门:保护你的网络家园
在数字化浪潮的推动下,智能家居设备已走进千家万户,带来便捷的同时,也引入了新的安全隐患。本文将带你了解智能家居安全的基本知识,教你如何打造一道坚固的数字防线,保卫你的网络家园免受黑客侵害。
21 0
|
14天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MPSK调制识别matlab仿真
本项目展示一种基于CNN的MPSK调制识别算法,可在Matlab 2022a上运行。该算法能自动区分BPSK、QPSK及8PSK信号,利用卷积层捕捉相位特征并通过全连接层分类。训练过程涉及调整网络权重以最小化预测误差,最终实现对未知信号的有效识别。附带完整代码与说明视频。
|
19天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深入理解深度学习中的卷积神经网络
【7月更文挑战第31天】本文将深入探讨深度学习领域中的卷积神经网络(CNN),包括其工作原理、关键组件以及在图像识别中的应用。我们将通过Python代码示例,展示如何实现一个简单的CNN模型,并解释其背后的数学原理。无论你是初学者还是有一定基础的学习者,这篇文章都将帮助你更好地理解和应用CNN。
17 0

热门文章

最新文章