GİRİŞ
Bu çalışmada 225 farklı damar görüntülerini 20x20 boyutunda alt görüntülere bölündü ve bölünen her alt görüntüye ortalama mutlak sapma uygulandı. Bu aşamadan sonra elde ettiğimiz veriler ile yapay sinir ağları (Artificial Neural Networks - YSA) algoritmaları kurup ilk önce eğitim ve daha sonrasında test aşamalarını tamamlayıp sonuçlarını değerlendirmek olacaktı. Bu algoritmayı kurmadan evvel öncelikle hazır YSA programlarıyla (Neural Networks Fiting) analiz yapılmış %98-%99 arasında bir başarıya ulaşılmıştır. Bu sonuçlar göz önünde bulundurularak yeniden YSA algoritması kurulmuş ve hazır YSA programları kullanmadan eğitim ve test yapılmıştır. Sonuçlarda en yüksek %99,7 başarıya ulaşılmıştır. Ayrıca bu algoritma için MATLAB üzerinden bir arayüz tasarlanmıştır.
1.Yapay Sinir Ağları Nedir?
Yapay sinir ağları (YSA), insan beyninin özelliklerinden olan öğrenme yolu ile yeni bilgiler türetebilme, yeni bilgiler oluşturabilme ve keşfedebilme gibi yetenekleri, herhangi bir yardım almadan otomatik olarak gerçekleştirebilmek amacı ile geliştirilen bilgisayar sistemleridir[1]. Yapay sinir ağları insan beyni örnek alınarak, öğrenme sürecinin matematiksel olarak modellenmesi sonucu ortaya çıkmıştır. Beyindeki biyolojik sinir ağlarının yapısını, öğrenme, hatırlama ve genelleme kabiliyetlerini taklit eder[2]. Yapay sinir ağlarında öğrenme işlemi örnekler kullanılarak gerçekleştirilir. Öğrenme esnasında giriş çıkış bilgileri verilerek, kurallar koyulur.
- Yapay Sinir Ağlarının Avantajları
- Yapay Sinir Ağları bir çok hücreden meydana gelir ve bu hücreler eş zamanlı çalışarak karmaşık işleri gerçekleştirir.
- Öğrenme kabiliyeti vardır ve farklı öğrenme algoritmalarıyla öğrenebilirler.
- Görülmemiş çıktılar için sonuç (bilgi) üretebilirler. Gözetimsiz öğrenim söz konusudur.
- Örüntü tanıma ve sınıflandırma yapabilirler. Eksik örüntüleri tamamlayabilirler.
- Hata toleransına sahiptirler. Eksik veya belirsiz bilgiyle çalışabilirler. Hatalı durumlarda dereceli bozulma (graceful degradation) gösterirler.
- Paralel çalışabilmekte ve gerçek zamanlı bilgiyi işleyebilmektedirler.
Yapay sinir ağları başlıca teşhis, sınıflandırma, tahmin, kontrol, veri ilişkilendirme, veri filtreleme, yorumlama gibi alanlarda kullanılmaktadır. Hangi problem için hangi ağın daha uygun olduğunu belirlemek için ağların özellikleri ile problemlerin özelliklerini karşılaştırmak gerekir [1].
- Yapay Sinir Ağlarının Kullanım Alanları
- Hesaplamalı Finans(Computational finance): Kredi skorlaması(credit scoring), Algoritmik Ticaret(algorithmic trading)
- Görüntü işleme ve bilgisayarla görü(image processing and computer vision): Yüz tanıma(face recognition), hareket tanıma(motion detection), nesne tanıma(object detection)
- Hesaplamalı biyoloji(Computational biology): Tümör bulma(tumor detection), İlaç keşfi(durg discovery), DNA dizilimi(DNA seqencing)
- Enerji üretimi (Energy production): Fiyat ve yük tahmini (price and load forecasting)
- Otomotiv, havacılık ve üretim (Automotive, aerospace and manufacturing): Öngörücü bakım (predictive maintenance)
- Doğal dil işleme(Natural language processing ): Sesli Asistan(voice assistant), Duygu analizi(emotion analysis)
| Geleneksel Algoritmalar | Yapay Sinir Ağları |
| Çıkışlar, koyulan kurallara girişlerin uygulanması ile elde edilir. | Öğrenme esnasında giriş çıkış bilgileri verilerek, kurallar koyulur. |
| Bilgiler ve algoritmalar kesindir. | Deneyimden yararlanır. |
| Hesaplama; merkezi, eş zamanlı ve ardışıktır. | Hesaplama; toplu, eş zamansız ve öğrenmeden sonra paraleldir. |
| Bellek paketlenmiş ve hazır bilgi depolanmıştır. | Bellek ayrılmış ve ağa yayılmıştır. |
| Hata toleransı yoktur. | Hata toleransı vardır. |
| Nispeten hızlıdır. | Yavaş ve donanıma bağımlıdır. |
Tablo 1: Geleneksel Algoritmalar ile YSA’ların Karşılaştırılması
- Yapay Sinir Yapısı
- Biyolojik sinir ağlarının sinir hücresi olduğu gibi yapay sinir ağlarının da yapay sinir hücreleri vardır. Yapay sinir hücreleri mühendislik biliminde proses elemanları olarak da adlandırılmaktadır.
Girdiler: Bir yapay hücresine dış dünyadan gelen bilgilerdir. Bunlar ağın öğrenmesini istenen örnekler tarafından belirlenir. Ağırlıklar: Bir yapay hücreye gelen bilginin önemini ve hücre üzerindeki etkisini gösterir. Şekildeki ağırlık wi1, xi1 girdisinin hücre üzerindeki etkisini göstermektedir. Ağırlıkların büyük ya da küçük olması önemli veya önemsiz olduğu anlamına gelmez. Bir ağırlığın sıfır olması o ağ için en önemli olay olabilir. Toplama Fonksiyonu (Birleştirme Fonksiyonu): Bu fonksiyon, bir hücreye gelen net girdiyi hesaplar. Bunun için değişik fonksiyonlar kullanılmaktadır. En yaygın olanı ise ağırlıklı toplamıdır. Burada her gelen bilgi kendi ağırlığı ile çarpılarak toplanır. Böylece ağa gelen net girdi bulunmuş olur. Aşağıdaki tabloda bazı toplama fonksiyonlarına yer verilmiştir [2].

