1,TinyML 是机器学习和嵌入式 IoT 设备的交叉领域,是一门新兴的工程学科,具有革新许多行业的潜力。

TinyML 的主要受益者,是边缘计算和节能计算领域。TinyML 源自物联网 IoT 的概念。物联网的传统做法,是将数据从本地设备发送到云端处理。一些人对这一方式在隐私、延迟、存储和能源效率等方面存在疑虑。

  • 能源效率。无论通过有线还是无线方式,数据传输都非常耗能,比使用乘积累加运算单元(multiply-accumulate units,MAU)的本机计算高出约一个数量级。最节能的做法,是研发具备本地数据处理能力的物联网系统。相对于“以计算为中心”的云模型,“以数据为中心”的计算思想已得到了人工智能先驱者的一些先期探讨,并已在当前得到了应用。
  • 隐私。数据传输中存在侵犯隐私的隐患。数据可能被恶意行为者拦截,并且存储在云等单个位置中时,数据固有的安全性也会降低。通过将数据大部保留在设备上,可最大程度地减少通信需求,进而提高安全性和隐私性。
  • 存储。许多物联网设备所获取的大部分数据是毫无用处的。想象一下,一台安防摄像机每天 24 小时不间断地记录着建筑物的入口情况。在一天的大部分时间中,该摄像机并没有发挥任何作用,因为并没有什么异常情况发生。采用仅在必要时激活的更智能的系统,可降低对存储容量的需求,进而降低需传输到云端的数据量。
  • 延迟。标准的物联网设备,例如 Amazon Alexa,需将数据传输到云来处理,然后由算法的输出给出响应。从这个意义上讲,设备只是云模型的一个便捷网关,类似于和 Amazon 服务器之间的信鸽。设备本身并非智能的,响应速度完全取决于互联网性能。如果网速很慢,那么 Amazon Alexa 的响应也会变慢。自带自动语音识别功能的智能 IoT 设备,由于降低甚至是完全消除了对外部通信的依赖,因此降低了延迟。

上述问题推动着边缘计算的发展。边缘计算的理念就是在部署在云“边缘”的设备上实现数据处理功能。这些边缘设备在内存、计算和功能方面都高度受限于设备自身的资源,进而需要研发更为高效的算法、数据结构和计算方法。

2,TinyML 示例

以前,设备执行的各种操作必需基于复杂的集成电路。现在,机器学习的硬件“智能”正逐渐抽象为软件,使得嵌入式设备更加简单、轻量级和灵活。

使用嵌入式设备实现机器学习,需解决巨大的挑战,但在该领域也取得了长足的进步。在微控制器上部署神经网络,关键挑战在于低内存占用、功率受限和计算受限。

智能手机是最典型的 TinyML 例子。手机一直处于主动聆听“唤醒词”的状态,例如 Android 智能手机的“你好,谷歌”,以及 iPhone 的“你好,Siri”。如果通过智能手机的 CPU(主流 iPhone 的 CPU 已达 1.85 GHz)运行语音唤醒服务,那么电池电量会在短短几个小时内耗尽。这样的电量消耗是不可接受的,而语音唤醒服务大多数人每天最多使用几次。

为了解决这个问题,开发人员创建了可以用小型电池(例如 CR2032 纽扣电池)供电的专用低功耗硬件。即使 CPU 未运行(通常表现为屏幕并未点亮),集成电路也能保持活跃状态。

这样的集成电路消耗功率仅为 1mW,如果使用标准的 CR2032 电池,可供电长达一年。

虽然有些人不觉得这有什么了不起的,但这是非常重要的进步。许多电子设备的瓶颈就是能源。任何需要市电供应的设备,其使用都受电力布线位置的限制。如果同一位置部署了十几台设备,可能电源会很快不堪重负。市电的效率并不高,且代价昂贵。将电源电压(例如美国使用的 120V)转换为典型的电路电压范围(通常约为 5V),会浪费掉大量的能量。笔记本电脑用户在拔充电器时,对此都深有体会吧。充电器的内部变压器所产生的热量,就是在电压转换过程中被浪费掉的能量。

即使设备自带电池,电池续航也是有限的,需要频繁充电。许多消费类电子设备的电池,设计上可持续使用一个工作日。一些 TinyML 设备可以使用硬币大小的电池持续运行一年,这意味着可将此类设备部署在一些偏远的环境中,仅在必要时进行通信,以节省电源。

在一台智能手机中,唤醒词服务并非唯一无缝嵌入的 TinyML 应用。加速度计数据可用于确定用户是否刚拿起手机,进而唤醒 CPU 并点亮屏幕。

显然,这些并非 TinyML 的唯一用武之地。实际上,TinyML 为产品粉丝和企业提供了大量令人兴奋的应用,用于实现更智能的 IoT 设备。在当前数据变得越来越重要的情况下,将机器学习资源分发到远端内存受限设备的能力,为农业、天气预报或地震等数据密集行业提供了巨大机遇。

目前,TinyML 主要的两个重点应用领域是:

  • 关键字发现。大多数人已经非常熟悉此应用,例如“你好,Siri”和“你好,Google”等关键字,通常也称为“热词”或“唤醒词”。设备会连续监听来自麦克风的音频输入,训练实现仅响应与所学关键字匹配的特定声音序列。这些设备比自动语音识别(automatic speech recognition,ASR)更简单,使用更少的资源。Google 智能手机等设备还使用了级联架构实现扬声器的验证,以确保安全性。
  • 视觉唤醒词。视觉唤醒词使用图像类似替代唤醒词的功能,通过对图像做二分类表示存在与否。例如,设计一个智能照明系统,在检测到人的存在时启动,并在人离开时关闭。同样,野生动物摄影师可以使用视觉唤醒功能在特定的动物出现时启动拍摄,安防摄像机可以在检测到人活动时启动拍摄。

3,当前 TinyML 机器学习的应用概览

图 1 TinyML 的机器学习用例。图片来源:NXP

4,TinyML 工作机制

TinyML 算法的工作机制与传统机器学习模型几乎完全相同,通常在用户计算机或云中完成模型的训练。训练后处理是 TinyML 真正发挥作用之处,通常称为“深度压缩”(deep compression)。

图2 深度压缩示意图。来源: ArXiv 论文

TinyML 机器学习简介相关推荐

  1. 学习笔记Spark(九)—— Spark MLlib应用(1)—— 机器学习简介、Spark MLlib简介

    一.机器学习简介 1.1.机器学习概念 机器学习就是让机器能像人一样有学习.理解.认识的能力. 机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能. ...

  2. 机器学习-机器学习简介

    机器学习简介 即使是机器学习领域的专业人士,也很难给机器学习这一概念下一个准确的定义,比较常见的说法有两种.Arthur Samuel描述其为"使计算机无需明确编程就能自主学习的研究领域&q ...

  3. 面向开发者的机器学习(一)| 机器学习简介

    精选30+云产品,助力企业轻松上云!>>> 本系列为面向开发者的机器学习教程. 1 简介 机器学习是一门为了预测某个值而对系统应用算法来学习数据中模式的科学.利用足够的数据,在所有输 ...

  4. azure机器学习_使用Azure ML Studio的Azure机器学习简介

    azure机器学习 介绍 (Introduction) Let us see how Azure ML studio can be used to create machine learning mo ...

  5. 人工智能之机器学习简介

        可能有的小伙伴要问道,为什么这里要提及到机器学习呢,作者你是不是故意这样呢?为什么要在python还没有讲多少时就讲机器学习呢?     这里向大家介绍机器学习,并不是作者故意的.其实是由于机 ...

  6. 图机器学习(Graph Machine Learning)- 第二章 图机器学习简介 Graph Machine Learning

    第二章 图机器学习简介 Graph Machine Learning 文章目录 第二章 图机器学习简介 Graph Machine Learning 前言 1. 环境要求Technical requi ...

  7. 机器学习第一章之大数据分析与机器学习简介

    大数据分析与机器学习简介 1.1 大数据分析与机器学习概述 1.1.1 大数据分析与机器学习的应用领域 1.1.2 机器学习的基本概念 1.1.3 Python在数据科学中的作用 1.2 Python ...

  8. 机器学习简介 | GAIR大讲堂

    [转] https://www.leiphone.com/news/201709/p5W26vaVDfjjPNxc.html 本文作者为深度学习平台MxNet的作者李沐,文章由雷锋网整理自作者的机器学 ...

  9. 第一章-机器学习简介 深度之眼_吴恩达机器学习作业训练营

    目录 专栏简介: 一,机器学习简介 1.1 机器学习定义 1.1 机器学习的重要性 1.2 应用领域 二.监督学习 三.无监督学习 四.总结 专栏简介: 本栏主要内容为吴恩达机器学习公开课的学习笔记, ...

最新文章

  1. IDA Pro IDA 数据库文件
  2. 手动启动“远程过程调用”服务时,出现错误信息1058
  3. Golang + vscode 开发环境配置
  4. easyui左侧导航菜单右侧载入百度地图项目框架
  5. C#项目打包,并自动安装SQL数据库(转)
  6. leetcode 636. Exclusive Time of Functions | 636. 函数的独占时间(Stack)
  7. Flink中MapFunction以及其他各种xxxFunction在intellij中的用法和规律
  8. 一文说透架构设计的本质
  9. 微信公众平台中的openid是什么
  10. 自然语言处理 —— 2.5 学习词嵌入
  11. 怎样看出一个初创公司的实力?
  12. WPF老矣,尚能饭否——且说说WPF今生未来(中):策略
  13. python语言-python语言基本语句用法总结
  14. MATLAB卷积运算(conv)
  15. HTTP的REST服务简介
  16. 【Godot】项目结构设计
  17. HITB | 360议题分享:卫星可欺骗 地震警报可伪造
  18. 隐函数存在定理隐函数的高阶导数
  19. c#没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))”
  20. java毕业设计爱心扶贫超市管理系统Mybatis+系统+数据库+调试部署

热门文章

  1. matlab ia模块,MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能...
  2. graphviz绘制决策树
  3. python数字图像的行 宽的不同处 cv2.resize(1389,1500) p1列宽 p2 行高 stop2.shape 得(640,960,3) v1列宽 v2 行高 v3 通道数
  4. SQL2005 BCP
  5. Docker系列 二. Docker 安装 Nginx
  6. CVPR 2021 | Involution:超越 Convolution 和 Self-attention 的神经网络新算子
  7. 书单 | 技术人要有产品思维
  8. 为什么说康托尔知道聚宝盆的秘密?
  9. 用rufus f2 制作Ubuntu16.04 U盘启动盘
  10. 通俗理解SGX attestation