十步直通深度学习
随着深度学习的不断火热,任何一个开发者都想上深度学习这趟快车。但是?到底怎么样才能快速上手了?以下是我自己的方式学习。我绝不会声称这是最好的方式,但是直到现在看来这条道路是我认为最佳的方式。
在这篇文章中,我将向你介绍10个步骤去转型深度学习,希望可以帮助到你。
OK,出发!
1-相信你可以做到:
很多人担心机器学习(ML)和深度学习(DL)对他们来说太复杂了,这些技术是不是太高深了?我可以确切到底告诉你我做到了,你也可以。一定要相信自己,自信才能让你有信心的一直走下去。
你的第一个目标应该是了解深度学习是什么,它可以或不可以做什么以及如何在我们自己的应用程序中使用它。大量的数据集?算法?模型?你应该首先确定这些乐高积木是什么,听起来好像是堆积木,对没有听错,它和其他开发的流程是一样的。你可以把它们结合起来,开始构建一个很酷的深度学习模型。
提示#1:DL不是黑魔法,它是代码,和其他技术没什么差别。
2-忽略数学:
前向传播、后向传播、损失函数、梯度下降这是神马??第一次接触深度学习就被行话的压倒在地。是的,不得不承认的是数学是ML的基础。但,这不应该是你的出发点。在编写一行代码之前,谁会花费几个小时或者更长的的时间去研究这行代码中的数学知识?这通常是你如何在DL库中启动训练过程:
model.train(data, labels, loss_function, optimizer)
你可以花几个星期来了解基础数学,仅仅是了解,作为一个开发者,千万不要深究这里面是什么。使用黑匣子的方法是以最小的焦虑开始。随着时间的推移,你可以更好地了解每个模块的工作原理,并且可以进一步深入,但不是现在。
提示#2:把你不明白的东西当作黑盒子,专注于界面。
3-Python:
DL是代码,那么,你应该掌握什么语言?如果你必须选择一个,那就是Python,因为它不仅是数据科学,也是ML和DL的主要语言,它是一个非常有用的语言,正如Python AWS SDK aka boto3所示。如果你还没有使用它,或者你正在学习它,那么确保你对列表,元组,字典等有一个很好的理解,这些数据结构在DL代码中无处不在。对于核心语言,我强烈建议你也学习这些Python工具的基础知识:
1.Mathplotlib(https://matplotlib.org/):绘图库。
2.Numpy(http://www.numpy.org/):科学计算,对于数组和特别有用矩阵操纵。
3.Pandas(https://pandas.pydata.org/):数据分析库。
4.OpenCV(https://opencv.org/):图像处理库。
5.Jupyter(http://jupyter.org/):构建Python笔记本的Web应用程序。
提示#3:学习Python ,享受终生的红利。
4-奔跑之前:
在你跑步学习之前,我建议你了解AI,ML和DL的关系(防止学术错误)。DL是ML的一个子集,所以在跳入DL之前,你应该知道一些关于ML的知识。你应该花时间学习“传统”ML的数据集、主要问题(回归,分类,聚类等),每个问题的流行算法等等,神经网络只是其中的一种技术。对ML的更广泛的理解将帮助你看到何时使用DL,学习Python是一件好事,因为现在你可以通过scikit-learn(http://scikit-learn.org/stable/)来学习ML。这个库很容易使用,并且支持大量的ML算法。如果你想要挑战一下自己,你也可以看看PySpark(Spark的Python API)和Spark MLlib(Spark的机器学习库)。如果你需要处理大型数据集,Spark的强大的数据管理功能是一个不错的选择。在你的学习阶段,它们是过度的,但是当你开始构建生产应用程序时,记得使用它们。
提示#4:首先,深度学习是机器学习,按照正确的顺序学习它们。
5-选择一个库:
在选择库是记住一点,你选择哪一个DL库并不重要。只要它有一个Python API并且足够友好来隐藏低级库,这样就行了。这里有一些选择:
1.Keras(https://keras.io/)。
2.Apache MXNet和它的Gluon API(https://mxnet.incubator.apache.org/)。
3.Caffe2(https://caffe2.ai/)。
4.PyTorch(http://pytorch.org/)(偏向于实验,但很有希望)。
注意:Theano(http://deeplearning.net/software/theano/)是非常低级的,Tensorflow也是低级别的,很难学习,并且会产生挫折感,我不会推荐这些给初学者。查看文档,运行一些教程,做出自己的想法。其中总会有一个库会让你感觉更舒适。
提示#5:选择库时一定要忽略炒作,这将有助于你学的更舒服。
6-代码,代码!
7-坚持,坚持!
8-不要担心,数学很好玩!
9-专注学习!
10-继续学习!
本文由阿里云云栖社区组织翻译。
文章原标题《10+steps+on+the+road+to+Deep+Learning》,
作者:Julien Simon
译者:虎说八道,审阅: