Datawhale X 南瓜书 task01学习笔记
机器学习三观
机器学习工程领先理论
what:什么是机器学习?
- 机器学习定义:研究关于“学习算法”(一类能从数据中学习出其背后潜在规律的算法)的一门学科
- PS:深度学习指的是:神经网络那一类学习算法,因此是机器学习的子集
- 把深度学习单列出来的原因:机器学习演变到现在,神经网络算法的效果是最好的,机器学习的其他算法能做的事,神经网络也能做,所以就把深度学习单列出来了
why:为什么要学习机器学习?
- 从事机器学习理论的研究:研究新的算法,神经网络和深度学习的可解释性
- 从事机器学习系统的开发
(以上2种情况比较偏基础和底层)
- 将机器学习中的算法迁移应用到自己的研究领域
- 从事AI应用方向的研究:自然语言处理(NLP):eg:chatGPT;计算机视觉(CV):eg: 人脸识别,目标检测;推荐系统等
how:怎样学机器学习?
- 从事纯机器学习理论的研究:
- 本课程讲的所有内容都要听懂
- 进一步可阅读周志华老师的《机器学习理论导引》
- 机器学习还很年轻,当前正处于工程领先理论阶段,还有很多未解之谜
- 从事机器学习系统的开发:在跑算法的系统框架中选算法,训练模型,然后部署
- 进阶学习:https://ucbrise.github.io/cs294-ai-sys-sp22https://openmlsys.github.io
- 将机器学习中的算法迁移应用到自己的研究领域
- 从事AI应用方向的研究:
- 自然语言处理(NLP)、
- 计算机视觉(CV)、
- 推荐系统等。
机器学习引入
- 假设空间:假设=》函数,则假设空间=》函数空间
- 假设的表示一旦确定,假设空间及其规模大小就确定了
- 由此可知,假设空间>版本空间(因为版本空间是能拟合训练集的假设所构成的空间)
基本术语
- 算法“概念:指从数据中学得“模型"的具体方法,例如后续章节中将会讲述的线性回归、对决策树等
- 算法和模型的关系:“算法“产出的结果称为“模型",通常是具体的函数或者可抽象地看作为函数,例如一元线性回归算法产出的模型節为形如f(x)= ux +b的一元一次函数。
- 不过由于严格区分这两者的意义不大,因此多数文献和资料会将其混用,当遇到这两个概念时,其具体指代根据上下文判断即可。
- 样本(“示例”)概念:是关于一个事件或对象的描述。eg:一个“色泽青绿,根蒂蜷缩,敲声清脆“的西瓜用向量来表示即为: x=(青绿;蜷缩;清脆),(ps:向量x的每一位含义:x=(x1,x2,x3)x1:色泽, x2: 根蒂,x3:敲声
- 任何一个对象或者事件都可以用向量表示
- 只要给的特征够多就能描述一个样本,所以在训练模型的时候
- “特征“(“属性”)概念:向量(也叫特征向量)中的各个维度
- 向量中的元素用分号" ; "分隔时表示此向量为列向量,用逗号" ,"分隔时表示为行向量
- “特征工程':对特征做一些工作,eg:将人类语言描述的对象或者样本仅仅用数字描述,增加对象(样本)的特征:eg:在色泽青绿,根蒂蜷缩,敲声清脆基础上增加西瓜的种类,重量等。
- 特征工程对不同的算法又不同的数值化,数值化保证能区分开来就行,具体取值多少无所谓
- 特征工程的部分工作是跟算法绑定的,不同的算法,特征工程的处理方式不同
- 标记概念:机器学习的本质就是在学习样本在某个方面的表现是否存在潜在的规律
- 标记通常也看作为样本的一部分,因此,一个完整的样本通常表示为(x,y)一条西瓜样本:x=(青绿;蜷缩;清脆),y=好瓜 ; 一条房价样本:=(1所),y=1万/m2(标记就是你希望学习的规律,eg:图像识别:是不是人脸就是一种标记
- 样本空间(“输入空间“)(“属性空间"):由于样本采用的是标明各个特征取值的"特征向量“来进行表示,根据线性代数的知识可知,有向量便会有向量所在的空间,因此称表示样本的特征向量所在的空间为样本空间,通常用花式大写X表示
- 标记空间(输出空间)概念:标记所在的空间,数学表示为花式大写的y
- 根据标记的取值类型不同,可将机器学习任务分为以下两类:
- 分类:当标记取值为离散型时,称此类任务为"分类"。例如学习西瓜是好瓜还是坏瓜、
- “分类”的类型:
- “二分类”:当分类的类别只有两个时,称此类任务为“二分类” eg:习猫的图片是白猫还是黑猫等。,通常称其中一个为“正类",另一个为“反类“或“负类”;
- “多分类":当分类的类别超过两个时,称此类任务为“多分类"。由于标记也属于样本的一部分,通常也需要参与运算,因此也需要将其数值化,例如对于二分类任务,通常将正类记为1,反类记为0,即)={0,1}。这只是一般默认的做法,具体标记该如何数值化可根据具体机器学习算法进行相应地调整,例如第6章的支持向量机算法则采用的是={-1,+1)
- “回归":当标记取值为连续型时,称此类任务为“回归’,例如学习预测西瓜的成熟度、学习预测未来的房价等。由于是连续型,因此标记的所有可能取值无法直接罗列,通常只有取值范围,回归任务的标记取值范围通常是整个实数域R,即y=R。
- 数据集:数据集通常用集合来表示,令集合D ={1,2,...,m}表示包含m个样本的数据集,一般同一份数据集中的每个样本都含有相同个数的特征,假设此数据集中的每个样本都含有d个特征,则第个样本的数学表示为d维向量Cil;i2;...;wid)其中;;表示样本必;在第j个属性上的取值。
- 模型:机器学习的一般流程如下:首先收集若干样本(假设此时有100个),然后将其分为训练样本(80个)和测试样本(20个),其中80个训练样本构成的集合称为“训练集",20个测试样本构成的集合称为“测试集",接着选用某个机器学习算法,让其在训练集上进行“学习”(或称为“训练”),然后产出得到“模型”(或称为“学习器”),最后用测试集来测试模型的效果。
- 真相(真实):执行以上模型的流程时,表示我们已经默认样本的背后是存在某种潜在的规律,我们称这种潜在的规律为“真相“或者"真实”,例如样本是一堆好西瓜和坏西瓜时,我们默认的便是好西瓜和坏西瓜背后必然存在某种规律能将其区分开。
- 假设概念:当我们应用某个机器学习算法来学习时,产出得到的模型便是该算法所找到的它自己认为的规律,由于该规律通常并不一定就是所谓的真相,所以也将其称为“假设"。
- 通常机器学习算法都有可配置的参数,同一个机器学习算法,使用不同的参数配置或者不同的训练集,训练得到的模型通常都不同。
- 泛化概念:由于机器学习的目标是根据已知来对未知做出尽可能准确的判断,因此对未知事物判断的准确与否才是衡量一个模型好坏的关键,我们称此为“泛化"能力。
- 分布概念:此处的"分布“指的是概率论中的概率分布,通常假设样本空间服从一个未知“分布”D,而我们收集到的每个样本都是独立地从该分布中采样得到,即“独立同分布"。通常收集到的样本越多,越能从样本中反推出D的信息,即越接近真相。
- 归纳偏好:当在“房价预测“的例子中,当选用一元线性回归算法时,!学得的模型是一元一次函数,选用多项式回归算法时,学得的模型是一元二次函数,所以不同的机器学习算法有不同的偏好,我们称为“归纳偏好"。对于当前房价预测这个例子来说,这两个算法学得的模型哪个更好呢?著名的"奥卡姆到“简单”便见仁见刀“原则认为“若有多个假设与观察一致,则选最简单的那个",但是何为智了,如果认为函数的幂次越低越简单,则此时一元线性回归算法更好如果认为幂次越高越简单,则此时多项式回归算法更好,因此该方法其实并不“简单”,所以并不常用,而最常用的方法则是基于模型在测试集上的表现来评判模型之间的优劣。=》模型好不好看测试集的效果。
- 例如在房价预测问题中,通常会额外留有部分未参与模型训练的数据来对模型进行测试。假设此时额外留有1条数据:(年份:2022年;学校数量:3所;房价:7万/m2)用于测试,模型y= 3x<2的预测结果为3*3-2=7,预测疋确,模型y= æ”的预测结果为3’=9,预测误,因此,在当前房价预测问题上,我们认为一元线性回归算法优于多项式画归算法。机器学习算法之间没有绝对的优劣之分,只有是否适合当前待解决的问题之分,例如上述测试集中的数据如果改为(年份:2022年;学校数量:3所;房价:9万/m2)则结论便逆转为多项式回归算法优于一元线性回归算法。
- 没有免费的午餐定理(NFL):众算法生而平等(详细推导参见南瓜书)
- 实际应用:哪个算法训出来的模型在测试集上表现好哪个算法就nb
- 数据决定模型效果的上限:其中数据是指从数据量和特征工程两个角度考虑。从数据量的角度来说,通常数据量越大模型效果越好,因为数据量大即表示累计的经验多,因此模型学习到的经验也多,自然表现效果越好。例如以上举例中如果训练集中含有相同颜色但根蒂不蜷缩的坏瓜,模型a学到真相的概率则也会增大;从特征工程的角度来说,通常对特征数值化越合理,特征收集越全越细致,模型效果通常越好,因为此时模型更易学得样本之间潜在的规律。例如学习区分亚洲人和非洲人时,此时样本即为人,在进行特征工程时,如果收集到每个样本的肤色特征,则其他特征例如年龄、身高和体重等便可省略,因为只需靠肤色这一个特征就足以区分亚洲人和非洲人。
- 算法则是让模型无限逼近上限:是指当数据相关的工作已准备充分时,接下来便可用各种可适用的算法从数据中学习其潜在的规律进而得到模型,不同的算法学习得到的模型效果自然有高低之分,效果越好则越逼近上限,即逼近真相。
- 无论是分类还是回归,机器学习算法最终学得的模型都可以抽象地看作为以样本x为自变量,标记y为因变量的函数y= f(x),即一个从输入空间x到输出空间y的映射。