Sayfalar

Ordan Burdan sorgusu için yayınlar tarihe göre sıralanmış olarak gösteriliyor. Alaka düzeyine göre sırala Tüm yayınları göster
Ordan Burdan sorgusu için yayınlar tarihe göre sıralanmış olarak gösteriliyor. Alaka düzeyine göre sırala Tüm yayınları göster

Cuma, Mart 03, 2017

Keras'a Giriş - 2 ( LSTM )

Ocak ayında ilk yazısını yayınladığımız  Keras 'a  Giriş  dizisine devam ediyoruz.

İlk yazımızda Kerasın kurulumunu, ve  ana kullanım fonksiyonlarını anlatmıştık.  Hali hazırda Kerasın içinde pek çok değişik katman bulunmaktadır. Katmanlarla ilgili kısımı okuyarak bunlara aşina olabilirsiniz. Katmanları bir birine ekleyerek kendi probleminize göre envai çeşit yapıyı tasarlayabilirsiniz.

Biz bu yazımızda Keras üzerinde  LSTM ile zaman serisi tahmini yapan bir uygulama geliştireceğiz.

LSTM nedir ?

Büyük soru, başta kendim olmak üzere kafamızı çok karıştırmadan mümkün mertebe sade anlatmaya çalışalım.

Açıklamaya RNN yani Recurrent Neural Networks  ile başlamamız gerekiyor. Tarihi çok eskilere giden bir YSA yapısı. Aslında anlaması çok da kolay.



YSA yapımızda verdiğimiz verilerin saklı katmandan ürettiği çıktış sinyalini başa alıp bir sonraki giriş de giriş değerlerinden biri olarak kullanıyoruz.

Bu ne işimize yarıyor diye soracak olursanız pek çok durumda verilerimiz de bir sıralılık bağlantısı vardır. sadece girdiklerimiz değil bir önceki durumda çıkışa etki ediyordur. Bu tip Sıralılık örüntüsü  - Sequence pattern - içeren durumlar için bu tip YSA yapıları daha başarılı bir modelleme imkanı sağlamaktadır.

Peki yıllardır bilinen bu yapı niye populer olamamış ?  Bu sorunun cevabı olarak meşhuuur  Vanishing gradient problem çıkıyor karşımıza. YSA eğitiminde giriş verileriyle çıkış değerleri hesaplanır. Hesaplanmış çıkış değerleri ile gerçek değerler karşılaştırılır ve farklılık bize bir  meyil  - gradient - Bu meyile göre geriye doğru ağ ağırlık değerlerinde güncelleme yapılır. Ağımız çok karmaşıksa geriye doğru meyil değerleri sıfırlanır. Meyil olmazsada güncelleme olmaz ve eğitilmeside durmuş olur. RNN yapısında da zaman içinde geriye doğru bağlılık var. Ağımızı eğitim açısında çok karmaşık hale getiriryor.


Bu problemin çözümü için LSTM - Long short-term memory - denen bir yapı kurulmuş.


Yukardaki akıllara ziyan  şemadan da anlaşılacağı üzere çok kompleks bir sistem. Yapıda kabaca RNN hücresine birde hafıza eşlik ediyor. Bu hafıza ile bir önceki zamandan gelen bilgi alınabiliyor , bir sonrakine iletilebiliyor. Neyi alıp neyi almayacağına eğitim ile karar veriyor. Konunun teferruatları için, Ve illede iç yüzünü öğreneceğim diyenler için bir kaç link verip geçiyorum

1)  Deep Learning Lecture 12: Recurrent Neural Nets and LSTMs
2) Understanding LSTM Networks
3) The Unreasonable Effectiveness of Recurrent Neural Networks

Keras da RNN katmanlar 

Hali hazırda Keras kütüphanesinde 3 çeşit  RNN katmanı var.
  1. SimpleRNN
  2. LSTM
  3. GRU
ilki zaten adından anlaşılıyor. LSTM den yukarda bahsettik . sonuncusu GRU - Gated Recurrent Unit - daha LSTM benzeri yeni bir sistem

Biz LSTM i kullanacağız. ondan bahsedelim

LSTM ler  genel anlamda sequence zaman sıralı şekilde gelen veriler üzerinden çalışırlar.

keras.layers.recurrent.LSTM(output_dim,
                                              batch_input_shape=(nb_samples, timesteps, input_dim),
                                              return_sequences=False,....)
eğer LSTM ilk katmansa batch_input_shape  verilmesi gerekiyor ve dökümanda geçen şekli
  
  • nb_samples : veri sayımız, None diyede  verebiliyoruz. 
  • timesteps :  LSTM e vereceğimiz veriler zaman bazında değişen aynı türdeki veriler  kaç birim zamanlık veri verilecek burda onu belirtmemiz gerekiyror 
  • input_dim :  giriş verimizin boyutu. 
  • return_sequences Kendinden sonraki katman Yine Bir LSTM olacaksa True  yapılacak
  • output_dimKatman çıkış boyutu ve LSTM birim sayısı.  Ağın çıkışı , eğer kendinden sonraki katman Yine Bir LSTM olacaksa  (nb_samples, timesteps, output_dim)  , olmayacaksa  (nb_samples, , output_dim) olur.
