CASCADE-FORWARD
Cascade-Forward network Feed-Forward network’e benzer, ancak girişten ve her önceki katmandan aşağıdaki katmanlara bağlantı içerir.
İleriye dönük ağlarda olduğu gibi, iki ya da daha fazla katmanlı Cascade network, yeterli gizli nöronlar tarafından keyfi olarak iyi verilen herhangi bir sonlu girdi-çıktı ilişkisini öğrenebilir.
[x,t] = simplefit_dataset;
net = cascadeforwardnet(10);
net = train(net,x,t);
view(net) y = net(x);
perf = perform(net,y,t) perf =
1.9372e-05
cascadeforwardnet (hiddenSizes, trainFcn) bu argümanları alır, COMPETİTİVE
Competitive bir katmandaki nöronlar, giriş vektörlerinin meydana geldiği giriş alanının farklı bölgelerini temsil etmeyi öğrenirler.
P, rastgele oluşturulmuş fakat kümelenmiş test veri noktalarından oluşan bir kümedir. Burada veri noktaları çizilmiştir.
Bu noktaları doğal sınıflara ayırmak için Competitive bir ağ kullanılacaktır.
% Create inputs X.
bounds = [0 1; 0 1]; % Cluster centers to be in these bounds.
clusters = 8; % This many clusters.
points = 10; % Number of points in each cluster.
std_dev = 0.05; % Standard deviation of each cluster.
x = nngenc(bounds,clusters,points,std_dev);
% Plot inputs X.
plot(x(1,:),x(2,:),'+r');
title('Input Vectors');
xlabel('x(1)');
ylabel('x(2)');
Burada COMPETLAYER iki argüman, nöron sayısı ve öğrenme oranı alır.
Ağ girişlerini (normalde TRAIN tarafından otomatik olarak yapılır) yapılandırabilir ve sınıflandırma girişimlerini görmek için başlangıç ağırlık vektörlerini çizebiliriz.
Ağırlık vektörleri (o), giriş vektörlerinin (+ 's) kümelerinde ortalanmış hale gelmeleri için eğitilecektir.
net = competlayer(8,.1);
net = configure(net,x);
w = net.IW{1};
plot(x(1,:),x(2,:),'+r');
hold on;
circles = plot(w(:,1),w(:,2),'ob');
Bu Competitive tabakayı durdurmadan ve eğitmeden önce eğitilecek çağların sayısını ayarlayın (birkaç saniye sürebilir).
Güncellenen katman ağırlıklarını aynı grafikte çizin.
net.trainParam.epochs = 7;
net = train(net,x);
w = net.IW{1};
delete(circles);
plot(w(:,1),w(:,2),'ob');
Artık Competitive katmanı bir sınıflandırıcı olarak kullanabiliriz, burada her bir nöron farklı bir kategoriye karşılık gelir. Burada X1 giriş vektörünü [0; 0.2].
Y çıkışı, hangi nöronun yanıt verdiğini ve dolayısıyla girişin hangi sınıfa ait olduğunu gösterir.
x1 = [0; 0.2];
y = net(x1) y =
0 1 0 0 0 0 0 0