Ana içeriğe atla

Derin Öğrenme için Matematiksel Kavramların Gizemini Gidermek

Veri bilimi ve derin öğrenme için skaler ve vektör, determinant, tekil değer ayrışımı ve daha fazlası gibi temel matematik kavramlarını keşfedin.
Güncel 3 Eki 2026  · 11 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Veri bilimi, öngörülerde bulunmak için matematik ve ileri düzey istatistikleri kullanan disiplinler arası bir alandır. Tüm veri bilimi algoritmaları doğrudan ya da dolaylı olarak matematiksel kavramlardan yararlanır. Matematiği sağlam bir şekilde kavramak, öneri sistemi gibi yenilikçi veri bilimi çözümleri geliştirmenize yardımcı olur. Matematiğiniz iyiyse, veri bilimine geçişiniz kolaylaşır. Bir veri bilimci olarak, problemleri çözmek için matematiğin temel kavramlarını kullanmanız gerekir.

Matematiğin yanı sıra alan bilgisi, programlama becerileri, iş becerileri, analitik beceriler ve meraklı bir zihniyete de ihtiyacınız vardır. Bir veri bilimci için matematikten kaçış yoktur. Veri bilimci olmak için matematik ve istatistiğin temellerini özümsemeli ve kendinize öğretmelisiniz.

Skaler ve Vektör

  • Skalerler: Skaler, uzaydaki bir vektörle skaler çarpım yoluyla etkileşen tek bir sayıdır.
  • Vektörler: Bir vektör V, sıralı bir öğe kümesidir. Vektör, satır veya sütun olabilen sayılardan oluşan bir dizidir. Vektörler birbirine eklenebilir ve skaler olarak bilinen bir gerçek sayı ile çarpılabilir.
skalerler vs vektörler vs matrisler

Görsel Kaynağı

# Import numpy module
import numpy as np

# creating a vector
v = np.array([1, 2, 3, 4, 5])
print(v)
[1 2 3 4 5]
# Vector Operations
# Import numpy module
import numpy as np

# Create two vector
a = np.array([1, 2, 3, 4, 5])
b = np.array([1, 2, 3, 4, 5])

# adding two vectors
add = a + b
print("Addition:",add)

# Vector Subtraction
sub = a - b
print("Subtraction:",sub)

# Vector Multiplication
mul = a * b
print("Multiplication:",mul)

# Vector Division
div = a / b
print("division",div)
Addition: [ 2  4  6  8 10]
Subtraction: [0 0 0 0 0]
Multiplication: [ 1  4  9 16 25]
division [1. 1. 1. 1. 1.]

Matris ve Tensör

  • Matrisler: Matris, dönüşümleri temsil eden N-boyutlu sayı dizisidir. Bir matrisi “ölçekleme”, “döndürme”, “kaydırma” ve “yansıtma” gibi bir dönüşüm olarak düşünebilirsiniz. Uzaydaki tekil noktaları uzayın farklı noktalarına dönüştürür.
# Import numpy module
import numpy as np

# create 2*2 matrix
a1=np.array([[1, 2], [3, 4]])
a2=np.array([[1, 2], [3, 4]])

# Dot Product
dot_product = np.dot(a1,a2)
print("Dot Product: \n",dot_product)

# Cross Product
cross_product = np.cross(a1,a2)
print("Cross Product: \n", cross_product)
Dot Product:
 [[ 7 10]
 [15 22]]
Cross Product:
 [0 0]

İki vektörün noktasal çarpımı, bir vektörün diğerine izdüşümünü temsil eder; iki vektörün vektörel çarpımı ise her iki vektörün de yatabileceği düzlemi belirlemeyi sağlar.

  • Tensör: Bazen, her bir eksenin farklı boyuta sahip olabildiği ve ızgara biçiminde düzenlenen ikiden fazla boyuta sahip dizilere ihtiyaç duyarsınız; bunlara tensör denir. Tensörün boyutu rütbe (rank) olarak adlandırılır. Skalerler ve vektörler de birer tensör türüdür. Sıfırıncı mertebe tensörler skalerler, birinci mertebe tensörler vektörlerdir.
matris vs vektörler

Görsel kaynağı

Determinant

Determinant, bir matrisin uzunluk (1-boyut), alan (2-boyut), hacim (3-boyut) gibi nicelikler üzerindeki ölçekleme etkisini ifade eden skaler bir değerdir. Determinant 2 ise hacim (3-boyut için) iki katına çıkar; determinant 1 ise hacmi etkilemez. Determinant 0 ise tersi (inversi) yoktur; çünkü sıfırla çarpılan her şey sıfırdır.

