7  Kapalı (Implicit) Türev

Çember, merdiven ve gradient’in kapısı

NotBölüm bilgisi

7.1 Bu Derste Ne Var?

Şimdiye kadar hep \(y = f(x)\) biçiminde açık fonksiyonların türevini aldık. Ama \(x^2 + y^2 = 25\) (bir çember) gibi, \(y\)’nin \(x\) cinsinden tek bir çıktı olmadığı kapalı ilişkilerde \(dy/dx\) nasıl bulunur? Cevap kapalı türev: denklemin iki tarafını da türevleyip \(dy/dx\)’i çözersin. Bu işlem ilk bakışta tuhaftır — ama ardındaki sezgi, çok değişkenli düşüncenin kapısını aralar.

Üç ana fikir:

  1. Kapalı eğri: \(x\) ve \(y\)’nin bir denklemi sağladığı noktalar kümesi (bir fonksiyon grafiği olmak zorunda değil).
  2. Prosedür: denklemin iki tarafını da türevle (\(x^2 \to 2x \cdot dx\), \(y^2 \to 2y \cdot dy\)), sonra \(dy/dx\)’i çöz.
  3. Anlam: \(s = x^2 + y^2\) iki değişkenli bir fonksiyon; \(ds = 2x \cdot dx + 2y \cdot dy\). Eğri üzerinde kalmak = \(s\)’yi sabit tutmak = \(ds = 0\).
flowchart LR
    A["Denklem: x² + y² = 25"] --> B["İki tarafı türevle<br/>2x·dx + 2y·dy = 0"]
    B --> C["dy/dx = −x/y"]
    A --> D["s = x² + y² (iki değişkenli)"]
    D --> E["ds = 2x·dx + 2y·dy<br/>= ∇s · (dx, dy)"]
    E --> F["ds = 0 ⟺ adım ⊥ ∇s<br/>(level set üstünde kal)"]
    F --> G["🔥 Gradient descent<br/>−∇s en dik iniş"]
    style G fill:#fff3e0,stroke:#f57c00,stroke-width:3px
Şekil 7.1: Kapalı türevden gradient’e: \(ds = \nabla s \cdot (dx, dy)\) iç çarpımı.

“this is a little sneak peek into multivariable calculus … the key, as always, is to have a clear image of what tiny nudges are at play and how they depend on each other.” — Grant, 14:37

İpucuBuilder Notu — ML Köprüleri
  • \(ds = 2x \cdot dx + 2y \cdot dy\) aslında \(\nabla s \cdot (dx, dy)\) — yani gradient. “Eğri (level set) üzerinde kal” koşulu (\(ds = 0\)), adımın gradient’e dik olması demektir. Gradient descent’in özü budur: \(-\nabla\) en dik iniş yönü, level set’e diktir.
  • Kapalı türevimplicit layers / Deep Equilibrium Models (DEQ): bir denge (fixed point) noktasından türev almak; MAML ve hyperparameter optimization’da implicit gradient.
  • İlgili oranlar (related rates) → bağlı değişkenlerin değişim oranlarının birbirine kilitlenmesi; kısıt (constraint) propagasyonu.
  • \(d(\ln x) = 1/x\), ters fonksiyondan → ters fonksiyon türevi; normalizing flows’ta log-det-Jacobian hesabının temeli.

7.2 Çemberin Teğeti: Bir Fonksiyon Değil

Orijin merkezli, yarıçapı 5 olan bir çember al: \(x^2 + y^2 = 5^2\). Bu çembere, örneğin \((3, 4)\) noktasında teğet doğrunun eğimini bulmak istiyoruz.

Geometriye hakimsen, teğetin o noktadaki yarıçapa dik olduğunu bilebilirsin. Ama bunu bilmediğimizi, ya da çemberin dışındaki eğrilere de genelleşen bir teknik istediğimizi varsayalım.

Bir sorun var: bu eğri bir fonksiyonun grafiği değil. \(x\) bir girdi, \(y\) bir çıktı değil; ikisi de bir denklemle birbirine bağlı, karşılıklı bağımlı değerler. Buna kapalı eğri denir.

