神经网络激活函数=生物转换器?

逻辑回归到神经网络中,小夕让神经网络冒了个泡。在《一般化机器学习神经网络中,将神经网络这一火热的模型强制按回机器学习一般框架里。在《BP算法的本质》里,详细的阐述了BP算法的本质与目标。

好啦~这一篇回到简单、纯粹的状态,我们来一起戳一戳可爱的神经细胞。

学生物的人眼里的神经细胞:

学数学与机器学习的人眼里的神经细胞:

看,其实神经元就是一个小小的生命,它会用树突接收外面世界的多维信息,然后在它小小的脑袋里计算一下,来对当前外面的世界作出一个反应,这个反应通过轴突传递出去。

看,是不是也很像一个小小的机器学习模型呢?一个将多维的输入X转换成输出信号y的小模型。

那么,假如我们发现了好几堆(层)可爱的神经元,并且惊讶的发现它们可以交互信息,一起完成任务,但是我们并不知道它们之间怎么连接的。那怎么办呢?

我们当然可以给它们两两之间分配一条线呀。这个线就代表两个神经元之间的连接强度,如果两个神经元之间没有连接,这根线的值就是0,连接的越紧密,值就越大。

看。

这么多可爱的神经元一起工作的时候,在数学家眼里,其实并不复杂:

前一层的神经元的轴突(输出信号)与下一层的神经元的树突(输入)的信号传递过程,其实就是一个线性映射的过程。

补充:

想一想,《线性代数一》中,小夕是不是已经讲啦,对待矩阵,一个非常重要的视角就是“映射”。矩阵,可以表示一个映射函数,准确的说是一个线性映射函数。

看,就像上图中虽然每个人都知道,b=a*W(矩阵乘法),但是有没有人想过“线性映射”这一层含义呢?其实呀,下一层的树突b收到的信号,就是上一层的轴突a经过W(这个大众眼里的矩阵)线性映射而成的。

前一层神经元们的信号经过线性映射,传递到下一层的神经元树突那里后,当然下一步就是经过神经元的细胞体啦。

而生物学上的神经元细胞体是干什么的呢?当然就是将树突的信号转换成轴突的信号啦。所以,它是一个生物信号的转换器!

而我们知道,多个线性映射叠加之后依然是线性映射。所以哪怕你叠加再多的线性映射,整体的函数依然是个线性函数,这也太鸡肋啦。所以细胞体决不能同流合污,它要完成复杂而神秘的信号转换,也就是数学上的非线性映射

而非线性映射的灵活度就一下子无限大了,有无数的非线性函数可以完成这个非线性映射的过程:

比如,Sigmoid函数:

 tanh函数:

Hard tanh函数:

Soft sign函数:


ReLU函数:

Leaky ReLU函数:

其中0<k<1。

没错,这些单调上升的非线性函数都可以当做神经网络激活函数,在不同的任务中,总有一个在该任务中表现最好的激活函数

所以,将视角拉的更远一些:

那么有没有一个通用的最优激活函数呢?

只能等生物学家把神经元的细胞体研究透彻着再说啦。

所以,激活函数的选择,准确的说是构造,目前就是一个黑匣子。所以很难解释清楚为什么ReLU函数在图像相关的任务中往往表现的比广为人知的Sigmoid、tanh更好,恐怕只有你体内的神经元自己知道啦~快想办法让它告诉你呀~ 

同样的道理,为什么非要选择单调上升的函数呢?就不能用y=sin(x)这种非单调的吗?就不能用单调下降的吗?

答:首先是激活函数的生物学依据,激活函数模仿的也是神经细胞的实验特性——当树突的输入足够强时,就会让细胞体兴奋,从而在轴突输出一个兴奋信号。而当细胞体对树突的输入不感兴趣或者它认为不够强时,就处于抑制态,在轴突输出的信号很弱,或者说相当于输出电路中的低电平。除此之外,就是依靠大量面向任务的选择经验+少量感性推理+少量理性推理。也就是说,这个问题并没有被严谨的否决,所以不要轻易说不可以哦。

而具体的什么函数在什么领域,什么任务中表现的好,大家就自己去积累经验吧。也有很多博客和论文有讲这些经验性的trick。比如在斯坦福大学的CS224D课程(自然语言处理深度学习)中,就有较为详细的讲解。

下面这个是CS224D的中文笔记(不是我记的),这篇文章里的激活函数的公式和仿真图也是从这里直接抠出来的。作者笔记里还有这些激活函数的导函数等,建议没时间刷视频的可以看这个笔记:

http://blog.csdn.net/han_xiaoyang/article/details/51711134

还有一篇文章也比较有营养:

http://www.cnblogs.com/pinard/p/6437495.html

还有一篇论文,数学差的就要慎重些了:

Mhaskar H N, Micchelli C A. How to choose an activationfunction[J]. Advances in Neural Information Processing Systems, 1994: 319-319.

夕小瑶的科技屋
夕小瑶的科技屋

同步自微信订阅号“夕小瑶的卖萌屋”和知乎专栏“夕小瑶的科技屋”(作者知乎ID:夕小瑶)

理论生物转换器神经网络激活函数
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

逻辑回归技术

逻辑回归(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

推荐文章
暂无评论
暂无评论~