Örnek: Kedi Tanıyan Yapay Zekâ

Collage of different cute cats — Stock Photo © belchonock #49762041

Wiggle Butt Academy | dog trainer

Understanding the fundamentals of Deep Learning | by Sudhir Ranjan | Medium

  1. Binlerce kedi fotoğrafı gösterilir.

  2. Binlerce köpek fotoğrafı gösterilir.

  3. Sistem ortak özellikleri öğrenir.

  4. Yeni fotoğraf geldiğinde tahmin yapar.

Bu süreç "ezberleme" değildir; örüntü öğrenmedir.

Bu görsel aslında bir yapay sinir ağının bir görüntüyü nasıl tanıdığını ve eğitim sırasında kendisini nasıl geliştirdiğini çok basit bir şekilde anlatıyor.

Görseli soldan sağa ve sonra alttan geri dönen eğitim döngüsüyle okuyabiliriz.

1. LABELS / IMAGES — Görseller ve etiketler

Görselin sol tarafında üç görüntü var:

  • 🐈 Turuncu kedi → CAT

  • 🐈 Siyah kedi → CAT

  • 🐕 Köpek → CUTE, BUT NO CAT

Burada iki önemli şey var:

Görüntü

Modelin inceleyeceği fotoğraf.

Etiket (Label)

Fotoğrafın doğru cevabı.

Örneğin:

Fotoğraf 1 → KEDİ
Fotoğraf 2 → KEDİ
Fotoğraf 3 → KEDİ DEĞİL

Yani bilgisayara:

"Bu fotoğrafın doğru cevabı budur."

diyoruz.

Bu nedenle bu örnek denetimli öğrenmeye (supervised learning) örnektir.


2. Fotoğraf bilgisayara nasıl giriyor?

Burada öğrencilerin en çok merak edeceği nokta burasıdır:

"Bilgisayar fotoğraftaki kediyi nasıl görüyor?"

Bilgisayar aslında bizim gördüğümüz gibi kedi görmez.

Fotoğraf bilgisayar açısından sayılardan oluşur.

Örneğin çok basitleştirirsek:

Fotoğraf
   ↓
Piksel değerleri
   ↓
0 - 255 arasındaki sayılar

Renkli bir görüntüde her piksel için genellikle kırmızı, yeşil ve mavi bileşenler bulunur.

Örneğin:

Piksel
R = 240
G = 180
B = 50

Dolayısıyla bilgisayarın karşısındaki şey aslında:

SAYILAR → SİSTEM → SİSTEM → SİSTEM

şeklindedir.


3. ALGORITHM — Yapay sinir ağı

Görselin ortasında büyük bir ağ görüyoruz.

Bu ağ:

Yapay sinir ağıdır.

Daireler nöronları, çizgiler ise nöronlar arasındaki bağlantıları temsil ediyor.

Basitleştirirsek:

Girdi
  │
  ▼
● ● ● ● ●
 \││││/
  \││/
   ▼
● ● ● ●
 \│││/
   ▼
  ●

Buradaki yapı:

Girdi katmanı
      ↓
Gizli katmanlar
      ↓
Çıkış katmanı

şeklinde düşünülebilir.


4. Görseldeki "Is this a line?", "Is this an eye?" ne demek?

Görselde şöyle ifadeler görüyorsunuz:

  • Is this a line?

  • Is this an eye?

  • Is this a nose?

  • Is this fur?

  • Is this an ear?

  • Is this a triangle?

  • Is this a circle?

Bunlar öğretici bir benzetmedir.

Yani gerçek bir sinir ağı gidip kelimenin tam anlamıyla:

"Bu göz mü?"

diye İngilizce soru sormaz.

Görsel, sinir ağının özellikleri aşama aşama öğrenmesini anlatmak için böyle bir gösterim kullanıyor.

Örneğin ilk katmanlarda daha basit özellikler:

Kenar
Çizgi
Renk
Şekil

gibi özellikler öğrenilebilir.

Daha sonraki katmanlarda:

Kulak
Göz
Burun
Tüy

