卷积神经网络(三) ——inception网络、迁移学习

卷积神经网络(三)

——inception网络、迁移学习

(原创内容,转载请注明来源,谢谢)

一、Inception网络

1、简介

前面的文章中,有各种的卷积模型可以选择,而具体如何选择各种模型,实际上也可以让机器自动选择。

下面是一个前一层的输出结果,为28*28*192的数据,可以同时经过1*1、3*3、5*5、池化层四种处理,得到输出的结果,并且把输出结果进行拼接。

2、卷积优化

实际上在数据量大的时候,卷积的计算量也很大(虽然比全连接层已经好了很多)。28*28*192的数据,经过5*5的卷积,计算量约需要1.2亿次乘法。

下面考虑另一种方式,在5*5卷积之前,加入一个1*1卷积,先把上一层的输出进行压缩,然后再进行5*5的卷积,如下图所示,计算量约1240万次,是直接进行卷积的计算量的1/10。

这里的输入输出的维度都是一样的,只不过中间加了一层1*1的卷积,减少了计算量,这里的1*1卷积称为瓶颈层(bottleneck layer)。

经过研究人员的分析,这种瓶颈层虽然压缩了上一层的输出,但是不会造成很大的损失,而且减少了运算。

3、inception模块

因此,实际上的inception模块,就是同时进行了各种类型的卷积,包括池化,把计算结果进行信道的连接。

二、迁移学习

迁移学习,即把现有的神经网络,进行细微的改造训练,以得到自己想要的分类器的结果。

假设现有一个已经训练好的深度学习神经网络(例如GitHub开源等),现在需要一个三分类器。

1、训练数据量不足

当训练数据很少,则可以只改造现有网络的输出层,自己训练一个softmax,把前面所有的层当做黑盒,不进行训练,只使用训练结果。

为了计算速度更快,可以把前面的输出结果存储,作为输入层,这样只需要训练2层的神经网络即可。

2、训练数量较多

当训练数据较多,则除了替换softmax,还可以在softmax之前,加入几层的隐藏层,这样训练效果更好。

3、训练数据非常大量

当拥有非常大量的训练数据,则可以只把现有的网络当做初始化,而自己完全训练一个神经网络。

迁移学习的优点,在于可以合理利用现有的网络。当神经网络非常大型时,前面几层的训练通常是可以共用的,这也是迁移学习可以实现的原理。

对于计算机视觉,需要大量的数据,而且运算量很大,合理利用现有训练好的网络,进行迁移学习,可以提高工作效率。

三、数据扩充

数据扩充,这个之前提过,这里再简单说一下。

数据扩充的目的,是为了增加训练数据。常用的方法有:对图片进行镜像、随机修剪、旋转、扭曲、色彩转换(运用PCA增强法)等。

实际工作的时候,可以一边用程序处理图片,一边进行后续的训练。具体做法,可以用多线程,部分线程读取硬盘的图片,并进行上述的镜像、旋转等工作,处理完成一部分图片后,小批量的把图片传给训练参数的线程;另一部分线程,则读取图片,并且进行参数的训练。

——written by linhxx 2018.03.10

原文发布于微信公众号 - 决胜机器学习(phpthinker)

原文发表时间:2018-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CreateAMind

神经网络(Neural Networks)课程ppt及视频

11620
来自专栏LhWorld哥陪你聊算法

【深度学习篇】--神经网络中的卷积神经网络

Convolutional neural networks  视觉皮层、感受野,一些神经元看线,一些神经元看线的方向,一些神经元有更大的感受野,组合 底层的图案...

10110
来自专栏fangyangcoder

Andrew Ng机器学习课程笔记(一)之线性回归

http://www.cnblogs.com/fydeblog/p/7364598.html

22120
来自专栏AI研习社

如何找到最优学习率?

经过了大量炼丹的同学都知道,超参数是一个非常玄乎的东西,比如batch size,学习率等,这些东西的设定并没有什么规律和原因,论文中设定的超参数一般都是靠经验...

454100
来自专栏数据处理

笔记之一

18160
来自专栏AI科技大本营的专栏

深度学习目标检测指南:如何过滤不感兴趣的分类及添加新分类?

AI 科技大本营按:本文编译自 Adrian Rosebrock 发表在 PyImageSearch 上的一篇博文。该博文缘起于一位网友向原作者请教的两个关于目...

16020
来自专栏fangyangcoder

Andrew Ng机器学习课程笔记(三)之正则化

http://www.cnblogs.com/fydeblog/p/7365475.html

8510
来自专栏CreateAMind

Deep Learning Book 中文5.7-6.2节 机器学习基础-深度前馈网络

监督学习算法、无监督学习算法、推动深度学习的挑战;基于梯度的学习:最大似然学习条件分布;不同的输出单元:多分类等。

9320
来自专栏人工智能

C+实现神经网络之贰—前向传播和反向传播

前言 前一篇文章C++实现神经网络之壹—Net类的设计和神经网络的初始化中,大部分还是比较简单的。因为最重要事情就是生成各种矩阵并初始化。神经网络中的重点和核心...

249100
来自专栏PPV课数据科学社区

译:支持向量机(SVM)及其参数调整的简单教程(Python和R)

一、介绍 数据分类是机器学习中非常重要的任务。支持向量机(SVM)广泛应用于模式分类和非线性回归领域。 SVM算法的原始形式由Vladimir N.Vapnik...

85680

扫码关注云+社区

领取腾讯云代金券