Pirobotik

Derin Öğrenme

Derin Öğrenme

Derin Öğrenme – Makine Öğrenmesi

Derin Öğrenme (Deep Learning) ve Yapay Sinir Ağları (Convolutional Neural Network) son zamanlarda en trend yapay görme konusudur. Kökleri 1950 lere dayanan, teorik olgunlaşmasını 1990 larda tamamlayan yapay zeka çalışmaları, artan işlemci güçleri, büyük veriye erişim, görüntüleme donanımlarındaki gelişmelerle birlikte günümüzde altın çağını yaşamaktadır.

Yapay görme alanındaki deep learning uygulamalarının temelindeki motivasyon, klasik görüntü işleme yöntemleri ile zorlukla yapılan tanımlamaların, otomatik olarak yapılmasının sağlanmasıdır. Bunu yapmak için, her bir nesneyi özelliklerine göre, tek tek betimlemek yerine, önceden ne olduğunu bildiğimiz çok sayıda örneği sisteme vererek sistemin bu örneklerin ortak ve farklı yönlerini çıkartması beklenir. Böylece sisteme herhangi bir resim gösterildiğinde, daha öncekilerden en çok hangisine benzediğini bize söyleyebilir.

Örnek 1: yukarıdaki görselde yer alan fren disklerinin, her birinin modelini bulan bir görüntü işleme uygulaması düşünelim. Klasik yaklaşımla, yüzeydeki delik ve yiv sayısına bakarak bir ayrıştırma yaptırabiliriz. Bu yaklaşım büyük ihtimalle çalışacaktır. Sisteme yeni bir disk geldiğinde, bu yeni diskin de ayrıştırıcı özelliğini gözle görüp, daha sonra bu özelliği programa kodlayıp, yeni bir versiyon üretmek gerekecektir.

Klasik yöntemlerle, büyük delik sayısı, küçük delik sayısı ve yiv sayısına göre ayrıştırarak, nesne belirleme

Derin öğrenme, başta bu gibi problemlere (her yeni durum için yeniden kod yazma) çözüm getirmektedir. Buradaki öğrenme kelimesinden kasıt genel olarak budur. Bir defa sistem sınıfları öğrendikten sonra, aldığı her resmi bu sınıflara göre ayrıştırmaya çalışacaktır. Sistem ne kadar çok görüntü ile beslenirse, o kadar çok öğrenecek, o kadar sağlıklı çalışacaktır. Yeni bir ürünü sisteme tanıtmak eskiye göre çok daha kolay olacaktır.

Yukarıdaki örnekte, klasik yöntemlerle sınıflara ayrıştırmak, resim geometrik şekiller içerdiği için kolaydı. Gerçek hayatta, geometrik şekillerle ifade edemeyeceğimiz çok daha karmaşık uygulamalar karşımıza çıkacaktır. (yüz tanıma, üzgün, mutlu, kızgın gibi moral analizi, davranış testleri vb.)

Örnek 2: Yukarıdaki görselde, deniz kumsal ve gökyüzünü belirleyen bir görüntü işleme uygulaması düşünelim. Burada geometrik desenlerden bahsetmek mümkün olmayacaktır. Sınıflara ayrıştırmak için renk belirleyici gibi görünse de, deniz ve gökyüzü karışmaya çok müsait olacaktır. Eğer resim günün akşam saatinde alınmış olsaydı kumsal deniz ve gökyüzü tamamen farklı bir renkte görünecek, bulutların durumuna göre de gökyüzü şekilleri sürekli değişiklik gösterecekti. Böyle bir problemin klasik yaklaşımlarla çözümü gerçekten zordur. Bu gibi problemler için Sınıflandırma “Classification” dediğimiz yöntemler kullanılır. Deep Lerning denilen (derin öğrenme) de yaygın olarak CNN sınıflandırma yöntemini kullanır. Temel mantık, aynı gruba giren çok sayıda örnek vererek, sistemin örnekler hakkında fikir edinmesini sağlamaktır. Örnek resimler verirken, ilgili bölgeler etiketlenir. (Deniz Kumsal Bulut gibi) Öğrenme aşaması (train) tamamlandıktan sonra, sistem verilen bir resmin, daha önceden öğrenmiş olduğu hangi etiketleri (class) içerdiğine bakar. Yukarıdaki örnekte, çok sayıda bulut, deniz ve kumsal etiketleri içeren resim sisteme verilir. Ne kadar çok birbirinden farklı resim ile sistem beslenirse, gerçeğe o kadar yaklaşılan sonuçlar elde edilir.

Yukarıdaki görselde olduğu gibi, her bir bölge (region) bir etiket ile (label) işaretlenerek sisteme bildirilir. Offline Training (eğitme) dediğimiz işlem yapılır. (Beslenmiş tüm resimlerden, sistemin etiketlerle belirtilmiş sınıflara ilişkin bilgileri çıkartması) Training genelde uzun süren bir işlemdir. İş yükü çoğunlukla grafik işlemcide olduğu için genellikle iyi grafik işlemciler avantaj sağlar. Neyse ki uzun süren train (öğretme) işlemi 1 defa yapılır. Sistem çalışırken gayet hızlı karar verecektir.

Özetle, derin öğrenme işleminde, sınıflar (class) ve etiketler (labels) vardır. Sınıf, istediğimiz boyutta olabilir. (Yukarıdaki görselde 3 boyutludur mesela: Deniz bulut ve kumsal. Yeşil alan, insan, gemi vb. nesneleri de ayrıştırmak isteseydik, o görselleri de içeren resimler bulmak ve o etiketleri içeren bölgeleri de öğretmek zorunda kalacaktır. Boyut sayısı artacaktı)

Deep learning, CNN ve diğer sınıflandırıcıların detaylı çalışma mantıkları ve örnek projeler blog sayfalarımızda yer alacaktır.

Pi Robotik olarak, gerçek hayatta, modellemenin zor olabileceği, alanı boyutu rengi şekli sürekli değişebilecek olan hata tiplerini bulmada deep learning metodlarından da yararlanmaktayız.

  • Kumaş hatalarının belirlenmesi (yağ izi, atkı çözgü kaçıklığı, yırtık vb. her kumaşta hata tipleri farklı olabileceği için klasik modellerle genel bir uygulama yazmak zordur)
  • Deri üzerindeki hataların bulunması (doğal doku içerdiği için klasik yöntemlerle hataları yakalamak zordur)
  • Cam şişe ağzındaki kırıkların tespiti (kırık herhangi bir şekilde olabileceği için klasik yöntemlerle modellemek zordur)

Gibi projelerde, deep learning kullanmaktayız.

Şişe ağzı kırıklarından oluşturulmuş NOT OK set. Her tip hatayı içeren en az 1 fotoğraf sisteme gösterilir.

Şişe ağzındaki kırıkları tespit eden derin öğrenme uygulamamız.

Kalabalık kitle içinde (stadyum, metro girişi vb.) yüz tanıma, dış dünyadan, sokak ve caddelerden alınmış görüntülerde etraftaki nesneleri tanıma, otonom araçlar için çevreyi öğrenme gibi teknolojik alanlarda da kullanım alanı yaygınlaşmaktadır.

Pi Robotik olarak özellikle tekstil alanında, her tür kumaş hatasını öğretmeye ve bulmaya yönelik derin öğrenme temelli makine geliştirmekteyiz. Klasik sistemlerin kullandığı yöntemlere ilaveten, texture inspection, background estimation ve deep learning teknikleri ile de destekleyerek çok daha yüksek başarım oranlarını yakalamaktayız.

Derin Öğrenme
  • Derin Öğrenme
  • Yapay Zeka
  • Classification
  • Deep Learning
Derin Öğrenme

Derin Öğrenme

Sorularınız mı var? Bizimle iletişime geçin.

Proje Talep Et
Türkçe