Py学习  »  机器学习算法

《动手学深度学习(PyTorch版)》---新手该如何快速进入人工智能

数学人生 • 1 年前 • 112 次点击  

在 2015 年的时候,笔者结束了数十年的数学生涯,离开了学术界投身工业界。作为一个刚刚转行的新人,无论是从经验上还是技能上都与老员工和资深人士有着很大的差距。当时进入互联网公司的时候,身边的同事都有着多年的工作经验,但是由于文档建设和参考资料的缺失,导致我当年上手机器学习和深度学习的时候走了不少弯路。

当时,市面上的机器学习书籍相对较少,在翻阅了图书馆和网上资料之后,笔者自行阅读了一系列资料,包括《机器学习实战》,《机器学习》(西瓜书),《数据挖掘:概念和技术》等书籍,也包括网上的各种博客资料。在上面三本书中,第一本书强调理论与实战相结合,会在书中讲解机器学习的理论知识以及向读者展示其算法的源代码;另外两本书则偏向理论讲解,会向读者全方位地介绍机器学习各种知识点,这些都是入门机器学习的优秀书籍。

随着人工智能在互联网中的应用场景越来越多,人工智能的从业者也越来越多,互联网也大量招募了许多应届生和社招人员来从事机器学习的研发工作。无论是计算机视觉,自然语言处理,语音理解,都在互联网的诸多业务中得到了应用。在日常生活中,人工智能也逐渐改变了大家的生活。很多年前,在人脸识别技术还不发达的时候,安防系统和手机的验证系统都不会大量推广人脸识别系统。但是随着深度学习技术在图像竞赛中的成绩越来越高,准确率与日俱增的同时,这些技术从学术界走向工业界,进一步地走进大众的生活就成为了现实。

随着人工智能从业者的增加,人工智能的出版物总数也在持续增加,并且人工智能的专利数也在飙升,相较于 2015 年高出 30 多倍。这对于想要入行的新人,实在是非常的友好。近些年能够找到的人工智能入门书籍很多,无论是计算机视觉还是文本挖掘,都可以让每一个新人迅速走上研究人工智能的道路。

作为一位数学系背景的学生,笔者深知从数学界转行到工业界的困难与辛苦。毕竟两者的思维方式是不太一样的,数学系开设的课程以理论为主,不会过多地讲解其应用场景和实战案例;而且数学系的学生在长期的学习过程中会养成一个“毛病”,就是要等全部看完一本书才会想到应用它。这在工业界的工作中是完全不可取的。工业界强调的是实战和理论相结合,会强调一边做一边学,在学习中使个人成长,让项目来带动学习。

因此,对于数学系或者其他理论方向的学生,如果想要快速进入人工智能领域,那么最好的就是选择一本合适自己的书籍。此时,过于理论的书籍则不一定很适合,需要的是一本能够快速上手的工具书和入门书。人民邮电出版社近期推出了一本书籍,非常适合理论学科的学生上手学习,那就是《动手学深度学习(PyTorch版)》

这本书是一本适合新手的入门书籍,它不仅对深度学习原理进行了全面的阐述,还提供了丰富的代码逻辑给初学者参考。强调一边学习一边实战的观点,通过 Jupyter 记事本让读者体验深度学习的美妙,让读者在最短的时间内快速上手深度学习,避免只学了理论却不会应用的尴尬。

从本书的目录可以看出,本书大致可以大致分成几个部分:

  1. 1. 预备知识:带领读者回顾线性代数,微积分,概率论的基础知识;也讲解了机器学习的几个基本概念,让读者在后续的阅读中更加顺畅;

  2. 2. 神经网络:包括线性神经网络,多层感知机,卷积神经网络,循环神经网络;并且会介绍注意力机制这一个非常重要的概念;

  3. 3. 优化算法和计算性能:神经网络的训练是需要基于优化算法来做的,不同的优化算法带来的收敛速度是不一样的;而且神经网络在离线训练和上线使用的时候,都需要对它的性能进行必要的调优和提升。本书也花了很多篇幅在讲解这个部分;

  4. 4. 实战经验:除了上述理论之外,本书还会向读者展示如何参加 Kaggle 比赛,以及比赛的相关算法和数据处理经验。从整理数据集开始,数据增广,训练和预测,在线提交结果,作者们都向读者进行了详细的介绍。除此之外,在自然语言处理部分,作者介绍了工业界的情感分析案例,教大家如何根据情感的数据集和循环神经网络来分析数据。最后也介绍了 Bert 模型的微调方法。

