开发者社区> 磐石001> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

卷积神经网络概述

简介: 欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 卷积神经网络 图像识别问题和数据集 > 计算机视觉中有哪些问题?典型问题:经典数据集。
+关注继续查看

欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识!

卷积神经网络

图像识别问题和数据集

> 计算机视觉中有哪些问题?典型问题:经典数据集。

在 2012 年的 ILSVRC 比赛中 Hinton 的学生 Alex Krizhevsky 使用深度卷积神经网络模型 AlexNet 以显著的优势赢得了比赛,top-5 的错误率降低至了 16.4% ,相比第二名的成绩 26.2% 错误率有了巨大的提升。AlexNet 再一次吸引了广大研究人员对于卷积神经网络的兴趣,激发了卷积神经网络在研究和工业中更为广泛的应用。现在基于卷积神经网络计算机视觉还广泛的应用于医学图像处理,人脸识别,自动驾驶等领域。越来越多的人开始了解卷积神经网络相关的技术,并且希望学习和掌握相关技术。因为卷积神经网络需要大量的标记数据集,有一些经典的数据集可以用来学习,同时解决一些常见的计算机视觉问题。

  • 卷积神经网络的具体应用,经典数据集。

比如最常用的 mnist 手写数字数据集,这个数据集有 60000个训练样本,10000个测试样本;cfair 10 数据集包含 60000 个 32x32 像素 的彩色图片,它们分别属于 10 个类别,每一个类别有 6000 个图片,其中 50000 个作为训练集,10000个作为测试集。

  • 卷积神经网络在这些应用上取得的成果。

针对 mnist 手写数字数据集,现在已经达到了 99% 以上的识别率,在稍后的学习中,也会实现一个准确率达到 99% 以上的模型。

卷积神经网络简介

> 卷积神经网络是什么,以及卷积神经网络将如何解决计算机视觉的相关问题。

图像数据集的特点,对于神经网络的设计提出了一些新的挑战。

维度比较高

因为图像的维度普遍比较高,例如 MNIST 数据集,每一个图片是 28 * 28 的图片。

如果直接用神经网络,假设采用2个 1000个神经元的隐藏层加 1 个10个神经元的隐藏层,最后使用 softmax 分类层,输出 10 个数字对应的概率。

参数的数量有:

786 * 1000 * 1000 * 10

如果是更大一点的图片,网络的规模还会进一步快速的增长。为了应对这种问题,
Yann LeCun 在贝尔实验室做研究员的时候提出了卷积网络技术,并展示如何使用它来大幅度提高手写识别能力。接下来将介绍卷积和池化以及卷积神经网络。

卷积介绍

我们尝试用一个简单的神经网络,来探讨如何解决这个问题。假设有4个输入节点和4个隐藏层节点的神经网络,如图所示:


图1 全连接神经网络

每一个输入节点都要和隐藏层的 4 个节点连接,每一个连接需要一个权重参数 w:


图2 一个输入节点向下一层传播

一共有 4 个输入节点,,所以一共需要 4*4=16个参数。

相应的每一个隐藏层节点,都会接收所有输入层节点:


图3 每个隐藏层节点接收所有输入层节点输入
这是一个简化版的模型,例如手写数据集 MNIST 28 * 28 的图片,输入节点有 784 个,假如也只要一个隐藏层有 784 个节点,那么参数的个数都会是:784 * 784=614656,很明显参数的个数随着输入维度指数级增长。

因为神经网络中的参数过多,会造成训练中的困难,所以降低神经网络中参数的规模,是图像处理问题中的一个重要问题。

有两个思路可以进行尝试:

1.隐藏层的节点并不需要连接所有输入层节点,而只需要连接部分输入层。

如图所示:

 


图4 改为局部连接之后的网络结构
每个隐藏层节点,只接受两个输入层节点的输入,那么,这个网络只需要 3 * 2 =6个连接。使用局部连接之后,单个输出层节点虽然没有连接到所有的隐藏层节点,但是隐藏层汇总之后所有的输出节点的值都对网络有影响。

2.局部连接的权重参数,如果可以共享,那么网络中参数规模又会明显的下降。如果把局部连接的权重参数当做是一个特征提取器的话,可以尝试将这个特征提取器用在其他的地方。

那么这个网络最后只需要 2 个参数,就可以完成输入层节点和隐藏层节点的连接。

这两个思路就是卷积神经网络中的稀疏交互和权值共享,下一篇文章将会详细讲解以及使用 TensorFlow 实现。

本篇文章出自http://www.tensorflownews.com,对深度学习感兴趣,热爱Tensorflow的小伙伴,欢迎关注我们的网站!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【pytorch实现】卷积神经网络(4)
【pytorch实现】卷积神经网络(4)
8 0
【pytorch实现】卷积神经网络(2)
【pytorch实现】卷积神经网络(2)
7 0
【pytorch实现】卷积神经网络(3)
【pytorch实现】卷积神经网络(3)
8 0
神经网络基础(一)
神经网络基础(一)
38 0
如何从信号分析角度理解卷积神经网络的复杂机制?
随着复杂和高效的神经网络架构的出现,卷积神经网络(CNN)的性能已经优于传统的数字图像处理方法,如 SIFT 和 SURF。在计算机视觉领域,学者们开始将研究重点转移到 CNN,并相信 CNN 是这一领域的未来趋势。但是,人们对成效卓著的 CNN 背后的机理却缺乏了解。
64 0
PyTorch可视化理解卷积神经网络
神经网络工具像一个黑匣子,无法知道它的中间是如何处理的。本文使用图片加代码的形式讲解CNN网络,并对每层的输出进行可视化,便于初学者理解,可以动手实践下哦!
3230 0
我对卷积神经网络的一点粗浅的理解
Convolutional Neural Network,卷积神经网络,简称CNN,最近几年再次流行起来。 CNN和普通的机器学习算法有什么相同,有什么不同? 简单说,CNN=A+B,即CNN包括两个方面的功能: A:feature extactor 特征提取器 普通的机器学习算法,比如决策树、随机森林、svm、逻辑回归/softmax等,它的输入通常就是若干个features 而CNN的输入,是图片! 我们当然可以把图像像素作为feature vector中的一个维度。
1067 0
卷积神经网络 资料
CNN是有监督学习网络,简单说就是图像作为数据,经过卷积-池化-再卷积-再池化,然后二维的feature maps拼接为一维的节点神经元,作为BP神经网络的输入,BP的最后一层放一个softmax之类的分类器,然后实际输出和目标输出进行比较,误差反向传播:卷积和池化都是卷积操作;误差从后一层到前一层传播是卷积操作;权值更新(即卷积模板更新)也是卷积操作,一共有三种卷积操作。
737 0
集合概述
我们知道,数组是System.Array类的一个实例。但是,数组有很大的缺点,就是需要指定大小,也不能添加,插入,删除元素。因此,在.NET中引入了集合的概念,所有的集合类都存放在System.Collections命名空间下。
497 0
+关注
磐石001
擅长机器学习、深度学习。熟练使用Tensorflow 、keras 、pytorch等开源框架。熟练掌握CNN、RNN网络原理。对CV领域、NLP领域都有一定研究。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
典型模型-卷积神经网络入门
立即下载
典型模型-卷积神经网络入门 从概念原理到应用实现
立即下载
学习深度学习的四个步骤
立即下载