İpucuBuilder Notu — DEQ ve Implicit

Kapalı eğriler ML’de “çözümü açıkça yazılamayan ama bir koşulla tanımlı” nesnelerin habercisidir. Bir Deep Equilibrium Model (DEQ), çıktısını \(z = f(z, x)\) sabit-nokta denklemiyle tanımlar — \(z\)’yi açıkça çözmek yerine kapalı koşulu kullanır. Bu modellerin gradyanı, tam da bu derste öğreneceğimiz kapalı türev mantığıyla (implicit function theorem) hesaplanır.

7.3 Kapalı Türev Prosedürü: Her İki Tarafı Türevle

Mekanik şöyle. Denklemin iki tarafını da türevle. \(x^2\) için \(2x \cdot dx\) yaz, \(y^2\) için \(2y \cdot dy\) yaz, sağdaki sabit \(5^2\)’nin türevi ise 0:

\[ x^2 + y^2 = 5^2 \]

\[ 2x\,dx + 2y\,dy = 0 \qquad \frac{dy}{dx} = -\frac{x}{y} = -\frac{3}{4} \]

\((3, 4)\) noktasında eğim \(-3/4\) çıkar. Bu garip sürecin adı kapalı türev.

“this strange process is called implicit differentiation.” — Grant, 3:05

7.4 İlgili Oranlar: Kayan Merdiven

Aynı denklem bambaşka bir problemde de karşımıza çıkar. 5 metrelik bir merdiven duvara dayalı; üst ucu yerden 4 m yukarıda başlıyor, dolayısıyla alt ucu duvardan 3 m uzakta. Merdiven kayıyor: üst uç saniyede 1 m düşüyor. Soru: o ilk anda alt uç duvardan ne hızla uzaklaşıyor?

Üst ucun yüksekliğine \(y(t)\), alt ucun duvara uzaklığına \(x(t)\) diyelim. Onları bağlayan denklem Pisagor, ve her \(t\) anında doğru:

\[ x(t)^2 + y(t)^2 = 5^2 \]

Zincir kuralıyla zamana göre türevini al:

\[ 2x\,\frac{dx}{dt} + 2y\,\frac{dy}{dt} = 0 \]

\(t = 0\)’da \(x = 3\), \(y = 4\) ve \(dy/dt = -1\). Yerine koy:

\[ 2(3)\frac{dx}{dt} + 2(4)(-1) = 0 \qquad \frac{dx}{dt} = \frac{4}{3} \]

Alt uç saniyede \(4/3\) m hızla uzaklaşıyor.

İpucuBuilder Notu — Manifold Optimizasyon

İlgili oranlar = bağlı değişkenlerin değişim oranlarının birbirine kilitlenmesi. ML’de bir kısıt yüzeyi üzerinde hareket ederken (örneğin normalize edilmiş ağırlıklar \(\|w\| = 1\) koşulu) parametrelerin değişim oranları bağımsız değildir; biri değişince diğerleri kısıtı korumak için uyum sağlar. Bu, kısıtlı optimizasyon ve manifold üzerinde gradient (Riemannian optimization) düşüncesinin tohumu.

7.5 Kapalı Türevin Anlamı: İki Değişkenli Fonksiyon

Bu ifadeye bir isim verelim: \(s = x^2 + y^2\). \(s\) aslında iki değişkenli bir fonksiyondur — düzlemdeki her \((x, y)\) noktasını bir sayıyla eşler. Çember üzerindeki noktalar için bu sayı 25’tir; merkezden uzaklaşırsan daha büyük, merkeze yaklaşırsan daha küçük olur.

\(s\)’nin türevini almak demek: her iki değişkende küçük birer değişim (\(dx\) ve \(dy\)) düşünmek — illa çember üzerinde kalan bir adım değil, düzlemde herhangi bir yönde herhangi bir küçük adım — ve \(s\)’nin ne kadar değiştiğini sormak:

\[ ds = 2x\,dx + 2y\,dy \]

