其实这篇文章很早之前就准备写,但由于各种事情耽误,加上自己对一些细节没有理解透彻,所以一直没有动笔。
现在做的方向越来越远,所以还是趁热打铁,重点写一些自己的理解,希望对大家能有所启发。
标题里写“人类还是战胜了机器”,有一些对比人类和机器的意味,主要想起前前段时间大热的AutoML。AutoML是自动化机器学习的意思,如何自动化?自然是利用机器,机器自己设计机器学习算法和参数,而不需要太多的人工干预。
AutoML中很重要一部分就是网络结构搜索,NAS: Neural Architecture Search, 使用一些算法来自动搜索/设计网络结构,而不是一个一个由人工设计。Google在这方面做了很多开开拓性的工作,也取得了一些不错的效果,但其本质还是在很大的限制范围内(搜索空间)去搜素,很难把所有可能性(太多)穷尽。
ResNeSt中的S是split,把总的channel split成K个,每部分分别进行计算,具体的流程图如下所示,可以参考作者在Bilibili的讲解,链接在文末。
ResNeSt的效果非常好,超过了基于AutoML的EfficientNet,当然也用了很多训练技巧,例如数据增强,现在几乎已经变成了必备技能。
虽然ResNeSt通过split的结构设计,获得了比之前暴力搜索更好的效果,但并不代表人类就大获全胜。当然,比较人类和机器本身也没有太大的意义。机器擅长计算,而不擅长思考、设计,人则有更好的创造性。
世界既需要计算力,也需要创造性,毕竟这个世界不可能通过暴力计算穷举。
参考:
作者本人在Bilibili的讲解
https://www.bilibili.com/video/BV1PV411k7ch#reply3078900535