深度神经网络可以使学习一层层深入,这让深度神经网络或深度网络有时也成为深度学习的代名词。从常识上看,有深度固然好,但随着神经网络层数增加,神经网络会越来越复杂,计算量变得无比巨大。
又如,深度学习中涉及到的数据需求,也会随着深度神经网络系统规模的增加而大大增加。
就像人类学习需要有各种学习材料、学习场景一样,机器学习也需要这些,只不过机器需要的学习材料、情景都必须数据化。
也像人类学习可以分为有老师的学习和无老师的学习一样,机器学习可以分为监督学习和无监督学习,监督学习必须使用经过标注的数据,而无监督学习使用的数据不需经过标注。
神经网络本质上是一个数据驱动模型,需要提供数据让机器去学习,然后根据学习的结果不断调整、优化模型中的参数,达到使模型收敛,也就是达到预期学习效果,这一过程叫训练。
一个神经网络系统一般需要三个数据集:训练集、开发集和测试集。训练集规模越大、匹配度越高,训练效果也就是学习效果越好。
神经网络系统如果训练数据太少,会出现“过拟合”,也就是说学习结果太针对特定情景,不能推广。相反的,学习结果能广泛适用,则称为“泛化”。正像人类学习能举一反三是因为掌握大量知识一样,机器学习也需要大量的、多样化的数据。
形象地说,机器学习需要大量多样化的数据“喂”进机器,“喂”进数据越多,质量越好,学习效果越好。
欣顿想了很多办法来减少对监督学习的需求,因为这意味着大大减少工作量和提高训练速度。他的创新思路是把无监督学习和监督学习结合使用。先让机器自己进行无监督学习,也即自动处理没有经过标注的数据,进行逐层预训练。这使得在利用反向传播算法对网络进行全局优化之前,网络参数能达到一个好的起始点,从而在训练完成时能达到较好的局部收敛点。最后阶段是进行监督学习,即用经过标注的数据进行训练。这样大大提高了训练的速度。欣顿形象地比喻说:“想象一下小孩子,当他们学着辨认牛时,并非需要去看几百万张妈妈们标记上‘牛’的图片,他们仅仅是自己学习牛的样子,然后问到:‘这是什么?’ 妈妈会说:‘这是一头牛’,他们就学会了。”
这是深度学习巧妙的学习过程,但即使有这些发明,深度学习也必须在计算能力大大增强和海量数据出现的情况下,才能充分发挥作用。
还有,如果要使神经网络系统表现更加优秀,会涉及到一个有趣的术语,即鲁棒性(Robust),这个英语术语的音译非常传神,让人一望可知含义是粗壮、稳定。怎么提高神经网络系统的鲁棒性呢?常用的方法之一是通过人为添加一定的噪音来进行训练。就好比军人在平时训练中要增加一些恶劣场景来提高训练水平,以提高实战能力一样。在神经网络中,为提高鲁棒性来添加噪音,会增加数据量和多样性,同样提高了对计算能力的要求。
总之,被人工智能专家、日本人工智能学会伦理委员松尾丰称为AI领域五十年重大突破和一次飞跃的深度学习,就像一只雄鹰,高飞还需要计算能力和海量数据这两只强劲的翅膀。而装上这两只翅膀,两位华人发挥了很大的作用,他和她分别提供了具有强大计算能力的GPU和ImageNet大数据集。