Türev: değişim hızı
Önkoşul:Fonksiyon ve grafik sezgisi
Kanca
- derste “iki nokta arasındaki ortalama hızı” hesapladık. Peki tek bir noktadaki anlık hızı nasıl bulursun — o noktada başka bir “ikinci nokta” bile yokken?
Sezgi
Türev, bir fonksiyonun bir noktadaki anlık değişim hızıdır — iki nokta arasındaki mesafe sıfıra yaklaştıkça, ortalama hızın yakınsadığı değer. Geometrik olarak, bu, o noktadaki teğet doğrunun eğimidir. Aşağıda bir fonksiyon seç, noktayı kaydır, ve teğetin canlı değiştiğini izle:
f'(x) = 2x
x₀ = 2.00, f(x₀) = 4.00
f'(x₀) = 4.00 (teğetin eğimi)
Mekanizma
x0=2 noktasındaki anlık değişim hızını, iki nokta arasındaki mesafeyi (h) giderek küçülterek arayalım:
h küçüldükçe ortalama hız neye yakınsıyor?
# 8. derste "ortalama değişim hızını" gördük: iki nokta arasındaki eğim.
# Türev, bu iki nokta birbirine sonsuz yakınlaştıkça ortaya çıkan "anlık" hızdır.
def f(x):
return x ** 2
x0 = 2.0
print(f"f(x) = x^2, x0 = {x0} noktasındaki anlık değişim hızını arıyoruz.\n")
print("h küçüldükçe (x0 ile x0+h arasındaki mesafe azaldıkça) ortalama hız:")
for h in [1.0, 0.1, 0.01, 0.0001]:
sonlu_fark = (f(x0 + h) - f(x0)) / h
print(f" h={h:<8} -> (f({x0}+{h}) - f({x0})) / {h} = {sonlu_fark:.6f}")
print("\nh küçüldükçe, ortalama hız 4.0'a yaklaşıyor -- bu, x0=2 noktasındaki")
print("türevdir: f'(2) = 4.")f(x) = x^2, x0 = 2.0 noktasındaki anlık değişim hızını arıyoruz.
h küçüldükçe (x0 ile x0+h arasındaki mesafe azaldıkça) ortalama hız:
h=1.0 -> (f(2.0+1.0) - f(2.0)) / 1.0 = 5.000000
h=0.1 -> (f(2.0+0.1) - f(2.0)) / 0.1 = 4.100000
h=0.01 -> (f(2.0+0.01) - f(2.0)) / 0.01 = 4.010000
h=0.0001 -> (f(2.0+0.0001) - f(2.0)) / 0.0001 = 4.000100
h küçüldükçe, ortalama hız 4.0'a yaklaşıyor -- bu, x0=2 noktasındaki
türevdir: f'(2) = 4.Bu limitin analitik (formülle bulunan) karşılığına bakalım:
Analitik türev formülü: (x^n)' = n·x^(n-1)
# x^2'nin türevi, analitik olarak f'(x) = 2x formülüyle bulunur (kalkülüsün
# temel kuralı: x^n'in türevi n*x^(n-1)'dir).
def f_turev(x):
return 2 * x
analitik_sonuc = f_turev(x0)
print(f"\nAnalitik formül: f'(x) = 2x => f'({x0}) = {analitik_sonuc}")
print(f"Sonlu fark limiti (h->0) ile analitik formül aynı sonucu veriyor: {np.isclose(analitik_sonuc, 4.0)}")
Analitik formül: f'(x) = 2x => f'(2.0) = 4.0
Sonlu fark limiti (h->0) ile analitik formül aynı sonucu veriyor: TrueMatematik
Türevin tanımı
Bu, 8. dersteki ortalama değişim hızı formülünün aynısıdır — sadece (iki nokta arasındaki mesafe) sıfıra yaklaşırken alınan limitidir.
Kod
Teğet doğru: türev = eğim
# Türev, x0 noktasındaki teğet doğrunun eğimidir. Teğet doğru, o noktada
# fonksiyona "dokunan" düz bir çizgidir.
egim = f_turev(x0)
sabit = f(x0) - egim * x0 # y = egim*x + sabit, y-f(x0) = egim*(x-x0)
def teget(x):
return egim * x + sabit
print(f"\nTeğet doğru: y = {egim}x + ({sabit})")
print(f"x0={x0} noktasında: f({x0})={f(x0)}, teğet({x0})={teget(x0)} (aynı nokta -- teğet, eğriye dokunuyor)")
print(f"Yakın bir noktada (x=2.1): f(2.1)={f(2.1):.4f}, teğet(2.1)={teget(2.1):.4f} (çok yakın -- teğet, eğriyi yerel olarak iyi yaklaştırıyor)")
print(f"Uzak bir noktada (x=3.0): f(3.0)={f(3.0):.4f}, teğet(3.0)={teget(3.0):.4f} (fark büyüyor -- teğet sadece yerel bir yaklaşımdır)")
Teğet doğru: y = 4.0x + (-4.0)
x0=2.0 noktasında: f(2.0)=4.0, teğet(2.0)=4.0 (aynı nokta -- teğet, eğriye dokunuyor)
Yakın bir noktada (x=2.1): f(2.1)=4.4100, teğet(2.1)=4.4000 (çok yakın -- teğet, eğriyi yerel olarak iyi yaklaştırıyor)
Uzak bir noktada (x=3.0): f(3.0)=9.0000, teğet(3.0)=8.0000 (fark büyüyor -- teğet sadece yerel bir yaklaşımdır)Nerede işe yarar
Türev, ilerideki tüm derin öğrenme matematiğinin çekirdeğidir:
- 10. derste (zincir kuralı), birden fazla fonksiyonun iç içe geçtiği durumlarda türev nasıl hesaplanır göreceğiz — bu, backpropagation’ın kalbidir.
- 12. derste (gradyan inişi), bir modelin parametrelerini “en iyi” yöne doğru itmek için, kayıp fonksiyonunun türevini (gradyanını) kullanırız.
- DL kategorilerinde, bir sinir ağının “öğrenmesi”, özünde, milyonlarca türev hesabının zincirleme uygulanmasıdır.
Bu 2 hatayı yaparsın:
- Türevi “karmaşık bir formül ezberlemek” sanmak — hayır, özünde, bu dersteki “h küçüldükçe ortalama hız neye yakınsıyor” sorusunun cevabıdır.
- Teğet doğrunun eğriyi her yerde iyi yaklaştırdığını düşünmek — hayır, teğet sadece o noktanın yakınında iyi bir yaklaşımdır (notebook’ta x=3’te fark büyüyor).
Kendini test et
1. sonlu-fark-tanimi bloğunda h=1.0 için ortalama hız 5.0 çıkarken, h=0.0001 için 4.0001 çıkıyor. Bu neyi gösteriyor?
- Bir hesaplama hatası
- h küçüldükçe, ortalama hızın gerçek türev değerine (4.0) yaklaştığını -- türev, tam olarak bu yakınsamanın limit değeridir (doğru cevap)
- h büyüdükçe sonucun daha doğru olduğunu
- Fonksiyonun her h değerinde farklı olduğunu
Neden: sonlu-fark-tanimi bloğunda bu açıkça belirtiliyor: 'h küçüldükçe, ortalama hız 4.0a yaklaşıyor -- bu, x0=2 noktasındaki türevdir'.
2. teget-dogrusu bloğunda x=2.1'de f(2.1)=4.41 ve teğet(2.1)=4.40 -- çok yakın. Ama x=3.0'da f(3.0)=9.0 ve teğet(3.0)=8.0 -- fark büyük. Bu neden?
- Bir hesaplama hatası
- Teğet doğru, sadece x0 noktasının yakınında iyi bir yaklaşımdır -- x0'dan uzaklaştıkça, düz bir çizgi (teğet) ile eğri (parabol) arasındaki fark büyür (doğru cevap)
- Teğet doğrusu her zaman yanlıştır
- x=3.0 fonksiyonun tanım kümesi dışındadır
Neden: notebook çıktısında bu açıkça belirtiliyor: 'Uzak bir noktada ... fark büyüyor -- teğet sadece yerel bir yaklaşımdır'.
3. Bir sinir ağının parametrelerini güncellerken (gradyan inişi), türev neden kullanılır?
- Rastgele bir sayı üretmek için
- Kayıp fonksiyonunun hangi yönde azaldığını (o noktadaki eğimi) bulmak için -- türev, parametreleri hangi yöne doğru itmemiz gerektiğini gösterir (doğru cevap)
- Sadece görselleştirme amaçlı
- Türev, gradyan inişiyle ilgisizdir
Neden: kullanım bölümünde bu açıkça bağlanıyor: 12. dersteki gradyan inişi, kayıp fonksiyonunun türevini (gradyanını) kullanarak parametreleri en iyi yöne iter.
Özet
Özet
- Türev, bir noktadaki anlık değişim hızıdır -- h sıfıra yaklaşırken ortalama hızın yakınsadığı değer.
- Geometrik olarak türev, o noktadaki teğet doğrunun eğimidir.
- x^n fonksiyonunun türevi, analitik olarak n·x^(n-1) formülüyle bulunur.
- Teğet doğru, sadece o noktanın yakınında iyi bir yaklaşımdır -- uzaklaştıkça fark büyür.
- Türev, backpropagation ve gradyan inişinin (10-12. dersler) temel yapı taşıdır.