Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Murat Karakaya tarafından sunulan bir eğitim içeriğidir. Konuşmacı, yapay zeka ve makine öğrenmesi konularında Türkçe ve İngilizce içerikler hazırlayan bir akademisyendir.
- Videoda, Türkçe dua ve beddua sınıflandırması için dört farklı neural network modelinin geliştirilmesi ve karşılaştırılması ele alınmaktadır. İçerik, metin temsil etme yöntemleri (one hot encoding, integer kodlama, word embedding), corpus oluşturma, tokener kullanımı ve veri ön işleme adımlarını detaylı olarak göstermektedir. Ayrıca, kelimelerin sekiz boyutlu vektörlere dönüştürülmesi ve bu vektörlerin üç boyutlu uzaya projeksiyonu ile PCA ve TS metodu kullanılarak kelimelerin pozitif ve negatif anlamlı olarak sınıflandırılması da gösterilmektedir.
- Konuşmacı, veri setinin çok az sayıda olduğu için sonuçların genel geçer kurallar olarak düşünülmemesi gerektiğini vurgulamakta ve beşinci bir model olarak ethereal layer'ı da kullanmayı tavsiye etmektedir. Video, TensorFlow'un Project Tensorboard kullanarak word embedding ağırlıklarını görselleştirme yöntemi de içermektedir.
- Metin Sınıflandırma Görevi
- Bu videoda metin sınıflandırma (duygu analizi) görevi yapılacak ve bir metnin dua mı yoksa beddua mı olduğunu anlayacak yapay zeka uygulaması geliştirilecek.
- Neural network kullanılarak dört farklı model geliştirilecek ve bu modellerin farklılıkları ve avantajları gösterilecek.
- Örneğin "yüz gün görmesin" ifadesi için dört modelden ikisi beddua, diğer ikisi dua olarak tahmin yaparken, "evlerin dert görmesin" ifadesi için tüm modeller yüksek güvenilirlikle dua olarak sınıflandırmış.
- 02:13Text Categorization Yöntemleri
- Metin sınıflandırması yapmak için textin sayısal olarak gösterilmesi gerekiyor ve bunun için farklı yöntemler kullanılıyor.
- One hot encoding yönteminde her kelime bir vektör ile temsil edilir, ancak çok boyutlu olması nedeniyle hafıza ve işlem gerektirir ve başarımı düşürür.
- Her kelimeyi integer ile kodlama yöntemi de kelimeler arasındaki gerçek ilişkileri tam olarak temsil etmediği için yüksek başarı sağlayamaz.
- 04:00Word Embedding
- Word embedding, yukarıdaki iki yöntemin dezavantajlarından dolayı önerilen üçüncü bir yöntemdir.
- Keras içinde gelen word embedding katmanı her kelimeyi bir vektörle gösterir ve bu vektörün boyutunu kullanıcı seçebilir.
- Model eğitilirken vektördeki reel sayılar otomatik olarak değişir, benzer kelimeler uzayda yakın noktalara, ilgisiz kelimeler ise uzak noktalara yerleşir.
- 05:46Veri Hazırlığı
- Dua ve beddua örnekleri internetten arama yapılarak toplanmış ve GitHub üzerinden paylaşılacak.
- Toplamda 177 dua ve 801 beddua bulunmuş, ancak sınıfların dengesini sağlamak için sadece 177 beddua kullanılmış.
- Veriler test ve train olarak ikiye ayrılmış, toplamda 354 cümle ve 662 farklı kelime bulunmuş.
- 07:55Veri Ön İşleme
- Tokener modülü kullanılarak tüm kelimeler için indeks oluşturulmuş ve kelimeler küçük harfe dönüştürülmüş, noktalama işaretleri çıkarılmış.
- Cümlelerin maksimum uzunluğu 8 kelime olduğu için, daha kısa cümlelerin sonuna sıfır (pad) değeri eklenerek tüm cümleler 8 kelime uzunluğunda hale getirilmiş.
- Bu şekilde her cümle 8 kelime (rakam) içeren bir dizi haline getirilmiş ve test/train verileri encode edilmiş halde hazır hale getirilmiş.
- 10:51Neural Network Modeli ve Performansı
- Model, girişte 8 uzunluğundaki cümleleri (8 tane integer) alarak dance layer'ları kullanıyor ve sonunda bir ya da sıfır olarak sonuç döndürüyor.
- Model adam optimizer ile ve binary cross entropy ile compile ediliyor, çünkü binary classification yapılıyor.
- Model 19 bin parametre içeriyor ve test datası üzerinde %35 civarında doğruluk elde ediyor.
- 12:13Veri Seti Sorunları
- Veri seti oldukça az sayıda örnek içeriyor: 320 train data ve 34 test data, bu metin tipi bir çalışmada kabul edilemez seviyede az.
- Çalışmanın amacı büyük başarılar elde etmek değil, farklı modeller arasındaki farkı görmek.
- Vanilya neural network kullanıldığında başarı parlak değil.
- 13:13Word Embedding Kullanımı
- Word embedding, her kelimenin nasıl bir vektörle gösterileceğini model eğitilirken dinamik olarak öğreniyor.
- Word embedding kullanıldığında model %85 gibi bir başarı elde ediyor ve sadece 7.500 parametre kullanıyor.
- Bu model, girdilerin dinamik olarak encode edilmesini sağlıyor.
- 14:49LSTM Kullanımı
- LSTM (Long Short-Term Memory), bir kelimenin kendisinden önce gelen diğer kelimelerle olan ilişkisini hafızada tutabiliyor.
- LSTM kullanıldığında %91 gibi bir başarı elde ediliyor.
- LSTM, word embedding'e göre modeli güçlendiriyor.
- 15:551D Convolutional Layer Kullanımı
- 1D convolutional layer, text'in 1 boyutlu çıktısını kullanarak kelimelerin birbiriyle olan ilişkisini yakalayabiliyor.
- 1D convolutional layer kullanıldığında %85 gibi bir başarı elde ediliyor.
- Global max pooling, kelimelerin içinde geçen anlamı yakalamayı ve abstract seviyeye çıkmayı sağlıyor.
- 17:31Model Karşılaştırması ve Öneriler
- 1D convolutional layer %85, LSTM %91, sadece word embedding %85, sadece neural network %35 başarı elde ediyor.
- Literatürde word embedding + LSTM en başarılı model olarak kabul ediliyor.
- Son zamanlarda embedding + convolution + attention layer kullanmak günümüzdeki en iyi uygulama olarak görülüyor.
- 18:47Model Test Etme
- "Gözlerin dert görmesin" cümlesi dört model tarafından tümüyle dua olarak tanımlandı.
- "Kör ol inşallah" cümlesi tüm modeller tarafından beddua olarak tanımlandı.
- "Kısmetin yok olsun" cümlesi tüm modeller tarafından yanlışlıkla dua olarak tanımlandı.
- 21:58Word Embedding Görselleştirme
- Model içindeki embedded layer'ın ağırlıkları dosyaya kaydedilebilir.
- TensorFlow.org adresindeki web sitesi kullanılarak kelimelerle temsil eden vektörlerin ilişkisi görselleştirilebilir.
- 23:18Kelime Vektörlerinin Görselleştirilmesi
- Her kelime sekiz boyutlu bir vektör olarak temsil edilir ve PCA kullanılarak üç boyuta indirgenir.
- Görselleştirilen kürenin iki tarafı farklı anlamlı kelimeleri içerir: bir taraf pozitif, diğer taraf negatif anlamlı kelimeleri içerir.
- Model cümlelerin içindeki kelimelerin olumlu ve olumsuz anlamlarını tespit edebilmektedir.
- 26:28TS Metodu ile Görselleştirme
- TS metodu, kelimeleri ikiye ayırarak pozitif ve negatif anlamlı kelimeleri farklı bölgelere toplar.
- Model, kelimelerin birbiriyle olan ilişkilerini gösteren ağırlıkları rastgele değil, kelimelerin anlamlarına göre bulmuştur.
- World embedding'in en büyük gücü, kelimelerin birbiriyle olan ilişkilerini gösteren ağırlıkları bulabilmesidir.
- 28:27Metin Sınıflandırması
- Dört farklı model eğitilmiştir: normal neural network, world embedding kullanan neural network, world embedding ve RDM kullanan, world embedding ve bir boyutlu convolution kullanan network.
- Bu modeller cümlelerin pozitif/negatif, dua/beddua olduğunu sınıflandırabilir.
- Video, metin sınıflandırmasının nasıl yapıldığını ve metni nasıl encode etmeniz gerektiği konusunda bilgi vermektedir.