Şimdi biraz burda durup, input_dim giriş veri boyutuna biraz açıklık getirelim.  Sequence üzerinden çalışan bir sistem. Bizim bugün anlatacağımız önnekdeki gibi tek bir sayısal değerin değişimi var ise  giriş veri boyutu bir dir. Fakat pek ala zaman içinde değişien bir vektör de modellenebilir. budurumda vektörün uzunluğu giriş boyutumuz olur. Mesela bir metin üzerinde çalıştığımızı varsayın. biri birini takip eden harfler de bir sequence olur. Harfi bir vektöre çevirmek gerekir. vektör uzunluğuda metindeki alfabe büyüklüğü olur.

Olmaz ama soran olursa diye buraya yazayım peşin peşin, pek çok değişik kaynakda pek çok değişik notasyon var. Kullanımında benim tercihim bu şekilde oldu.

Uygulama

Keras da LSTM uygulamamız için bir zaman serisi verisi seçtik.

Daily maximum temperatures in Melbourne, Australia, 1981-1990

Avusturalya Melbornda 10 yıllık bir sürede ( 1981-1990 )  günlük olarak ölçülmüş en yüksek sıcaklıkları gösteriyor.

Yukardaki grafikden de anlaşılacağı üzre oldukça gürültülü bir sin fonksiyonu 

Bizde son 5 günün en sıcaklık değerlerini kullanarak yarınki en yüksek sıcaklık değerini hesaplattırmaya çalışacağız. uygulamızda

önce verimizi pandas ile  yüklüyoruz



tarih ve en yükseklik sıcaklığı tutan iki sutun var tarih bize lazım değil sadece en yüksek sıcaklık değerleriniz çekiyoruz.

YSA eğitimlerinde verileri ölçeklendirmek genellikle faydalı olur. bizde  ( 0 , 1 ) arası bir ölçeklendirme işlemi uyguluyoruz.

Bu veri üzerinde kayan pencere metoduyla ağımızı eğitmek için  veris seti oluşturuyoruz

Önce giriş ve çıkış verilerimizi oluşturuyoruz X ve Y olarak


ilk kutuda kayan pencere metoduyla  giriş ve çıkışları seçip X ve Y adında iki listeye atıyoruz.
ikinci  kutuda  listeleri Martise dönüştürüyoruz.
Üçüncü kutuda giriş verimizi LSTM in istediği formata çevrimek için bir dönüşüm yapıyoruz
çünkü öncesinde giriş matris ebadı  (nb_samples, timesteps) şeklinde bir giriş veri boyutunu 1 olarak verip (nb_samples, timesteps , 1 ) ebadına dönüştürüyoruz.

3645 adet verimiz var. Biz 3200 'ünü eğitim için kullanıyoruz geri kalanınıda test için bırakıyoruz.


Evet sıra geldi Ağımızı oluşturmaya


İki LSTM katmanı oluşturuyoruz ilki giriş katmanı çıkışı 64 kendinden sonra yine bir LSTM katmanına bağlanacağından return_sequence  değişkenine True değerini veriyoruz.
LSTM katmanı sonrasında  0.2 lik bir Dropout katmanı koyuyoruz. Dropout en basit ifade ile sistemin ezberlemesini önlemeye çalışan bir katmandır. biraz detay isterseniz daha önceki yazılarımda kısaca bahsetmiştim ordan bakabilirsiniz.

İkinci LSTM katmanının 32 çıkışı var yine peşine Dropout katmanı kondu. Perşinede Çıkış katmanı olarak normal bir YSA katmanı -Dense-  kullanıyoruz. Bir çıkış yani takip eden günün en yüksek sıcaklığı olduğundan çıkışı 1 .

model sınıfının summary fonksiyonu ile  modelimizin yapısını ve katmanların çıkış ebatlarını parametre sayılarını görebiliyoruz.



Bir katmanın girişi kendinden öncekinin çıkışı olduğunda girişleri göstermesine gerek olmuyor.

Eğitime başlatıyoruz. 



Eğitim sonunda  Test verisinden başlangıcını rastgele seçeceğimiz  100 adet veri seçiyoruz. Bu veri için  Gerçek değer. Tahmin edilen değer. Bir de sadece seçtiğimiz aralığın başlangıç değerini alıp ileriye doğru zincirleme tahmin hesaplattırarak  grafikler çizdiriyoruz.


Grafik den görüklerimizi yorumlayalım.
  • Tahmin ve gerçek değer arasında Müthiş bir sayısal yakınlık yok.
  • Sayısal doğruluk gibi bir bekleti bu tip bir zaman serisi için pekde mümkün değildi
  • Fakat Grafiklerdeki inişve çıkışlar parelellikler içeriyor.  Sequence learning kavramı hatırlayın
  • Zincirleme ileriye doğru tahmin ilk başta çalışsada sonrasında bir rakama sabitleniyor.
  • Bu da beklediğimiz bir durum bakınız  kaos teorisi

