Cumartesi, Mayıs 26, 2007

Gök ekini biçmiş gibi...

Miskin âdem oğulları,
Ekinlere benzer gider.
Kimi biter kimi yiter,
yere tohum saçmış gibi.

Bu dünyada bir nesneye,
yanar içim göynür özüm.
Yiğit iken ölenlere,
Gök ekini biçmiş gibi.


22. Mayıs 2007 sıradan bir iş günüydü. İş yeri servisimizle yine her zamanki yolumuzdan şehre döndük. Son Durak Ulustu. Herşey sıradandı ta ki Saat 19 da Bentderesinde hemen bizim önümüzde Polis yolu kapatana kadar...
Orada indim ve yukarıya doğru yürümeye başladım. Ambulanslar bir bir peşine geçmeğe başladı. Ve gersini biliyorsunuz....

Her iş günü dönüşü indiğim yer, Dükkanların da alışveriş yaptığım veya vitrinlerine bakarak oyalandığım yer. Karşısındaki -Zincirli - Camide namaz kıldığım yer....

Ve Gök ekinler ; Damatlığını almaya gitmiş birisi, bir diğerinin iş yeriymiş, bir diğeri sadece oradan geçiyormuş, bir diğeri, bir diğeri, bir diğeri ...


Eğer dünya ebedî olsaydı, insan içinde ebedî kalsaydı ve firak ebedî olsaydı, elîmâne teessürat ve meyusâne teellümâtın bir mânâsı olurdu. Fakat madem dünya bir misafirhanedir; vefat eden ... nereye gitmişse, siz de, biz de oraya gideceğiz. Ve hem bu vefat ona mahsus değil, umumî bir caddedir. Hem madem mufarakat dahi ebedî değil; ileride hem berzahta, hem Cennette görüşülecektir. "El-hükmü lillâh," demeli. "O verdi, o aldı. Elhamdü lillâhi alâ külli hal" deyip sabırla şükretmeli.
gibi teselliler de olmasa, ne yapardık bilmem.

Ölenlerimize rahmet, yaralılarımıza acil şifa, Bu musibetinde bölünüşlüğmüze* ilaç olması duasıyla...

Naçar kalacak yerde
Nagâh açar o perde
Derman eder ol derde
Mevlâ görelim neyler
Neylerse güzel eyler


* Ne demişler "Hakikate nasihat ile seve seve gelmeyenleri, musibet döve döve getirir. "

Çarşamba, Mayıs 23, 2007

FANN Kullanımı 3 Uygulama

Bir önceki yazımızda bahsettiğimiz gibi bu yazımızda bir uygulama yapacağız. Sizden gelmesi beklenen değerli fikirler gelmeyince mecburen abuk bir konuda uygulma hazırlamak zorunda kaldık. Güneş lekeleri

Güneş lekeleri , Güneş'in yüzeyinde (ışık yuvarda), çevresine oranla daha düşük sıcaklığa sahip olan, ve mıknatıssal etkinliğin gözlemlendiği bölgelerdir. Her ne kadar 4000-4500 K sıcaklık ile son derece parlak olsalar da, çevrelerinin 5778 K'de olması, karanlık bölgeler olarak görüldüklerinden bu ismi alırlar.


Neyse işte insanların işi gücü yok bu lekeleri sayıp kaydını tutmuşlar.Biz de bu verileri kullanacağız.

Öncelikle Neural networks for financial time series prediction isimli dosyaya bir göz atın. O yazıda detaylarıyla anlatıldığı gibi Verileri aldığımız haliyle kullanmayız, ön işlemeden geçirmeliyiz. ( 3.4 Design of ANNs in finance kısmı )

Güneş lekelerinin (2006 - 1980) aralığında aylık ortamalarını raw.dat isimli dosyaya her satır 1 değer olarak kaydedildi. Öncelikle verileri YSA da kullanabilmek için - Kullandığınız aktivasyon fonksiyonuna göre - (0 , 1) yada ( -1 , 1 ) değerleri arasına çekiyoruz Normalizasyon. Bir ay sonraki ortalama güneş lekesi sayısını bulmak için önceki 24 ayın değerleri kullanılıyor. 2 adet gizli katman kullanılıyor yani YSA mızın yapısı girişten çıkışa doğru
24 -> 16 -> 7 -> 1

