在图1(a)中,两个输入x_1和x_2都是分别由一个神经元表示,在输入中还加入了一个作为偏置(bias)的神经元,通过训练学习参数,最终整个模型的参数收敛,功能和图1(b)真值表一模一样。图1(c)分类结果。
而通常来说,模型都是比较复杂的。比如ILSVRC2012年图像识别大赛中Krizhevsky等人构建出来的 Alex Net[2]。他们一共构建了11层的神经网络(5个卷积层,3个全连接层,3个池化层),一共有65万个神经元,6千万个参数,最终达到了15.2%的识别错误率,大大领先于第二名的26.2%。
图2. Alex Net神经网络
当前深度学习得以流行,是得益于大数据和计算性能的提升。但其仍然遭受计算能力和数据量的瓶颈。针对数据量的需求,专家们可以通过模型的调整、变更来缓解,但计算力的挑战没有捷径。科大讯飞、百度、阿里、360在深度学习方面也面临着计算力的困扰。科大讯飞的深度学习平台属于计算密集型的平台,集群几百台机器之间要实现高速互联,是类似超算的结构,但它又不是一个非常典型的超算。科大讯飞最开始探索传统的方式,用大量CPU来支持大规模数据预处理,运行GMM-HMM等经典模型的训练,在千小时的数据量下,效果很不好。而360每天处理的数据有上亿条,参数50万以上,如果用CPU,每次模型训练就要花几天,这对于崇尚快速迭代的互联网公司运营来说简直是不可接受的。