版权声明:本文为博主许佳佳原创文章,转载请务必注明出处。 https://blog.csdn.net/Double2hao/article/details/84451405

概要

本文科普性质偏多,主要讲一下神经网络中一些常见的概念,如果是完全不懂的小白也可以阅读。

本文参考:
https://blog.csdn.net/v_JULY_v/article/details/51812459
https://zhuanlan.zhihu.com/p/33841176
https://blog.csdn.net/v_JULY_v/article/details/79434745
https://blog.csdn.net/qq_23225317/article/details/77834890

一个例子理解NN(神经网络) 模型

现在想要计算一个人的智商,目前影响智商的因素有身高、体重、家庭背景三个,三者的影响权重也不同,最终能通过三者和权重计算出一个人的智商。这些所有的因素结合到一起就可以称为是神经网络,如下图:


由此可以引申出神经网络的三个概念:
输入层(Input layer):众多神经元接受大量非线形输入讯息。
输出层(Output layer):讯息在神经元链接中传输、分析、权衡,形成输出结果。
隐藏层(Hidden layer):是输入层和输出层之间众多神经元和链接组成的各个层面。

拿上面的例子来讲:
输入层(Input layer):输入身高、体重、家庭背景等的过程。
隐藏层(Hidden layer):把身高、体重等参数与权重一起计算出结果的过程。
输出层(Output layer):输出这个人智商的过程。

由此也可以很简单地理解“神经元”的概念。
身高、体重、家庭背景,每个都是输入层的神经元。
计算智商的过程可能很复杂,可以把这个计算的大过程分解成很多个小过程,而每一个小过程就是隐藏层的神经元。
最终输出的智商,则是输出层的一个神经元。

RNN(循环神经网络)

RNN是在自然语言处理领域中最先被用起来的,比如,RNN可以为语言模型来建模。

语言模型:给定一个一句话前面的部分,预测接下来最有可能的一个词是什么。

比如:

我昨天上学迟到了,老师批评了____。

一般的神经网络由输入层、隐藏层、输出层组成,隐藏层一般会根据输入层输入的内容来计算出输出结果。
而RNN(循环神经网络)的隐藏层不仅会根据输入层输入的内容计算,同时也会把上一个神经网络隐藏层计算出的结果作为参考之一。

举个例子:

句子A: 老师 批评 了 ____。
句子B: 我 昨天 上学 迟到 了 ,老师 批评 了 ____。

如果仅仅分析句子A,很难判断出老师到底批评了谁,有可能是“我”,也有可能是“小明”。
但是在句子B中,后面的内容如果同时加进了“我昨天上学迟到了”这句话的意思,后面的内容就有很大概率是“我”了。

双向循环神经网络

双向循环神经网络就是不仅仅会考虑到前面的神经网络的计算结果,后面的神经网络的计算结果也会作为计算的参考之一,例子和模型图如下:

我的手机坏了,我打算____一部新手机。

CNN(卷积神经网络)

解决的问题

比如我们要让计算机识一张“X”的图片,我们可能就会让计算机去记录该图片的一个个像素点,如下图:

但是如果图片有稍微的旋转,或者是位置上的变化,那么这种简单的方式就无法识别出来了,而通过CNN,我们就可以解决这个问题。

过程

CNN将一整个问题分解成一个个小的特征,通过卷积的数学操作找到这些特征,然后再将一个个小特征放到一起来判断是否是最终的结果。

特征

上面的识别“X”的例子,对于CNN来说,它是一块一块地来进行比对。它拿来比对的这个“小块”就是特征。
每一个特征就像是一个小图(就是一个比较小的有值的二维数组)。不同的特征匹配图像中不同的特征。在字母"X"的例子中,那些由对角线和交叉线组成的特征基本上能够识别出大多数"X"所具有的重要特征。




那么计算机究竟是如何找到这些一个个特征的?这就要用到了一个数学操作——卷积。

卷积

卷积的gif如下:

还是看上面的识别“X”的例子:


