Professional Documents
Culture Documents
Xor-Artificial Neural Network Project Report
Xor-Artificial Neural Network Project Report
BURAK ECE
PROJECT ADVISOR
Asst.Prof.Dr. Hasan Hseyin elik
ok Katmanl A Modelinin Yaps
Girdi Katman: D dnyadan gelen girdileri alarak ara katmana gnderir. Bu katmanda bilgi ileme olmaz.
Gelen her bilgi geldii gibi bir sonraki katmana gider. Her proses elemann sadece bir tane girdisi ve bir tane
kts vardr. Yani, girdi katmanndaki her proses eleman bir sonraki katmanda bulunan proses elemanlarnn
hepsine balanr.
Ara Katman: Ara katmanlar girdi katmanndan gelen bilgileri ileyerek bir sonraki katmana gnderir. ok
katmanl bir ada birden fazla ara katman ve her katmanda birden fazla proses eleman bulunabilir.
k Katman: Ara katmandan gelen bilgileri ileyerek aa girdi katmanndan verilen girdilere karlk an
rettii klar belirleyerek d dnyaya gnderir.
Bir kt katmannda birden fazla proses eleman olabilir. Her proses eleman bir nceki katmanda
bulunan btn proses elemanlarna baldr. Her proses elemannn bir kts vardr.
ok katmanl a retmenli renme stratejisini kullanr. Aa, hem rnekler hem de rneklerden elde
edilmesi gereken ktlar verilmektedir.
Sistem, kendisine gsterilen rneklerden genellemeler yaparak problem uzayn temsil eden bir
zm uzay retmektedir.
Daha sonra gsterilen benzer rnekler iin bu zm uzay sonular ve zmler retebilmektedir.
An renebilmesi iin eitim seti ad verilen ve rneklerden oluan bir sete ihtiya vardr. Bu set iinde her
rnek iin an hem girdiler hem de o girdiler iin an retmesi gereken ktlar belirlenmitir.
Genelletirilmi Delta Kural iki aamadan oluur:
leri doru hesaplama(Feed Forward)
Geri doru hesaplama (Back Propogation)
Bu safhada bilgi ileme eitim setindeki bir rnein Girdi Katmanndan aa gsterilmesi ile balar. Gelen
girdiler hi bir deiiklik olmadan ara katmana gnderilir.
Ara katmandaki her proses eleman girdi katmanndaki btn proses elemanlarndan gelen bilgileri balant
arlklarnn (A1,A2,....) etkisi ile alr. nce ara katmandaki proses elemanlarna gelen net girdi
u forml kullanlarak hesaplanr:
Burada k. girdi elemann j. ara katman elemanna balayan balantnn arlk deerini gstermektedir.
j. ara katman elemannn kts ise bu net girdinin aktivasyon fonksiyonundan geirilmesiyle hesaplanr.
Sigmoid fonksiyonu kullanlmas halinde kt:
Burada j , ara katmanda bulunan j. elemana balanan eik deer elemannn arln gstermektedir. Bu
eik deer nitesinin kts sabit olup 1e eittir. Eitim srasnda a bu deeri kendisi belirlemektedir.
Ara katmann btn proses elemanlar ve kt katmannn proses elemanlarnn ktlar ayn ekilde
kendilerine gelen NET girdinin hesaplanmas ve sigmoid fonksiyonundan geirilmesi sonucu belirlenirler.
kt katmanndan kan deerler bulununca an ileri doru hesaplama ilemi tamamlanm olur.
Aa sunulan girdi iin an rettii kt an beklenen ktlar ile karlatrlr. Bunlarn arasndaki fark hata
olarak kabul edilir. Ama bu hatann drlmesidir.
Bu hata, an arlk deerlerine datlarak bir sonraki iterasyonda hatann azaltlmas salanr.
Yukardaki hata, bir proses eleman iin oluan hatadr. kt katman iin oluan toplam hatay (TH) bulmak
iin btn hatalarn toplanmas gerekir.
Toplam hatay en azlamak iin bu hatann kendisine neden olan proses elemanlarna datlmas
gerekmektedir.
An arlklarn deitirmek iin 2 durum sz konusudur:
Ara katmandaki j. Proses eleman kt katmanndaki m. Proses elemanna balayan balantnn arlndaki
deiim miktarna Aa denirse; herhangi bir t zamannda arln deiim miktar yle hesaplanr:
Benzer ekilde eik deer nitesinin de arlklarn deitirmek gerekmektedir. kt katmannda bulunan
proses elemanlarnn eik deer arlklar ile gsterilirse; bu nitenin kts sabit ve 1 olmas nedeni ile
deiim miktar:
eklinde hesaplanacaktr.
Ara Katmanlar Aras veya Ara Katman Girdi Katman Arasndaki Arlklarn Deitirilmesi
Ara katman ile kt katman arasndaki arlklarn deiiminde her arlk iin sadece kt katmanndaki bir
proses elemannn hatas dikkate alnmtr. Oysaki bu hatalarn olumasnda girdi katman ve ara katman
arasndaki arlklarn pay vardr.
Girdi katman ile ara katman arasndaki arlklarn deiimi Ai ile gsterilirse deiim miktar:
Benzer ekilde eik deer nitesinin de arlklarn deitirmek gerekmektedir. Ara katman eik deer
arlklar a ile gsterilirse deiim miktar;
Bylece an arlklarnn hepsi deitirilmi olacaktr. Bir iterasyon hem ileri hem de geriye doru
hesaplamalar yaplarak tamamlanm olacaktr.
TextView tv,tv2;
EditText et,et2,et3;
Button startbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.text1);
tv2 = (TextView) findViewById(R.id.text2);
et = (EditText) findViewById(R.id.editText2);
et2 = (EditText) findViewById(R.id.editText3);
et3 = (EditText) findViewById(R.id.editText4);
startbutton = (Button) findViewById(R.id.startbutton);
startbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stringBuilder.append(status);
double net1,net2;
double dAa11,dAa12,dBc11;
double dAi11,dAi12,dAi21,dAi22;
double dBa11,dBa12;
double E,Error;
double[] output;
double[] err;
int i;
dAi11 = 0;
dAi12 = 0;
dAi21 = 0;
dAi22 = 0;
Aa11 = 0.164732;
Aa12 = 0.752621;
dAa11 = 0;
dAa12 = 0;
Ba11 = 0.341332;
Ba12 = -0.115223;
Bc11 = -0.993423;
dBa11 = 0;
dBa12 = 0;
dBc11 = 0;
treshold = 1;
E = t - y;
output[j] = y;
err[j] = E;
j++;
double sigma1,sigma1a,sigma2a;
sigma1 = y*(1-y)*E;
dAa11 = lamda*sigma1*c1+alpha*dAa11;
dAa12 = lamda*sigma1*c2+alpha*dAa12;
dBc11 = lamda*sigma1+alpha*dBc11;
sigma1a = c1*(1-c1)*sigma1*Aa11;
sigma2a = c2*(1-c2)*sigma1*Aa12;
dAi11 = lamda*sigma1a*ex.x1+alpha*dAi11;
dAi12 = lamda*sigma1a*ex.x1+alpha*dAi12;
dAi21 = lamda*sigma1a*ex.x2+alpha*dAi21;
dAi22 = lamda*sigma1a*ex.x2+alpha*dAi22;
dBa11 = lamda*treshold*sigma1a;
dBa12 = lamda*treshold*sigma2a;
if(Math.abs(E) <Error){
break;
}
stringBuilder.append("\n");
}
String finalString = stringBuilder.toString();
return finalString;
}
class Example{
int x1, x2;
double o;
Example(int x1, int x2, double o){
this.x1 = x1;
this.x2 = x2;
this.o = o;
}
}