4. Fonksiyonlar

    MatematikTemel Analiz

    Alışveriş tutarını hesaplayan basit bir kural ile bir yapay zekâ modelinin veriden tahmin üretmesi aynı fikre dayanır: fonksiyon. Fonksiyon, her girdiyi belirli bir kurala göre bir çıktıyla eşleştirir. Bu yazıda gündelik örneklerle başlayıp fonksiyonların nasıl gösterildiğini, tanım ve görüntü kümelerini ve grafiklerle ilişkisini inceleyeceğiz. Ardından parçalı ve ters fonksiyonlara, bileşke işlemine ve birden fazla girdili fonksiyonlara adım adım geçeceğiz.

    Fonksiyon Fikriyle Zaten Karşılaştık

    Markette aldığınız ürünün ağırlığı ve kilogram fiyatı kasaya girilir, ödeyeceğiniz tutar hesaplanır. Kahve makinesi seçiminize ve ödediğiniz paraya göre bir içecek hazırlar. Navigasyon uygulaması da başlangıç ve varış adreslerinden bir rota çıkarır.

    Bu örneklerin hepsinde aynı temel düzen vardır:

    $$ \text{Girdi}\longrightarrow\text{Kural}\longrightarrow\text{Çıktı} $$

    Matematikte bu düzenin kuralları açıkça belirlenmiş hâline fonksiyon deriz. Fonksiyon, kendisine verilen girdiyi işler ve ona karşılık gelen çıktıyı üretir.

    Normlar ve Mesafeler yazısında sayı listesinden vektörün uzunluğunu hesaplamıştık. Matris çarpımında ise bir vektörü başka bir vektöre dönüştürmüştük. O sırada adını koymasak da ikisinde de bir girdiye kural uygulayıp çıktı elde ediyorduk.

    Bir Kuralı Fonksiyon Yapan Temel Şart

    Bir eşleştirmeyi fonksiyon saymak için şu koşulu ararız:

    İzin verilen her girdi, tam olarak bir çıktıya bağlanmalıdır.

    “Tam olarak bir” derken izin verilen hiçbir girdinin cevapsız kalmamasını ve aynı girdinin iki farklı çıktıya bağlanmamasını kastediyoruz.

    Bir otomat düşünelim. Ürün kodu 12'yi girdiğinizde makine her defasında su veriyorsa ortada belirli bir kural vardır. Fakat aynı anda hem su hem meyve suyu seçeneklerinden hangisini vereceği belirsizse, yalnızca ürün koduna bakarak çıktıyı belirleyen bir fonksiyondan söz edemeyiz. Çıktıyı belirlemek için eksik bir bilgi var demektir.

    Girdi Çıktı Değerlendirme
    1 5 Uygun
    2 7 Uygun
    3 7 ve 9 Aynı girdinin iki çıktısı olduğu için uygun değil

    Farklı girdiler aynı çıktıya gidebilir. Ay adını gün sayısına bağlayan bir fonksiyonda nisan, haziran, eylül ve kasım aylarının çıktısı 30'dur. Bu, fonksiyon olma şartını bozmaz.

    Bir fonksiyonu küçük bir makine gibi düşünebiliriz. Aynı koşullarda aynı girdiyi yeniden verdiğimizde aynı çıktıyı almalıyız. Gerçek hayatta rastlantı içeren süreçler ayrıca modellenebilir; fakat o zaman rastlantının kendisi veya olasılık dağılımı da matematiksel tanımın bir parçası olur.

    Fonksiyonları Nasıl Yazar ve Okuruz?

    Fonksiyonlara çoğunlukla \(f\), \(g\) veya \(h\) gibi harflerle ad veririz. Girdiyi genellikle \(x\) harfiyle gösteririz. Örneğin:

    $$ f(x)=4x+3 $$

    ifadesini “f fonksiyonunun x'teki değeri, dört x artı üçtür” diye okuyabiliriz. Buradaki parçaları tek tek inceleyelim:

    • \(f\), fonksiyonun adıdır.
    • \(x\), fonksiyona verdiğimiz girdiyi temsil eder.
    • \(4x+3\), girdiye hangi işlemlerin uygulanacağını söyleyen kuraldır.
    • \(f(x)\), bu kuralın \(x\) girdisi için ürettiği çıktıdır.

    Parantez burada çarpma işareti değildir. \(f(x)\), “\(f\) ile \(x\)'i çarp” demek yerine “\(f\) fonksiyonuna \(x\) girdisini ver” demektir.

    Şimdi \(x=2\) girdisinin çıktısını bulalım. Kuraldaki her \(x\) yerine 2 yazarız:

    $$ \begin{aligned} f(2)&=4\cdot2+3\\ &=8+3\\ &=11 \end{aligned} $$

    Bu kurala göre 2'nin çıktısı 11'dir. Başka girdilerde ne olduğunu da tabloya yazalım:

    \(x\) girdisi Hesap \(f(x)\) çıktısı
    \(-2\) \(4\cdot(-2)+3\) \(-5\)
    \(0\) \(4\cdot0+3\) \(3\)
    \(1\) \(4\cdot1+3\) \(7\)
    \(2\) \(4\cdot2+3\) \(11\)

    \(f(x)=4x+3\) izin verilen bütün girdilere uygulanan kuralı, \(f(2)=11\) ise bu kuralın 2 girdisindeki sonucunu gösterir.

    Bir Fonksiyonun Üç Kümesi

    Bir fonksiyonun işlem kuralıyla birlikte kabul ettiği girdileri ve çıktıların hangi kümede yer alacağını da belirtmeliyiz.

    Bu amaçla üç kavram kullanırız:

    • Tanım kümesi: Fonksiyona vermemize izin verilen bütün girdiler.
    • Hedef küme: Çıktıların içinde yer alacağı önceden belirlenmiş küme. Buna kodomain de denir.
    • Görüntü kümesi: İzin verilen girdiler kullanıldığında gerçekten elde edilen çıktılar.

    Küçük ve sonlu bir örnek üzerinden gidelim. Tanım kümemiz \(\{1,2,3\}\), hedef kümemiz \(\{1,4,9,16\}\) ve kuralımız \(f(x)=x^2\) olsun.

    $$ \begin{aligned} f(1)&=1\\ f(2)&=4\\ f(3)&=9 \end{aligned} $$

    Görüntü kümesi \(\{1,4,9\}\) olur. Hedef kümedeki 16, izin verilen girdilerin hiçbirinden üretilmediği için görüntü kümesine girmez. Hedef küme çıkmasına izin verdiğimiz değerleri, görüntü kümesi gerçekten elde ettiklerimizi içerir.

    Fonksiyonun kümeler arasındaki hareketini kısa biçimde şöyle gösterebiliriz:

    $$ f:A\longrightarrow B $$

    Bu ifade “\(f\), \(A\) tanım kümesinden \(B\) hedef kümesine giden bir fonksiyondur” diye okunur. Eğer \(x\), \(A\) kümesindeki bir girdiyse, \(f(x)\) de \(B\) kümesinde bir çıktı olmalıdır.

    Her Sayı Her Fonksiyona Girdi Olamaz

    Bazı işlemler belirli girdilerde tanımlı değildir; bu yüzden tanım kümesini hesaba katmalıyız.

    Örneğin şu fonksiyonu ele alalım:

    $$ f(x)=\frac{1}{x-2} $$

    \(x=2\) yazarsak payda sıfır olur:

    $$ f(2)=\frac{1}{2-2}=\frac{1}{0} $$

    Sıfıra bölme tanımlı olmadığı için 2 bu fonksiyonun tanım kümesinde bulunamaz. Diğer gerçek sayılar kullanılabilir. Bunu:

    $$ x\neq2 $$

    koşuluyla belirtiriz.

    Karekök içeren bir örnekte de benzer bir sınırlama vardır:

    $$ g(x)=\sqrt{x-3} $$

    Gerçek sayılarla çalışırken karekökün içi negatif olamaz. Bu nedenle \(x-3\geq0\), yani \(x\geq3\) olmalıdır.

    Bazen sınırı matematiksel işlem değil, gerçek hayatın kendisi koyar. \(K(n)\) fonksiyonu \(n\) kişinin sinema bileti ücretini hesaplıyorsa kişi sayısı \(-2\) veya \(3{,}7\) olamaz. Formül bu sayılarla işlem yapabilse bile problemimizin anlamlı tanım kümesi \(0,1,2,3,\ldots\) gibi negatif olmayan tam sayılardır.

    Bir fonksiyon sorusunda önce “Hangi girdilere izin var?” diye sormak, birçok hatayı daha işlem başlamadan önler. Formülün hesaplanabilmesi ile sonucun gerçek problemde anlamlı olması aynı şey değildir.

    Fonksiyonun Dört Farklı Anlatım Biçimi

    Aynı fonksiyonu birden fazla yolla anlatabiliriz:

    1. Sözel olarak: “Girdinin iki katına bir ekle.”
    2. Formülle: \(f(x)=2x+1\).
    3. Tabloyla: Seçilmiş girdilerin ve karşılık gelen çıktıların listesi.
    4. Grafikle: Her girdi–çıktı çiftinin bir nokta olarak gösterilmesi.

    Örneğin \(f(x)=2x+1\) fonksiyonunda \(f(2)=5\) olur. Bu tek hesap, tabloda \(2\) ve \(5\) değerlerinin aynı satırda bulunması demektir. Koordinat düzleminde ise aynı bilgi \((2,5)\) noktasıyla gösterilir.

    $$ f(2)=5 \quad\longleftrightarrow\quad (2,5) $$

    Fonksiyonun grafiği, izin verilen bütün \(x\) girdileri için oluşan \((x,f(x))\) noktalarından oluşur. Bu noktalar fonksiyonun nerede arttığını, azaldığını, hangi çıktılara ulaştığını ve nerelerde kopukluk olabileceğini görmemizi sağlar.

    Bir grafiğin fonksiyona ait olup olmadığını anlamak için temel şartımıza geri dönebiliriz. Aynı \(x\) girdisinde iki farklı \(y\) çıktısı varsa bu eşleştirme fonksiyon değildir. Grafiğe dikey bir doğru çizdiğimizde doğru grafiği birden fazla noktada kesiyorsa aynı girdi birden fazla çıktıya bağlanıyor demektir. Bu kontrolü bir sonraki yazıda, Analitik Düzlem üzerinde ayrıntılı biçimde göreceğiz.

    Bazı Temel Fonksiyon Türleri

    Sabit fonksiyon, birim fonksiyon ve girdiyi sabit bir sayıyla çarpıp üzerine sabit bir sayı ekleyen fonksiyon, farklı kuralların nasıl çalıştığını görmek için uygun örneklerdir.

    Sabit fonksiyon, hangi girdi verilirse verilsin aynı çıktıyı üretir:

    $$ f(x)=5 $$

    Bu fonksiyonda \(f(-100)=5\), \(f(0)=5\) ve \(f(42)=5\) olur. Girdi değişse bile çıktı değişmez.

    Birim fonksiyon, girdiyi hiç değiştirmeden geri verir:

    $$ I(x)=x $$

    Buradaki \(I\) harfi fonksiyonun adıdır. \(I(7)=7\) ve \(I(-3)=-3\) olur. Bir işlemi yapıp ardından birim fonksiyonu uygulamak sonucu değiştirmez.

    Girdinin sabit bir katına sabit bir sayı ekleyen:

    $$ f(x)=ax+b $$

    biçimindeki fonksiyonlar da çok sık karşımıza çıkar. Burada \(a\) ve \(b\) önceden belirlenmiş sayılardır. Taksi ücretinin açılış bedeli ile kilometre başına ücretin toplamı veya sıcaklığın bir ölçü biriminden diğerine çevrilmesi bu yapıyla modellenebilir. Bu fonksiyonların grafiklerinin neden doğru olduğunu Analitik Düzlem yazısında göreceğiz.

    Farklı Girdiler Aynı Sonucu Verirse: Bire Birlik

    Şu fonksiyonu düşünelim:

    $$ f(x)=x^2 $$

    Hem 2 hem de \(-2\) girdisi 4 çıktısını verir:

    $$ f(2)=4 \qquad\text{ve}\qquad f(-2)=4 $$

    Her girdinin birer çıktısı olduğu için bu eşleştirme hâlâ fonksiyondur. Ancak yalnızca 4 çıktısını bilirsek girdinin 2 mi, \(-2\) mi olduğunu söyleyemeyiz.

    Farklı girdiler her zaman farklı çıktılar üretiyorsa fonksiyona bire bir denir. Başka bir deyişle:

    $$ f(x_1)=f(x_2) \quad\Longrightarrow\quad x_1=x_2 $$

    Bu ifade “iki çıktı eşitse, onları üreten girdiler de aynı olmak zorundadır” der. Bire birlik, birazdan göreceğimiz ters fonksiyon için önemlidir.

    Ters fonksiyonu hedef kümenin tamamında kullanmak istiyorsak bir koşul daha gerekir: Hedef kümede karşılıksız eleman kalmamalıdır. Hedef kümedeki her değer gerçekten üretiliyorsa fonksiyona örten denir. Hem bire bir hem örten olan bir fonksiyonda her çıktının tek bir başlangıç girdisi vardır. Tersi yalnızca görüntü kümesi üzerinde tanımlayacaksak bire birlik yeterlidir; çünkü görüntü kümesi zaten gerçekten ulaşılan çıktılardan oluşur.

    İşlemi Geri Alan Ters Fonksiyon

    Ters fonksiyon, çıktıyı alıp onu üreten girdiyi verir. Böylece fonksiyonun yaptığı dönüşümü geri alır.

    Örneğin sıcaklığı Santigrat dereceden Fahrenhayt dereceye çeviren bir fonksiyonun tersi, Fahrenhayt değerini yeniden Santigrat değerine çevirmelidir. Bir dosyayı kayıpsız biçimde sıkıştıran işlem ile onu açan işlem de benzer bir ileri–geri ilişkisine sahiptir.

    Daha önce kullandığımız fonksiyona dönelim:

    $$ f(x)=4x+3 $$

    Bu örnekte tanım ve hedef kümesinin bütün gerçek sayılar olduğunu kabul edelim. Tersini bulmak için çıktıya \(y\) adını verelim ve girdiyi yalnız bırakalım:

    $$ \begin{aligned} y&=4x+3\\ y-3&=4x\\ x&=\frac{y-3}{4} \end{aligned} $$

    Şimdi ters fonksiyonun girdisini alıştığımız \(x\) harfiyle yazabiliriz:

    $$ f^{-1}(x)=\frac{x-3}{4} $$

    \(f^{-1}\) gösterimini “f'in tersi” diye okuruz. Bu ifade \(1/f(x)\) anlamına gelmez.

    Sonucu bir sayıyla kontrol edelim. İleri yönde 2 girdisi 11 çıktısını veriyordu. Ters fonksiyona 11'i verdiğimizde yeniden 2'ye dönmeliyiz:

    $$ \begin{aligned} f(2)&=11\\ f^{-1}(11)&=\frac{11-3}{4}=2 \end{aligned} $$

    Her fonksiyonun bütün tanım kümesi üzerinde bir tersi bulunmaz. \(f(x)=x^2\) fonksiyonunda 4 çıktısının hem 2 hem \(-2\) girdisinden gelebilmesi buna örnektir. Fakat tanım kümesini \(x\geq0\) ile sınırlandırırsak yalnızca negatif olmayan girdileri kabul ederiz ve kare alma işlemi bu bölgede geri alınabilir. Ters fonksiyonun varlığı yalnızca formüle değil, seçtiğimiz kümelere de bağlıdır.

    Koşula Göre Değişen Kurallar: Parçalı Fonksiyonlar

    Gerçek hayattaki kuralların hepsi tek bir formülle anlatılamaz. Bir kargo şirketi 5 kilograma kadar sabit ücret, 5 kilogramın üzerinde ise kilogram başına ek ücret uygulayabilir. Elektrik tarifesi tüketim aralığına göre değişebilir. Vergi oranları farklı gelir dilimlerinde farklılaşabilir.

    Girdinin bulunduğu bölgeye göre farklı kurallar kullanan fonksiyonlara parçalı fonksiyon denir. Mutlak değer fonksiyonu bunun temel örneklerinden biridir:

    $$ |x|= \begin{cases} -x, & x<0\\ x, & x\geq0 \end{cases} $$

    Formülün sağ tarafındaki koşullar hangi satırın kullanılacağını söyler. Girdi negatifse birinci satırı, sıfır veya pozitifse ikinci satırı kullanırız.

    $$ \begin{aligned} |-3|&=-(-3)=3\\ |0|&=0\\ |4|&=4 \end{aligned} $$

    Mutlak değer, sayının sıfıra uzaklığıdır. Uzaklık negatif olamayacağı için hem \(-3\) hem 3 girdisi 3 çıktısını verir.

    Yapay sinir ağlarında ileride karşılaşacağımız ReLU adlı kural da parçalı bir fonksiyondur:

    $$ \operatorname{ReLU}(x)= \begin{cases} 0, & x<0\\ x, & x\geq0 \end{cases} $$

    ReLU, negatif girdilerde sıfır, sıfır ve pozitif girdilerde girdinin kendisini üretir. Yapay zekâda kullanılan bu kural da koşula göre iki satırdan birini seçen parçalı bir fonksiyondur.

    Fonksiyonları Art Arda Çalıştırmak: Bileşke

    Bir fotoğraf düzenleme uygulamasında önce görüntüyü kırpıp sonra parlaklığı artırabiliriz. Bir alışverişte önce indirim uygulayıp sonra kalan tutara vergi ekleyebiliriz. Bir işlemin çıktısını başka bir işlemin girdisi yaptığımızda fonksiyonları art arda çalıştırmış oluruz.

    Bu işleme fonksiyon bileşkesi denir. İki fonksiyonumuz olsun:

    $$ g(x)=x+3 \qquad\text{ve}\qquad f(x)=x^2 $$

    Önce \(g\)'yi, sonra \(f\)'yi uygularsak:

    $$ (f\circ g)(x)=f(g(x)) $$

    \(\circ\) işaretini “bileşke” diye okuyabiliriz. İşlemler sağdan sola ilerler: Önce sağdaki \(g\), ardından soldaki \(f\) çalışır.

    $$ \begin{aligned} (f\circ g)(x)&=f(x+3)\\ &=(x+3)^2 \end{aligned} $$

    \(x=2\) için adımları ayrı ayrı görelim:

    $$ 2\xrightarrow{g}5\xrightarrow{f}25 $$

    Sırayı değiştirirsek sonuç genellikle değişir. Önce \(f\), sonra \(g\) uygulandığında:

    $$ \begin{aligned} (g\circ f)(x)&=g(x^2)\\ &=x^2+3 \end{aligned} $$

    \(x=2\) için bu kez:

    $$ 2\xrightarrow{f}4\xrightarrow{g}7 $$

    olur. 25 ile 7 aynı olmadığına göre:

    $$ f\circ g\neq g\circ f $$

    Çorabı ayakkabıdan önce veya sonra giymek aynı sonucu vermez. Fonksiyonların sırası da az önceki hesapta 25 ile 7 arasındaki farkı yarattı.

    Bileşkenin çalışması için ilk fonksiyonun çıktısı, ikinci fonksiyonun kabul ettiği girdiler arasında olmalıdır. Örneğin ilk işlem \(-4\) üretiyor, ikinci işlem yalnızca negatif olmayan sayıların karekökünü alıyorsa bileşke o girdide gerçek sayılarla tanımlı olmaz.

    Ters Fonksiyonu Bileşkeyle Kontrol Etmek

    Ters fonksiyonun görevi ileri işlemi geri almak olduğuna göre, bir fonksiyonu tersiyle art arda çalıştırdığımızda başladığımız girdiye dönmeliyiz:

    $$ f^{-1}(f(x))=x \qquad\text{ve}\qquad f(f^{-1}(x))=x $$

    Bu, bileşke olarak şöyle de yazılır:

    $$ f^{-1}\circ f=I \qquad\text{ve}\qquad f\circ f^{-1}=I $$

    Buradaki \(I\), girdiyi değiştirmeden geri veren birim fonksiyondur. Önce kilitleyip sonra doğru anahtarla açtığımızda başladığımız duruma döneriz; fonksiyonla tersi de birbirinin etkisini böyle ortadan kaldırır. Bu eşitliklerle bulduğumuz ters fonksiyonu kontrol edebiliriz.

    Fonksiyonlarla Dört İşlem

    İki fonksiyonun aynı girdide ürettiği çıktıları toplayabilir, çıkarabilir, çarpabilir veya birbirine bölebiliriz. \(f(x)=2x+3\) ve \(g(x)=x-1\) olsun.

    $$ \begin{aligned} (f+g)(x)&=f(x)+g(x)=3x+2\\ (f-g)(x)&=f(x)-g(x)=x+4\\ (fg)(x)&=f(x)g(x)=(2x+3)(x-1)\\ \left(\frac{f}{g}\right)(x)&=\frac{f(x)}{g(x)}=\frac{2x+3}{x-1} \end{aligned} $$

    Bölümde yeni bir koşul ortaya çıkar. Payda sıfır olamayacağı için \(g(x)\neq0\) olmalıdır. Bizim örneğimizde \(x-1\neq0\), dolayısıyla \(x\neq1\) koşulu vardır.

    Genel olarak yeni fonksiyonun tanım kümesi, işleme katılan bütün fonksiyonların aynı anda tanımlı olduğu girdilerden oluşur. Bölme varsa paydanın sıfır olmaması şartı da buna eklenir.

    Birden Fazla Girdisi Olan Fonksiyonlar

    Bir evin fiyatı yalnızca büyüklüğüne bağlı değildir. Oda sayısı, yaşı ve konumu da sonucu etkileyebilir. Hava sıcaklığı yalnızca saate değil, güne ve konuma göre de değişebilir. Gerçek dünyadaki pek çok sonuç birden fazla girdinin birlikte etkisiyle oluşur.

    İki girdili bir fonksiyonu \(f(x,y)\) biçiminde yazarız. Parantezin içindeki \(x\) ve \(y\), fonksiyona birlikte verilen iki girdidir.

    Örneğin bir kafede \(x\) fincan çayın her biri 20 lira, \(y\) dilim kekin her biri 45 lira olsun. Toplam tutarı veren fonksiyon:

    $$ T(x,y)=20x+45y $$

    olur. İki çay ve bir kek için:

    $$ \begin{aligned} T(2,1)&=20\cdot2+45\cdot1\\ &=40+45\\ &=85 \end{aligned} $$

    Burada girdi artık tek bir sayı değil, sıralı bir ikilidir: \((2,1)\). Sıra önemlidir; ilk sayı çay miktarını, ikinci sayı kek miktarını temsil eder.

    Girdi sayısı arttığında bunları bir vektörde toplayabiliriz:

    $$ \mathbf{x}= \begin{bmatrix} x_1\\ x_2\\ \vdots\\ x_n \end{bmatrix} $$

    Kalın yazılan \(\mathbf{x}\), birden fazla sayıyı taşıyan girdi vektörüdür. Fonksiyonu da kısaca \(f(\mathbf{x})\) biçiminde yazabiliriz. Bir ev için metrekare, oda sayısı ve yaş; bir fotoğraf için piksel değerleri; bir metin için sayısal temsil bileşenleri bu vektörün parçaları olabilir.

    Bir Fonksiyonun Birden Fazla Çıktısı da Olabilir

    Fonksiyonun çıktısı her zaman tek bir sayı olmak zorunda değildir. Bir konumu döndüren işlem, girdi olarak \((x,y)\) noktasını alıp çıktı olarak yeni bir \((x',y')\) noktası verebilir. Bir görüntü işleme fonksiyonu bir resmi alıp başka bir resim üretebilir. Bir dil modeli bir metni alıp olası sonraki sözcükler için çok sayıda puan üretebilir.

    Basit bir örnek yazalım:

    $$ F(x)= \begin{bmatrix} x+1\\ x^2 \end{bmatrix} $$

    Bu fonksiyon tek bir sayı alır, iki bileşenli bir vektör üretir. \(x=3\) için:

    $$ F(3)= \begin{bmatrix} 4\\ 9 \end{bmatrix} $$

    olur. Çıktı iki bileşenli bir vektör olsa da her izin verilen girdinin tek bir karşılığı vardır. Bu nedenle bu kural da fonksiyondur.

    Değişken ile Parametreyi Ayırmak

    Yapay zekâ modellerinde girdiyle ayarları ayrı düşünürüz. Bunu basit bir fonksiyon üzerinde görelim:

    $$ f(x)=wx+b $$

    Burada \(x\), fonksiyona her kullanımda verdiğimiz girdidir. \(w\) ve \(b\) ise fonksiyonun davranışını belirleyen ayarlardır. Bu tür ayarlara parametre denir.

    Örneğin \(w=2\) ve \(b=1\) seçilirse \(f(x)=2x+1\) fonksiyonunu elde ederiz. \(w=-1\) ve \(b=4\) seçilirse bu kez \(f(x)=-x+4\) olur. Aynı genel yapı, farklı parametrelerle farklı kurallara dönüşür.

    Bir yapay zekâ modeli eğitilirken çoğu zaman girdiler veride hazırdır; modelin öğrenmesi gereken şey uygun parametrelerdir. Eğitim, tahminlerin istenen sonuçlara yaklaşmasını sağlayacak \(w\), \(b\) ve çok daha fazla ayarı bulma sürecidir. Bu sürecin nasıl yapıldığını ileride türev, gradyan ve optimizasyon yazılarında ayrıntılı biçimde inceleyeceğiz.

    Yapay Zekâyı Bir Fonksiyonlar Zinciri Olarak Görmek

    Bir yapay zekâ sisteminin yaptığı işi en temel düzeyde şöyle düşünebiliriz:

    $$ \text{Veri}\longrightarrow\text{Dönüşümler}\longrightarrow\text{Tahmin} $$

    Bir ev fiyatı modeline metrekare, oda sayısı ve bina yaşı verilir; model tahmini bir fiyat üretir. Bir görüntü sınıflandırma modeline piksel değerleri verilir; model olası sınıflar için puanlar üretir. Bir dil modeline metin verilir; model bundan sonra gelebilecek parçalar için olasılıklar hesaplar.

    Bu sistemler çok sayıda dönüşüm içerebilir. Dönüşümleri bileşke biçiminde gösterebiliriz:

    $$ F(x)=f_4(f_3(f_2(f_1(x)))) $$

    Sağdaki \(f_1\) önce çalışır; onun çıktısı \(f_2\)'ye, sonraki çıktı \(f_3\)'e gider. Her aşama veriyi başka bir biçime dönüştürür. Derin sinir ağlarındaki “katman” fikrinin temelinde bu ardışık fonksiyonlar bulunur.

    Bir modeli fonksiyon olarak yazabilmemiz, her cevabının doğru olduğu anlamına gelmez. Fonksiyon girdinin çıktıya nasıl dönüştüğünü gösterir. Çıktının gerçeği ne kadar iyi yansıttığı ise veriye, parametrelere, eğitim yöntemine ve problemin yapısına bağlıdır.

    Fonksiyonlarda Sık Yapılan Hatalar

    1. \(f(x)\)'i çarpım sanmak: Bu gösterim, \(f\) adlı fonksiyona \(x\) girdisinin verildiğini anlatır.
    2. Bir girdiye iki çıktı vermek: Aynı girdi aynı kural altında iki farklı çıktıya gidiyorsa eşleştirme fonksiyon değildir.
    3. Farklı girdilerin aynı çıktıyı vermesini yasak sanmak: Bu duruma izin vardır. Yalnızca fonksiyonun bire bir olmadığını gösterir.
    4. Tanım kümesini kontrol etmemek: Sıfıra bölme, negatif sayının gerçek karekökü veya problemin fiziksel koşulları bazı girdileri dışarıda bırakabilir.
    5. Fonksiyon ile fonksiyon değerini karıştırmak: \(f(x)\) genel kuralı, \(f(2)\) ise tek bir girdideki sonucu anlatır.
    6. \(f^{-1}(x)\)'i \(1/f(x)\) sanmak: Ters fonksiyon işlemi geri alır; fonksiyonun çarpmaya göre tersi olan kesir ise farklı bir kavramdır.
    7. Bileşke sırasını ters okumak: \(f(g(x))\) ifadesinde önce \(g\), sonra \(f\) uygulanır.
    8. Parçalı fonksiyonda yanlış satırı seçmek: Önce girdinin hangi koşulu sağladığını belirlemek gerekir.
    9. Çok girdili fonksiyonda sırayı önemsememek: \(f(2,5)\) ile \(f(5,2)\) genel olarak aynı değildir; her konum farklı bir bilgiyi temsil edebilir.

    Bir Fonksiyonu İncelerken Sorulacak Sorular

    Yeni bir fonksiyonla karşılaştığımızda şu sırayla ilerlemek işleri kolaylaştırır:

    1. Girdi nedir? Tek sayı mı, bir sayı çifti mi, vektör mü, görüntü mü?
    2. Hangi girdilere izin var? Tanım kümesinde işlem veya bağlam kaynaklı bir sınır bulunuyor mu?
    3. Kural ne yapıyor? Girdiye hangi işlemler, hangi sırayla uygulanıyor?
    4. Çıktı nedir? Tek sayı mı, vektör mü, başka tür bir nesne mi?
    5. Hangi çıktılar gerçekten oluşuyor? Görüntü kümesi nedir?
    6. Farklı girdiler aynı çıktıyı veriyor mu? Fonksiyon bire bir mi?
    7. İşlem geri alınabiliyor mu? Uygun kümelerde bir ters fonksiyon var mı?
    8. Başka fonksiyonlarla nasıl birleşiyor? Bileşke sırası ve tanım koşulları uygun mu?

    Aynı soruları bir veri işleme adımını, yazılım bileşenini veya yapay zekâ modelini incelerken de sorabiliriz.

    Sonuç: Girdi, Kural ve Çıktı

    Fonksiyon, izin verilen her girdiyi tam olarak bir çıktıya bağlar. \(f(x)\) gösterimi kuralın bir girdideki sonucunu anlatır; belirli bir sayıyı yerine koyduğumuzda o girdinin çıktısını hesaplarız.

    Tanım kümesi kabul edilen girdileri, hedef küme izin verilen çıktıları, görüntü kümesi de gerçekten elde edilenleri içerir. Sıfıra bölme veya gerçek sayılarda negatif bir sayının karekökünü alma gibi işlemler bazı girdileri dışarıda bırakır. Gerçek hayatın koşulları da tanım kümesini sınırlayabilir.

    Bir fonksiyonu sözle, formülle, tabloyla veya grafikle gösterebiliriz. Farklı girdiler aynı çıktıya gidebilir; tersini tanımlayabilmek içinse girdiyi çıktıdan tek biçimde geri bulmamız gerekir. Parçalı fonksiyonlarda girdiye göre kural seçeriz. Bileşkede bir fonksiyonun çıktısını diğerine veririz ve sıra sonucu değiştirebilir.

    Fonksiyonların girdisi veya çıktısı birden fazla sayı içerebilir. Parametreler kuralın davranışını belirler; yapay zekâ modellerindeki ardışık dönüşümleri de bileşke olarak yazabiliriz. Aynı gösterimi ileride polinomlarda, üstel ve trigonometrik fonksiyonlarda, limitte, türevde ve sinir ağlarında kullanacağız.

    Bir sonraki yazıda Analitik Düzlem konusuna geçeceğiz. \(f(2)=5\) eşitliğini \((2,5)\) noktası olarak gösterecek, fonksiyon grafiklerini ve verilerin koordinatlar üzerindeki yerini inceleyeceğiz.

    Yazar: Levent KARAGÖL

    Makaleyi Paylaş:

    İlgili Makaleler