Ana içeriğe geç

Giriş7 dk

Vektör işlemleri ve norm

Önkoşul:Vektör nedir, veri neden vektördür

Kanca

3 adım doğuya, sonra 4 adım kuzeye yürüsen, başlangıç noktasına düz bir çizgiyle dönmen için kaç adım atman gerekir? Cevap tam sayı çıkar — ve bu, tesadüf değil.

Sezgi

İki vektörü toplamak, iki hareketi arka arkaya yapmaktır. Bir vektörün normu ise, o vektörün “uzunluğunu” (büyüklüğünü) ölçer — ve bunu hesaplamanın yolu, ilkokuldan bildiğin Pisagor teoremidir. Aşağıda iki vektörü sürükleyip, toplamlarını ve uzunluklarını canlı izleyebilirsin:

-6-4-20246-6-4-20246

A = (3.0, 0.0), ||A|| = 3.00

B = (0.0, 4.0), ||B|| = 4.00

A+B = (3.0, 4.0), ||A+B|| = 5.00

Noktaları sürükle (ya da odaklayıp ok tuşlarını kullan).

Mekanizma

Doğuya ve kuzeye giden iki adımı vektör olarak toplayalım:

Vektör toplama: boyut boyut

# Vektör toplama: her boyutu, karşılığıyla topla. Fiziksel bir örnek: bir kişi
# 3 birim doğuya, sonra 4 birim kuzeye yürüsün. Toplam yer değiştirme nedir?
dogu = np.array([3, 0])
kuzey = np.array([0, 4])
toplam_yer_degistirme = dogu + kuzey

print(f"Doğuya adım: {dogu.tolist()}")
print(f"Kuzeye adım: {kuzey.tolist()}")
print(f"Toplam yer değiştirme (dogu + kuzey): {toplam_yer_degistirme.tolist()}")
print("\nVektör toplama, her boyutu ayrı ayrı toplamaktır -- x'ler kendi aralarında,")
print("y'ler kendi aralarında. Sonuç, iki hareketin birleşik etkisidir.")
Doğuya adım: [3, 0]
Kuzeye adım: [0, 4]
Toplam yer değiştirme (dogu + kuzey): [3, 4]

Vektör toplama, her boyutu ayrı ayrı toplamaktır -- x'ler kendi aralarında,
y'ler kendi aralarında. Sonuç, iki hareketin birleşik etkisidir.

Bir vektörü bir sayıyla (skaler) çarpmak, yönünü koruyup büyüklüğünü değiştirir:

Skalerle çarpma: ölçekleme

# Skalerle çarpma: bir vektörü sabit bir sayıyla ölçeklemek -- yönü korur, büyüklüğü değiştirir.
iki_kat_dogu = 2 * dogu
yarim_dogu = 0.5 * dogu
ters_dogu = -1 * dogu

print(f"\n2 x doğu = {iki_kat_dogu.tolist()} (aynı yön, 2 kat uzun)")
print(f"0.5 x doğu = {yarim_dogu.tolist()} (aynı yön, yarı uzunluk)")
print(f"-1 x doğu = {ters_dogu.tolist()} (ters yön, aynı uzunluk)")

2 x doğu = [6, 0] (aynı yön, 2 kat uzun)
0.5 x doğu = [1.5, 0.0] (aynı yön, yarı uzunluk)
-1 x doğu = [-3, 0] (ters yön, aynı uzunluk)

Matematik

Norm: Pisagor teoreminin genellemesi
∥v∥=v12+v22+⋯+vn2\|v\| = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2}

n=2n=2 için bu formül, tam olarak Pisagor teoremidir (a2+b2=c2a^2+b^2=c^2‘nin cc‘yi çözmüş hâli). Norm, bu fikri herhangi bir boyut sayısına (nn) genelleştirir — 2. dersteki “uzaklık” hesabı da, iki vektörün farkının normuydu.

Kod

Norm = Pisagor teoremi

# Norm (||v||), bir vektörün "uzunluğunu" (büyüklüğünü) ölçer -- Pisagor teoreminin
# genelleştirilmiş hâlidir.
norm_toplam = np.linalg.norm(toplam_yer_degistirme)
elle_norm = np.sqrt(toplam_yer_degistirme[0]**2 + toplam_yer_degistirme[1]**2)

print(f"\nToplam yer değiştirme: {toplam_yer_degistirme.tolist()}")
print(f"np.linalg.norm(toplam) = {norm_toplam}")
print(f"Elle: sqrt(3² + 4²) = sqrt({3**2} + {4**2}) = sqrt({3**2 + 4**2}) = {elle_norm}")
print(f"\nİki yöntem aynı sonucu veriyor: {norm_toplam == elle_norm}")
print("Bu, ünlü 3-4-5 dik üçgeni! Norm, özünde, Pisagor teoreminin (a²+b²=c²) her")
print("boyuta genelleştirilmiş hâlidir -- 2. dersteki 'uzaklık' hesabı da tam olarak buydu.")

