深度学习的愿景、问题、应用和资料
系列笔记因个人原因部分未完成,近期会尽快完成,将整体呈现出来的。
深度学习的愿景
和机器学习相比,深度学习的好处非常明显,或者说“看起来”非常明显——用上深度学习,就不需要特征工程和调参啦!
因为本课的主旨是讲解统计学习模型的原理,所以很少涉及特征工程,也没有专门讲过在实际应用中的模型调参。
自己动过手的同学想必知道,在实践中,模型、算法都是工具,支持库封装好了,直接调用对应接口就可以。最难的,恰恰是调参(超参数)和特征工程。
注意:特征工程指根据领域知识生成样本特征的过程,一般包括特征选择、特征获取、特征处理等步骤。
在狭义的机器学习领域(统计学习模型),特征工程以手工为主。现实的样本属性可能有几百几千(甚至更多)个,要从里面选出最具代表性的一部分作为特征,主要依据领域知识和既往经验,其他的工程性方法(降维等)只是起辅助作用。
而领域知识和经验与具体业务紧密相关,恰恰是大多数程序员不熟悉的。这就导致了在实践中总是存在着无法完全释放样本数据潜力的问题。
而调参,在超参数稍多(比如多于三个)以后,以何种策略使几种超参数组合达到最佳,则基本上可以算是一门艺术了。
当深度学习出现后,这两件让机器学习工程师头疼的任务,看起来好像消失了:
-
首先,NN 只有网络结构没有超参数,不需要调参;
-
其次,NN 训练的结果就是获得各个神经元的权值,因此也可以说 NN 具备了自动察觉特征重要程度的机制,可以自动完成特征筛选,不再需要特征工程啦!
深度学习的现实
可惜,现实总是骨感的。
深度学习虽然不需要调参但是需要自己搭建网络。用什么类型的网络(或者网络组合),一共有几层,每层有几个/什么类型的单元,如何连接……这些都要用户自己来创建和指定。
虽然具体到某个实际问题,可能有大量的论文提供学术研究出的解决方案,也有很多经典网络,可以直接拿来使用。但是,重现他人的学术研究成果也是一件蛮复杂的工作。
毕竟,在现阶段的国内企业中,能够迅速在工业应用中实现前沿学术成果的人,就已经被尊为算法科学家了(欲了解“算法科学家”,请参见:附录)。
说到特征选取,虽然理论上 NN 可以接受所有的特征,然后自动选出重要的“委以重任”。也确有将 Million 甚至 Billion 量级的特征输入到 NN 的尝试。但最起码,特征的数字化还是要人类来完成的。
更何况,NN 筛选特征的能力同样也受限于它自身的结构。
另外,如果有具备雄厚领域知识和经验的专家人工筛选出特征,则不仅能够提升 NN 模型的效果,还可以大量节约各种(运算、数据乃至人力)资源。
故而,在实际的工作中,NN 的特征选取也未必全部是自动进行,有时也会加入人工干预。
机器学习和深度学习
下表横向比较了机器学习和深度学习: