卷积神经网络(Convolutional Neural Networks,CNN) 1962年Hubel和Wiesel通过对猫视觉皮层细胞的研究,提出了感受野(receptive field)的概念。视觉皮层的神经元就是局部接受信息的,只受某些特定区域刺激的响应,而不是对全局图像进行感知。
1984年日本学者Fukushima基于感受野概念提出神经认知机(neocognitron)。
CNN可看作是神经认知机的推广形式。
卷积神经网络的结构
文章图片
CNN是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。
C层为特征提取层(卷积层)
S层是特征映射层(下采样层)。
CNN中的每一个C层都紧跟着一个S层。
概念示范:输入图像通过与m个可训练的滤波器和可加偏置进行卷积,在C1层产生m个特征映射图,然后特征映射图中每组的n个像素再求和,加权值,加偏置,通过Sigmoid函数得到m个S2层的特征映射图。这些映射图再进过滤波得到C3层。这个层级结构再和S2一样产生S4。最终,这些像素值被光栅化,并连接成一个向量输入到传统神经网络,得到输出。
特征提取层(卷积层)——C层(Convolution layer)
文章图片
文章图片
大部分的特征提取都依赖于卷积运算
利用卷积算子对图像进行滤波,可以得到显著的边缘特征。
卷积神经网络的卷积运算
文章图片
文章图片
卷积神经网络中的关键技术
局部链接
文章图片
(a) 全连接神经网络
文章图片
(b) 局部连接神经网络
权值共享
文章图片
多卷积核
文章图片
池化 通过卷积获得了特征之后,如果直接利用这些特征训练分类器,计算量是非常大的。
对不同位置的特征进行聚合统计,称为池化 (pooling)。
池化常用方法:平均池化、最大池化。
卷积神经网络在池化层丢失大量的信息,从而降低了空间分辨率,导致了对于输入微小的变化,其输出几乎是不变的。
卷积神经网络的应用 一种典型的用来识别数字的卷积网络是LeNet-5。美国大多数银行当年用它识别支票上面的手写数字,达到了商用地步,说明该算法具有很高的准确性。
文章图片
LeNet-5是一个数字手写系统,不包含输入层,共有7层,每层都包含可训练参数(连接权重)。输入图像为32*32大小。
文章图片
胶囊网络 针对卷积神经网络训练数据需求大、环境适应能力弱、可解释性差、数据分享难等不足,2017年10月,Geoffrey E. Hinton教授等在 “神经信息处理系统大会上发表论文,提出了新型神经网络结构——胶囊网络(Capsule Networks)。
胶囊是一个包含多个神经元的载体,每个神经元表示了图像中出现的特定实体的各种属性。
胶囊不是传统神经网络中的一个神经元,而是一组神经元。
胶囊网络的核心思想:胶囊里封装的检测特征的相关信息是以向量的形式存在的,胶囊的输入是一个向量,是用一组神经元来表示多个特征。
输入层:数字图片经过标准的卷积层,有256个通道,每个通道均用9×9的卷积核,将输入层图片中的像素亮度转化成局部特征输出,作为Conv1层的输入。
PrimaryCaps层:卷积的胶囊层,包含32个胶囊。PrimaryCaps才是胶囊真正开始的地方。
文章图片
【努力学习人工智能|卷积神经网络与深度学习】DigitCaps层:胶囊网络的全连接层。
要识别的是10类数字(0~9),因此该层的胶囊个数共有10个,每个胶囊表示的向量中元素的个数为16,代表着不同状态下的同一个数字。
使用胶囊神经网络需要的训练数据量,远小于卷积神经网络,它采用动态路由协议算法,仅使用三层网络便可表现出很出色的性能,能够与深度卷积神经网络相当。
胶囊网络解决了卷积神经网络存在的信息丢失、视角变化等问题。
由于胶囊网络具有分别处理不同属性的能力,相比于CNN可以提高对图像变换的鲁棒性,在图像分割中也会有出色的表现。
胶囊网络相对于卷积网络的工作机理更接近人脑的工作方式。
欢迎大家加我微信交流讨论(请备注csdn上添加)
文章图片
推荐阅读
- Pioneer 3-AT 中文数据表
- 运动模型|移动机器人构型对比分析
- 运动模型|履带式机器人运动模型及应用分析
- TensorFlow初学者教程
- 读取Excel文件并将其导入R
- 数据科学开发的前5个Python IDE
- Python机器学习(Scikit-Learn教程)
- Python因子分析简介
- 充分利用Python和R的优点