şükela:  tümü | bugün
106 entry daha
  • gelin sizlere bu uygulamanın nasıl çalıştığını oldukça basite indirgeyerek anlatmaya çalışayım.

    bu uygulama teknik olarak "machine learning" yani "makina öğrenmesi" kullanıyor. spesifik olarak ise "generative adversarial network" ya da kısaca gan kullanıyor. adı üstünde gan'lar sıfırdan veri üretiyor ve ürettiği verileri orjinal veri setindeki verilere benzetmeye çalışıyor.

    peki nasıl oluyor da bu kadar doğal fotoğraflar üretilebiliyor?

    gan ağları 2 farklı ağdan oluşur. 1. ağ veri üretir, 2. ağ ise bir verinin gerçek mi yoksa yapay mı olduğunu ayırt etmeye çalışır. bu 2 ağ, birbiriyle kıyasıya bir yarış içinde eğitilirler. veri üreten ağ gerçeğe yakın veri üretmeye çalışıp 2. ağı kandırmak üzere eğitilirken 2. ağ da tahmin yeteneklerini güçlendirip kendisine verilen verilerin gerçek mi yoksa sahte mi olduğuna daha iyi anlamak için eğitilir.

    belli bir süre geçtikten sonra 1. ağ veri üretmede o kadar iyi hale gelir ki 2. ağ üretilen bu verinin gerçek mi yoksa sahte mi olduğunu anlayamaz. bu noktada ağların eğitimi tamamlanır ve 1. ağ artık oldukça gerçekçi veriler üretmeye hazırdır.

    işin etkileyici yanı ise, bir gan oluşturmak için uygulama alanına dair teknik bilgi bilmeye gerek yoktur. tek gereken yeterli sayıda veridir. faceapp uygulamasında ise tek gereken yeterli sayıda ve çeşitte yüz resmidir. kapsamlı bir veri seti oluşturduktan sonra yeni yüzler yaratmak için başka hiçbir bilgiye veya veriye ihtiyaç duymazsınız.

    "peki madem gan dediğimiz şey resim üretiyor, nasıl oluyor da faceapp sıfırdan resim yaratmak yerine bizim verdiğimiz bir resmi alıp onu değiştiriyor?" diye sorabilirsiniz. yukarıda anlattığım algoritma gan ağlarının genel çalışma mantığıdır. nispeten yeni bir teknik olduğu için yoğun olarak araştırılan ve yüzlerce çeşidi olan bir ağdır gan. faceapp gibi bir uygulama yapabilmek için mevcut algoritmayı biraz değiştirmeniz yeterli olacaktır. örnek olarak aşağıdaki gibi bir süreçle faceapp gibi sonuçlar elde edebilirsiniz.

    1- örneğin yaşlılık filtresini ele alalım. güzel bir gan için yüzbinlerce, hatta milyonlarca yaşlı insan yüzü içeren veri setimizi oluşturduk.

    2- sıfırdan yaşlı üretebilen bir gan ağı eğittik.

    3- eğittiğimiz ağı biraz değiştirerek verilen bir resmin üstünde oynama yaptırarak yaşlandırmaya çalışacağız. bunun için 2 kritere bakarak eğitebiliriz:
    a) resmi değiştir ama değişen resim orjinal resme mümkün olduğu kadar benzesin, bu sayede üretilen resimler resmin sahibine benzemek zorunda olacak.
    b) değiştirilen resimi gan'ın 2. ağı yapay olarak algılamasın, gerçek olarak algılasın, yani yaşlandırılmış resim doğal dursun, yapay durmasın.
    3- bu ayarlarda 2 ağı karşılıklı eğitip yeni bir tür gan elde edelim.

    bu şekilde faceapp gibi sonuçlar alabiliriz. ama fark ettiyseniz sadece yaşlılık filtresi yaptık. diğer filtreler için ayrı veri setleri ve ayrı ağlar eğitmemiz gerekecek. o yüzden yeni bir filtre eklemek biraz zahmetli bir işlem.

    gan dediğimiz ağların diğer kullanım alanları için ise aşağıdaki linke bakabilirsiniz
    https://machinelearningmastery.com/…arial-networks/
237 entry daha