Olasılık ya da Yapay Zekanın Matematiksel Temelleri – 6

Önceki yazının linki şöyle dursun.

Evet, yazı dizisinin asli hedefine geldik. Hikayenin önceki bölümleri şimdi söyleyeceklerimin yolunu yapmak içindi, bugün önceki bölümlerden aldığımız destekle yapay zekanın teorik çerçevesini ve bu çerçevenin temel inceliklerinden birisini anlama vaktidir.

Elimizde tahmin etmeye çalıştığımız bir $y$ değişkeni ve tahmin için kullanacağımız bir $x$ değişkeni olsun. Mesela insanların boyuna ($x$) bakarak kilosunu ($y$) tahmin etmeye çalışıyor olabiliriz. Tabii tam tersi de olabilirdi, ve pek tabii sadece bir değişkene bakarak iyi tahminler yapmak zordur çoğunlukla elimizde birden fazla değişken olur, bu durumda $x$’i $$x=(x_1, \dots, x_n)$$ olarak görerek yolumuza devam edebiliriz.

Elbette insanların boyuna bakıp kilosunu tam tamına doğru bilmeyiz, sadece boya değil yaşa, cinsiyete, göz rengine, kaş uzunluğuna da baksak mümkünü yok doğru cevabı bulamayız. Hatta daha kötüsünü söyleyeyim, hiç tahminle falan uğraşmayıp insanları tartıya çıkartsak yine bütün sonuçlarımızı doğru olmaz, çünkü mesela kimisini sabah saatlerinde kimisini akşam saatlerinde tartacağımız için bazı insanlar “gerçek” kilosundan düşük bazıları da “gerçek” kilosundan fazla çıkardı. Sabah akşam işini çözsek, kimisi yemek yer gelir, kimisi aç gelir ondan şaşardık. Açlık tokluğu çözsek de elbet başka bir sorun olurdu. Çok zorlarsanız kuantuma kadar sündürürüm – hep kişisel gelişimciler, enerji bükücüler yiyecek değil ya bunun ekmeğini – öyle ya böyle gerçeği her zaman tam olarak bilmemiz mümkün değildir diyebilirim. Bu yüzden $x$ ile $y$ arasında ilahi bir bağ olup, $x$’e bakarak $y$’yi bilmenin bir yolu olsa bile biz bunun sonuçlarını elimiz mahkum bir hata payıyla görebiliriz ve dolayısıyla bu durumun matematiksel modeli $$y=f(x) + \epsilon$$ şeklindedir. Burada $f$, $x$’e bakıp $y$’yi bulmanın yolunu temsil eden fonksiyonu, $\epsilon$ ise ne kadar kendimizi paralarsak paralayalım kurtulamayacağımız hatayı temsil eder. Pratikte bırakın $f$’i bulmayı, $f$’in varlığı bile şüphelidir. Misal önceki bölümlerde bahsettiğimiz torbadan bir top çekip torbada kaç top vardır bilmeye çalışma sorusunda ortada bulunabilecek bir $f$ yoktur. Ama çok büyük dert değil, hatırlayacağınız gibi bu durumda bile tahmin yapmak ve yapılan tahminlerin başarısını ölçmek mümkün. Yapay zeka uygulamalarının hedefi gerçek $y$ değerlerini “iyi” tahmin eden $T(x)$ diye gösterdiğimiz tahmin modelleri bulmaktır. Ne yaparsak yapalım $\epsilon$ kadar bir hata kaçınılmaz olduğu için $T$ gerçek $y$ değerlerini değil $f$ fonksiyonunu tahmin etmeye çalışmaktadır aslında. O yüzden artık gerçek dediğim şey, gerçeğin bir izdüşümü olan $f(x)$ değerleri olacak.

Önceki hikayelerde tahmin modellerinin ne kadar iyi olduğunu ölçmeye yarayan farklı farklı kriterlerden bahsettim, bunlardan iki tanesi hem teorik hem pratik sebeplerden çok önemlidir. Birincisi tahminlerin, gerçeğe ortalamada ne kadar yakın olduğu. Bu $T(x)-f(x)$ değerlerinin ortalama değeriyle, yani beklentisiyle ölçülür, adına yanlılık (İngilizcesi bias) denir, detaylar için bakınız bu serinin önceki yazıları: $$\text{Yanlılık }=E(T(x)-f(x)).$$ İkincisi bir tahmin modelinin verdiği sonuçların ne kadar dağınık olduğudur, buna da modelin varyansı denir, $Var(T(x))$ olarak gösterilir. Bunlarla ilgili en sevdiğim (ve internette görselini bulabildiğim) benzetme, ortasında küçük kırmızı bir daire olan hedef tahtasına atış yapma örneğidir. Yanlılık, atışların ortalamasının kırmızı noktaya ne kadar yakın olduğunu ölçer. Varyans ise atışların ne kadar küçük bir bölgede yoğunlaştığını.

var_bias

Yukarıdaki görselde, sol üstte hem yanlılığı hem varyansı düşük atışlar görülüyor, sağ üstte ise yanlılığı düşük ama varyansı yüksek atışlar. Sol alt yanlılığı yüksek varyansı düşük, sağ altin hem yanlılığı hem varyansı yüksek. Elbette tahminlerimizin sol üstteki gibi olmasını isteriz, hem hedefe ortalama uzaklığımız düşük olsun hem de tahminlerimiz bir oraya bir buraya dağılmasın.

Peki bu ne kadar mümkün? Matematiğin matematikliğini gösterdiği nokta burası, önceki yazılarda tanıttığım ortalama hata kareleri toplamı, beklenti gibi kavramları enine boyuna çalışınca aşağıdaki sonuca ulaşmak zor değil: $$ \text{Ortalama Hata Kareleri} = \text{ Yanlılık }^2 + \text{ Varyans } + \epsilon^2$$ Bu formül bize herhangi bir tahmin modelinin hatasının iki ana parçaya, yanlılık ve varyans, ayrıldığını söylüyor, geriye kalan $\epsilon^2$ zaten ne yapsak kurtulamayacağımız hata miktarı. Dahası pratikte yapay zeka uygulamalarının pratikte karşılaştığı temel bir ikileme işaret ediyor; hem yanlılığı hem varyansı aynı anda azaltmak mümkün değil ve genellikle yanlılıktan biraz fedakarlık edince varyans epeyce iyileşiyor.

Pratikte bir yapay zeka uygulaması geliştirmek için elinizde bir veriseti olur, buna eğitim verisi denir. Bu eğitim verisiyle eğittiğiniz bir yapay zeka modelini gerçek hayata salıp, başarılı olmasını umarsınız. Modelin gerçekte ne kadar hata yapacağını bilmeniz ise imkansızdır, sadece elinizdeki veri setine dayanarak hatayı da tahmin edersiniz. Hah, işte modelinizin yanlılığı düşük olsun derseniz, o zaman elinizdeki veri setinin her bir tarafındaki en olmadık durumları bile modele dahil etmeniz, haliyle modelin karmaşıklığını arttırmanız gerekir. Fakat bu durumda da model gerçek hayatta eğitim verisine benzemeyen durumlarla karşılaştığı için varyansı artar. Bu yüzden yapay zekayı gerçek hayata salınca başarılı olmasını istiyorsanız, yanlılığı düşüreceğim diye modele eğitim verisini ıncık cıncık öğretmemek gerekir, ezberci sistem her alanda kötü. Onun yerine modelin biraz yanlı karar vermesine izin vererek, varyansını düşük tutmak genel olarak makbul yöntemdir. Aşağıdaki görsel uzun uzun anlattığım bu hikayenin kısa temsilidir.

biasvariance

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>