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:
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
için bu formül, tam olarak Pisagor teoremidir (‘nin ‘yi çözmüş hâli). Norm, bu fikri herhangi bir boyut sayısına () 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.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:
- Vektör toplamayı sayı toplamayla karıştırıp, boyutları yanlış eşleştirmek — x’ler x’lerle, y’ler y’lerle toplanır.
- 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?
- Bir tesadüf
- 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)
- Sadece bu iki sayı için geçerli bir kural
- 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?
- Vektörü yok eder
- 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)
- Vektörün boyutunu azaltır
- 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?
- Norm formülünde negatif sayı kullanılamaz
- 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)
- Norm sadece tam sayılarla çalışır
- 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.