İşte anahtar: adımlarını çember boyunca kısıtlarsan, \(s\)’nin değerini sabit (25) tutmak istiyorsun demektir, yani \(ds = 0\):

\[ 2x\,dx + 2y\,dy = 0 \]

Buradan \(dy/dx = -x/y\) çıkar — ilk bölümdeki “garip” prosedür artık anlamlı: çemberde kalmak = \(s\)’yi değiştirmemek.

“when you restrict yourself to steps along the circle … you want to ensure that this value of s doesn’t change … ds should be 0.” — Grant, 10:07

İpucuBuilder Notu — Gradient’in Kalbi

Bu, çok değişkenli calculus’un ve gradient descent’in tam kalbidir. \(ds = 2x \cdot dx + 2y \cdot dy\) aslında bir iç çarpımdır:

\[ ds = \nabla s \cdot (dx, dy), \qquad \nabla s = (2x, 2y) \]

\(\nabla s\) gradient vektörüdür. “Level set (\(s\) = sabit) üzerinde kal” koşulu \(ds = 0\), adımın gradient’e dik olması demektir. Gradient descent bunun tersini kullanır: \(s\)’yi en hızlı değiştirmek (azaltmak) için \(-\nabla s\) yönünde adım atarsın.

7.6 Daha Fazla Örnek: \(\sin(x) \cdot y^2 = x\)

\(x^2 + y^2 = 5^2\)’de özel bir şey yok; başka bir örnek deneyelim: \(\sin(x) \cdot y^2 = x\). Bileşenleri \(dx, dy\) olan küçük bir adım al ve her iki tarafın türevini al.

Sol tarafta bir çarpım var, çarpım kuralı:

\[ \sin(x)\cdot 2y\,dy + y^2\cdot\cos(x)\,dx = dx \]

Sağ taraf yalnızca \(x\) olduğu için değişimi tam olarak \(dx\)’tir. İki tarafı eşitlemek şu demek: \(dx, dy\) adımı eğri üzerinde kalacaksa, sol ve sağ tarafların değişimi aynı olmalı.

İpucuBuilder Notu — Kısıt Manifoldu

“İki tarafın değişimi eşit olmalı” ilkesi, bir kısıt manifoldu üzerinde kalmanın koşuludur. Generative modellerde ve fizik-bilgili ağlarda (PINN), bir denklemi (kısıtı) sağlayan çözümler ararsın; eğitim, tam bu “her iki tarafın değişimini eşitle” koşulunu bir kayıp terimine çevirir.

7.7 \(\ln(x)\)’in Türevi: Ters Fonksiyondan

Kapalı türevin güzel bir kullanımı: yeni türev formülleri keşfetmek. \(e^x\)’in türevinin kendisi olduğunu biliyoruz; peki onun ters fonksiyonu olan doğal logaritma \(\ln(x)\)’in türevi nedir?

\(\ln(x)\)’in grafiğini bir kapalı eğri olarak düşün: \(y = \ln(x)\) olan tüm \((x, y)\) noktaları. Bunu yeniden düzenle:

\[ y = \ln(x) \qquad e^y = x \]

Artık \(e^y\)’nin türevini bildiğimiz için iki tarafın türevini alalım. Sol tarafın değişimi \(e^y \cdot dy\), sağ tarafın değişimi \(dx\). Eğri üzerinde kalmak için bu ikisi eşit olmalı:

\[ e^y\,dy = dx \qquad \frac{dy}{dx} = \frac{1}{e^y} = \frac{1}{x} \]

Eğri üzerindeyken \(e^y\) zaten \(x\)’e eşit, dolayısıyla eğim \(1/x\):

\[ \frac{d}{dx}\ln(x) = \frac{1}{x} \]

“the derivative of ln of x is 1 divided by x.” — Grant, 14:24

İpucuBuilder Notu — Normalizing Flows

“Bir fonksiyonun türevini biliyorsan, tersinin türevini kapalı türevle çıkar” tekniği ML’de normalizing flows’un kalbidir. Bir flow, veriyi tersine çevrilebilir bir dönüşümle basit bir dağılıma eşler; olabilirliği hesaplamak için dönüşümün tersinin Jacobian’ının log-determinantı gerekir. \(d(\ln x) = 1/x\) örneği, bu ters-fonksiyon-türevi mantığının en sade hâlidir.