Ipython dosyasına ve veriye burdan ulaşabilirsiniz.

https://github.com/birolkuyumcu/high_temp_lstm

Bundan sonra tavsiyem,  ağın yapısı , parametreleri, hatta pencere ebatları ile oynayarak ne şekilde sonuçlara ulaşılabiliyor görmenizdir.

Eleştiri, öneri yada sorularınız olursa bekleriz...

Pazartesi, Ekim 19, 2015

DLL Cehennemi

DLL ingilizce  "Dynamic Link Library" teriminin baş harlerinden oluşur. Windows işletim sisteminde. Dinamik kullanılan kütüphane dosyaları için oluşturulmuş bir dosya formatıdır. Bu tip kütüphaneler çalışma zamanında hafızaya yüklenip gereken kısımlar çağrılarak çalıştırılır.

Bilgisayar dünyasında pek çok dil var. Her biri için birden fazla değişik derleyicilere sahip. Her ne kadar belli kuralları da olsa bu çeşitlilik pek çok zaman probleme sebep olmaktadır.  Hatta tecrübeyle sabittir ki aynı dilde aynı derleyicinin değişik versiyonları arasında bile problemler görülebilmektedir.

Yazımızın başlığı DLL Cehennemi terminolojiye de girmiştir. DLL Hell . Bu yüzden  programlamada genellikle kullanacağım dinamik kütüphaneleri derlemeye çalışırım. Yada aynı derleryici versiyonunda derlenmiş olanları bulmaya gayret ederim. Çünkü ne zaman, nerde probleme sebep olacağı belli olmaz. Sonra bir bakmışsınız boşyere çabalayıp durmuşsunuz.

Neyse geçenlerde Volkan kardeş picproje formundaki bir "Çizgi izleyen sanal robot " yarışmasından bahsetti. Uğraşmak istediğinden bahsetti , benden de  bir bakmamı rica etti. Anladığım kadarıyla Çizgi izleyen robotun, gömülü yazılımcılar camiasında fiyakalı bir yeri var. Şimdi bahsedeceğimiz yarışmada basit bir simulatörle robot yapmadan bu işe girişe biliyorsunuz.


Yanlız küçük ! bir ayrıntı varmış. simulatörde algoritmanızı çalıştırmak için bir dll yazmanız gerekiyor. Bir başka küçük ayrıntıda simulatör Delphi ile yazılmış olması. Bizim de bunu kendi kullandığımız dilde yani C de yazmamız lazım.

Neyse biraz ricadan biraz da merak saikiyle DLL cehennemine daldık.

İlk aklıma gelen Delphi üzerinde çalışması gerektiğinden Borland C  ile olacağına kanaat getirdim. Önce internette BorladC nin ücretsiz versiyonunu aradım. IDE olarak tabii ki emektar CodeBlock ile.

Neyse BorlandC ile yaptığım ilk denemelerden oluşan DLL ler doğrudan çakılıp kaldı. Neden olduğuna dair hiç bir fikrimde yok. Hata mesajı olmayınca nereye bakacağınızıda bilemiyorsunuz. Alınan hatanın önemli bir ip ucu olduğunu  unutmayın.

İkinci denememizi mingw32 ile yaptık. Denememiz sonrasında  "Algo? Yordamina ulasilamiyor" hata mesajına muhatap olduk. İlginçdir bahsi geçen fonksiyon vardı orda.

Windows için çok faydalı bir  uygulama var. "Dependency Walker" bu programla exe dosyaların ihtiyaç duyduğu DLL leri listelerken. DLL içindeki yordamların adlarınıda görebiliyorsunuz.


ordan bakınca bizim "Algo1" yordamı "Algo1@24" olmuş olduğunu gördüm.

sebebini araştırdım. "Decorated Names" diye bir kavrama  ulaştık.  Değişik derleyiciler değişik şekilde  yordamların ismini değiştiriyor. Bu problemden kurtulmak içinde Tanımlama dosyası - def- oluşturup.



linker için de def   komutuyla def file bildirilir.


Bütün bu işlemleri bir çırpıda anlattığıma bakmayın epey bir araştırma gerekti.  Ve en nihayetinde Artık  simulatörden çağrılabilen DLL dosayasını oluşturabildik.


LineFollowerRobot from bluekid on Vimeo.

Basit de bir algoritma yazdık yukardada videosunu koyduk.

İlgilenirseniz koduda burdan indirebilirsiniz.

Pazartesi, Ocak 27, 2014

Ordan Burdan Haberler

Çok istesemde aklımda şunuda yazsam bunuda yazsam diye bir şeyler kursamda, artık eskisi gibi yazamıyorum. İhtiyarladım mı  ne

Lafı uzatmadan biriken haberlerden bahsedeyim

