Yapay Sinir Ağları / Temel Öğrenme Algoritmaları

Merhabalar,

Yapay Sinir Ağları, temel öğrenme algoritmalarından Perceptron, Hebb, Delta ve Widrow-Hoff öğrenme kurallarının, Python ile yazılmış, Numpy modülü kullanılmış kodlarıdır.

Numpy modülünü ileride daha karmaşık işlemler için kodlarda matrissel bir altyapı olmasını istediğim için kullandım. Matrislerinizi girerken;

np.matris('1; 1; 0')

yazım tarzı gibi girmelisiniz.

Kodlar ise şöyle;

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np # Matrisleri tanımlamak icin gerekli paket
import math        # exp islemi icin gerekli modul

def Hebb():
	x=[] # Girisleri tutar.
	y=[] # u toplam degerlerini tutar.
	# W alınır;
	w=input("W agirlik vektorunu giriniz: ")
	#################
	# Girişler alınır;
	xSayisi=input("Kac adet X girisi yapacaksiniz? ")
	h=xSayisi+1
	for g in range(1,h):
		print "X%s" %(g)
		xi=input()
		x.append(xi)

	elemanSayisi=len(x)
	#################
	# alfa alınır;
	alfa=input("Alfa degerini giriniz: ")
	#################
	# Lambda alınır;
	l=input("Lambda degerini giriniz: ")
	#################
	#Egitme adimi alinir;
	egitmeAdimi=input("Egitme Adimi:")
	#################
	#Fonksiyon tipi belirlenir;
	fonksiyonSecimi=input("Fonksiyon tipini seçiniz:\n1: Bipolar sürekli\n2: Bipolar binary\n")
	#################

	i=0
	for i in range(0,egitmeAdimi):
		a=i
		while elemanSayisi <= a:
			a=a-elemanSayisi+1
		i=a
		wT=w.T # Numpy modulu transpoze islemi
		u=wT*x[i]
		if fonksiyonSecimi == 1:
			fu=1/1+math.exp(-l*u)
		else:
			if u < 0:
				fu=-1
			else:
				fu=1
		dw=x[i]*fu*alfa
		wy=w+dw # Yeni agirlik vektoru
		w=wy
		print
		print "Yeni W agirlik vektoru; "
		print w
		print

def Perceptron():
	x=[] # Girisleri tutar.
	d=[] # Hedef degerleri tutar.
	uk=[] # U degerlerini tutar.
	# W alınır
	w=input("W agirlik vektorunu giriniz: ") #np.matrix('0;1;0')
	#################
	# Girişler alınır;
	xSayisi=input("Kac adet X girisi yapacaksiniz? ")
	h=xSayisi+1
	for g in range(1,h):
		print "X%s" %(g)
		xi=input()
		x.append(xi)

	elemanSayisi=len(x)
	#################
	# Beklenen degerler alinir;
	for f in range(1,h):
		print "d%s" %(f)
		di=input()
		d.append(di)

	#################
	# alfa alınır;
	alfa=input("Alfa degerini giriniz: ")
	#################
	#Egitme adimi alinir;
	egitmeAdimi=input("Egitme Adimi:")
	#################

	i=0
	for i in range(0,egitmeAdimi):
		a=i
		while elemanSayisi <= a:
			a=a-elemanSayisi+1
		i=a
		wT=w.T
		u=wT*x[i]
		uk.append(u)
		if u < 0:
			u=-1
		else:
			u=1
		if d[i] == u:
			print "Agirlik guncellenmez"
			print " "
			print "----"
			print " "
			i=i+1
			w=w
		else:
			r=d[i]-u
			dw=r*alfa*x[i]
			wy=dw+w
			w=wy
			i=i+1
			print
			print "Yeni W agirlik vektoru; "
			print w
			print

	print "Bu degerler signum fonksiyonu baz alinarak hesaplanmistir."
	print "Egitme suresince Uk degerleri;"
	print uk

def Delta():
	x=[]
	d=[]
	yi=[] #delta w'de türevi alınan f(yi) fonksiyonu

	#w alınır
	w=input("W agirlik vektorunu giriniz: ")#np.matrix('1;0;1')
	#################
	# Girişler alınır
	xSayisi=input("Kac adet X girisi yapacaksiniz? ")
	h=xSayisi+1
	for g in range(1,h):
		print "X%s" %(g)
		xi=input()
		x.append(xi)

	elemanSayisi=len(x)
	#################
	# Beklenen degerler alinir
	for f in range(1,h):
		print "d%s" %(f)
		di=input()
		d.append(di)

	#################
	#Lambda alınır
	l=input("Lambda degerini giriniz: ")
	#################
	#alfa alınır
	alfa=input("Alfa degerini giriniz: ")
	#################
	#Egitme adimi alinir
	egitmeAdimi=input("Egitme Adimi:")
	print 
	#################
	y=0
	i=0
	for i in range(0,egitmeAdimi):
		a=i
		while elemanSayisi <= a:
			a=a-elemanSayisi+1
		i=a
		wT=w.T
		u=wT*x[i]
		fu=1/1+math.exp(-l*u)
		yi.append(u)
		r=(d[i]-fu)*(yi[i]*(1-yi[i]))
		dw=x[i]*r*alfa
		wy=dw+w
		w=wy
		print "W ağırlığı;"
		print
		print w
		print 
		print "----"
		print