7.8 Bu Dersin Özeti

  1. Kapalı eğri: \(x\) ve \(y\)’nin bir denklemi sağladığı noktalar kümesi (bir fonksiyon grafiği olmak zorunda değil).
  2. Kapalı türev: denklemin iki tarafını da türevle, sonra \(dy/dx\)’i çöz. Çemberde \((3,4)\): \(dy/dx = -x/y = -3/4\).
  3. İlgili oranlar (merdiven): \(x^2 + y^2 = 5^2\) zamanın fonksiyonu; türevle \(\to 2x(dx/dt) + 2y(dy/dt) = 0 \to dx/dt = 4/3\) m/s.
  4. Anlam: \(s = x^2 + y^2\) iki değişkenli bir fonksiyondur; \(ds = 2x \cdot dx + 2y \cdot dy\).
  5. Eğri üzerinde kalmak = \(s\)’yi sabit tutmak = \(ds = 0\). Ve \(ds = \nabla s \cdot (dx, dy)\); gradient \(\nabla s = (2x, 2y)\) her zaman level set’e diktir.
  6. \(\sin(x) \cdot y^2 = x\): iki tarafı türevle, eğri üstünde kalma = iki tarafın değişimi eşit.
  7. \(d(\ln x)/dx = 1/x\): \(e^y = x\) kapalı eğrisinden.
ÖnemliTek bir cümle

Kapalı türev, bir eğriyi \(y = f(x)\) olarak çözmeden denklemin iki tarafını türevleyip “eğri üstünde kal” koşulunu (\(ds = 0\)) yazmaktır; \(ds = 2x \cdot dx + 2y \cdot dy\) aslında gradient \(\nabla s\) ile adımın iç çarpımıdır — bu yüzden kapalı türev, çok değişkenli calculus ile gradient descent’in kapısıdır.

7.9 Kontrol Soruları

Cevap: Kapalı türev: \(dy/dx = -x/y = -0/5 = 0\). Eğim sıfır, yani teğet yatay. Mantıklı: \((0, 5)\) çemberin en üst noktasıdır ve orada teğet doğru yataydır. (Benzer şekilde \((5, 0)\)’da \(-5/0\) tanımsız \(\to\) dikey teğet.)

Cevap: İki tarafı zamana göre türevle (zincir kuralı): \(dV/dt = 4\pi r^2 \cdot (dr/dt)\). Yerine koy: \(10 = 4\pi(25) \cdot (dr/dt) = 100\pi \cdot (dr/dt)\). Çöz: \(dr/dt = 10/(100\pi) = 1/(10\pi) \approx 0{,}032\) cm/s.

Cevap: Eğri, \(s = x^2+y^2\) değerinin sabit (25) olduğu noktalar kümesidir. Eğri üzerinde kalmak, \(s\)’yi 25’te tutmak demek; bir niceliğin sabit kalması da değişiminin sıfır olması demektir, yani \(ds = 0\). Geometrik olarak \(ds = 0\) olan adımlar, gradient \(\nabla s\)’ye dik olan adımlardır.

Cevap: İç çarpım, adım \(\nabla s\) ile aynı yöndeyse en büyük (\(s\) en hızlı artar), \(\nabla s\)’ye dik ise sıfırdır (\(s\) değişmez = level set boyunca). Gradient descent, bir kaybı en hızlı azaltmak için ters yöne, \(-\nabla s\) yönüne adım atar (\(ds\) en negatif). Yani \(\nabla s\) “en dik çıkış”, \(-\nabla s\) “en dik iniş”, \(\nabla s\)’ye dik yönler ise “kaybı değiştirmeyen” yönlerdir. Tüm optimizasyon bu resimden çıkar.

7.10 Egzersizler

Egzersiz 1. \(x^3 + y^3 = 6xy\) (Descartes yaprağı) eğrisinde \(dy/dx\)’i kapalı türevle bul.

