广告位API接口通信错误,查看德得广告获取帮助

电竞之家_品味电竞生活移动版

主页 > CS:GO >

理解神经网络:从神经元到RNN、CNN、深度学习

理解神经网络:从神经元到RNN、CNN、深度学习

2019年04月09日

本文为AI研习社编译的技术博客,原标题:

理解神经网络:从神经元到RNN、CNN、深度学习

本文为 AI 研习社编译的技术博客,原标题 :

Understanding Neural Networks. From neuron to RNN,CNN,and Deep Learning

作者 |vibhor nigam

翻译 | gezp123、Dylan的琴

校对 | 邓普斯杰弗 审核 | 酱番梨 整理 | 立鱼王

原文链接:

https://towardsdatascience.com/understanding-neural-networks-from-neuron-to-rnn-cnn-and-deep-learning-cd88e90e0a90


理解神经网络:从神经元到RNN、CNN、深度学习


神经网络是目前最流行的机器学习算法之一。随着时间的推移,证明了神经网络在精度和速度方面,比其他的算法性能更好。并且形成了很多种类,像CNN(卷积神经网络),RNN,自编码,深度学习等等。神经网络对于数据科学和或者机器学习从业者,就像线性回归对于统计学家一样。因此,对神经网络是什么有一个基本的理解是有必要的,比如,它是怎么构成的,它能处理问题的范围以及它的局限性是什么。这篇文章尝试去介绍神经网络,从一个最基础的构件,即一个神经元,深入到它的各种流行的种类,像CNN,RNN等。


神经元是什么?正如其名字所表明,神经网络的灵感来源于人类大脑的神经结构,像在一个人类大脑中,最基本的构件就叫做神经元。它的功能和人的神经元很相似,换句话说,它有一些输入,然后给一个输出。在数学上,在机器学习中的神经元就是一个数学函数的占位符,它仅有的工作就是对输入使用一个函数,然后给一个输出。

理解神经网络:从神经元到RNN、CNN、深度学习


这种神经元中使用的函数,在术语上通常叫做激活函数。主要的激活函数有5种,date,step,sigmoid,tanh和ReLU。这些都将在接下来进行详细地描述。


激活函数阶跃函数

阶跃函数定义为

理解神经网络:从神经元到RNN、CNN、深度学习


其中,如果x的值大于等于零,则输出为1;如果x的值小于零,则输出为0。我们可以看到阶跃函数在零点是不可微的。目前,神经网络采用反向传播法和梯度下降法来计算不同层的权重。由于阶跃函数在零处是不可微的,因此它并不适用于梯度下降法,并且也不能应用在更新权重的任务上。


为了克服这个问题,我们引入了sigmoid函数。

Sigmoid函数


一个Sigmoid函数或者logistic函数的数学定义如下:

理解神经网络:从神经元到RNN、CNN、深度学习


当z或自变量趋于负无穷大时,函数的值趋于零;当z趋于正无穷大时,函数的值趋于1。需要记住的是,该函数表示因变量行为的近似值,并且是一个假设。现在问题来了,为什么我们要用Sigmoid函数作为近似函数之一。这有一些简单的原因。1.它在可以捕获数据的非线性。虽然是一个近似的形式,但非线性的概念是模型精确的重要本质。2. sigmoid函数在整个过程中是可微的,因此可以与梯度下降和反向传播方法一起使用,以计算不同层的权重。3.假设一个因变量服从一个sigmoid函数的固有假设的高斯分布的自变量,这是一个一般分布,我们可以获得许多随机发生的事件,这是一个好的的一般分布开始。然而,sigmoid函数也面临着梯度消失的问题。从图中可以看出,一个sigmoid函数将其输入压缩到一个非常小的输出范围[0,1],并具有非常陡峭的渐变。因此,输入空间中仍然有很大的区域,即使是很大的变化也会在输出中产生很小的变化。这被称为梯度消失问题。这个问题随着层数的增加而增加,从而使神经网络的学习停留在一定的水平上。Tanh函数Tanh(z)函数是sigmoid函数的缩放版本,它的输出范围变成了[-1,1],而不是[0,1].

理解神经网络:从神经元到RNN、CNN、深度学习


在某些地方使用Tanh函数代替sigmoid函数的原因,通常是因为当数据分布在0周围时,其导数值更高。一个更高的梯度对于更好的学习速率更有帮助。下图展示了两个函数Tanh和sigmoid的梯度值图像。对于Tanh函数,当输入在[-1,1]之间时,得到导数值在[0.42,1]之间。

理解神经网络:从神经元到RNN、CNN、深度学习


另一方面,对于sigmoid函数,当输入在[-1,1]之间时,得到导数值在[0.20,0.25]之间。

理解神经网络:从神经元到RNN、CNN、深度学习


正如我们从上图看到的,Tanh函数比Sigmoid函数具有更大范围的导数,因此具有一个更好的学习速率。然而在Tanh函数中,依然会出现梯度消失的问题。ReLU函数在深度学习模型中,修正线性单元(ReLU)是最常用的激活函数。当函数输入负数时,函数输出0,对于任意正数x,函数输出本身。因此它可以写成f(x)=max(0,x)其图像看起来如下:

(责任编辑:波少)

广告位API接口通信错误,查看德得广告获取帮助