Machine Learning---感知器学习算法
来源:互联网 发布:js中如何替换数组 编辑:程序博客网 时间:2024/05/21 13:14
MachineLearning---PNN
引言
这篇将介绍machine learning中另一个较为经典的一个算法。之前介绍的几个算法(Backpropagation、LMS……)这些算法有一个明显的特点就是,它们都需要先训练算法,都会通过训练数据集调整算法的内部参数。
这次介绍的算法就摆脱了这种过程。
一、PNN算法基本介绍
1.算法思想
PNN(ProbabilisticNeural Networks)是一种较为出色的分类算法。
算法利用已分类的数据集,对未分类数据进行计算,得到“激活值”(Activation),在找出利用Winner Take All的原则,找到分类。
对于如何计算激活值下面会进行详细介绍。
2.激活值计算公式
隐藏层节点激活值,这里的隐藏层也便是样本集合(已分类的数据集)。
上诉中是隐藏层第i个节点的激活值, 便是已分类的数据集,F表示带分类的数据。
输出端节点的激活值。
其中便是第j个分类的输出端激活值;N表示样本数据(已分类)的数量;便是上面计算的隐藏层节点的激活值;是光滑参数。
3.算法流程
对于这个算法的流程也是比较好理解:
1.遍历类别;
2.遍历类别中的样本数据;
3.利用公式(1)对隐藏层节点激活值进行计算
4.利用公式(2)对当前分类,计算其激活值;
5.对所有类别激活值,进行比较,找出最大的,并返回类别序号。
二、算法实现
在这里提供这个算法的实现代码:
- int pnn_classify()
- {
- double output[CLASSNUM];
- for(int c = 0 ; c< CLASSNUM ; ++c)
- {
- output[c]= 0.0;
- for(int e = 0 ; e< EXAMPLENUM ; ++e)
- {
- double h = 0.0;
- for(int d = 0 ; d< DIMENSIONALITY ; ++d)
- {
- h+= example[d] * dataset[c].example[e].f[d];
- }
- output[c]= exp((h-1.0)/pow(sigma,2));
- }
- output[c]= output[c] / (double)EXAMPLENUM;
- }
- //winner take all
- double maxActivation = 0.0;
- int iCMax = 0;
- for (int c = 0 ; c< CLASSNUM ; ++c)
- {
- if(maxActivation < output[c])
- {
- iCMax= c;
- maxActivation= output[c];
- }
- }
- return iCMax;
- }
三、总结
由于笔者不是专门研究人工智能方面,所以在写这些文章的时候,肯定会有一些错误,也请谅解,上面介绍中有什么错误或者不当地方,敬请指出,不甚欢迎。
原地址:http://blog.csdn.net/stan1989/article/details/8565499
0 0
- Machine Learning---感知器学习算法
- Machine Learning---感知器学习算法
- Machine Learning---感知器学习算法
- Machine Learning-感知器学习算法
- Python Machine Learning - 感知器算法
- Machine Learning中的监督式—感知器算法
- Machine Learning系列实验--感知机学习
- 什么是感知器学习算法(Perceptron Learning Algorithm/PLA)?
- 闲谈:感知器学习算法(The perceptron learning algorithm)
- 感知器学习算法
- 感知器学习算法
- machine learning(一) 一 感知机模型
- neural network for machine learning(第三周编程作业)----感知机算法
- Digression:The perceptron learning algorithm(感知机学习算法)
- Machine Learning---LMS 算法
- Machine Learning---LMS 算法
- 【machine learning】KNN算法
- Machine Learning---LMS 算法
- poj 1328 Radar Installation
- snake模型
- poj 2965 The Pilots Brothers' refrigerator
- java编写的计算器
- datatable linq
- Machine Learning---感知器学习算法
- Linux内核之mmc子系统-sdio(2)
- android 中关于内存管理的记录
- poj 2109 Power of Cryptography
- 【Tomcat】解决中文名图片无法下载
- 学习win7下搭建FTP服务器
- 经典SQL语句大全
- 汇编语言LEA和OFFSET区别
- MongoDB怎样插入数据