1) FannTool 'un sitesinde yazılar yayınlamaya devam ediyoruz. Bu kez kısmetinizde dış kaynaklı makaleler var. Detaylara linklereden ulaşabilirsiniz şu kadarnı söyleyeyim çok değişik alanlarda YSA uygulamaları anlatılıyor.
2)  OpenCv çok hızlı bir şekilde ilerlemeye devam ediyor nerdeyse yayınladıklar versiyon güncellemelerine yetişemiyoruz. Hali hazırdaki versiyon OpenCv 2.4.8 ne gibi yenilikler var  derseniz. Benim dikkatimi çekenler ;
  • CUDA desteği gelişmeleri devam ediyor
  • Android desteği artık yerleşti, Bu versiyon Android 4.4 de destekliyor.
  • OpenCL desteği konusunda da gelişmeler devam ediyor
daha fazla detay için buraya bakınız

3) OpenCv kousundaki bir gelişmede OpenCv nin NaCl ve PNaCl ye port edilmesi. İşin detayını bende pek bilmiyorum ama anlaşılan o ki yazdığımız program Google Chorme üzerinde bulunduğu işletim sistemi ve donanımdan bağımsız olarak çalıştırılabilecek.  Ne diyeyim güzel imkan.

4) Internet de Yayınlanan derslerden daha önce de bahsetmiştim. Bu yayınlar çok çeşitlendi. Ben bir tanesinden bahsetmek istiyorum.  Santa Fe Enistüsü'nün www.complexityexplorer.org sitesinde dinamik sistemler ve Kaos üzerine verdiği giriş niteliğindeki kurs
Introduction to Dynamical Systems and Chaos 
Dersler yeni başladı sayılır bekleriz...

Şimdilik bu kadar....


Cumartesi, Mart 02, 2013

Ordan Burdan Haberler

1) FannTool Sitesine söz verdiğimiz eklemede bulunduk
2)  Veri Madenciliği Kupası Başlıyor ;
      
       DATA MINING CUP competition 2013  
In a few weeks one of the worldwide largest data mining contest the "DATA MINING CUP" competition will start. Last year over 80 international teams from 22 countries participated.

In spring each year the prudsys AG wants to enthuse domestic and international students for intelligent data analysis (data mining) and challenge them to find the best solution to a data mining problem in competition with others.

2013 we want to follow on last year and will place two competition parts again. This year both parts are focussed on the forecast of completing order in online shops.
Besides a classic Data Mining task the second part requires to develop an agent again. More details will be be released with the start of the DMC 2013.

 We are looking forward to your ideas!

 start of registration: March 4, 2013
 start of DMC competition: April 3, 2013
3)  Alman Trafik İşaretleri Yarışması Başladı ;

The "German Traffic Sign Detection" Competition has started!


Results will be presented at IJCNN'13 in Dallas Texas, and FREE REGISTRATION prizes are to be won!


************************
Competition Design
************************
The "German Traffic Sign Detection Benchmark" is a multi-class detection problem in natural images. We do cordially invite you to participate. Our benchmark has the following properties:

* single-image detection problem
* images with zero to four relevant objects
* 900 images (divided in 600 training and 300 evaluation images)
* division in three categories
* industry-relevant application: traffic sign detection

The first competition information was released on December 1, 2012, when the preliminary training data was published. Interested teams are invited to download the training dataset and develop their algorithms based thereon. In February there will be a submission phase where teams are invited to upload their results on a new unannotated test dataset. It will then be possible to immediately compare all competing algorithms via our website.

4) OpenCV 2.4.4 yayınlandı; Java kısmında ve Android portunda epey bir ilerleme var, GPU üzerindeki çalışmalar hem CUDA hemde OpenCL üzerinden devam ediyor....
  •    OpenCV Java bindings are ported from Android to desktop Java! Actually any JVM language will work, see Tutorial for details, and Java or Scala code samples.
  •     Android application framework, samples, tutorials, and OpenCV Manager are improved.
  •     Optimizations for the new NVIDIA Kepler architecture, CARMA platform support and other new optimizations in CUDA.
  •     OpenCL module now builds successfully with various SDKs (from AMD, NVIDIA, Intel and Apple) and runs well on different GPUs (AMD, NVidia, Intel HD4000). A lot of new functionality has been added, tons of bugs fixed, performance of many functions has been significantly improved.
  •     100+ reported problems have been resolved since 2.4.3, thanks everybody who participated!



Pazar, Kasım 11, 2012

Ordan Burdan Haberler

1) FannTool Sitesine eklemelerde bulunduk
Bu sıralar çok sık güncelliyorum farkındaysanız. Bu çalışmaların bir kısmı benim daha önce yaptığım örnekler olmakla beraber, Bir kısmıda google sayesinde ulaşabilidğim çalışmalardan oluşuyor. Sizlerinde çalışmalarınız varsa eklemek isteriz. Bizimle iletşime geçmeniz yeterli.

