100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 机器学习 深度学习基础算法原理详解(图的搜索 交叉验证 PAC框架 VC-维(持续更新))

机器学习 深度学习基础算法原理详解(图的搜索 交叉验证 PAC框架 VC-维(持续更新))

时间:2020-08-03 05:16:46

相关推荐

机器学习 深度学习基础算法原理详解(图的搜索 交叉验证 PAC框架 VC-维(持续更新))

机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维、支持向量机、核方法(持续更新))

机器学习,深度学习基础算法原理详解(数据结构部分(持续更新))

文章目录

1. 图的搜索2. 交叉验证3. PAC框架4. Rademacher复杂度和VC-维5. 支持向量机6. 核方法

1. 图的搜索

广度优先搜索:广度优先搜索是一种对图进行搜索的算法,从一个顶点开始,顺着边开始搜索,直到到达指定顶点。在此过程中每走到一个顶点,就会判断一次它是否为终点,广度优先搜索会优先从离起点近的顶点开始搜索(简单理解为按行进行搜索),具体示例寻找K过程如图1。

图1. 广度优先搜索

深度优先搜索:深度优先算法同样是对图进行搜索,目的也都是从起点搜索到达指定顶点(终点)。深度优先搜索会沿着一条路径不断往下搜索直到不能再继续为止,然后再折返,开始搜索下一条候补路径,具体示例寻找K过程如图2。

图2. 深度优先搜索

贝尔曼-福特算法:计算求解图的最短路径问题,最短路径问题就是在加权图指定了起点和终点的前提下,寻找从起点到终点的路径中权重总和最小的路径。首先设置各个顶点的初始权重:起点为0,其他顶点为无穷大,该权重表示从A到该顶点的最短路径的暂定距离,随着计算继续进行,这个值会越来越小,最终收敛到正确的数值,具体寻找最短路径过程(A-C-D-K-G)如图3。

图3. 贝尔曼-福特算法

狄克斯特拉算法:与贝尔曼-福特算法原理类似,同样是为了寻找最短距离,但相对于需要对所有边都重复计算权重和更新权重的贝尔曼-福特算法,狄克斯特拉算法多了一步选择顶点的操作,这使得它在求最短路径上更为高效,如图4。当不存在负数权重时,更适合使用效率较高的狄克斯特拉算法,而当存在负数权重时,选择贝尔曼-福特算法,因为负数权重会使在求解最短路径中出错,寻求最短路径过程(A-C-D-K-G)如图5所示。

图4. 狄克斯特拉算法

2. 交叉验证

基本思想就是对原始数据进行分组,一部分做为训练集来训练模型,另一部分做为测试集来评价模型。同时交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程度上减小过拟合,此外还可以从有限的数据中获取尽可能多的有效信息。其方法有留出法、K折交叉验证等等。图6所示为交叉验证过程。

图6. 交叉验证(来源于[为什么要用交叉验证])

为什么要用交叉验证

【机器学习】Cross-Validation(交叉验证)详解

3. PAC框架

概率近似正确(Probably Approximately Correct, PAC)借助样本复杂度和学习算法的时间空间复杂度,依赖于对概念类计算表示的代价来定义可学习的概念类。之后,对于有限假设集的情况,给出一般性的学习保证,包括:一致的情况,即假设集中包含了待学习的概念;不一致的情况,即假设集中未包含待学习的概念。

图7. 概念类PAC(源于[机器学习理论基础 | PAC学习框架])

机器学习理论基础 | PAC学习框架

PAC学习框架

4. Rademacher复杂度和VC-维

机器学习中,采用的假设集往往是无穷的,而在处理无穷假设集时,关于样本复杂度的界往往是不提供信息的,为了解决这一问题,要引入第一个复杂度概念便是Rademacher复杂度,根据其特性得到学习保证和高质量的界。而生长函数和VC-维是两个纯粹的组合概念,具体过程是首先建立Rademacher复杂度和生长函数之间的联系,然后依据VC-维给出生长函数的界。其中,VC-维往往更易于界定和估计,具体推导参考:

图8. Rademacher复杂度(源于[Rademacher复杂度&VC维-最通俗的类比讲解])

【Mohri-机器学习基础】第3章: Rademacher复杂度与VC维

Rademacher复杂度&VC维-最通俗的类比讲解

5. 支持向量机

支持向量机(SVM)是近年来机器学习中最具有理论支撑同时实际效果最好的分类算法之一:首先用于基础性的线性分类,其次分为可分情况下的支持向量机和不可分情况下的支持向量机,具体学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。下面的链接很详实的介绍了SVM的原理以及应用,在此不多累述。

图9. SVM分离超平面(来源于[支持向量机(SVM)——原理篇])

【机器学习基础】一文详尽之支持向量机(SVM)算法!

支持向量机(SVM)——原理篇

机器学习算法之支持向量机SVM

6. 核方法

核方法常用于扩展SVM等算法实现数据的非线性可分,同时也用于扩展其他只依赖于样本点之间内积的类似算法。与此同时,核方法的主要思想是基于核函数,它们在对称性和正定性的条件下,隐式的定义了在高维空间的内积,用正对核代替输入空间的原始内积能直接将算法推广到高维空间中实现线性可分,也等效于在原始输入空间中实现非线性可分。

图10. 核函数映射(来源于[10 SVM - 核函数])

核函数(Kernel function)(举例说明,通俗易懂)

机器学习笔记029 | 核函数

10 SVM - 核函数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。