0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CNN的一些基本的概念解读

lviY_AI_shequ 2017-12-04 18:24 次阅读

终于要开 CNN(卷积神经网络)这个神坑了。不过之所以说它神坑,是因为这里面牵扯到的数学概念相当相当多、导致如果只用 Numpy、从头来实现的话会非常繁琐。然而,如果只是理解它的直观并且单纯地实现它的话,由于有伟大的 tensorflow 框架、CNN 被极大地简化成了一个平凡的东西

我打算在不带星号的章节中说明如何运用 tensorflow 框架将 CNN 整合进我们之前实现的神经网络框架中、并在带星号的章节中说明如何使用纯 Numpy 从头实现一个 CNN 框架。CNN 坑就坑在带星号的章节,所以观众老爷们大可带着轻松愉悦的心情食用不带星号的章节 ( σ'ω')σ

这一章主要讲 CNN 的一些非常基本的概念。首先我想指出的是:从结构上来说,朴素的 CNN 和朴素的 NN 没有任何区别(当然,复杂的 CNN 会和 NN 有着比较大的区别)。这意味着朴素的 CNN 包含且只包含下列两个东西:

单独的层级结构 Layer

将 Layer 整合在一起的网络结构

所以在实现算法时我们要做的、无非就是把之前实现的 NN 相应的部分进行分情况讨论

知道了结构后,我们就要来看 CNN 的思想了。总的来说可以把它概括成以下两点:

局部连接(Sparse Connectivity)

权值共享(Shared Weights)

它们有很好直观。举个栗子,我们平时四处看风景时,都是“一块一块”来看的、信息也都是“一块一块”地接收的(所谓的【局部感受野】)。在这个过程中,我们的思想在看的过程中通常是不怎么变的、而在看完后可能会发出“啊这风景好美”的感慨、然后可能会根据这个感慨来调整我们的思想。在这个栗子中,那“一块一块”的风景就是局部连接,我们的思想就是权值。我们在看风景时用的都是自己的思想,这就是权值共享的生物学意义(注:这个栗子是我开脑洞开出来的、完全不能保证其学术严谨性、还请各位观众老爷们带着批判的眼光去看待它……如果有这方面专长的观众老爷发现我完全就在瞎扯淡、还望不吝指出 ( σ'ω')σ)

光用文字叙述可能还是有些懵懂,我来画张图(参考了一张被引用烂了的图;但由于原图有一定的误导性、所以还是打算自己画一个)(虽然很丑):

这张图比较了 NN 和 CNN 的思想差别。左图为 NN,可以看到它在处理输入时是全连接的、亦即它采用的是全局感受野,同时各个神经元又是相对独立的、这直接导致它难以将原数据样本翻译成一个“视野”。而正如上面所说,CNN 采用的是局部感受野 + 共享权值,这在右图中的表现为它的神经元可以看成是“一整块”的“视野”,这块视野的每一个组成部分都是共享的权值(右图中那些又粗又长的绿线)在原数据样本的某一个局部上“看到”的东西

接下来就粗略地讲讲怎么实现这种思想、亦即如何实现 CNN 里面的前传算法。具体的定义会在数学系列里面进行说明,这里就只放代码核心了(Again,tensorflow 大法好!)

def _conv(self, x, w): return tf.nn.conv2d(x, w, strides=[self._stride] * 4, padding=self._pad_flag)def _activate(self, x, w, bias, predict): res = self._conv(x, w) + bias return layer._activate(self, res, predict)

这里面涉及到一些以后会说明的东西,但如果知道概念的话、代码应该还是相当可读的

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cnn
    cnn
    +关注

    关注

    3

    文章

    326

    浏览量

    21296
  • Layer
    +关注

    关注

    0

    文章

    17

    浏览量

    6572

