【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识 原创

发布于 2021-7-6 12:05
浏览
5收藏

        大家好!失踪3个月后,我终于又双叒叕可以回到鸿蒙社区闲庭漫步了,一种回家的感觉油然而生(此处应该响起萨克斯独奏版的《回家》)。有同学可能会问:“你消失到哪里去了?”嗯,为了养家糊口必须继续现在的工作呀!奋斗人的996大家都懂的,只希望不久的将来可以专职做鸿蒙方面的工作吧。。。

 

不过,办法总比困难多,为了能在兴趣和工作之间找到契合点,我一直琢磨着如何在鸿蒙上玩计算机视觉和人工智能相关的东西。通过一段时间的摸索,还真让我捣鼓出了一些案例,比如:这次要给大家带来的直播《HarmonyOS深度学习核心技术精要》中的案例。。。

 

废话一会再说,先上图为快:

【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识-开源基础软件社区

虽然只是一个简单的0—9手写体识别案例,但却包含了完整计算机视觉项目的所有细节:数据准备,神经网络设计,训练,部署,等;涉及的平台包含了个人电脑(模型训练)和鸿蒙手机(部署应用),基本上是AI项目中“我喜欢的样子你都有”。。。

 

难道看到这里你还不心动吗?还等什么,点击下面的链接报名吧!

 

https://harmonyos.51cto.com/activity/77

 

“可是,我不懂神经网络,不懂深度学习,能听懂吗?”

 

我知道很多同学没有人工智能基础!但是,只要你对人工智能感兴趣,只要你对鸿蒙有信心,只要你能看完这篇文章,那么听懂这次直播基本没问题!这,其实也是我写这篇文章的初衷,帮助大家理解人工智能中的一些核心概念,以及对人工智能应用开发的流程有一个初步的印象。

 

人工智能,机器学习和深度学习之间的关系:

【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识-开源基础软件社区

上图已经清晰的给我们说明了这三个常见概念之间的关系。人工智能领域的研究内容包含了机器学习,而机器学习包含了深度学习。接下来我们重点介绍什么是深度学习。首先,深度学习是一种机器学习方法,它与机器学习没有任何冲突,其核心研究内容是人工神经网络,并且是深度的那种神经网络。其次,深度学习在本质上并无过多复杂的数学理论,只是根据生物神经系统的运作机制而建立的一种计算机模型,希望通过模拟生物神经系统而获得智能。

 

生物神经系统由超多的神经元构成(一种生物细胞),并且各个神经元之间并不独立,而是相互接触交换信息。根据早期研究,神经元功能上相当于一个简单的累加器,即:将所有接收到的信息(电信号)进行加权求和,若总和超过某个阈值,则神经元会对外发送信息(向其它神经元发送电信号)。

【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识-开源基础软件社区

因此,可进行如下的建模:

【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识-开源基础软件社区

模型中x1, x2, ... 是其它神经元发送过来的信息,加权求和后的结果再经过 f() 计算输出。其中,f()叫做激活函数,用于模拟生物神经元对信息的抑制(大于某个阈值才有输出,否则为0)。

 

很显然,人类智慧的产生并不是一个神经元的功劳,而是成千上万的神经元相互协作处理信息和传递信息的结果,即:神经元组成网络共同处理信息。因此,人工智能模型也不可能只由一个神经元模型构成,而必须是多个神经元模型相互连接的整体(人工神经网络)。

 

那么,多个神经元模型如何连接呢?(换个高大上的问法就是:如何构建人工神经网络?)

 

这其实就是现在深度学习领域研究的问题!一般来说,不同数量的神经元以不同方式连接在一起将获得处理不同问题的神经网络模型。而当下,通过学术界和工业界的共同努力,真的已经找到了非常多的解决特定问题的神经网络模型,如:Yolo, U-Net,ResNet,等。利用这些神经网络模型即可解决目标检测,场景分类,语音识别等诸多之前无法很好解决的问题。从这个角度,作为一名嵌入式开发工程师或者移动应用开发工程师,其实并不需要太多人工智能领域的专业知识就可以使用已找到的模型解决实际问题了。

 

接下来介绍多层全连接神经网络模型,这也就是直播案例中使用的模型。大家掌握了这个模型,那么再自己扩展扩展,使用其它已有的模型解决问题就基本OK了。

 

直接上图:

【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识-开源基础软件社区

从图中可以看出,神经元按层次排列,前一层每个神经元的输出作为后一层每个神经元的输入,前后层神经元之间肯定存在输入输出关系,这也正是“全连接”的意义。

 

看到这,相信不少同学会问:“既然是加权求和,那么权值如何确定呢?”

 

嗯!这是个好问题,也是深度学习中涉及较多数学知识的地方。因此,我们直接越过细节,说答案。神经网络中权值的确定(计算)依赖优化算法和训练数据,其中优化算法有严密的数学推导,所以放心使用即可;而训练数据则需要根据场景精心制作(训练数据:数据已知且内容清晰)。有了它们,剩下的就交给时间吧,花几天训练后就出结果了,最终得到的是包含有效权值的神经网络模型。最后,将训练好的模型部署到目标设备,再利用这个模型对未知数据进行预测(推测未知数据的内容)。

 

有了这些预备知识,我们再来看看直播中涉及的案例:手写体数字识别。

【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识-开源基础软件社区

1.       准备数据:下载MNIST数据集,并将其转换为图片格式

2.       构建模型:建立一个多层全连接神经网络

3.       训练模型:利用准备好的数据计算权值

4.       部署模型:将模型文件部署到目标设备后加载使用

 

最后,在目标设备构建用户输入区域,将用户输入(手写数字)格式化之后通过神经网络预测结果。

 

 

我们再回到深度学习的概念。

 

问:“深度学习是什么?”

答:“基于大规模深度神经网络的机器学习。”

问:“多少层算深?什么样子算大?”

答:“嗯。。。5层以上算深吧!至于大。。。”

 

好了!该结束了!!如果大家还有更多的问题,咱们直播间讨论,不见不撒。

 

别忘了报名哦!

https://harmonyos.51cto.com/activity/77

 

 

【7月8日公开课】《HarmonyOS深度学习核心技术精要》预备知识-开源基础软件社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2021-7-7 13:19:39修改
16
收藏 5
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