determinant matrisi

Özellikler:

  • Matrislerin çarpımının determinantı, determinantların çarpımına eşittir: det (M1M2)=det (M1) det (M2).

  • Bir matrisin determinantı, özdeğerlerin çarpımına eşdeğerdir.

  • Bir matrisi bir sabitle çarparsanız determinant det(cM)=cN det (M) olarak değişir. Burada N, matrisin boyutudur.

Eğer matrisiniz esneyebilen bir oyuncağı temsil ediyorsa, bu matrisin determinantı oyuncağı ne kadar esnettiğinizi gösterir.

# Import numpy module
import numpy as np

# Create 2*2 matrix
arr=np.array([[1,2],[3,4]])

# Compute Determinant of a matrix
arr_det=np.linalg.det(arr)

# Print the Computed Determinant
print("Determinant:",arr_det)
Determinant: -2.0000000000000004

Özdeğerler ve Özvektörler

Kare bir A matrisinin bir özvektörü, A ile çarpıldığında yalnızca ölçeği değişen sıfırdan farklı bir vektördür.

özdeğerler ve özvektörler

Görsel Kaynağı

Özvektöre karakteristik vektör de denir. Doğrusal bir dönüşüm uygulandığında yalnızca skaler bir faktörle değişen, sıfırdan farklı bir vektördür.

Özvektörler, doğrusal dönüşümün dönme eksenleridir. Bu eksenlerin yönü sabittir ve özdeğer, matrisin yukarı ya da aşağı ölçeklendiği çarpanıdır. Özdeğerlere karakteristik değerler veya karakteristik kökler de denir. Başka bir deyişle, özvektörler doğrusal dönüşümün davranışını sınırlayan sabit doğru veya düzlem yönlerini, özdeğerler ise bu dönüşümün bozulma (distorsiyon) katsayılarını ifade eder.

Determinant, doğrusal dönüşümde yukarı veya aşağı ölçeklenen şekillerin alanını söyler. Bu yüzden özdeğerlerin çarpımı determinantla eşittir.

# Import numpy module
import numpy as np

# Create 2*2 matrix
arr=np.array([[1,2],[3,4]])

# Find eigenvalues and eigenvectors
eigenvalues, eigenvectors = np.linalg.eig(arr)

# print the eigenvalues and eigenvectors
print("Eigen Values: \n",eigenvalues)
print("Eigen Vectors:\n", eigenvectors)
Eigen Values:
 [-0.37228132  5.37228132]
Eigen Vectors:
 [[-0.82456484 -0.41597356]
 [ 0.56576746 -0.90937671]]

NORM Fonksiyonu

Bazen bir vektörün büyüklüğünü ölçmek istersiniz. Norm fonksiyonu, bir vektörün büyüklüğünü ölçmenize yardımcı olur. Sıfır vektörü hariç bir vektöre kesinlikle pozitif bir uzunluk atar. L^p normunu içerir. Vektörleri sıfırdan büyük değerlere eşler. Bir vektör ve bir matris için Öklid uzaklığına denktir. En büyük tekil değere eşittir.

NORM fonksiyonu formülü
# import numpy module
import numpy as np

# Create 3*3 Matrix
a = np.array([[1,2,3],[4,5,6],[7,8,9]])

# Compute norm
a_norm = np.linalg.norm(a)

# print the norm of function
print(a_norm)
16.881943016134134

Matris Faktorizasyonu

Matris faktorizasyonu, matris ayrışımı olarak da bilinir. Bir matrisi bileşenlerine ayırmak için kullanılır. Matris faktorizasyonu, 10 sayısının 2 x 5 olarak çarpanlara ayrılmasına benzer. Doğrusal denklemleri çözmek için kullanılır.

Aşağıdaki matris faktorizasyonu teknikleri mevcuttur:

  • LU Ayrışımı, kare matrisler içindir ve bir matrisi L ve U bileşenlerine ayırır.
  • QR Ayrışımı, m x n matrisler (kare matrislerle sınırlı değildir) içindir ve bir matrisi Q ve R bileşenlerine ayırır. LU ayrışımı gibi kare matrislerle sınırlı değildir.
  • Cholesky Ayrışımı, doğrusal regresyon için en küçük kareler çözümünde, ayrıca benzetim ve optimizasyon yöntemlerinde kullanılır.
  • Tekil Değer Ayrışımı bir sonraki bölümde açıklanmıştır.

Tekil Değer Ayrışımı

