[译]机器学习入门

翻译自 LeetCode 上的 Machine Learning 101。 前言 作为一名初学者,无相关工作经验,对机器学习里的概念与专业术语的了解尚处于入门阶段 & 英文水平欠佳,可能会存在一定的笔误之处。 事实上,原文并没有各方面地介绍机器学习中的理论以及相关的基础知识,但是非常通俗易懂。可能会加入一些与原文不同额外的话。 按照单词直译过来,会使得语句极为不通顺,加之文化差异。。。可能会导致与原文较为不同。 建议查看原文。 🤐 关于 xxx 101 很多时候会看到有些英语名词后面接 101 数字,??这起源于美国大学里的课程编号,101 代表着一系列基础的课程,可以直接理解为入门的意思。 概述 文章主要介绍了机器学习领域中一些基础的概念。你将学会: 分辨机器学习问题的类型。了解机器学习模型是什么。了解机器学习模型的构建与应用。了解机器学习算法的优缺点。 机器学习 vs 深度学习 一图胜千言。 人工智能、机器学习、深度学习。来源 人工智能编年史。来源 什么是机器学习 机器学习(ML)的基础是算法和模型,此章节首先会介绍其观念,之后将根据各种标准阐明机器学习算法的几种类型。 模型 机器学习 这个术语,总是神秘化计算机科学,正从字面意思理解,机器像人类一样学习,甚至更好。 尽管某一天我们能够创造出像人类一样思考和学习的机器(有生之年系列),但机器学习至今仅仅是一段计算机程序,只能按照定义的步骤执行。用来区分一个算法属于机器学习或者非机器学习的是其适应行为而产生不同输出的能力,比如红绿灯控制。这个适应能力,没有人为干预,有时会让人觉得像是机器真的在学习。事实上机器学习模型中,其 adaptation of behaviors(行为适应能力)就像机器码一样死板。 所以,到底什么是个机器学习模型? 机器学习算法,就是发掘数据中潜在关联的过程。机器学习算法的输出结果,就被称为机器学习模型。可以理解为一个函数 F,给定输入将产生一定的结果。和预定义固定的函数不同的是,机器模型衍生于历史数据,因此,当输入不同的数据时,算法的输出将改变,也就是说,机器学习模型变化了。 举个栗子,图片识别,就需要训练出一个模型来识别图片中的物体。如下图: 在这个例子中,需要为机器学习算法准备上千张图片,有的图片有猫,有的没有,然后衍生出一个能够识别图片中是否有猫的模型。结果就是,给衍生模型输入一张数字图片,模型输出一个布尔值,判断图片中是否有猫。 该例中的模型就是一个函数,映射多个维度的像素值到一个二进制值。假设有张图片里有 3 个像素点,每个像素值的范围是 0~256,那么这个映射区间就是 256 * 256 * 256 * 2,约为三千万。现实世界中,一个像素点是由三原色(RGB)组成而不是单一的灰色,而一张图片里的像素点以百万计,学习这个映射(机器学习模型)的难度可想而知。 了解下灰色。一个 RGB 颜色如果三原色的值相同,那它就是灰色。记得以前哔哩哔哩网站在国家公祭日时,整个网站呈灰色,利用的就是 CSS 滤镜中的灰阶函数。 机器学习,就是从庞大的映射区间中学习这个函数。 上面这个例子中发掘百万计像素与一个是/否答案之间潜在关联的过程,就被称之为机器学习。大都情况下,最后学习的成果就是一个潜在关联度的估值,比如 90%是猫 、85%不是猫。基于近似的本质,通常一个机器学习模型的结果并不是 100% 准确的。在 2012 年开始广泛应用深度学习以前,ImageNet 上最好的机器学习模型仅能达到 75% 精确度。截止至今,仍没有机器学习模型能保证 100% 准确,虽然模型识别的错误率(<5%)比人类还要低。 监督式 VS. 非监督式 机器学习问题的分类有 2 种:supervised(监督式)、unsupervised(非监督式)。 一切机器学习问题均是从数据集开始的。数据集中包含许多样本,每个样本由一系列特征构成。 1936 年 Ronald.A.Fisher 发表的论文《The use of multiple measurements in taxonomic problem》中,提出了一个知名的典型数据集,称为 Iris。Iris 中包含了 150 个 iris 花的尺寸样本,样本中包含了 petal(花瓣)与 sepal(花萼)的宽高尺寸,以及代表着其类目的学名,如 setosa, versicolor, virginica。举个栗子: class petal_width sepal_width petal_height sepal_height virginica 1.8 6.2 2.8 4.8 versicolor 1.4 6.1 2.9 4.7 setosa 0.2 5.4 3.7 1.5 virginica 1.8 6.4 3.1 5.5 virginica 2.5 6.7 3.3 5.7 监督式学习 在监督式学习任务中,数据样本存在着一个目标特征 y,也就是众所周知的 ground truth(真值)。任务目的是为了习得一个函数 F,将非目标特征值 X 转化为目标特征的预估值,即 F(X) ≈ y。这个目标特征 y 就像老师给学生的成绩打的分数一样,因此,该任务称之为监督式学习。 在 Iris 数据集中,花类目的学名就可以被理解为目标特征。包含目标特征的数据通常被称为 "labeled" data。基于以上条件,通过 labeled data(有标签的数据)来预测花 iris 类目的任务,则可称为监督式学习任务。 稍微解释一下,label 指的应该不是数据集中样本的特征名,比如 petal_width 这种,而是指某些样本的归类,比如 150 个中有 32 个是 virginica 等等。 非监督式学习 与监督式学习作对比,非监督式学习任务中无法得到已知的 ground truth(真值),只能够学习到数据的某种潜在模式或规则。 或许有人会想,在没有已知真值的前提下,我们还能够应用机器学习吗?答案是肯定的。举一些非监督式学习相关的例子: Clustering(聚类)。给定一个数据集,根据其中样本之间的相关性可以被聚集分类到不同组。比如一个消费者资料的样本,包含其购买商品的数量,浏览购物网站的时长等特征数据,那么基于这些数据的相似度,大量消费者资料就可以被聚类到不同群体。通过这些群体,来设计特定的商业活动给目标群体,能够帮助提高客户留存率。**俗称 “大数据杀熟”。**Association(关联)。给定一个数据集,发掘其中样本特征之间隐藏的关联规则。比如一个消费者购物车的样本,其中的每一个样本特征就是商品,观察许多购物车之后,可能发现买啤酒的人也经常买尿布。。。因此啤酒 & 尿布之间存在着强关联。通过这种研究结果,超市可以把有强关联的商品摆放到一起,来促销其中的某一种。 啤酒与尿布起源于数据挖掘中的一个经典案例。故事发生在很多年前的沃尔玛超市,啤酒和尿布两种商品总是被一起购买,因为星期五晚上年轻的男人跑去买啤酒的时候,妻子会叮嘱一句带些尿布回来。 半监督式学习 有的时候,数据集很大但是可被归类的样本很少,应用机器学习时发现即可监督式又可非监督式,这样的任务可被称为半监督式学习。 大多时候,收集大量归类数据是非常耗时且成本昂贵的,这通常涉及到人工操作。斯坦福大学研究团队花费了两年半的时间才建立了知名的 ImageNet,有上百万张图片和上千个人工分类。其实,数据量很大但可以准确归类的数据却很少的情况挺常见的,比如视频有些没有分类,甚至没有标题。 对于含少量归类样本的数据集,结合监督式学习和非监督式学习二者比单独应用某一个能获得更好的结果,亦能更充分地利用这些数据。 举个栗子,判断一堆图片的分类,但只有 10% 的图片可被归类。应用监督式学习,通过归类数据训练出一个模型,然后利用此模型预测非归类数据。显然这个模型不够通用,因为只涵盖了少量数据。有一个更好的策略是,先聚类图片到不同组(非监督式学习),然后对每个组单独地应用监督式学习算法。第一个阶段的非监督式学习帮助缩小学习范围,因此第二个阶段的监督式学习能够更为准确。 分类 VS. 回归 前面的章节介绍到,机器学习模型被定义为一个函数 F,给定输入得到一个输出。通常基于模型输出值的类型,可以区分它为 classification(分类)还是 regression (回归)。 分类模型的输出值是 discrete(离散的),比如布尔值;而回归模型的输出值是 continuous(连续的)。 分类模型 假如有一个模型,识别图片中是否有猫,则该模型可视为分类模型,因为其输出可用布尔值表示。 更详细地说,该模型地输入可表示为矩阵 M,由 H x W 个数组成,H 为图高,W 为图宽。矩阵中的每个元素设为图片像素点的灰度值,介于 [0,255] 之间,表示颜色深度。模型的预期输出应为一位二进制 0|1,表示图中的动物是否为猫。概括之,该猫图识别模型可公式化如下: F(M[H][W])=1∣0, 当 M[i][j]∈[0,255],0<i<H,0<j<W 机器学习的目的就是发掘这样的函数,使之更为通用,且尽可能正确地处理更多的数据。 回归模型 举一个回归模型的例子,房价预估,其数据特征诸如大小、类型(独栋或套间)、位置。之所以它是回归模型,是因为预期输出为实数 p∈R。需要注意的是,例中的源数据并不能全用数字表示,一些是 categorical(分类特征),好比房子类型。真实案例常会碰到这种情况。 categorical,分类表示形式。比如性别男女,0|1,也可以是 male|female。 对于每个房地产,其考虑因素可表示为元组 T,元组中每个元素就是其特征,为数值或分类值。概括之,该房价预估模型可公式化如下: F(T)=p, 当 p∈R 详细地说,假设某房地产条件如下: surface = 120m², type = 'apartment', location = 'NY downtown', year_of_construction = 2000 基于这些条件,模型输出为 $10000,则说明该模型拟合地不够好。 下图为例,假设回归模型房价只有一个 surface(大小)变量,预估价格为输出: 谈到数据特征,有些机器学习模型(决策树等)亦能直接处理某些非数字型特征值,不过通常会以某种方式将其转为数值。 统计学相关概念 回归指的是统计分析中的方法,用来确定一组随机变量 (X₁, X₂, ...) 与另一组变量 (Y₁, Y₂, ...) 之间的关系。貌似大学里有本教材叫《概率论与数理统计》有相关介绍。 常见的有 linear regression 线性回归,如上图的一根线。而如何画出那条线,也就是如何拟合这些点,较通用的方法是最小二乘法。 逻辑分析算法亦有两种广泛应用的: Decision Tree 决策树Naive Bayes 朴素贝叶斯 还有离散数学,在计算机科学界中影响深远。 书到用时方恨少啊,从数学角度来看说的太对了 😥 然而一个人是无法做到全知全能的,况乎芸芸众生,全世界几百年沉淀的理论,学不完,只能说广积粮了。 思维转换 对于现实生活中的案例,有时将其公式化很容易,并且快速地归类于分类或回归模型。然而,有时二者边界难以界定,分类问题可以转换为回归问题,反之亦然。 例如上面的房价预估,预测精确的金额看起来很难,实际上如果重新考虑,预估的是价格范围而不是单个房价数字,那训练出的模型会更健壮。从这个角度看,该问题类型转换为分类而不是回归。 至于猫图识别模型,也可以将其转换为回归类型。假定输出的不是二进制,而是个介于 [0,100%] 的估值,表示图片是猫的可能性。通过这种方式,来对比模型间的细微区别并调整之。比如,识别一张有猫的图片,模型 A 估值为 1%,模型 B 估值为 49%,虽然两个模型输出都错,但相对而言模型 B 更接近事实。这种情况,通常应用的是机器学习模型种类中的 Logistic Regression(逻辑回归),其输出是连续的估值,但用来解决分类问题。 机器学习做什么 机器学习为什么 参考链接


JavaScript全屏阅读

下一篇:打酱油

上一篇:钢铁是怎样炼成的

Ctrl + Enter