为初学者打造的Fastai学习课程指南
2018年07月03日 由 浅浅 发表
878254
0
“学习Fastai从哪开始?”这个问题可能并不合适。那么是不是要直接看第一个视频?并不是。
正是基于对Fastai的双重体验,我今天在巴西利亚发布了课程指南,为新参与者以及所有那些希望通过使用Fastai开始他们的AI之旅的人提供参考。
简单说说机器学习
目前,每个AI都需要由人创建,我们需要代码!
除了机器人和基因操作之外,AI采用必须训练学习的算法的形式(通常是人工神经网络的模型)。
实际上,算法的参数(也称为权重)最初具有使用提供给算法的观察(也称为示例)更新的随机值。这种方法被称为从数据集学习或机器学习(今天非常流行和广泛使用的深度学习方法是具有很大计算深度的机器学习)。
实际上,提供给算法的每个观测允许它计算的预测结果的这种观察的性质(通常是一个概率),通过与它的参数(例如,如果观测是猫的图像,所述预测执行的数学运算结果必须表明对应于猫的类)。然后,关于观察的真实值的误差允许更新参数的值(通常通过使用误差梯度的BackPropagation方法)。
然后,训练将继续,进行新的观察。
实现机器学习的库
因此,机器学习(ML)具有了数据,计算能力和算法。我们必须使用一种语言进行编码,以便实现这些算法,训练它们,测试它们,然后在生产中使用它们。
自2010年初开始大规模使用AI 以来,Python语言已成为Jupyter Notebook中ML和深度学习(DL)算法开发的语言。
由于这些算法的结构即将被标准化,已开发出来各种库,人们可以方便利用TensorFlow(谷歌),Keras,PyTorch(Facebook)与Fastai。
Fastai,不只是一个库
Fastai既是ML和DL算法的实现库,也是在旧金山大学数据研究所开始的课程的标题,现在可以在线获得(有关ML的1门课程和DL的2门课程)。
但其创作者Jeremy HOWARD和Rachel THOMAS走得更远。它也是一种新的自上而下的学习方法,允许边做边学,有超过10000人的社区。
每门课程都有一个免费下载的视频,论坛帖子和jupyter Notebook,通过fastai库运行。
如何从开始入门Fastai?该指南分为4个步骤:
我看到在巴西利亚的课程中有太多参与者因为4个主要原因而停止或无法真正掌握课程的优势:python,Jupyter Notebook,GPU和作业。
1)Python
Python是Fastai课程及其 Notebook中使用的编程语言。学习Fastai课程不需要是python专家并不是必不可少的,但需要进行最低限度的练习。
在线课程:
- 第一个Python Notebook(www.firstpythonnotebook.org)
- Python数据科学教程(github.com/ujjwalkarn/DataSciencePython)
- Coursera上的Python课程(www.coursera.org/courses?query=python)
- 书:Python深度学习(www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438)
以下2个Python库在Fastai Notebook中很常用,但你可以在课程中学习它们(它们不是先决条件)。
NumPy
NumPy是使用Python 进行科学计算的基础包。它允许对数组,矩阵,向量和高维张量进行数学运算,就好像它们是Python变量一样。
在线课程:
- Numpy教程(github.com/jamesdietle/fastaipart1v2/blob/master/Tutorials/NumpyTutorial.ipynb)
- Python Numpy教程(cs231n.github.io/python-numpy-tutorial)
Pandas
Pandas是一个开源的,拥有BSD许可的库,为Python编程语言提供高性能,易于使用的数据结构(例如:csv文件)和数据分析工具。它很适合与NumPy一起使用。
在线课程:forums.fast.ai/t/deep-learning-brasilia-licao-6/15955/3
2)Jupyter Notebook
Project Jupyter的目的是开发开源软件、开放标准和跨数十种编程语言(尤其是Python)的交互式计算服务。你将使用Jupyter Notebook来实现所有ML或DL算法。
在线课程:
- Jupyter Notebook简介(www.youtube.com/watch?v=wa0GRQCcOpI&feature=youtu.be&t=5452)
- Jupyter Notebook命令和快捷方式1(github.com/reshamas/fastai_deeplearn_part1/blob/master/tools/jupyter_notebook.md)
- 28种 Jupyter Notebook提示,技巧和快捷方式(www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/)
- Usar“可折叠/可扩展的jupyter细胞”e seus Jupyter Notebook(forums.fast.ai/t/deep-learning-brasilia-licao-1/13529/23)
- 一个有趣的Jupyter Notebook画廊(github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1)
3)GPU
一旦你了解了一些Python并知道如何使用Jupyter Notebook,你需要在具有GPU的服务器上安装Fastai库及其Notebook。
注意:如果你没有本地NVIDIA GPU,并且不想在线使用,则可以在计算机上安装Fastai并仅使用你的CPU,但是,获取ML/ DL模型的训练结果可能需要一段时间。
为何选择GPU?在训练ML或DL算法时需要它来减少训练时间。如果没有GPU,将无法使用数百万个数据训练ML或DL算法。
有两种可能性 :如果你的电脑有一个NVIDIA显卡,你可以配置你的本地GPU;也可以在线租用Google Cloud,Google Colab,PaperSpace,AWS或其他。
在线指南:阅读文章中的GPU段落。(forums.fast.ai/t/deep-learning-brasilia-revisao-licoes-1-2-3-e-4/14993)
本地GPU
Howto:在Windows上安装(forums.fast.ai/t/howto-installation-on-windows/10439)
在线GPU
- 谷歌云平台(300美元)
- Paperspace(15美元)
- Clouderizer + Google Colab(免费!!!)
- 亚马逊网络服务(AWS)
- Crestle
别忘了关闭虚拟机!
4)作业
Jeremy Howard为他教授的每个视频讲述了10个小时的个人工作,他是对的!
事实上,如果你想学习ML和DL,而不仅仅是理解原则,你必须去实践。
上面提到的(总之,了解python语言以及如何使用Jupyter Notebook,以及在GPU上安装Fastai库)是必要的先决条件,但还不够。
要真正学习,你必须多次观看视频,运行Fastai Notebook,研究代码行,在你不理解时到Fastai论坛提问,回答其他人提出的问题并发表文章以提高理解。这才是真正的学习!