前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TinyML实践-1:What & Why TinyML?

TinyML实践-1:What & Why TinyML?

原创
作者头像
flavorfan
修改2020-12-07 16:02:03
2.4K1
修改2020-12-07 16:02:03
举报
文章被收录于专栏:范传康的专栏

机器/深度学习已经如火如荼,各种炫目的效果呈现不穷,笔者也复现一些如stackoverflow assistence、头像动漫化等,但大都需要强大算力,“终端(手机)+云服务器”是基本结构。去年关注到Google TFLite Micro(TFLM)及技术,可以将Tensorflow 模型部署到嵌入式的端末设备(比如arm cortex M4 64M)。恰好手头有一个农业物联网项目,利用嵌入式设备识别牲畜的活动状态,应用了这一个技术。这段时间项目间隙,记录下开发过程的一些心得体会。

What is Tiny Machine Learning(TinyML)?

以下引文来自edx公开课 "HarvardX - Fundamentals of TinyML"

Tiny machine learning (TinyML) is a fast-growing field of machine learning technologies and applications including algorithms, hardware, and software capable of performing on-device sensor data analytics(vision, audio, IMU, biomedical, et.) at extremely low power, typically in the mW range and below, and hence enabling a variaety of always-on use-cases and targeting battery-operated devices.

Tiny机器学习(TinyML)是一个快速发展的机器学习技术和应用领域,包括能够以极低的功耗执行设备上传感器数据分析(视觉,音频,IMU,生物医学等)的算法,硬件和软件。 ,通常在mW范围内及以下,因此可以实现各种始终在线的用例,并以电池供电的设备为目标。

引用《TinyML》一书作者阐述TinyML概念:如果能以低于1毫瓦的功耗成本运行神经网络模型,那么将使得许多全新的应用成为可能。”1毫瓦“似乎是一个有点随意的数字,如果把它转换为具体的术语,这意味着一个使用纽扣电池的设备可以具有一年的使用寿命,这就产生一种产品——它足够小,可以适应任何环境,并且能够在无需人工干预的情况下运行相当长时间。

微型机器学习(tinyML)是机器学习和嵌入式物联网(IoT)设备的交叉点。该领域是一门新兴的工程学科,有可能使许多行业发生革命。

Why TinyML?

1) 机器学习正在加速从运动到端末(endpoint device)移动

物联网的传统理念是将数据从本地设备发送到云端进行处理。一些人对这个概念提出了一些担忧:隐私、延迟、存储和能源效率等等。

Energy Efficiency。传输数据(通过有线或无线)是非常耗能的,大约比机载计算(特别是乘法累加单元)要高一个数量级。开发能够自己进行数据处理的物联网系统是最节能的方法。人工智能的先驱们已经讨论了一段时间的“以数据为中心”的计算(相对于云模型的“以计算为中心”),现在开始看到它的结果。

Privacy。传输数据有可能侵犯隐私。这样的数据可能被恶意的参与者截获,并且当存储在一个单一的位置(如云)时,其安全性就会降低。通过将数据主要保存在设备上并尽量减少通信,这提高了安全性和隐私性。

现实有IOT大量众多数据没有被利用,由于产生数据量大,并且传输这些原始数据需要耗费大量的电能

Storage。对于许多物联网设备来说,他们获取的数据毫无价值。想象一下,一个保安摄像头24小时记录着一栋大楼的入口。在一天的大部分时间里,摄像机的镜头是没有用处的,因为什么都没有发生。通过拥有一个只在必要时激活的更智能的系统,就需要更低的存储容量,并且传输到云端所需的数据量也减少了。

Lattency。对于标准物联网设备,如Amazon Alexa,这些设备将数据传输到云端进行处理,然后根据算法的输出返回响应。从这个意义上说,这个设备只是一个通往云模型的便捷门户,就像你和亚马逊服务器之间的信鸽。这个设备相当愚蠢,完全依赖互联网的速度来产生结果。如果你的网速很慢,亚马逊Alexa也会变慢。对于具有机载自动语音识别功能的智能物联网设备,由于减少了(如果不是没有)对外部通信的依赖性,因此延迟降低了。

no_good_data_left_behid.png
no_good_data_left_behid.png

2)端末设备在身边无处不在

MCU尺寸越来越来

mcu_size.png
mcu_size.png

MCU的性能越来越强大并且越来越便宜

mcu_price.png
mcu_price.png

MCU的低功耗方面的发展

mcu_pwr.png
mcu_pwr.png

3) MCUs赋能TinyML

mcu_enable_tinyml.png
mcu_enable_tinyml.png

如何学习TinyML并实践

推荐《TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers》这本书,有中文版。该书从背景、理论阐述TinyML,并且”show me the code”,从四个具体例子:Hello World、唤醒词检测、行人检测、魔杖进行讲述。

需要的硬件

如《TinyML》所述,有四个硬件开发板就好:

  • SparkFun Edge
  • Arduino Nano 33 BLE Sense
  • STM32F746G Discovery kit
tinyml_hardware.png
tinyml_hardware.png

个人推荐Arduino Nano 33 BLE Sense开发板,因为nrf52840是很成熟的具有蓝牙的低功耗平台,产品经过市场检验。话说回来,对于经历过TinyML实践者来说,只要基于ARM CortxM3 M4(也可以不是,但是需要tfml直接的cpu架构)的mcu都可以,不过这都是后话。

需要的软件

基于Tensorflow lite for microcontroller框架,位于tensorflow源码中;

ide推荐vs code;

参考&资源

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • What is Tiny Machine Learning(TinyML)?
  • Why TinyML?
    • 1) 机器学习正在加速从运动到端末(endpoint device)移动
      • 2)端末设备在身边无处不在
        • 3) MCUs赋能TinyML
        • 如何学习TinyML并实践
          • 需要的硬件
            • 需要的软件
            • 参考&资源
            相关产品与服务
            物联网
            腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档