背景
第一期覆盖了此系列所有的数学部分,第二期覆盖了基础概念。本期将着手介绍一个最基础的神经网络及其关键的组成部分。
本期的主体是Perceptron,其大概是1950年代发明的,历史部分就不过多介绍。Perceptron是一个简单的神经网络结构,后面的CNN、LSTM、RNN等等都是基于Perceptron上面衍生复杂化得来的。所以,了解与明白Perceptron尤其重要。
我将一步一步,逐步地展示Perceptron的计算和运行的结果。看完此文章大家会了解:
Perceptron的基本结构和计算运用过程
神经网络与Perceptron
另外,需要申明下,本篇文章所用的图片或者Gif来自于Torward Data Science。
Perceptron
Perceptron 其实就是一个 单层的神经网络,一般我们提到的多层神经网络 才是神经网络。
一般的神经网络,大家肯定会有所印象,或者或多或少看过一些。 如下图,就是一个神经网络识别图片的过程,猫or狗。
Perceptron的整体框架如下图,从下图大家可以对Perceptron有一个整体的概念。其中带方向的箭头是代表着数据流向。Perceptron包含以下几个步骤,将对其进行逐步讲解:
输入层or输入值
参数
汇总
激励函数
Perceptron整体框架
输入值:
不同的问题,输入值当然不同。假设,我们面对的是一个只有五个像素点的图片,那么输入值就是五个X1~5. 可能我们有50000张这种图片,组成了一个50000*5的矩阵。最初,我在理解输入层的时候,就像且面包,一片一片的输入。
参数
这里的参数是指的是Weights 和 Bias,假设输入值只有一个X
那么其结果应该是: W * X + B
通过下图,大家可能会有一个更直观的印象。
另外,关于参数的重要性和意义,需要再解释下。也是我最初学习时候的一个疑问,神经网络学的是什么?
我们设置一个场景来试图回答这个问题,假设我们的输入是一个X矩阵,任务是判断该图片是猫?or 不是猫,输出值为 0 or 1.神经网络学习最直观的结果就是判断的准确率提高,即输出的准确率提高。
但是,我们的输入值并未改变,即X未改变。输出的结果变得不同或者说更准确,那么变更的就是参数了。
所以,对于该问题的结论是,神经网络学习的结果是其参数的变化。在这个例子中就是Weights 和 Bias。
汇总
我们已经有了输入值和参数,那么下一步就是汇总。这个步骤很简单也很直观,就不再解释了。
激励函数
在上述步骤,我们得到的是:
W*X + B
而激励函数就是在上述结果外再加了一个F(X)
最终的结果是y=F(W*X + B)
那么激励函数的作用是什么呢?
激励函数的作用非常大,也挺复杂的。后续会单独一篇来介绍。此处只介绍最基础部分。
线性to非线性
假设没有激励函数,那么Perceptron就是一个线性公式:W * X + B
如果是特别复杂的神经网络,很多层的那种。公式就是:
W1*(W2*X)+b2)+b1 = W1*W2 * X + W1*b2 + b1 = W*X + B
大家可以看出来,如果没有激励函数,再复杂的神经网络本质也是一个线性方程,其中W1*b2 和b1 都是常数。也就是说,再复杂的神经网络都是W*X + B。这就很尴尬了。
如果是线性方程的结果就是,别说承载复杂的信息了,连二元一次方程都搞不定。
所以,激励函数是必要的,但是选择什么激励函数呢?有哪些常用的激励函数呢? 将在激励函数专题中讲解
控制输出结果
激励函数另一个重要的作用就是控制输出的结果。比如,我们需要判断一张图片是猫or not。 那么我们期望的输出结果是 0 or 1.
如下图,unit step 激励函数,当X>0, 输出值为1;当X
总结下
其实Perceptron的结构和神经网络的单一神经元的结构类似。
上面几个步骤很简单。也就是输入一个矩阵X,然后X与参数 矩阵相乘,然后进入激励函数计算。但是它的意义非常重大。以下是个人观点
首先,它这种输入层的设计适用非常广,可以使用图片Matrix,语音Matrix。 还能将上一个Perceptron的结果,输入到下一个Perceptron;
将输入值非线性化,这一点在上一部分已经介绍了,就不再详细解释;
扩展性,一个Perceptron就相当于一个神经元。它可以无限扩展,比如一个Perceptron连接到下一个Perceptron;
大家可以想象下,如果N个这种神经元连接在一起,将会形成一个多么复杂的神经网络。当前很厉害的神经网络,就是以不同的方式将这种神经元组合在一起。所以理解了Perceptron,就相当于理解了神经网络的50%
下期预告
虽然只是第三期,但是这期肯定是本系列最重要的一期了。虽然Perceptron简单,但是其也包含了神经网络的重要元素,输入值、神经元参数、激励函数等等。 如果大家有问题,可以给我留言。
下一期,基于Perceptron建立一个简单的神经网络 和初步设计神经网络训练部分。
领取专属 10元无门槛券
私享最新 技术干货