什么是深度学习
受人类大脑内部复杂的神经元网络的启发,深度学习模拟生物神经网络,构建出包括输入层和输出层在内的人工神经网络,当将数据输入该网络的输入层后,在输出层就会显现出相应的处理结果。在输入层和输出层之间,可能存在很多中间层(又称隐藏层),从而能够更深入地刻画所处理对象的特征,并具备更强大的函数模拟能力。几十年前,计算机算力有限,只能支撑一两层中间层。近年来,随着算力增强,可以训练出有成千上万层中间层的网络,“深度学习”即由此得名。
许多人认为,人类使用特定的规则去“编码”AI,利用自身的认知(比如猫有尖尖的耳朵和胡须)去“教导”AI,才能让算法具备相应的能力。但这种做法反而会弄巧成拙,没有这些外在的人类规则,深度学习的效果其实会更好。深度学习的训练方法是,针对特定的应用场景,给人工神经网络的输入层“投喂”大量数据样本,同时给输出层“投喂”相应的“正确答案”,通过这样的训练,不断优化人工神经网络的内部参数,使根据输入生成最接近“正确答案”的输出的概率最高。
举个例子。研究人员如果想训练一个人工神经网络利用深度学习技术学会确认一张图片上是否画着猫,他会先向该网络的输入层“投喂”数百万张带着“有猫”或“无猫”标签的图片样本,然后把相应的结果“投喂”给输出层,再根据输入与输出对该网络内部的参数进行优化,使每一次新的输入行为都能提高输出正确结果的概率。通过这种训练,人工神经网络能够在数百万张图片中,自己找到最有助于区分是否有猫存在的那些特征。人工神经网络的训练是一个数学处理过程——通过不断调整网络中的数百万个参数(有时甚至是数十亿个参数),来最大限度地提高“只要输入有猫的图片,就输出‘有猫’的判定”的概率,以及“只要输入没有猫的图片,就输出‘无猫’的判定”的概率。在训练过程中,人工神经网络和其中的参数会组成一个巨大的数学方程组,用以解决有猫无猫的问题。一旦完成训练,它就可以对从未见过的图片进行判断,确定图片上是否有猫。图1-1展示了一个利用深度学习技术识别图片上是否画着猫的神经网络架构。
图1-1 经过训练,人工神经网络能够判定输入的图片上“有猫”还是“无猫”
在训练过程中,可以将深度学习视为解决目标函数最大化问题的一种数学运算。这个目标函数是由每次的训练主题决定的,比如在识别猫的这个例子中,目标函数就是正确判断出图片上“有猫”或者“无猫”的概率。
深度学习几乎在任何领域都能发挥识别、预测、分类、合成的作用。在《一叶知命》这个故事中,象头神保险公司就是把深度学习技术应用到保险行业,用于判断投保人可能面临的健康问题,并以此作为确定保费的依据。
为了让人工神经网络能够区分出那些可能患重大疾病的人,象头神保险需要整理出一套训练数据。这套数据需涵盖所有过去的投保人的信息,包括每个人的个人病史和家庭病史等,并且每个数据样本都应打上是否有过重大疾病索赔记录的标签(就是在输出层标注“有重大疾病索赔记录”或“无重大疾病索赔记录”)。在用海量数据进行训练后,该网络就可以预测出新的投保人在未来提出重大疾病索赔的概率,并决定是否核准该投保人的投保申请;如果核准,该网络还要给定适合该投保人的保费额度。
值得注意的是,在这个场景中,不需要由人来为过去的投保人打上是否有过重大疾病索赔记录的标签,取而代之的是,这些标签应完全依据“黄金标准”(例如有无重大疾病索赔记录)自动生成。