Bir cümlelik özet
Bir makine öğrenmesi modeli, örüntüleri eğitim verisiyle öğrenir ve gerçekten öğrenip öğrenmediğini daha önce görmediği test verisiyle sınarız.
Neden önemli?
Bir önceki derste, makine öğrenmesinin bir programın örneklerden örüntü çıkarması olduğunu görmüştük. Peki bir modelin gerçekten işe yaradığını nereden biliriz?
Bunu bir sınava benzetebiliriz. Yıl boyunca soru çözerek çalışırsın. Ama öğretmenin sınavda aynı soruları değil, yeni soruları sorar. Çünkü amaç, o soruların cevaplarını ezberlemen değil, konuyu anlaman ve yeni sorulara uygulayabilmendir.
Makine öğrenmesinde de aynı fikir vardır. Bir modeli örneklerle eğitiriz, sonra onu daha önce görmediği örneklerle sınarız. Eğer verileri ikiye ayırmazsak, modelin gerçekten öğrenmiş mi yoksa sadece cevapları ezberlemiş mi olduğunu asla anlayamayız. Bu, yapay zekânın dürüst şekilde değerlendirilmesinin temelidir.
Eğitim verisi ve test verisi nedir?
Elimizdeki örnekleri (veriyi) genelde iki parçaya ayırırız.
Eğitim verisi (öğrenmek için)
Eğitim verisi, modelin örüntüleri öğrenmek için kullandığı örneklerdir. Model bu örnekleri defalarca görür ve aralarındaki ilişkiyi bulmaya çalışır.
Örneğin bir modele yüzlerce köpek ve kedi fotoğrafı gösterip her birinin ne olduğunu söylersek, model kulak, burun ve tüy gibi örüntüleri fark etmeye başlar. Bu fotoğraflar eğitim verisidir.
Test verisi (denemek için)
Test verisi, modelin daha önce hiç görmediği ve öğrenirken kullanmadığımız örneklerdir. Modeli bu yeni örneklerle sınarız ve ne kadar doğru tahmin yaptığına bakarız.
Test verisini bir kenara ayırıp saklarız. Model öğrenirken bu örneklere bakmaz. Böylece test, adil bir sınav gibi olur.
Kısa kural: Test verisi, eğitimde kullanılmayan verilerdir. Karışırlarsa sınav dürüst olmaz.
Neden ayrı olmalı? Ezberleme sorunu
Bir modeli sadece gördüğü örneklerle sınarsak yanıltıcı bir sonuç alırız.
Ezberlemek ile öğrenmek farklıdır
Diyelim ki bir arkadaşın matematik testine, cevap anahtarını ezberleyerek hazırlandı. Aynı testi tekrar verirsen tam puan alır. Ama sorular biraz değişince ne yapacağını bilemez. Aslında konuyu öğrenmemiş, sadece cevapları ezberlemiştir.
Makine öğrenmesinde buna aşırı uydurma (İngilizcesi *overfitting*) denir. Model eğitim örneklerini âdeta ezberler; onlarda çok başarılı olur ama yeni örneklerde başarısız olur. Test verisini ayrı tutmak, bu tuzağı fark etmemizi sağlar.
Günlük hayattan iki örnek
Örnek 1 — Sınava çalışmak: Deneme sorularını çözerek çalışırsın (eğitim verisi). Gerçek sınavda yeni sorular çıkar (test verisi). Deneme sorularının cevaplarını ezberlemek, gerçek sınavda pek işe yaramaz.
Örnek 2 — Meyve tanımak: Küçük bir çocuğa yalnızca kırmızı elmaları gösterip “bu elma” dersen, yeşil bir elmayı görünce şaşırabilir. Farklı örnekler görmeden öğrenmek eksik kalır. Test verisi, tam da bu farklı örnekleri kontrol etmemizi sağlar.
Doğruluk (accuracy) nedir?
Modelin test verisinde ne kadar başarılı olduğunu ölçmenin basit bir yolu doğruluktur.
Doğruluk şu şekilde hesaplanır:
Doğruluk = Doğru tahmin sayısı / Toplam tahmin sayısı
Örneğin model 10 test örneğinden 8’ini doğru tahmin ederse doğruluk 8 / 10 = 0,8 yani yüzde 80’dir.
Basit bir deney: Meyveyi ağırlığına göre tahmin et
Diyelim ki elimizde meyvelerin ağırlıkları var ve basit bir kuralla tahmin yapacağız: ağırlık 200 gramın altındaysa elma, değilse portakal diyelim. Bu gerçek bir model değildir; sadece elle seçtiğimiz basit bir kuraldır. Bu kuralı test verisinde deneyip doğruluğunu ölçelim.
# Test verisi: (agirlik_gram, gercek_meyve)
test_verisi = [
(150, "elma"),
(180, "elma"),
(250, "portakal"),
(300, "portakal"),
(210, "portakal"),
]
# Basit kural: 200 gramdan hafifse elma, degilse portakal
def tahmin_et(agirlik):
if agirlik < 200:
return "elma"
return "portakal"
dogru = 0
for agirlik, gercek in test_verisi:
if tahmin_et(agirlik) == gercek:
dogru += 1
dogruluk = dogru / len(test_verisi)
print("Dogru tahmin:", dogru, "/", len(test_verisi))
print("Dogruluk:", dogruluk)
Bu kısa deneyde bir model eğitmedik; sadece basit bir kuralı test verisinde denedik ve doğruluğunu saydık. Yine de asıl fikir aynıdır: modeli daha önce görmediği verilerle sınayıp doğruluğunu ölçmek. Doğruluk her zaman tek başına yeterli değildir, ama başlamak için kolay ve dürüst bir ölçüdür.
Mini uygulama
Bir arkadaşınla küçük bir “sınav” tasarlayın.
- Bir kâğıda 10 kısa genel kültür sorusu ve cevabını yazın. Bunlar eğitim verisi olsun.
- Arkadaşın bu 10 soruyu ezberleyene kadar çalışsın.
- Şimdi aynı konudan yeni 5 soru hazırlayın. Bunlar test verisi olsun.
- Arkadaşın yeni 5 soruyu cevaplasın ve doğruluğu hesaplayın: doğru sayısı bölü 5.
Sorular gerçekten öğrenildiyse yeni sorularda da başarı yüksek olur. Eğer arkadaşın sadece ilk 10 cevabı ezberlediyse yeni sorularda zorlanır. İşte eğitim ve test verisini ayırmanın nedeni budur.
Uygulama laboratuvarı: Eğitim Verisi ve Test Verisi
Eğitim Verisi ve Test Verisi konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Eğitim verisi ve test verisi nedir? ile Test verisi (denemek için) arasındaki ilişkiyi kullanarak temizlenmiş küçük veri tablosu, açık sınıflandırma kuralı ve hata değerlendirmesi hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.
Görev senaryosu
Şu senaryoyu ele al: sensör ölçümlerindeki eksik ve sıra dışı değerleri ayıklama. Dersin ana hedefi “Eğitim ve test verisinin neden ayrıldığını ve doğruluk kavramını öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.
- Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
- En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
- Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
- Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
- Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.
Başarı ölçütleri
- Verinin kaynağı ve amacı açık mı?
- Eksik, tekrar eden ve sıra dışı değerler işaretlendi mi?
- Kişisel bilgi kullanılmadan örnek kurulabiliyor mu?
- Eğitim ve test verisi birbirinden ayrıldı mı?
- Yanlış tahminler saklanıp nedenleri incelendi mi?
“Eğitim Verisi ve Test Verisi” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın sensör ölçümlerindeki eksik ve sıra dışı değerleri ayıklama senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Eğitim verisi ve test verisi nedir? ve Test verisi (denemek için) ilişkisini daha küçük adımlara bölerek düzelt.
Sık yapılan hatalar
Test verisini eğitimde de kullanmak
Aynı örnekleri hem öğretip hem sınarsan sonuç yanıltıcı olur. Model o örnekleri gördüğü için yüksek puan alır, ama bu gerçek başarıyı göstermez. Test verisi ayrı ve gizli kalmalıdır.
Çok az veriyle karar vermek
Sadece 2–3 örnekle sınama yapıp “model harika” demek doğru olmaz. Ne kadar çok ve çeşitli test örneği olursa, sonuç o kadar güvenilir olur.
Yüksek doğruluğu her şey sanmak
Yüzde 100 doğruluk her zaman iyi haber değildir; bazen modelin sadece ezberlediğini gösterir. Doğruluğu daima yeni, görülmemiş veride kontrol etmek gerekir.
Test ve eğitim örneklerinin benzer olmamasına dikkat etmemek
Sadece kırmızı elmalarla eğitip yeşil elmalarla test edersen düşük doğruluk şaşırtıcı olmaz. Veriler gerçek dünyayı yansıtmalıdır.
Güvenlik notu
- Bir modeli eğitmek veya test etmek için kişisel bilgileri (kendine ya da başkasına ait isim, adres, telefon, fotoğraf) çevrim içi araçlara yükleme. Deneylerinde ağırlık, sayı gibi kişisel olmayan örnekler kullan.
- Yapay zekâ araçlarını bir yetişkinin rehberliğinde ve platformların yaş kurallarına uyarak kullan.
- Doğruluk yüksek olsa bile model hata yapabilir ve yanılabilir. Önemli bir karar için modelin çıktısını tek başına kabul etme; bir yetişkinle birlikte kontrol et.
- Unutma: Yapay zekâ sihir değildir; sadece verideki örüntüleri bulan bir araçtır. Onu nasıl kullandığımızdan ve hangi veriyi verdiğimizden biz insanlar sorumluyuz.
Ders özeti
- Eğitim verisi modelin öğrenmek için kullandığı örneklerdir; test verisi ise daha önce görmediği sınama örnekleridir.
- Veriyi ayırmazsak, modelin öğrendiğini mi yoksa ezberlediğini mi anlayamayız.
- Eğitim örneklerini ezberleyip yeni örneklerde başarısız olmaya aşırı uydurma (overfitting) denir.
- Doğruluk, doğru tahminlerin toplam tahminlere oranıdır ve model her zaman görülmemiş veride sınanmalıdır.
- Kişisel veriyi çevrim içi araçlara yükleme ve önemli sonuçları bir yetişkinle doğrula.
Kontrol soruları
- Eğitim verisi ile test verisi arasındaki temel fark nedir?
- Test verisini neden eğitimde kullanmayız?
- Aşırı uydurma (overfitting) ne demektir? Bir örnek ver.
- Bir model 20 test örneğinden 15’ini doğru bilirse doğruluğu nedir?
- Bir arkadaşın “Modelim eğitim verisinde yüzde 100 doğru” diyor. Bu, modelin harika olduğunu kanıtlar mı? Neden?
Cevaplar
- Eğitim verisi modelin öğrenmek için kullandığı örneklerdir; test verisi ise öğrenirken görmediği, adil bir sınav için ayrılan örneklerdir.
- Çünkü aynı örneklerle hem öğretip hem sınarsak sonuç yanıltıcı olur; model o örnekleri gördüğü için yüksek puan alır ama gerçek başarısını göstermez.
- Aşırı uydurma, modelin eğitim örneklerini ezberleyip onlarda çok başarılı olması ama yeni örneklerde başarısız olmasıdır. Örneğin sadece cevap anahtarını ezberleyip yeni sorularda zorlanmak.
- Doğruluk = 15 / 20 = 0,75 yani yüzde 75.
- Hayır, kanıtlamaz. Eğitim verisindeki başarı, modelin ezberlemiş olmasından kaynaklanıyor olabilir. Gerçek başarıyı görmek için görülmemiş test verisinde denemek gerekir.
Kaynak ve doğrulama notu
“Eğitim Verisi ve Test Verisi” dersi için doğrulama odağı Eğitim verisi ve test verisi nedir? ile Test verisi (denemek için) arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Bu modüldeki veri kümeleri eğitim amaçlı ve küçüktür; gerçek kişisel veri kullanılmamalıdır. Bir yapay zekâ sonucunun doğruluğu kadar, verinin dengesi, hataların dağılımı ve açıklanabilirliği de değerlendirilmelidir.
Sonraki ders
Hatalı ve Yanlı Veri: Verinin eksik, hatalı veya yanlı olması modelin sonuçlarını nasıl etkiler ve bunu fark etmek için nelere dikkat ederiz?