深度学习方法不需要提前设计功能。其自动学习的功能对于当前的任务来说是最佳的。结果是,任务自动获得对抗数据自然变化的鲁棒性。
相同的深度学习方法可以用于不同的应用程序或不同的数据类型,这种方法通常被称为迁移学习。另外,这种方法在可用数据不足时很有用。根据这个概念研究学者已经发表了多篇论文(在第 4 节中会有更详细地讨论)。
深度学习方法具有高度可扩展性。在 2015 年的一篇论文中,微软描述了一个名为 ResNet 的网络 [11]。该网络包含 1202 个层,并且通常由超级计算规模部署。美国的劳伦斯利弗莫尔国家实验室(LLNL)正在为这样的网络开发框架,该框架可以实现数千个节点 [24]。
其次,大部分针对大规模问题的案例,其解决方案正在高性能计算机(HPC)系统(超级计算机、集群,有时被视为云计算)上部署,这为数据密集型商业计算提供了巨大的潜力。但随着数据在速度,多样性,准确性和数量上的爆炸式增长,我们越来越难以使用企业级服务器进行存储和提升计算性能。大多数论文考虑到这些需求,并提出了使用异构计算系统的高效 HPC。例如:劳伦斯利弗莫尔国家实验室(LLNL)开发了一个框架:Livermore Big Artificial Neural Networks(LBANN),用于大规模部署深度学习(超级计算规模),这一项目明确地回答了深度学习是否可扩展的问题 [24]。
第三,生成模型是深度学习的另一个挑战,其中一个例子是 GAN,它是一种优秀的数据生成方法,可以生成具有相同分布数据 [28]。第四,我们在第七节讨论过的多任务和迁移学习。第四,我们对网络架构和硬件方面的高效率深度学习方法进行了大量的研究。第 10 节讨论了这个问题。
我们可以制作出适用于多领域、多任务的通用模型吗?出于对多模式系统的关注,最近,谷歌提交的论文《One Model To Learn Them All》[29] 介绍了一种新方法,其可以从不同的应用领域学习,包括 ImageNet、多种翻译任务、图像标题(MS-COCO 数据集)、语音识别语料库和英语解析任务。我们将通过这次调查讨论主要挑战和相应的解决方案。在过去几年中,人们还提出了其他多任务技术。