机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、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 - 核函数

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

  1. 【机器学习】—— K-means聚类算法原理详解 以及 二维、三维数据的K-means聚类Python实现

    文章目录 一.K-Means聚类算法原理过程 1.1 K-means聚类的一些细节 1.1.1 样本x(i)x^{(i)}x(i)与中心点μkμ_kμk​距离的衡量 1.1.2 K-means聚类算法 ...

  2. 深度学习 -- SSD 算法流程详解

    SSD同样是经典论文,后续很多论文以此为基础,所以搞懂流程比较重要,中间如果 有写的不对.有问题或者有看不懂的地方,还望指正.如果有了新的理解,我会持续更新. 作为经典论文,SSD算法也同样产生了很多 ...

  3. 深度学习经典算法 | 遗传算法详解

    遗传算法生物学基础 在一定的时间内,有一群兔子,其中一些比另外一些兔子跑得快,而且更聪明,这些兔子被狐狸吃掉的可能性比较小,因此它们中的多数就存活下来并繁殖更多的兔子.当然,一些跑得慢而愚蠢的兔子也会 ...

  4. 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)

    论文原文:[Yifan Wu, George Tucker, Ofir Nachum: "Behavior Regularized Offline Reinforcement Learnin ...

  5. XGBoost核心算法原理详解

    XGBoost算法原理详解 前言 boosting和bagging的区别 bagging boosting 提升树-基于残差的训练 学习路径 构造目标函数 Additive Training(叠加式的 ...

  6. Redis基础及原理详解

    Redis基础及原理详解 前言:以下是最近学习redis的一些笔记总结,文中如有不当的地方欢迎批评指正,重在记录与学习,笔芯~~ Nosql概述 演进历史 单机mysql Memcached(缓存)+ ...

  7. TOPSIS(逼近理想解)算法原理详解与代码实现

    写在前面: 个人理解:针对存在多项指标,多个方案的方案评价分析方法,也就是根据已存在的一份数据,判断数据中各个方案的优劣.中心思想是首先确定各项指标的最优理想值(正理想值)和最劣理想值(负理想解),所 ...

  8. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  9. 一致性哈希算法原理详解

    一.普通 hash 算法 (取模算法): 在了解一致性哈希算法之前,我们先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那 ...

最新文章

  1. Ansible 基础-介绍
  2. C#实现整数冒泡排序、选择排序
  3. 比特币钱包私钥_如何通过私钥创建比特币钱包地址
  4. java学习(31):for循环
  5. void*和void类型
  6. 银行考试计算机重点知识,银行计算机考试试题
  7. C# 设计模式 (一)
  8. 不规则形状 前端_精度提升第一步:形状各异测区的像控点布设方案
  9. linux环境下,Tomcat详细部署步骤
  10. 踩过的坑:__file__、__package__和__name__
  11. centos安装wget_宝塔是干什么的?3分钟教会你云服务器上安装宝塔面板
  12. 射频电路设计——传输线理论(Transmission Line Analysis) 【上】
  13. word论文排版和写作05:从word中导出pdf
  14. Poco Timer
  15. OTU的定义与解读----了解笔记
  16. pathon字符串复习
  17. C语言如何做出简易贪食蛇
  18. 北京计算机游戏专业排名2015,2015大学专业排行榜_大学最佳专业排行榜_游戏专业怎么样_52PK游戏网...
  19. 计算机网络的形成与发展
  20. Rstudio必用快捷键

热门文章

  1. Qt描述路径Qfile时绝对路径不明错误
  2. 主板共享笔记本电脑连网
  3. 【学习日志】2022.08.09 基于Unity的C#函数
  4. UX思考日志02 —— UX设计师的工作有哪些
  5. Codeforces Round #673 (Div. 2) Sep/27/2020 23:05UTC+8
  6. X的旅游计划 SDUT
  7. 基于ACCESS的真实故事计划数据管理系统
  8. 在服务器上的文件突然没了,为什么通过FileZilla上传的文件和目录突然没有显示在服务器上?...
  9. 剑网三服务器缺少必要启动文件,win7系统玩剑网三游戏经常掉线的解决方法
  10. c语言定义全局变量stm32,STM32 多文件全局变量简单定义方法