2)  FannTool'un yazımına başladığımdan beri pek çok kimse değişik vesilelerle bana ellerindeki verileri gönderdiler ve yardım istediler. Bende elimden geldiğince yardımcı olmaya çalıştım. Fakat malesef bu kişilerin çoğu yaptıkları çalışmaların sonuçlarını bana bildirmediler. Demek ki bu konularda sonuçlandırılmış bir çalışma yok.  Bu durumda çalışmalar arşivde kalıp ziyan olamasın diye, bir süre sonra  peyder pey bana bu verileri yollayan kişilerin adlarıyla beraber yayınlayacağım. Sonra demedi demeyin.....

3) 12 Kasım 2012 Pazartesi günü 14:00-18:00 saatleri arasında Ankara İvedik OSB Kongre ve Seminer Salonu’nda  “Ar-Ge, Proje ve Teknoloji Yönetimi” konulu bir seminer var. Kaçırmayın derim. İnşallah bir aksilik çıkmaz ise bende gitmeyi planlıyorum...

4)  Daha önce "Internetten AR-GE" diye duyurduğumuz. 
Evet biz yataduralım elin oğlu bunuda yaptı. Hem neden yapmasınki. Bir AR-GE projesi için sınırlı sayıda ( maliyet ) insanla bir ekip kurup, Bu ekibin kısa sürede sonuça ulaşmaları umulurken. Şimdi Projeyi Internetten yarışma şeklinde duyrup ödülü koyarak - maliyet sabit - sınırsız sayıda kişi çalıştırıp. Parayı sadece başarana (en kısa sürede istenen sonuca ulaşan ekibe ) vermek, patronlarında işine gelir. Peki bizim niye işimize gelsin derseniz. Türkiye şartlarında kaç kişinin  kendi tercih edeceği bir projeye dahil olabilme imkanı varki. Internetten AR-GE ile Boş vakitlerinizde yada Boşa geçirdiğiniz vakitlerde tercih edeceğiniz bir konuda çalışabilirsiniz. Kazanamsanızda size tecrübe olmuş olur zaten boşa vakit geçirecektiniz...
diye anlattığımız. Konuda bir başka siteden bahsetmek istiyorum.
 Kaggle :
What is Kaggle?
Kaggle is the leading platform for predictive modeling competitions.
Companies, governments and researchers present datasets and problems –
the world’s best data scientists then compete to produce the best solutions.
At the end of a competition, the competition host pays prize money in
exchange for the intellectual property behind the winning model.

Site benim görebildiğim kadarıyla oldukça başarılı. Hali hazırda ödüllü aktif yarışmalar var. Ne diyeyim gerisi size kalmış...

5) ComputerVision Hakkında Yazılımlar, Veri setleri, İşler, etkinlikler gibi pek çok şeyi bir arada bulabileceğiniz bir site  Computer Vision Online

6) OpenCV 2.4.3 yayınlandı ;  bu da OpenCv nin yeni sitesi ; opencv.org
...
Yazı epey uzamış, biliyorum ki yazı uzadıkça okunabilirliği azalıyor, kalanlarıda kısmetse daha sonra yazarız artık...

Perşembe, Haziran 14, 2012

Ordan Burdan Haberler

Bu başlık altında da epey yazı oldu, ne yapalım uzun uzadıya duyurmak istediğim ama yapamadığım konular oluyor. Bu şekilde de varmezsem kaybolup gidiyor. Ne kadar çok konu olduğunu tahmin bile edemezsiniz

1) İlk Haberimiz Sitemiz hakkında Kod yayınlamaktan - FannTool hariç - vazgeçtik Sebebini Bilenler Bilmeyenlere Anlatsın yazımızda anlatıyoruz.
Sonuçda "Bilyoruz" iddiasında değiliz "Bilmiyoruz ve Öğrenmeye" çalışıyoruz üstelik öğrene bildiğimiz kadarını "Bilmeyenlere Anlatıyoruz." İlk iki sınıfa giren kişilerin yanlışlıkla ilgisini çekmişiz ki kusrumuza bakılmasın  bir daha olmaması için gerekli tedbirleri alacağız.
"Bilenler Bilmeyenlere Anlatsın" anlayışındaki insanları bekliyor ve iletişime geçmeyi arzuluyoruz.
 "Bilenler Bilmeyenlere Anlatsın" anyalışındakilerle Kod paylaşımına devam edeceğiz elbette...

2) Yaz Tatili Geldi, Çeşitli konularda meraklı ama dersleri yüzünden vakit bulup uğraşamadığından şikayet eden Talebeler ve Öğrencilikten Talebeliğe terfi etmek istiyenler için Büyük Fırsat. İnternet üzerinden takip edebileceğiniz dersler var artık. "Education for Everyone." Herkes için Eğitim sloganıyla çıkmış açık dersler. Görüntülü ders anlatımları ödevler sınavlar. Hatta Videolar için ingilizce alt yazıda hazırlamışlar.  ( Belli dersler için topluluklar oluşturup alt yazı tercümeleri bile yapılabilir yani  ) Neyse konuyu dağıtmayalım. Adersi ve dikkatimi çeken bazı dersler den örnekler vereyim
3) Sitemizde Yaz Stajı !!!! :  Böyle yazınca çok iddialı oldu, ama anlatmak istediğim şu Eğer Yapay Zeka Bilgisayarlı Görü gibi konularda pratik anlamda Kendinizi geliştirmek için küçük projeler yapmak istiyorsanız. Seve seve yardımcı oluruz. İlgilenenlere duyrulur.

