弗兰克·凯恩

什么是机器学习?简单地说,机器学习描述的是用真实世界的数据训练的计算机算法,用来建立预测模型。

尽管机器学习是人工智能(AI)的一个分支领域,但它并不像看起来那么复杂。举个简单的例子,假设我们收集了100个人的身高和体重数据。我们称之为训练数据。我们可以用测量的高度在x轴上,重量在y轴上绘制我们收集的数据,如下图所示。

Python机器学习,数据科学和深度学习

最后更新于2021年2月

  • 111课
  • 初学者水平
4.6 (24479)

使用数据科学,Tensorflow,人工智能和神经网络|完成动手机器学习教程作者:Frank Kane, Frank Kane

探索课程

这张图上的每个点都代表了一个人的身高和体重。一个简单的机器学习算法可以将这一数据拟合成一条线。然后我们可以用这条线来预测根据身高的新人们的体重。把它想象成一道高中数学题。直线的一个方程是y = mx + b,在那里直线的斜率是b是y轴截距。一个机器学习算法叫做线性回归可以用来学习的最佳价值观是什么b来匹配我们现有的数据在本例中,我们得到y = 2.75x + 16.5,结果如下:

现在,我们已经了解了最适合我们的训练数据的线,我们可以插入新的高度值x并对重量进行预测y。看看机器学习有多简单吧?

机器学习的类型

有不同类型的机器学习最适合不同类型的问题。它们通常分为两类:有监督的和无监督的——但有时我们也把这两类结合起来。

监督机器学习

我们上面看到的线性回归就是一个例子监督式学习。这意味着我们的训练数据包含了我们试图预测的事情的已知的、正确的答案。对于每个接受线性回归模型训练的人,我们根据他们的身高知道他们的体重。它被称为监督因为我们可以很容易地评估我们的模型有多好,当它被训练时,通过比较它与已知的正确答案。大多数机器学习算法都属于监督学习范畴,包括回归、决策树、XGBoost等等。

在机器学习的世界里,我们试图预测的是标签。我们说有监督的机器学习处理标签训练数据。

非监督机器学习

有时,我们试图发现我们拥有的数据中不可见的模式。例如,描述一组文档的更广泛的主题是什么?我们能否根据电影的情节总结和剧本的相似程度来对其进行分类?我们可能不知道主题或电影类型的集合是什么,但非监督学习技术可以揭示它们。这些未知的属性被调用潜在的特征。诸如K-means聚类、主成分分析、潜在Dirichlet分配和k -近邻等技术可以用来揭示这些潜在特征。

由于我们不能提前知道正确的答案,无监督算法使用无标号训练数据。

Semi-Supervised学习

现实世界的项目并不总是一成不变的。假设你有一大堆训练数据,但是只有一部分带有标签(已知的正确答案)。这是一种常见的情况;许多问题需要人类对数据进行标记,然后才能用来训练机器学习算法。例如,训练一个图像识别系统可能需要人类手动分类用于训练系统的一组图像中的物体。然而,您可能有更多的图像需要标记比您实际能够标记,因为您只有这么多的人。

这就是半监督学习的切入点。您可以使用监督学习来训练一个模型,该模型根据接收到的人工生成的标签为未标记的数据分配标签。随着时间的推移,我们可以将监督算法产生的标签与人类产生的标签进行比较。当他们开始同意的时候,我们可以使用监督模型来标记我们的训练数据,而不是在模型有高度可信度的情况下标记人类。这些机器生成的标签被称为pseudo-labels

由于我们的训练数据现在包含由人类分配的已知标签和由模型推断的数据的混合物,这些模型被称为semi-supervised

那么神经网络呢?

神经网络并不完全符合上述的机器学习类别。相反,它们是高度灵活的算法,可以用于有监督、无监督和半监督学习。如果你正在寻找一种可以解决几乎所有问题的一刀切的机器学习算法,神经网络就是它。

神经网络的灵感来自于人类大脑的生物学,尽管现代神经网络与生物学上的神经网络有很大的不同。今天,神经元仍然是理解神经网络如何工作的一个有用的隐喻,但实际上,它们基本上是由线性代数和微积分驱动的,这些都经过了优化以获得最佳结果。

