神经网络的理解

什么是神经网络

本篇博文仅对深度学习中的几个简单的名字做一个朴素的解释和理解

生物神经网络的工作模式

神经网络的发现可以说是将人工智能又拔高了一个度,现今很多了不起的成果都是在此之上完成的,那它是如何被发现的呢?既然 是“神经”,自然可以联想到人体里面的的神经,及生物神经。

人体中的信息传导都是通过神经元来完成的,所以每个神经元都和其他多个神经元进行连接,信号就这样通过一个神经元接着一个神经元的往下传递,那是不是所有的信号都能被一直传递下去呢,显然不是,不然这样神经元就太敏感了,你可以想象,如果任何信息都能激活神经元进行往下的信息传到,那你随时都会很兴奋。无时无刻的兴奋,所以每个神经元都会有一个阈值,超过阈值了,才会把信息往下传递,这也就是我们现在所说的“激活”。下面做一个小总结:
在这里插入图片描述

  1. 单个神经元的输入为连接它的多个神经元的输入某种加和
  2. 神经元要被激活,输入值必须超过其自身设定的阈值

接下来用数学的方式对神经结构做一个简单的量化

假设一个神经元输入连接着三个神经元,数学描述如下
ω 1 x 1 + ω 2 x 2 + ω 2 x 2 < d \omega _{1} x_{1} +\omega _{2} x_{2} +\omega _{2} x_{2} < d ω1x1+ω2x2+ω2x2<d无信号输出
ω 1 x 1 + ω 2 x 2 + ω 2 x 2 > d \omega _{1} x_{1} +\omega _{2} x_{2} +\omega _{2} x_{2} > d ω1x1+ω2x2+ω2x2>d有信号输出

x 1 , x 2 , x 3 x_{1},x_{2},x_{3} x1x2x3表示三个输入的神经元, ω 1 , ω 2 , ω 3 \omega _{1},\omega _{2},\omega _{3} ω1ω2ω3表示三个神经元的权重,d则表示神经元的阈值。只有最终的输入超过这个神经元的阈值,才会有信号输出,至于输出什么信号?在我们人体内的神经元中,根据科学家的研究,其实输出的信号就是0和1,有信号时输出1,无信号时就是0。

再对权重做一个简要说明,至于为什么需要权重,这是因为每个神经元起到的决策重要性不同,所以权重不同,就好比,老板下面有三个员工,有一个和老板亲近一些,自然老板听取它的意见的几率就大一些,也就是权重就大一些。

在这里插入图片描述

那权重该怎么解释呢?之前我们说权重是为信号的传输设置的一个“门槛”,让人不至于什么信号都会往下传,这样人会无休止的兴奋,所以要有选择的往下传,重要的才传递,这才出现了阈值。继续拿老板和员工做举例,员工向老板提意见,虽然员工有的和老板很亲近,意见也就容易被采纳,但是老板会考虑到一个问题,不是员工忠不忠诚的问题,而是员工得到信息的途径的真实性问题,如果这个消息本身就不靠谱,那员工也可能会被蒙蔽,所以自然需要一个阈值来过滤到一些干扰,数学上被叫做“噪声”。

那接下来,对数学表达式做一个整理和移项
y = u ( ω 1 x 1 + ω 2 x 2 + ω 2 x 2 − d ) y=u(\omega _{1} x_{1} +\omega _{2} x_{2} +\omega _{2} x_{2} - d) y=u(ω1x1+ω2x2+ω2x2d)

这里后面后一个负号,表达中我们一般想尽量用正号来表示,所以再进行整理d=-d,那么最终
y = u ( ω 1 x 1 + ω 2 x 2 + ω 2 x 2 + d ) y=u(\omega _{1} x_{1} +\omega _{2} x_{2} +\omega _{2} x_{2} + d) y=u(ω1x1+ω2x2+ω2x2+d)

这里的函数u(x)是该如何解释呢?因为神经元最终的输出只能是0或者1,但是 ω 1 x 1 + ω 2 x 2 + ω 2 x 2 − d \omega _{1} x_{1} +\omega _{2} x_{2} +\omega _{2} x_{2} - d ω1x1+ω2x2+ω2x2d可以是任何数,所以需要进行转换,如下图所示,这里其实就是一个单位阶跃函数,当 ω 1 x 1 + ω 2 x 2 + ω 2 x 2 \omega _{1} x_{1} +\omega _{2} x_{2} +\omega _{2} x_{2} ω1x1+ω2x2+ω2x2大于d时,输出1,小于d时,输出0,这样就达到了我们的目的。同时也引出了另一个重要的概念:激活函数,这里的u(x)就是激活函数.至此神经网络的表达雏形已经出现了。

在这里插入图片描述

人工神经网络的工作模式

依据生物神经网络,可以画出人工神经元了

在这里插入图片描述

深度学习中的神经网络,是通过模仿生物神经网络的来的,至于和其有什么不同,有很多,但是我们只需要知道其中的几个点。首先不同的地方是阈值,生物神经网络中阈值只能是正数,但是人工神经网络中阈值可以是正数负数,至于为什么,因为神经网络是一个学习的过程,个中的参数是通过不断的迭代学习得到,所以不一定是正数。其次不同的地方是激活函数,生物神经网络中,使用了单位阶跃函数,是因为生物神经元输出只有简单的0和1。到了我们人工神经网络,使用最多的是sigmoid,relu,tanh等,至于为什么使用这些函数呢?是因为神经网络是不断学习使误差降低到最小的过程,这个过程中就会有一个最重要的误差反向传导的过程,这就要求函数尽量可导,而单位阶跃函数不是处处可导的。另外你也可以认为,我们的人工神经元中,不是简单的输出0和1,它是一个学习的过程,就像卷积神经网络中,它需要输出的是一些特征,所以输出可能性更多。那至于到底选择sigmoid,relu,还是tanh?这又和线性模型有关系,可以去看看广义线性模型的知识,通过对噪声,或者说是输出误差的一个分布假设,来找到一个合适的函数来作为我们的一个最合适的后验概率模型,也就是这里的激活函数。

至此我想讲的也基本讲完了,但是也只是讲了神经元的工作方式,那神经网络是该怎样呢,其实神经网络必然就是很多的神经元连接而成,在人工,神经网络中,具体结构如下,其中包含了输入层,隐藏层,输出层。不做详细解释。

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_41885239/article/details/115299596