4) Yazılım Atölyesi  :  Haziran Ayı programımız 16 Haziran 2012 tarihinde yapılacak ve Ramazan Uluçay  tarafından  Araç Takip Sistemleri anlatılacak.  Bekleriz,tanışırız, görüşürüz, konuşuruz...

5) D ve C++11 Konferansı : Detaylar Burda

6) OpenCv nin yeni versiyonları çıktı ve yeni Resmi web sitesi açıldı

7)  Stack Overflow (in Turkish) : Stack Overflow sitesini biliyorsunuzdur, Benzeri içerikte ama dili Türkçe olacak olan bir çalışma var. Destekliyoruz ve Desteklerinizi Bekliyoruz. Ha gayret çoğu gitti azı kaldı...

Salı, Şubat 28, 2012

Ordan Burdan Haberler

Okur- Yazamaz'lığım depreştiğinden pek çok konuda uzun uzadıya yazmak istesemde bir türlü yazamıyorum. Bir süre sonrada yazmanın da anlamı kalmıyor, unululup gidiyor aklımdakiler...
Kısa kısa da olsa bir şeyler yazayım haberdar edeyim diyorum.

1) FANN 2.2 yayınlandı. Uzun süredir FANN da bir kıpırdanma olmuyordu. Önce Web sayfasında bir yenilenme oldu. Şimdide Yeni versiyon sürümü yapıldı. İnşallah arkası devam eder.  Kayda değer yenilik olarak yeni bir Eğitim Metodunun eklenmesini  görüyoruz. Ekelen Metod SARPROP yani Yapay Isıl İşlem  ( Benzetilmiş Tavlamada deniyor )  Simulated Annealing destekli RPROP.
Bu durumda bizede iş çıktı FannTool'un Yeni versiyonu üzerinde çalışmaya başladım. Eğer yeni versiyon hakkında fikir ve önerileriniz varsa duymak isteriz.

2.  DATA MINING CUP : Veri Madenciliği Kupası'nın 2012 yılı yarışma kayıtları 1 Martta başlıyor. Konuyla ilgili Linke ve Burdan ulaşabilirsiniz.  İlgileniyorsanız bir bakın, İlgilenmiyorsanız ne diye ilgilenmiyorsunuz yapacak daha iyi bir işiniz mi var ?

3.  OpenCv 2.3.1  Yayınlandı : Yenilikler neymiş derseniz buraya bakın. Güncel dökümantasyonunda yeni Tutoriallar var onlarıda kontrol edin derim.

4 MoSync : Yeni versiyonu yayınlandı. MoSync Eclipse-tabanlı bir IDE  üzerinden C/C++ ile  Android, iOS vb mobil sistemler üzerinde Program geliştermenizi sağlayan Bir SDK. Yeniliklere Burdan Bakabilirsiniz.

Cumartesi, Temmuz 02, 2011

Ordan Burdan Haberler

Aslında uzun uzun yazmak istediğimiz ama fırsat bulup yazamadığımız haberler var biriken. bu köşemizde   onlardan bahsediyoruz.  Köşemiz diyorum çünkü aynı başlık altında benzeri yazılar yazdım daha öncede. Detayların için yorum bırakabilir yada e-posta atabilirsiniz.

1 ) FLTK 1.3 kararlı sürüm olarak yayınlandı. Geliştiricilerin büyük gayretleri oldu ve FLTK 1.1 serisi üzerinden geliştirildiğinden genelde program uyumluluk sıkıntısı da çekilmeyecek. yapılanlara gelirisek;
UTF-8 desteği
2 yeni bileşen Fl_Tree ve Fl_Table
Daha işletim sisteminize uygun görünen Dosya seçiciniz Fl_Native_Filechooser
Cross-platform bir yazıcı desteği  ( FLTK nın OpenGl kısmıda dahil )