Tablo 2: Bazı Toplama Fonksiyonları
- Hazır YSA Programı ile Verilerin Eğitim ve Test Aşaması
Bu bölümde elimizdeki verilerin MATLAB da yer alan Neural Networks Fitting programı ile eğitim ve test aşamalarında gösterdiği başarıları ele aldım. Daha sonrasında bu sonuçları kendi yazdığım algoritma sonuçları ile karşılaştırdım.
Hazır Neural Fitting uygulaması aşağıdaki gibidir.

Şekil 1: Hazır Neural Network Programı Giriş
Öncelikle input ve output (target) degerlerini veri dosyamızdan çekerek Çalışma Alanına (Workspace) yüklüyoruz. Daha sonra programın araçlarından İnput ve Target kısmına giriyoruz.

Şekil 2: Hazır Neural Network Programına Veri Girişi
İlerledikten sonra karşımıza Training oranı, Validation oranı ve Test oranı kısmı gelecek. Bu kısımda Eğitim/Test/Validation oranlarını girip ileri diyoruz.

Şekil 3: Hazır Neural Network Programında Eğitim – Test Oranlarını Girilmesi
Bu kısımda gizli katman nöron sayısı giriliyor.

Şekil 4: Hazır Neural Network Programında Hidden Layer Girişi
Daha sonrasında eğitim aşaması ardından test – validation aşaması başlıyor. Ekranda yapılan iterasyon sayısı gözlenebiliyor.

Şekil 5: Hazır Neural Network Programın Çalışması
Program çalışması bittiğinde sonuçlar aşağıdaki gibi oluyor. Eğitim, Test, Validation aşamalarının R oranları veriliyor ve gerçek değerleri ifade eden çizgi üzerindeki izdüşümleri veriliyor.

Şekil 6: Hazır Neural Network Programının Sonuç Ekranı – 1
Daha sonra aşağıdaki ekrandan tekrar eğit diyerek tekrar sonuç alınabiliyor. Ancak daha iyi sonuç almak için girişte uyguladığımız değerleri değiştirmekte fayda var.

