随笔分类 -  Machine Learning 算法

关于机器学习理论的学习
摘要:概率神经网络的全称是Probabilistic neural network,它主要用于模式分类,是基于贝叶斯策略前馈神经网络。它有着坚实的数学理论基础,当然本文并不打算从数学符号来对它进行介绍(有兴趣的可翻阅推荐书目),而是通过一个简单的C语言程序来认知它。 介绍程序之前,先看下它基本模型的结构示意图: 图中可以看到基本分为三层,如果有了解神经网络的话就很熟悉了。第一层是输入层,就如它的名字负责接收数据的输入;第二层是模式层,对数据进行收集整理;第三层是类别层,就是数据整理完后归属于哪一个类别的信息。最后就根据类别的信息输出了,如果把输出也作为一层的话,也可以看成四层结构。其中... 阅读全文
posted @ 2012-08-13 00:37 Java研究者 阅读(22252) 评论(3) 推荐(1) 编辑
摘要:上一篇 C语言实现上中介绍了程序实现时定义的一些数据结构、程序执行的流程以及 程序的基本骨架(详情见 C语言实现上)。留下了两个关键函数computO(i) 和 backUpdate(i) 没有分析实现,参数 i 代表的是第 i 个样本,本篇我们一起来分析下这两个函数的实现。BP神经网络输出 函数 computO(i) 负责的是通过BP神经网络的机制对样本 i 的输入,预测其输出。回想BP神经网络的基本模型(详情见 基本模型)对应的公式(1)还有 激活函数对应的公式(2): 在前篇设计的BP神经网络中,输入层与隐藏层权重对应的数据结构是w[Neuron][In],隐藏层与输出层... 阅读全文
posted @ 2012-08-01 09:35 Java研究者 阅读(23756) 评论(13) 推荐(11) 编辑
摘要:在上一篇文章中,介绍了BP神经网络的基本模型、模型中的一些术语并对模型进行了数学上的分析,对它的原理有了初步的认识。那么如何用程序语言来具体的实现它,将是我们下一步需要讨论的问题。本文选取的是C语言来实现一个简单的单隐藏层的BP神经网络(默认大家了解了BP神经网络的基本概念,本文中涉及到些术语参见上一篇 基本模型),因此对于其他C类语言(C#、JAVA等)只需对本文中的代码稍作修改即可移植。一些数据的定义 首先,我们介绍些下文中描述的程序里面的一些重要数据的定义。#define Data 820#define In 2#define Out 1#define Neuron 45#def... 阅读全文
posted @ 2012-07-30 23:38 Java研究者 阅读(30600) 评论(12) 推荐(10) 编辑
摘要:BP 神经网络中的 BP 为 Back Propagation 的简写,最早它是由Rumelhart、McCelland等科学家于 1986 年提出来的,Rumelhart 并在Nature 上发表了一篇非常著名的文章 《Learning representations by back-propag 阅读全文
posted @ 2012-07-28 22:04 Java研究者 阅读(39279) 评论(8) 推荐(11) 编辑

点击右上角即可分享
微信分享提示