[Day 02] 什麽是tinyML?

tinyML」就字面上意思就是微小的机器学习(Tiny Machine Learning, tinyML),但它又和人工智慧(Artificial Intelligence, AI)及微控制器单元(Micro-Controller Unit, MCU)(又称单晶片)有什麽关连呢?

首先说明几个常见的名词定义及主要差异。

  • 【人工智慧(Artificial Intelligence, AI)】:又称人工智能,泛指能产生类似人类思考、判断结果的人为程序、算法。其中最常见的应用包含电脑视觉(Computer Vision, CV)、自然语言处理及理解(Natural Language Processing / Understanding, NLP / NLU)及数据分析/挖矿(Data Analysis / Mining)几大领域。
  • 【机器学习(Machine Learning, ML)】:为人工智慧下的一部份,泛指透过数学统计进而模仿人类学习数据中的规则,进而推论未知数据的结果。常见的分类有监督式(Supervised)、非监督式(Unsupervised)及增强式(Reinforcement)学习,其主要功能为分类、回归及聚类。
  • 【深度学习(Deep Learning, DL)】:为机器学习下的一个分支,类神经网路(Neural Network, NN),它可透过更深及更宽的网路层及巨大量参数(权重)来学习各种影像、声音及数据特徵,进而达到和人类似的学习、辨识及推论能力,为近年来当红技术。由於其能力显着,因此当许多非专业人士提及「人工智慧」时,通常指的就是「深度学习」技术,而非原始名词定义。

人工智慧、机器学习、深度学习
Fig. 2-1 人工智慧、机器学习、深度学习 (OmniXRI整理绘制,2018/5/24)

通常来说「机器学习」能处理的特徵数量及数学模型通常不会太复杂,因此所需的计算量也不会太大。但「深度学习」就反其道而行,越复杂的模型及越巨量的参数就能令推论准确率得到更好的提升,因此需要极高性能的运算设备来辅助训练和推论的计算。所以如果要将AI应用放到运算能力很低、记忆体很少的MCU上时,就只选择较微型的AI应用(如智慧感测器等)或者较小型的机器学习算法甚至超微型的深度学习模型来推论,因此「tinyML」需求因运而生。

基於上述AI微型化理念,许多CPU, GPU, MCU, AI加速计算晶片大厂、AI开发工具及应用厂商纷纷响应,於2019年成立微型机器学习基金会(tinyML Foundation) ,每年定期会举办高峰会,让厂商、学界、社群都能共襄盛举。2021高峰会有近六十个赞助商,其中台湾也有四家,分别是奇景光电(Himax)、装智(On-Device AI)、原相(PixArt)及威盛(VIA)。

tinyML基金会2021赞助商清单
Fig. 2-2 tinyML基金会2021赞助商清单 (OmniXRI整理绘制,2021/8/14)

根据该基金会对tinyML的定义:「**微型机器学习(tinyML)**为一个快速发展的机器学习技术和应用领域,包括硬体、算法和应用软件。其能够以极低功耗执行设备上的感测器(Sensor)的数据分析,通常在mW(毫瓦特)以下范围,进而实现各种永远上线(或称常时启动)(Always On)的应用例及使用电池供电的设备。」这里的ML虽然指的是「机器学习」,不过亦可延伸解释到「深度学习」甚至「人工智慧」、「边缘智能」等名词。从上述定义可得知tinyML 几乎是锁定MCU及低阶CPU所推动的Edge AI。

目前tinyML基金会并没有明确的定义那些项目才算是其范围,也没有制定特定的开发框架及函式库(如机器人作业系统ROS),而是开放给硬体及开发平台供应商自行解释及彼此合作。目前较常见的应用,包括振动侦测、手势(运动感测器)侦测、感测器融合、关键字侦测(声音段分类)、(时序讯号)异常侦测、影像分类、(影像)物件侦测 等应用,而所需算力也依序递增。一般来说,以Arm Cortex-M系列为例,智慧感测器(如声音、振动、温湿度等)大约Arm Cortex-M0+, M3左右就能满足,而智慧影像感测器(小尺寸影像)要完成影像分类及物件侦测工作,则需要Cortex-M4, M7甚至要到Cortex-A, R系列。

Arm MCU等级晶片智慧运算能力与适用情境
Fig. 2-3 Arm MCU等级晶片智慧运算能力与适用情境 (OmniXRI整理绘制,2021/8/14)

参考连结:

tinyML基金会 https://www.tinyml.org/


<<:  Day 02: JavaScript 与 物件导向程序设计

>>:  Day2 XAMPP 环境准备

Day 16 - 用 useReducer 取代 Redux !?

如果有错误,欢迎留言指教~ Q_Q useReducer 看起来跟 Redux 的 reducer...

[Day 25] keep-alive状态保留

今天这篇是延续上篇的动态元件~在动态元件切换的过程中,每当我们切换一个新的元件,旧元件的资料就会消失...

使用 Learner Lab 建立 WordPress 网站 (EC2)

使用 Learner Lab 建立 WordPress 网站 (EC2) AWS Academy L...

Day04:原来早就在这里有共享经济了

今天就来谈谈字串吧。 相信以下这段程序是大家学Java第一天就会写的: class HelloWor...

後浪推前浪--前浪死在沙滩上,浅谈class

物件导向概述 物件导向程序设计(Object Oriented Programming)简称OOP,...