Şekil 7: Hazır Neural Network Programının Tekrar Eğitim Ekranı
Eğitim, test, validation ve iterasyon sayısı değiştirildikten sonra aşağıdaki sonuçlar elde ediliyor.

Şekil 8: Hazır Neural Network Programının Sonuç Ekranı – 2
Son olarak program verileri kaydedilebiliyor ve aşağıdaki ekranda korelasyon değeri hesaplanıyor.
Korelasyon değeri, tahmin edilen ve gerçek değere bağlı olarak yapılıyor.

Şekil 9: Hazır Neural Network Programında Elde Edilen Verilen Kaydı ve Korelasyonu
- Yeni Bir YSA Programı Tasarlanması
Ödevimizin amacı yeni bir ysa programı tasarlamak ve elimizdeki verileri bu program ile eğitip test etmekti. Bunun için hocamızın bizimle sunumda paylaştığı bilgiler ışığında bir program tasarlandı. Program algoritmalarından önce ysa’ya tekrar bakalım.
Bir nöronun çıkışı; // X: Girişler, W: Ağırlık, F: Aktivasyon Fonksiyonu

Şekil 10: Bir Nöronun Çıkışı
Aktivasyon fonksiyonu için MATLAB tarafından default kabul edilen Sigmoid fonksiyonu kullanılmıştır.

Şekil 11: Sigmoid Fonksiyonu
Çok katmanlı sinir ağlarından bahsedecek olursak; programımızda 2 adet Gizli Katman (Hidden Layer) kullanılmıştır. Bulunan en iyi sonuçta birinci gizli katman 20, ikinci gizli katman 15 nöron içermektedir.

