如何自学人工智能?

不少同学跃跃欲试,想投入 AI 的怀抱,但苦于不知如何下手。其中,人工智能的核心就是机器学习(Machine Learning),它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。

我们今天就来分享一篇来自 EliteDataScience 上专门讲给机器学习入门自学者的教程,一步步教你如何从基础小白进阶为 ML 大拿。快上车吧,别找硬币了,这趟车不要钱!

你是否正在准备自学机器学习,但又不知道怎么去学、还被那些贵的要命的培训课程吓得不行?

今天我们在这篇文章里就教你怎样免费获得世界级的机器学习教育,你既不需要有博士学位,也不必是技术大牛,更不必卖好几个肾去买一份很贵的培训课程。不管你是想成为数据科学家还是在开发中使用机器学习算法,其实你都能比想象中更快地学习和应用机器学习。

本文告诉你在机器学习之路上的几个步骤,保你不会迷路,下面开始我们的表演。


第一步:先搞懂什么是机器学习


在闷头学习机器学习之前,最好先把什么是机器学习搞清楚,了解机器学习的基本概念。

简单来说,机器学习就是教电脑怎样从数据中学习,然后做出决策或预测。对于真正的机器学习来说,电脑必须在没有明确编程的情况下能够学习识别模型。

机器学习属于计算机科学与统计学的交叉学科,在多个领域会以不同的面目出现,比如你应该听过这些名词:数据科学、大数据、人工智能、预测型分析、计算机统计、数据挖掘······

虽然机器学习和这些领域有很多重叠的地方,但也不能将它们混淆。例如,机器学习是数据科学中的一种工具,也能用于处理大数据。

机器学习自身也分为多个类型,比如监督式学习、非监督式学习、增强学习等等。例如:

邮件运营商将垃圾广告信息分类至垃圾箱,应用的是机器学习中的监督式学习;电商公司通过分析消费数据将消费者进行分类,应用的是机器学习中的非监督式学习;而无人驾驶汽车中的电脑合摄像头与道路及其它车辆交互、学习如何导航,就是用到了增强学习。

想了解机器学习的入门知识,可以看看一些网络课程。对于想对机器学习领域的重点慨念有个基础的了解的人来说,吴恩达教授的机器学习入门课程绝对必看:

coursera.org/learn/mach

以及“无人车之父” Sebastian Thrun 的《机器学习入门》课程,对机器学习进行了详细介绍,并辅以大量的编程操作帮助你巩固所学内容:

cn.udacity.com/course/i

此外,Sebastian 在优达学城上还开设了一本《人工智能入门》课程,讲解人工智能领域的基本原理以及相关应用比如机器人、计算机视觉和自然语言处理等:

cn.udacity.com/course/i

当然也少不了集智君整理制作的免费专栏,在这里你可以免去安装环境的烦恼,直接投入简单地机器学习训练中来:

边看边练的简明机器学习教程 Part I - 集智专栏

这些课程都是免费的哦!

大概了解机器学习后,我们就来到知识准备阶段了。


第二步:预备知识


如果没有基本的知识储备,机器学习的确看起来很吓人。要学习机器学习,你不必是专业的数学人才,或者程序员大牛,但你确实需要掌握这些方面的核心技能。

好消息是,一旦完成预备知识,剩下的部分就相当容易啦。实际上,机器学习基本就是将统计学和计算机科学中的概念应用在数据上。

这一步的基本任务就是保证自己在编程和统计学知识上别掉队。


2-1:用于数据科学中的Python编程


如果不懂编程,是没法使用机器学习的。幸好,这里有份免费教程,教你如何学习应用于数据科学中的Python语言:

elitedatascience.com/le


[Python入门] 01 基本法则 - 集智专栏:

jizhi.im/blog/post/pyin

从零学习数据科学中Python的完全指南:

analyticsvidhya.com/blo

以及40多个Python学习资源的汇总文章:

datacamp.com/community/


2-2:用于数据科学的统计学知识


了解统计学知识,特别是贝叶斯概率,对于许多机器学习算法来说都是基本的要求。

这里有份学习数据学习中统计学知识的教程:

elitedatascience.com/le


2-3:需要学习的数学知识


研究机器学习算法需要一定的线性代数和多元微积分知识作为基础。点这里,获取一份免费学习教程:

elitedatascience.com/le


第三步:开启“海绵模式”,学习尽可能多的原理知识



所谓“海绵模式”,就是像海绵吸水一样,尽可能多地吸收机器学习的原理和知识,这一步和第一步有些相似,但不同的是,第一步是对机器学习有个初步了解,而这一步是要掌握相关原理知识。


