感知器网络
感知器模型分析
感知器神经元模型
单层感知器模型:
-》模型总输入
-》 模型输出
加权矩阵行数-》输出数
加权矩阵列数-》输入数
偏置矩阵行数-》输出数
总输入Y======>>>Y<0-》0
Y>=0-》1 (0/1为总输出)
wij为第i个神经元(后一层)到第j个(前一层)神经元之间的连接值
感知模型用于分类
学习训练算法(学习===》改变权值)
T:理想输出
训练步骤
1) 对于所要解决的问题,确定输入向量 X,目标向量T,由此确定维数及网络结构参数,n,m;
2) 参数初始化;
3)设定最大循环次数;
4)计算网络输出;
5)检查输出矢量Y与目标矢量T是否相同,如果相同,或以达最大循环次数,训练结束,否则转入6);
6)学习
并返回4)。
离散单输出感知器
离散单输出感知器训练算法
1.初始化权向量W,阈值b;
2. 重复下列过程,直到训练完成:
2.1 对每个样本(X,y),重复如下过程:
2.1.1 输入X
2.1.2 计算输出O=F(WXT+b);
2.1.3 按如下公式修正权值矩阵W和阈值B
W=W+(y-o)X
b=b+(y-o)
离散多输出感知器
离散多输出感知器训练算法
样本集:{(X,Y)|Y为输入向量X对应的输出}
输入向量:X=(x1,x2,…,xn)
理想输出向量:Y=( y1,y2,…,ym )
**函数:F
权矩阵W=(wij)
阈值向量B= ( b1,b2,…,bm )
实际输出向量:O=( o1,o2,…,om )
1.初始化权矩阵W,阈值向量B;
2. 重复下列过程,直到训练完成:
2.1 对每个样本(X,Y),重复如下过程:
2.1.1 输入X
2.1.2 计算输出O=F(WXT+B);
2.1.3 for i=1 to m 执行如下操作:
bi=bi+(yi-oi)
for j=1 ton
wij=wij+(yi-oi)*xj
连续多输出感知器训练算法(***)
1. 初始化权矩阵W,阈值向量B;
2. 初置精度控制参数e,学习率a,精度控制变量d= e+1;
3. While d³e do
3.1 d=0;
3.2 for 每个样本(X,Y) do
3.2.1 输入X;
3.2.2 计算输出O=F(WXT+B);
3.2.3 修改权矩阵W和阈值向量B;
3.2.4 累积误差
for i=1to m do
d=d+(yi-oi)2
矫正:W[i] = W[i] + α*(Y[i] –T[i])*P[i];
B[i] = B[i] + α*(Y[i] –T[i]);
其中的α值为0~1的小数,我的α值取的是0.2。T为目标值。
为了确定训练效果,这里需要定义一个误差率,误差这样来定义:E =∑(Y - T)2