移动深度学习 - (EPUB全文下载)
文件大小:0.14 mb。
文件格式:epub 格式。
书籍内容:
移动深度学习
第1章 初窥移动端深度学习技术的应用
第2章 以几何方式理解线性代数基础知识
第3章 什么是机器学习和卷积神经网络
第4章 移动端常见网络结构
第5章 ARM CPU组成
第6章 存储金字塔与ARM汇编
第7章 移动端CPU预测性能优化
第8章 移动端GPU编程及深度学习框架落地实践
第1章 初窥移动端深度学习技术的应用
本章以应用案例作为切入点,展示移动端深度学习示例代码编译后的效果。希望能让读者对于在移动端应用深度学习技术产生兴趣,而不是仅仅将其看作一连串的公式和高深莫测的概念。本章内容相对简单,主要包括引导读者部署环境、对代码简要说明,以及在移动端应用深度学习技术的现状简介。
1.1 本书示例代码简介
为了方便学习和讲解,本书以mobile-deep-learning项目(见“链接1”)作为示例,该项目于2017年开源,先后被用于百度内部的多个App。2018年之后,该项目被Paddle-Lite框架逐步取代,在本书第8章会介绍该框架的设计。由于mobile-deep-learning项目的代码结构简单,更适合初学者,所以本书会多次以该项目的代码作为例子进行讲解。这些代码主要是卷积神经网络的具体实现,也就是我们经常提及的CNN(Convolutional Neural Network)。如果尚未接触CNN的相关知识,请不要着急,关于神经网络和卷积的概念会在第3章详细介绍。
1.1.1 安装编译好的文件
本章演示所用的AI场景已经有编译好的Demo(示例)和源码,而且为iOS和Android两个系统都提供了Demo安装文件和源码,见“链接2”。
1.1.2 在Demo App中应用神经网络技术
在使用一些神经网络框架进行开发时,大多数情况下并不需要对深度学习的细枝末节都有所了解,就可以轻松开发出示例中的效果。先睹为快,如图1-1所示为iOS系统下的Demo App安装后的效果,该Demo App使用神经网络技术检测物体的大小和位置,并用长方形标出了物体的外框。
图1-1 Demo App效果图。该Demo App实现了用CPU和GPU两种模式运行神经网络
1.2 移动端主体检测和分类
在移动端应用深度学习技术能做哪些事呢?Android和iOS系统下的两个Demo主要解决了两类问题,对应在移动端平台上应用深度学习技术的两个常见方向。这两类问题分别解释如下。
·物体在哪、有多大
要在移动端App中描述物体在哪(位置)、有多大,其实用4个或者3个数值就可以。首先,必须有一个基础点的坐标,可以位于左上角或者其他顶点处。确立基础点坐标后,还需要4个数值来表示框选出来的物体的长宽和位置。如果展示区域是圆形的,就可以选择物体的中心坐标(确定位置)再加上半径r(确定大小),共3个数值即可。
在深度学习领域,上述确定物体大小及位置的过程叫主体检测(Object Detection)。目前来看,如果得到能够描述主体区域的数值,就可以在图片或者视频中找到物体,并在物体周围标出长方形的外框,这样就完成了主体检测。这个基本认识很重要,在后面章节中会重点分析如何得到所需的坐标数值和范围数值。
至此,我们明确了物体的位置和大小的数值是如何定义的。这一类问题属于主体检测问题范畴,是一个检测的过程,1.1.2节的Demo中就应用了主体检测技术。
·物体是什么
在神经网络运算中,从算法层面来看,主体检测过程和识别物体是什么(物体识别)的过程,在计算方式上是完全相同的,差别在于最终输出的数值。主体检测过程输出的是物体的位置及尺寸信息;而识别物体是什么(物体识别)的过程输出的是所识别的物体可能属于哪些种类,以及该物体属于每个种类的可能性(概率),如表1-1所示。
表1-1 物体识别过程得出的概率分布表
由表1-1可以看出,物体识别过程从本质上讲就是一个分类过程。也正因如此,在深度学习中将这个过程称为分类。
1.3 在线上产品中以“云+端计算”的方式应用深度学习技术
上面介绍了深度学习技术的两个基本应用场景——检测和分类。目前常见的神经网络大多是部署在云端服务器上,并通过网络请求来完成交互的。纯云端计算的方式简单可靠,但是在用户体验方面却存在诸多问题,比如网络请求的速度限制等。
接下来看一下在实际应用中,“云+端计算”这种方式的应用场景。本书后半部分会系统全面地介绍完全在移动端计算的解决方案。
图1-2展示了百度App的首页,可以点击搜索框右侧的相机图标(箭头处)进入图像搜索界面。
图1-2 百度App的图像搜索入口
进入图像搜索界面后,可以对着物体、人脸、文本等生活中的一切事物拍照,并发起搜索,如图1-3所示。
图1-4展示的是进入手机百度图像搜索界面后的UI效果。图片中的框体就应用了典型的主体检测技术。其中的白色光点不需要关注,它们应用的是计算机视觉技术,不属于神经网络算法范畴。
还有一类App会用到深度学习技术,比如帮助用户对照片进行分类的App,如图1-5所示。这类App要对大量图片进行分类,如果在服务器端远程处理后再返回移动端,那么性能和体验都会非常差,也会消耗大量的服务器资源,企业成本会骤增,因此建议将部分计算放在移动端本地处理。“拾相”这款App就使用了深度学习技术对图片进行本地快速分类,这样不但可以提升用户体验,而且不会占用大量服务器端GPU来维持App分类的稳定。
图1-3 拍照并发起搜索
图1-4 移动端自动识别物体区域
图1-5 使用移动端深度学习技术对图片分类
1.4 在移动端应用深度学习技术的业界案例
在互联网行业中,在移动端应用深度学习技术的案例越来越多。从深度学习技术的运行端来看,主要可以分为下面两种。
一种是完全运行在移动端,这种方式的优点显而易见,那就是体验好。在移动端高效运行神经网络,用户使用起来会感觉没有任何加载过程,非常流畅。前面的“拾相”和手机百度中的图像搜索都属于这一流派,还有其他一些比较好的应用,典型的如识别植物花卉的App“识花”,见1.4.1节中的例子。
另一种是在服务器端运行深 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 移动深度学习 - (EPUB全文下载)