《动手学深度学习(PyTorch版)》面向的读者是深度学习的从业者,高校学生。对于没有任何基础的学生,也能够在这本书的帮助下很轻松地上手深度学习。从上面这两页可以看出,作者们在介绍一个数学概念的时候,会把其数学定义和相关的 Python 代码展示给读者,让读者在初学或者回顾这个数学概念的时候,能够找到其背后对应的 PyTorch 代码,在这种情况下,读者就可以很轻松地将数学概念和计算机程序联系到一起,为以后走向工业界扫清了部分障碍。

本书在向读者讲解机器学习方法的时候,除了介绍该方法的理论之外,更加强调实战应用。就以“线性模型”这一章为例,作者以案例的方式,向读者展示了构建线性模型的初衷和动机,然后介绍了线性模型的模型结构和损失函数等关键点。接着,作者们向读者展示了如何才能够从零到一地构建一个线性回归模型,大体步骤分成以下几个:

  1. 1. 生成数据集和读取数据集:为了简单起见,作者用了一个构造的数据向大家介绍模型;

  2. 2. 定义线性模型,损失函数,优化方法:这是构建很多机器学习模型需要经历的关键步骤;

  3. 3. 训练模型,得到模型结果:基于构造的数据集,可以得到相应的线性模型,未来可以用作预测。

为了让读者们掌握开发代码的技巧,这本书还有一个官方网站(http://zh-v2.d2l.ai/index.html),在这个官方网站上,读者可以看到源代码,并且可以将其拷贝出来进行阅读和运行。避免读者每次都需要重新敲写所有的代码。

读者只需要按照书中的步骤,就可以轻松完成一个线性模型的整体训练过程。通过理论与实战相结合的方法,读者就可以相对容易地掌握这个模型。除此之外,作者还贴心地为诸多自学的读者准备了必要的练习题,通过做这些练习题,读者可以自我验证是否掌握了这些必要的基础知识,毕竟在没有学校老师的监督下,能否做出练习题就是是检验自己是否掌握知识的关键了。

与其他的机器学习教材有较大不同的就是《动手学深度学习(PyTorch)》会讲解不少实战和 Kaggle 竞赛的案例,包括:

  1. 1. 房价预测:使用多层感知机;

  2. 2. 图像分类(CIFAR-10)和狗的品种识别(Image Dogs):使用卷积神经网络;

  3. 3. 情感分析:使用循环神经网络。

在介绍这些实战案例的时候,本书都会从第一步入手,那就是从数据集的获取开始,然后就是数据预处理,再就是训练模型和模型调优,最后就是上传数据结果进行效果的评测。只要按照书本上的流程走一遍,每个读者都能够完成建模工作,给未来的学习和工作做好准备。

对于数学系或者其他理科院系的学生,在学习数学的过程中,肯定会强调打下坚实的基础再进行实战。但是这种学习方法在搞人工智能的过程中是不太可取的,就个人的经验来看,实在不行不主张学完所有的理论知识再开始实践,因为人工智能是一个非常依靠实战经验的行业。在工作的过程中,需要从业者对数据处理,特征构建,模型选择和训练有丰富的经验,而这些经验是只学习理论无法获得的,只有通过实战和理论相结合的方法,才有机会真正掌握机器学习和深度学习的相关技术。

为了让读者尽快地入门人工智能行业,《动手学深度学习(PyTorch版)》还贴心地为大家提供了所有源代码和彩色图片,将本书的源代码和理论知识相结合,读者就可以一边阅读理论知识,一边阅读源代码,一边进行新代码的开发。除了这些,本书还免费提供了教学视频和讨论区,让学习者在互相帮助中共同成长。多方位的交互式学习可以给读者带来全新的学习感受。本书的英文本 Dive into Deep Learning 是加州伯克利分校的深度学习教材,并且被全球多个高校作为深度学习的入门书籍。

在多种资源相辅助的情况下,读者掌握深度学习的速度将会迅速加快,在很短的时间内就可以成为一个深度学习的从业人员。在掌握了这本书之后,如果读者可以做一个或者多个实验室或者工业界的项目,那么读者对深度学习的理解肯定会更进一步。


相关文章推荐:

1. 值得阅读的数学类书籍

2. 《大数据安全治理与规范》--- 工业界如何搭建反欺诈体系

3. 《人工智能:现代方法(第4版)》--- 飞鸟与青蛙


欢迎大家关注公众账号数学人生

(长按图片,识别二维码即可添加关注)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152700
 
112 次点击