【机器学习123】绪论
买了周志华老师的机器学习实体书,集合牛网友的网络笔记开始一个月的ML学习 https://blog.csdn.net/u011826404/article/details/75577216
虽然研究生也选修过,但基本还给了老师。
这次回顾算是作为FRM二级考前的热身,加油 Cathy!
----------
第1章 绪论
1.1 引言
通过对经验的利用,对新情况做出有效的决策。
机器学习致力于研究如果通过计算的手段,利用经验来改善系统自身的性能。
“经验”通常以“数据”形式存在。
机器学习所研究的主要内容,是关于在计算机上从经验数据中产生“模型”的“学习算法”,在面对新情况时,模型会提供相应的判断输出结果。
1.2 基本术语
数据集;样本。
属性/特征;属性值;属性空间/样本空间。
特征向量。
学习/训练,训练数据,训练样本,训练集。
测试,测试数据,测试样本,测试集。
预测任务是希望通过对训练集进行学习,建立一个从输入空间到输出空间的映射。
预测离散值:如分类预测任务。
预测连续值:如回归预测任务。
聚类:将训练集分成若干个“簇”,每个簇对应一些潜在的概念划分,为更深入分析数据建立基础。
根据训练数据是否拥有标记信息,学习任务可分为:监督学习(有标记)和无监督学习(无标记)。
机器学习的目标是使学得的模型能很好地适用于“新样本”,即具有强“泛化”能力。
一般训练样本越多,越有可能通过学习获得具有强泛化能力的模型。
1.3 假设空间
归纳:从特殊到一般的泛化过程,即从具体的事实归纳出一般性规律。例如从样例中学习,亦称“归纳学习”。
演绎:从一般到特殊的特化过程,即从基础原理推演出具体状况。例如从公理推断出定理。
归纳学习有广义与狭义之分。
广义归纳学习:相当于从样例中学习,现实常用技术,大多产生“黑箱”模型。
狭义归纳学习:要求从训练数据中学得概念,亦称“概念学习”,研究应用较少。最基本的有布尔概念学习。
机械学习:“记住”训练样本,即“死记硬背式”学习。
“假设”的表示一旦确定,则“假设空间”及其规模大小也就确定了。
把学习过程看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集“匹配”的假设。
对假设空间的搜索策略有许多方式,最终将获得与训练集一致(即对所有训练集样本能够进行正确判断)的假设。
然而现实问题的假设空间往往很大,而学习过程是基于有限训练样本集进行的,因此可能出现多个假设与训练集一致,即存在一个与训练集一致的“假设集合”,亦称“版本空间”。
1.4 归纳偏好
版本空间中的若干个假设模型,在面对新样本时,很可能会有不同的输出结果;
若数据包含“噪声”,则假设空间中有可能不存在与所有训练样本都一致的假设。
基于上面若干情况的存在,需要在学习过程中对某种类型假设设立偏好,称之为“归纳偏好”。
任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果。
归纳偏好可以看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式,对应了学习算法本身所做出的关于“什么样的模型更好”的假设。
那么如何确立“正确性”偏好呢?是否有一般性的原则引导?
举例:奥卡姆剃刀(Occam’s razor)- “若有多个假设与观察一致,则选最简单的那个”。
但有时“最简单”的衡量并不简单。
且存在“没有免费的午餐”定理(NFL – No Free Lunch):对于一个学习算法A,若它在某些问题上比学习算法B好,则必然存在另一些问题,在那里B比A好。
推导NFL定理(略)。
注意推导NFL定理的前提假设:所有“问题”出现的机会相同(均匀分布),或所有问题同等重要。
然而现实并不是如此,往往我们只关注试图解决的问题,其解决方案对其他别的问题并不关心。
所以NFL定理最重要的寓意,是要告诉我们,脱离具体问题,空谈“什么学习算法更好”毫无意义,必须要针对具体的学习问题来讨论算法的相对优劣。
学习算法自身的归纳偏好与问题是否相配,往往起到决定性作用。
1.5 发展历程
1.6 应用现状
1.7 阅读材料
-------------------------
学习感言:
读研时选修过这门课,不过真的只有几个大概念的残影了。。。还是好好踏实在学一遍理论。
发现自学时,即使有实体书,结合网络资料,也需要记录笔记,不光过眼,要自己输出才会真正过脑留下影子,形式嘛,电子或手写都ok。
使用博客园编辑器完成90%的笔记却莫名丢失。。。只好打开word重新记录一遍。以后吸取教训,还是先本地记录,再发表比较保险。
目前工作中只是测试自动化需求,老板抛出个“能否借助机器学习来测试“。。。结
无脑回答的话,想说机器学习给出个xx%概率来预测Pass/Fail,这这这,不能直接作为测试结果吧?还是需要人来分析那些不是100% Pass的cases。
结合绪论,传统的系统自动化测试,无非是“机械学习”罢了,需要把Expected Results或者Baseline完整存下来作为经验数据存档,将新版本测试结果与预期结果进行比较来精准判断Pass/Fail。
当然说先进点,听说过”探索式/启发式测试“,但超出我目前的理论支撑范围了。。。希望能从这里起步,慢慢了解吧。
总共十六章,这个月坚持住!