最终这个特征的计算结果如下图:

接下来就换其他特征继续运算,最终所有特征的计算结果如下:

由卷积的计算过程可知,上面图中每个位置的值越大,就说明这个位置和我们寻找的特征值越匹配。
而实际过程中,我们不需要知道每个点的特征的匹配程度,其实只需要知道“这个特征是否存在”就可以。
打个比方,我们通过“猫头”、“猫爪”、“猫的身子”这个三个特征来判断出是一只猫,而至于这些特征是在图片的上方,下方还是左方右方,我们并不关心,只要最终能找到这些特征,我们就能判断是一只猫。
也因此就有了“池化”的必要。

池化

池化可以将一幅大的图像缩小,同时又保留其中的重要信息。常情况下,池化都是2*2大小,比如对于max-pooling来说,就是取输入图像中2*2大小的块中的最大值,作为结果的像素值,相当于将原始图像缩小了4倍。


因为最大池化(max-pooling)保留了每一个小块内的最大值,所以它相当于保留了这一块最佳的匹配结果(因为值越接近1表示匹配越好)。这也就意味着它不会具体关注窗口内到底是哪一个地方匹配了,而只关注是不是有某个地方匹配上了。这也就能够看出,CNN能够发现图像中是否具有某种特征,而不用在意到底在哪里具有这种特征。

通过上面的过程,其实我们已经在图片中找到一个个特征了,那么我们又是如何通过一个个特征来判断出最终的结果的呢?这就是全连接层做的事情。

全连接层

我们从一个比较形象的例子来解释全连接层做的事情:
现在有一张图片,我们要识别图片里面的是一只猫,按照CNN的思路,我们肯定要先找到各个特征,比如“猫头”、“猫尾巴”。

如果找到了这些特征,我们自然可以得出“猫”的结果:

但是,问题是计算机也肯定无法直接识别出“猫头”、“猫尾巴”这些特征啊?所以这些特征只能由一些更小的特征得出,比如要得出“猫头”的特征,就要得到“猫眼睛”、“猫耳朵”等特征。


那么“猫眼睛”、“猫耳朵”这些细小的特征又从哪里来呢?是从前面的卷积层来的。

其他概念

迁移学习

当你在处理一张图片时,你的神经网络最后一层可能是在找孩子、狗或飞机或别的任何东西。如果你向前两层看,网络可能是在找眼睛、耳朵、嘴巴或者轮子。
迁移学习就是当你用一个数据集训练CNN时,砍掉最后的一(些)层,再用另一个不同的数据集重新训练最后一(些)层的模型。直观地说,你在重新训练模型来识别不同的高级层次特征。作为结果,训练时间大幅减少。所以当你没有足够的数据或者训练的资源时,迁移学习是非常有用的一个工具。

RNN和CNN(循环神经网络和卷积神经网络)相关推荐

  1. cnn卷积神经网络_卷积神经网络(CNN)原理及应用

    一.CNN原理 卷积神经网络(CNN)主要是用于图像识别领域,它指的是一类网络,而不是某一种,其包含很多不同种结构的网络.不同的网络结构通常表现会不一样.从CNN的一些典型结构中,可以看到这些网络创造 ...

  2. 【卷积神经网络】卷积神经网络(Convolutional Neural Networks, CNN)基础

    卷积神经网络(Convolutional Neural Networks, CNN),是一种 针对图像 的特殊的 神经网络. 卷积神经网络概述 Why not DNN? 图像数据的维数很高,比如 1, ...

  3. BP神经网络与卷积神经网络(CNN)

    BP神经网络与卷积神经网络(CNN) 1.BP神经网络  1.1 神经网络基础  神经网络的基本组成单元是神经元.神经元的通用模型如图 1所示,其中常用的激活函数有阈值函数.sigmoid函数和双曲正 ...

  4. 【数据挖掘】卷积神经网络 ( 视觉原理 | CNN 模仿视觉 | 卷积神经网络简介 | 卷积神经网络组成 | 整体工作流程 | 卷积计算图示 | 卷积计算简介 | 卷积计算示例 | 卷积计算参数 )

    文章目录 I . 人类的视觉原理 II . 卷积神经网络 模仿 视觉原理 III . 卷积神经网络简介 IV . 卷积神经网络 组成 V . 卷积神经网络 工作流程 VI . 降低样本参数数量级 VI ...

  5. DL之CNN:计算机视觉之卷积神经网络经典算法简介、重要进展、改进技巧之详细攻略(建议收藏)

    DL之CNN:计算机视觉之卷积神经网络经典算法简介.重要进展.改进技巧之详细攻略(建议收藏) 目录 CNN经典算法细讲 1.CNN历年冠军算法 1.1.LeNet-5 1.2.AlexNet 1.3. ...

  6. CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP、混淆矩阵)简介、使用方法之详细攻略

    CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介.使用方法之详细攻略 目录 CNN中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介 IOU 1.IOU简介 2 ...

  7. TF之CNN:Tensorflow构建卷积神经网络CNN的简介、使用方法、应用之详细攻略

    TF之CNN:Tensorflow构建卷积神经网络CNN的简介.使用方法.应用之详细攻略 目录 TensorFlow 中的卷积有关函数入门 1.tf.nn.conv2d函数 案例应用 1.TF之CNN ...

  8. DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略

    DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文).CNN优化技术.调参学习实践.CNN经典结构.案例应用之详细攻略 目录 卷积神经网络算法的简介 0.Biologically Ins ...

  9. DL之CNN优化技术:卷积神经网络算法简介之特有的优化技术及其代码实现——im2col技术等技术

    DL之CNN优化技术:卷积神经网络算法简介之特有的优化技术及其代码实现--im2col技术等技术 目录 im2col技术 im2col简介 im2col代码实现 im2col技术 im2col简介 1 ...

  10. 神经网络与卷积神经网络,什么是卷积神经网络

    前馈神经网络.BP神经网络.卷积神经网络的区别与联系 一.计算方法不同1.前馈神经网络:一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层.各层 ...

最新文章

  1. 百越杯 Reverse (crazy write up)
  2. 导师喜不喜欢你?看以下几点就知道!
  3. CachedNetworkImage 图片缓存
  4. codeforces 101466E Text Editor(hash)
  5. mybatisplus报的mysql错误归纳
  6. docker - 常用命令详解
  7. 典型计算机控制系统的基本框图6,计算机控制系统复习题标准答案.doc
  8. 令牌环 典型例题分析解答
  9. 关于计算机的病毒案例分析,实例解析蠕虫病毒的原理 -电脑资料
  10. Pygame简易版2048小游戏:超详细解说,看完还不会可以剁手了(附完整源码)
  11. 常用电子个人邮箱账号格式怎么写?
  12. 密码学hash函数-SHA256-512
  13. 数据可视化笔记4 结构数据的可视化图形
  14. 一、自动化测试——Airtest+Poco快速上手
  15. 使用Karabiner为Mac内置键盘、HHKB进行映射
  16. android应用 数量,谷歌Android应用数量超40万 免费应用占总数2/3
  17. 我爱Java系列---【分页查询】
  18. 秒懂什么是工业网络网关?
  19. Vue3源码分析之打包原理
  20. 使用tftp命令下载程序并运行

热门文章

  1. 【大数据Java基础-JAVA 数据结构04】java常用类(四)比较器以及其他类
  2. 计算机网页设计教程dw,Dreamweaver 网页制作标准教程.pdf
  3. opencv中的形态学操作
  4. pandas读取excel时间字段
  5. 哪些因素影响着smt贴片打样的费用?
  6. 小肚皮App招聘iOS、Android开发工程师
  7. org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
  8. ColorFinale Pro for mac(FCPX插件:专业分级调色插件)
  9. heic转换jpg软件
  10. 大生态里的小生态:IBOS开源OA借道云市场构建高价值协同云