Sayfalar

Cumartesi, Nisan 16, 2016

Poincare Plot Feature Extraction 1

Nasettin hocaya sormuşlar hocam sizin bir icadınız varmı ?
hoca ;
 Karla ekmek yemeği icat ettim ama sonra bende beğenmedim bıraktım 
demiş.
Feyiz kaynağımız Nasrettin hocamızdan çok şeyler öğrenmdiğimizi blog'umuzu takip edenler bilir.
Bizimde naçizane bir icadımız oldu. Zaman serisi tipindeki veriler için bir öznitelik çıkarma metodu. Aslında EEG verileri için kullandıkda
Yapay Sinir Ağları ile Epilepsi İçin Otomatik EEG analizi

Yazıya okuduysanız işimizi görmüş bir öznitelik çıkarma olarak görünüyor. Fakat tabii ki genelleştirmek için kesinlikle yetersiz. Aradan epey bir vakit geçti, hep bir bakayım diyorum bir türlü vakit bulamıyorduk. Bu günlerde biraz vakit bulunca ucundan kıyısında anlatmaya ve kodu pythona çevirmeye başladık.

Öncelikle Zaman serisi tipindeki veriler çok yaygın ve çok çeşitli. Bu yüzden envai çeşit  öznitelik çıkarma metodlarıda mevcut elbette. Bir kısmından bahsetmiştik
Zihin Egzersizleri 2 


Konuya geçelim denemeler yapmak için önce seriler oluşturalım.



resimlerden çizilmiş bu serileri görünüşleri ile ayrıştırabiliyoruz. Bu haliyle kullanımı pek mümkün değildir. Elbette sabit bir genişlikteki veriyi seçip kullanabiliriz fakat verinin seçeceğimiz kısmına göre veri bir ileri veya geri gitmek bile veri vektörünü nerdeyse tamamen değiştirir.

Poicare Plot  adını fransız matematikçi H. Poincare den alan bir metoddur.  Basitçe anlatırsak

X1, X2,... Xn 
şeklindeki bir zaman serisinin  2 boyutlu bir koordinat sisteminde  sırayla
 (X1, X2 ) ,   (X2, X3 ) ,  (X3, X4) , .... ,   (Xn-1, Xn )

noktalarının  çizilmesidir.

 Yukardaki serilerin Poincare Plot metoduyla çizimlerini görelim

belki bir parça daha kolay ayrıştırılacak halde . Bu haliyle kullanımını görmekteyiz. Mesela tıp alanında  kalp atım hızı değişkenliği - Heart Rate Variability -  analizlerinde kullanılıyor

İnternette ufak bir aramayla pek çok makaleye ve çalışmaya rastlaya bilirsiniz
bir örnek verip geçiyoruz.

Poincare Plot Used As Confirmative Tool In Diagnosis Of Left Ventricular Diastolic Dysfunction For Diabetic Patients With And Without Myocardial Ischemia

Biz burdakilerden farklı metodla bu grafik üzerinden öznitelik çıkarmayı deneyeceğiz. İlk aşamada noktalar arasında vektöreler oluşturacağız. Vektör büyüklüğü ve yönü üzerinden histogramlar çıkaracağız. Sonrasında bir birini takip eden vektörler üzerinden iki boyutlu histogram çıkaracağız.

Yukardaki kadarıyla kodu

github.com/birolkuyumcu/Poincare-Plot

adresinden IPython notebook olarak inceleyebilirsiniz.

Şimdilik bu kadarını yazalımbırakalım. Devamını yazmaya kudretimiz ve dahi şevkimiz olursa devam edecek İnşallah

Cuma, Nisan 08, 2016

Bizden Haberler

Epeydir bir şey yazamıyorum. Aslında yazacak çok şey çıkıyor. Vakit bulup toparlayıp yazarım dedikçe zamanla yitip gidiyor. Bütün bütün kaybolmadan işaret taşı nevinden bir kaç satır karalıyalım dedik.

İlk olarak kitapdan bahsedelim. Kitabın ikinci baskısına geçileceği bildirildi. Memleketimizde çokda yaygın olmayan bir konudaki kitabın ikinci baskıya gitmesi bence güzel bir gelişme. Alanlara, tanıtanlara ve yayılmasına yardımcı olanlara burdan teşekkür ederim.

