V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cralison
V2EX  ›  机器学习

学习笔记 TF052:卷积网络,神经网络发展, AlexNet 的 TensorFlow 实现

  •  1
     
  •   cralison · 2017-10-31 09:40:06 +08:00 · 1583 次点击
    这是一个创建于 2362 天前的主题,其中的信息可能已经有所发展或是发生改变。

    卷积神经网络(convolutional neural network,CNN),权值共享(weight sharing)网络结构降低模型复杂度,减少权值数量,是语音分析、图像识别热点。无须人工特征提取、数据重建,直接把图片作输入,自动提取特征,对平移、比例缩放、倾斜等图片变形具有高度不变形。卷积(convolution),泛函数分析积分变换数学方法,两个函数 f 和 g 生成第三个函数数学算子,表征函灵敏 f 与 g 翻转、平移重叠部分面积。f(x)、g(x)为 R1 两个可积函数。积分新函数为函数 f 与 g 卷积。∫-∞+∞f(τ)g(x-E)dτ。

    神经网络(neural networks,NN)包括输入层、隐藏层、输出层。卷积神经网络隐藏层分为卷积层和池化层(pooling layer 下采样层)。卷积层的卷积核(conventional kernel)在原始图像平移提取特征,每个特征是特征映射。池化层汇聚特征稀疏参数减少学习参数数量,降低网络复杂度。最大值池化(max pooling)、平均值池化(average pooling)。卷积核提取特征映射动作 padding,移动步长(Stride)不一定整除图像素宽度,越边边缘取样为 SAME,不越过边缘取样为 VALID。

    Necognitron->LeCun->LeNet->AlexNet ->网络加深:VGG16->VGG19 ->增强卷积层功能:NIN->GoogleNet->Incption V3 Incption V4 -> 二者结合 ResNet ->分类任务到检测任务:KCNN->FastRCNN->Faster-CNN ->增加新功能模块:FCN->STNet->CNN+RM/LSTM 卷积神经网络起点神经认知机(neocognitron)模型,出现卷积结构。第一个卷积神经网络模型 LeCun,1989 年,发明人 LeCun。论文 http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf 。径向基函数(radial basis function RBF)。1998 年,LeCun,LeNet。http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf 。SVM 手工设计特征分类器。ReLU,Dropout,GPU,大数据,2012 年历史性突破 AlexNet。

    网络加深。

    LeNet。输入层 32x32,图像预处理 reshape,潜在明显特征出现在最高层特征监测卷积核中心。卷积层 3 个(C1、C3、C5),增强原信号特征、降低噪音,在线演示: https://graphics.stanford.edu/courses/cs178/applets/convolution.html 不同卷积核输出特征映射不同。降采样层 2 个(S2、S4),降低网络训练参数、模型过拟合程度,最大池化(max pooling)选中区域最大值,平均值池化(mean pooling)选中区域平均值。全连接层 1 个(F6),输入向量和权重向量点积加偏置,传给 sigmoid 函数,产生单元 i 状态。输出层(高斯连接),欧式径向基函数(Euclidean radial basis funtion)单元,10 个类别对应 10 个径向基函数单元,每个单元 84 个输入,输出 RBF 单元计算输入向量和类别标记向量欧式距离,越远越大。

    AlexNet,2012 年,Geoffrey Hintion 及学生 Alex Krizhevsky、Ilya Sutskever,《 ImageNet Classification with Deep Convolutional Neural Networks 》。不同 GPU 处理图像的不同部分,仅在部分层通信。5 个卷积层,3 个全连接层,5000 万个可调参数。最后全连接层输出到 1000 维 softmax 层,产生覆盖 1000 类标记分布。防止过拟合,Dropout 0.5 概率隐藏层神经元输出置 0,共享权值,降低互适应,收敛迭代次数增加一倍。数据增强(data augmentation)变形(水平翻转图像、反射变化 flip,原始图像随机平移变换 crop,随机光照、彩色变换、颜色抖动)增加新数据。非线性激活函数,ReLU,收敛速度比 sigmoid/tanh 快。大数据训练,120 万 ImageNet 图像数据。GPU 实现,直接从 GPU 内存读出、写入。LRN(local response normalization)规范化层。

    增强卷积层功能。

    VGGNet,Karen simonyan、Andrew Zisserman 《 Very Deep Convolutional Networks for Large_Scale Visual Recognition 》 http://www.robots.ox.ac.uk/~vgg/research/very_deep/ 。5 个卷积组(8-16 层)、2 层全连接层图像特征,1 层全连接分类特征。加深卷积层数达到准确率提升瓶颈。

    GoogleNet。NIN(Network in Network)思想,Min Lin、Qiang Chen、Shuicheng Yan 论文《 Network In Network 》 https://arxiv.org/abs/1312.4400。线性卷积层(linear convolution layer)变多层感知卷积层(multilayer perceptron),全连接层改为全局平均池化。2014 年 GoogleNet(Inception V1),Christian Szegedy、Wei Liu 论文《 Going Deeper with Convolutions 》 https://arxiv.org/abs/1409.4842。使用 1x1 卷积核降维,在全连接层连接 1x1 、 3x3、5x5 卷积结果。宽度、深度扩大,加速。层数更深,22 层,不同深度增加两上损失函数避免反向传播梯度消失。增加多种大小卷积核,降维 Inception 模型,1x1 卷积核降低特征映射厚度。

    结合网络加深和增强卷积模块功能。

    ResNet。2015 年,ILSVRC 不依赖外部数据物体检测、物体识别项目冠军,MSRA 何凯明,152 层。ImageNet 分类、检测、定位、COCO 数据集检测(deteciton)、分隔(segmentation)冠军。Kaiming He、Xiangyu Zhang、Shaoqing Ren、Jian Sun 《 Deep Residual Learning for Image Recognition 》 https://arxiv.org/abs/1512.03385。网络退化(network degradation),shortcut 结构,输入跳层传递加卷积结果。残差(residual),复杂非线性映射 H(x)预测图片分类,残差函数(residual function)F(x)=H(x)-x,优化残差映射比直接优化 H(x)简单。

    从分类任务到检测任务。图片目标检测,视频目标检测(VID)。

    R-CNN,Region Proposal Networks(RPN)和 CNN 结合。RPNs,任意尺寸图片一系列带识别物体概率分数建议区域。使用小网络在最后卷积特征映射滑动扫描,滑动网络每次与特征映射窗口全连接,映射到低维向量,送入两个全连接层(box 回归层 box-regression layer 和 box 分类层 box-classification layer)。重复计算,几千个建议区域(region)互相重叠,多次重复提取特性。 Fast R-CNN,加速版本,最后建议区域映射 CNN 最后卷积层特征映射,一张图片只提取一次特征,提高速度,瓶颈在 RPN,支持多类物体同时检测,行人车辆检测技术。 Fater-R-CNN,RPN 交给 CNN 做,达到实时。Shaoqing Ren、Kaiming He、Ross Girshick、Jian Sun 论文《 Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks 》 https://arxiv.org/abs/1506.01497。

    增加新功能模块。

    FCN(反卷积)、STNet、CNN 与 RNN/LSTM 混合结构。

    MNIST AlexNet 实现。网络结构图。 1 、仔细研读网络论文,理解每一层输入、输出值、网络结构。 2 、按照加载数据、定义网络模型、训练模型、评估模型步骤实现网络。

    https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/convolutional_network.pyhttps://github.com/tensorflow/models/blob/master/tutorials/image/alexnet/alexnet_benchmark.py

    参考资料: 《 TensorFlow 技术解析与实战》

    欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5695 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:54 · PVG 09:54 · LAX 18:54 · JFK 21:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.