我们回到上一期的那个内容,y=wx+b,这个式子是我们的模型,其中w是权重,是一个矩阵,b是偏置,也是一个矩阵,x是输入。我们需要的是找到一个合适的w和b,把输入x进行正确的分类。
1ab2de84e09848d4926356dc243542ba.jpeg
其实这里面有一个问题,就是很难找到这样一组w(为了方便起见,我们暂时忽略b这个选项),来满足所有x的分类。这样说可能会比较抽象,我举个例子吧。
比如我们做一个图像识别模型,需要把猫,狗,牛分开。但是猫也有黑色的猫,白色的猫,棕色的猫。那我们需要w不但需要分开猫,狗,牛,而且对于不同颜色的猫都需要进行分类,这样的话,对于w的要求真是太高了。计算机几乎找不到这样的w数值满足所有的条件。
计算机分层处理的概念
在解决上述问题的时候,人们想起了分层处理,当然,你也可以理解为分级处理。比如第一层,我只区分颜色,第二层我只区分体型等等,这样一级一级分下去,到最后一层,再进行归纳总结得出最终的结论,这样分层的方式会大大提高我们的处理效率与准确度,这就是人工智能分层处理的大体思路(神经网络最初的思想)。
fc3335be972c4cd0a60ed9182eb3ec5b.jpeg
当然,一个w只能完成一层的处理,如果有两层就必须要有两个w。所以f=wx就变成了f=w2*(w1*x),*是乘号,于是变成了这样。
b89a111633c949cfa3ea7f341f60355c.jpeg
如果只有这么简单的相乘,没有对x做任何处理,特征不明显,效率比较低。人们这个时候就想到一些特征函数来表征x。比如f=w2*(max(0,w1*x)),就是使用max()函数来把x中的特性都给取出来,比如只把x中的白色取出来。
这样通过层级处理与特征函数处理数据效率会非常高而且准确度会很高。
有了思路还不行,我们还需要把这个思路转换为图形,这样理解起来就更容易了,也就是下面这样子(假设中间只有两层,前面是输入,中间两层是处理层,最后是输出)。
3c79274c44d744d5a20aca69a0f65904.jpeg
第一层是专门处理颜色的,第二层专门处理形状。当我们把图像转换为矩阵x后,第一层我们先把颜色分开来,也就是说,w1只管颜色就够了,其他的都不需要考虑.
神经网络的概念
介绍完上面的,我们再说一下人的神经网络是怎么工作的(我也是根据高中生物回忆的,应该是对的)。下面就是神经细胞的构成,不过我们要在这里先把神经细胞换个名字,换成神经元这个名字。
34ccd95c2e8540979b5d8f0444c27049.jpeg
当神经元的树突接收到外部刺激后,神经元可以生成电,然后沿着神经元轴突传递,然后由突触传到下一个细胞,最后传到我们的大脑。
同样的,我们把这个模型,用到我们上面的例子中。一个神经元就是前一层(这个地方表达不准确,但是容易理解,我们后面再聊详细的),神经元的输入就是x,神经元产生的电信号类似于上面的特征函数,只不过神经网络里面叫激活函数。所以神经网络的模型就是这个样子。输入x,通过激活函数后,传递到下一层。
437e1336de004554be3ab62b61b2bbe1.jpeg
如果把每一个神经元放大,就是这个样子
f7837f607456434e852f2c2bcff031d5.jpeg
当然,大部分情况下,人工智能神经网络里面的不止有一个输入,所以大部分的人工智能神经网络是这个样子
3444f7e252d040ecad6626f36cc67592.jpeg
先将不同的输入加权,然后用激活函数激活,将结果传递到下一层。
计算机的神经网络原理
明白这个之后,我们就再把神经网络的图拿出来,看看是怎么传递的。首先将图片的每个像素转化为数据,再将这些数据输入到第一层中(假设第一层只处理颜色),第一层中的神经元会将输入数据通过激活函数进行激活,如果第一个神经元中对应的w1参数对红色特别敏感,在神经元激活后,对应的数值就会变化非常大,但是其他神经元对应的红色不敏感,所以通过第一层就把颜色判断出来了,然后第二层再用相同的原理判断形状,最后综合每个神经元的输出判断到底是猫,狗还是牛。
186b4261655c4222aa8feabacd739efc.jpeg
如果把上面这幅图再画的简单一点,就是我们最常见的神经网络结构了
cbf8df13c806481791404696865c1bd0.jpeg
这就是最基本的神经网络处理数据的思路,我相信你看完这两篇文章后,应该对人工智能有所了解了,但是现在主流的神经网络是卷积神经网络和循环神经网络。我们后面两期再和大家聊这两个问题。这一期就到这里。

来源:半导体产业园