| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> GRNN、RBF、PNN、KELM之间究竟有什么联系? -> 正文阅读 |
|
[人工智能]GRNN、RBF、PNN、KELM之间究竟有什么联系? |
0、前言? ? ? ? GRNN广义回归神经网络、RBF径向基函数神经网络、PNN概率神经网络、KELM核极限学习机,这是四种常用的机器学习方法,有太多相关博文对各算法的理论进行了介绍,对各方法的优缺点进行了分析。限于本人理论水平有限,表达能力有限,本篇博文不说公式,不搬理论,目的只是让初学者明白这四种方法的底层含义。温馨提示:热衷于看理论分析和公式推导,并且能毫无障碍看得懂的,请绕道,本文太浅薄也许不太符合你的审美。 1、前期思想准备①径向基函数(别慌,不说公式):这个说到底就是度量两个样本间相似度的东西,你只需要记住这个作用就行,这个很关键,后面都要用到! ②中心样本:就是样本集中选出来的部分重要的代表性样本,什么叫代表?以分类任务为例,就是对分类有重要指示作用的样本(例如各类样本的内心之类的,各类样本中选择出来的能代表类别特性的样本) ③度量学习:别慌!度量学习典型代表就是KNN,简而言之就是两个样本特征非常相似,那么对应的类别标签也应该差不多。因此,如果两个样本相似度高,自然而然类别标签(输出)相似度也高。 2、四个方法的含义2.1 RBF? ? ? ? RBF就是先确定好中心样本(每个类别选XX个样本),然后利用径向基函数度量输入样本(n个)与每个中心样本的相似度。中心样本一开始就固定了,假如说总共选了m个中心样本(则隐含层节点数m个),每个输入样本的隐含层输出实际上就是该样本与m个中心样本的相似度。接下来是隐含层到输出层的映射,隐含层是相似度,输出层对应样本标签,RBF的训练实际上就是训练这个映射关系,因为从输入到隐含层之间没有网络参数需要训练,超参数确定好直接就能计算出来相似度。如何理解这个映射关系呢?其实很简单啦。中心样本不是各类的代表嘛,一个样本与这些代表的相似度计算出来了,直接根据这组相似度值去得出这个样本最可能的标签道理上说得通,也比较能接受,那么具体如何实现呢?神经网络分类层的惯用操作是直接建立映射关系,用梯度下降法迭代更新映射函数的参数,直到找不到最优为止(映射函数很精确了)。因此RBF作为一种神经网络也没有忘记这种传统,简单粗暴建立线性或者非线性映射关系,用梯度下降法确定最优函数映射,只要你告诉我这个样本与中心样本的相似度,我就告诉你这样本的标签。 2.2 GRNN? ? ? ? 理论都说GRNN与RBF比较相似,相似在哪,区别又在哪呢?不知道各位看理论有没有领悟。笔者认为,两者相似处在于:都选中心样本,都选RBF来度量样本间相似度(计算每个样本与中心样本的相似度作为隐含层输出);区别在于:RBF用网络训练方式确定相似度与标签间的函数映射关系,而GRNN完全不需要训练,直接基于度量学习的思想对比样本与各类代表相似度和的大小,根据大小确定类别。例如:二分类情况下,样本与第一类代表相似度和为4,与第二类代表相似度和为6,归一化后样本与第一类代表相似度为0.4,与第二类代表相似度为0.6,那这个样本判定为第二类。 2.3? PNN? ? ? ? PNN与RBF很相似,与GRNN也很相似,相似在于:都选中心样本,都选RBF来度量样本间相似度(即计算每个样本与中心样本的相似度作为隐含层输出);区别在于:PNN不像RBF需要训练相似度与标签映射函数,也不像GRNN那样统计样本与各类代表的相似度和,PNN在得到样本与中心样本的一组相似度值后,统计各类相似度的平均值,根据平均值大小确定类别。例如:二分类情况下,样本与第一类5个代表相似度和为4平均值为0.8,与第二类10个代表相似度和为6平均值为0.6,那这个样本判定为第一类。可以看出PNN就是最后统计方法和GRNN不一样,GRNN统计每类的相似度和,而PNN统计平均值,GRNN必须限定每类代表样本个数一致(求和才公平),PNN计算平均值就不强设一致了,看心情! 2.4 KELM? ? ? ? 看了笔者描述的前三个,认为RBF、PNN、GRNN之间有关联可以理解,那KELM作为一种核方法,不都说是在ELM基础上进化来的吗,与前三种有啥关系? ? ? ? ? 首先,KELM作为核方法,肯定要用到核函数,核函数理论好复杂估计没多少人有耐心看(看得懂!),大家用核方法做各种改进也只是应用核技巧(映射后的高维空间中,向量间的点积可以用核函数直接计算,而不用知道真实映射关系)。我们只需要知道我们平常用的几种核函数形式就行,其中一种是径向基核函数,和前面三个貌似有点联系了。接着往下看,核函数的几种形式,基本上都逃不开两个样本间的“距离”,实际上核函数计算出来的结果,也可以当做是样本间的相似度。这样看来KELM实际上就是把所有样本都当成中心样本,计算每个样本与所有样本的相似度,得到的矩阵就是n?n维,就是所谓的核矩阵,每一行代表每个样本与n个中心样本的一组相似度值,然后建立相似度值与标签的映射关系,类似于RBF神经网络那样,区别在于KELM保留ELM的遗风,采用最小二乘法直接拟合得到线性映射关系,不再用反向传播训练的方式得到最终映射参数。所以实际上KELM和RBF、PNN、GRNN之间是很像的,只不过KELM的核函数有几种,即度量相似度的函数有几个,不像RBF、PNN、GRNN只有一种。 3、总结? ? ? ? 上述四个方法可以可以看出,某种程度上都在样本相似度基础上开展的,区别在于得到相似度值后,如何的到类别标签。 四种方法性能影响分析: ①中心样本选择肯定会影响结果,各类选择的代表个数也有考究 ②RBF函数的超参数会影响 ③KELM核函数超参数会影响 ④训练方法会影响 实际上这也是这些方法可以改进的地方! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:42:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |