标签:神经网络 感知器 bp神经网络 rbf径向函数 分类函数
感知器是一种最简单的前馈神经网络,多输入单输出,是一种二分类。
优点:学习算法简单,易于理解。
缺点:学习速率低,学习效果差。不便于初学者运用,参数选择很难。
采用的是一种简单的惩罚机制。
条件:
算法:
3,2,1
2.5,3.5,1
4,2,1
4,4,1
3.5,2.5,1
3.5,3,1
3,4.5,1
4.5,3,1
4.5,3.4,1
5,2.8,1
6,5.5,-1
7,6,-1
6.5,6.5,-1
8,7,-1
6.3,5,-1
6.5,4.7,-1
6.7,5,-1
6.8,5.3,-1
5.5,6.5,-1
7.5,4.7,-1
7.5,6.5,-1
离散图:
函数:
main:
%% part0: 数据准备
data = load(‘data.txt‘);
x = data(:,[1,2]);
y = data(:,3);
pos = find(y == 1);
neg = find(y == -1);
plot(x(pos,1),x(pos,2),‘r+‘, x(neg,1),x(neg,2),‘go‘);
pause;
%% part1: 训练theta
[m,n] = size(x);
x = [ones(m,1),x];
theta = zeros(n+1,1);
theta = gradientDecent(x,y,theta,0.1);
X = 1:10;
Y = -(theta(1,1) + theta(2,1)*X)/theta(3,1);
plot(x(pos,2),x(pos,3),‘r+‘, x(neg,2),x(neg,3),‘co‘,X,Y,‘b‘);
function theta = gradientDecent(x,y,theta,c)
%theta是超平面的乘数,c是惩罚因子
k = 0;
m = size(y,1);
while 1
flag2 = 1;
for i = 1:m
if y(i,1)*(x(i,:)*theta)<=0
theta = theta + (y(i,1)*x(i,:) .*c)‘;
flag2 = 0;
k = k+1;
end
end
if flag2 == 1
break;
end
end
theta =
3.0000
-0.6000
0.0100
veryterrible。。。。。。。。
虽然分开了,但效果实在太差。这就是单层感知器。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:神经网络 感知器 bp神经网络 rbf径向函数 分类函数
原文地址:http://blog.csdn.net/neu_chenguangq/article/details/47341975