深度学习快速上手建议

深度学习快速上手建议

前言

本文谨结合个人经验讲述深度学习的快速入门方法,可能存在讲述不全面不严谨之处,欢迎评论指出。

我因为在寒假前大意地对老师夸下海口,保证要在假期内复现一位学长的医学图像语义分割项目的代码,而不得不在一个月内快速入门深度学习。(不得不说,适当的压力确实可以带来不小的动力。)

那段时间的学习不可谓不痛苦。之前没有任何经验,几乎没有人引导,网上找到的资料对新手也不是十分友好,一切都要自己摸索。因此,我也在入门阶段徘徊了很长时间,走过了太多的弯路。

所以我想把我的经验在这里总结成文,希望能够对想入门深度学习的朋友提供一点微薄的帮助。

本文分为以下几个部分:

  • 深度学习入门路线总览
  • Python、Numpy、Pandas等工具
  • 机器学习和深度学习基础知识
  • 深度学习框架
  • 其他注意事项

第〇章 总览

一个深度学习项目主要流程是:

  1. 搜集数据

  2. 数据预处理

  3. 深度学习模型建立

  4. 用数据来训练模型

  5. 检验模型准确度

  6. 部署使用模型

首先,贯穿整个流程的编程语言就是Python,它是最基本的工具,绝大部分操作都是使用Python完成的。

搜集数据、数据预处理等过程还会涉及到许多Python的库,例如Numpy、Pandas、OpenCV、Matplotlib等等。

建立深度学习模型,通常采用已有的深度学习框架,这些框架内置了很多深度学习相关函数,可以节省编程时间、减小代码难度以及提高运行速度。

我们的目标就是快速入门上面提到的这些工具。

深度学习有很多分类,最常见的,按照处理问题的不同,可以大致分为计算机视觉(Computer Vision, 简称CV)和自然语言处理(Natural Language Processing, 简称NLP)。例如,图像分类属于CV,语音识别属于NLP。当然也有很多深度学习模型是难以直接按照这个标准划分的,例如生成对抗网络(GAN)就可以解决很多类问题。

通常深度学习会从CV开始入门,因为一些简单的CV问题更容易理解,对新手更加友好。

推荐的学习顺序是:第一章基本工具和第二章基础知识同时学习,之后再学习某一个深度学习框架,最后进行项目实战。

第一章 基本工具

1.1 Python

Python入门的资料很多,B站上有大量的入门视频,自行选择即可。

私以为这本《Python编程:入门到实践》不错 提取码:2021

1.2 Numpy

Numpy是一个数值计算工具包,效率远远高于Python原生的列表,大部分深度学习框架基于Numpy。

下面这门课程可以几小时快速入门Numpy基本操作。

【机器学习基础库】Numpy数据计算从入门到实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

1.3 Pandas

Pandas是基于Numpy的一个数据分析工具,其应用并不局限于深度学习,是深度学习数据处理常用的工具包。

同样推荐下面这个快速入门的Pandas课程。

Pandas数据分析从入门到实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

1.4 其他工具

除了上述两个库以外,还经常用到绘图工具包Matplotlib、图像处理工具OpenCV、中文分词工具包Jieba等,没有必要在一开始全部学会,实践项目时可以快速上手,现学现用。

下面是B站的一个OpenCV入门课程。

(新)基于Python的Opencv全系列速成课_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

第二章 基础知识

首先明确几个概念。人工智能是通过人工的手段模拟人类的智能,是一个很大的学科概念。机器学习是指让计算机通过学习获得“智能”的算法,是人工智能的重要组成部分。深度学习是机器学习算法的一种,以前叫做神经网络。

了解机器学习和深度学习的基础知识可以帮助我们在建立模型和训练模型的时候更好的分析问题、优化模型。

由于是快速入门,可以比较粗略地学习此部分,一些复杂的数学证明和推导可以跳过。但是简单模型应该自己动手推导一遍。

网络上最著名的机器学习和深度学习基础知识的入门课程不得不说应该是吴恩达的课程。

2.1 吴恩达机器学习课程

[中英字幕]吴恩达机器学习系列课程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

如果是快速入门,主要学习第1/2/3/8/9章的内容。有充足的时间可以顺序全部看完。

