zoukankan      html  css  js  c++  java
  • 深度学习要点———神经网络的类型

    CNN(Convolutional Neural Network)

      (1)CNN的概念

      CNN,常被称作卷积神经网络,经常被用于图像处理。

      CNN最关键的两个步骤是:卷积与池化。以下是它的过程图:

     CNN之所以能够进行卷积,有两点理由:1.图像的模式会远远的小于整张图片;2.图像中相同的模式会出现在不同的位置。

        CNN之所以能够进行池化,主要是因为图像中有很多冗余点,即使我们对它进行subsamble也不会改变整张图片的模式。

      (2)卷积

        所谓卷积,就是预定义比原始矩阵更小的矩阵,然后用这个矩阵与原来的输入矩阵进行矩阵乘法。可想而知,通过卷积之后矩阵的大小肯定会变小。假设原来的矩阵大小的是m*m,卷积的矩阵大小是n*n,那么卷积之后的矩阵大小为(m-n+1)(m-n+1)。如果你想要保持卷积后的矩阵的大小和原来的矩阵大小相等,那么你就要使用zero padding技术。

      (3)池化

        这里的池化一般指的是最大池化。最大池化,就是预先定义一个k*k的矩阵,然后确定卷积后的矩阵在这个k*k的矩阵中的最大值。池化后的矩阵大小为(m-n+1)/k*(m-n+1)/k。

      (4)应用

        CNN主要运用于图像处理,在Playing go中,运用了CNN的卷积技术,但是没有用到池化技术。

    RNN(Recureent nertual network)

      RNN,也叫做循环神经网络模型。RNN用于处理时序数据,因为它能够记住历史信息。

      RNN的类型有很多,典型的RNN模型指的是:当前隐层节点的输出被存贮,而后作用于当前层节点。

      由RNN衍生出了很多不同类型的RNN,不同类型的特征和定义,请参考同一分类下RNN类型文章:

      (1)Bidirectional RNN

    (2)LSTM

    (3)训练过程

      因为利用了历史信息,所有RNN的训练不能简单的使用后向传播算法,而是要使用改进的BPTT(Back Propagation through time)。

      RNN在训练的过程也会存在梯度消失的问题,LSTM可以克服这个问题。只要LSTM的forget gated还在的话,就不会出现梯度小时问题。比RNN更简单的GRU也有这种效果。

      (4)应用

      机器翻译,video caption generation, 看图说话。。。。

  • 相关阅读:
    模仿Linux内核kfifo实现的循环缓存
    FFmpeg + SoundTouch实现音频的变调变速
    C++标准库实现WAV文件读写
    PHP写的一个轻量级的DI容器类(转)
    android App抓包工具的应用(转)
    Dell 服务器阵列扩容【经验分享(转)】
    hexo静态博客的安装及应用实践记录
    centos 6.5 升级php到5.6.17版本
    前端框架记录
    Virtual DOM 虚拟DOM的理解(转)
  • 原文地址:https://www.cnblogs.com/xzm123/p/9019047.html
Copyright © 2011-2022 走看看