Toplam yer değiştirme: [3, 4]
np.linalg.norm(toplam) = 5.0
Elle: sqrt(3² + 4²) = sqrt(9 + 16) = sqrt(25) = 5.0

İki yöntem aynı sonucu veriyor: True
Bu, ünlü 3-4-5 dik üçgeni! Norm, özünde, Pisagor teoreminin (a²+b²=c²) her
boyuta genelleştirilmiş hâlidir -- 2. dersteki 'uzaklık' hesabı da tam olarak buydu.
Doğu vektörü, kuzey vektörü ve bunların toplamını gösteren ok diyagramı; toplam vektörün normu 5.(grafiği tam boyutta, yeni sekmede aç)
Doğu (turuncu) ve kuzey (yeşil) vektörleri uctan uca eklenince, toplam (mavi) elde edilir -- normu tam 5, klasik 3-4-5 üçgeni.

Nerede işe yarar

Bu üç işlem (toplama, skalerle çarpma, norm), sonraki kategorilerde sürekli karşına çıkacak:

  • Makine Öğrenmesi’nde, bir modelin ağırlık güncellemesi tam olarak bir vektör toplamadır: yeni_agirlik = eski_agirlik + degisim.
  • Gradyan inişinde (12. ders), “adım büyüklüğü” (öğrenme oranı), bir vektörü skalerle çarpmaktır.
  • Norm, bir vektörün “büyük mü küçük mü” olduğunu ölçmenin standart yoludur — düzenlileştirme (regularization, ML kategorisi) doğrudan normu kullanır.

Bu 2 hatayı yaparsın:

  1. Vektör toplamayı sayı toplamayla karıştırıp, boyutları yanlış eşleştirmek — x’ler x’lerle, y’ler y’lerle toplanır.
  2. Normu “sadece pozitif sayılar için” bir kavram sanmak — norm her zaman pozitiftir (ya da sıfır), çünkü kareler alınır; vektörün içindeki sayılar negatif olsa bile.

Kendini test et

1. Notebook'ta doğu=[3,0] ve kuzey=[0,4] vektörlerinin toplamının normu tam olarak 5 çıkıyor. Bu neden şaşırtıcı değil?
  1. Bir tesadüf
  2. Norm formülü (√(x²+y²)) tam olarak Pisagor teoremidir -- 3² + 4² = 9 + 16 = 25, ve √25 = 5; bu, klasik 3-4-5 dik üçgenidir (doğru cevap)
  3. Sadece bu iki sayı için geçerli bir kural
  4. NumPy'nin özel bir yuvarlama yaptığını

Neden: norm-uzunluk bloğunda hem np.linalg.norm hem elle hesaplanan sqrt(3²+4²) aynı 5.0 sonucunu veriyor -- MathBox'ta bu, Pisagor teoreminin doğrudan bir uygulaması olarak açıklanıyor.

2. Bir vektörü -1 ile çarpmak (skalerle çarpma) ne yapar?
  1. Vektörü yok eder
  2. Yönünü tersine çevirir, ama uzunluğunu (normunu) değiştirmez -- notebook'ta -1 x doğu, aynı uzunlukta ama ters yönde bir vektör veriyor (doğru cevap)
  3. Vektörün boyutunu azaltır
  4. Sadece pozitif vektörlerde çalışır

Neden: skalerle-carpma bloğunda -1 x doğu = [-3, 0] -- orijinal [3,0] ile aynı uzunlukta (norm=3) ama tam ters yönde.

3. Bir vektörün normunun her zaman pozitif (ya da sıfır) olmasının nedeni nedir?
  1. Norm formülünde negatif sayı kullanılamaz
  2. Norm formülü, her bileşenin karesini alır (v₁², v₂², ...) -- bir sayının karesi her zaman pozitiftir (ya da sıfırdır), bu yüzden bu karelerin toplamının kare kökü de her zaman pozitiftir (doğru cevap)
  3. Norm sadece tam sayılarla çalışır
  4. Bu bir NumPy kısıtlamasıdır, matematiksel bir gerekçesi yoktur

Neden: MathBox'taki formülde her v_i teriminin karesi alınıyor -- kullanım bölümünde bu, negatif bileşenli vektörlerin bile pozitif norm vermesinin nedeni olarak açıklanıyor.

Özet

Özet

  • Vektör toplama, her boyutu ayrı ayrı toplamaktır -- iki hareketi arka arkaya yapmakla aynı.
  • Skalerle çarpma, bir vektörün yönünü korur, büyüklüğünü (ve gerekirse yönünü, negatifse) değiştirir.
  • Norm (||v||), bir vektörün uzunluğunu ölçer -- Pisagor teoreminin her boyuta genelleşmiş hâlidir.
  • Bu dersteki [3,0] + [0,4] = [3,4] örneği, normu tam 5 olan klasik bir 3-4-5 üçgenidir.
  • Bu üç işlem, Makine Öğrenmesi'ndeki ağırlık güncellemelerinin ve düzenlileştirmenin temelidir.
Sonraki adım: Nokta çarpım: benzerliğin matematiği →