首页 » 人工智能 »

Sigmoid神经元

2018年4月24日 / 25次阅读
人工神经网络

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

特色图片

最初的神经元是感知机(Perceptron),后来演化成为Sigmoid神经元(Sigmoid neuron)。

引入Sigmoid的神经元,从我看的资料来分析,似乎是因为感知机网络存在的一种问题。感知机网络的神经元,其输出非0即1,有的时候一点点输入的变量,可能会引起输出的彻底改变。这样就很难通过逐渐的调整权重和偏移来使神经网络逐渐地靠近我们想要的答案。

In fact, a small change in the weights or bias of any single perceptron in the network can sometimes cause the output of that perceptron to completely flip, say from 0 to 1. That flip may then cause the behaviour of the rest of the network to completely change in some very complicated way. So while your "9" might now be classified correctly, the behaviour of the network on all the other images is likely to have completely changed in some hard-to-control way. That makes it difficult to see how to gradually modify the weights and biases so that the network gets closer to the desired behaviour.

We can overcome this problem by introducing a new type of artificial neuron called a sigmoid neuron. Sigmoid neurons are similar to perceptrons, but modified so that small changes in their weights and bias cause only a small change in their output. That's the crucial fact which will allow a network of sigmoid neurons to learn.

Sigmoid神经元具备这种小小的权重和偏移的改变,只会导致输出的一点小小改变的数学特性。

 

借用感知机的那个图片,神经元的模型都是一样的:

神经元的模型

神经元的模型

在感知机概念里,x1,x2,x3只能是0或1,而在Sigmoid神经元概念里,它们的取值可以是从0到1的任意数。同样,也有权重和偏移,不过计算神经元是否fire的方式,不再是简单的两个向量内积加上偏移与0比较了,而是这个叫做Sigmoid函数(sigmoid function):\(\sigma(w \cdot x+b)\)

$$\sigma(w \cdot x+b) \equiv \frac{1}{1+e^{-(w \cdot x+b)}}$$

简化一下这个数学公式,让\(z=w \cdot x+b\),得:

$$\sigma(z) \equiv \frac{1}{1+e^{-z}}$$

下图是Sigmoid函数的图形表示:

Sigmoid函数的图形

Sigmoid函数的图形

在感知机中,z是与0在比较,输出非0即1,离散的,英文说是step function,如下图:

感知机的step function

感知机的step function

在Sigmoid神经元中,输出是平滑的连续的,这更符合真实的情况吧。

 

使用Sigmoid神经元,可以实现输入的一点点变化,输出也一点点变化,而且这两者是线性关系。下面是有点厉害的数学:

$$\begin{eqnarray}
\Delta \mbox{output} \approx \sum_j \frac{\partial \, \mbox{output}}{\partial w_j}
\Delta w_j + \frac{\partial \, \mbox{output}}{\partial b} \Delta b,
\end{eqnarray}$$

如果把w和b看作变量的话,上面这个式子就是对所有的w和b进行(一个Sigmoid神经元的每个输入都对应一个w,但只有一个b,神经元或神经网络的输入\(x_j\),则是具体的问题空间的数据)全微分

上面的式子,并不是使用的微分的\(d\),而是使用\(\Delta\)符号,用约等于,更能够说明微分的含义。由于权重w是多个,所以上式中有个和式。

While the expression above looks complicated, with all the partial derivatives, it's actually saying something very simple (and which is very good news): \(\Delta output\) is a linear function of the changes \(\Delta w_j\) and \(\Delta b\) in the weights and bias. This linearity makes it easy to choose small changes in the weights and biases to achieve any desired small change in the output. So while sigmoid neurons have much of the same qualitative behaviour as perceptrons, they make it much easier to figure out how changing the weights and biases will change the output.

\(\Delta output\)和\(\Delta w_j\) and \(\Delta b\)是线性关系(把偏导数部分理解为一个系数),因此一点点权重w和偏移b的改变,对结果的改变也仅仅只是一点点。

 

激活函数(activation function)

Sigmoid神经元使用的Sigmoid函数,就是一个激活函数。当然还有别的激活函数。

The main thing that changes when we use a different activation function is that the particular values for the partial derivatives in Equation above change. It turns out that when we compute those partial derivatives later, using \(\sigma\) will simplify the algebra, simply because exponentials have lovely properties when differentiated. In any case, \(\sigma\) is commonly-used in work on neural nets.

激活函数常用的就是Sigmoid函数,因为使用别的函数也仅仅只是上面式子的偏导数的不同,而Sigmoid函数在计算偏导数的时候,反而有计算方面的优势。

 

Sigmoid神经元与感知机的输出不同的地方在于,感知机只输出0或1,而Sigmoid神经元的输出是\((0,1)\)区间中的任意实数。在解释输出方面,我们只需要简单的定义一个对应关系即可,比如大于0.5就是什么,小于0.5就是另外的什么等等。。。

 

本文链接:http://www.maixj.net/ai/sigmoid-17724
云上小悟 麦新杰(QQ:1093023102)

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

栏目

支付宝红包.每天领一次.

支付宝扫码领红包

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top