2 ) OpenCv 2.3 rc yayınlandı. yayınlandı yayınlanmasına ama benim bu versiyon yayınlamalarında hoşuma gitmeyen şeyler var. Yiğidi öldür hakkını yeme demişler, Öncelikle gerçekten hemen her versiyonla birlikte pek çok yenilik geliyor. Fakat dökümantasyon çoook geriden geliyor. dökümantasyonlarda yapılan yeniliklerle ilgili bir açıklama bulmak çoğu kez mümkün olmuyor. Keza yayınlanan sürümlerin kararlılığınada genelde pek dikkat edilmiyor. Keza bundan önceki sürümü denemiş fakat problemlerle karşılaştığım için vazgeçip bir öncekine geçmiştim. Vakit buluncabunuda deneyeceğim inşallah. sonuçları o zaman duyururum. Bu sürümün yeniliklerine bakmak için buraya müracaat edin
3 ) Internetten AR-GE  : Evet biz yataduralım elin oğlu bunuda yaptı. Hem neden yapmasınki. Bir AR-GE projesi için sınırlı sayıda ( maliyet ) insanla bir ekip kurup, Bu ekibin kısa sürede sonuça ulaşmaları umulurken. Şimdi Projeyi Internetten yarışma şeklinde duyrup ödülü koyarak - maliyet sabit - sınırsız sayıda kişi çalıştırıp. Parayı sadece başarana (en kısa sürede istenen sonuca ulaşan ekibe ) vermek, patronlarında işine gelir. Peki bizim niye işimize gelsin derseniz. Türkiye şartlarında kaç kişinin  kendi tercih edeceği bir projeye dahil olabilme imkanı varki. Internetten AR-GE ile Boş vakitlerinizde yada Boşa geçirdiğiniz vakitlerde tercih edeceğiniz bir konuda çalışabilirsiniz. Kazanamsanızda size tecrübe olmuş olur zaten boşa vakit geçirecektiniz...
neyse konuyu fazla uzatmadan linkleri vereyim. Girin siz kendiniz bakın detaylarına. Katılmak için ekip kurarsanızda haberimiz olsun...

4)  OpenCv için yeni bir kitap çıktı. C++ ve OpenCv 2 versiyon temelli olarak anlatıyor
OpenCV 2 Computer Vision Application Programming Cookbook
5)  Matlab Görüntülü Dersler :  Daha önce İnternetten dağıtılan İlmin zekatı diye bir yazıda yazmış idim. videolectures.net ve www.academicearth.org gibi yurt dışı kaynaklı derslerden bahsetmiştim. Türkiyedede yaygın olmasada benzeri imkanlar başladı. İsmail Arı da Matlab Dersleriyle ilminin zekatını verenlere öncülük ediyor. Matlab öğrenmek gibi bir niyetim olmasada,  duyurmamak olmaz diyoruz ve projenin tanıtımındaki
      "Not: Proje MATLAB eğitimi ile başlamıştır fakat ileride farklı konular eklenecektir."
 ifadesiyle ümitvar oluyoruz.

Cumartesi, Ocak 16, 2010

Ordan Burdan Haberler

Aslında uzun uzun yazmak istediğim ama fırsat bulamadığım haberler var. En iyisi kısa kısa duyurmak yoksa unutup gideceğim.
  • FLTK nın 1.10 kararlı sürümü yayınlandı. FLTK 1.3 ise son sürat gelişmesine devam ediyor ( erconun bileşenleri  -widget-  eklendi mesela  Fl_Native_File_Chooser, Fl_Table, ve Fl_Tree_View.)
  •  Artık güzide memleketimde FLTK konusunda yalnız değilim. Ufuk Şanlı kardeşimiz bu konuda çalışmalar yapıyor. Hatta yeni bir FLTK bileşeni (widget) de yazdı  spriteBox 1 2 ( naçizane ismini Fl_Sprite_Box olmasını buradan öneriyoruz biraz daha standart FLTK notasyonuna benzesin diye )
  • Dünyanın seçkin üniversitelerinde ders dinleme imkanına sahibiz artık www.academicearth.org daha öncede benzeri bir siteden bahsetmiştik faka bu sitenin güzel tarafı dersleri indirme imkanını tanıması  darısı memleketimizin seçkin üniversitelerinin başına

  • OpenCv nin geliştiricilerinden Gary Bradski Willow Garage da staj için duyuru yaptı aynen aktarıyoruz belki birilerine faydası dokunur
    We (Willow Garage http://www.willowgarage.com a robotics institute/incubator) can use an intern in 3D model capture.

    That is: using silhouettes to capture an object and combine that with structure from motion and stereo clues to create 3D object meshes out of objects. Pay is good, free food, great location, work with robots, sensors -- you can best summarize Willow as: Fun. Papers will be written, hard work but good times, see examples at http://www.willowgarage.com/pages/community/interns-and-visiting-scholars .

    Who:
    US, or US work visa is easiest. For more exceptional people who can stay longer than 3 months, we'll deal with helping obtain a work visa. This is an internship which means you are enrolled in some school. We might also consider doing this with a consulting arrangement for non-students, but at Intern rates. For real exceptional situations, work in place may be possible and/or student grants to fund work in place.

    Timing:
    Winter, Spring, Fall. Summer is very full here already with interns. Exception: Come in Spring and stay through the Summer.

    Requirements:
    MUST:
    You must be a seasoned programmer in C++. There is no time for learning curves, we work with robots and fairly complex systems.
    You must have a good understanding of geometric vision. Calibration, homography, structure from motion.
    PLUS:
    Computer graphics a big plus
    Experience in optimization, CUDA etc also a plus.
    Experience working with robots is a plus.

    If you meet the "MUST" above, send application to jobs@willowgarage.com Put in the title: "Intern: 3D Model Capture"


şimdilik bu kadar.

Çarşamba, Ekim 21, 2009

Ordan Burdan

1) Volkan Salma OpenCv de SVM kullanımı üzerine bir yazı hazırladı. Oraya kadar gitmişken  Zeki Optimizasyon Teknikleri Yazı dizisine de bakmayı unutmayın ; İlk Yazı Hill Climbing üzerine. Devamınıda tez zamanda bekliyoruz.