从概念上讲,你可以把神经网络想象成一层又一层相互连接的虚拟“神经元”。这是一个神经网络架构的例子:

这个假设的网络将被用来根据它们对事物进行分类特性。也许我是想根据导演和演员来预测电影的类型。我们把这些特征——演员和导演——放到这个神经网络的底部。一旦这个网络被训练,它就会在最上面的输出中产生电影属于多种不同类型之一的概率。

图中的每一个圆代表一个神经元,尽管现在它们大多被称为“单位”。在这个网络的顶部和底部之间有几层神经元,它们都是相互连接的。每个神经元的工作就是把所有的信号加起来(这就是Sigma符号的意思),然后应用激活函数决定什么信号输出到下一层(这就是弯曲线所表示的)。

当我们训练神经网络学习每个神经元之间的最佳权值和偏差时,神经网络的魔力就产生了。了一种叫做梯度下降法用于查找要分配给每个连接的最佳权重。由于有许多不同的权值可以有许多不同的值,神经网络可以代表非常复杂的问题。我们最终得到的大量杂乱的权重使我们很难直观地理解为什么一个给定的训练有素的神经网络会产生它所能得到的答案,但它通常都很有效。

近年来,神经网络已经主导了机器学习研究,因为它们非常灵活,可以应用于广泛的复杂问题。然而,它们并不总是最优解决方案,为了获得最佳性能而对它们进行调优是非常具有挑战性的。

那么人工智能呢?

神经网络、人工智能和机器学习通常可以互换使用——但它们是不同的东西。

人工智能是一个比机器学习更广泛的范畴。早期的人工智能尝试根本没有使用机器学习算法;相反,许多是基于规则的系统。早期的会话机器人实际上是由一组预先编程好的关键词组成的,他们可以根据所问的问题参考这些关键词。如果你说了“高兴”这个词,机器人可能会有一个人类生成的规则来回应“我很高兴你对此感觉很好!”“像这样的AI系统的行为是明确编程的,而不是在过程中学习的东西。

现代人工智能倾向于更多地依赖机器学习,神经网络是其中一种方法。神经网络可以学习到,对“我感到高兴”的适当反应是“我很高兴你对此感觉很好”,这仅仅是基于训练过程中的反馈。

神经网络并不是人工智能领域唯一使用的机器学习技术。另一个流行的算法叫做强化学习它会根据训练期间做出的决定的结果,学习在不同状态之间做出决定的最佳方法。例如,强化学习系统可以通过尝试随机移动并观察哪些会导致被幽灵杀死,哪些会导致找到能量药丸并吃掉幽灵来学习如何玩《吃豆人》。当你读到关于人工智能系统在电子游戏或桌游中打败人类的报道时,这很可能是强化学习技术的使用。

复杂的人工智能系统,比如自动驾驶汽车,可能会结合不同的技术。神经网络可以用来识别路牌,而强化学习可以用来学习如何最好地导航街道,其中可能还有大量基于规则的系统。

从我们的角度来看,神经网络是机器学习的一个子集,而机器学习又是人工智能的一个子集。它们不是一回事。

机器学习的肮脏秘密

机器学习研究的世界充满了奇特的数学、算法和术语——但这隐藏了一些令人不快的真相。如果你进入现实世界的机器学习领域,你会发现玩弄算法只是工作的一小部分。

尽管有复杂的算法,成功的机器学习系统很大程度上是反复试验的结果。我们给它起了个奇特的名字:hyperparameter调优。这些模型通常有很多hyperparameters比如学习速率,你的神经网络有多少层,每层有多少神经元——对于一个给定的问题,很少有好的方法知道这些参数的最佳值是什么。机器学习实践者只需简单地尝试这些参数的各种组合,看看哪种组合在实验中效果最好,就可以调整他们的模型。在一天结束的时候,它将一堆隐喻性的意大利面扔向墙壁,看看会粘住什么。那没有什么奇特的!