Önceki bölümde, bir matrisi özvektörlere ve özdeğerlere ayıran öz-ayrışımı gördük. Tekil değer ayrışımı, bir matrisi tekil vektörlere ve tekil değerlere ayıran bir matris faktorizasyonu yöntemidir. Sinyal işleme, psikoloji, sosyoloji, iklim ve atmosfer bilimi, istatistik ve astronomi gibi alanlarda çeşitli faydalı uygulamalar sunar.

tekil değer ayrışımı formülü
  • M, m×m bir matristir
  • U, m×n sol tekil matristir
  • Σ, negatif olmayan gerçek sayılardan oluşan n×n köşegen bir matristir.
  • V, m×n sağ tekil matristir
  • V*, V matrisinin transpozu olan n×m matristir.
# Import numpy module
import numpy as np

# Create 3*3 matrix
a = np.array([[1, 3, 4], [5, 6, 9], [1, 2, 3], [7, 6, 8]])

# Decomposition of matrix using SVD
U, s, Vh = np.linalg.svd(a, full_matrices=False)

U,s,Vh
(array([[-0.27067357, -0.61678044,  0.69789573],
        [-0.65939972, -0.2937857 , -0.62152182],
        [-0.20244298, -0.3480035 , -0.06765408],
        [-0.67152413,  0.64200111,  0.34939247]]),
 array([18.0376394 ,  2.34360292,  0.38870323]),
 array([[-0.46961711, -0.51018039, -0.72053851],
        [ 0.87911451, -0.19502274, -0.43488368],
        [-0.08134773,  0.83766467, -0.54009299]]))
# Generate the initial matrix
new_a = np.dot(U, np.dot(np.diag(s), Vh))

# Print original matrix
print(new_a)
[[1. 3. 4.]
 [5. 6. 9.]
 [1. 2. 3.]
 [7. 6. 8.]]

Moore-Penrose Yarıtersi

Bir matrisin yarıtersi, ters matrisin genelleştirilmiş hâlidir. En küçük kareler çözümlerini hesaplamada kullanılır. Moore-Penrose tersi, matris yarıtersinin en yaygın biçimidir.

Moore-Penrose Yarıters matris
# Import numpy module
import numpy as np

# Create 3*3 matrix
a = np.array([[1, 3, 4], [5, 6, 9], [1, 2, 3], [7, 6, 8]])

# Compute the (Moore-Penrose) pseudo-inverse of a matrix.
inv=np.linalg.pinv(a)

# Print pseudo-inverse of a matrix.
print(inv)
[[-0.37037037  0.03703704 -0.11111111  0.18518519]
 [ 1.56296296 -1.2962963  -0.11111111  0.71851852]
 [-0.84444444  0.94444444  0.16666667 -0.57777778]]

Hadamard Çarpımı

Hadamard çarpımı veya Schur çarpımı, aynı boyutlardaki iki orijinal matrisin eleman düzeyinde çarpımıdır. Eleman düzeyinde çarpım olarak da bilinir. Matris çarpımından daha basittir. Hadamard çarpımı, kayıplı JPEG sıkıştırma algoritmalarında kullanılır. Hadamard çarpımı değişmeli, birleşmeli ve dağılma özelliklerine sahiptir. Tersi kolayca elde edilir ve üs matrislerin hesaplanmasını basitleştirir.

Hadamard çarpımı matrisleri

Hadamard çarpımı; uydu iletimlerinde kod düzeltme, bilgi kuramı, kriptografi, örüntü tanıma, sinir ağı, en büyük olabilirlik kestirimi, JPEG kayıplı sıkıştırma, çok değişkenli istatistiksel analiz ve doğrusal modelleme gibi çeşitli alanlarda kullanılır.

# Import numpy module
import numpy as np

# Create 2*2 matrix a1 and a2
a1=np.array([[1, 2], [3, 4]])
a2=np.array([[1, 2], [3, 4]])

# Element wise multiplication
hadamard_product = np.multiply(a1,a2)

# Print hadamard distance
print("Hadamard Product: \n", hadamard_product)
Hadamard Product:
 [[ 1  4]
 [ 9 16]]

Entropi

"Rastgele bir değişkenin entropisi, o rastgele değişkenin öngörülemezliğini betimlemeye çalışan bir fonksiyondur." (Entropy and Mutual Information) Ağaç oluşturmanın her adımında otomatik karar ağacı kurulumunda kullanılır; özellik seçimi entropi ölçütü kullanılarak yapılır. Model seçimi, çelişen modeller arasından entropisi en yüksek olanın en iyi olduğunu söyleyen maksimum entropi ilkesine dayanır.

