% Heb net for bipolar AND data clear; clc; % Data s1 = [1 1 -1 -1]; s2 = [1 -1 1 -1]; t = [1 -1 -1 -1]; % Agirliklari sifirla w1 = 0; w2 = 0; b = 0; % Egitim: agirliklari ayarla for i = 1:4 x1 = s1(i); x2 = s2(i); y = t(i); w1 = w1 + x1*y; w2 = w2 + x2*y; b = b + y; end % Sinama: Test A = 1; B = -1; % Girdiler net = w1*A + w2*B + b; % Cikti if net >= 1 fnet = 1 else fnet = -1 end
% Heb net for bipolar OR data clear; clc; % Data s1 = [1 1 -1 -1]; s2 = [1 -1 1 -1]; t = [1 1 1 -1]; % Agirliklari sifirla w1 = 0; w2 = 0; b = 0; % Egitim: agirliklari ayarla for i = 1:4 x1 = s1(i); x2 = s2(i); y = t(i); w1 = w1 + x1*y; w2 = w2 + x2*y; b = b + y; end % Sinama: Test A = 1; B = -1; % Girdiler net = w1*A + w2*B + b; % Cikti if net >= 1 fnet = 1 else fnet = -1 end
% Pattern association for bipolar data clear; clc; % Data s = [1 -1 -1 -1; ... 1 1 -1 -1; ... -1 -1 -1 1; ... -1 -1 1 1]; t = [1 -1; 1 -1; -1 1; -1 1]; % train W = s'*t; % test x = [1 1 -1 -1]; y = x*W; a = find( y > 1 ); y(a) = 1; b = find( y < 1 ); y(b) = -1; y
% Pattern association for gray data clear; clc; % Data s = [1.0 -0.5 0.5 -1.0 -0.4; ... 1.0 -0.2 -1.0 -0.5 0.4; ... -0.1 -0.3 0.9 1.0 0.3; ... 0.2 0.5 0.6 0.9 -1.0; ... 0.3 0.4 0.7 1.0 -0.9]; t = [ 1 -1 -1 -1; ... -1 1 -1 -1; ... -1 -1 1 -1; ... -1 -1 -1 1; ... -1 -1 -1 1]; % train W = s'*t; % test x = [0.3 0.4 0.7 1.0 -0.9]; y = x*W; y a = find(y > 1); y(a) = 1; b = find(y < 1); y(b) = -1; y
% Pattern association for bipolar data clear; clc; % Data s = [-1 -1 -1 -1 1 ... -1 -1 1 -1 1 ... -1 -1 -1 -1 1 ... -1 -1 -1 -1 1 ... -1 -1 -1 -1 1; 1 1 1 1 1 ... -1 -1 -1 -1 1 ... -1 -1 1 1 1 ... -1 -1 -1 -1 1 ... 1 1 1 1 1]; t = [1 -1; -1 1]; % train W = s'*t; % test x = [-1 -1 -1 -1 1 -1 -1 1 -1 1 ... -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1]; % hesapla y = x*W; a = find(y > 1); y(a) = 1; b = find(y < 1); y(b) = -1; y
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bu fonkksiyon, bir dijital görüntü içindeki % verinin bulunduğu kısmı keser ve onu yapay sinir % ağları için (Hebb net) için kullanılabilir hale getirir. % % dosya Katar (string) tipinde görüntü dosyasının tam yolu % örnek: 'c:\resim\cicek.png' % % t2 Yeniden yapılandırılmış dizi % % Mart 2020 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function t2 = sifir_1(dosya) t1 = imcomplement(im2bw(imread(dosya))); % dosyayı al (matris) bolge = regionprops(t1); % bölge belirle t1 = imcrop(t1,bolge(1).BoundingBox); % kırp t1 = imresize(t1,[100 100]); % yeniden boyutlandır imshow(t1); % göster t2 = double(t1); % gerçel sayı matrisine çevir t2 = changem(t2,-1,0); % görüntü içindeki 0 -> -1 yap t2 = reshape(t2',1,[]); % t1 matrisi t2 dizisine çevir end
% Pattern association with pictures clear; clc; % Data a1 = sifir_1('t/a1.png'); a2 = sifir_1('t/a2.png'); a3 = sifir_1('t/a3.png'); aA = sifir_1('t/aA.png'); aB = sifir_1('t/aB.png'); aC = sifir_1('t/aC.png'); t1 = sifir_1('t/t1.png'); t2 = sifir_1('t/t2.png'); t3 = sifir_1('t/t3.png'); tA = sifir_1('t/tA.png'); tB = sifir_1('t/tB.png'); tC = sifir_1('t/tC.png'); s = [a1; a2; a3; aA; aB; aC; ... t1; t2; t3; tA; tB; tC]'; t = [+1 -1 -1 -1 -1 -1; ... -1 +1 -1 -1 -1 -1; ... -1 -1 +1 -1 -1 -1; ... -1 -1 -1 +1 -1 -1; ... -1 -1 -1 -1 +1 -1; ... -1 -1 -1 -1 -1 +1; ... +1 -1 -1 -1 -1 -1; ... -1 +1 -1 -1 -1 -1; ... -1 -1 +1 -1 -1 -1; ... -1 -1 -1 +1 -1 -1; ... -1 -1 -1 -1 +1 -1; ... -1 -1 -1 -1 -1 +1]; % train W = s * t; % test x = sifir_1('t/e1.png'); y = x*W % y dizisinin en büyüğününe bak ve karar ver [deger indis] = max(y); if indis == 1 disp('Bu 1') elseif indis == 2 disp('Bu 2') elseif indis == 3 disp('Bu 3') elseif indis == 4 disp('Bu A') elseif indis == 5 disp('Bu B') elseif indis == 6 disp('Bu C') end