2) İsmail Arı'nın günlüğünde tasarım ve ufak bir adres değişikliği oldu. "gunluk.ismailari.com" sitesi ismailari.com kök dizinine taşındı. Duyuruyor ve hayırlı olsun diyoruz.

3) www.GlobalEkonomi.com dan FVolkanY den daha önce bahsetmiştik , Yapay Zekalı tahmin sistemleri üzerine çalışıyordu.  Yakında ürün (Forex ve Borsa Sistemleri ) satışına başlıyacak gibi  hemde  sonuçlar oldukça iddialı ne diyelim hayırlı olsun.

4) Bora Kardeşimizden yine yeni bir icad Casus Klavye  Kimin işine yarar bilmem ama Boranın performansını ve ilerde neler yapabileceğini gösteriyor...

Çarşamba, Haziran 10, 2009

Ordan Burdan

1) Volkan Programınız için performans ipuçları.(x86) diye bir yazı hazırlamış ona ek olsun;
* Liboil : yani “LIBrary of Optimized Inner Loops” iç döngülerinizi işlmecinize göre optimize ediyormuş
* Daha çok AMD işlemciler için kullanabileceğiniz
- Framewave : Derived from the AMD Performance Library, Framewave is a free and open-source collection of popular image and signal processing routines designed to accelerate application development, debugging, multi-threading and optimization on x86-class processor platforms.
- GNU Toolset Optimized for AMD Platforms

2) Halen okuyup duymadıysanız bu tarışmaya bakın : "Ruslara 850.000 € verip İstiklal Caddesinde saniyede 15.000 yüz taramak?" ve düşünün, ibret alın, örnek alın, .... ruslarda parayı alsınlar

3) Çay’da Görüntü İşleme Uygulaması : Bu sadece türkçeye tercüme edilmiş bir örnek. Aslında Üretimi yapılan pek çok tarım üründe uygulama alanları var. Bu yazıda bahsedileni hindistandan birileri yapmış, sizlerde bakın ve düşünün, ibret alın, örnek alın, .... Hindistanlılarda parayı alsınlar.

4) MetaTrader içinde YSA kullanımı üzerine yayınlanmış bir makale :
Using Neural Networks In MetaTrader Makalede kullanılan YSA tahmin edebileceğiniz gibi FANN . Bu arada bir zamanlar Volkan bu işlerle uğraşıyordu, epeydir sesi çıkmıyor. En son "Program ticari bir ürün haline geldiğinden, maalesef kodları yayınla(ya)mıyorum." demişti ama ticari ürün olarak çıktığına dairde bir yazı çıkmadı. En azından bu konuda yabancılara ortak olmaya çalışan insanlar var...

5) Ve iki yarışma :
- Time Series Forecasting Competition
- UC San Diego Data Mining Contest

Cumartesi, Mart 21, 2009

Ordan burdan

1) Diyelimki Açık kaynak kodlu (AKK) projelerle uğraşıyorsunuz. AKK Kütüphaneler kullanmaya çalışıyorsunuz. Genelde ticari ürünlerde ancak bulabileceğiniz dökümantasyonu bulamazsınız. Pek çoğunun kitabı da yoktur internette araştırıp durursunuz ".... tutorial" diye. Bulduklarınızda giriş niteliğinide olur. Tek çareniz kodu incelemek Benim bu işler için kullandığım bir program var

Source-Navigator kendiside Açık kaynak kodlu hem Linux Hemde Windows da kullanabilirsiniz.
pek tabi benim anlattığımın dışındada pek çok fonksiyonu var tavsiye ederim, bir inceleyin.

2) FannTool'un En son versiyonu olan 0.93'ün yayınlanmasının üzerinden 11 ay geçmiş. İndirilme sayısı ise 2500 geçti. Ben de güzel memleketimin güzide İnsanlarından kimin haberi var böyle bir programın olduğundan diye bir google araştırması yaptım. Sonuç pek de iç açıcı değildi. Ama bu sayede Rifat Kurban'ın şu yazısına rastlamış oldum.

3) Yine Rifat'ın blogunda yapay arı kolonisi algoritması (artificial bee colony algorithm abc) bağlantısını gördüm. Daha önce Derviş karaboğa'nın Yapay Zeka Optimizasyon Algoritmaları kitabını alıp incelemiştim. Analaybildiğim kadarıyla Genetik algoritma, Karınca koloni algoritması, Yapay bağışıklık algoritması benzeri bir sistem. Ama anlayamadığım türkçe tanıtım sayfasının olmaması ...

4) Ahmet Kakıcı Yapay Sinir Ağları üzerine bir dizi güzel yazı yayınladı.
5)FLTK için yeni bir Işıltılı şema hazırlanmış Henüz denemeye fırsatım olmadı ama görünüşü oldukça şık duruyor. Uygulamak isterseniz buyrun