可能有些同学会想:我又不想做基础研究,干嘛要掌握这些原理,只要会用机器学习工具包不就行了吗?

有这个疑问也很正常,但是对于任何想将机器学习应用在工作中的人来说,学习机器学习的基础知识非常重要。比如你在应用机器学习中可能会遇到这些问题:

  • 数据收集是个非常耗时耗力的过程。你需要考虑:我需要收集什么类型的数据?我需要多少数据?等此类的问题。
  • 数据假设和预处理。不同的算法需要对输入数据进行不同的假设。我该怎样预处理我的数据?我的模型对缺失的数据可靠吗?
  • 解释模型结果。说机器学习就是“黑箱”的观点明显是错误的。没错,不是所有的模型结果能直接判读,但你需要能够判断模型的状况,进而完善它们。我怎么确定模型是过度拟合还是不充分拟合?模型还有多少改进空间?
  • 优化和调试模型。很少有人刚开始就得到一个最佳模型,你需要了解不同参数之间的细微差别和正则化方法。如果我的模型过度拟合,该怎么修正?我应该将几个模型组合在一起吗?


要想在机器学习研究中解答这些问题,掌握机器学习的知识原理必不可少。这里推荐两个世界级的机器学习课程,一定会让你受益良多:

哈佛大学的机器学习课程,让你了解从数据收集到数据分析的整个流程:

cs109.github.io/2015/ cs109.github.io/2015/pa github.com/cs109/conten
(提示:这个课程和吴恩达教授的课程配合食用,效果更加)

斯坦福大学的机器学习课程,清楚地讲解了机器学习的核心概念:

see.stanford.edu/Course


还有两部值得读的参考书籍:《统计学习导论》和《统计学习基础》

这两部书的英文原版下载地址:

《An Introduction to Statistical Learning》:

www-bcf.usc.edu/~gareth

《Elements of Statistical Learning》:

web.stanford.edu/~hasti

注:看不惯英文原版的同学,可以去读这两本书的中文版。


建议大家可以多逛逛Reddit上的机器学习论坛:

reddit.com/user/techrat

reddit.com/r/MachineLea

reddit.com/r/learnmachi

当然,Quora上的机器学习版块也很有料:

quora.com/pinned/Machin

逛论坛不容易看到高阶知识,你不能一直停留在菜鸟阶段不是,要升级就有必要看看专业的论文。arXive是个好去处,是个收集物理学、数学、计算机科学与生物学的论文预印本的网站。

关于人工智能的版块:

arxiv.org/list/cs.AI/re

关于机器学习的版块:

arxiv.org/list/cs.LG/re

如果嫌自己搜索论文太麻烦,可以在网站 arxiv-sanity.com 上注册一个账号,它可以按自己的感兴趣标签给你推送最新的 arXive 上的论文。


第四步:针对性实际练习


在开启“海绵模式”后,你应该掌握了机器学习的基础理念知识,接着就该实际操作了。

实际操作主要是通过具体的、深思熟虑的实践操作增强你的技能。本步目标有三个:


  • 练习机器学习的整个流程:收集数据,预处理和清理数据,搭建模型,训练和调试模型,评估模型。
  • 在真正的数据集上实践操作:对于什么样的数据适合用什么类型的模型,自己应逐渐建立这方面的判断能力。
  • 深度探究:例如在上一步,你学习了很多机器学习算法知识,在这一步就要将不同类型的算法应用在数据集中,看看哪个效果最好。


完成这一步后,就可以进行更大规模的项目了。


4-1 九个基本部分


机器学习是一个非常广泛和丰富的领域,几乎在每个行业都有应用。因为要学习的东西太多,初学者很容易发慌,而且在面对很多个模型时也很容易迷失,看不到大局。

因此,我们把机器学习大概划分为九个部分:


ML整体学习:


基本的机器学习原理,比如方差权衡这些知识。


优化:


为模型发现最优参数的算法。



数据预处理:


处理缺失数据、偏态分布、异常值等。


取样和拆分


怎样拆分数据集来调整参数和避免过度拟合。



监督式学习


使用分类和回归模型从标记数据中学习。



非监督式学习


使用因素和集群分析模型从非标记数据中学习。



模型评估


根据不同的性能度量做出决策。



将不同模型相结合,达到更好的性能。



商业应用


机器学习如何帮助不同类型的商业业务。




4-2 实践工具


对于初学者,我们建议采用现成可用的算法,这样可以把时间用在熟悉机器学习流程上,而不是写算法。根据你使用的编程语言,有两个不错的工具(链接为使用教程):

