技术标签: 监督学习 机器学习 无监督学习 深入理解机器学习 深度学习 人工智能
分类目录:《深入理解机器学习》总目录
机器学习算法是一种能够从数据中学习的算法。卡耐基梅隆大学计算机科学学院机器学习系主任Mitchell给出了机器学习算法的定义:对于某类任务 T T T和性能度量 P P P,一个计算机程序被认为可以从经验 E E E中学习是指,通过经验 E E E改进后,它在任务 T T T上由性能度量 P P P衡量的性能有所提升。
经验 E E E,任务 T T T和性能度量 P P P的定义范围非常宽广,我们会在接下来的文章中提供直观的解释和示例来介绍不同的任务、性能度量和经验,这些将被用来构建机器学习算法。
机器学习可以让我们解决一些人为设计和使用确定性程序很难解决的问题。从科学和哲学的角度来看,机器学习受到关注是因为提高我们对机器学习的认识需要提高我们对智能背后原理的理解。
从“任务”的相对正式的定义上说,学习过程本身不能算是任务。学习是我们所谓的获取完成任务的能力。例如,我们的目标是使机器人能够行走,那么行走便是任务。我们可以编程让机器人学会如何行走,或者可以人工编写特定的指令来指导机器人如何行走。
通常机器学习任务定义为机器学习系统应该如何处理样本。样本是指我们从某些希望机器学习系统处理的对象或事件中收集到的已经量化的特征的集合。我们通常会将样本表示成一个向量 x ∈ R x\in R x∈R,其中向量的每一个元素 x i x_i xi是一个特征。例如,一张图片的特征通常是指这张图片的像素值。
机器学习可以解决很多类型的任务。一些非常常见的机器学习任务列举如下:
当然,还有很多其他同类型或其他类型的任务。这里我们列举的任务类型只是用来介绍机器学习可以做哪些任务,并非严格地定义机器学习任务分类。
为了评估机器学习算法的能力,我们必须设计其性能的定量度量。通常性能度量 P P P是特定于系统执行的任务 T T T而言的。
对于诸如分类、缺失输入分类和转录任务,我们通常度量模型的准确率。准确率是指该模型输出正确结果的样本比率。我们也可以通过错误率得到相同的信息。错误率是指该模型输岀错误结果的样本比率。我们通常把错误率称为 0 − 1 0-1 0−1损失的期望。在一个特定的样本上,如果结果是对的,那么 0 − 1 0-1 0−1损失是0;否则是1.但是对于密度估计这类任务而言,度量准确率,错误率或者其他类型的 0 − 1 0-1 0−1损失是没有意义的。反之,我们必须使用不同的性能度量,使模型对每个样本都输出一个连续数值的得分。最常用的方法是输出模型在一些样本上概率对数的平均值。
通常,我们会更加关注机器学习算法在未观测数据上的性能如何,因为这将决定其在实际应用中的性能。因此,我们使用测试集数据来评估系统性能,将其与训练机器学习系统的训练集数据分开。性能度量的选择或许看上去简单且客观,但是选择一个与系统理想表现对应的性能度量通常是很难的。
在某些情况下,这是因为很难确定应该度量什么。例如,在执行转录任务时,我们是应该度量系统转录整个序列的准确率,还是应该用一个更细粒度的指标,对序列中正确的部分元素以正面评价?在执行回归任务时,我们应该更多地惩罚频繁犯一些中等错误的系统,还是较少犯错但是犯很大错误的系统?这些设计的选择取决于应用还有一些情况,我们知道应该度量哪些数值,但是度量它们不太现实。这种情况经常出现在密度估计中。很多最好的概率模型只能隐式地表示概率分布。在许多这类模型中,计算空间中特定点的概率是不可行的。在这些情况下,我们必须设计一个仍然对应于设计对象的替代标准,或者设计一个理想标准的良好近似。
本文只是做简单的介绍,后续的文章会对性能度量 P P P进行详尽的叙述。
根据学习过程中的不同经验,机器学习算法可以大致分类为无监督算法和监督算法。大部分学习算法可以被理解为在整个数据集上获取经验。数据集是指很多样本组成的集合。有时我们也将样本称为数据点。
无监督学习算法训练含有很多特征的数据集,然后学习出这个数据集上有用的结构性质。在深度学习中,我们通常要学习生成数据集的整个概率分布,显式地,比如密度估计,或是隐式地,比如合成或去噪还有一些其他类型的无监督学习任务,例如聚类,将数据集分成相似样本的集合。
监督学习算法训练含有很多特征的数据集,不过数据集中的样本都有一个标签或目标。例如,Iris数据集注明了每个鸢尾花卉样本属于什么品种。监督学习算法通过研究Iris数据集,学习如何根据测量结果将样本划分为三个不同品种。
大致说来,无监督学习涉及到观察随机向量 x x x的好几个样本,试图显式或隐式地学习出概率分布 p ( x ) p(x) p(x),或者是该分布一些有意思的性质;而监督学习包含观察随机向量 x x x及其相关联的值或向量 y y y,然后从 x x x预测y,通常是估计 p ( y ∣ x ) p(y|x) p(y∣x)。术语监督学习源自这样一个视角,教员或者老师提供目标 y y y给机器学习系统,指导其应该做什么。在无监督学习中,没有教员或者老师,算法必须学会在没有指导的情况下理解数据。
无监督学习和监督学习不是严格定义的术语。它们之间界线通常是模糊的。很多机器学习技术可以用于这两个任务。例如,概率的链式法则表明对于向量 x ∈ R n x\in R^n x∈Rn,联合分布可以分解成:
p ( x ) = ∏ i = 1 n p ( x i ∣ x 1 x 2 ⋯ x i − 1 ) p(x)=\prod_{i=1}^np(x_i|x_1x_2\cdots x_{i-1}) p(x)=i=1∏np(xi∣x1x2⋯xi−1)
该分解意味着我们可以将其拆分成 n n n个监督学习问题,来解决表面上的无监督学习 p ( x ) p(x) p(x)。另外,我们求解监督学习问题 p ( y ∣ x ) p(y|x) p(y∣x)时,也可以使用传统的无监督学习策略学习联合分布 p ( x , y ) p(x, y) p(x,y),然后推断:
p ( y ∣ x ) = p ( x , y ) ∑ y i p ( x ∣ y i ) p(y|x)=\frac{p(x, y)}{\sum_{y_i}p(x|y_i)} p(y∣x)=∑yip(x∣yi)p(x,y)
尽管无监督学习和监督学习并非完全没有交集的正式概念,它们确实有助于粗略分类我们研究机器学习算法时遇到的问题。传统地,人们将回归、分类或者结构化输出问题称为监督学习。支持其他任务的密度估计通常被称为无监督学习。
学习范式的其他变种也是有可能的。例如,半监督学习中,一些样本有监督目标,但其他样本没有。在多实例学习中,样本的整个集合被标记为含有或者不含有该类的样本,但是集合中单独的样本是没有标记的。有些机器学习算法并不是训练于一个固定的数据集上。例如,强化学习算法会和环境进行交互,所以学习系统和它的训练过程会有反馈回路。
大部分机器学习算法简单地训练于一个数据集上。数据集可以用很多不同方式来表示。在所有的情况下,数据集都是样本的集合,而样本是特征的集合。
表示数据集的常用方法是设计矩阵。设计矩阵的每一行包含个不同的样本。每一列对应不同的特征。例如,Iris数据集包含150个样本,每个样本有4个特征。这意味着我们可以将该数据集表示为设计矩阵 x ∈ R 150 × 4 x\in R^{150\times4} x∈R150×4。我们描述的大部分学习算法都是讲述它们是如何运行在设计矩阵数据集上的。
当然,每一个样本都能表示成向量,并且这些向量的维度相同,才能将一个数据集表示成设计矩阵。这一点并非永远可能。例如,你有不同宽度和高度的照片的集合,那么不同的照片将会包含不同数量的像素。因此不是所有的照片都可以表示成相同长度的向量。
在上述这类情况下,我们不会将数据集表示成 m m m行的矩阵,而是表示成 m m m个元素的结合: { x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) } \{x^{(1)}, x^{(2)}, \cdots, x^{(m)}\} { x(1),x(2),⋯,x(m)}。这种表示方式意味着样本向量 x ( i ) x^{(i)} x(i),和 x ( j ) x^{(j)} x(j)可以有不同的大小在监督学习中,样本包含一个标签或目标和一组特征。例如,我们希望使用学习算法从照片中识别对象。我们需要明确哪些对象会出现在每张照片中。我们或许会用数字编码表示,如0表示人、1表示车、2表示猫等等。通常在处理包含观测特征的设计矩阵 x x x的数据集时,我们也会提供一个标签向量 y y y,其中 y i y_i yi表示样本 i i i的标签。
当然,有时标签可能不止一个数。例如,如果我们想要训练语音模型转录整个句子,那么每个句子样本的标签是一个单词序列。正如监督学习和无监督学习没有正式的定义,数据集或者经验也没有严格的区分。这里介绍的结构涵盖了大多数情况,但始终有可能为新的应用设计出新的结构。
文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态
文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境
文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn
文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker
文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机
文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk
文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入
文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。 Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。
文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动
文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计
文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;gt;Jni-&amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图
文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法