本文属于学习笔记,依据(微信公众号:jack床长)的文章整理
博客链接:http://blog.csdn.net/jiangjunshow
是不是一脸懵逼,哈哈~,咱们接着往下看
先上一张机具说服力的图
这是一张训练数据量和算法性能的关系图,
从图中可以看出,当我们给出越多的训练数据时,各种算法的性能都会越高。但是各个算法之间有所区别。对于传统的机器学习算法(黑色的曲线),最开始它的性能也在提升,但是后来,无论你再怎么添加训练数据它的性能都不再提升了。再多的数据也是浪费。而对于小型神经网络,它的性能是会随着数据量不断提升的,但是提升的幅度不大,中型网络幅度要大些,大型网络幅度就更大些。
上图指的训练数据是带标签的数据,即有x,y标签的。不是所有的数据神经网络都认识,它只认识那些带标签的数据(可训练的样本)。因为当前有所作为的都还只是监督学习型的神经网络。在可训练的数据集很小的情况下,极有可能某人实现的传统的机器学习算法会比你的大型神经网络的性能还高。
深度学习领域的进步主要靠不断增长的训练数据量以及不断增长的计算力(CPU和GPU的发展)。 但在过去的几年里我们开始看到了巨大的算法创新。当然其中很多算法创新都只是为了让神经网络运行得更快(相当于提升计算力)。例如,一个巨大的突破就是用relu函数代替了sigmoid函数。在sigmoid函数的某些区域的斜率几乎为零,所以使学习变得很慢,而relu函数的斜率一直都很大,这些新的算法大大缩短了神经网络的训练周期,让我们可以训练更大的神经网络、利用上更多的训练数据。
强大计算力很重要的另一个原因是,它可以让你更快的验证自己的想法,以便不断试错,以得到更好的想法。例如,你有一个神经网络架构的想法,你用代码实现了你的想法,然后运行它,进行训练,然后通过观察它,分析运行结果,然后你再修改自己的想法细节,然后再运行再观察再修改…。就这样不停地来回试错,所以执行这个试错的周期就很关键了。
所以深度学习火起来的三大要素就是,数据,计算力,算法。而算法在不断的被创新,训练数据不断在被收集,计算力CPU、GPU不断在增强,所以我很有信心,深度学习会越来越强大。