gibi daha karmaşık özelliklere karşılık gelen örüntüler ortaya çıkabilir.

Son aşamada ise:

Bu özelliklerin birleşimi
          ↓
       KEDİ Mİ?

gibi bir sınıflandırma yapılabilir.


5. En önemli nokta: Ağırlıklar

Görselin alt kısmında:

Adjust Weights

ifadesi bulunuyor.

Burası yapay sinir ağının öğrenme mekanizmasının en önemli kısmını anlatıyor.

Her bağlantının bir ağırlığı (weight) vardır.

Çok basit düşünelim:

Girdi ──────► Nöron
              │
           Ağırlık

Bir bağlantının ağırlığı büyükse o girdinin modelin sonucuna etkisi daha fazla olabilir.

Örneğin model zamanla şunu öğrenebilir:

Bazı özellikler → kedi için önemli
Bazı özellikler → kedi için önemsiz

Bunu ağırlıkları değiştirerek gerçekleştirir.


6. Peki model ilk başta kediyi biliyor mu?

Hayır.

Eğitimin başında ağırlıklar uygun değerlere sahip değildir.

Bu nedenle model ilk başta saçma veya hatalı tahminler yapabilir.

Örneğin:

Gerçek cevap:
KEDİ

Model:
KEDİ DEĞİL

Burada hata vardır.


7. PREDICTION — Tahmin

Ağın sonunda bir çıkış nöronu bulunuyor.

Bu bölüm:

Prediction – Tahmin

aşamasını gösteriyor.

Yeni bir görüntü geldiğinde:

Fotoğraf
   ↓
Pikseller
   ↓
Sinir ağı
   ↓
Nöronlar
   ↓
Çıkış
   ↓
Kedi / Kedi değil

şeklinde ilerler.

Örneğin:

Fotoğraf
   ↓
MODEL
   ↓
KEDİ = %92
KÖPEK = %8

gibi bir sonuç ortaya çıkabilir.

Bu aşamaya forward pass (ileri geçiş) denir.


8. YES / NO neyi gösteriyor?

Görselde tahminin ardından:

YES / NO

bulunuyor.

Yani:

"Modelin tahmini doğru mu?"

diye kontrol ediliyor.

Örneğin:

Gerçek etiket → KEDİ

Model tahmini → KEDİ

       ↓

DOĞRU
       ↓
GOOD

Model doğru tahmin yaptıysa:

GOOD

ifadesiyle gösteriliyor.


9. Yanlış tahmin yaparsa ne oluyor?

İşte görselin en önemli kısmı burada.

Örneğin:

Gerçek → KEDİ

Model → KEDİ DEĞİL

Model hata yaptı.

Bunun üzerine:

Tahmin
  ↓
Gerçek cevapla karşılaştır
  ↓
Hata
  ↓
Ağırlıkları değiştir
  ↓
Modeli biraz daha iyi hale getir

süreci gerçekleşir.

Görselde aşağı doğru inen ve tekrar sinir ağına dönen ok tam olarak bunu anlatıyor.


10. "Adjust Weights" kısmı

Bunu öğrencilerinize şöyle anlatabilirsiniz:

İlk deneme

Fotoğraf → Model → KEDİ DEĞİL ❌

Model hata yaptı.

Ağırlıkları değiştir

Modelin bağlantılarındaki
ağırlıklar güncellenir.

İkinci deneme

Fotoğraf → Model → KEDİ ✅

Ama burada da önemli bir nokta var:

Model tek bir fotoğrafı doğru yaptı diye eğitim bitmez.

Binlerce veya milyonlarca örnek üzerinde bu işlem tekrar tekrar gerçekleştirilebilir.


11. Görsel aslında şu döngüyü anlatıyor