Şekil 12: Çok Katmanlı Sinir Ağları
- Programın Algoritması
Programın girişinde hazır ysa programlarında yapıldığı gibi veri girişleri sağlanacaktır. İlk öncelikle Veri dosyası veri isminde bir değişkene okutulacak. Daha sonrasında input alınacak nöron sayısı ve target olacak nöron sayısı belirlenecektir. Bu işlemler yapıldıktan sonra ileride oluşturulacak fonksiyon için learning rate (Öğrenme yüzdesi), hidden layer’lar, Traning_rate (Eğitim yüzdesi) girilecektir. Bu kısım aşağıdaki gibi açıklanabilir. Not: Arayüz Oluşturulduktan sonra bu veriler ara yüzden girilir.
veri=xlsread(‘damar_25_sinif_virgul.xlsx’) %Veri okunması
input=veri(:,1:108); %İnput almak
target=veri(:,end); %Target almak
lrate=0.85; %Öğrenme yüzdesi
n1=20; %Gizli katmanlar
n2=15;
training_rate=0.70; %Eğitim Yüzdesi
[net ye yv MAPE R2] = neuralnetwork( input, target, training_rate,n1,n2,lrate ) %Func.
Bu işlemlerden sonra fonksiyon oluşturulur. Fonksiyon algoritması ve açıklamaları aşağıdaki gibidir.
function [net ye yv MAPE R2] = neuralnetwork( input, target, training_rate,n1,n2,lrate )
%NEURALNETWORK Summary of this function goes here
%input: Veri girişleri
%target: Veri çıktıları
%training_rate: Verilerin % kaçının eğitim için kullanılacağını belirtir.
%n1: birinci gizli katmandaki nöron sayısı
%n2: ikinci gizli katmandaki nöron sayısı
%lrate: Learning Rate (öğrenme katsayısı)
% Detailed explanation goes here
%input değişkeni neuralnetworkun girdisi
%target değişkeni neuralnetworkun (NN) çıktısı XXX
%target gerçekleşen değerler
%Girdi training ve validation olarak ayrılacak
%Çıktılarda training ve validation olarak ayrılacak
%NN olulşturulacak
%Training giridilerini ve training çıktılarını kullanılarak ağ eğitilecek
%—> Eğitilmiş NN
%valitation için kullanılan girdiler ve çıktılar ağa verilecek
%Eğitilmiş ağdan çıkan çıktılar ile gerçek çıktılar karşılaştırılacak.
% %70 training ve %30 validation verisi olacak
noofdata=size(input,1);
ntd=round(noofdata*training_rate);
% 100 veri olduğu varsayılırsa bu training rate ile çarpılarak training
% için kullanılacak veriler elde edilir. Training rate 0 ile 1 arasında
% olmalıdır.
%kullanılacak training sayısı küsürlü olamayacağı için round eklendi.
%girdiler training-validation için ayrılmalı
%xt : training girdisini versin
%xv : valitadation girdisini versin
xt=input(1:ntd,:);
xv=input(ntd+1:end,:);
%target kısmı da training ve testing için ayrılmalıdır.
%yt : Training için gerçekleşen data, hedef
%yv : Valitadation için gerçekleşen data, hedef
yt=target(1:ntd);
yv=target(ntd+1:end);
% Matlab default olarak verileri sütunda gördüğü için satırdaki
% verilerimizi sütun haline indirmemiz gerekiyor
% Bunun için xt-xv-yt-yv’nin transpozunu alıyoruz.
xt=xt’;
xv=xv’;
yt=yt’;
yv=yv’;
% Girdi verilerinin normalize edilmesi ( -1 ve 1 ) aralığında
% xtn : Training için normalize girdi verisi
% validation için normalize girdi verisi
xtn = mapminmax(xt);
xvn = mapminmax(xv);
%training outputunu normalize edilecek.
[ytn, ps] = mapminmax(yt);
%ps normalizasyonun nasıl yapıldığı ile ilgili bilgiyi saklar.
% Aslında bizim verilerimizin hepsi normalize bir şekilde geldi ancak başka
% uygulamalar için kullanılabileceği için bu işlemi tuttum. Bu işlemin
% olması bizim verilerimizde bir değişikliliğe sebep olmayacaktır.
%Daha sonrasında ağ objesini oluşturuyoruz.
%NN-F’de net diye workspace kaydedilen ağ yapısı gibi diyebiliriz
%newff komutu yeni bir FeedFwd NN oluşturur. Girdileri şöyledir
% girdiler,çıktılar (target), hdden layer nöron sayısı, transfer fonksiyonu, eğitim
% algoritması için ne kullanılacağını içerir.
net=newff(xtn, ytn, [n1,n2],{}, ‘trainlm’ );
net.trainParam.lr=lrate; % öğrenme katsayısı
net.trainParam.epochs=10000; % iterasyon sayısı
%iterasyonu yakınsama amacıyla yaptığımız için deneme yanılma yolu ile
%seçtik aşağıdaki modül ile fazlası atlandı.
net.trainParam.goal=1e-1000000000; % Yakınlaştığında dur 100M
net.trainParam.show=NaN; % Bitince sonuçları göster demek.
%Ağı eğitme
%Net ağını eğit, Net ağının üzerine yazılacak.
net=train(net,xtn,ytn);
%validation girdilerini gir, normalize çıktılarını elde edilecek.
%normalize halde (0-1 aralığındaki) validation çıktıları olsun.
yen=sim(net,xvn);
%yvn normalize validation çıktısı değeri yoktur.
%yv : normalize olmayan gerçek validation target değerleri var.
%yen : normalize halde validation çıktıları var.
%ye: normalize olmayan validation çıktısı
ye=mapminmax(‘reverse’, yen, ps);
ye=ye’; % NN çıktısı
yv=yv’; % Gerçekleşen çıktı
%Başarı sınaması aşağıdaki metotlar ile yapılır.
MAPE = mean((abs(ye-yv))./yv); % Bizim verilerimizde paydaya sıfır geldiği için sonuç muhtemelen INF olacaktır.
%sstotal gerçekleşenin sapma toplamı
%sserror hatanın sapma toplamı, hata: gerceklesen-tahmin
SStotal=sum((yv-mean(yv)).^2);
SSerror= sum((ye-yv).^2);
R2=1-SSerror/SStotal;
end
Fonksiyonun son kısmında bulunan R2 değeri ile başarı sonucu görülebilir. Aşağıdaki şekillerde R2 sonuçları bulunmaktadır. R2(kare) degeri -1 ile 1 arasında olur ve başarı durumu 0’a yakınlığına bağlıdır.