şeklinde oluyor. Peki Bu değerleri Nasıl belirliyoruz ? derseniz Net bir cevabı yok.* Genellikle Giriş ve çıkış düğüm sayısı bellidir. Saklı katman yada katmanlardaki düğüm sayıları YSA nın eğitim performansına göre seçilir.

Programımız
LoadRawData("raw.dat");
Normalize();
WriteTrainData(24,1,"sunspot.dat");
Train();
Test();
Run();

dan ibaret
Açıklamalarına gelince
  • LoadRawData : Ham verileri ismi verilen - Veri dosyasında Her satır 1 veri içeriyor- text dosyasından okuyup data dizisine aktarıyor

  • Normalize : Diziye atılmış verileri -0.8 ile 0.8 arsına çekerek Normalize ediyor

  • WriteTrainData : Normalize edilmiş verileri alıp FANN kütüphanesinin kullanabileceği veri dosyası olarak kaydediyor
  • Train : YSA yı Eğitiyor.

  • Test : test.dat dosyasındaki verileri kullanarak Eğitilmiş YSA'yı test edip sonuçta ulaşılan Hatadeğerini bildiriyor

  • Run : Verilerimizden Rasgele 10 adedini kullanarak YSA çalıştırılıyor ve YSA nın hesapladığı ve gerçek değeri birlikte gösteriyor

Şimdi gelelim benim yapmadığım fakat aslında yapılması gereken şeylerden bazılarına

1) Veri sayısı yeterince büyük olması lazım
2) Bu veriler Eğitim, Test ve Kontrol için 3 parçaya ayrılıp her işlem için kendine ayrılan veri kulanılması lazım.


Sonuçta yazılan proje : SunSpot

* bakınız NN_FAQ Bu YSA için yazılmış Sıkça Sorulan Soruları İndirmenizi ve incelemenizde tavsiye ediyorum FAQ. Kısmetse YSA da uygun dizayn için test programı yazmayı da düşünüyorum.

Cuma, Mayıs 18, 2007

Yakşıklı Fotoğrafım !




SetEnaniyet(KAF_DAGI);
Şenlikteki fotoğraflara göz gezdiriyordum ki BEN'im o yakışıklı fotoğrafıma rastaldım. Sizleri de bundan mahrum bırakmamak için buraya alıyorum. Niçin bu açıdan çekilmiş diyorsanız diğer açılardan fotoğraf çekmeğe cüret edildiğinde fotoğraf makinaları zarar görür!
Mesela Bu fotoğrafı çektirmek için neler çektim bir bilseniz ! Pek çok güzelim makina heder oldu. En sonunda Özel filitreler kullanarak ancak çektirebildim...
ReleaseEnaniyet();

Not : Bu yazımı Enaniyetli Müdür KÖA 'a ithaf ediyorum. ;)

Perşembe, Mayıs 10, 2007

Padişahın fakirhanemize teşrifini bekliyoruz

Vâsıl olmaz kimse Hakk’a cümleden dûr olmadan
Kenz açılmaz şol gönüle tâ ki pürnûr olmadan
Sür çıkar ağyarı dilden tâ tecelli ede Hakk
Padişah konmaz saraya hâne mamur olmadan
Şemsettin Sivasi (k.s.)

cümleden olmamıza, gönülümüzün pürkusurluğuna, ağyar ile meşgul olmasına rağmen
Padişahın fakirhanemize teşrifini bekliyoruz. - yıllardır -
Başka kapı yok

Senin kapından başka hangi kapıya gideyim? Hangi kapı var? Senden başka Rab yok ki dergâhına gidilsin. Senden başka hak mâbud yoktur ki ona iltica edilsin.
On Yedinci Lem'a

Çarşamba, Mayıs 09, 2007

FANN Kullanımı 2

Önce Hatırlayalım Neler yapmıştık ; YSA oluşturduk, Eğittik, Çalıştırdık ve tekrar kullanabilmek için kaydedip yüklemeyi öğrendik
Eveet çooooook ! yoğun istek üzerine devam ediyoruz

