神经网络感知器的C语言实现

2019-07-21 04:14发布

感知器是人工神经网络中的一种典型结构, 它的主要的特点是结构简单,对所能解决的问题 存在着收敛算法,并能从数学上严格证明,从而对神经网络研究起了重要的推动作用。
感知器使用特征向量来表示的前馈式人工神经网络,它是一种二元分类器,把矩阵上的输入(实数值向量)映射到输出值
上(一个二元的值)。

数学表达式

是实数的表式权重的向量,
点积
是偏置,一个不依赖于任何输入值的常数。偏置可以认为是激励函数的偏移量,或者给神经元一个基础活跃等级。


(0 或 1)用于对进行分类,看它是肯定的还是否定的,这属于二元分类问题。如果
是负的,那么加权后的输入必须产生一个肯定的值并且大于
,这样才能令分类神经元大于阈值0。从空间上看,偏置改变了决策边界的位置(虽然不是定向的)。

由于输入直接经过权重关系转换为输出,所以感知机可以被视为最简单形式的前馈式人工神经网络。

本文使用C语言编写神经元网络算法,实现与或模式的识别。神经网络层只有一层,且只有一个神经元,算法比较简单,非常适合理解与学习。关于多层感知器,实现更复杂的功能,本人会在接下来的时间里慢慢实现。一下为单个神经元的学习与训练。为监督学习模式
// perceptron.cpp : Defines the entry point for the console application.
//神经元算法(简单感知器)




#include "stdio.h"


//单个神经元定义
typedef struct per_Cell_one
{
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。