现实世界的机器学习更多的是数据处理,而不是实际的机器学习。你对算法和参数的选择远没有你用来训练机器学习系统的数据质量重要。数据科学家通常花更多的时间分析和清理用于训练系统的数据,而不是处理算法本身。有一个完整的学科叫做工程特性致力于准备和预处理您的培训数据,以产生最好的结果。这通常是机器学习研究人员在现实世界中花费大部分时间的方式。数据分析、统计分析和处理丢失的数据是这项工作的重要组成部分。当您使用云计算将特征工程应用到大量数据时,它很快就会成为应用机器学习的难点。

在工作中,甚至你为一个问题选择最佳算法的能力也可能不重要。“自动”系统可以在训练数据上尝试不同的算法,并通过实验自动找出最好的算法。您可以简单地将您的训练数据提供给AutoML系统,并对其进行自动超参数调整,从而生成一个高度优化的机器学习系统,而无需您的参与或专业知识。机器学习系统现在可以创建自己的机器学习系统了!
对于刚进入这一领域的人来说,这是一个好消息——机器学习比以往任何时候都更容易获得。但是那些了解幕后的人为什么如何机器学习在当今的就业市场上仍然非常有价值。

你想知道机器学习和深度学习之间的区别吗?在这篇文章。

机器学习的顶级课程

测试和监控机器学习模型的部署
Christopher Samiullah, Soledad Galli报道
4.5 (172)
不平衡数据的机器学习
索莱达加利
4.7 (132)
机器学习模型的部署
Soledad Galli, Christopher Samiullah报道
4.4 (2558)
DP-100:使用Azure机器学习的A-Z机器学习
Jitesh Khurkhuriya, Python,数据科学和机器学习A-Z团队
4.5 (3416)
畅销书
机器学习的特征工程
索莱达加利
4.7 (1801)
Python机器学习回归大师班
Ryan Ahmed博士,博士,MBA, Mitchell Bouchard, Ligency Team
4.3 (339)
学习Streamlit Python
杰西·e·Agbe
4.6 (50)
Python中的贝叶斯机器学习:A/B测试
懒惰的程序员。
4.6 (4381)
畅销书
Python中的无监督机器学习隐马尔可夫模型
懒惰程序员团队,懒惰程序员公司。
4.7 (2905)
评价最高
数据科学:Python中的监督机器学习
懒惰程序员团队,懒惰程序员公司。
4.6 (2163)
Python集成机器学习:Random Forest, AdaBoost
懒惰程序员团队,懒惰程序员公司。
4.8 (1500)
机器学习和人工智能:Python中的支持向量机
懒惰程序员团队,懒惰程序员公司。
4.6 (753)

更多机器学习课程

机器学习的学生也会学习

让你的团队。领导行业。

通过Udemy for Business为您的组织订阅在线课程图书馆和数字学习工具。

请求一个演示

弗兰克·凯恩课程

终极实用Hadoop:驯服你的大数据!
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.6 (23473)
畅销书
Apache Spark与Scala -大数据的实践!
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.6 (12958)
畅销书
流大数据与Spark流和Scala -动手
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.4 (2954)
Python机器学习,数据科学和深度学习
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.6 (24466)
用Apache Spark和Python驯服大数据——动手吧!
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.5 (10124)
用MapReduce和Hadoop驯服大数据——动手吧!
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.6 (2559)
畅销书
用AWS Lambda构建一个无服务器的应用程序-动手吧!
《圣狗教育》作者:弗兰克·凯恩,布莱恩·塔吉丁,弗兰克·凯恩
4.6 (1566)
Elasticsearch 6和弹性堆栈-深入和动手!
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.6 (2297)
利用机器学习和人工智能构建推荐系统
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.4 (1676)
畅销书
自动驾驶汽车:Python中的深度学习和计算机视觉
作者:Frank Kane, Frank Kane, Dr. Ryan Ahmed, phd, MBA, Mitchell Bouchard
4.2 (757)
最终非官方的Udemy在线课程创建指南
《圣狗教育》作者弗兰克·凯恩,弗兰克·凯恩
4.9 (170)
AWS认证数据分析专业2021 -动手!
圣狗教育:Frank Kane, Stephane Maarek | AWS认证解决方案架构师和开发者助理,Frank Kane
4.5 (6491)
畅销书

弗兰克·凯恩课程