Ana içeriğe geç

Giriş6 dk

Vektör nedir, veri neden vektördür

Önkoşul:Neden matematik? (korkuyu kırma)

Kanca

Bir elmayı, bir bilgisayara nasıl “anlatırsın”? Renk mi, koku mu, tat mı? Bilgisayarlar kelime anlamaz — sadece sayı. Peki bir elmayı sayılarla nasıl temsil edersin?

Sezgi

Bir vektör, sıralı bir sayı listesidir — ne daha fazlası, ne daha azı. Veriyi vektör olarak temsil etmek, “bu şeyin ölçülebilir özelliklerini bir sırayla yaz” demektir.

Mekanizma

Üç meyveyi, iki sayıyla (ağırlık, tatlılık) temsil edelim:

Bir meyve, iki sayı

# Bir "vektör", sıralı bir sayı listesidir -- ne daha fazlası, ne daha azı.
# Örnek: bir meyveyi iki sayıyla temsil edelim: [ağırlık (gram), tatlılık (1-10)].
elma = np.array([150, 6])
armut = np.array([170, 5])
karpuz = np.array([5000, 7])

print(f"elma  = {elma.tolist()}  (150 gram, tatlılık 6/10)")
print(f"armut = {armut.tolist()}  (170 gram, tatlılık 5/10)")
print(f"karpuz = {karpuz.tolist()}  (5000 gram, tatlılık 7/10)")
print("\nBu sıralı sayı listeleri -- işte bir vektör bu kadar basit bir şey.")
print("Sıra önemlidir: [150, 6] ile [6, 150] tamamen farklı şeyleri ifade eder.")
elma  = [150, 6]  (150 gram, tatlılık 6/10)
armut = [170, 5]  (170 gram, tatlılık 5/10)
karpuz = [5000, 7]  (5000 gram, tatlılık 7/10)

Bu sıralı sayı listeleri -- işte bir vektör bu kadar basit bir şey.
Sıra önemlidir: [150, 6] ile [6, 150] tamamen farklı şeyleri ifade eder.

Şimdi bu vektörler arasındaki uzaklığı ölçelim:

Vektör uzayında yakınlık = gerçek benzerlik

# Vektörler arasındaki uzaklık, gerçek dünyadaki "benzerlik" fikrini sayıya döker.
uzaklik_elma_armut = np.linalg.norm(elma - armut)
uzaklik_elma_karpuz = np.linalg.norm(elma - karpuz)

print(f"\nElma ile armut arasındaki uzaklık: {uzaklik_elma_armut:.1f}")
print(f"Elma ile karpuz arasındaki uzaklık: {uzaklik_elma_karpuz:.1f}")
print("\nElma-armut uzaklığı çok küçük (ikisi de küçük, orta tatlılıkta meyveler) --")
print("elma-karpuz uzaklığı çok büyük (biri küçük biri devasa). Bu 'uzaklık' hesabı")
print("(np.linalg.norm), 3. dersin konusu -- burada sadece sezgiyi kuruyoruz:")
print("Vektör uzayında yakın olmak = gerçek dünyada benzer olmak.")

Elma ile armut arasındaki uzaklık: 20.0
Elma ile karpuz arasındaki uzaklık: 4850.0

Elma-armut uzaklığı çok küçük (ikisi de küçük, orta tatlılıkta meyveler) --
elma-karpuz uzaklığı çok büyük (biri küçük biri devasa). Bu 'uzaklık' hesabı
(np.linalg.norm), 3. dersin konusu -- burada sadece sezgiyi kuruyoruz:
Vektör uzayında yakın olmak = gerçek dünyada benzer olmak.
Elma, armut ve karpuzun ağırlık-tatlılık düzleminde konumlarını gösteren dağılım grafiği; elma ve armut birbirine yakın, karpuz çok uzak.(grafiği tam boyutta, yeni sekmede aç)
Elma ve armut, vektör uzayında birbirine yakın (uzaklık 20) -- gerçek dünyada da benzer meyveler. Karpuz çok uzak (uzaklık 4850) -- gerçek dünyada da çok farklı.

Matematik

Boyut (dimension)

Bir vektörün kaç sayıdan oluştuğuna “boyut” denir:

v=[v1,v2,…,vn]⇒v,  n boyutludur.\begin{gathered} v = [v_1, v_2, \dots, v_n] \\ \Rightarrow \quad v, \; n \text{ boyutludur.} \end{gathered}

Bu derste n=2n=2 (ağırlık, tatlılık) kullandık. Ama nn, temsil edilen şeye göre 5, 784, hatta 50’ye kadar (ve daha fazlasına) çıkabilir — sonraki blokta gerçek örnekleri göreceksin.

Kod

Boyut sayısı, ihtiyaca göre değişir

# Bir vektörün kaç sayıdan oluştuğuna "boyut" (dimension) denir. Boyut sayısı,
# ihtiyaca göre 2'den milyonlara çıkabilir:
print("\nBoyut sayısı, temsil edilen şeye göre değişir:")
print(f"  Bir meyve (bu derste): 2 boyut -- {elma.tolist()}")
print("  Bir ev (3. kategori, Makine Öğrenmesi): örn. 5-10 boyut")
print("    -- [oda sayısı, m², kat, yaş, şehir merkezine uzaklık, ...]")
print("  Siyah-beyaz bir görüntü (4. kategori, DL Görüntü): 28x28 = 784 boyut")
print("    -- her piksel, vektörün bir sayısı olur.")
print("  Bir kelimenin anlamı (5. kategori, NLP, 5. ders): 50 boyut")
print("    -- 'kral', 'kraliçe' gibi kelimeler, 50 sayılık vektörlerle temsil edilir.")
print("\nBoyut sayısı ne olursa olsun, mantık aynı kalır: sıralı bir sayı listesi,")
print("ve yakın vektörler, benzer şeyleri temsil eder.")