"Eğer X adlı bir rastgele değişken χ={x1, x2,..., xn} kümesindeki değerleri alıyorsa ve P(X) olasılık dağılımıyla tanımlanıyorsa, rastgele değişkenin entropisini şu şekilde yazarız," (Entropy and Mutual Information)

entropi formülü

"Yukarıdaki eşitlikte log tabanı 2 alınırsa, entropi bit cinsinden ifade edilir. Log doğal log alınırsa, entropi nat cinsinden ifade edilir. Daha yaygın olarak, entropi bit cinsinden ifade edilir." (Entropy and Mutual Information)

# Import scipy and numpy module
import scipy.stats
import numpy as np

# Create an array
a=np.array([1,1,2,3,1,3,4,2,5,6,3,2,4,3])


# Compute probability distribution
a_pdf=scipy.stats.norm.pdf(a)

# Calculate the entropy of a distribution for given probability values.
entropy = scipy.stats.entropy(a_pdf) # get entropy from probability values
print("Entropy: ",entropy)
Entropy:  1.6688066853941022

Kullback-Leibler Ayrışımı

Kullback–Leibler ayrışımı, iki olasılık dağılımının göreli entropisidir. Bir dağılımın başka bir başvuru dağılımından uzaklığını (benzerlik veya benzememe) ölçer. Kullback–Leibler ayrışımının 0 değeri, iki dağılımın özdeş olduğunu gösterir. Şu şekilde ifade edilebilir:

Kullback-Leibler ayrışımı formülü

Bir uzaklık ölçüsü gibi görünse de öyle değildir. Bunun nedeni doğası gereği asimetrik olmasıdır; yani metrik değişmeli değildir. Genel olarak D(p, q) ≠ D(q, p) diyebilirsiniz. KL ayrışımı, denetimsiz makine öğrenmesi tekniği “Varyasyonel Otokodlayıcılar”da sıklıkla kullanılır.

# Import scipy.stats and numpy module
import scipy.stats
import numpy as np

# Create numpy arrays
a=np.array([1,1,2,3,1,3,4,2,5,6,3,2,4,3])
b=np.array([1,1,3,4,2,4,5,2,5,6,3,2,4,3])

# Compute probability distribution
a_pdf=scipy.stats.norm.pdf(a)
b_pdf=scipy.stats.norm.pdf(b)

# compute relative entropy or KL Divergence
kl_div=scipy.stats.entropy(a_pdf,b_pdf)

print("KL Divergence: ",kl_div)
KL Divergence:  0.26732496641464365

Gradyan İnişi

Gradyan inişi, doğrusal regresyon, lojistik regresyon ve sinir ağlarında katsayılar ve sabiti (bias) optimize etmek için kullanılan en bilinen algoritmalardan biridir. Verilen herhangi bir fonksiyonun minimumunu bulan yinelemeli bir süreçtir.

Gradyan İnişi görselleştirmesi

Görsel Kaynağı

Gradyan İnişi formülü

Görsel Kaynağı

Gradyan inişi algoritmasının üç türü vardır: tam yığın (full batch), stokastik ve mini-yığın gradyan inişi. Tam yığın gradyan inişi, gradyanı hesaplamak için tüm veri kümesini kullanırken stokastik gradyan inişi, gradyanı hesaplamak için veri kümesinden bir örnek kullanır. Mini-yığın gradyan inişi, stokastik ve yığın gradyan inişinin bir birleşimidir. Eğitim kümesi, yığın (batch) adı verilen küçük gruplara bölünür. Bu küçük yığınlar kaybı tek tek hesaplar ve nihai kayıp sonucunun ortalamasını alır.

Sonuç

Tebrikler, bu eğitimin sonuna geldiniz!

Skaler, vektör, matris, tensör, determinant, özdeğerler, özvektörler, NORM fonksiyonu, tekil değer ayrışımı (SVD), Moore-Penrose yarıtersi, Hadamard çarpımı, Entropi, Kullback-Leibler Ayrışımı ve Gradyan İnişi gibi derin öğrenmeye yönelik temel matematiksel kavramları öğrendiniz.

Yol boyunca, bu kavramları Python’da NumPy ve SciPy kullanarak da uyguladınız.

Daha fazla Python öğrenmek isterseniz, aşağıdaki DataCamp kurslarını alın:

Konular
Derin Öğrenme
Veri Bilimi
Python

Derin Öğrenme hakkında daha fazlasını öğrenin

Kurs

Python ile Deep Learning'e Giriş

4 sa
264.7K
Python'da Keras 2.0 kullanarak sinir ağlarının temellerini ve derin öğrenme modellerinin nasıl oluşturulacağını öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör