Sitemizi takip ediyorsanız görmüşsünüzdür. eskiden beri pratik uygulamalara ağırlık vermişizdir. klasik YSA kütüphanesi olan FANN 'ın pek çok değişik alanda kullanarak gösterdik. Genel kullanım aslında aynı.
- Uygulanacak bir alan bul.
- Verileri topla.
- Sistemi eğit.
- Eğitilmiş sistemi kullan.
Sıfırdan bir derin öğrenme sistemi yazmak çoğumuz için mümkün değildir. Gerekli de değildir. Hali hazırda pek çok kişi tarafından geliştirilmekte olan uygun kütüphanneler mevcuttur. Bunları kullanmak hem daha sağlıklı hemde daha kolaydır. Tekerleği icat edilecek yer var edilmeyecek yer var ... Bizim görüşümüz kendinize en yakın gördüğünüz ve gelişmesi devam eden bir kütüphaneyi seçmektir. Sonrasında çalışmalarımızı bu sistemi öğrenmek ve uygulamak üzerine harcaya biliriz. Biz bir kaç tanesinden bahsedelim.
Torch
Torch aslında genel bir Yapay Öğrenme kütüphanesi ve Geçmişi epey eski hatta bir vakitler üzerine yazılmış görüntü işleme kısmıyla birlikte çıkmıştı Torch Vision diye biz de bahsetmiştik. Torch Vison pek gelişmesede ana kütütüphane olan Torch çok gelişti. Ana kütüphane C de yazılmış olsada, Lua destekli olarak epey revaçta bir kullanıma sahip. GPU desteği zaten derin öğrenme sistemlerinin olmazsa olmazı. Açık kaynak kodlu ve ticari kullanımada uygun bir lisans yapısı var.Caffe
Berkley Üniversitesi tarafından geliştirilmiş bir sistemdir Caffe . Açık kaynak kodlu, ticari kullanıma uygun ve GPU destekli bir yapıdır. Temelde C++ olarak yazılmıştır. Hiç program yazmadan Komut satırından çalıştırılan programlarla ve google 'ın -Protocol Buffers - Google's data interchange format - ile yazılmış model yapıları ile eğitip kullanabiliyorsunuz.
mesela bakınız.
- caffe.berkeleyvision.org/gathered/examples/imagenet.html
- caffe.berkeleyvision.org/gathered/examples/mnist.html
- caffe.berkeleyvision.org/tutorial/interfaces.html
- Kullanımı hakkında sunum
NVDIA'nın DIGITS ürünü ilede GUI üzerinden kullanabiliyorsunuz.
Pek çok araştırma gurubu tarafından kullanılan bir sistem olan Caffe bizimde tercihimizdir.
Matlab ve python destekleride vardır. Caffe için en büyük eksiklik şimdilik windows desteğinin pek iyi olmaması. Resmi bir windows versiyonu yok. Fakat bu konuda değişik çalışmlar var
Sonuncusunda çalıştırılabilir bir versiyonunda var
Caffenin bizim açımızdan diğer bir avatajı da OpenCv 3.0 ile birlikte Caffede eğitilmiş olan modelleri kullanma imkanına sahib olmamızdır. Mesela bir önceki yazımızdaki video yu Caffe de eğitilmiş "bvlc_googlenet.caffemodel" modeliye yazdık. Caffe de eğitilmiş modellerede ulaşabiliyorsunuz.
OpenCv de Derin Öğrenme sistemlerine ulaşmak için OpenCv 3.0 'ı contrib eklemeleri ile birlikte kurmalısınız. -Kitabımızda anlatmıştık - Bu kısımda dnn modülünde bahsettiğimiz özellikler var.
Dökümantasyonu ;
docs.opencv.org/master/d6/d0f/group__dnn.htmlÖrnek Program ;
github.com/Itseez/opencv_contrib/blob/master/modules/dnn/samples/caffe_googlenet.cppDökümantasyondaan görülebileceği gibi hali hazırda çalışmasada eğitilmiş Torch modelleri içinde üzerinde çalışılıyor.
Bizim bahsettiğimiz dışında da başka kütüphaneler var elbette. Burdan detaylı bir listeye ulaşabilirsiniz. Listenin olduğu site deeplearning.net de genel konu ile ilgili açıklamalara ve bağlantılara ulaşabilirsiniz.
Bütün yazdıklarımızı toparlarsak. Pratik bir çalışma yapmak istediğimizde
1) Hazırda geliştirilmiş sistemlerden biri tercih edip öğrenmemiz gerekiyor. Bizim önerimiz Caffe
2) Büyük işlemgücü gerektiğinden en azından CUDA destekli bir NVDIA grafik kartlı bir bilgisayar edinin. Daha teferruatlı açıklama için bakınız ; deep-learning-hardware-guide
3) Bol miktarda veri istediğinden ; sabır ve zaman - mümkünse ekip oluşturup işi paylaşmak -
4) Bütün her şey hazır olup eğitim denemelerine başlandığında eğitim işleminin uzun olması yüzünden zaman.
Listedende anlaşılacağı üzere orjinal bir çalışma için ; İnsan para ve zaman gerekiyor...
Evet bir yazı dizimizinde böylece sonuna geldik. Bir başlangıç yapabilmek adına gerekenlerden bahsettiğimizi umuyorum. Umarım birilerine bir faydası dokunur. Her türlü soru , öneri ve eleştirilerinizi bekeleriz...