🕸
CNN'lerin Popüler Uygulamaları
Uygulama | Açıklama |
🧒👧 Yüz Doğrulama | Verilen görüntünün ve ID'nin aynı kişiye ait olup olmadığını bilmek |
👸 Yüz Tanıma | Giriş yüzü görüntüsüne ID atama |
🌠 Sinirsel Stil Aktarımı | Belirli bir görüntünün stilini öğrenerek bir görüntüyü diğerine dönüştürme |
Terim | Soru | Giriş | Çıkış | Problem Türü |
🧒👧 Yüz Doğrulama | Bu aranan kişi mi? 🕵️♂️ | Face image / ID | True / False | 1:1 |
👸 Yüz Tanıma | Bu kişi kimdir? 🧐 | Face image | K yüzünüz DB'deki ID'si | 1:K |
Bir örnekten (veritabanında sahip olduğumuz) kişiyi tekrar tanımayı öğrenmek
- Giriş resmini al
- DB'deki yüzlere ait olup olmadığını kontrol et(Söyelemesi kolay 🤭)
Giriş görüntüsü ile veritabanındaki görüntü arasındaki benzerliği hesaplamamız gerekir, bu nedenle:
- ⭕ Öyle bir fonksiyon kullan ki;
- similarity(img_in, img_db) = some_val
- 👷♀️ Eşik değeri belirle
- 🕵️♀️ Eşik değerini kontrol et ve çıkışı belirle
Yüz Doğrulama bağlamında kullanılan bir CNN, iki görüntüyü girdi olarak alır, konvolüsyonlar uyguladıktan sonra her görüntüden bir özellik vektörü hesaplar, aralarındaki farkı hesaplar ve daha sonra çıkışı verir.
Başka bir deyişle: verilen resmi kodluyor

Mimarisi:

Ağı bir çapa (anchor) (baz) resim A alarak ve hem pozitif bir P hem de negatif bir N örneği ile karşılaştırarak eğitebiliriz. Böylece:
- 🚧 Çapa resmi ile pozitif resim arasındaki benzeşmezlik (dissimilarity) düşük olmalıdır
- 🚧 Çapa resmi ile negatif resim arasındaki benzeşmezlik (dissimilarity) yüksek olmalıdır
Yani:
Kayıp denklemine başka bir hiper-parametre olan kenar payı margin adlı değişken eklenir. Kenar payı, benzeşmezliğin ne kadar olması gerektiğini, yani eğer margin = 0.2 ve d(a, p) = 0.5 ise, d (a, n) en az 0.7'ye eşit olmalıdır. Kenar payı, iki görüntüyü daha iyi ayırt etmemize yardımcı oluyor 🤸♀️
Bu nedenle, bu kayıp fonksiyonunu kullanarak:
- 👩🏫 Gradyanları hesaplayabiliriz ve gradyanların yardımıyla,
- 👩🔧 Siamese ağının ağırlıklarını ve yanlılıklarını güncelleyebiliriz.
Ağı eğitmek için de:
- 👩🏫 Çapa görüntüsü alıyoruz ve pozitif ve negatif görüntüleri rastgele örnekleriz ve kayıp fonksiyonunu hesaplarız
- 🤹♂️ Gradyanları güncelliyoruz
Bir içerik görüntüsü C (content) ve stil görüntüsü S (style) vererek bir G görüntüsü oluşturma

Bu nedenle G'yi üretmek için NN'miz S'nin özelliklerini öğrenmeli ve C'ye uygun filtreler uygulamalı.
Genellikle istenen performansı elde etmek için NN'nin parametrelerini -ağırlıklarını ve yanlılıkların- optimize ediyoruz, burada Sinirsel Stil Aktarımı'nda rastgele piksel değerlerinden oluşan boş bir görüntüden başlıyoruz ve görüntünün piksel değerlerini değiştirerek bir maliyet maliyet fonksiyonunu optimize ediyoruz 🧐
Başka bir deyişle, biz:
- ⭕ Rastgele piksellerden oluşan bir resimle başlıyoruz
- 👩🏫 Bir maliyet J fonksiyonunu tanımlıyoruz
- 👩🔧 Maliyet fonksiyonunu azaltmak için iteratif bir şekilde pikselleri güncelliyoruz
Uzun lafın kısası: NN'leri eğitirken ağırlıkları ve bias'ları güncelleriz, ancak stil aktarımında ağırlıkları ve bias'ları sabit tutarız ve bunun yerine imajımızı güncelleriz 🙌
J'yi aşağıdaki şekilde tanımlayabiliriz:
Açıklama:
- G ie C arasındaki benzerliği ifade eder
- G ile S arasındaki benzerliği ifade eder
- α ve β hiper-parametrelerdir