Görselin tamamını tek bir şemaya dönüştürürsek:

             EĞİTİM VERİSİ
          Görüntü + Etiket
                  │
                  ▼
          ┌──────────────┐
          │ YAPAY SİNİR  │
          │    AĞI       │
          └──────┬───────┘
                 │
                 ▼
              TAHMİN
                 │
                 ▼
       Gerçek cevapla karşılaştır
                 │
          ┌──────┴──────┐
          │             │
        DOĞRU          YANLIŞ
          │             │
          ▼             ▼
        GOOD       HATAYI HESAPLA
                        │
                        ▼
                  AĞIRLIKLARI
                    GÜNCELLE
                        │
                        └──────► Tekrar

İşte makine öğrenmesinin temel mantığı budur.


12. Bunu bir öğrenciye çok daha basit nasıl anlatabiliriz?

Ben derste şu örneği kullanmanızı öneririm.

Bir öğrenciye 1000 tane kedi ve köpek fotoğrafı gösterdiğinizi düşünün.

1. Göster

🐱 → KEDİ
🐶 → KÖPEK
🐱 → KEDİ
🐶 → KÖPEK

2. Model tahmin etsin

🐱 → KÖPEK ❌

3. Hatasını görsün

Gerçek → KEDİ
Tahmin → KÖPEK

4. Kendini ayarlasın

AĞIRLIKLAR → GÜNCELLENİR

5. Tekrar denesin

🐱 → KEDİ ✅

6. Bunu binlerce kez tekrarlasın

Tahmin
 ↓
Hata
 ↓
Ağırlıkları güncelle
 ↓
Tekrar tahmin
 ↓
Hata
 ↓
Ağırlıkları güncelle
 ↓
...

13. Buradaki en önemli kavram: "Model öğreniyor" ne demek?

Öğrencilerin kafasında şöyle bir yanlış düşünce oluşabilir:

"Bilgisayar kedinin ne olduğunu gerçekten anlıyor."

Aslında bunu böyle söylemek doğru olmaz.

Daha doğru ifade:

Model, kedi ve kedi olmayan görüntüler arasındaki matematiksel örüntüleri öğreniyor.

Yani:

İnsan:
"Bu bir kedi."

Bilgisayar:
"Bu görüntünün özellikleri,
eğitim sırasında öğrendiğim
kedi sınıfındaki örüntülere
benziyor."

14. Görseldeki bütün bölümleri Türkçeleştirelim

Görseldeki ifadeTürkçesiGörevi
Labels / Images        Etiketler / Görüntüler        Eğitim verileri
Algorithm        Algoritma        Öğrenme yöntemini uygular
Neuron        Nöron        Matematiksel işlem yapan birim
Prediction        Tahmin        Modelin ürettiği sonuç
Training        Eğitim        Modelin ağırlıklarını öğrenmesi
Adjust Weights        Ağırlıkları ayarla        Modeli güncelleme
Yes / No        Evet / Hayır        Tahmin doğru mu?
Good        İyi        Tahmin doğru

15. Öğrencilerinize tahtaya yazabileceğiniz en sade şekli

Bence bu görseli anlatırken tahtaya şunu çizmeniz yeterli:

       EĞİTİM VERİSİ
       🐱 🐱 🐶 🐱
            │
            ▼
      ┌───────────┐
      │   MODEL   │
      │ ● ● ● ● ● │
      │  ● ● ● ●  │
      │    ● ●    │
      └─────┬─────┘
            │
            ▼
          TAHMİN
            │
            ▼
     GERÇEK CEVAPLA
      KARŞILAŞTIR
            │
       ┌────┴────┐
       ▼         ▼
     DOĞRU      YANLIŞ
       │         │
       ▼         ▼
     DEVAM    AĞIRLIKLARI
              GÜNCELLE
                  │
                  └──────► TEKRAR


"Yapay zekâ ilk başta her şeyi bilmez. Tahmin yapar, tahminini gerçek cevapla karşılaştırır, yaptığı hataya göre modelin ağırlıklarını değiştirir ve bunu çok sayıda örnek üzerinde tekrar ederek daha iyi tahmin yapmayı öğrenir."

 


Yorumlar

Bu blogdaki popüler yayınlar

Pardus Üzerine Django Kurulumu

Mini Lab Uygulamaları (Python Temelleri)

Python ile Web Geliştirme: Django App Oluşturma