原文标题:从零开始学人工智能(8)--Python · 神经网络(七)· CNN

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    EMC技术:基础概念到应用的解读?|深圳比创达电子.

    EMC技术:基础概念到应用的解读?|深圳比创达电子电磁兼容性(Electromagnetic Compatibility,简称EMC)作为项重要的技术领域,在现代电子设备中扮演着至关重要的角色
    发表于 03-11 11:59

    基于数字CNN与生物视觉的仿生眼设计

    简单的物体,完成一些简单的视觉任务[2]。本文采用基于CNN[3-4]的数学模型以及相关的数字指令来建立个能并行、快速处理视觉信号的数字CNN信号处理系统。在研究视网膜信号处理以及信
    发表于 09-19 09:35

    TF之CNNCNN实现mnist数据集预测

    TF之CNNCNN实现mnist数据集预测 96%采用placeholder用法+2层C及其max_pool法+隐藏层dropout法+输出层softmax法+目标函数cross_entropy法+
    发表于 12-19 17:02

    一些关于RISC-V的质疑与解读

    就会变成商品了。这其中又需要做一些区分,如果是美国企业研制的RISC-V处理器,就会受到美国出口管制。而美国以外的企业(包括欧洲、中国等)自主研制的RISC-V处理器,则不会违反美国出口管制条例。事实上
    发表于 06-22 16:49

    嵌入式开发中的一些硬件相关的概念有哪些

    做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有定的了解。这样才能深入的研究下去。下面我们简单的介绍嵌入式开发中的一些硬件相关的概念
    发表于 02-24 08:56

    有关一些电路常识性概念须知

    有关一些电路常识性概念须知
    发表于 06-08 06:50

    介绍蓝牙的一些概念

    . 声明本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:第篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。第二篇
    发表于 07-22 06:03

    解释下有关逻辑电平的一些概念

    上篇博文写了一些有关CMOS门电路的基础内容,相信认真看完,定能画出各种CMOS门电路:CMOS门电路,这些是最常考的基础内容。下面简单介绍下其他概念题目:1、 解释
    发表于 07-28 06:23

    STM32 IO口中断的一些基础概念介绍

    这里我们首先 STM32 IO 口中断的一些基础概念。STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。STM32F103 的中断控制器支持 19 个外部
    发表于 08-16 06:58

    嵌入式开发中的一些硬件相关的概念,不看肯定后悔

    嵌入式开发中的一些硬件相关的概念,不看肯定后悔
    发表于 11-12 07:32

    存储系统的一些概念介绍

    1、一些概念:(1)存储容量存储器多能存储的二进制信息的总位数存储容量 = 存储器总存储单元数*每个存储单元的位数(2)存储器的速度①存取时间:对存储器中某个单元的数据进行次存(取
    发表于 12-09 06:31

    介绍一些SVA基本的概念和常用的语法

    、序言SVA,即SystemVerilog Assertion,在simulation和Formal都有极为广泛的应用,这里介绍一些基本的概念和常用的语法。二、个简单的例子以
    发表于 10-27 16:37

    文详解CNN

    神经学原理支撑:个神经元并非接收其它所有神经元传来的刺激都产生反应,它首先会将其相邻神经元传来的刺激进行积累,到定时候产生自己的刺激并传递给一些与它相邻的神经元。这个相邻就是局部感知的概念
    发表于 08-18 06:56

    《 AI加速器架构设计与实现》+学习和一些思考

    AI加速器设计的学习和一些思考 致谢 首先感谢电子发烧友论坛提供的书籍 然后为该书打个广告吧,32K的幅面,非常小巧方便,全彩印刷,质量精良,很有质感。 前言 设计神经网络首先要考虑的几个问题
    发表于 09-16 11:11

    EMC技术:基础概念到应用的解读

    EMC技术:基础概念到应用的解读?|深圳比创达电子
    的头像 发表于 03-11 11:55 148次阅读
    EMC技术:基础<b class='flag-5'>概念</b>到应用的<b class='flag-5'>解读</b>?