朋友们!如需转载请标明出处:http://blog.csdn.net/jiangjunshow
<http://blog.csdn.net/jiangjunshow>
总目录 <http://blog.csdn.net/jiangjunshow/article/details/77711593>
(新手请点击总目录从前言看起,否则你可能看不懂本篇文章)
深度学习这个技术其实几十年前就已经存在了。但为什么直到近几年才火起来了? 在这篇文章中,让我们来看看使深度学习火起来的一些因素。
上图横轴代表训练数据的数量,纵轴代表算法性能(如广告点击预测的准确性)。从图中可以看出,当我们给出越多的训练数据时,各种算法的性能都会越高。但是各个算法之间有所区别。对于传统的机器学习算法(黑色的曲线),最开始它的性能也在提升,但是后来,无论你再怎么添加训练数据它的性能都不再提升了。再多的数据也是浪费。而对于小型神经网络,它的性能是会随着数据量不断提升的,但是提升的幅度不大,中型网络幅度要大些,大型网络幅度就更大些…
之前我们一直因为没有足够量的数据而无法提升神经网络的性能。但后来我们进入了电子社会,摄像头、电脑、手机越来越便宜,同时人们花费了大量时间在电脑在网页在手机上面,以及后来出现的物联网,各种穿戴设备各种传感器产生了越来越多的数据。这使得神经网络得以大展拳脚。
需要注意的是,上图指的训练数据是带标签的数据,即有x,y标签的。现在的神经网络不是所有的数据都认识,它只认识那些带标签的数据(可训练的样本)。因为当前有所作为的都还只是监督学习型的神经网络。
从上图还可以看出,如果你想达到非常高的性能水平,那么你需要两样东西。首先,你需要足够大的神经网络,其次你需要很多训练数据。所以我们经常说“规模一直在推动着深度学习的进步”。这里的规模,是指神经网络的大小以及训练数据的数量。但是规模始终是有尽头的,因为最终你耗尽了数据,或者最终你的网络太大了,以至于需要很长时间才能训练完。但仅仅是为了提升规模,在深度学习的世界里,我们都已经走了很长的路了,这一路来随着规模的提升神经网络的性能也在同步提升着。
从图中还可以看出,紫色虚线左边的区域(训练数据量很小的区域)中,各种不同算法的性能其实分不出高下。也就是说,在可训练的数据集很小的情况下,极有可能某人实现的传统的机器学习算法会比你的大型神经网络的性能还高。
在早些年,深度学习领域的进步主要靠不断增长的训练数据量以及不断增长的计算力(CPU和GPU的发展)。
但在过去的几年里我们开始看到了巨大的算法创新。当然其中很多算法创新都只是为了让神经网络运行得更快(相当于提升计算力)。例如,一个巨大的突破就是用relu函数代替了sigmoid函数。当然现在你还不需要了解它们的细节。在这里简单和大家说一下,在sigmoid函数的某些区域的斜率几乎为零,所以使学习变得很慢,而relu函数的斜率一直都很大(你回顾一下前面文章中我画的relu函数的图就可以很直观的明白了,这个函数的图是一个很陡的直线,所以斜率很大)。这些新的算法大大缩短了神经网络的训练周期,让我们可以训练更大的神经网络、利用上更多的训练数据。
强大计算力很重要的另一个原因是,它可以让你更快的验证自己的想法,以便不断试错,以得到更好的想法。例如,你有一个神经网络架构的想法,你用代码实现了你的想法,然后运行它,进行训练,然后通过观察它,分析运行结果,然后你再修改自己的想法细节,然后再运行再观察再修改…。就这样不停地来回试错。所以执行这个试错的周期就很关键了,如果你的神经网络运行一次要几个月,那么就要等几个月后才能看到结果,然后调整你的想法细节,然后又开始运行,然后又是等几个月…我勒个去~~我会把电脑都给砸了
与妹子happy一次后开始进行训练,等妹子都怀孕了,训练还没有结束
所以深度学习火起来的三大要素就是,数据,计算力,算法。
而算法在不断的被创新,训练数据不断在被收集,计算力CPU、GPU不断在增强,所以我很有信心,深度学习会越来越强大。
热门工具 换一换