Egzersiz 2. (İlgili oran) Bir karenin alanı \(A = s^2\). Alan \(dA/dt = 4\) cm²/s hızla büyüyorsa, kenar \(s = 10\) cm iken kenar ne hızla büyür (\(ds/dt\))?

Egzersiz 3. \(d(\sqrt{x})/dx\)’i kapalı türevle bul: \(y = \sqrt{x}\) ilişkisini \(y^2 = x\) yazıp iki tarafı türevle. Sonucu \(1/(2\sqrt{x})\) ile karşılaştır.

Egzersiz 4. (Python — sembolik doğrulama) SymPy’nin idiff fonksiyonuyla kapalı türevleri al.

Egzersiz 5. (Sonraki dersin habercisi) Bu seride türevi hep “çok küçük \(dx\)” sezgisiyle kullandık, ama “\(dx \to 0\) limiti” tam olarak ne demek? Ders 7, limitleri, epsilon-delta tanımını ve L’Hôpital kuralını resmî olarak ele alacak.

7.11 Anahtar Kavramlar (Cheat Sheet)

Kavram Tanım Grant’ta
Kapalı eğri \(x, y\) bir denklemi sağlayan noktalar (fonksiyon grafiği değil) 1m52
Kapalı türev İki tarafı türevle: \(x^2 \to 2x \cdot dx\), \(y^2 \to 2y \cdot dy\) 2m04
\(dy/dx = -x/y\) Çemberin teğet eğimi; \((3,4) \to -3/4\) 2m51
İlgili oranlar Merdiven: \(2x(dx/dt) + 2y(dy/dt) = 0 \to 4/3\) m/s 3m26
\(s = x^2 + y^2\) İki değişkenli fonksiyon; her \((x,y) \to\) bir sayı 8m03
\(ds = 2x \cdot dx + 2y \cdot dy\) Bir \((dx, dy)\) adımının \(s\)’yi ne kadar değiştirdiği 9m35
\(ds = 0\) koşulu Eğri (level set) üzerinde kalmanın koşulu 10m07
\(\nabla s \perp\) level set Gradient, kontura diktir; gradient descent’in temeli 8m30
\(d(\ln x)/dx = 1/x\) \(e^y = x\) kapalı eğrisinden (ters fonksiyon) 14m24

7.12 ML Bağlantıları Özeti

İpucu7 köprü
  1. \(ds = \nabla s \cdot (dx, dy)\) → gradient; level set’e dik; gradient descent \(-\nabla s\) yönünde en dik iniş.
  2. Kapalı türev → implicit layers / Deep Equilibrium Models (DEQ): fixed-point’ten gradyan; MAML ve hyperparameter optimization’da implicit gradient.
  3. İlgili oranlar → kısıtlı/manifold optimizasyon (\(\|w\| = 1\)), Riemannian gradient; bağlı oranların kilitlenmesi.
  4. \(ds = 0\) koşulu → eşitlik kısıtları, Lagrange çarpanları, kısıt manifoldu üzerinde kalma.
  5. \(d(\ln x) = 1/x\) (ters fonksiyon) → normalizing flows’ta log-det-Jacobian; değişken değiştirme formülü.
  6. İki değişkenli \(s\) → çok değişkenli calculus; kısmi türevler \(\partial/\partial x\), \(\partial/\partial y\) ve tam gradient (bir sonraki büyük adım).
  7. Level set / kontur → loss landscape görselleştirme; eğitim yörüngesini kontur çizgileri üzerinde okumak.
ÖnemliTek bir şey alıp gideceksen

Kapalı türev sihir değil. \(s = x^2 + y^2\) gibi iki değişkenli bir ifadenin küçük bir adımda ne kadar değiştiği \(ds = 2x \cdot dx + 2y \cdot dy\)’dir; bir eğri üzerinde kalmak, bu değişimi sıfırlamaktır (\(ds = 0\)). Bu ifade aslında gradient \(\nabla s\) ile adımın iç çarpımıdır — ve gradient’in level set’e dik olması, tüm gradient-temelli optimizasyonun geometrik kalbidir.