---
title: "Matris Çarpımı ve Ters Matrisler"
subtitle: "Beş bakış, bir sonuç — ve Gauss–Jordan ile A⁻¹"
---
::: {.callout-note title="Bölüm bilgisi"}
- **Strang'in videosu:** [YouTube — Lecture 3: Multiplication and Inverse Matrices](https://www.youtube.com/watch?v=FX4C-JpTFgY) (≈47 dk)
- **OCW sayfası:** [MIT 18.06SC — Lecture 3](https://ocw.mit.edu/courses/18-06sc-linear-algebra-fall-2011/resources/multiplication-and-inverse-matrices/)
- **Okuma süresi:** ≈40 dk
:::
## Bu Derste Ne Var? {#sec-bu-derste}
Ders 2'de eliminasyon matrislerini sol-çarpan olarak kullandık: $EA = U$. Strang şimdi geri dönüp diyor ki matris çarpımının **beş ayrı yolu** var — hepsi aynı sonucu verir, ama her biri farklı bir açı kazandırır.
**İki büyük tema:**
1. **Matris çarpımının beş yolu** — Standart (satır × kolon), kolon yolu, satır yolu, kolon × satır toplamı (rank-1 ayrışımı), blok çarpımı.
2. **Ters matris** — Tanımı, var olma koşulu (üç farklı bakış), ve Gauss–Jordan ile hesabı.
İkinci kısım, Ders 2'deki "her eliminasyon adımının bir tersi var" sezgisini formalleştirir.
```{mermaid}
%%| label: fig-concept-map
%%| fig-cap: "Matris çarpımının beş yolu ve ters matrisin Gauss–Jordan ile inşası."
flowchart TB
AB["AB çarpımı"] --> Y1["Yol 1: standart<br/>C_ij = satır·kolon"]
AB --> Y2["Yol 2: kolon yolu<br/>C kolonları = A kolonlarının komb."]
AB --> Y3["Yol 3: satır yolu<br/>C satırları = B satırlarının komb."]
AB --> Y4["Yol 4: kolon × satır toplamı<br/>(rank-1 expansion)"]
AB --> Y5["Yol 5: blok çarpımı"]
Y4 --> SVD["⭐ SVD'nin habercisi<br/>LoRA, low-rank"]
Y5 --> FA["⚡ FlashAttention<br/>tensor parallelism"]
INV["A⁻¹"] --> GJ["Gauss–Jordan<br/>[A|I] → [I|A⁻¹]"]
GJ --> EA["E·A = I ⇒ E = A⁻¹"]
style Y4 fill:#fff3e0,stroke:#e67e22,stroke-width:3px
style SVD fill:#fce4ec,stroke:#c2185b,stroke-width:3px
style INV fill:#fdf6f7,stroke:#8a1538,stroke-width:2px
```
::: {.callout-tip title="Builder Notu — Modern ML'de Beş Yol Ne İşe Yarar?"}
- **Yol 4 (kolon × satır = rank-1 toplamı)** → SVD'nin sezgisel temeli (Ders 29). $A = \sum_k \sigma_k \mathbf{u}_k \mathbf{v}_k^T$ — her terim rank-1. **LoRA** bu temele dayanır: büyük $\Delta W$ yerine $A \cdot B^T$ (ince matrisler).
- **Yol 5 (blok çarpımı)** → Distributed GPU matmul, **FlashAttention** chunking, tensor parallelism. Büyük matrisleri belleğe sığdırmanın yolu.
- **Singular vs invertible** → ML'de ill-conditioned problem teşhisi; regularization (L2/weight decay) tam olarak "matrisi singular olmaktan uzaklaştırma".
- **$(AB)^{-1} = B^{-1}A^{-1}$** → Backprop'ta zincirleme türev sırasının matematiksel temeli; normalizing flows / invertible networks.
:::
## Matris Çarpımı — Beş Yol {#sec-bes-yol}
İki matris: $C = AB$. Boyutlar: $A$ ($m \times n$), $B$ ($n \times p$), $C$ ($m \times p$). **A'nın kolon sayısı = B'nin satır sayısı** olmazsa çarpım tanımsız.
> *"There are many ways you can do it, and they all give the same answer. And they're all important."* — Strang, 0:24
### Yol 1: Standart (satır × kolon)
$$
C_{ij} = \sum_{k=1}^{n} a_{ik} \cdot b_{kj}
$$
Klasik okul yöntemi. Hesaplama için pratik; sezgi vermez.
### Yol 2: Kolon Yolu
$C$'nin her kolonu $A \cdot (\text{B'nin ilgili kolonu})$:
$$
AB = A \begin{pmatrix} | & | & & | \\ \mathbf{b}_1 & \mathbf{b}_2 & \cdots & \mathbf{b}_p \\ | & | & & | \end{pmatrix} = \begin{pmatrix} | & | & & | \\ A\mathbf{b}_1 & A\mathbf{b}_2 & \cdots & A\mathbf{b}_p \\ | & | & & | \end{pmatrix}
$$
> $C$'nin her kolonu, $A$'nın kolonlarının bir lineer kombinasyonudur — katsayılar $B$'nin ilgili kolonundan.
### Yol 3: Satır Yolu
$C$'nin her satırı $(\text{A'nın ilgili satırı}) \cdot B$:
> $C$'nin her satırı, $B$'nin satırlarının bir lineer kombinasyonudur — katsayılar $A$'nın ilgili satırından.
**Yol 2 + 3 sezgisi:** Soldan ne koyarsan $C$'nin **satırlarını** belirler; sağdan ne koyarsan **kolonlarını**. Ders 2'deki "soldan = satır işlemi" kuralının başka bir yüzü.
### Yol 4: Kolon × Satır Toplamı (rank-1 expansion) ⭐
Bir **kolon** ($m \times 1$) ile bir **satır** ($1 \times p$) çarp → $m \times p$ matris. Örnek:
$$
\begin{pmatrix} 2 \\ 3 \\ 4 \end{pmatrix} \begin{pmatrix} 1 & 6 \end{pmatrix} = \begin{pmatrix} 2 & 12 \\ 3 & 18 \\ 4 & 24 \end{pmatrix}
$$
Bu matrisin **tüm kolonları $(2, 3, 4)^T$ doğrultusunda**, **tüm satırları $(1, 6)$ doğrultusunda** — bu **rank-1 matris** demektir.
**Çarpımı rank-1 toplamı olarak yaz:**
$$
AB = \sum_{k=1}^{n} (\text{A'nın } k\text{. kolonu}) \cdot (\text{B'nin } k\text{. satırı})
$$
```{python}
#| label: fig-rank1-toplami
#| fig-cap: "Yol 4: AB çarpımı, $n$ tane rank-1 matrisin toplamı. Bu sezgi doğrudan SVD'ye (Ders 29) ve LoRA'ya götürür."
#| fig-width: 12
#| fig-height: 4
import numpy as np
import matplotlib.pyplot as plt
A = np.array([[2, 7], [3, 8], [4, 9]], dtype=float)
B = np.array([[1, 6], [5, 0]], dtype=float)
R1 = A[:, [0]] @ B[[0], :] # A'nin 1. kolonu * B'nin 1. satiri
R2 = A[:, [1]] @ B[[1], :] # A'nin 2. kolonu * B'nin 2. satiri
AB = A @ B
def draw(ax, M, title, cmap='RdBu_r', vmin=-50, vmax=50):
im = ax.imshow(M, cmap=cmap, vmin=vmin, vmax=vmax)
for i in range(M.shape[0]):
for j in range(M.shape[1]):
ax.text(j, i, f'{M[i,j]:g}', ha='center', va='center',
fontsize=14, fontweight='bold')
ax.set_xticks([]); ax.set_yticks([])
ax.set_title(title, fontsize=11)
for s in ax.spines.values(): s.set_visible(False)
fig, axes = plt.subplots(1, 4, figsize=(12, 4))
draw(axes[0], R1, r'rank-1: $A_{:,1} B_{1,:}$')
axes[1].axis('off'); axes[1].text(0.5, 0.5, '+', fontsize=40, ha='center', va='center')
draw(axes[2], R2, r'rank-1: $A_{:,2} B_{2,:}$')
axes[3].axis('off'); axes[3].text(0.5, 0.5, r'$= AB$', fontsize=22, ha='center', va='center')
plt.tight_layout()
plt.show()
print("R1 + R2 =\n", R1 + R2)
print("A @ B =\n", AB)
assert np.allclose(R1 + R2, AB)
```
> *"All those rows lie on the line through (1, 6). All the columns lie on the line through (2, 3, 4). So this is a really minimal matrix."* — Strang, 17:18
### Yol 5: Blok Çarpımı
Matrisleri uygun şekilde bloklara böl, blok-blok çarp:
$$
\begin{pmatrix} A_1 & A_2 \\ A_3 & A_4 \end{pmatrix} \begin{pmatrix} B_1 & B_2 \\ B_3 & B_4 \end{pmatrix} = \begin{pmatrix} A_1 B_1 + A_2 B_3 & A_1 B_2 + A_2 B_4 \\ A_3 B_1 + A_4 B_3 & A_3 B_2 + A_4 B_4 \end{pmatrix}
$$
Her blok pozisyonunda "satır blokları × kolon blokları" toplamı — büyük çarpımın aynı kuralı, sadece elemanlar yerine alt-matrisler.
::: {.callout-tip title="Builder Notu — Blok Çarpımı = AI Altyapısı"}
- **GPU memory:** Matris GPU'ya sığmıyorsa blok blok çarp.
- **FlashAttention** ([Dao 2022](https://arxiv.org/abs/2205.14135)): $QK^T$'yi blok blok hesapla, sadece **softmax çıktısını** HBM'e yaz. Aynı matematik, $O(n)$ bellek erişimi.
- **Tensor parallelism:** Büyük weight matrisi GPU'lar arasında bloklara dağıtılır; her GPU bir bloğu tutar.
- **Mixed precision:** Bazı blokları FP32, bazılarını FP16 hesapla; blok çarpım kuralı birleştirir.
:::
## Ters Matris — Tanım ve Var Olma Koşulu {#sec-ters-tanim}
$A$ kare ($n \times n$). $A$'nın **tersi** $A^{-1}$, eğer varsa:
$$
A \cdot A^{-1} = I \quad \text{ve} \quad A^{-1} \cdot A = I
$$
**Square matrisler için bedava bonus:** sol ters = sağ ters (rectangular için değil, Ders 33).
İki sınıf:
- **Invertible (non-singular):** $A^{-1}$ var.
- **Singular:** $A^{-1}$ yok.
## Tersi Olmayan Matrisler — Üç Bakış {#sec-singular}
$$
A = \begin{pmatrix} 1 & 3 \\ 2 & 6 \end{pmatrix}
$$
**Bakış 1: Determinant.** $\det A = 1 \cdot 6 - 3 \cdot 2 = 0$ → singular.
**Bakış 2: Kolon bağımlılığı.** $\mathbf{c}_2 = 3\mathbf{c}_1$. İki kolon aynı doğrultuda — kolon uzayı bir doğru. $AX$'in kolonları hep o doğru üzerinde, identity üretilemez.
**Bakış 3: $A\mathbf{x} = \mathbf{0}$ için sıfırdan farklı $\mathbf{x}$** (en güçlü test):
$$
A \begin{pmatrix} 3 \\ -1 \end{pmatrix} = \begin{pmatrix} 3 - 3 \\ 6 - 6 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix}
$$
**Çelişki:** Eğer $A^{-1}$ olsaydı, her iki yanı soldan $A^{-1}$ ile çarp: $X = A^{-1} \cdot \mathbf{0} = \mathbf{0}$. Ama $X = (3, -1) \neq \mathbf{0}$. **Çelişki** → $A^{-1}$ yok.
> *"The matrix can't have an inverse if some combination of the columns gives nothing."* — Strang, 30:02
::: {.callout-important title="Singular Testin Özü"}
$A^{-1}$ var $\iff$ $A\mathbf{x} = \mathbf{0}$'ın tek çözümü $\mathbf{x} = \mathbf{0}$'dır.
:::
## Gauss–Jordan: $A^{-1}$'i Bulma Algoritması {#sec-gauss-jordan}
$$
A = \begin{pmatrix} 1 & 3 \\ 2 & 7 \end{pmatrix} \quad (\det = 1, \text{ invertible})
$$
**Strateji:** $A^{-1}$'i bir matris olarak yaz: kolonları $\mathbf{x}_1, \mathbf{x}_2$. Yol 2'ye göre $A \cdot A^{-1} = I$ demek:
- $A \mathbf{x}_1 = \mathbf{e}_1 = (1, 0)^T$
- $A \mathbf{x}_2 = \mathbf{e}_2 = (0, 1)^T$
İki sistem, aynı $A$, farklı sağ taraflar. Jordan'ın fikri: **ikisini birlikte çöz** — augmented matris $[A \mid I]$.
**Augmented:**
$$
[A \mid I] = \left[\begin{array}{cc|cc} 1 & 3 & 1 & 0 \\ 2 & 7 & 0 & 1 \end{array}\right]
$$
**Aşama 1 (ileri eliminasyon):** $2 \cdot r_1 \to r_2$:
$$
\to \left[\begin{array}{cc|cc} 1 & 3 & 1 & 0 \\ 0 & 1 & -2 & 1 \end{array}\right]
$$
**Aşama 2 (geri eliminasyon):** $3 \cdot r_2 \to r_1$:
$$
\to \left[\begin{array}{cc|cc} 1 & 0 & 7 & -3 \\ 0 & 1 & -2 & 1 \end{array}\right]
$$
Sol taraf $I$ oldu, sağ taraf:
$$
A^{-1} = \begin{pmatrix} 7 & -3 \\ -2 & 1 \end{pmatrix}
$$
**Doğrula:** $A \cdot A^{-1} = I$ ✓.
```{python}
#| label: code-gauss-jordan
#| code-fold: false
import numpy as np
A = np.array([[1, 3], [2, 7]], dtype=float)
A_inv_manuel = np.array([[7, -3], [-2, 1]], dtype=float)
A_inv_numpy = np.linalg.inv(A)
print("Manuel A^-1:\n", A_inv_manuel)
print("\nnumpy A^-1:\n", A_inv_numpy)
print("\nA @ A^-1 =\n", A @ A_inv_numpy)
assert np.allclose(A_inv_manuel, A_inv_numpy)
```
## Gauss–Jordan Neden Çalışıyor? {#sec-gj-neden}
Her eliminasyon adımı = soldan bir $E$ matrisi ile çarpma. Tüm adımları birleştir: $E = E_k \cdots E_2 E_1$.
Augmented matris $[A \mid I]$ üzerine etki:
$$
E \cdot [A \mid I] = [EA \mid EI] = [EA \mid E]
$$
Algoritma sonunda sol taraf $I$ oldu, yani $EA = I$. Demek ki:
$$
E = A^{-1}
$$
Ve sağ tarafta kalan da $E = A^{-1}$. Algoritma "şanstan" çalışmıyor; tüm eliminasyonu yapan kombo matris, tam olarak $A^{-1}$.
> *"If E times A is the identity, then E must be the inverse of A. And on the right-hand side, where we just smartly tucked on the identity, it's turning into A inverse."* — Strang, 45:35
## Bu Dersin Özeti {#sec-ozet}
1. **Matris çarpımının beş yolu** — Standart, kolon, satır, rank-1 toplamı, blok.
2. **Ters matris**: $A \cdot A^{-1} = A^{-1} \cdot A = I$ (square için).
3. **Tersi olmayan matrisler** üç bakış: determinant 0, kolonlar bağımlı, $A\mathbf{x} = \mathbf{0}$ için sıfırdan farklı $\mathbf{x}$.
4. **Gauss–Jordan:** $[A \mid I] \to [I \mid A^{-1}]$.
5. **Neden çalışır:** Tüm eliminasyon = $E$ kombo; $EA = I \Rightarrow E = A^{-1}$.
::: {.callout-important title="Tek bir cümle"}
Matris çarpımının beş yolu farklı bakışlar verir; ters matris $[A \mid I] \to [I \mid A^{-1}]$ ile bulunur — çünkü tüm eliminasyonun kombosu $E$, $EA = I$ koşulunu sağladığında **$E = A^{-1}$**.
:::
## Kontrol Soruları {#sec-sorular}
::: {.callout-note collapse="true" title="Soru 1: A = ((1,2),(3,4)), B = ((5,6),(7,8)). AB'yi Yol 1 ve Yol 2 ile hesapla."}
**Yol 1 (standart):**
$$
AB = \begin{pmatrix} 1\cdot5+2\cdot7 & 1\cdot6+2\cdot8 \\ 3\cdot5+4\cdot7 & 3\cdot6+4\cdot8 \end{pmatrix} = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix}
$$
**Yol 2 (kolon):**
- İlk kolon = $5 \cdot (1,3)^T + 7 \cdot (2,4)^T = (19, 43)^T$ ✓
- İkinci kolon = $6 \cdot (1,3)^T + 8 \cdot (2,4)^T = (22, 50)^T$ ✓
Aynı sonuç.
:::
::: {.callout-note collapse="true" title="Soru 2: A = ((4,8),(2,4)) invertible mi? Üç bakışla göster."}
**Det:** $4 \cdot 4 - 8 \cdot 2 = 0$ → singular.
**Kolon bağımlılığı:** $\mathbf{c}_2 = 2\mathbf{c}_1$. Aynı doğrultu → identity üretilemez.
**$A\mathbf{x} = \mathbf{0}$ testi:** $\mathbf{x} = (2, -1)^T$:
$$
A\mathbf{x} = \begin{pmatrix} 8-8 \\ 4-4 \end{pmatrix} = \mathbf{0}
$$
Sıfırdan farklı $\mathbf{x}$ var → singular.
:::
::: {.callout-note collapse="true" title="Soru 3: Gauss–Jordan ile A = ((2,1),(5,3)) tersini bul."}
Augmented:
$$
\left[\begin{array}{cc|cc} 2 & 1 & 1 & 0 \\ 5 & 3 & 0 & 1 \end{array}\right]
$$
$\ell_{21} = 5/2$, $r_2 \to r_2 - (5/2)r_1$:
$$
\left[\begin{array}{cc|cc} 2 & 1 & 1 & 0 \\ 0 & 1/2 & -5/2 & 1 \end{array}\right]
$$
Pivotları normalize ($r_2 \cdot 2$, sonra $r_1 \to r_1 - r_2$, sonra $r_1 / 2$):
$$
\to \left[\begin{array}{cc|cc} 1 & 0 & 3 & -1 \\ 0 & 1 & -5 & 2 \end{array}\right]
$$
$$
A^{-1} = \begin{pmatrix} 3 & -1 \\ -5 & 2 \end{pmatrix}
$$
Doğrula: $A \cdot A^{-1} = I$ ✓.
:::
::: {.callout-note collapse="true" title="Soru 4: (AB)⁻¹ = B⁻¹A⁻¹ — neden sıra ters? Backprop'ta nerede?"}
**Niye sıra ters:**
$$
(AB)(B^{-1}A^{-1}) = A(BB^{-1})A^{-1} = A \cdot I \cdot A^{-1} = I \checkmark
$$
Eğer $A^{-1}B^{-1}$ deneseydin: $A(BA^{-1})B^{-1}$ — burada $BA^{-1}$ sadeleşmez ($BA \neq AB$ genelde).
**Backprop'ta:** Forward $\mathbf{x} \to A\mathbf{x} \to B(A\mathbf{x}) = (BA)\mathbf{x}$. Invertible flow modellerinde "geri yön" $(BA)^{-1} = A^{-1}B^{-1}$.
Zincirleme türevde aynı sıra: $\frac{\partial L}{\partial \mathbf{x}} = \frac{\partial L}{\partial \mathbf{y}} \cdot \frac{\partial \mathbf{y}}{\partial \mathbf{x}}$ — Jacobian sırası çıktıdan girdiye. **Backward pass'in matematiksel iskeleti.**
:::
## Egzersizler {#sec-egzersizler}
**Egzersiz 1.** $A = ((1,2),(3,4))$, $B = ((5,6),(7,8))$ çarpımını **Yol 4** (rank-1 toplamı) ile yaz; iki rank-1 matris.
**Egzersiz 2.** $A = ((1,2,3),(2,4,6),(3,6,9))$ invertible mi? Soru 2'deki üç bakışla göster. (İpucu: tüm satırlar $(1,2,3)$'ün katları.)
**Egzersiz 3.** *(Python)* `np.linalg.inv` ile `np.linalg.solve` performansını karşılaştır.
```{python}
#| label: code-egzersiz-3
#| code-fold: false
import numpy as np, time
rng = np.random.default_rng(0)
n = 500
A = rng.standard_normal((n, n))
b = rng.standard_normal(n)
t0 = time.perf_counter()
x_solve = np.linalg.solve(A, b)
t_solve = time.perf_counter() - t0
t0 = time.perf_counter()
x_inv = np.linalg.inv(A) @ b
t_inv = time.perf_counter() - t0
print(f"solve : {t_solve*1000:.2f} ms")
print(f"inv@b : {t_inv*1000:.2f} ms (~ {t_inv/t_solve:.1f}× yavas)")
print(f"|fark|: {np.linalg.norm(x_solve - x_inv):.2e}")
```
**Egzersiz 4.** $4 \times 4$ bir matrisi $2 \times 2$ bloklara böl, blok çarpımı ile sonucu bul, standart yöntemle karşılaştır.
**Egzersiz 5.** $A = ((1,2),(0,3))$, $B = ((2,0),(1,1))$. $A^{-1}, B^{-1}$ Gauss–Jordan ile bul, sonra $(AB)^{-1}$'i iki yoldan: (a) $AB$'nin doğrudan tersi, (b) $B^{-1}A^{-1}$ çarpımı. Aynı çıkmalı.
## Sonraki Ders İçin Hazırlık {#sec-sonraki}
**Ders 4: A = LU Faktorizasyonu**
- Her invertible matris için $A = LU$ ayrışımı.
- $L$ (alt üçgensel) = ters eliminasyon adımlarının çarpımı.
- $U$ (üst üçgensel) = ileri eliminasyonun sonucu.
- Sayısal LA'nın en yaygın ayrışımı; `scipy.linalg.lu`, `torch.linalg.lu_factor` arka planı.
::: {.callout-warning title="Ders 4 öncesi yapılacak"}
- Egzersizleri çöz, özellikle 3 (solve vs inv) ve 4 (blok çarpımı).
- Python'da `scipy.linalg.lu` ile birkaç matris dene.
- Ana cümleyi tekrar oku.
:::
## Anahtar Kavramlar (Cheat Sheet) {#sec-cheat-sheet}
| Kavram | Tanım | Strang'da |
|--------|-------|-----------|
| **Yol 1: Standart** | $C_{ij} = \sum_k a_{ik} b_{kj}$ | 0:33 |
| **Yol 2: Kolon** | $C$ kolonları = $A$ kolonlarının komb. | 6:11 |
| **Yol 3: Satır** | $C$ satırları = $B$ satırlarının komb. | 10:09 |
| **Yol 4: rank-1 toplamı** | $AB = \sum_k \mathbf{a}_k^{\text{col}} \mathbf{b}_k^{\text{row}}$ | 12:06 |
| **Yol 5: Blok çarpımı** | Bloklara böl, blok-blok çarp | 18:34 |
| **Rank-1 matris** | Tüm kolonlar/satırlar tek doğrultuda | 17:18 |
| **Ters matris** | $AA^{-1} = A^{-1}A = I$ (square) | 21:22 |
| **Singular test** | $A\mathbf{x}=\mathbf{0}$ için $\mathbf{x} \neq \mathbf{0}$ varsa singular | 28:00 |
| **Gauss–Jordan** | $[A \mid I] \to [I \mid A^{-1}]$ | 36:13 |
| **$(AB)^{-1}$** | $= B^{-1}A^{-1}$ (sıra ters) | 47:00 |
## ML Bağlantıları Özeti {#sec-ml-baglantilar}
::: {.callout-tip title="6 köprü"}
1. **Yol 4 (rank-1 toplamı) → SVD/LoRA** → Her matris en az $r$ rank-1 matrisin toplamı; LoRA bu temele dayanır.
2. **Yol 5 (blok çarpımı) → FlashAttention / tensor parallelism** → Büyük matrisleri belleğe sığdırmanın matematiksel iskeleti.
3. **$(AB)^{-1} = B^{-1}A^{-1}$ → backprop sırası** → Normalizing flows, invertible NNs, zincirleme türev.
4. **`np.linalg.inv` vs `np.linalg.solve`** → Inverse hesaplamak nadiren gerekli; $A^{-1}\mathbf{b}$ yerine `solve(A, b)` (3× hızlı, sağlam).
5. **Singular = ill-conditioned** → Gradient descent yakınsamıyorsa condition number yüksek; weight decay = "matrisi singular'dan uzaklaştır".
6. **Kolon uzayı sezgisi → embedding spaces** → Word/sentence embeddings = vektör uzayında "anlam yönleri"; ulaşılabilir vs ulaşılmaz vektör kavramı.
:::
::: {.callout-important title="Tek bir şey alıp gideceksen"}
Matris çarpımının beş yolu farklı bakışlardır, aynı sonucu verir. Gauss–Jordan $[A \mid I]$'dan $[I \mid A^{-1}]$'a giderek $A^{-1}$'i kurar — çünkü eliminasyon kombo matrisi $E$, $EA = I$ koşulunda tam olarak **$A^{-1}$**'dir.
:::