5.1_.jpg

 
先做个小调查。


    想想自己入门深度学习也已经有一年多了,当初刚开始上大一的寒假,参加数学建模比赛,翻看一些书籍经常写着神经网络、BP网络、多层感知器、逻辑回归等术语,感觉一脸茫然,当时没有耐心就立刻合上了书本。现在回头想想,这些已经是最简单的网络了,真正学习起来或许用不了一天吧。



    后来大三的时候,由于要想着研究生的方向,加上自己数理基础还不错,就开始踏入了深度学习这条“不归路”。结合我一年多的学习来看,深度学习主要包括两大模块,构建模型和优化参数;而深度学习的基础主要是高等数学、线性代数、概率论、编程,因此入门门槛并不高。但是要想把深度学习应用到一个具体问题上,还需要结合该问题去讨论,所以深度学习其实是一个跨学科的领域。前提是只要你学会了编程(Python语言居多)和一定的数理基础,你就可以把深度学习应用到你感兴趣的领域了。



    这里我主要谈一些我对构建模型和优化参数的经验知识。深度学习主要包括三种,有监督学习、无监督学习、强化学习(半监督学习适合样本不多的情况,这里暂不讨论),通常有监督学习的应用例如图像识别、语音识别等,无监督学习包括图像文本生成、机器作曲等,而强化学习最典型的例子就是前阵子很火的AlphaGo了,一句话总结就是愈战愈勇。现在商业界用的最多的还是有监督学习,毕竟这种学习模式有章可循,应用起来也很容易,只要给定样本和标签,肯定有办法比较好的将它们一一映射起来;无监督学习最典型的就是混合高斯分布了,用来集群发现,如用户群聚类划分;强化学习一般用于策略类问题,例如打游戏、控制机器人运动等,设定一个奖惩规则,它通过多次尝试最终表现的越来越好。无论是有监督学习、无监督学习、强化学习,都需要对问题特征分布的拟合,因此理论上都可以与神经网络挂钩。因此,只要掌握了各种神经网络的特点以后,再学习那些不是很困难。



    其实模型搭建好了,重头戏就是参数的优化了,这里最常见的就是梯度下降算法了,因此入门深度学习必须要掌握的就是梯度下降算法。梯度下降算法现在已经出来了很多变形,掌握它们之间的不同也是很有必要的。不过如果不是专门研究理论的,梯度下降算法理解个大概也就差不多了,因为具体应用的时候选择最合适的去应用就行了。当然参数优化,还包括学习率的选取、网络层数的确定、每层神经元个数的确定、dropout的比例以及各个参数的初始化等等问题,都是需要我们仔细考量的。这些都是需要一定的实践经验的,后面我再一一分享这些实践经验。


    最后,祝大家都能将深度学习中应用到自己感兴趣的领域。我也会慢慢分享我的经验和体会。
 
 
 
 
来源: 深度学习每日摘要
智造家