def Widrow_Hoff():
	x=[]
	d=[]
	yi=[] #delta w'de türevi alınan f(yi) fonksiyonu

	#w alınır
	w=input("W agirlik vektorunu giriniz: ")#np.matrix('1;0;1')
	#################
	# Girişler alınır
	xSayisi=input("Kac adet X girisi yapacaksiniz? ")
	h=xSayisi+1
	for g in range(1,h):
		print "X%s" %(g)
		xi=input()
		x.append(xi)

	elemanSayisi=len(x)
	#################
	# Beklenen degerler alinir
	for f in range(1,h):
		print "d%s" %(f)
		di=input()
		d.append(di)

	#################
	#Lambda alınır
	l=input("Lambda degerini giriniz: ")
	#################
	#alfa alınır
	alfa=input("Alfa degerini giriniz: ")
	#################
	#Egitme adimi alinir
	egitmeAdimi=input("Egitme Adimi:")
	print 
	#################
	y=0
	i=0
	for i in range(0,egitmeAdimi):
		a=i
		while elemanSayisi <= a:
			a=a-elemanSayisi+1
		i=a
		wT=w.T
		u=wT*x[i]
		r=d[i]-u
		dw=x[i]*r*alfa
		wy=dw+w
		w=wy
		print "W ağırlığı;"
		print
		print w
		print 
		print "----"
		print

print """Etkileşimli Yapay Sinir Aglari 4 Temel Ogrenme Kuralı programına hosgeldiniz.
Lütfen calismak istediginiz ogrenme kuralını listeden seciniz.\n"""
a=input("""1. Hebb Ogrenme Kurali\n2. Perceptron Ogrenme Kurali
3. Delta Ogrenme Kurali\n4. Widrow-Hoff Ogrenme Kurali\n""")

if a == 1:
	Hebb()
elif a == 2:
	Perceptron()
elif a == 3:
	Delta()
elif a == 4:
	Widrow_Hoff()
else:
	quit()

sec=input()

Çalışmalarınızda kullanırken buradan aldığınızı da belirtirseniz beni bahtiyar edersiniz. 🙂

Renkli günler…

Sosyal Medya bağımlılığı üzerine

UntitledMerhabalar,

İnternete çok kısıtlı erişebildiğim 3 ay boyunca (Eylül-Ekim-Kasım 2012) bazı alışkanlıklarımın, hatta bağımlılıklarımın şimdi devam etmediğini görüyorum. Bu olayın aslında benim daha çok yararıma olduğunu da düşünüyorum. Çok basit bir örnek verecek olursam, eskiden günün her saati Twitter açık olurdu bilgisayarımda. Ama şimdi bunu belli saatlere indirmişim haberim olmadan. Sürekli birşeyleri takip etmektense kendi yaptığım işlere biraz daha yoğunlaşmışım sonuç olarak. Bunu da ileriye gitmek isteyen bir insan için önemli bir bulgu olduğunu düşünüyorum.

Ömrümün bu periyodunu İstanbul’da geçirdiğim içim sık sık metrobüs kalabalığını gözlemleme fırsatı yakalıyorum. Özellikle lise çağlarındaki öğrencilerde ve yaşıtlarımda aralıksız akıllı telefonlarına bakma eğilimi beni şaşırtıyor. Ve yapılanları gözlemlediğimde 3 temel aktivite beliriyor; Facebook’ta dolaşmak, mesaj yazmak, ve Twitter’da dolaşmak. Bir yere kadar bu dayanılabilir bir hareket. Benim fikrime göre 5 ya da 6 dakika. 7. dakikada artık bu uğraşlar gereksiz bir hale geliyor, ve sadece parmağın ekranın altından yukarıya doğru hızlıca kaydığı hareketlere dönüşüyor.

Biz sosyal medya bağımlısı olduk. Ve birçoğumuz vücudumuzu hoyratça kullanıyoruz. Sadece basit bir mesaj için dakikalarca küçük ekranlara boyun eğiyor, kendimizi hantallaştırıyoruz. Ayrıca hiç ama hiç bahsedilmeyen ve özellikle akıllı telefonlarda çok daha yoğun bir etki yaratan elektrik ve magnetik alan etkileri bizi içten içe fethediyor.