Geçen sene oldukça yoğun geçti aslında. Yılınbaşında Tübitak Desteği için başvurulan bir proje içindeydik. Proje konusu aşağı yukarı "nöro marketing" üzerineydi.  Nöro marketing beyin dalgalarının anlamdırılması esasına dayanan bir alan. Beyin dalagalarının anlamlandırılması zaten uygulama alanı çok geniş bir alan. Bunun pazarlama amaçlı kullanılarak ticari kazanç elde edilmesi üzerine bir projeydi. Bilimum bürokratik işlem ve alınan danışmanlık hizmeteri sonunda proje sunum aşamasına geldi. İlk aşamada 2 hakem atandı değişik üniversitelerden. Farklı tarihlerde ayrı ayrı sunum yapıldı. Aradan bir kaç ay geçince muhtemelen  hakemlerin farklı görüşlerinden yeni 2 hakem daha atandı. Onlarada ayrı ayrı sunum yapıldı. Aradan epey bir zaman geçtikten sonra projenin kabul görmediğini öğrendik malesef.

Yılın son 6 ayında bu sefer bilgisayarlı görü alanında bir projeye dışardan yardımcı olduk.


IHA görüntüleri üzerine bir Ar-Ge projesi idi.

Gerek yukarda bahsettiklerim gerekse bu tür projelerle uğraşanlardan dinleiklerime istinaden memleketimizdeki Ar-Ge projelerindeki problemler hakkında en azından başlık olarak bir şeyleyler karalayalım. Uygun bir imkan bulursak genişletilmiş versiyonunuda yazarız



* Ekip nasıl kurulur ? :  İstenen nitelikde insan bulamama çünkü yok yetişmemiş. Olmayan nitelikleri ve ilaveten "ağzıyla kuş da tutsun " şeklinde ilanlarla heveslileri kaçırmak. Hevesliler kaçınca geriye hallederiz cilerin kalması. Hallederizle hiç bir şeyin hallolmayacağı. Şaş kaza hevesli , Kısmen nitelikli insanında bütün işin üzerine yıkılması ile geldiğine pişman edilmesi.

*Plan Nasıl Yapılır :  Ekip yok, Ekipman yok, Veri yok. Beklenenlerin teknik olabilirliği meçhul. Zaman kısıtlaması evler şenlik, dünyada eşi olmayan çalışmayı 6 ayda çıkarmak istenir...  Buyrun cenaze planına...

*Akademik Danışma veya Danışamama : Projenize uygun yeterlilikte danışmanı nerden bulursunuz. Eş dost tanık diye adı yazılanlar. Bulduğunuz danışman ne derece vakit ayırabilir.  Adamın işi başından aşkındır, ip ucu nevinden ufak yönlendirmeler ancak yapar. İp ucunu takip edecek dedektif yok. Kimisi olabildiğince teorik kalır. Şuralarda daha kısa bir yol olabilir araştıralım der. projenin kısıtlamalarına bakmaz İş gücü çıkmaz sokaklarda gezer durur.

*Devlet Desteğimi , Kösteğimi :  hibe desetği olmadığı sürece  bence "Projenin teknik olabilirliği"  dışında  ıvır zıvırla uğraşmaması gerekirken. Bilimum bürokrasiyi önünüze yığması. Kabul red kriterlerinin net olmamması. Fuzuliden günümüze proje sundum tanıdık değil deyu almadılar anlayışının devam ediyor olması.  Yurt dışında başarılı olmuş projelerin çoğunluğu memleketimizde olsa destek alamıyacak oluşu...

*Yatırımcı Melek mi ? : Yurt dışında başarılı olmuş projelerin çoğunluğu memleketimizde olsa yatırımcı bulamıyacağı gerçeği. Yurt dışında yatırımın fikre ve fikri gerçekleştireceği düşünülen ekibe yapılırken. Memleketimizde yatırımcı hazır sofraya ortak olma şeklinde yapılır. Yatırımcı arıyan, fikre ve ekibe, hazır sofra sorarlar.

*Ar-Ge Nedir : Gerek ekipden biri olarak, gerek devlet olarak gerek yatırımcı olarak,  Ar-Ge nin ne olduğunu farkında olmadığımızın farkındamıyız ?  Araştırma ve Geliştirme ; Araştırma ve geliştirme işini araştırmadan yapabilrimiyiz ?  Nasıl planlaya biliriz şu kadar adam saatte biter diye. Gittiğimiz yönün doğru olduğunu ve isteğiğimiz sonucu vereceğine nasıl emin olabiliriz. Emin oluyorsa bu zaten araştırma değildirki !.  Bu durumda hazır sofranın - iş modeli- olmasının imkanı varmıdır.?

