神经网络简介及CNN

2017-07-15  本文已影响1201人  我叫胆小我喜欢小心

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

一、神经网络简介

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



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

1. 激活函数

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

1.1 sigmod函数(logistic 函数)

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


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

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. 神经网络

神经网络结构

3. CNN之卷积计算层

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


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


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

4. CNN之池化层

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

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

上一篇 下一篇

猜你喜欢

热点阅读