Q&A
Q1:深度学习看上去很复杂,对于新手应该怎么去学,能不能推荐一些深度学习方面的书籍和流行的框架?
A1:深度学习的数学理论其实并不复杂,但是需要注意的细节太多了,我们需要大量的时间来消化理解各个概念,对于新手,我推荐先上手代码,再研究原理,目前的深度学习框架非常之多,包括TensorFlow, theano, lasagne, keras, sknn, no learn, caffe, mxnet, leaf, torch7, convnetjs等。tensorflow目前是github上最火的框架,我本人也是TensorFlow前20的contributor,但是目前并不推荐新手直接使用Tensorflow,新手最简单易用的框架是keras,没有之一,可以先看上面的tutorial上手代码,理论方面,可以先学习MIT最新出的Deep Learnign的书来学习,这一本作者包括深度学习三巨头Bengio。
Q2:DL在明略的具体应用场景,遇到的困难?
A2:DL在明略的应用确实不是完全一帆风顺,我们在部署搭建GPU集群来训练DL时就需要非常多的坑,现在我们的产品DataInsight可以自动的帮我们解决这个环境问题,在数据上,我们需要收集比较大量的数据,才可以让DL发挥出强大的威力,在数据上,我们需要收集比较大量的数据,才可以让DL发挥出强大的威力,量级起码需要在十万条数据以上,最好是百万以上,然后就是参数调试的问题,不同的网络结构,激活函数,dropout, learning rate,参数实在太多,可能对初学者来说,感觉像是噩梦,然而随着对DL理论的理解,我们可以清晰的指导自己调参的思路,选择一条最佳的道路去解决这个问题,什么时候用CNN,什么时候用RNN,什么时候用dropout,都是很有意思,并且很有内在道理的。能推荐几本书?或者资源吗?关于这个问题,我推荐去github上有一个项目叫awesome deeplearning,上面有非常多的关于DL的资源。
Q3:请问现在对深度学习有一定理解,也有过相关经历用过keras等,请问怎么样更深入学习?
A3:如果对基础代码熟练了,可以尝试去学习DL各个变种以及组件的原理,并在比较底层的框架,如theano, tensofrflow上自己实现。
Q4:我是深度学习的硕士,请问现在有哪些工作还可以去做?
A4: 目前在NLP方向的研究还没有像CV和语音识别爆发起来,还存在很多灌水的空间。
Q5:内存和数据库以及CPU是否是深度学习的瓶颈?如果是则使用什么数据库能达到相应性能?
A5: 深度学习一般使用GPU训练,显存可能会成为瓶颈,数据库,cpu一般不会成为瓶颈。
Q6:请问对于图像处理,是否用不到RNN?这个问题很有意思。
A6:RNN用于有时间上前后关系的序列,以及需要记忆的网络,很有优势,可以说的是,在视频中,肯定是可以用到的,还有刚才的图片问答的整体系统中,也是需要用到RNN的。
Q7:请问深度学习在能应用在教育大数据分析中吗。
A7: DL基本可以用于任何数据集和问题,前提是有足够多的数据量,这个是最重要的瓶颈,然而随着对DL理论的理解,我们可以清晰的指导自己调参的思路,选择一条最佳的道路去解决这个问题,可否稍微详细介绍下最佳道路?最重要的是网络结构,先设计好是用CNN还是RNN,用多深的网络,用不用maxpooling,接下来就是Activation函数的选择了,目前比较好的是relu系列的,包括PRelu, Leaky Relu, RRelue,另一个选择就是maxout.如果需要处理复杂问题,可以考虑highway或resnet,这两个可以训练非常深的网络,如果过拟合严重,可以考虑dropout或者regularization。最后,再考虑hidden layer unit number, learning rate等等。
Q8:请问spark中那些可以在深度学习中应用呢?
A8: 目前有很多应用在Spark中的DL框架,包括Elephas(依赖Keras), SparkNet, CaffeOnSpark(依赖Caffe)。
Q9:请问在图像处理领域,DL还有哪方面的事情可以去研究?
A9:目前比较火的一个方向是 图像生成,DCGAN,还有利用DL进行去噪,甚至是超分辨率,去模糊等方面的研究。
Q10:在relu等方法之后,一定程度上减轻了梯度扩散的问题,请问网络层数该如何选择(显然不是越多越好)?或者说,现阶段限制网络层数的主要原因有哪些?
A10:网络层数过深目前依然会带来一些问题,比如训练过难,局部最优,鞍点等问题,还有就是也有过拟合的可能,如果问题确实非常复杂,比如图片分类,我们可以使用resnet或者highway来训练超深的网络,如果是简单一些的问题,我们可以考虑在深层一些的网络中加入类似dropout, weight regularization等减轻过拟合。
Q11:我是新手,想问下深度学习需要哪些技术和理论基础?
A11:DL,首先需要在线性代数方面的基础知识,其次还有概率论,凸优化,基础数据挖掘概念等知识。
Q12:DL在政务领域有哪些应用?
A12:可以参见MIT的Deep learning的书籍,里面有很基础的讲解,可以简单入门。
Q13:与VR有什么交叉点吗?
A13:与VR关联可能不大,但是与AR关系很大,因为AR需要先识别出图像中的实体,再去进行augmentation增强,其中的识别需要用到DL。
Q14:分布式环境上的深度学习,老师最推崇哪个?
A14:分布式的深度学习框架,最推荐tensorflow,在100台节点的gpu服务器集群上,tensorflow的总体性能是单节点的56倍,也就是可以达到56%的分布式效率,远超其他框架。
Q15:先请问黄老师一个不正经的问题:有哪些任务目前为止的实验结果表明不适合DL?
A15:稀疏特征的数据上,DL并不适用,比如适用bag of words再接DL效果一就很差,还有一个就是小数据量上DL可能会严重欠拟合。
Q16:话说对于一个大陆的学校的学生。如果本校没有什么出色老师研究这方面,怎么入门?
A16:建议先研究代码,先研读keras的tutorial中的sample code,然后再读MIT的Deep Learning这本书,最后读论文,通过tensorflow或者theano复现论文的方法。
Q17:如何保证程序不被坏的数据教坏,比如垃圾数据,或者恶意构造的数据,以影响其本身的学习精度,就像微软的小冰,最近看到国外版本好像都要下线了,就是被人教坏了。
A17:这个问题很有趣,目前确实没有什么特别好的办法解决这个问题,可能需要在网络结构上使用减轻过拟合的组件和策略,并且避免使用过大的learning rate和过小的batch size。
Q18: 请问黄老师 在金融风控征信方式dl应用场景 能举些典型例子么。
A18:在政务和金融领域的应用,比如使用DL实现自动的征信打分模型,政府或者银行拥有超大规模的数据,完全可以满足DL的需求,加上DL自动组合特征的能力,是完全可以在准确度上超过其他模型的。