Python的Scikit-Learn

elitedatascience.com/py

R语言的Caret

youtube.com/watch?


4-3 利用数据集实践操作


在这步需要用数据集进行搭建和调试模型的实际操作,也就是将你在“海绵模式”阶段学到的理论转变为代码。我们建议你选择UCI Machine Learning Repo,Kaggle和Data.gov上的数据集开始入手:

UCI Machine Learning Repo:

archive.ics.uci.edu/ml/

Kaggle:

kaggle.com/datasets

Data.gov

data.gov/

第五步:机器学习项目


终于到了最后一步,也是很有意思的一步。目前为止,我们已经完成了:知识储备、掌握基本原理、针对性练习等阶段,现在我们准备探究更大的项目:

这一步的目标就是练习将机器学习技术应用于完整的端到端分析。

任务:完成下面的项目,依次从易到难。


5-1:“泰坦尼克号”幸存者预测

“泰坦尼克号”幸存者预测是练习机器学习时相当流行的选择。而且有非常多的教程可供参考。

Python 教程:

kaggle.com/c/titanic

github.com/savarin/pyco

R语言教程:

amunategui.github.io/bi

will-stanton.com/machin

5-2 从零开始写算法

我们建议你先以一些简单的方面写起:逻辑回归、决策树、k 最近邻算法等。

如果中间卡住了,这里有些小技巧可以参考:

  • 维基百科是个不错的资源库,提供了一些常见算法的伪代码。
  • 可以看看一些现成ML工具包的源代码,获得灵感。
  • 将算法分为几部分。写出取样、梯度下降等的分离函数。
  • 在开始写整个算法前,先写一个简单的决策树。


5-3 选个有趣的项目或自己感兴趣的领域

其实这应该是机器学习最棒的部分了,可以利用机器学习实现自己的想法。

如果实在没想到好点子,这里有6个有趣的初学者机器学习实践项目:

elitedatascience.com/ma

结语:

如果你按照这个步骤一步步扎实学习的话,相信你最终一定在机器学习方面小有成就!

我们对初学机器学习的人还有10个小小的tips:

  1. 为自己设定学习目标和期限,尽力完成。
  2. 打好学习基础,掌握基本理论。
  3. 将实践理论相结合,不要只关注某一个方面。
  4. 试着自己从头写几个算法。
  5. 多角度思考问题,找到自己感兴趣的实践项目。
  6. 多想想每个算法能产生什么价值。
  7. 不要相信科幻电影中对ML的胡吹。
  8. 别过度理会网上关于ML知识的争论。
  9. 多想想数据的“输入/输出”,多问问“为什么”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI 人工智能学习经典书单

人工智能相关岗位中,涉及到的内容包含:算法、深度学习、机器学习、自然语言处理、数据结构、Tensorflow、Python 、数据挖掘、搜索开发、神经网络、视觉度量、图像识别、语音识别、推荐系统、系统算法、图像算法、数据分析、概率编程、计算机数学、数据仓…

牛客 牛牛爱喝酒(模拟)

文章目录1. 题目2. 解题1. 题目 链接:https://ac.nowcoder.com/acm/contest/9752/A 来源:牛客网 牛牛是一个酒鬼,非常爱喝酒, 一瓶酒m元钱, 两个酒瓶可以换一瓶酒, 四个瓶盖可以换一瓶酒, 现在…

零基础30分钟开启你的快速开发之旅

零基础30分钟开启你快速开发之旅 1. 前言 接触AgileEAS.NET SOA 中间件平台(以下简称EAS.NET平台)有4个多月时间,经过试用认为可以把它作为一个开发的基础平台,开发团队可以把开发的重点放在需求的把控和项目的交付上,…

牛客 牛牛的独特子序列(双指针/二分查找)

文章目录1. 题目2. 解题2.1 双指针2.2 二分查找1. 题目 链接:https://ac.nowcoder.com/acm/contest/9752/B 来源:牛客网 牛牛现在有一个长度为len只包含小写字母‘a’-z’的字符串x,他现在想要一个特殊的子序列, 这个子序列的长…

TCPIP通信

最近在开发TCPIP通信,封装了3个类,望各位大神指点指点。1 using System;2 using System.Collections.Generic;3 using System.Text;4 using System.Net.Sockets;5 using System.Threading;6 using System.Net;7 using System.Linq;8 using System.Net.Ne…

Python 20 秒画完小猪佩奇“社会人”!

每天写代码的程序员,你们知道今年社交平台上最火的带货女王是谁吗?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇。 如果你经常用抖音、快手、B 站、知乎、微博……或者类似的任何一个内容或社交平台&…

使用RNN预测文档归属作者

文章目录1. 文本处理2. 文本序列化3. 数据集拆分4. 建立RNN模型5. 训练6. 测试参考 基于深度学习的自然语言处理 1. 文本处理 数据预览 # 有两个作者的文章(A, B),定义为0, 1 A 0 # hamilton B 1 # madison UNKNOWN -1# 把…

LeetCode 1674. 使数组互补的最少操作次数(差分思想)

文章目录1. 题目2. 解题1. 题目 给你一个长度为 偶数 n 的整数数组 nums 和一个整数 limit 。 每一次操作,你可以将 nums 中的任何整数替换为 1 到 limit 之间的另一个整数。 如果对于所有下标 i(下标从 0 开始),nums[i] nums[…

Kaggle 房价预测竞赛优胜方案:用 Python 进行全面数据探索

[导读]Kaggle 的房价预测竞赛从 2016 年 8 月开始,到 2017 年 2 月结束。这段时间内,超过 2000 多人参与比赛,选手采用高级回归技术,基于我们给出的 79 个特征,对房屋的售价进行了准确的预测。今…

使用GRU单元的RNN模型生成唐诗

文章目录1. 读取数据2. 字符索引3. 创建文本序列4. 创建文本编码序列5. 使用GRU单元建立RNN模型6. 文本生成参考 基于深度学习的自然语言处理 本文使用 GRU 单元建立 RNN 网络,使用唐诗三百首进行训练,使用模型生成唐诗。 GRU RNN 网络能够克服简单RNN…

Python数据结构常见的八大排序算法(详细整理)

前言 八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。 常见的八大排序算法,他们之间关系如下: 排序算法.png 他们的性能比较: 下面,利用Python分别…

牛客 牛牛选物(01背包)

文章目录1. 题目2. 解题1. 题目 链接:https://ac.nowcoder.com/acm/contest/9887/A 来源:牛客网 牛牛有现在有n个物品,每个物品有一个体积v[i]和重量g[i],他想选择其中总体积恰好为V的若干个物品,想使这若干个物品的总重量最大&…

微信小程序最常用的布局——Flex布局

最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex 1 .container { 2 display: flex; 3 flex-direction: column; 4 align-items: center; 5 background-color: #b3d4db; 6 } 编译之后的效果很明显,界面…

LeetCode 649. Dota2 参议院(循环队列)

文章目录1. 题目2. 解题1. 题目 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行…

'[linux下tomcat 配置

tomcat目录结构bin ——Tomcat执行脚本目录 conf ——Tomcat配置文件 lib ——Tomcat运行需要的库文件(JARS) logs ——Tomcat执行时的LOG文件 temp ——Tomcat临时文件存放目录 webapps ——Tomcat的主要Web发布目录(存放我们自己的JSP,SER…

微信小程序基础(一)

一.注册小程序账号,下载IDE 1.官网注册https://mp.weixin.qq.com/,并下载IDE。 2.官方文档一向都是最好的学习资料。 注意: (1)注册账号之后会有一个appid,新建项目的时候需要填上,不然很多…

[Kaggle] Spam/Ham Email Classification 垃圾邮件分类(RNN/GRU/LSTM)

文章目录1. 读入数据2. 文本处理3. 建模4. 训练5. 测试练习地址:https://www.kaggle.com/c/ds100fa19 相关博文 [Kaggle] Spam/Ham Email Classification 垃圾邮件分类(spacy) [Kaggle] Spam/Ham Email Classification 垃圾邮件分类&#xff…

微信小程序中实现瀑布流布局和无限加载

瀑布流布局是一种比较流行的页面布局方式,最典型的就是Pinterest.com,每个卡片的高度不都一样,形成一种参差不齐的美感。 在HTML5中,我们可以找到很多基于jQuery之类实现的瀑布流布局插件,轻松做出这样的布局形式。在…

LeetCode 1684. 统计一致字符串的数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。 如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致 字符串。 请你返回 words 数组中 一致 字符串的数目。 示例 1: 输入&#xff…

微信小程序:页面跳转时传递数据到另一个页面

一、功能描述 页面跳转时,同时把当前页面的数据传递给跳转的目标页面,并在跳转后的目标页面进行展示 二、功能实现 1. 代码实现 test1页面 // pages/test1/test1.js Page({/*** 页面的初始数据*/data: {name:Tom,age:12},buttonListener:function(){…