12. Gradyan ve Kısmi Türevler

    MatematikKalkülüs

    Gradyan ve Kısmi Türevler, tek değişkenli dünyada öğrendiğimiz türev kavramını çok değişkenli fonksiyonlara taşımamızı sağlar. Kısmi türevler bir fonksiyondaki her değişkenin sonucu ayrı ayrı nasıl etkilediğini ölçerken, gradyan bütün bu değişim bilgilerini tek bir vektör içerisinde bir araya getirir. Yapay zeka açısından ise gradyan, milyonlarca hatta milyarlarca parametrenin modelin hatasını hangi yönde değiştirdiğini anlamamızı sağlayan öğrenme mekanizmasının temel matematiksel araçlarından biridir. Bu makalede çok değişkenli fonksiyonlardan başlayarak kısmi türevlerin matematiksel ve geometrik anlamını, gradyanın nasıl oluşturulduğunu, neden bir vektör olduğunu, yönlü türev ve seviye eğrileri ile ilişkisini ve bütün bunların yapay zeka modellerinin öğrenme sürecinde nasıl kullanıldığını inceleyeceğiz.

    Tek Değişkenli Dünyadan Çıkmak

    Bir önceki makalemizde İntegral konusunu incelerken tek değişkenli Kalkülüs'ün temel üçlüsünü tamamlamıştık:

    $$ Limit \longrightarrow Türev \longleftrightarrow İntegral $$

    Şimdiye kadar kullandığımız fonksiyonların büyük bölümü aşağıdaki gibi tek bir bağımsız değişkene sahipti:

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

    Burada fonksiyonun çıktısını etkileyen tek şey \(x\)'tir.

    Örneğin:

    $$ f(3)=9 $$

    olur.

    Fonksiyonun nasıl değiştiğini öğrenmek istediğimizde ise türevini alıyorduk:

    $$ f'(x)=2x $$

    ve örneğin \(x=3\) noktasındaki değişim hızını:

    $$ f'(3)=6 $$

    olarak buluyorduk.

    Buraya kadar her şey oldukça güzel. Fakat gerçek dünya çoğu zaman tek bir değişkenden oluşmaz.

    Bir evin fiyatını yalnızca metrekaresi belirlemez. Konumu, yaşı, oda sayısı, bulunduğu kat ve daha pek çok özellik fiyatı etkileyebilir.

    Bir otomobilin yakıt tüketimini yalnızca hızı belirlemez. Motor devri, aracın ağırlığı, eğim, hava sıcaklığı ve sürücünün gaz pedalına ne kadar bastığı da sonucu değiştirebilir.

    Benzer şekilde bir yapay sinir ağının çıktısını da tek bir parametre belirlemez.

    Modern bir modelde:

    $$ w_1,w_2,w_3,\ldots,w_n $$

    şeklinde çok sayıda parametre bulunabilir.

    Bu durumda maliyet fonksiyonumuz artık:

    $$ J(w) $$

    gibi tek değişkenli değil:

    $$ J(w_1,w_2,w_3,\ldots,w_n) $$

    şeklinde çok değişkenli bir fonksiyon haline gelir. İşte şimdi yeni bir problemimiz var. Birden fazla değişken aynı anda sonucu etkiliyorsa; hangisinin sonucu ne kadar değiştirdiğini nasıl anlayacağız?

    Bu sorunun cevabı bizi Kısmi Türevler kavramına götürür.

    Çok Değişkenli Fonksiyonlar

    Öncelikle iki değişkenli oldukça basit bir fonksiyon ele alalım:

    $$ f(x,y)=x^2+y^2 $$

    Artık fonksiyonumuzun iki bağımsız değişkeni vardır: \(x\) ve \(y\)

    Fonksiyonun çıktısı ise bu iki değişkenin birlikte oluşturduğu değerdir.

    Örneğin \(x=2\) ve \(y=3\) için:

    $$ \begin{aligned} f(2,3)&=2^2+3^2\\ &=4+9\\ &=13 \end{aligned} $$

    olur.

    Tek değişkenli bir fonksiyonu:

    $$ y=f(x) $$

    şeklinde iki boyutlu bir koordinat sisteminde eğri olarak gösterebiliyorduk.

    Ancak artık iki girdimiz var:

    $$ z=f(x,y) $$

    Dolayısıyla:

    • \(x\) birinci yatay ekseni,
    • \(y\) ikinci yatay ekseni,
    • \(z\) ise fonksiyonun çıktısını

    temsil eder.

    Artık karşımızda iki boyutlu bir eğri yerine üç boyutlu bir yüzey vardır.

    Örneğin:

    $$ z=x^2+y^2 $$

    fonksiyonu yukarı doğru açılan bir vazoya benzeyen yüzey oluşturur.

    Bu yüzey üzerinde herhangi bir noktada durduğumuzu düşünelim.

    Tek değişkenli fonksiyonlarda yalnızca iki temel hareket yönümüz vardı:

    Sağa veya sola.

    Şimdi ise:

    • \(x\) yönünde,
    • \(y\) yönünde,
    • veya ikisinin herhangi bir kombinasyonunda

    hareket edebiliriz.

    Dolayısıyla artık yalnızca:

    "Fonksiyon burada ne kadar hızlı değişiyor?"

    sorusu yeterli değildir.

    Şunu da sormamız gerekir:

    "Hangi yönde ne kadar hızlı değişiyor?"

    Çok değişkenli Kalkülüs'ün asıl hikâyesi burada başlar.

    Kısmi Türev Nedir?

    İki değişkenli:

    $$ f(x,y) $$

    fonksiyonumuz olduğunu düşünelim.

    Sadece \(x\)'in fonksiyonu nasıl etkilediğini öğrenmek istiyoruz.

    Bunun için çok basit bir fikir kullanırız: \(y\)'yi geçici olarak sabit kabul ederiz.

    Böylece fonksiyonumuz sanki yalnızca \(x\)'e bağlıymış gibi davranır ve normal türev alma kurallarını uygularız.

    Buna \(x\)'e göre kısmi türev denir ve \(\frac{\partial f}{\partial x}\) şeklinde gösterilir.

    Benzer şekilde yalnızca \(y\)'nin etkisini ölçmek istersek bu sefer \(x\)'i sabit kabul ederiz: \(\frac{\partial f}{\partial y}\)

    Bu iki ifade bize iki farklı sorunun cevabını verir.

    \(\frac{\partial f}{\partial x}\) şu soruyu sorar: \(y\) hiç değişmezken \(x\)'i biraz değiştirirsem fonksiyon ne kadar değişir?

    \(\frac{\partial f}{\partial y}\) ise: \(x\) hiç değişmezken \(y\)'yi biraz değiştirirsem fonksiyon ne kadar değişir?

    sorusunun cevabıdır.

    Buradaki fikir son derece önemlidir.

    Çünkü karmaşık bir sistemde bütün değişkenlerin aynı anda hareket etmesine bakmak yerine, her değişkenin etkisini tek tek izole ederiz.

    İlk Kısmi Türev Hesabımız

    Şu fonksiyonu ele alalım:

    $$ f(x,y)=x^2+3y $$

    Öncelikle \(x\)'e göre kısmi türevini bulalım.

    $$ \frac{\partial f}{\partial x} $$

    hesaplanırken \(y\)'yi sabit kabul ediyoruz.

    Dolayısıyla: \(3y\) ifadesinin tamamı bizim için sabit bir sayıdır.

    Sabit sayıların türevi sıfır olduğuna göre:

    $$ \begin{aligned} \frac{\partial f}{\partial x} &=\frac{\partial}{\partial x}(x^2+3y)\\ &=2x \end{aligned} $$

    elde ederiz.

    Şimdi aynı fonksiyonun \(y\)'ye göre kısmi türevini alalım:

    $$ \frac{\partial f}{\partial y} $$

    Bu sefer \(x\) sabittir.

    Dolayısıyla: \(x^2\) ifadesinin türevi sıfır olur.

    $$ \begin{aligned} \frac{\partial f}{\partial y} &=\frac{\partial}{\partial y}(x^2+3y)\\ &=3 \end{aligned} $$

    Sonuç olarak:

    $$ \frac{\partial f}{\partial x}=2x $$

    ve:

    $$ \frac{\partial f}{\partial y}=3 $$

    elde ettik.

    Bunların ne söylediğine dikkat edelim.

    Fonksiyonun \(x\) yönündeki değişim hızı bulunduğumuz \(x\) değerine bağlıdır.

    Ancak \(y\) yönündeki değişim hızı her yerde sabit olarak 3'tür.

    Örneğin:

    $$ (2,4) $$

    noktasında:

    $$ \frac{\partial f}{\partial x}=2(2)=4 $$

    ve:

    $$ \frac{\partial f}{\partial y}=3 $$

    olur.

    Yani bulunduğumuz noktada yalnızca \(x\)'i artırırsak fonksiyon yaklaşık olarak birim başına 4 hızla yükselirken, yalnızca \(y\)'yi artırırsak birim başına 3 hızla yükselir.

    Artık yüzeyimizin iki farklı yöndeki eğimini biliyoruz.

    Değişkenlerin Birbirine Karıştığı Durumlar

    Şimdi biraz daha ilginç bir fonksiyon kullanalım:

    $$ f(x,y)=x^2+3xy+y^2 $$

    Burada \(x\) ve \(y\) artık birbirinden tamamen bağımsız terimlerde değildir.

    Ortada \(3xy\) şeklinde her iki değişkeni birlikte içeren bir terim vardır.

    Önce \(x\)'e göre kısmi türev alalım.

    \(y\)'yi sabit kabul ediyoruz:

    $$ \begin{aligned} \frac{\partial f}{\partial x} &=\frac{\partial}{\partial x}(x^2+3xy+y^2)\\ &=2x+3y \end{aligned} $$

    Çünkü \(y\) sabit olduğundan \(3xy\) ifadesi \(x\)'e göre türev alınırken \(3y\cdot x\) gibi davranır.

    Şimdi \(y\)'ye göre türev alalım.

    Bu sefer \(x\) sabittir:

    $$ \begin{aligned} \frac{\partial f}{\partial y} &=\frac{\partial}{\partial y}(x^2+3xy+y^2)\\ &=3x+2y \end{aligned} $$

    Dolayısıyla:

    $$ \frac{\partial f}{\partial x}=2x+3y $$
    $$ \frac{\partial f}{\partial y}=3x+2y $$

    elde ederiz.

    Örneğin:

    $$ (x,y)=(1,2) $$

    noktasında:

    $$ \begin{aligned} \frac{\partial f}{\partial x} &=2(1)+3(2)\\ &=8 \end{aligned} $$

    ve:

    $$ \begin{aligned} \frac{\partial f}{\partial y} &=3(1)+2(2)\\ &=7 \end{aligned} $$

    olur.

    Bu bize bulunduğumuz noktada yüzeyin \(x\) yönünde 8, \(y\) yönünde ise 7 eğime sahip olduğunu söyler.

    Kısmi Türevin Geometrik Anlamı

    Tek değişkenli türev makalemizde \(f'(x)\) değerinin fonksiyon grafiğine o noktada çizilen teğet doğrunun eğimi olduğunu görmüştük. Çok değişkenli fonksiyonlarda aynı fikir kaybolmaz. Sadece artık elimizde tek bir eğri yerine bir yüzey vardır.

    Örneğin:

    $$ z=f(x,y) $$

    yüzeyi üzerinde:

    $$ (x_0,y_0) $$

    noktasında duruyor olalım.

    \(y\)'yi:

    $$ y=y_0 $$

    olarak sabitlersek, üç boyutlu yüzeyi bir düzlemle kesmiş oluruz.

    Ortaya tek değişkenli bir eğri çıkar.

    İşte:

    $$ \frac{\partial f}{\partial x} $$

    bu eğrinin bulunduğumuz noktadaki eğimidir.

    Aynı işlemi:

    $$ x=x_0 $$

    şeklinde yaparsak başka bir kesit elde ederiz.

    Bu kesitin eğimi ise:

    $$ \frac{\partial f}{\partial y} $$

    olur.

    Yani kısmi türev aslında çok değişkenli yüzeyimizi belirli bir yönden dilimleyerek yeniden bildiğimiz tek değişkenli türev problemine dönüştürür. Bu oldukça güçlü bir fikir. Karmaşık bir problemi, bildiğimiz daha basit problemlere ayırıyoruz.

    Daha Fazla Değişken

    Elbette fonksiyonlarımız yalnızca iki değişkene sahip olmak zorunda değildir.

    Örneğin:

    $$ f(x,y,z)=x^2+2y^2+3z^2 $$

    şeklinde üç değişkenli bir fonksiyonumuz olabilir.

    Bu durumda üç farklı kısmi türev elde ederiz:

    $$ \frac{\partial f}{\partial x}=2x $$
    $$ \frac{\partial f}{\partial y}=4y $$
    $$ \frac{\partial f}{\partial z}=6z $$

    Dört değişkenimiz olsaydı dört, bin değişkenimiz olsaydı bin farklı kısmi türevimiz olurdu.

    Genel olarak:

    $$ f(x_1,x_2,\ldots,x_n) $$

    fonksiyonu için:

    $$ \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \ldots, \frac{\partial f}{\partial x_n} $$

    şeklinde \(n\) adet kısmi türev hesaplayabiliriz.

    İşte yapay zeka açısından işlerin gerçekten ilginçleşmeye başladığı yer burasıdır.

    Bir sinir ağında milyonlarca parametre varsa, maliyet fonksiyonumuzun da milyonlarca farklı kısmi türevi bulunabilir.

    Peki bütün bu türevlerle ne yapacağız?

    Hepsini ayrı ayrı taşımak yerine bunları tek bir matematiksel yapı içerisinde bir araya getirebilir miyiz?

    Evet.

    Ve bu yapıyı aslında matematik serimizin ilk makalesinden beri tanıyoruz: Vektör.

    Gradyan Nedir?

    Bir fonksiyonun bütün kısmi türevlerini bir vektör içerisinde topladığımızda elde ettiğimiz yapıya Gradyan adı verilir. Gradyan genellikle \(\nabla f\) şeklinde gösterilir. Buradaki \(\nabla\) sembolüne "nabla" veya "del" denir.

    İki değişkenli \(f(x,y)\) fonksiyonu için gradyan:

    $$ \nabla f(x,y)= \begin{bmatrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y} \end{bmatrix} $$

    şeklindedir.

    Üç değişkenli bir fonksiyon için:

    $$ \nabla f(x,y,z)= \begin{bmatrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y}\\ \frac{\partial f}{\partial z} \end{bmatrix} $$

    olur.

    Genel olarak:

    $$ f(x_1,x_2,\ldots,x_n) $$

    için:

    $$ \nabla f= \begin{bmatrix} \frac{\partial f}{\partial x_1}\\ \frac{\partial f}{\partial x_2}\\ \vdots\\ \frac{\partial f}{\partial x_n} \end{bmatrix} $$

    şeklinde yazabiliriz.

    Dikkat ederseniz artık sonuç tek bir sayı değildir. Bir vektördür ve çok önemli bir değişikliktir.

    Tek değişkenli türev bize yalnızca:

    $$ f'(x)=6 $$

    gibi bir eğim veriyordu.

    Gradyan ise örneğin:

    $$ \nabla f= \begin{bmatrix} 4\\ 3 \end{bmatrix} $$

    gibi hem büyüklüğü hem de yönü olan bir nesne verir.

    Bir Gradyan Hesaplayalım

    Az önce kullandığımız fonksiyona geri dönelim:

    $$ f(x,y)=x^2+3y $$

    Kısmi türevlerini bulmuştuk:

    $$ \frac{\partial f}{\partial x}=2x $$
    $$ \frac{\partial f}{\partial y}=3 $$

    Dolayısıyla fonksiyonun gradyanı:

    $$ \nabla f(x,y)= \begin{bmatrix} 2x\\ 3 \end{bmatrix} $$

    olur.

    Şimdi \((2,4)\) noktasındaki gradyanı hesaplayalım:

    $$ \nabla f(2,4)= \begin{bmatrix} 4\\ 3 \end{bmatrix} $$

    Tanıdık geldi mi?

    Matematik serimizin ilk makalesinde:

    $$ \begin{bmatrix} 4\\ 3 \end{bmatrix} $$

    gibi bir vektörün hem bir yönü hem de büyüklüğü olduğunu öğrenmiştik.

    Uzunluğu:

    $$ \begin{aligned} \|\nabla f\| &=\sqrt{4^2+3^2}\\ &=5 \end{aligned} $$

    olur.

    Peki fonksiyonun türevlerini neden bir vektör olarak ifade ediyoruz? Çünkü gradyan bize yalnızca fonksiyonun ne kadar değiştiğini değil, hangi yöne doğru en hızlı değiştiğini de söyler ve gradyanın asıl gücü burada ortaya çıkar.

    Gradyan Hangi Yönü Gösterir?

    Bir dağın yamacında durduğumuzu düşünelim. Bulunduğumuz noktadan pek çok farklı yöne yürüyebiliriz. Kuzeye gidersek biraz yükselebiliriz. Doğuya gidersek daha hızlı yükselebiliriz. Güneybatıya gidersek aşağı inebiliriz.

    Fakat bulunduğumuz noktadan bizi mümkün olan en hızlı şekilde yukarı çıkaracak tek bir yön vardır. İşte gradyan vektörü tam olarak bu yönü gösterir.

    Bir fonksiyonun \(\nabla f\) gradyanı, o noktada fonksiyon değerinin en hızlı arttığı yönü gösterir.

    Gradyanın büyüklüğü \(\|\nabla f\|\) ise bu en hızlı artışın ne kadar güçlü olduğunu belirtir.

    Dolayısıyla gradyanda iki bilgi aynı anda bulunur:

    • Yön: Fonksiyonun en hızlı arttığı yön.
    • Büyüklük: O yöndeki en büyük değişim hızı.

    Bu tanımı aklımızın bir köşesine çok sağlam biçimde yerleştirelim, çünkü yapay zeka için kritik bir öneme sahip olacak.

    Negatif Gradyan

    Gradyan bize fonksiyonun en hızlı arttığı yönü gösteriyorsa, fonksiyonun en hızlı azaldığı yönü bulmak oldukça kolaydır.

    Vektörü tersine çeviririz: \(-\nabla f\). Bu vektöre negatif gradyan diyebiliriz.

    Dağ örneğimize geri dönersek \(\nabla f\) bizi en hızlı yukarı çıkaran yönü gösterirken, \(-\nabla f\) bizi en hızlı aşağı indiren yönü gösterir.

    Bu son derece basit görünen fikir, makine öğrenmesinin temel öğrenme mekanizmalarından birinin merkezinde yer alır.

    Çünkü bir yapay zeka modelini eğitirken çoğu zaman elimizde azaltmak istediğimiz bir maliyet fonksiyonu vardır.

    Dolayısıyla modelin sorduğu soru:

    "Hangi yöne gidersem hata en hızlı artar?"

    değildir.

    Tam tersine:

    "Hangi yöne gidersem hata en hızlı azalır?"

    sorusudur.

    Gradyanı hesapladıktan sonra cevabımız hemen ortaya çıkar: \(-\nabla J\)

    Ancak bunun üzerinden nasıl adım atacağımız, adımın ne kadar büyük olması gerektiği ve minimum noktayı nasıl arayacağımız ayrı bir konudur.

    İleride Gradyan İnişi (Gradient Descent) makalemizde tam olarak bunu inceleyeceğiz.

    Şimdilik gradyanın bize yön bilgisi verdiğini bilmemiz yeterlidir.

    Seviye Eğrileri

    Gradyanın geometrik anlamını daha iyi anlayabilmek için üç boyutlu yüzeyimize başka bir açıdan bakalım.

    Bir dağın üç boyutlu modelini düşünelim.

    Dağın yüksekliği:

    $$ z=f(x,y) $$

    ile gösteriliyor olsun.

    Üç boyutlu dağ yerine harita üzerinde yükseklikleri göstermek istersek aynı yüksekliğe sahip noktaları birbirine bağlayabiliriz.

    Örneğin:

    $$ f(x,y)=100 $$

    olan bütün noktaları bir çizgiyle,

    $$ f(x,y)=200 $$

    olanları başka bir çizgiyle,

    $$ f(x,y)=300 $$

    olanları başka bir çizgiyle birleştirebiliriz.

    Bunlara seviye eğrileri (level curves) veya kontur çizgileri (contours) denir.

    Topografik haritalarda gördüğümüz yükseklik çizgileri tam olarak bu mantıkla oluşturulur.

    Örneğin:

    $$ f(x,y)=x^2+y^2 $$

    fonksiyonunu ele alalım.

    Belirli bir:

    $$ f(x,y)=c $$

    yüksekliği için:

    $$ x^2+y^2=c $$

    elde ederiz. Bu bir çember denklemidir. Dolayısıyla bu fonksiyonun seviye eğrileri iç içe geçmiş çemberlerden oluşur.

    Merkez \((0,0)\) noktasındadır ve merkezden uzaklaştıkça fonksiyon değeri artar.

    Gradyanı hesaplayalım:

    $$ \nabla f= \begin{bmatrix} 2x\\ 2y \end{bmatrix} $$

    Bu vektör her noktada merkezden dışarı doğru yönelir. Yani tam olarak fonksiyon değerinin en hızlı yükseldiği yönü gösterir.

    Burada çok önemli bir geometrik özellik ortaya çıkar: Gradyan, seviye eğrisine diktir.

    Başka bir ifadeyle, aynı yükseklikte yürüyorsak fonksiyon değeri değişmez. Yüksekliği en hızlı değiştirmek için ise kontur çizgisini mümkün olduğunca dik kesmemiz gerekir.

    Bu nedenle gradyan \(\nabla f\) seviye eğrisine dik yönelir.

    Bu özellik ileride optimizasyon problemlerini geometrik olarak anlamamızda oldukça işimize yarayacaktır.

    Her Yöndeki Değişimi Nasıl Buluruz?

    Şimdiye kadar iki temel yönü inceledik: \(x\) ve \(y\). Ancak gerçek hayatta yalnızca eksenler boyunca hareket etmek zorunda değiliz.

    Örneğin gradyanımız:

    $$ \nabla f= \begin{bmatrix} 4\\ 3 \end{bmatrix} $$

    olsun.

    Biz ise:

    $$ \mathbf{u}= \begin{bmatrix} 1\\ 0 \end{bmatrix} $$

    veya:

    $$ \begin{bmatrix} 0\\ 1 \end{bmatrix} $$

    yerine çapraz bir yönde hareket etmek isteyebiliriz. Peki fonksiyon bu yönde ne kadar hızlı değişir? Bunun cevabını yönlü türev (Directional Derivative) verir.

    Birim uzunluğa sahip \(\mathbf{u}\) vektörü yönümüzü gösteriyor olsun.

    Fonksiyonun bu yöndeki değişim hızı:

    $$ D_{\mathbf{u}}f=\nabla f\cdot\mathbf{u} $$

    ile hesaplanır.

    Bir dakika...

    Nokta çarpım mı?

    Evet. Matematik serimizin ilk makalesinde öğrendiğimiz vektör nokta çarpımı yeniden karşımıza çıktı.

    Gradyan ile gitmek istediğimiz yönün nokta çarpımını alarak, fonksiyonun o yönde ne kadar hızlı değişeceğini bulabiliyoruz.

    Yönlü Türev Örneği

    Gradyanımız:

    $$ \nabla f= \begin{bmatrix} 4\\ 3 \end{bmatrix} $$

    olsun.

    Sadece \(x\) yönünde hareket etmek istersek:

    $$ \mathbf{u}= \begin{bmatrix} 1\\ 0 \end{bmatrix} $$

    kullanırız.

    Yönlü türev:

    $$ \begin{aligned} D_{\mathbf{u}}f &= \begin{bmatrix} 4\\ 3 \end{bmatrix} \cdot \begin{bmatrix} 1\\ 0 \end{bmatrix}\\ &=4 \end{aligned} $$

    olur.

    Bu zaten:

    $$ \frac{\partial f}{\partial x}=4 $$

    sonucudur.

    Sadece \(y\) yönünde gidersek:

    $$ \mathbf{u}= \begin{bmatrix} 0\\ 1 \end{bmatrix} $$

    ve:

    $$ D_{\mathbf{u}}f=3 $$

    elde ederiz.

    Kısmi türevlerin aslında yönlü türevin yalnızca koordinat eksenleri boyunca hesaplanan özel halleri olduğunu görüyoruz.

    Şimdi:

    $$ \mathbf{u}= \begin{bmatrix} 0.8\\ 0.6 \end{bmatrix} $$

    yönünde ilerleyelim.

    Bu vektörün uzunluğu:

    $$ \sqrt{0.8^2+0.6^2}=1 $$

    olduğu için birim vektördür.

    Yönlü türev:

    $$ \begin{aligned} D_{\mathbf{u}}f &= \begin{bmatrix} 4\\ 3 \end{bmatrix} \cdot \begin{bmatrix} 0.8\\ 0.6 \end{bmatrix}\\ &=4(0.8)+3(0.6)\\ &=3.2+1.8\\ &=5 \end{aligned} $$

    olur.

    Dikkat ederseniz \(5\) aynı zamanda gradyanın büyüklüğüydü:

    $$ \|\nabla f\|=5 $$

    Seçtiğimiz:

    $$ \begin{bmatrix} 0.8\\ 0.6 \end{bmatrix} $$

    vektörü zaten gradyanımızın birimleştirilmiş halidir:

    $$ \frac{\nabla f}{\|\nabla f\|} = \begin{bmatrix} 0.8\\ 0.6 \end{bmatrix} $$

    Dolayısıyla tam olarak gradyanın gösterdiği yönde hareket ettik.

    Ve mümkün olan en büyük yönlü türev değerini elde ettik.

    Bu bize matematiksel olarak da şunu gösterir:

    Gradyanın yönü fonksiyonun en hızlı yükseldiği yöndür ve bu yöndeki değişim hızı gradyanın büyüklüğüne eşittir.

    Bunun Arkasında Cosinüs Var

    Nokta çarpımın geometrik tanımını hatırlayalım:

    $$ \mathbf{a}\cdot\mathbf{b} = \|\mathbf{a}\| \|\mathbf{b}\| \cos(\theta) $$

    Yön vektörümüz:

    $$ \mathbf{u} $$

    birim vektör olduğundan:

    $$ \|\mathbf{u}\|=1 $$

    olur.

    Dolayısıyla yönlü türev:

    $$ D_{\mathbf{u}}f = \|\nabla f\|\cos(\theta) $$

    şeklinde yazılabilir.

    Buradaki \(\theta\) gradyan ile hareket yönümüz arasındaki açıdır.

    Eğer tam gradyan yönüne gidersek:

    $$ \theta=0 $$

    ve:

    $$ \cos(0)=1 $$

    olur.

    Dolayısıyla:

    $$ D_{\mathbf{u}}f=\|\nabla f\| $$

    elde ederiz.

    Mümkün olan en büyük değer budur.

    Gradyana dik hareket edersek:

    $$ \theta=90^\circ $$

    ve:

    $$ \cos(90^\circ)=0 $$

    olur.

    Bu durumda:

    $$ D_{\mathbf{u}}f=0 $$

    çıkar.

    Yani fonksiyonun değeri ilk mertebede değişmez.

    Tanıdık geldi mi?

    Biraz önce gradyanın seviye eğrilerine dik olduğunu söylemiştik.

    Seviye eğrisinin üzerinde hareket ederken yükseklik değişmediği için yönlü türev sıfırdır.

    Vektörler, nokta çarpım, trigonometri ve türev...

    Matematik serimizin daha önce birbirinden ayrı gibi görünen parçaları artık aynı yapının içerisinde birleşmeye başladı.

    Gradyan ve Yerel Doğrusal Yaklaşım

    Türev makalemizde önemli bir ilişki görmüştük.

    Tek değişkenli bir fonksiyon için küçük bir \(\Delta x\) değişiminde:

    $$ f(x+\Delta x) \approx f(x)+f'(x)\Delta x $$

    yaklaşımını kullanabiliyorduk.

    Çünkü yeterince küçük bir bölgede düzgün bir eğri neredeyse bir doğru gibi davranır.

    Aynı fikir çok değişkenli fonksiyonlarda da geçerlidir.

    İki değişkenli \(f(x,y)\) fonksiyonu için küçük \(\Delta x\) ve \(\Delta y\) değişiklikleri yaptığımızda:

    $$ f(x+\Delta x,y+\Delta y) \approx f(x,y) + \frac{\partial f}{\partial x}\Delta x + \frac{\partial f}{\partial y}\Delta y $$

    yazabiliriz.

    Gradyanı:

    $$ \nabla f= \begin{bmatrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y} \end{bmatrix} $$

    ve yaptığımız değişikliği:

    $$ \Delta\mathbf{x}= \begin{bmatrix} \Delta x\\ \Delta y \end{bmatrix} $$

    olarak yazarsak denklem oldukça zarif bir hale gelir:

    $$ f(\mathbf{x}+\Delta\mathbf{x}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})\cdot\Delta\mathbf{x} $$

    Bu denklem çok önemlidir.

    Gradyan bize girdilerde yaptığımız küçük bir değişikliğin fonksiyonun çıktısını yaklaşık olarak ne kadar değiştireceğini söyler.

    Başka bir ifadeyle gradyan yalnızca "hangi yöne gitmeliyim?" sorusunun cevabı değildir.

    Aynı zamanda:

    "Bu yönde küçük bir adım atarsam çıktı yaklaşık olarak ne kadar değişecek?"

    sorusunu da cevaplar.

    Yerel Yaklaşım Örneği

    Şu fonksiyonu kullanalım:

    $$ f(x,y)=x^2+y^2 $$

    Gradyanı:

    $$ \nabla f= \begin{bmatrix} 2x\\ 2y \end{bmatrix} $$

    olur.

    Şimdi \((3,4)\) noktasında olduğumuzu düşünelim.

    Fonksiyon değerimiz:

    $$ f(3,4)=3^2+4^2=25 $$

    Gradyanımız:

    $$ \nabla f(3,4)= \begin{bmatrix} 6\\ 8 \end{bmatrix} $$

    olsun.

    Şimdi girdileri çok küçük miktarlarda değiştirelim:

    $$ \Delta x=0.01 $$
    $$ \Delta y=-0.02 $$

    Yani:

    $$ \Delta\mathbf{x}= \begin{bmatrix} 0.01\\ -0.02 \end{bmatrix} $$

    olur.

    Yaklaşık fonksiyon değişimi:

    $$ \begin{aligned} \Delta f &\approx \nabla f\cdot\Delta\mathbf{x}\\ &= \begin{bmatrix} 6\\ 8 \end{bmatrix} \cdot \begin{bmatrix} 0.01\\ -0.02 \end{bmatrix}\\ &=6(0.01)+8(-0.02)\\ &=0.06-0.16\\ &=-0.10 \end{aligned} $$

    çıkar.

    Dolayısıyla yeni fonksiyon değerini:

    $$ f(3.01,3.98)\approx25-0.10=24.90 $$

    olarak tahmin ederiz.

    Gerçek değeri hesaplayalım:

    $$ \begin{aligned} f(3.01,3.98) &=3.01^2+3.98^2\\ &=9.0601+15.8404\\ &=24.9005 \end{aligned} $$

    Tahminimiz:

    $$ 24.90 $$

    gerçek değer ise:

    $$ 24.9005 $$

    çıktı.

    Oldukça yakın.

    Tek değişkenli türevde gördüğümüz yerel doğrusal yaklaşım artık çok boyutlu uzaya taşındı.

    Gradyanın Sıfır Olduğu Noktalar

    Tek değişkenli türev konusunda minimum ve maksimum noktaları incelerken:

    $$ f'(x)=0 $$

    olan noktaların özel olduğunu görmüştük.

    Çok değişkenli fonksiyonlarda bunun karşılığı:

    $$ \nabla f=\mathbf{0} $$

    olmasıdır.

    Yani bütün kısmi türevler aynı anda sıfırsa:

    $$ \frac{\partial f}{\partial x_1} = \frac{\partial f}{\partial x_2} = \ldots = \frac{\partial f}{\partial x_n} =0 $$

    olur.

    Örneğin:

    $$ f(x,y)=x^2+y^2 $$

    fonksiyonunun gradyanı:

    $$ \nabla f= \begin{bmatrix} 2x\\ 2y \end{bmatrix} $$

    idi.

    Gradyanın sıfır olması için:

    $$ 2x=0 $$

    ve:

    $$ 2y=0 $$

    olmalıdır.

    Dolayısıyla:

    $$ (x,y)=(0,0) $$

    elde ederiz.

    Bu gerçekten de kase biçimindeki yüzeyimizin minimum noktasıdır.

    Fakat burada dikkat edilmesi gereken önemli bir ayrıntı vardır.

    Dikkat: Sıfır Gradyan Her Zaman Minimum Değildir

    Tek değişkenli fonksiyonlarda olduğu gibi çok değişkenli fonksiyonlarda da türevin sıfır olması tek başına minimum bulduğumuz anlamına gelmez.

    Gradyanın sıfır olduğu bir nokta:

    • Minimum,
    • Maksimum,
    • veya Eyer Noktası (Saddle Point)

    olabilir.

    Örneğin:

    $$ f(x,y)=x^2-y^2 $$

    fonksiyonunu ele alalım.

    Gradyanı:

    $$ \nabla f= \begin{bmatrix} 2x\\ -2y \end{bmatrix} $$

    olur.

    $$ (0,0) $$

    noktasında:

    $$ \nabla f(0,0)= \begin{bmatrix} 0\\ 0 \end{bmatrix} $$

    çıkar.

    Ancak bu nokta minimum değildir.

    \(x\) yönünde hareket ettiğimizde:

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

    olduğu için fonksiyon yükselir.

    \(y\) yönünde hareket ettiğimizde ise:

    $$ f(0,y)=-y^2 $$

    olduğu için fonksiyon düşer.

    Yani aynı nokta bir yönden bakıldığında vadi, diğer yönden bakıldığında tepe gibidir.

    Bu nedenle şekli bir eyere benzer ve böyle noktalara eyer noktası adı verilir.

    Bu ayrım özellikle yapay sinir ağlarının optimizasyonunda önemlidir.

    Çünkü çok yüksek boyutlu maliyet yüzeylerinde yalnızca minimumlar değil, bu tür düz veya eyer biçimindeki bölgeler de bulunabilir.

    Gradyan bize yerel eğim bilgisini verir.

    Fakat yüzeyin daha geniş geometrisini anlamak için bazen bundan daha fazla bilgi gerekir.

    İkinci Kısmi Türevler

    Tek değişkenli fonksiyonlarda bir fonksiyonun türevinin de türevini alabiliyorduk:

    $$ f''(x) $$

    Bu bize eğimin kendisinin nasıl değiştiği hakkında bilgi veriyordu.

    Çok değişkenli fonksiyonlarda da kısmi türevlerin tekrar türevini alabiliriz.

    Örneğin:

    $$ f(x,y) $$

    için:

    $$ \frac{\partial^2 f}{\partial x^2} $$

    ve:

    $$ \frac{\partial^2 f}{\partial y^2} $$

    hesaplanabilir.

    Ayrıca bir değişkene göre türev aldıktan sonra başka bir değişkene göre tekrar türev alabiliriz:

    $$ \frac{\partial^2 f}{\partial y\partial x} $$

    ve:

    $$ \frac{\partial^2 f}{\partial x\partial y} $$

    Bunlara karma kısmi türevler denir.

    Örneğin:

    $$ f(x,y)=x^2+3xy+y^2 $$

    için:

    $$ \frac{\partial f}{\partial x}=2x+3y $$

    olduğunu biliyoruz.

    Bunun tekrar \(x\)'e göre türevi:

    $$ \frac{\partial^2 f}{\partial x^2}=2 $$

    olur.

    \(y\)'ye göre türevi ise:

    $$ \frac{\partial^2 f}{\partial y\partial x}=3 $$

    çıkar.

    Benzer şekilde:

    $$ \frac{\partial f}{\partial y}=3x+2y $$

    ifadesinden:

    $$ \frac{\partial^2 f}{\partial y^2}=2 $$

    ve:

    $$ \frac{\partial^2 f}{\partial x\partial y}=3 $$

    elde ederiz.

    Bütün ikinci kısmi türevleri bir matris içerisinde bir araya getirdiğimizde Hessian Matrisi adı verilen yapı ortaya çıkar:

    $$ H_f= \begin{bmatrix} \frac{\partial^2f}{\partial x^2} & \frac{\partial^2f}{\partial x\partial y}\\ \frac{\partial^2f}{\partial y\partial x} & \frac{\partial^2f}{\partial y^2} \end{bmatrix} $$

    Bizim örneğimizde:

    $$ H_f= \begin{bmatrix} 2&3\\ 3&2 \end{bmatrix} $$

    olur.

    Gradyan bize yüzeyin hangi yöne doğru eğimli olduğunu söylerken Hessian, bu eğimin kendisinin nasıl değiştiği yani yüzeyin eğriliği hakkında bilgi taşır.

    Bu makalenin ana konusu Gradyan olduğu için Hessian üzerinde daha fazla durmayacağız.

    Ancak ileride optimizasyon yöntemlerini incelerken ikinci mertebeden bilginin neden değerli olabileceğini göreceğiz.

    Sayısal Olarak Kısmi Türev Hesaplamak

    Şimdiye kadar türevleri matematiksel kurallar yardımıyla sembolik olarak hesapladık.

    Fakat elimizde fonksiyonun açık matematiksel formülünün bulunmadığı durumlar da olabilir.

    Bu durumda Türev makalemizde gördüğümüz temel tanıma geri dönebiliriz.

    Tek değişkende:

    $$ f'(x) \approx \frac{f(x+h)-f(x)}{h} $$

    yaklaşımını kullanabiliyorduk.

    Çok değişkenli fonksiyonlarda da yalnızca ilgilendiğimiz değişkeni küçük bir miktar değiştirerek kısmi türevi yaklaşık olarak hesaplayabiliriz.

    Örneğin:

    $$ \frac{\partial f}{\partial x} \approx \frac{f(x+h,y)-f(x,y)}{h} $$

    ve:

    $$ \frac{\partial f}{\partial y} \approx \frac{f(x,y+h)-f(x,y)}{h} $$

    yazabiliriz.

    Daha hassas bir yaklaşım için iki taraflı fark kullanılabilir:

    $$ \frac{\partial f}{\partial x} \approx \frac{f(x+h,y)-f(x-h,y)}{2h} $$

    Bu yöntem özellikle hesapladığımız gradyanların doğru olup olmadığını kontrol etmek için kullanılabilir.

    Ancak büyük yapay sinir ağlarında milyonlarca parametre için her parametreyi ayrı ayrı ileri ve geri oynatarak türev hesaplamak son derece pahalı olacaktır.

    Dolayısıyla pratikte çok daha verimli yöntemlere ihtiyacımız vardır.

    Bunun yolu bizi birazdan değineceğimiz Zincir Kuralına ve daha sonra yapay sinir ağlarında göreceğimiz geri yayılım mekanizmasına götürecektir.

    Yapay Zeka Gözüyle Kısmi Türevler

    Artık konunun yapay zekayla bağlantısını doğrudan kurabiliriz.

    Türev makalemizde oldukça basit bir maliyet fonksiyonu kullanmıştık:

    $$ J(w)=(w-3)^2 $$

    Burada modelimizin yalnızca tek bir \(w\) parametresi vardı. Bu nedenle \(J'(w)\) türevi bize modelin hatasının \(w\)'ye göre nasıl değiştiğini söylemek için yeterliydi. Gerçek modellerde ise durum böyle değildir.

    En basit doğrusal modellerden birini düşünelim:

    $$ \hat{y}=wx+b $$

    Burada artık iki adet öğrenilebilir parametremiz vardır: \(w\) ve \(b\)

    Modelimizin gerçek sonuçtan ne kadar uzak olduğunu ölçmek için basit bir karesel hata fonksiyonu kullanalım:

    $$ J(w,b)=(wx+b-y)^2 $$

    Maliyet fonksiyonumuz artık iki değişkenlidir.

    Dolayısıyla yalnızca \(J'(w)\) gibi tek bir türevden bahsedemeyiz.

    İki farklı soru sormamız gerekir:

    \(b\) sabitken \(w\)'yi değiştirirsem hata ne olur?

    ve:

    \(w\) sabitken \(b\)'yi değiştirirsem hata ne olur?

    İşte bunlar kısmi türevlerdir.

    Basit Bir Modelin Gradyanını Hesaplayalım

    Maliyet fonksiyonumuz:

    $$ J(w,b)=(wx+b-y)^2 $$

    olsun.

    Önce \(w\)'ye göre kısmi türevi hesaplayalım:

    $$ \frac{\partial J}{\partial w} = 2(wx+b-y)x $$

    Benzer şekilde \(b\)'ye göre:

    $$ \frac{\partial J}{\partial b} = 2(wx+b-y) $$

    elde ederiz.

    Dolayısıyla maliyet fonksiyonumuzun gradyanı:

    $$ \nabla J= \begin{bmatrix} 2(wx+b-y)x\\ 2(wx+b-y) \end{bmatrix} $$

    olur.

    Şimdi elimizde tek bir eğitim örneği olduğunu düşünelim:

    $$ x=2 $$
    $$ y=7 $$

    ve modelimiz başlangıçta:

    $$ w=1 $$
    $$ b=0 $$

    değerlerine sahip olsun.

    Modelin tahmini:

    $$ \begin{aligned} \hat{y} &=wx+b\\ &=(1)(2)+0\\ &=2 \end{aligned} $$

    olur.

    Gerçek değer \(7\) olduğuna göre modelimizin hatası oldukça büyüktür.

    Maliyet:

    $$ \begin{aligned} J(1,0) &=(2-7)^2\\ &=25 \end{aligned} $$

    çıkar.

    Şimdi gradyanı hesaplayalım.

    Önce:

    $$ wx+b-y=2-7=-5 $$

    olur.

    Dolayısıyla:

    $$ \begin{aligned} \frac{\partial J}{\partial w} &=2(-5)(2)\\ &=-20 \end{aligned} $$

    ve:

    $$ \begin{aligned} \frac{\partial J}{\partial b} &=2(-5)\\ &=-10 \end{aligned} $$

    elde ederiz.

    Gradyanımız:

    $$ \nabla J= \begin{bmatrix} -20\\ -10 \end{bmatrix} $$

    oldu.

    Şimdi bu vektörün ne söylediğini düşünelim.

    Birinci bileşen:

    $$ -20 $$

    maliyetin \(w\)'ye göre değişimini,

    ikinci bileşen:

    $$ -10 $$

    ise maliyetin \(b\)'ye göre değişimini gösteriyor.

    Her ikisinin de negatif olması, \(w\) ve \(b\) değerlerini artırdığımızda bulunduğumuz bölgede maliyetin azalacağını gösterir.

    Gradyan bize maliyetin en hızlı arttığı yönü verdiğine göre, maliyeti azaltmak için bunun ters yönüne gitmemiz gerekir:

    $$ -\nabla J= \begin{bmatrix} 20\\ 10 \end{bmatrix} $$

    Artık modelimizin iki parametresinin de hangi yönde değiştirilmesi gerektiğini biliyoruz.

    Burada çok önemli bir şey oldu.

    Model bize:

    "Tahminim yanlış."

    demekle yetinmedi.

    Gradyan sayesinde daha ayrıntılı bir bilgi elde ettik:

    "\(w\)'yi şu yönde, \(b\)'yi ise şu yönde değiştirirsen hatan azalacak."

    İşte öğrenme dediğimiz mekanizmanın matematiksel kalbi budur.

    İki Parametreden Milyarlarca Parametreye

    Örneğimizde yalnızca \(w\) ve \(b\) olmak üzere iki parametre vardı.

    Bu nedenle maliyet fonksiyonumuz:

    $$ J(w,b) $$

    şeklindeydi ve gradyanımız iki elemanlı bir vektördü.

    Bir modelde 100 parametre varsa:

    $$ J(w_1,w_2,\ldots,w_{100}) $$

    ve gradyanı:

    $$ \nabla J= \begin{bmatrix} \frac{\partial J}{\partial w_1}\\ \frac{\partial J}{\partial w_2}\\ \vdots\\ \frac{\partial J}{\partial w_{100}} \end{bmatrix} $$

    şeklinde 100 elemanlı olacaktır.

    Bir milyar parametre varsa gradyan da bir milyar bileşen taşır.

    Elbette bir milyar boyutlu bir yüzeyi gözümüzde canlandıramayız.

    Fakat matematiğin güzelliği burada bir kez daha karşımıza çıkar.

    Vektörleri işlerken söylediğimiz gibi, üç boyuttan daha yüksek bir uzayı fiziksel olarak çizemememiz o uzayda hesaplama yapamayacağımız anlamına gelmez.

    İki boyutlu bir yüzeyde öğrendiğimiz:

    • yön,
    • eğim,
    • gradyan,
    • nokta çarpım,
    • yerel değişim

    gibi kavramlar milyonlarca boyutlu uzaylarda da matematiksel olarak çalışmaya devam eder.

    Bir yapay sinir ağının eğitimini gözümüzde devasa, çok boyutlu bir maliyet yüzeyi üzerinde hareket etmek gibi düşünebiliriz.

    Her parametre bu uzayın ayrı bir eksenidir.

    Maliyet fonksiyonu ise bulunduğumuz noktanın "yüksekliğini" verir.

    Modelin amacı bu yüzey üzerinde daha düşük maliyete sahip bölgelere ulaşmaktır.

    Gradyan da her noktada yüzeyin hangi yöne doğru en hızlı yükseldiğini söyler.

    Dolayısıyla ters yön:

    $$ -\nabla J $$

    bize aşağı doğru giden yönü gösterir.

    Bu kadar.

    Modern yapay zekanın öğrenme mekanizmasının merkezindeki fikir, özünde bu kadar zariftir.

    Elbette gerçek uygulamada işler bundan çok daha karmaşık hale gelir.

    Hangi büyüklükte adım atacağız?

    Her adımda bütün veriyi mi kullanacağız?

    Yüzey çok engebeliyse ne olacak?

    Gradyan çok küçük veya çok büyük olursa ne yapacağız?

    Yerel minimumlar ve eyer noktalarıyla nasıl baş edeceğiz?

    Bunların tamamına ileride optimizasyon makalelerinde geri döneceğiz.

    Türev, Kısmi Türev ve Gradyan Arasındaki Fark

    Buraya kadar öğrendiklerimizi kısa biçimde toparlayalım.

    Tek değişkenli bir fonksiyon:

    $$ f(x) $$

    için türev:

    $$ f'(x) $$

    tek bir sayı üretir ve fonksiyonun o noktadaki değişim hızını gösterir.

    Çok değişkenli:

    $$ f(x,y) $$

    fonksiyonunda kısmi türev:

    $$ \frac{\partial f}{\partial x} $$

    yalnızca \(x\)'in etkisini ölçerken:

    $$ \frac{\partial f}{\partial y} $$

    yalnızca \(y\)'nin etkisini ölçer.

    Gradyan ise:

    $$ \nabla f= \begin{bmatrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y} \end{bmatrix} $$

    bütün bu kısmi türevleri tek bir vektörde bir araya getirir.

    Özetle:

    Kavram Girdi Sayısı Sonuç Ne Söyler?
    Türev Genellikle 1 Skaler Fonksiyonun anlık değişim hızını
    Kısmi Türev Birden fazla Skaler Bir değişkenin tek başına etkisini
    Gradyan Birden fazla Vektör En hızlı artış yönünü ve hızını
    Negatif Gradyan Birden fazla Vektör En hızlı azalış yönünü

    Bu ayrım özellikle yapay zeka konularına geçtiğimizde sürekli karşımıza çıkacaktır.

    Peki Değişkenler Birbirine Bağlıysa?

    Şimdi çok önemli bir soruya geldik.

    Kısmi türev alırken bir değişkeni değiştiriyor, diğerlerini sabit kabul ediyorduk.

    Örneğin:

    $$ f(x,y) $$

    fonksiyonunda:

    $$ \frac{\partial f}{\partial x} $$

    hesaplanırken \(y\)'nin değişmediğini varsayıyorduk.

    Fakat gerçek sistemlerde değişkenler çoğu zaman birbirine bağlıdır.

    Örneğin:

    $$ z=f(x,y) $$

    olsun.

    Ama aynı zamanda:

    $$ x=x(t) $$

    ve:

    $$ y=y(t) $$

    olsun.

    Yani zaman ilerledikçe hem \(x\), hem de \(y\) değişiyor.

    Bu durumda \(z\)'nin zamana göre değişimini nasıl hesaplayacağız?

    Artık yalnızca:

    $$ \frac{\partial z}{\partial x} $$

    veya:

    $$ \frac{\partial z}{\partial y} $$

    tek başına yeterli değildir.

    Çünkü:

    • \(t\), \(x\)'i değiştiriyor,
    • \(t\), \(y\)'yi değiştiriyor,
    • \(x\) ve \(y\) birlikte \(z\)'yi değiştiriyor.

    Değişimler bir zincir halinde birbirine bağlanıyor.

    İşte yapay sinir ağlarının matematiğinde son derece önemli olan yeni problem tam olarak budur.

    Bir sinir ağında ilk katmandaki bir ağırlığın değişmesi, sonraki katmanın değerini değiştirir.

    O değer başka bir katmanı etkiler.

    O da bir sonrakini.

    Ve en sonunda modelin maliyet fonksiyonu değişir.

    Dolayısıyla şu soruyu cevaplamamız gerekir:

    Zincirin başındaki küçücük bir değişiklik, zincirin sonundaki sonucu ne kadar etkiliyor?

    Bunun cevabını Zincir Kuralı (Chain Rule) verecek.

    Türev bize değişimi ölçmeyi öğretti.

    Kısmi türevler, birden fazla değişken olduğunda her değişkenin etkisini ayrı ayrı görmemizi sağladı.

    Gradyan ise bütün bu değişim bilgilerini tek bir vektörde bir araya getirerek çok boyutlu uzayda hangi yönün önemli olduğunu gösterdi.

    Bir sonraki adımda bu değişimlerin birbirine bağlı olduğu sistemlere geçeceğiz.

    Ve işte o noktada, modern yapay sinir ağlarının nasıl öğrenebildiğini anlamak için eksik olan en önemli parçalardan birini daha yerine koyacağız: Zincir Kuralı.

    Yazar: Levent KARAGÖL

    Makaleyi Paylaş:

    İlgili Makaleler