美文网首页
神经网络简介及CNN

神经网络简介及CNN

作者: 我叫胆小我喜欢小心 | 来源:发表于2017-07-15 16:39 被阅读1201次

注意:本文为学习笔记,大量直接复制于参考文章中的原文字及图片

一、神经网络简介

神经网络由大量神经元组成。每个神经元获得线性组合的输入,经过非线性的激活函数,然后得到非线性的输出。
如下图所示:



x1,x2表示输入向量,w1,w2表示权重,b为偏置值(bias),a为输出。

1. 激活函数

激活函数到底是一个什么东西,主要有哪些激活函数,以及在什么情况下适合使用什么激活函数,接下来我们一探究竟。
激活函数是为了给神经元引入非线性因素,使得神经网络可以逼近任意非线性函数,这样神经网络就可以应用于众多的非线性模型中。
常见的几个激活函数有sigmod,Tanh,ReLU,softmax。

1.1 sigmod函数(logistic 函数)

下图为对应的公式和曲线以及对应的求导曲线图:


取值范围(0,1),可以用来做二分类。
不过这个函数现在已经很少用了,主要原因如下:

  • Sigmoids saturate and kill gradients
    激活函数计算量大,反向传播(见下文)求误差梯度时,求导涉及除法。反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练
  • Sigmod的output不是0均值
    因为每一层的输出都要作为下一层的输入,而未0中心化会直接影响梯度下降,我们这么举个例子吧,如果输出的结果均值不为0,举个极端的例子,全部为正的话(例如f=w^Tx+b中所有x>0),那么关于w的梯度在反向传播的过程中,将会要么全部是正数,要么全部是负数(具体依整个表达式f而定),这带来的后果是,梯度更新的时候,不是平缓地迭代变化,而是类似锯齿状的突变。当然,要多说一句的是,这个缺点相对于第一个缺点,还稍微好一点,当把整个批量的数据的梯度被加起来后,对于权重的最终更新将会有不同的正负,这样就从一定程度上减轻了这个问题,第一个缺点的后果是,很多场景下,神经网络根本没办法学习。
1.2 Tanh函数

和sigmod相比,优点是output是0均值的,但是还是没有解决上文说的第一个问题。


1.3 ReLU(Rectified Linear Unit)

优点:实验表明,它的使用,相对于sigmoid和tanh,可以非常大程度地提升随机梯度下降的收敛速度。
缺点:例如,一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了,那么这个神经元的梯度就永远都会是 0.
如果 learning rate 很大,那么很有可能网络中的 40% 的神经元都”dead”了。
当然,如果你设置了一个合适的较小的learning rate,这个问题发生的情况其实也不会太频繁。
(learning rate:学习率决定了权值更新的速度,设置得太大会使结果越过最优值,太小会使下降速度过慢。下图中的n为学习率。)

1.4 Softmax

用于多分类神经网络输出,公式如下:


公式的图解

就是如果某一个 zj 大过其他 z, 那这个映射的分量就逼近于 1,其他就逼近于 0,主要应用就是多分类。
为什么要取指数,第一个原因是要模拟 max 的行为,所以要让大的更大。
第二个原因是需要一个可导的函数。
(假如说输入都比较大,会使得区分度更大,假如输入都比较小,可能会使得更平均?)

2. 神经网络

神经网络结构
  • 输入层(Input layer):众多神经元(Neuron)接受大量非线形输入讯息。输入的讯息称为输入向量。
  • 输出层(Output layer):讯息在神经元链接中传输、分析、权衡,形成输出结果。输出的讯息称为输出向量。
  • 隐藏层(Hidden layer):简称“隐层”,是输入层和输出层之间众多神经元和链接组成的各个层面。如果有多个隐藏层,则意味着多个激活函数。

3. CNN之卷积计算层

未知图案的局部和标准X图案的局部一个一个比对时的计算过程,便是卷积操作。卷积计算结果为1表示匹配,否则不匹配。


对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。
非严格意义上来讲,下图中红框框起来的部分便可以理解为一个滤波器,即带着一组固定权重的神经元。多个滤波器叠加便成了卷积层。


相当于如果想提取图像的不同特征,则用不同的滤波器filter。

  • 权值共享:数据窗口滑动,导致输入在变化,但中间滤波器Filter w0的权重(即每个神经元连接数据窗口的权重)是固定不变的,这个权重不变即所谓的CNN中的参数(权重)共享机制。

4. CNN之池化层

池化,简言之,即取区域平均或最大,如下图所示:

参考文章:
CNN笔记:通俗理解卷积神经网络
常用激活函数比较
神经网络结构与神经元激励函数

相关文章

  • 神经网络简介及CNN

    注意:本文为学习笔记,大量直接复制于参考文章中的原文字及图片 一、神经网络简介 神经网络由大量神经元组成。每个神经...

  • CNN网络简介

    卷积神经网络简介(Convolutional Neural Networks,简称CNN) 卷积神经网络是近年发展...

  • 一文弄懂CNN及图像识别(Python)

    一、卷积神经网络简介 卷积神经网络(Convolutional Neural Networks, CNN)是一类包...

  • 2018-04-09 第二周

    CNN层次分析 简介cnn: 典型的深度学习模型就是很深层的神经网络,包含多个隐含层,多隐层的神经网络很难直接使用...

  • 06-26:机器学习相关算法review

    1、gcn相关cnn CNN(卷积神经网络)是什么?有何入门简介或文章吗? https://www.zhihu.c...

  • [tensorflow](四) 图像识别与卷积神经网络

    20181204 qzd 1 图像识别问题简介及经典数据集 2 CNN简介 3 CNN常用结构 4 经典CNN网络...

  • Task3 字符识别模型

    前面学了背景及数据读取,今天开始模型的部分了。使用常用的卷积神经网络CNN,搭建个分类模型。 CNN介绍 CNN是...

  • Tensorflow 简单实现Small_cnn

    cnn简介 代码及详细注释 结果

  • CNN

    参考:CNN卷积神经网络原理讲解+图片识别应用(附源码)卷积神经网络 – CNN深入学习卷积神经网络(CNN)的原...

  • 深度学习笔记3:实现一个卷积神经网络

    一、卷积神经网络(CNN) 卷积神经网络(ConvolutionalNeural Network,CNN)是人工神...

网友评论

      本文标题:神经网络简介及CNN

      本文链接:https://www.haomeiwen.com/subject/wzgahxtx.html