Şekil 13: R2(kare) Başarı Sonucu - 1

Şekil 14: R2(kare) Başarı Sonucu – 2

Şekil 15: R2(kare) Başarı Sonucu – 3
- Programın Ara yüz Tasarımı ve Algoritması
Program el ile MATLAB üzerinden veri girişi yapıldığında ya da sabit veriler (3.1’in girişinde verilen algoritma) ile denenmiş ve çalıştırılmıştır. Ancak dışarıdan kullanmak isteyen bir kullanıcının verileri bir ara yüz ile girip kolay bir şekilde eğitim-test yaptırılması sağlanmıştır. Arayüzün algoritması aşağıda verilmiştir.
- Ara yüz Algoritması
function varargout = YSA(varargin)
% YSA MATLAB code for YSA.fig
% YSA, by itself, creates a new YSA or raises the existing
% singleton*.
%
% H = YSA returns the handle to a new YSA or the handle to
% the existing singleton*.
%
% YSA(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in YSA.M with the given input arguments.
%
% YSA(‘Property’,‘Value’,…) creates a new YSA or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before YSA_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to YSA_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help YSA
% Last Modified by GUIDE v2.5 09-Feb-2021 03:46:34
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @YSA_OpeningFcn, …
‘gui_OutputFcn’, @YSA_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before YSA is made visible.
function YSA_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to YSA (see VARARGIN)
% Choose default command line output for YSA
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes YSA wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = YSA_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename1,filepath1]=uigetfile({’*.*’,‘All Files’},…
‘Select Data File 1’);
DosyaKonumu=strcat(filepath1, filename1);
veri = xlsread(DosyaKonumu); %Bilgiler okunuyor
set(handles.text3, ‘string’,DosyaKonumu); %yol gösteriliyor.
set(handles.uitable3, ‘Data’,veri); %bilgiler gösteriliyor.
% --- Executes on button press in checkbox1.
function checkbox1_Callback(hObject, eventdata, handles)
% hObject handle to checkbox1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox1
training_rate = get(h.checkbox1, ‘Value’);
% --- Executes on button press in checkbox2.
function checkbox2_Callback(hObject, eventdata, handles)
% hObject handle to checkbox2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox2
training_rate = get(h.checkbox2, ‘Value’);
% --- Executes on button press in checkbox3.
function checkbox3_Callback(hObject, eventdata, handles)
% hObject handle to checkbox3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox3
training_rate = get(h.checkbox3, ‘Value’);
% --- Executes on button press in checkbox4.
function checkbox4_Callback(hObject, eventdata, handles)
% hObject handle to checkbox4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox4
training_rate = get(h.checkbox4, ‘Value’);
% --- Executes on button press in checkbox5.
function checkbox5_Callback(hObject, eventdata, handles)
% hObject handle to checkbox5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox5
training_rate = get(h.checkbox5, ‘Value’);
% --- Executes on button press in checkbox6.
function checkbox6_Callback(hObject, eventdata, handles)
% hObject handle to checkbox6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox6
training_rate = get(h.checkbox6, ‘Value’);
% --- Executes on button press in checkbox7.
function checkbox7_Callback(hObject, eventdata, handles)
% hObject handle to checkbox7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox7
training_rate = get(h.checkbox7, ‘Value’);
% --- Executes on button press in checkbox8.
function checkbox8_Callback(hObject, eventdata, handles)
% hObject handle to checkbox8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox8
training_rate = get(h.checkbox8, ‘Value’);
% --- Executes on button press in checkbox9.
function checkbox9_Callback(hObject, eventdata, handles)
% hObject handle to checkbox9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox9
training_rate = get(h.checkbox9, ‘Value’);
% --- Executes on button press in checkbox10.
function checkbox10_Callback(hObject, eventdata, handles)
% hObject handle to checkbox10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox10
training_rate = get(h.checkbox10, ‘Value’);
% --- Executes on button press in checkbox11.
function checkbox11_Callback(hObject, eventdata, handles)
% hObject handle to checkbox11 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox11
training_rate = get(h.checkbox11, ‘Value’);
% --- Executes on button press in checkbox12.
function checkbox12_Callback(hObject, eventdata, handles)
% hObject handle to checkbox12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,‘Value’) returns toggle state of checkbox12
training_rate = get(h.checkbox12, ‘Value’);
% --- Executes when entered data in editable cell(s) in uitable3.
function uitable3_CellEditCallback(hObject, eventdata, handles)
% hObject handle to uitable3 (see GCBO)
% eventdata structure with the following fields (see MATLAB.UI.CONTROL.TABLE)
% Indices: row and column indices of the cell(s) edited
% PreviousData: previous data for the cell(s) edited
% EditData: string(s) entered by the user
% NewData: EditData or its converted form set on the Data property. Empty if Data was not changed
% Error: error string when failed to convert EditData to appropriate value for Data
% handles structure with handles and user data (see GUIDATA)
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,‘String’) returns contents of edit1 as text
% str2double(get(hObject,‘String’)) returns contents of edit1 as a double
iterasyon=str2double (get (handles.editbox_1, ‘String’ ));
iterasyon=str2double;
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
function edit6_Callback(hObject, eventdata, handles)
% hObject handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,‘String’) returns contents of edit6 as text
% str2double(get(hObject,‘String’)) returns contents of edit6 as a double
lrate=str2double (get (handles.editbox_6, ‘String’ ));
lrate=str2double;
% --- Executes during object creation, after setting all properties.
function edit6_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
function edit7_Callback(hObject, eventdata, handles)
% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,‘String’) returns contents of edit7 as text
% str2double(get(hObject,‘String’)) returns contents of edit7 as a double
n1=str2double (get (handles.editbox_7, ‘String’ ));
n1=str2double;
% --- Executes during object creation, after setting all properties.
function edit7_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
function edit8_Callback(hObject, eventdata, handles)
% hObject handle to edit8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,‘String’) returns contents of edit8 as text
% str2double(get(hObject,‘String’)) returns contents of edit8 as a double
n2=str2double (get (handles.editbox_8, ‘String’ ));
n2=str2double;
% --- Executes during object creation, after setting all properties.
function edit8_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
function edit9_Callback(hObject, eventdata, handles)
% hObject handle to edit9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,‘String’) returns contents of edit9 as text
% str2double(get(hObject,‘String’)) returns contents of edit9 as a double
input=str2double (get (handles.editbox_9, ‘String’ ));
input=str2double;
% --- Executes during object creation, after setting all properties.
function edit9_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
function edit10_Callback(hObject, eventdata, handles)
% hObject handle to edit10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,‘String’) returns contents of edit10 as text
% str2double(get(hObject,‘String’)) returns contents of edit10 as a double
target=str2double (get (handles.editbox_10, ‘String’ ));
target=str2double;
% --- Executes during object creation, after setting all properties.
function edit10_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
run(‘oniki.m’);
- Ara yüz Tasarımı
Tasarım olarak dış görünüşü çok güzel olmasa da kullanıcı için kullanması kolay bir arayüz tasarlandı. Arayüz içerisinde her şey açıkça belirtilmiştir. Arayüz aşağıdaki şekiller ile tanıtılmıştır.

Şekil 16: Dosya Seçten Sonra Verilerin Arayüz Ekranına Gelmesi ve Diğer Verilerin Girilmesi

Şekil 17: GUI’de Değerler Onaylandıktan Sonra Eğitimin Yapılması

Şekil 18: GUI’de Eğitim ve Test Sonuçlarının Ekrana Getirilmesi
E=%99.9, T=%97.34, All = %99.195

Şekil 16: GUI Ana Ekran
Kaynakça
- Yıldırım E, 2020 Yapay Sinir Ağı(Artificial Neural Network) Nedir?, Veri Bilimi Okulu, https://www.veribilimiokulu.com/blog/yapay-sinir-agiartificial-neural-network-nedir/, Türkiye, [Ziyatet Tarihi : 08.02.20201].
- Şengöz N, 2017, Yapay Sinir Ağları, https://www.derinogrenme.com/2017/03/04/yapay-sinir-aglari/, Türkiye, [Ziyaret Tarihi : 08.02.2021].