Haberlere devam edelim

mbed ile embeded konusuna bakdığımı söylemiştim.  Başka bir tür kart ile yine ufak bir çalışmam oldu.

Nesnelerin interneti IoT kavramı bunca popülerken bakmamış olmamız bir eksiklik olurdu. Ardunio bazlı wireless bağlantısı kurabilen mini bir board. Eklenmiş olan düğmeye basınca
ardesine bir sayaç değeri yolluyor.  Yazılımcıların çekinmemesi gereken bir alan diye düşünüyorum. C / C++ biliyorsanız, yabancılık çekmiyorsunuz.

Son olarak da Derin öğrenme konularına değinelim.  En az IoT kadar popüler olmaya aday bir konu. Bu konuda çalışabilmek için benim emektar diz üstü bilgisayarımı devredip yeniledim. bir Toshiba i7 ve NVDIA grafik kartlı bilgisayar aldım. Elbette yeterli değil ama konu üzerinde denemeler yapabilecek sevyede bir imkan sağlıyor.

İlla Linux da kullanın  derin öğrenme kütüphaneleri şak diye kuruluyor masalına bende inanıp bazı denemeler yaptım. Sonucusu bilgisayarın göçmesiyle sonuçlanan 3 denemeden sonra vaz geçtim. İlk olarak Linuxda söylendiği gibi her şey güllük gülistanlık değil. İkinci olarak Linux komut satırı handikapından kurtulmamış. Daha doğrusu kurtulmak istemiyor. Her problemde karşınıza bir kamyon komut satırı işler düşüyor. sonuçda garanti değil bu arada.
"X problemini çözmek için şu şu komutları yazın. "
Bilmem kaçıncı aşamada biri hata veriyor ortada kalıyorsunuz Geri nasıl alınacağıda meçhul.

 İlerde bir daha denermiyim bilmiyorum ama Windows da da pek ala idare edebiliyorum şimdilik.  Caffe yi mxneti theanoyu kurdum. Caffe de eğitim denemeleri yaptım . caffe ve mxnette hazır modelleri kullandım. Tabii bu arada el mahkum pythona başladım.

Derin öğrenmede genelde bütün yollar Python 'a çıkıyor. Rahmetli İsmail Arı zamanında söylüyorduda dudak büküyorduk. Akademik camia matlabdan nedendir bilinmez pythona göç etmişler. Heme her konuda python kütüphanesi bulabiliyorsunuz. Keza Derin öğrenme kütüphaneleride çekirdiği C++ da yazılsada kullanımı python tercih edilmiş durumda. Bizde python öğrenmeye başladık.

Pythona dil olarak her şey serbest bir dil yapısında tip tanımlama yok. Bu her ne kadar özgürlük gibi görünsede bence eksiklik. C / C++ da bir fonksiyonun prototipi size iyi kötü nasıl kullanacağınızı anlatır. şu şu şu tipte verileri yollayacağım şu tipde bana sonuç dönecek vs... Pythonda en azınmdan benim için hiç bir şey ifade etmiyor. Devasa kütüphaneleri olan bir sistem ama dökümante edilmiş hatta örneklenmiş değilse kullanamazsınız. Güzel tarafı ise kütüphanelerin kurulumu için bir sistemi var pip Pek çok - dikkat her demiyorum - kütüphane için çalışıyor. Paket kurulumunda bir problem yoksa tek satırla koda dahil edilebiliyor.

Pythonda bir başka problemde hangi versiyonun kullanılacağı problemi  2.x mi 3.x mi Uzun uzun araştırmaya gerek yok. Hali hazırdaki kütüphane desetği yüzünden 2.x i tercih edin. Python kurarken pek çok kütüphanenin hazır olarak bulunduğu dağıtımları tercih etmeniz sizin için iyi olacaktır.
wiki.python.org/moin/PythonDistributions
Ben Anacondayı yı tercih ettim. Hatta şöyle bir çalışmada yaptım


Python Deneme from bluekid on Vimeo.

python + openCv + sklearn

IDE olarak önerilerim.


Yazıyı çok uzatmışız umarım okuyan çıkar. Bizden haberler şimdilik bu kadar.

Günün anlam ve önemine istinaden Kandiliniz , Cumanız, Üç aylarınız maddi manevi hayırlara vesile olsun İnşallah