. * @author Gündüz Can YILMAZ * @copyright 2009 * @version 1.0.0 * @access public * @site http://www.cnylmz.net */ class perseptron extends YSA { public $log; public $iterasyonlar; function ogren() { $ornekSayisi=count($this->ogirdiler); $girdiSayisi=count($this->agirliklar); $ogrenme=false; $i=0; while($ogrenme==false) { $ogrenmeDurumu=array(); for($ornek=0;$ornek<$ornekSayisi;$ornek++) { $logtemp=array(); $i++; $NET=0; for($x=0;$x<$girdiSayisi;$x++) { $NET += $this->ogirdiler[$ornek][$x] * $this->agirliklar[$x]; $logtemp['formul'][]='W'.$x.'*X'.$x.''; $logtemp['degerler'][]=$this->agirliklar[$x].' * '.$this->ogirdiler[$ornek][$x]; } $logtemp['net']=$NET; if($NET > $this->esikDegeri) { $sonuc=1; $logtemp['c1']='NET > Ø olduğundan Ç1=1'; } else { $sonuc=0; $logtemp['c1']='NET <= Ø olduğundan Ç1=0'; } if($sonuc == $this->obeklenen[$ornek]) { $ogrenmeDurumu[]=1; $this->log[]=$i.' iterasyon: Ç1 = B1 değişiklik yapılmayacak'; $logtemp['sonuc']='Ç1 = B1 degişiklik yapılmıyor'; } else { $ogrenmeDurumu[]=0; $this->log[]=$i.' iterasyon: Ç1 != B1 ağırlıklar değiştirilecek'; $logtemp['sonuc']='Ç1 != B1 Ağırlıklar Değiştiriliyor'. '
Yeni Ağırlıklar: '; for($x=0;$x<$girdiSayisi;$x++) { $this->agirliklar[$x]-=$this->ogrenmeKatsayisi*$this->ogirdiler[$ornek][$x]; $logtemp['sonuc'].=' W'.$x.'='.$this->agirliklar[$x]; } $this->log[]='Yeni Ağırlıklar: '.implode(',',$this->agirliklar); } $this->iterasyonlar[]=$logtemp; } if(in_array(0,$ogrenmeDurumu)===false) { $ogrenme=true; $this->log[]='Öğrenme Tamamlandı'; } } } function karar($girisler){ $NET=0; $girdiSayisi=count($girisler); for($x=0;$x<$girdiSayisi;$x++) { $NET += $this->ogirdiler[$ornek][$x] * $this->agirliklar[$x]; } return ($NET > $this->esikDegeri) ? 1:0; } function iterasyonhtml() { $itr=count($this->iterasyonlar); echo '
'; for($i=0;$i<$itr;$i++) echo ''.($i+1).'. iterasyon
'; echo'
'; for($i=0;$i<$itr;$i++) { echo ''; flush(); ob_flush(); } echo '
'.$itr.' Adet iterasyonla
ÖĞRENME TAMAMLANDI

Son ağırlıklar: '.implode(',',$this->agirliklar).'
'; } } ?>