Bilgisayarlar nasıl “görür”? — Computer Vision ve Deep Learning

https://www.dji.com/mavic-air

Zeka mı, Bilinç mi?

Drone, kadının kollarını “görüyor”.

Nasıl çalışıyor?

Drone’un burada yaptığı şey kadının elini takip etmek. Bir kamerası var, görüntü alıyor. El takibi için ihtiyacı olan şey elin videoda nerede olduğunu bulmak. Sonra el nerede bulunuyorsa, drone o el komutuna göre hareket etmek üzere pervanelerine güç veriyor.

Videolar, Resimler, Koordinatlar:

Bir video, basitçe, binlerce resimden oluşur. Resimler hızlı oynatıldığında insan gözü görüntüyü akıyor olarak anlamlandırır.

  • Elinize kareli bir defter alın.
  • Kareli defterin her bir karesini 0 ve 1 arasında bir sayı ile numaralandırın.
  • Herhangi bir karenin içinde yazan sayı ne kadar 1'e yakınsa, o kareyi o kadar beyaza boyayın.
  • Sayı ne kadar 0'a yakınsa, o kareyi o kadar siyaha boyayın.
  • Sayı 0.5 ise, kareyi griye boyayın.
http://pippin.gimp.org/image_processing/chap_dir.html

Koordinatlar

Drone, bu kareli defteri alıyor. Bir dizi işlemden geçiriyor. Öyle güzel işlemlerden geçiriyor ki, yaptığı işlemler sonrasında, bu kareli defterdeki sayılar, dört tane “koordinata” dönüşmüş oluyor.

  • Parmağını kareli defterin (resmin) sol alt köşesine koy.
  • Parmağını 4 çizgi (4 piksel) sağa götür.
  • Dur.
  • Parmağını 9 çizgi (9 piksel) yukarı götür.
  • Artık, (4,9) noktasındasın.
https://www.mathswithmum.com/find-coordinates-point-maths/

Tekrardan Drone’un yaptığı şey:

Kareli defterin karelerine yazılmış sayıları alıyor. Bu sayıları öyle bir işlemden geçiriyor ki, işlemin sonucu olarak 4 tane koordinat çıkıyor.

  • Bir resim düşünün, içinde bir el olsun.
  • Resimdeki elin etrafına bir dikdörtgen çizin. El, dikdörtgenin tam içinde olsun.
Nöral ağ, bu videodaki her resim için ayrı ayrı işlem yapıp dikdörtgenin köşelerini buluyor.

Dikdörtgenin köşelerini bulmayı Nasıl Öğrendi?

Drone’un köşeleri kendi kendine bulabilmek için iki şeye ihtiyacı var:

Beyin mi?

İnsan beyni değil. Ama şekli şemali benziyor, o yüzden beyin diyorum. Aslında şöyle bir şey:

Kaynak: 3Blue1Brown
  • İçine kareli defterdeki sayıları atabiliyorsunuz.
  • Sonra bu nöral ağdan, doğru cevabın çıkmasını umabiliyorsunuz.

Bir cevabın çıkmasını umabiliyoruz. Ama o cevap nasıl doğru çıkıyor?

Üstteki nöral ağdan, neden 3 değil de, 7 cevabı çıkıyor?

Binlerce el yazısı rakam resmi. https://neurohive.io/en/datasets/researchers-expanded-the-popular-mnist-dataset-with-50-000-new-images/
  • Veri seti, binlerce resim, ve o resimlerin hangi sayılar olduklarına dair doğru cevapları içeriyordu.
  • Yapay Zeka, başta, sallamasyon şekilde resimlerin hangi sayı olduğunu tahmin etti.
  • Yapay Zeka’nın tahminleri ile doğru cevaplar arasındaki fark hesaplandı. (Basitçe çıkarma işlemi yapıldı.)
  • Bu farkı küçültmek için, nöral ağdaki nöronların her birini nasıl değiştirmeliyiz? Bu hesaplandı. (türev alarak, gradient descent, backpropagation)
  • Hesaplara uygun olarak nöronlar (nöron ağırlıkları) değiştirildi. (updating neuron weights)
  • Az önce saydığım üç adım, binlerce resim için, yüzbinlerce kez tekrar edildi. (eğitim, training)
  • En sonunda nöronları o kadar eğitmiş, o kadar kez doğru yönde geliştirmiş olduk ki, nöral ağ, doğru sonuçlar çıkarmaya başladı.
  • Bir yuvarlağa giren sayıların hepsi toplanıyor. Yuvarlağa o sayı değeri yazılıyor.
  • Herhangi bir nöronun (çizginin) kalınlığı ile nöronun solunda kalan yuvarlaktaki sayı çarpılıyor.
  • O nöronun (çizginin) sağında kalan yuvarlakta, o yuvarlağa giren tüm nöronların sonuçları toplanıyor. (1. maddede de bunu yazdım aslında.)
  • En son, biz nöral ağda sağa doğru gide gide tüm yuvarlakları bitirince, kareli defterdeki sayılarımız, “işlenmiş” şekilde nöral ağdan çıkmış oluyor. Bu “işlem” doğru öğrenilmişse, çıkan sonuç doğru oluyor.

Özetle:

  • Videolar basitçe resim yığınıdır.
  • Resimler basitçe kareli defterlerdir. (matris)
  • Bazı yapılar (nöral ağlar), bu kareli defterlerden, elin koordinat noktalarını tahmin edebilirler.
  • Başka bir örnek vermek gerekirse bu yapılar, uygun veri seti ile eğitilirlerse, el yazısıyla yazılmış rakam fotoğraflarının, hangi rakam olduğunu tahmin edebilirler.
  • Nöral Ağlar üstte gördüğünüz resme benzerler. İçlerinde nöron denen çizgiler bulunur. Nöronlar, piksel değerlerini (en soldaki yuvarlakları) çarpma ve toplama işlemleri ile işlerler, sonraki yuvarlaklara iletirler. Sıradaki yuvarlağın içinde iletilmiş sonuçların hepsi toplanır. Bir sonraki yuvarlağa iletmek üzere işleme devam edilir.
  • Bu nöral ağlar, bir verisetini alıp, sallayarak tahmin yapıp, tahminleri ile doğru sonuçların arasındaki farka bakarlar. Tahminlerini nasıl iyileştirebileceklerini hesaplarlar. Bunu yaparken türev kullanırlar.
  • Sonra hesaplarına uygun olarak kendilerini, yani içlerindeki nöron ağırlıklarını yani çizgilerin kalınlıklarını değiştirirler.
  • Bunu binlerce resim için yüzbinlerce kez tekrar ettiklerinde, o işi çok başarılı şekilde yapabilen yapılara dönüşmüş olurlar.

Peki bunun Jedi’lıkla ne alakası var?

https://www.dji.com/mavic-air
  • Evinizde ışıkları açıp kaparken
  • Televizyonun kanalını değiştirirken
  • Bilgisayarda çizim yaparken
  • Oyun oynarken
  • Hoparlöre sesi kıs demek için
  • İçinde bulunduğunuz araçları yönetmek için
Thor (Film, 2011): Sizin atalarınız o şeyi büyü olarak adlandırırdı. Şimdi, siz, aynı şeyi bilim olarak adlandırıyorsunuz. Oysa benim geldiğim gezegende bu ikisi aynı şey.

--

--

Machine Learning Engineer at Primer AI | Sharing thoughts on computers and other geeky stuff

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ahmet Melek

Ahmet Melek

Machine Learning Engineer at Primer AI | Sharing thoughts on computers and other geeky stuff