Sigmoid Function, 公式如下:
画成x-y平面座标图,如下:
问题是, Neural Network的Node为何要用Sigmoid Function, 而不用Step Function?我猜原因是, Neural Network本来是用来研究人类大脑神经元的运作, 发现神经元的Input和Output, 用x-y表示, 就是像这张图。 而数学家想要找一个简单的公式, 代表这张图。 如何找?过成如下:
先把 y = 0, 1/2, 1 放到表格的第一列,从这一列开始生出公式。经过步骤1和2之后,产生表格的第3列,公式就快浮出水面了。于是这个问题,就简化为,找∞, 1, 0的公式,这就是经由步骤3后,产生表格的第4列。
印象中,很像之前学过的y = e^x,不过它的值倒过来,是0, 1, ∞。这就是经由步骤4,产生的第5列。而符合第5列的公式,就是e^x,这就是步骤5的结果。为何选e?不选其它的数字?这是因为e有些有趣的特性, 微分后还是自己。 Neural Network的Gradient Descent会用到微分,我会在另一篇说明。
接下来,我们就往表格的上方走。经由步骤6,产生e^(-x),因为它是左右对称的。最后是步骤7,将e^(-x)放进右下角那块存放∞, 1, 0值的区域。于是,Sigmoid Function就生出来了。
在“Make Your Own Neural Network”这本书提到,Step Function有Threshold,可是Sigmoid Function似乎没有考虑到Threshold?这是我的疑点,下次再去研究它。
-Count