全文共3753字,预计学习时长7分钟
在自学机器学习时,经常有人问:我该从哪学起?我需要达到怎样的数学水平呢?我学过Python了,那接下来我该做什么呢?
本文将对这些问题进行解答,你可以把这篇文章当作是能帮助你从编码小白逆袭为机器学习专业人才的大致框架。
编码第一。先让编码运行起来,再去学习需要用到的理论、数学、统计学或是概率问题的知识,而无需在编码运行前就弄懂这些。
要记住,开始学习机器学习后,你可能会感到很泄气,因为机器学习涉及的知识十分广泛,要慢慢来。
学习其他软件也可以,但以下步骤是针对Python的。
学习Python用法、数据科学工具用法以及机器学习概念
你需要花几个月的时间同时学习Python代码和各种机器学习概念,这二者都会用到的。
学习Python代码时,也要练习使用数据科学工具,如Jupyter和Anaconda。花几个小时研究研究,弄懂它们是做什么的、以及为什么要用这些工具。
学习资源
1.《AI元素》 — 概述了人工智能与机器学习的主要概念。
2.Coursera的《大家的Python》课程— 从头开始学习Python。
3.freeCodeCamp的《学习Python》 — 该网站会将Python所有主要的概念汇总到一个视频当中。
4.科里·谢佛(Corey Schafer)的《Anaconda教程》 — 这是一个可以学习Anaconda的视频,要想学习数据科学和机器学习,你需要利用Anaconda设置好你的电脑。
5.Dataquest的《Jupyter Notebook初学者教程》 —阅读文章,上手使用Jupyter Notebook。
6.科里·谢佛(Corey Schafer)的《Jupyter Notebook教程 》— 一个教你如何使用Jupyter Notebook的视频教程。
利用Pandas、NumPy和Matplotlib学习数据分析、操作与可视化技术
一旦掌握了一些Python的使用技能,就会想去学习处理数据与操作数据的方法。
在此之前,应该先熟悉一下Pandas、NumPy和Matplotlib的使用方法。
Pandas可以处理数据帧,数据帧类似于Excel文件当中的信息表,有横行和纵列。这种数据就是所谓的结构化数据。
Numpy可以基于数据进行数值运算,机器学习可以把能想象到的一切事物转化为数字,再建立出这些数字中的模型。
Matplotlib可以制图,实现数据可视化。对人们来说理解表格中的一堆数据可能很难,大家会更喜欢看那种有线条贯穿始终的图表。实现数据可视化是交流成果的重要环节。
学习资源
1.Coursera的《Python应用数据科学》— 针对数据科学开始调整你的Python技能。
2.《10分钟速学Pandas》— 快速浏览Pandas数据库和一些Pandas最实用的功能。
3.Codebasics的《Python Pandas教程》 — Youtube系列视频,内容涵盖所有主要的Pandas功能。
4.freeCodeCamp 的《NumPy 教程》 — Youtube上一个可以学习Numpy的视频。
5.Sentdex的《Matplotlib教程》—Youtube系列视频,教授Matplotlib所有最实用的功能。
利用scikit-learn 进行机器学习
学会数据操作与数据可视化方面的技能后,是时候学习建模了。
Scikit-learn是Python数据库,自带了很多有用的机器学习算法,以便使用。
它还有许多其他实用功能,用以辨别机器学习算法被学习得有多好。
要重点关注各种机器学习问题,例如分类问题与回归问题,还要学习这些问题对应的最佳算法是什么。每个算法无需从头学起,要首先学会如何应用它们。
学习资源
1.Data School 的《利用scikit-learn在Python中完成机器学习》 —Youtube视频专辑,教授scikit-learn的所有主要功能。
2.丹尼尔·伯克(Daniel Bourke)撰写的《探索性数据分析简介》— 该项目汇总了完成上述前两步所需的知识,同时配以代码和视频,这些材料可以帮助准备首场Kaggle竞赛。
3.丹尼尔·福尼莫索(Daniel Formosso)的“借助scikit-learn进行探索性数据分析”的笔记— 该材料从更深入的视角讲述上述学习资源所涵盖的技能与知识,在此基础上,设置了完整的机器学习项目。
了解深度学习的神经网络
在处理结构化不强的数据时,深度学习与神经网络是最佳的选择。
数据帧是有结构的,图像、视频、音频文件以及自然语言文本也有结构,但不如数据帧那么结构化。
贴士:大多数情况下,在处理结构化数据时,你会采用各种决策树的组合体(随机森林或是像XGBoost这样的算法),而面对非结构化数据,你可能会采用深度学习或迁移学习的方法(这种方法就是设置一个预先训练好的神经网络,并用它来解决你的问题)。
你可以从这种小贴士开始给自己整理笔记,同时在实际操作过程中不断地积累归纳。
学习资源
1.Coursera上由吴恩达(Andrew Ng)创建的deeplearning.ai— 由业界最优秀的人士来为你讲解深度学习。
2.由杰瑞米·霍华德(Jeremy Howard)设计的fast.ai 深度学习课程 — 由行业最优秀的从业者用实操法为你讲解深度学习。
课外班与课外书籍
在学习的过程中,如果能用自己设计的小项目来练习所学的知识,就非常理想了。这些项目无需过于复杂,也不需要有多大的变革性,你只要能说出“这个项目是我用某某技能或知识做出来的”就可以了,然后再在Github或博客上分享作品。Github用来展示编写的代码,博客文章用来展示如何与他人交流你的作品。你的目标应该是,每完成一个项目,就要在Github或博客二者之一上发布作品。
在应聘工作时最好是有要求的相关经验,而分享作品就是向你潜在的未来雇主展示自身能力的一个绝佳途径。
熟悉了一些机器学习和深度学习不同框架的操作方法后,你就可以尝试着从头开始编写这些框架,用这种方式来巩固所学知识。虽说不一定要在编写代码或是进行机器学习的时候做这些,但了解框架内部的运作方式可以帮助你更好地设计自己的作品。
学习资源
1.丹尼尔·伯克(Daniel Bourke)的《如何开展自己的机器学习项目》 — 开展之初也许会很难,这篇文章可以为你提供一些建议。
2.杰瑞米·霍华德(Jeremy Howard)设计的fast.ai深度学习基础知识课程— 如果你已经自上而下地了解过深度学习了,那么这个课程可以帮助你从下至上地填补你的知识漏洞。
3.安德鲁·特拉斯克(Andrew Trask)的《理解深度学习》— 这本书可以教会你如何从头开始建立神经网络,并且会讲解为什么你需要了解这个知识。
4.丹尼尔·伯克(Daniel Bourke)的《这些书可以帮你学习机器学习》 — Youtube视频,介绍了一些机器学习方面最好的书籍。
每个步骤需要花费多久的时间?
你可以在每个步骤上花费六个月甚至更多的时间,不要急功近利。学习新事物是需要时间的。作为一个数据科学家或是机器学习工程师,要培养的主要技能是如何针对数据提出好问题,然后尝试借助工具找出答案。
有时候你可能会感觉自己什么都没学到,甚至还退步了。忽视这种想法吧,不要每天都比较你的进展,要以年为单位看是否进步。
可以从哪里学到这些技能?
在上文中我列出了一些资源,这些都可以从网上找到,而且大多数都是免费的,但除了提到的这些还有非常多其他的资源。
DataCamp 就是个不错的平台,可以从中找到大部分资源。除此之外,我编写的机器学习与人工智能资源数据库也有许多免费或付费的学习资料。
要记住,解决问题是数据科学家或机器学习工程师的一部分职责。把第一项任务当作探索更多步骤信息的开端,创建属于自己的课程规划,以便更好地学习。
如果想了解机器学习的自我主导型课程是什么样子的,可以了解一下我的自创AI硕士生课程,这是我历经九个月的时间从一个编码小白逆袭为一名机器学习工程师期间学习的课程。虽然这个课程并不完美,但它是我自创的,这也是为什么我会得益于此。
对统计学、数学和概率学都有什么要求呢?
在学习过程中会学到这几方面的知识,但还是要从编码学起,因为要想在编码前学透统计学、数学或是概率学是完全不可能的事,这会让你退缩不前。
要是你的代码无法运作,讨论任何的统计学、数学和概率学问题都是毫无意义的。应该先让代码运作起来,再去运用自己的研究能力判断代码是否正确。
要考什么资格证书吗?
有证书是好事,但是你的目的不是要拿证书,而是掌握一些技能。不要认为证书越多掌握的技能就越多。
通过类似上述的课程或学习资源学好基础知识,然后再利用你自己的项目去学习某些特定的知识(这里指那些别人教不了的知识)。
推荐阅读专题
留言 点赞 发个朋友圈
我们一起分享AI学习与发展的干货
推荐文章阅读
ACL2018论文集50篇解读
EMNLP2017论文集28篇论文解读
2018年AI三大顶会中国学术成果全链接
ACL2017 论文集:34篇解读干货全在这里
10篇AAAI2017经典论文回顾
长按识别二维码可添加关注
读芯君爱你