【读一本书】《昇腾AI处理器架构与编程》--神经网络基本知识学习(1)

今天我们要讲的主题是 —— 神经网络基础知识

1 聊聊为啥写这个系列

我最开始玩公众号的前因,其实在第一篇博客里就提过了,主要是为了督促自己学习并记录、分享自己的想法。因此断断续续地写了20+python相关的博客,也收获了一些陌生同学的善意。虽然也很羡慕大神们的上千、上万粉丝(过500就能赚钱了呢),但是这都不重要,正如那句诗:

白茶清欢无别事,我在等风也等你。

知识和能力的吸取和成长,要么实战演练,要么阅书思考。由于自己不是纯正的python码农,因此想到写写读书笔记。又机缘巧合,被奖励了一本《昇腾AI处理器架构与编程:深入理解CANN技术原理及应用》,所以就诞生了这个系列。通过阅读学习,记录自己的理解。(希望自己能坚持记录下去

当然,python成长之路系列,我也会继续写下去。

《昇腾AI处理器架构与编程》

为了后续引入不必要的麻烦,先声明下后续昇腾AI处理器架构的博客无论是贴图或者部分内容都来源于此书,主要是写公式或者画图什么的太麻烦。

另外关于此书有兴趣的同学,可以去京东购买。

3 人工智能/机器学习概貌

当前很多行业都会不自觉地带上人工智能。一旦带上这个ID,立刻就会让人产品觉得高大上,从而帮助产品高价销售。但是我相信,其实多数人并不了解自己的产品到底有没有使用人工智能算法。

此书关于人工智能和深度学习也主要讲了些历史发展,我并不关心,反正又不会有人出题考我,“谁是计算机之父”、“谁首次提出了人工神经网络”这类问题。好啦,直接跳过10页。

神经网络理论:了解为啥叫神经网络

先发个M-P神经网络(初代神经网络模型)的核心公式 y = f(w*x + b):

然后生物学上的神经元图大致如下:

那神经网络这个抽象的数据模型与生物学的神经元有什么相似之外呢?神经网络中有多个输入x对应树突,而对每个输入都会进入相应的权重加权求和并输出,这就对应每个树突将收到的神经冲动通过轴突又输出给了下一个突触。总结来讲 ,树突是x,轴突为f()中的处理,突触即为y。

由于神经元有兴奋和不兴奋两种状态,因此M-P模型中对应的f()函数是阶跃函数,效果如下:

神经网络理论:感知机的进化

(1)感知机 

基于M-P神经元模型产生了第一个感知机 。(名字好奇怪,不过看到后面的感受野,或许当前的感知机还是能理解的)

这个感知机是个二分类器件,只能做线性判断。这个要怎么理解呢?相当于只能识别这是男人或者女人,但是要识别男人中的帅哥,这就搞不定了。如果一次识别不了,那就再来一次嘛。这样就引出了多层感知机的概念。

(2)多层感知机

多层感知机 又叫 全连接神经网络(后面这个概念会多次用到),英文是FCNN。

上图就是FCNN。可以看到比之前的感知机多了个隐藏层,对于 y = f(w*x+b)来说,w和b就变成了向量了,维数即为隐藏层层数。这样看上去,好像就可以解决所有分类问题了,有多种类别就用多层就好了嘛。

可是 问题来了,当仅有一层隐藏层 时,即“输入层-隐藏层-输出层”,如果输入层有700个输入 ,隐藏层有400个神经元,那么最后整个多层感知机分别需要近30万次的乘法、加法。而且,对图像识别来说,每个 像素与周边像素有紧密联系,距离远的像素联系就少,因此如果用多层感知机来处理图像,所有像素都被相同对待,太浪费性能了。

因此,为了提升性能,就有了最经典的卷积神经网络了!这个内容我们下次再讲。

作者:华为云合作开发者 鹏哥贼厉害

 

 

posted @ 2019-11-07 11:47  华为云官方博客  阅读(973)  评论(0编辑  收藏  举报