2.2 吴恩达深度学习课程

[双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

如果是快速入门,可以先学习前四章。有充足的时间可以顺序全部看完。

第三章 深度学习框架

目前较为流行的深度学习框架有Pytorch、Tensorflow、PaddlePaddle,可以根据自身情况选择一个框架进行学习。

3.1 Pytorch

Pytorch是目前学术界最流行的深度学习框架,适合大学生学习。难度略微大于Tensorflow。

先学习下面的课程快速上手。

Pytorch 入门与实战 最通俗易懂的实例课程 2020年全新课程 没有哪个课程能比得上这个课程简明易懂_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

再看下面这个全面的、含有实战项目的课程。

(强推)Pytorch深度学习实战教学_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

(这个视频的UP主上传有大量深度学习的课程,后续可以持续关注学习)

3.2 Tensorflow

Tensorflow在工业界十分流行,虽然近年来其发展势头低于Pytorch,但Tensorflow2.0使用比Pytorch可能更为方便,更加适合新手入门。

同样是先快速上手的课程。

tensorflow2.0入门与实战 2019年最通俗易懂的课程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

然后是比较全面的吴恩达系列Tensorflow四部曲。

【吴恩达团队Tensorflow2.0实践系列课程第一课】TensorFlow2.0中基于TensorFlow2.0的人工智能、机器学习和深度学习简介及基础编程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

【吴恩达团队Tensorflow2.0实践系列课程第二课】卷积神经网络在TensorFlow2.0中的应用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

下面两个比较进阶,入门可以先学前两个。

【吴恩达团队Tensorflow2.0实践系列课程第三课】TensorFlow2.0中的自然语言处理_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

【吴恩达团队Tensorflow2.0实践系列课程第四课】序列、时间序列和预测_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

3.3 PaddlePaddle

PaddlePaddle是百度开发的深度学习框架,目前已进入2.x版本。使用体验很不错。PaddlePaddle最大的有优点是,官网提供GPU算力,用户可以通过签到每日领取十个小时的Tesla V100算力。另外官网上有大量课程可以学习,包含深度学习基础知识和大量实战。同时也一直在开新的课程,不定期会有在线直播课程。选择PaddlePaddle的同学可以直接在AI Studio上入门和进阶。

官网AI Studio : Baidu AI Studio - 人工智能学习与实训社区

第四章 其他

4.1 GPU

深度学习的计算基于矩阵,通常采用适合矩阵运算的GPU进行计算训练,直接用CPU速度会十分感人(差距几十倍几百倍的那种感人,流汗)。

所以要么个人的电脑配有高性能的GPU,要么采用在线的云服务器进行训练,以下是本人使用过的在线GPU服务器:

矩池云 - 专注于人工智能领域的云服务商 (matpool.com)

MistGPU - 深度学习雾计算平台

比起阿里云等服务器,这两个网站最大的优点是便宜,计时计费,缺点是,服务器数量还不多,使用人数一多会出现无机可用的现象。因此有条件的可以长期租用阿里云等服务器。钞能力十分出色的朋友可以选择自己购买GPU。

4.2 工具的安装

Python的安装、Ancanda的安装、Tensorflow的安装、Pytorch的安装等等,运气差的话会十分棘手,因为每台计算机软硬件的差异,随便哪个步骤都会报错(我装了一个星期才全部搞定,流汗黄豆人)。在这里也没有完整的教程,读者可以自行搜索,上面提到的课程中也会讲述安装方法,遇到安装错误不要悲伤、不要烦恼,一定要善于使用搜索引擎。

尾声

入门新知识是异常痛苦的,在缺乏引导的情况下尤其如此。但同时,一旦入门以后,当你领略到了新知识的神奇和体会到了那种获取真理的快感,之前的痛苦就真的无所谓了。深度学习入门真的就如同《桃花源记》中写的:“初极狭,才通人,复行数十步,豁然开朗。”

笔者拙劣的文笔只能写出如此单调的小文章,希望能够对想入门深度学习却还在徘徊的读者带来一丝丝的帮助。

以上。

TriangleABCD 2021.6.7

你可能感兴趣的:(深度学习,机器学习,tensorflow,pytorch)