Bu bağımlılığın olası kurtulma yöntemleri bir süre uzak kalıp kendini anlamaktan geçiyor. Bu durumda da çağımızın hastalığı diyebileceğim “konuşulanlardan geri kalma” hastalığı peşimizden koşuyor.

Nacizane görüşüm, 3 günlüğüne bile olsa sosyal medyadan uzak durup, kendi içinizde bir sosyal medya hesaplaşması vermeniz. İnternette 2 video daha az izleyerek ya da Twitter’da 2 sayfa az cümle okuyarak kendinize verimli vakit ayırdığınızı farkettiğinizde bağımlılığınızın törpülenmeye başladığını göreceksiniz.

İnternet gün geçtikçe kirleniyor. Elbette iyi işler, haberler vs. var. Ama gördüğüm kirlilik artışının daha fazla olduğu. Bu kirliliğin verimliliğinizi ele geçirmemesi dileklerimle.

Renkli günler…

En güzel kalemim

Benim bir adet koyu kahverengi Rotring kalemim var. Bu en eski Rotring’lerden hani elle tutulan yeri kıvır kıvır, üzerinde başka hiç bir süs olayan, yakaya, cebe tutturulan kısmı demir olandan. Bu kalem o kadar çok şey gördü ki; yüzlerce sınav, her türden kağıt, onlarca şehir, hatta Avrupa kıtasının bir parçası… Lise dönemimden beri benimle yazıyordu, yani yaklaşık 7 senedir. Ve bugün onu tekrar kullanmak için elime aldığımda artık emekliliğini istedi, bu kağıtların üzerinde koşmaktan artık yorulduğunu söyledi, ve bu yorgunluğu onda derin yaralar oluşturduğunu çatlaklarıyla bana gösterdi. İlk başta çok üzüldüm, kırıldım da, ama sonra düşününce herkesin bir yerde bırakması, yaşamının geri kalanını diğer kalemlerin arasında, güzel kalemliklerin içerisinde geçirmeye hakkı olduğu sonucuna vardım. Onu atmayacağım. 7 senedir benle gezmiş, varsın bir 7 sene daha gezsin, emekliliğin tadını çıkarsın.

Çatlayan kalemime sevgilerle.

Yerleşme tamam yazmaya devam

9Merhabalar,

2008’den beri yazarım elektronik ortamda. Bildiklerimi, öğrendiklerimi, gördüklerimi anlatmazsam, onları sadece ben yaşarsam ancak benim gittiğim yere kadar gidebilirler. Buna karşı başlattığım hareket sonucu düzene oturttuğum bir “kendi blogumda yazma” olgusunu geçtiğimiz 2 ay süresince tam olarak gerçekleştiremedim. Anlatacak konularım oldu, kimisi aklımda hala boş bir oda bulup yerleşmeyi bekliyor, kimisi ise “Beni yazmıyorsun bende uçup gidiyorum beyninden!” diyerek uçtular.

Mezun oldum, yüksek lisansa başladım, yeni bir eve, yeni bir şehre taşındım. Hava değişti, sular grileşti ben de düzeni yakalamakla uğraşan bir orkestra şefi misali ellerim kollarım, saçım başım sürekli hareket ettik.

2 ay içerisinde düzen oturdu, masalar kuruldu, tezgahtaki bulaşıklar alınan deterjanla önce yıkanıp sonra kurutuldu. Kalan tek derdim internetim. 1,5 ay oldu başvuru yapalı daha Telekom çalmadı kapımı. Neyse bir şekilde KB hesabı yaparak neredeyse fiber internet fiyatı ile aynı paraya aldım Vodem’i, hakkım bitene kadar gezebileceğim resimleri ve videoları az siteleri.

Bu kadar manidar sözler yetsin artık, tekrardan yazmaya başladım sevgili okuyucu. İnşallah eski yazma düzenimi bu sefer de oturturum.

Renkli günler…

Image

Yükselteçler

Merhabalar,

Yükselteçler hakkında çeşitli kaynaklardan derlediğim bilgileri birleştirdim. Umarım senin de işine bir yerlerde yarar sevgili okuyucu. Dökümanı indirebilir, çalışmalarınızda kullanabilirsiniz.

Renkli günler…

Yukseltecler

Yeni bir yasam

Uzun ve zorlu bir surecten sonra neticeye ulasmanin tadi ayni o reklamdaki gibi kizgin kumlardan serin sulara atlamak gibi birsey.

 

Yildiz Teknik Universitesi’nde gecen maceramin sonucu olarak artik oranin bir yuksek lisans ogrencisi olarak hayatima devam edecegim.

 

Simdi onumde belge, evrak, bir nevi kosusturmaca icerisinde gececek bir-iki haftam ve yanimda yorgunlugumu alacak kahvem var.

 

Renkli gunler…