Boyut sayısı, temsil edilen şeye göre değişir:
  Bir meyve (bu derste): 2 boyut -- [150, 6]
  Bir ev (3. kategori, Makine Öğrenmesi): örn. 5-10 boyut
    -- [oda sayısı, m², kat, yaş, şehir merkezine uzaklık, ...]
  Siyah-beyaz bir görüntü (4. kategori, DL Görüntü): 28x28 = 784 boyut
    -- her piksel, vektörün bir sayısı olur.
  Bir kelimenin anlamı (5. kategori, NLP, 5. ders): 50 boyut
    -- 'kral', 'kraliçe' gibi kelimeler, 50 sayılık vektörlerle temsil edilir.

Boyut sayısı ne olursa olsun, mantık aynı kalır: sıralı bir sayı listesi,
ve yakın vektörler, benzer şeyleri temsil eder.

Nerede işe yarar

Bu basit fikir, tüm kursun temelidir:

  • Veri Bilimi kategorisinde, bir pandas DataFrame’in her satırı bir vektördür — sütunlar, o vektörün boyutlarıdır.
  • Makine Öğrenmesi kategorisinde, bir modelin “gördüğü” her örnek, bir öznitelik vektörüdür.
  • NLP kategorisinde (5. ders), “kral” gibi bir kelime, 50 sayılık bir vektörle temsil edilir — ve “kral” ile “kraliçe” vektörleri, vektör uzayında yakındır, çünkü anlamca benzerdirler.

Bu 2 hatayı yaparsın:

  1. Vektörü “karmaşık bir matematik nesnesi” sanmak — hayır, sadece sıralı bir sayı listesidir.
  2. Yüksek boyutlu bir vektörü (örn. 784 boyutlu bir görüntü) “görselleştirilemez” diye düşünüp kafa karıştırmak — mantık, 2 boyutta gördüğün ile tamamen aynıdır, sadece gözümüzle göremediğimiz kadar çok sayı var.

Kendini test et

1. Notebook'ta elma-armut uzaklığı 20 iken, elma-karpuz uzaklığı 4850. Bu neyi gösteriyor?
  1. Bir hesaplama hatası olduğunu
  2. Vektör uzayındaki uzaklığın, gerçek dünyadaki benzerliği yansıttığını -- elma ve armut (benzer boyut/tatlılıkta meyveler) yakın, karpuz (çok farklı) uzak çıkıyor (doğru cevap)
  3. Karpuzun daha tatlı olduğunu
  4. Ağırlığın tatlılıktan daha önemli olduğunu

Neden: yakinlik-benzerlik bloğunda uzaklık hesabı, gerçek dünyadaki sezgiyle (elma-armut benzer, karpuz farklı) birebir örtüşüyor.

2. Bir vektörün 'boyutu' (dimension) ne anlama gelir?
  1. Vektörün fiziksel büyüklüğünü
  2. Vektörün kaç sayıdan oluştuğunu -- örn. [150, 6] 2 boyutlu bir vektördür, bir görüntünün piksel vektörü ise 784 boyutlu olabilir (doğru cevap)
  3. Vektörün pozitif mi negatif mi olduğunu
  4. Vektörün hangi kategoriye ait olduğunu

Neden: MathBox'ta boyut, v=[v1,...,vn] vektöründeki n sayısı olarak tanımlanıyor; boyut-sayisi-artabilir bloğunda 2'den 784'e kadar gerçek örnekler gösteriliyor.

3. NLP kategorisindeki (5. ders) 'kral' ve 'kraliçe' kelimelerinin vektör uzayında yakın olması ne anlama gelir?
  1. İki kelimenin aynı harflerle başladığını
  2. İki kelimenin anlamca benzer olduğunu -- bu dersteki elma-armut örneğiyle aynı ilke: vektör uzayında yakınlık, gerçek dünyada (burada 'anlam dünyasında') benzerliği yansıtır (doğru cevap)
  3. İki kelimenin aynı uzunlukta olduğunu
  4. Bir hesaplama tesadüfü olduğunu

Neden: boyut-sayisi-artabilir bloğunda ve kullanım bölümünde bu bağlantı açıkça kuruluyor: kelime embedding'leri de, meyve örneğiyle aynı mantıkla, anlamsal yakınlığı vektör yakınlığına çevirir.

Özet

Özet

  • Bir vektör, sıralı bir sayı listesidir -- veriyi "ölçülebilir özellikler dizisi" olarak temsil eder.
  • Vektör uzayında yakın olan noktalar, gerçek dünyada da benzer şeyleri temsil eder (bu dersteki elma-armut örneği).
  • Bir vektörün 'boyutu', kaç sayıdan oluştuğudur -- 2'den (meyve örneği) 784'e (görüntü) ve daha fazlasına çıkabilir.
  • Boyut sayısı ne olursa olsun, mantık aynı kalır: sıralı liste, yakınlık = benzerlik.
  • Bu fikir, Veri Bilimi, Makine Öğrenmesi ve NLP kategorilerindeki "veri" kavramının temelidir.
Sonraki adım: Vektör işlemleri ve norm →