5) Test Etmek : Eğittiğimiz YSA yı test etmek gerekmektedir Eğitim için kullandığımız verinin % 10 - 30 arasındaki bir miktarda veriyle YSA test edilir ve Hata faktörüne bakılır. Öncelikle aynı Eğitim verisi için kullandığımız dosya yapısında bir dosya hazırlanır ve fann_read_train_from_file fonksiyonuyla yüklenir. Bundan sonra tek yapacağınız fann_test_data fonksiyonunu çağırmak. işi bitincede fann_destroy_train ile hafızdaki yerleri boşaltmak

Mesela :
struct fann_train_data *dt;
dt=fann_read_train_from_file("test.dat");
ann=fann_create_from_file("aproje.net");
fann_reset_MSE(ann);
fann_test_data(ann,dt);
printf("\n Test Sonucu MSE : %f \n\n", fann_get_MSE(ann) );
fann_destroy_train(dt);

MSE (Mean Square Error) dediğimiz şey ortalama karesel hata yani bizim YSA mız yaptığı - Eğitim yada Test - işte istenenle hesaplanan değerler arasındaki - Hata - farklarının karelerinin ortalaması gibi birşey

void fann_reset_MSE(struct fann *ann)
MSE değerini sıfırlar

float FANN_API fann_get_MSE(struct fann *ann)
MSE değerini okur


6) Diğer Faydalı Fonksiyonlar

Eğitim Algoritmalarını ayarlayanlar
enum fann_train_enum fann_get_training_algorithm(struct fann *ann)
Kullanılan Eğitim metodunu okur
void fann_set_training_algorithm(struct fann *ann,enum fann_train_enum training_algorithm)
* Eğitim metadunu değiştirir.

Eğitim metodları ise FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_RPROP, FANN_TRAIN_QUICKPROP olarak 4 çeşittir. Metodların detayı için kitaplara yada google müracaat edilsin

* Öğrenme hızını ayarlayanlar

float fann_get_learning_rate(struct fann *ann)
kullanılan öğrenme hızını döndürür.
void fann_set_learning_rate(struct fann *ann, float learning_rate)
Öğrenme hızını ayarlar. Öğrenme hızı için geçerli Normal Değer 0.7
Bu fonkisyonları FANN_TRAIN_RPROP metodu için kullanamıyoruz

* Aktivasyon Fonksiyonlarını Ayarlayanlar
Daha önce geçmişti
Gizli katman için
fann_set_activation_function_hidden(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)
Çıkış katamanı için
fann_set_activation_function_output(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)

kullanılır

Aktivasyon fonksiyonlarıda ; FANN_LINEAR,FANN_THRESHOLD,FANN_THRESHOLD_SYMMETRIC,FANN_SIGMOID, FANN_SIGMOID_STEPWISE, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC, FANN_LINEAR_PIECE, FANN_LINEAR_PIECE_SYMMETRIC gibi pek çok çeşit var detayı için bakınız

Bu yazının devamı olacak mı ? Kısmet, yazının devamı olarak basit bir uygulama yazmayı düşünüyorum. Şu an için aklımda bir uygulama yok fikrilerinize açığım. Hatta "Şu konuda elimde datalar var onları kullanabilirsiniz " derseniz büyük kolaylık olur.

Pazartesi, Mayıs 07, 2007

6. Linux ve Özgür Yazılım Şenliğinin ardından

Bütün bir yıl toz toprak içinde çalışan birisi için ODTÜ mesire yeri gibi geliyor bana. İnsanın içi açılıyor. Neyse efendim sözü fazla uzatmayalım. Pazar sabahı çıktım yola saat 9 da ODTÜ ye varmıştım.

Bu senede aynı geçen seneki gibi katılım pek fazla değildi. önce "OpenCV ile görüntü işleme ve bilgisayarlı görme" konulu seminere katıldım. Genel bir giriş anlatıldığından pek yeni birşey öğrendim diyemiyeceğim fakat Linux altında çalışmasını görmüş oldum -itiraf ediyorum Ben hala Linuxa kurmayı denemedim -

