导读:今天介绍一种你没有玩过的机器学习船新版本,叫TinyML。ML我们都很熟了,而TinyML则是Tiny Machine Learning的缩写,直译为“微型机器学习”,是一种面向特定嵌入式产品的机器学习技术。面向哪种特定嵌入式产品呢?
作者:木羊同学
来源:华章计算机(hzbook_jsj)
1
下一波机器学习革命
先说回TinyML这个词,也许大家听着感觉耳生,国内对TinyML目前有点后知后觉,还只有零星的介绍。但在行业内,TinyML已经被视作一种具有特定意义的专业术语,而不只是某本书或者某个公司偶然提出来的概念性噱头。
我专门就这方面调查了一下,发现TinyML的行业化发展已经搞得有声有色。在工业界,TinyML已经成立了专门的行业委员会,定期举办TinyML峰会。在今年的TinyML峰会上,英伟达、ARM、高通、谷歌、微软、三星等等大公司悉数登台亮相,行业规模和影响力都可见一斑。在学术界方面,TinyML方向已经出版了一本经典的书,甚至有部分知名大学已经开设有相关的课程。
不过,这就有了问题。机器学习我们都知道,可究竟怎么样才能算作“Tiny”?而且,为什么要在已经百花齐放的机器学习领域,又另外搞出个TinyML来呢?这就要从深度学习的痛点说起。
2
深度学习的“大”问题
TinyML虽然挂了个“ML”名号,不过主要使用的是DL的技术,也就是主打深度学习模型。这个槽点我们姑且放过它,毕竟现在深度学习大行其道,但单叫DL又未免格局太小,没准明天又有其它哪款ML算法逆风翻盘了呢?
总之,TinyML目前的当家花旦就是深度学习模型,但是,转折来了,深度学习模型存在一个大问题,TinyML不能拿来就直接使用,必须先进行一些处理。
那么,深度学习存在什么大问题呢?
大,就是问题。深度学习模型采用的是神经网络结构,规模可以很大,而且正在越来越大。本来呢,深度学习模型规模大倒也不是什么问题,相反还是优势。回想一下,在深度学习流行以后,大家都很爱的一个问题,就是:深度学习为什么比其它机器学习模型效果要好?
这是个很好的问题。很多初学者会理所当然地以为,机器学习也像手机一样,新出来的性能必然要比老的好,深度学习是机器学习最新发展出来的技术,当然要比其它模型效果好。
这里面包含了几个误解。首先,深度学习不“新”。当然,深度学习确实是这几年崛起的新技术,但却不是这几年才横空出世。机器学习领域有几个经典算法,神经网络就是其中之一。而说深度学习是神经网络的继承而发展都未免太过生分了,深度学习就是神经网络加深了网络然后换了个皮,按我说,算是老树开新花。
哪个模型好哪个模型坏也是大家喜欢讨论的问题,其实,这个问题早有定论。机器学习领域有个著名的NFL定理(No Free Lunch Theorem) ,中文一般翻译为没有免费午餐定理。NFL定理包含了相当复杂的数学证明过程,不过简单来说,NFL定理给了我们一个非常清晰的结论:机器学习模型效果好不好,不是由模型本身决定的,而是看数据的具体情况。再简单一点,就是模型本身没有好坏。
既然是这样,那深度学习究竟好在哪里呢,又为什么会在这几年异军突起呢?
最常见的解释是这几年硬件发展了,高性能的硬件便宜了。这个回答不能说不对,但是显然忽略了主角。高性能硬件便宜了,对于所有算法应该都是同样的利好,为什么唯独是深度学习崛起了?很简单,深度学习模型有一个现在看来非常好的特性,这就是模型规模和模型性能保持了“水涨船高”的良好关系。随着深度学习模型规模的不断增加,模型的预测性能也能得到同步提升,简单来说就是正相关。相比之下,其它机器学习模型都没有这个特性,所以很容易达到性能瓶颈,需要费好大的力气找另外的路子才能提升。
为什么说这是一个现在看来非常好的特性呢?因为模型的规模越大,计算量也就越大,需要的计算资源成倍增加。以前硬件成本高,算力并不富裕,多买一杯秋天的奶茶都得扣着手指数半天。在这种算力有天花板的情