机器学习很容易
机器学习是无处不在的。从医学诊断、语音和手写识别,自动交易和电影推荐,机器学习技术被用于决定关键业务和生活的每一刻。每台机器学习问题是独一无二的,因此它可能是一个挑战来管理原始数据,确定关键特性,影响到你的模型,训练多个模型,并进行模型评估。
在这个会话我们使用MATLAB探索机器学习的基础。通过几个例子我们回顾典型工作流为监督学习(分类)和无监督学习(集群)。
亮点包括
- 访问,探索、分析和可视化数据在MATLAB
- 学习者使用分类统计和机器学习的应用和功能的工具箱来执行常见的机器学习任务,如:
- 特征选择和特征转换
- 指定交叉验证方案
- 训练的分类模型,包括支持向量机(svm),提振和袋装决策树,再和判别分析万博1manbetx
- 执行模型评估和比较用混淆矩阵和ROC曲线来帮助选择最好的为您的数据模型
- 将训练模型集成到应用,如计算机视觉、信号处理和数据分析。
的主持人:沙Prasanna MathWorks产品营销经理,他专注于MATLAB和附加产品统计,机器学习和数据分析。s manbetx 845加入MathWorks之前,沙在甲骨文软件设计和开发工作。沙拥有从亚利桑那州立大学电气工程硕士学位。
记录:2015年3月19日
你好,欢迎来到机器学习很容易。我的名字是沙Prasanna。我是产品经理MathWorks统计和机器学习产品。s manbetx 845
这是议事日程的今天的演讲。我要从高层开始概述什么是机器学习和你可能要考虑的原因。然后我们将看到一些机器学习的重要挑战。
接下来,我将深入探讨了机器学习解决一个有趣的问题,涉及到真实数据。为了解决这个问题,我将介绍一个典型的工作流,常常被用于解决机器学习问题。然后我们将通过另一个有趣的例子,涉及到图像数据。我将向您展示一个现场演示,使用视频从一个摄像头来识别对象。我们将包装会议的总结和一些指导当考虑机器学习。
由于这是一个简单的话题,没有先决条件。基本熟悉MATLAB是有帮助,但不是必需的。机器学习是无处不在的。这些技术正在得到越来越多的使用在当今世界关键业务和生活做决定。今天,随着机器学习,我们能够解决问题在汽车、金融、计算机视觉以及其他领域之前被认为是不可能的。
机器学习是什么?让我们花一分钟快速机器学习的高级概念。即使你熟悉这个话题,这应该作为一个快速提示当它实际上是有用的机器学习。
我们可以定义机器学习技术,使用数据并生成程序来执行一个任务。让我解释一下,上下文中的一个例子。考虑一个任务,需要使用传感器数据从手机检测一个人的活动;例如,如果这个人是走路,坐着,站着,等等。标准的方法来解决这样一个任务是分析信号并写出一个程序一套精心设计的规则,或者你可能知道先天的一组方程或一个公式使用输入和输出预测。
机器学习的方法是这样的程序直接从数据中学习。在这种情况下,我们提供输入和输出数据的算法和学习程序来解决这个任务。这一步通常被称为训练。输出是一个模型,现在可以用来探测活动从新的传感器数据。
注意到我不明确提及一个特定的机器学习算法,因为有很多算法可供选择,每个都有自己的优点和缺点。我们将会看到,当我们穿过这个例子的细节。如果有两件事我想让你远离这张幻灯片,这是,一个,你需要的数据。如果你没有数据,你不能做机器学习。这是一个强烈的需求。
两个,只考虑机器学习任务很复杂,而且没有魔法方程或公式来解决这个问题。如果你有一个公式,你可以实现它。机器学习工作,但是在这种情况下不推荐方法。
所以让我们去MATLAB看看机器学习方法是什么样子。数据我们正在与包括六个输入,三个加速度计和陀螺仪的三个手机。响应,或输出,执行的活动。包括行走、站立、跑步、爬楼梯、铺设。
这是分类学习者。这是一个互动的工具,允许您执行常见的机器学习任务,比如交互式地探索你的数据,选择特性,指定验证计划,培训模型和评估结果。在我离开这里,我有几个不同的机器学习模型,已经被训练在传感器数据。每个模型的旁边是一个百分比的数字表明选择分类器在一个单独的准确性验证集。我在这里可以使用可视化探索我的数据搜索模式和趋势。
培训新模式是很容易的。我只是导航到分类器画廊,选择感兴趣的分类器,然后火车。培训完成后,你可以看到历史列表中的新模型以及模型的准确度。这个数字越高,模型可能在新数据上执行的越好。我将选择表现最好的模型,点击出口开始使用我的模型在MATLAB中,我可以看到,在工作区中导出的模型是在这里。
我现在想使用这个模型,以及一些测试数据,可视化模型的预测结果。这是一个阴谋,显示两个半秒的流加速度计和陀螺仪数据。绿色栏在顶部显示实际的活动人执行相应的传感器信号。栏底部是绿色如果模型能够成功地预测的实际活动的人,这是红色如果是如果它无法预测实际的活动。你看到行走和爬楼梯间模型经常被混淆。
让我们快速回顾一下我们刚才实现。我们使用数据,以适应不同模型用分类学习者。然后,我们选择了一个有不错的效果,我们测试,以确保它是应该做什么。这似乎很简单,那么为什么机器学习有名声那么辛苦吗?
要回答这个问题,我想使用一个引用一个著名统计学家,曾在教科书中写道,“所有模型都是错的,但有些是有用的。”Why? Because models are approximations. Not just machine learning models—all models are approximations based on several assumptions, but that doesn't make them any less useful. Machine learning models can explain complex patterns in data, but to apply machine learning successfully, you need to find useful models, and that can be a challenging task.
在现实中,不是一个,但在机器学习的每一步的几个挑战工作流。数据在所有的形状和大小。它可以是简单的数字数据,如从金融数据feed或传感器信号,或可以从相机或流媒体图像文本数据。真实的数据集通常是混乱的,而不是总表。
预处理数据需要特定于域的算法和工具。例如,信号或图像处理算法需要从信号和图像数据中提取有用的特性。统计算法所需的特征选择和特征转换。我们常常需要来自多个域的工具,当使用多个机器学习算法,寻找最好的模型可以是一个艰巨的和非常耗时的任务。
它的核心,选择最好的机器学习模型是一个平衡。高度灵活的模型可能是准确的,但也可能overfit数据和表现不佳的新数据。在另一个极端,简单的模型可能承担太多的数据。总有权衡速度、准确性和复杂性的模型。
最后,机器学习工作流从来都不是一个方便的线性工作流程。我们总是不断地来回,迭代,并尝试采用不同的想法在我们收敛到一个解决方案。今天我的目标:把你介绍给一组通用的工具和策略来应对这些挑战。
这是一个简单的两步工作流程我们喜欢跟随在解决一个机器学习的任务。第一步是训练你的模型。我们先引进一个数据,将来自不同的来源,如数据库、流媒体设备,等等。接下来,我们使用特征提取预处理数据或其他统计工具。这一步是至关重要的数据转换成一种机器学习算法可以使用的格式。
在那之后,我们准备从数据中学习。如果任务是预测标签或类别,我们选择分类方法。如果任务是预测连续的值,那么我们选择回归方法,然后我们去建立一个模型。当然,这是一个迭代的过程,需要来回的预处理步骤,尝试不同的机器学习算法,调整不同的参数,等等。
这个工作流的第二步是实际使用模式,因此在左边,我有新数据,并在右边,我需要做出预测。我们需要从数据去预测吗?首先,我们需要使用所有新数据的预处理步骤,所以这里没有额外的工作。我们只是重用所有的努力工作我们花在培训阶段。
接下来,我们从训练阶段和使用模型做出预测。几个工程问题,第二步是通常部署或集成到生产环境中,比如,使用机器学习服务器上执行自动化的特点。现在让我们使用这个工作流通过MATLAB的例子。
这个例子的目的是训练一个分类器来自动确定人类活动基于传感器测量。数据包括6个输入,三个加速度计和三个陀螺仪。输出的响应执行的活动:走路、站立、跑步、爬楼梯、铺设。
我们将如下的方法。首先,我们将从传感器信号中提取基本特征。然后我们将使用分类学习者训练并比较几种不同的分类器,最后,在看不见的传感器数据测试结果。
这是MATLAB。我们将从当前文件夹窗口。由于工作流程的第一步是将数据,我要加载一些原始传感器数据我已经在垫子上文件。导入这个数据,我所要做的都是拖拽到工作区窗口。工作区窗口可以帮助你跟踪的所有变量在MATLAB中,无论是现有的变量或新的变量创建我们前进。
我的数据由七个变量。前六是感官的输入变量,三个陀螺仪和加速度计为3 x, y,和z。最后一个变量,TrainActivity,包含活动标签为每个传感器测量的观测。请注意所有的变量都7000左右的观察。让我们看看一个个人感觉输入的样子。
如果我画一行轴陀螺仪的数据,我们看到它有大约128点。现在,这是数据所代表的含义。经常收集传感器数据和固定的帧窗口。每一行,与128个读数对应两个半秒的传感器数据。
现在,这个数据不是以一种可以用于机器学习。我必须首先处理所有这些输入提取特征为每个这些128点或two-and-a-half-second窗户,和我要做这6个传感器输入。但是在我们开始与特征提取之前,让我们看看原始传感器数据是什么样子的。
我在这里有一个定制的情节显示三个加速度计原始传感器数据,和他们有不同的颜色对应的活动表现的人。阴谋在MATLAB相当互动。我可以放大看如果有任何视觉模式或者有趋势,可以帮助我们确定人的活动。
在匆匆一瞥,我们可以看到,传感器值不同的寻找每一个颜色。例如,橙色的值,对应于爬楼梯,是完全不同于紫色的值,对应于站。然而,与此同时,很难在视觉上区分步行和爬山因为涉及大量的运动。这些都是适合使用机器学习等问题,因为它并不总是显而易见的,我们可以为每个这些活动定义规则。
从特征提取步骤开始之前,我将从这六个传感器输入创建一个表。持有混合型数据表的优秀工具,这在机器学习中很常见。在这个例子中,我们有传感器测量,数字,和标签分类值。
我现在有一个表变量在工作空间,包括所有的六个人传感器变量。用表进行机器学习的另一个优点是,我可以申请一个特征提取函数的变量用一行代码在这个表。所有我要做的就是叫VarFun,这代表变量函数,并通过特征提取功能。WMean这里是一个函数,这个函数计算中的每一行的平均值传感器变量。在这种情况下,我计算two-and-a-half-second帧传感器值的平均值。
WMean在浏览器我当前文件夹是一个函数,如你所见,这是一个非常简单的函数。但根据您的应用程序和功能你想提取,这可能是您精明。除了的意思是,我想提取两个功能,这是一个标准偏差对于每一帧,PCA,即主成分分析,我想仅保留第一主成分。从表可以容纳混合型数据,我将分配标签表中作为一个新的变量活动活动。
让我们运行部分,看看人类活动数据表的样子。我一共有19列,前六对应于框架的平均值。接下来的六标准差的框架,和最后的六个主成分分析输出。我的最后一列是活动相应的观察,可躺、坐、爬楼梯,站或走。
现在,我们有一个数据准备好了,让我们移动学习者训练分类模型。分类学习者统计和机器学习的工具箱的一部分,你可以启动它通过输入分类学习者MATLAB命令行上。或者你可以找到它在AppStat下垫统计和优化。
我们首先先从MATLAB工作区进口我们的数据。在第一步的导入对话框,我们选择数据集从MATLAB工作区。在第二步,注意应用程序自动选择变量预测或反应。
这个基于数据类型的应用程序决定。然而,你也可以选择改变它的作用或完全删除变量。现在,我们离开这。
第三步,我们可以选择我们的验证方法。验证防止过度拟合问题。选择交叉验证当你有一个规模相对较小的数据集,因为它使有效的利用数据。如果你有足够的数据选择坚持。
我要选择这个选项对于我们的问题,因为我们有很多的数据点。设置我的持有比例到20%指示应用程序使用80%的数据验证模型的训练和20%的性能。最后的选择通常不推荐。以来的所有数据用于训练和测试,这将导致模型的偏差估计的准确性。
分类学习者是一个交互式的环境,有许多不同的窗口和组件,我保证我们会经过的每一个,当他们成为有关。将来发布在顶部显示从左到右工作流从导入你的数据导出您的模型。中心是由反应变量两两分组的散点图。
这个情节可以寻找有用的模式。例如,这对预测,我们注意到,似乎是分开休息的活动。坐着也似乎是分开的,但有一些重叠。上的特征选择选项将来发布可以排除的预测模型。对于这个例子,因为我们没有太多的预测,我们将离开这个。
解决分类问题时,没有一刀切。不同分类器适合不同类型的数据和问题。分类学习者可以选择决策树、支持向量机,最近的邻居,和系综分类,每个分类器类型,都有几个优秀的起点的预设一系列的分类问题。万博1manbetx如果你不确定,选择弹出的工具提示给你一个简短的描述分类器。
使用MATLAB时,帮助总是只是一个点击之外。为进一步援助,只需点击右上角的问号,这打开了应用程序的文档。你会发现你需要的所有信息的应用程序。现在,让我们进入下一节指导选择一个分类器。
这是一个不错的表给你指导,分类器选择,取决于你想要的权衡。例如,决策树是快速适应,但有媒体预测的准确性。另一方面,最近的邻居有很高的预测精度对于较小的问题,但也有高内存使用。让我们使用本文从文档和首先从决策树。
训练模型很简单。简单地选择一个预设的画廊和训练,这将产生一个火车模型在模型中历史,连同其预测精度。让我们也训练中树和一个复杂的树。执行最好的模型验证设置总是绿色框所示。
除了预测精度的百分比,还有其他有用的诊断工具。混淆矩阵是一个伟大的工具,它可以告诉你如何分类器的执行在匆匆一瞥,这就是你读一个混淆矩阵。任何对角线上正确地分类。任何从对角线被错误归类。完美的分类器将对角线上100%和0%的其他地方。
让我们仔细看看一个活动:爬楼梯。读这篇文章的方法是89.1%的时间,模型成功预测活动。然而,10.9%的时间,该模型认为爬楼梯是走路,或者换句话说,模型分类错误的爬楼梯走。我们总是可以切换不同的模型在现代历史比较混淆矩阵。
另一个诊断工具中可用的应用是汽车C曲线。汽车C曲线是用来描述二元分类器的灵敏度。曲线的形状显示敏感性和特异性之间的权衡。当我们上进和右边的曲线,我们增加的机会真阳性,但也增加假阳性的可能性。
在我看来,最大的优势之一使用应用程序,而不是编写代码的能力训练多个模型。除了决策树,我现在将最近邻分类器训练,因为我知道他们快速训练和预测。当训练多个模型,你不必局限于这些预设。
如果你是一个高级用户,你可以把先进的弹出式调整分类器的参数。这些变化也显示在模型中为了方便历史。我们现在有八款车型左右模型中的历史,我训练他们在几秒钟内,无需编写一行MATLAB代码。
有两种模式,您可以导出您的分析。您可以导出您的模型直接转化为MATLAB,或者你可以选择生成MATLAB代码让你自动化的所有步骤我们在构建这个模型,而无需编写任何代码。让我选择这个选项来显示你所生成的代码是什么样子。
我在MATLAB进行了良好的注释,完全自动生成MATLAB代码。我们还可以看到不同的步骤一个工作流被代码。例如,提取预测和响应,使用资讯分类器训练一个分类器,设置一个坚持验证等等。你可以定制这个生成的代码将它集成到您的应用程序。
让我们回到分类学习者和导出模型相反,我们可以看到,该模型用于MATLAB工作区。现在我们已经准备好测试模型的新数据。首先,我们在一些新的传感器数据加载垫文件。然后,我们应用相同的特征提取步骤之前。然后我们使用导出的模型测试结果在这个新的传感器数据。
正如我们之前看到的,顶部绿色栏显示了实际活动表现的人,和绿色栏底部,当模型成功地检测活动。它是红色的,如果让一个错误。如果你想尝试一个新的模型,您可以简单地回到分类学习者和直接导出模型或者生成MATLAB代码和培训新模型预测新数据。
让我们快速浏览一下工作流来总结我们刚才做的。我们的培训从手机传感器获得的数据传感器信号。我们基本的预处理技术应用于提取功能,如平均标准偏差和主成分分析。然后我们使用分类学习者应用到达我们最好的模型基于抵抗验证精度。
对于新数据的预测,我们在新数据应用相同的预处理步骤,然后使用一个训练有素的模型进行预测,然后可视化结果。让我们来看另一个例子,我们将使用图像数据训练机器学习模型。这个例子的目的是训练一个分类器自动检测汽车摄像头的视频。数据由几种图像的四个不同的玩具汽车。输出的响应是一个标签为每个这四个汽车。
我们将如下的方法。首先,我们将从这些图像中提取的特征使用了一种叫做bag-of-words。然后我们使用这些功能训练并使用分类学习者不同的分类器进行分类。最终这是有趣的部分,我们会看到我们现场演示模型的实时训练识别汽车从一个摄像头在我的办公室。
所以让我们切换到MATLAB。我要清理我的工作区,并开始白纸。让我们看一看我们的数据。这里有很多图片和文件夹,每个文件夹名称的标签设置图片的文件夹。让我们看看MATLAB之外的图像是什么样子。
这里有一堆图片沙丘从几个不同的角度和不同的照明条件下,等我有几个图像的四辆汽车。在处理图像时,加载循环中的所有图像和跟踪所有的文件和文件夹和标签可以是痛苦的。计算机视觉系统工具箱方便工具如图像集,使这一任务变得容易。我只是提供图片设置一个文件夹,我所有的图片和要求看所有的子文件夹。图像集的另一个重要优点是它不加载所有的图像记忆,所以很容易使用当你有很多很多的图片。
预处理数据,提取特征,我将使用一个名为bag-of-features的方法。这是一个相当复杂的技术从图像特征提取,效果特别好。如果你有兴趣学习更多关于什么功能,计算机视觉系统工具箱文档有详细解释下什么算法。现在,让我们将这个函数作为一个特征提取工具,我们将使用从图像中提取特征。
就像我们在上一个示例中,我们创建一个表,并分配标签。让我们转到分类学习者并开始训练我们的模型。让我们看看数据。我们有200个新从图像中提取特征,最后一个变量的响应。我又会选择坚持作为我的验证,我现在准备开始训练模型。
我要培养几个模型快,从最近的邻居和支持向量机。万博1manbetx现在,我有一些或多或少的训练,让我们做一个快速的视觉诊断使用混淆矩阵。混淆矩阵是对角,所以这是一件好事,我们很快就会出口这些模型之一,看它如何执行在真正的流媒体图像。
我运行这个函数之前,我想给你的代码,是多么容易获得流媒体实时图像并进行分类。两个输入的函数。首先是火车模型,第二个是bag-of-features对象时,我将使用来自新图像提取特征。
开始一个摄像头是很容易的。所有我需要做的是调用摄像头命令。在连续运行循环,首先,我从摄像头获取一个快照,然后把它转换成灰度级,这意味着该模型应该能够识别汽车没有颜色信息。下一步就是从这个新的图像提取特征,最后,使用预测函数和训练模型进行预测的新形象。让我们回过头来运行这个函数。
上面这图显示图片从我的摄像头,这里的绿色栏是模型的结果做出预测。这是我使用的分类器,该条形图显示分类器是多么自信,这辆车属于闪电,板牙,奈杰尔,或沙丘。让我们移动相机模型如何执行在不同的角度和方向。
所以模型大多被闪电,但当我们搬到奈杰尔,您将看到该模型并不完全相信哪一辆车。在底部的概率图显示了你如何自信模型是预测哪一辆车。这是沙丘,最后母亲。
让我们从分类学习者出口另一个模型,看看两个模型执行并排。所以我将使用线性支持向量机与缺省名称,选择出口。所以我现在有两个分类器,或者两个模型在我的工作区。一个是资讯。另一个是支持向量机。万博1manbetx
现在让我运行这段代码,比较这两个分类器的性能。我们看到的是一个视频比较并排两个分类器的性能。左上角的红色是我们支持向量机分类器的性能,并在底部的右边是资讯分类器的性能。这里要注意最重要的是它不仅是在分类学习者容易比较和测试模型,但它同样容易出口这些模型,以MATLAB实时和测试它们。
那使我们想起这个演示。现在让我们回到我们的演讲。让我们再次总结我们只是使用我们熟悉的工作流图来完成。
我们的输入由几个磁盘上的标记图像。我们使用bag-of-words方法产生新的功能。然后我们使用分类学习者应用到达我们最好的模型。预测步骤,我们获得新的数据从一个网络摄像头,图像编码和新特性,使用训练模型来进行实时预测。
这给我们带来了摘要和关键外卖。总结一下到目前为止我们所看到的,让我回到我的挑战在这个演讲的开始。希望你今天所看到的MATLAB如何能够应对这些挑战。
对于数据多样性的第一个挑战,我们看到了MATLAB如何处理不同类型的数据。MATLAB还可以访问和下载财务数据提要,处理文本、地理空间数据和其他数据格式。MATLAB还库审核行业标准的算法和功能。MATLAB还提供了额外的工具为特定工程工作流在金融领域,信号处理、图像处理和其他几个人。
我们也看到我们如何快速构建原型和解决方案,驱使它互动发布工作流,让您专注于机器学习,不是编程和调试。万博 尤文图斯机器学习的最佳实践,如交叉验证和模型评估工具,集成到应用程序和功能。正如我们所见,MATLAB还拥有丰富的文档,有几个指南,帮助您选择正确的工具。最后,MATLAB本质上是一个灵活的建模环境和一个完整的编程语言与定制没有限制您可以对您的分析。这使得MATLAB为机器学习的一个很好的平台。
这给我们带来了我们演讲的结束,我会尽量保持这短暂而短暂。我想与你们分享一些准则时应考虑机器学习。考虑机器学习如果你工作在一个问题上手写的规则和公式过于复杂或不可能制定。或者当你的任务是不断变化的规则,程序和模型需要不断调整以来,你的任务是一个移动的标靶。或者当您的数据的性质变化,需要不断调整。
希望我能够说服你,MATLAB是一个强大的平台,机器学习的每一步工作流程。我们总是收到你感兴趣,你可以找到我的联系信息在统计和机器学习的工具箱产品页面。如果你有兴趣学习更多,请看看产品文档。有大量的例子和概念页面不仅可以帮助你开始,但也引导你掌握的工具。
更多地了解算法、应用领域的例子,和机器学习相关的网络研讨会,随时访问机器学习页面。这给我们带来了课程结束的时候。感谢大家的聆听。
下一个:
相关视频:
也seleccionar uno de来说《国家/语言:
科莫obtener el药对rendimiento
Seleccione中国(en语言斜纹棉布裤o单身)对位obtener el药对rendimiento。洛杉矶sitios web de还有《没有范围optimizados对位ser accedidos desde苏ubicacion geografica。