Bu seminerin çıkışındada İnternetten aşina olduğum volkansalma ve musaulker ile tanışma fırsatı oldu. Tabiii arkadaşların hayal kırıklığına uğradığının farkındayım. :) Senin Neren Blue Neren Kid ? der gibiydiler. Bu görüşmeye istinaden Profilimde düzeltme yaptım. Yarın öbür gün tanışırsak şaşırmayın.

Daha sonra "Açık Kaynak Kodlu Kütüphanelerle 3B Oyun Motoru Yazmak" konulu seminere girdim. OpenCv ye nazaran ilgi büyüktü. Kafama takılan "Niye hazırda olan Oyun motorları yerine yenisi yazılıyordu ?" sorusuna çoook güzel bir cevap aldık Hoca zoruyla oluyormuş. 4 Öğrenci arkadaş Proje olarak aldıkları bu iş için 2 kez bütün yazdıklarını çöpe atıp 3. de teslim etmişler. Hazır Oyun motorlarındanda söz ettiler tabi. Irrlicht den bahsetmediler. Niye diye de soramadım acelem vardı çıkmak zorundaydım malum Hastane ziyaret saati.

Ne "Gömülü Linux Geliştirme" konulu seminere katılabildim Ne volkansalma ve musaulker le tekrar görüşme imkanım oldu. Bu senede kısmet bu kadarmış.

Son olarak Gönül ister ki katılım daha fazla olsun yine de kimsenin moralini bozmasına gerek yok. Pazar sabahı yatmak yerine buraya gelecek azimde ve şevk de arkadaşlar var ya İnsana ümit veriyor.

Bu Ülkenin Farkındamısınız !

Takib ettiğim forumların off topic yada sohbet kısımlarında rastlıyorum . Siyaset üzerine olan konularda başlıyor bir kapışma. Pek çok konuda hem fikir olan, gerektiğinde biribirlerinin yardımına koşan bu kişilere neler oluyor da böyle davranıyorlar ?
Bu sorunun cevabı için Cemil Meriç'e müracaat etmek lazım. Peki neler diyor Cemil Meriç

Pamuk ipliğinden biraz daha sağlam tek bağ: düşünce birliği. da rüzgarın her an tehdit ettiği bir kandil. Düşünce birliği, düşünen insanlar arasında olur. İnsanların kaçta kaçı düşünür? Düşünenlerin kaçta kaçı karşılaşır ve açılır birbirine.

Internet alemindeki sevyeli forumlar işte bence düşünen insanların karşılaşıp birbirlerine açılacağı yerelerdir. Oysa düşünce yerini slogana bırakıyor. Alın size kör döğüş sloganları her kesim kullanabilir
.... Elden gidiyor
Kahrolsun ... Yaşasın ...

üç noktayı kendi görüşünüze göre doldurup savurun düşmanın ! yüzüne .

Ellerinde birer mühür "bizdensin, bizden değilsin, solcusun, sağcısın"* gibi bir tespitte bulunmak gibi bir görevleri de vardı bazılarının. Siz kimdiniz, onlar kimdi? İki tarafta bu ülkenin insanlarıydı ama ya ideolojiler: "Sol-Sağ" çılgın sevgilerin ve şuursuz kinlerin emzirdiği iki ifrit.
oysa ki

karanlık kinlerin birbirine saldırttığı çılgın sürülerin savaş çığlığıdır slogan, ilkelin budalanın papağanın ideolojisidir. düşünce ile çığlık bağdaşmaz. şuurun sesi çığlık değildir. yabani bağırır. medeni insan konuşur.
ve Milleti biri birine düşüren aydınlarımızada bir çift lafı vardır Cemil Meriçin
her dudakta aynı rezil şikayet: yaşanmaz bu memlekette! neden? efendilerimizi rahatsız eden bu toz bulutu, bu lağım kokusu, bu insan ve makine uğultusu mu? hayır, onlar türkiye'nin insanından şikayetçi. insanından, yani kendilerinden. aynaya tahammülleri yok. vatanlarını yaşanmaz bulanlar, vatanlarını yaşanmazlaştıranlardır. türk aydını, kitab-ı mukaddes'in serseri yahudisi... hangi türk aydını? kaçanlar ne türk, ne aydın. bu firar bir kabil** kompleksi.
Yıllar evvel -tekrar tekrar - okuduğum Bu Ülke 'yi Bütün arkadaşlara tavsiye ediyorum.
Denize atılan bir şişe her kitap. Asırlar, kumsalda oynıyan birer çocuk. İçine gönlünü boşalttığın şişeyi belki açarlar, belki açmazlar.

