神经网络导论:按需网络研讨会和常见问题解答现已可用!
2018年10月1日 在工程的博客
9月27日,我们举办了一场在线研讨会神经网络概论——与Databricks的技术产品营销经理Denny Lee合作。这是Databricks免费深度学习基础系列的第一次网络研讨会。
在本次网络研讨会中,我们介绍了深度学习的基础知识,以更好地理解是什么赋予了神经网络表达能力:
- 深度学习的潜力和可能的应用实例
- 背后的数学概念人工神经网络(安)
- 梯度下降优化、反向传播和激活函数的概念
我们使用Keras (TensorFlow后端)在Databricks上,这里是我们今天开始的笔记本的链接MNIST演示使用Keras CNN在Databricks
你现在可以注册到第2部分和第3部分,在那里我们将继续探索神经网络的力量,并深入学习训练神经网络的最佳实践(从准备数据集到参数调优)以及卷积神经网络的架构示例:
如果你想免费访问Databricks统bob体育亚洲版一分析平台bob体育客户端下载试一下我们的笔记本,你可以访问免费试用.
最后,我们进行了问答,下面是按主题分组的问题和答案。
基本面
Q:首选哪种激活功能?或者哪些情况适合特定的激活函数?
使用ReLU作为激活函数是一个很好的起点,正如许多神经网络样本Keras MNIST所指出的那样,TensorFlow CIFAR10剪枝等)。请注意,每个激活函数都有自己的优点和缺点。关于激活函数的一个很好的引用CS231N很好地总结了选择:
“我应该使用哪种神经元类型?”使用ReLU非线性,小心你的学习速率,并可能监控网络中“死亡”单元的比例。如果你担心这一点,试试Leaky ReLU或Maxout吧。不要用s型。尝试tanh,但期望它比ReLU/Maxout工作得更差。
问:你根据什么来选择层数和每层神经元的数量?
一般来说,层数越多,每层单元数越多,人工神经网络的容量就越大。关键的问题是,当你的目标是建立一个广义模型时,你可能会冒过拟合的风险。
从实际的角度来看,一个好的起点是:
- 输入单元的数量等于特征的维度
- 输出单元的数量等于类的数量(例如,在MNIST数据集中,有10个可能的值代表数字(0…9),因此有10个输出单元
- 从一个隐藏层开始,它是输入单元数量的2倍
吴恩达(Andrew Ng)是一个很好的参考Coursera机器学习课程.
问:训练深度学习模型的理想训练和测试数据分割大小是多少?
深度学习模型的分割大小与机器学习的一般规则没有太大区别;使用80/20分成是一个很好的开始。
架构/生态系统
问:你应该使用什么类型的Azure VM来训练神经网络(以及多少内存)?
一个很好的起点是利用带有GPU节点的集群(在撰写本文时,对于Azure,这是n系列vm)和足够的内存来保存可大小的数据部分。
深度学习在数据库里
问:Databricks是否提供循序渐进的教程,以帮助开发一些使用人工神经网络(ANN)的试点?
是的,当然,我们鼓励你从这个开始笔记本探索人工神经网络的潜力。同样,更多的例子,请参考Databricks文档的深度学习部分(AWS|Azure).
额外的资源
- 机器学习101
- Andrej Karparthy的ConvNetJS MNIST演示
- 什么是神经网络中的反向传播?
- CS231n:视觉识别的卷积神经网络
- 神经网络和深度学习
- TensorFlow