Açın bu şişeyi Bu ülkenin farkında olmak için.


* Ben tarihden "Türkler Hilal taktiğiyle pek çok orduyu yendiğini " okudukça Hayret eder dururdum. Nasıl oluyorda aynı taktiği yiyorlar diye ? Şimdi düşünüyorumda Türklerinde bu konuda Diğer milletlerden bir farkı yok. Ta Hunlardan beri Türkleri Bölerek yıkıyorlar...
Doğu - Batı Hun, Doğu - Batı Göktürkler, şimdilerde devam ediyor Doğu - Batı taraftarları , İlerici -Gerici , Sağcı-Solcu, Cumhuriyetçi -Demokrat ,...
Bu böyle sürüp gider Ne demiş İstiklal Marşımızın şairi
Tarih tekerrürden ibarettir derler İbret alınsaydı hiç tekerrür mü ederdi?


** Kabil kardeşi Habili öldüren İlk Katil...

Salı, Mayıs 01, 2007

6. Linux ve Özgür Yazılım Şenliği




Linux ve Özgür Yazılım Şenliği ve Konferansı
3-6 Mayıs 2007
ODTÜ KKM, Ankara


Linux Kullanıcıları Derneği'nin düzenlediği ve Ortadoğu Teknik
Üniversitesi'nin destek verdiği 6. Linux ve Özgür Yazılım Şenliği 3-6
Mayıs 2007 tarihleri arasında ODTÜ Kültür ve Kongre Merkezi'nde
yapılacak. Bu sene ilk kez şenlikle birlikte Linux ve Özgür Yazılım
Konferansı'nı da gerçekleştirilecek.

Programdan Dikkatimi Çeken Konular

  • Qt ile Programlama İşbaran Akçayır
  • Python ve Web 2.0 Gökmen Göksel
  • Özgür Yazılım Lisanslarının Türkiye'deki Geçerliliği ve Yasal Süreç Mehmet Ali Köksal
  • Java programcıları için Pardus Mehmet D. Akın
  • Panel: Özgür yazılım ve Yasal Konular
  • PostgreSQL Toplantısı Rails İle Ağ Uygulamaları Geliştirimi Murat Arif Çeliker
  • Panel: Kurumların Linux ve Özgür Yazılımlara Geçişi
  • Yeni Başlayanlar için: Linux nedir Harun Şeker
  • Nasıl Pardus Geliştiricisi Olunur? A. Murat Eren
  • Kurumsal Linux Uygulamaları Mustafa Karakaplan
  • Linux ve Pardus Deneyimlerim Mehmet Sucu
  • Panel: Özgür Yazılım Para Kazandırır mı?
  • Python ile Python gibi Kod Yazma Gürer Özen
  • OpenCV ile görüntü işleme ve bilgisayarlı görme İsmet Yalabık
  • Tembel Penguenlere Çekirdek Programlama Faik Uygur
  • Açık Kaynak Kodlu Kütüphanelerle 3B Oyun Motoru Yazmak M. Yükselen, B. Sapaz, Ö. Gülderen, S. Yaşar
  • Gömülü Linux Geliştirme Yaman Çakmakçı
Hafta içi gidemiyeceğim. Pazar günü için gözüme kestirdiklerim
"OpenCV ile görüntü işleme ve bilgisayarlı görme" ve
"Açık Kaynak Kodlu Kütüphanelerle 3B Oyun Motoru Yazmak"
Bir de "Tembel Penguenlere Çekirdek Programlama" var ama malesef OpenCv ile aynı zamana geliyor...

Artık Kısmet