CH 8Phase 1 · Linear Algebra for AI

Linear Transformations

১৫–২৫ মিনিট বাংলা · Math · Python
📖 একটি ছোট গল্প

ছোটবেলায় কাগজে আঁকা একটি বর্গকে যদি টেনে লম্বা করেন, ঘুরিয়ে দেন, কিংবা আয়নায় উল্টে দেন — প্রতিটি action একটি linear transformation। AI-তে neural network-এর প্রতিটি layer ঠিক এই কাজই করে — input space-কে এমনভাবে "বাঁকিয়ে-ঘুরিয়ে" দেয় যাতে শেষ পর্যন্ত pattern সহজে আলাদা করা যায়।

Linear Transformation কী?

একটি function T : ℝⁿ → ℝᵐ linear, যদি দুটি শর্ত মানে:

T(u + v) = T(u) + T(v)
T(c·u) = c · T(u)
💡 ইনসাইট
অর্থ — origin জায়গায় থাকে, সরলরেখা সরলরেখাই থাকে, এবং সমান্তরাল রেখা সমান্তরাল থাকে।

প্রতিটি linear transformation একটি matrix দিয়ে লেখা যায়:

T(x) = A x

৫টি Geometric Transformation

1. Scaling

[[s, 0], [0, s]] — সব দিকে s গুণ

2. Rotation (angle θ)

[[cos θ, −sin θ], [sin θ, cos θ]]

3. Reflection (x-axis)

[[1, 0], [0, −1]]

4. Shear

[[1, k], [0, 1]]

5. Projection (onto x-axis)

[[1, 0], [0, 0]]

Composition = Matrix Multiplication

দুটি transformation পরপর প্রয়োগ করলে — সমতুল্য matrix = দুটির গুণফল:

T₂(T₁(x)) = (A₂ A₁) x
⚠️ সতর্কতা
Order গুরুত্বপূর্ণ! আগে rotate তারপর scale ≠ আগে scale তারপর rotate। তাই A₂A₁ ≠ A₁A₂

Rank, Null Space, Column Space

  • Column space: A-র column-গুলোর span — output কোন subspace-এ পড়বে।
  • Rank: independent column-এর সংখ্যা = output-এর "actual" মাত্রা।
  • Null space: যেসব x-এ Ax = 0 — transformation যেগুলোকে "মুছে" দেয়।
  • Rank-nullity theorem: rank(A) + nullity(A) = n

Eigenvector-এর সাথে সংযোগ

Eigenvector = সেই বিশেষ direction যেগুলো transformation-এ ঘোরে না, শুধু stretch/shrink হয়। তাই একটি linear transformation বোঝার সহজ উপায় — তার eigen-direction গুলোতে কী হচ্ছে দেখা।

Python (NumPy + matplotlib intuition)

pythonPython · NumPy
import numpy as np

# 1) Define a unit square (4 corners as columns)
square = np.array([[0, 1, 1, 0],
                   [0, 0, 1, 1]])

# 2) Scaling by 2
S = np.array([[2, 0], [0, 2]])

# 3) Rotation by 45 degrees
theta = np.pi / 4
R = np.array([[np.cos(theta), -np.sin(theta)],
              [np.sin(theta),  np.cos(theta)]])

# 4) Shear
H = np.array([[1, 0.5], [0, 1]])

# Apply transformations
print("scaled corners:\n",  S @ square)
print("rotated corners:\n", R @ square)
print("sheared corners:\n", H @ square)

# Composition: first rotate, then scale
combined = S @ R               # equivalent matrix
print("combined corners:\n", combined @ square)

# Rank & null space inspection
A = np.array([[1.0, 2.0], [2.0, 4.0]])   # rank-1 (rows are dependent)
print("rank:", np.linalg.matrix_rank(A))  # 1
# Null space: any x with x2 = -x1/2 maps to 0
x = np.array([2.0, -1.0])
print("A x =", A @ x)                     # ~ [0, 0]

AI/ML সংযোগ

  • Dense layer = linear transformation + bias + non-linear activation।
  • Embedding layer = discrete token → continuous vector space-এ projection।
  • PCA = data-কে নতুন (eigen) basis-এ rotate করে dimension কমানো।
  • Whitening = data-এর covariance-কে Identity-তে transform করা।
  • Convolution = locally-applied linear transformation, weight shared।
  • Non-linearity-র গুরুত্ব: শুধু linear layer stack করলে পুরোটাই একটি linear transformation হয়ে যায় — তাই ReLU/sigmoid দরকার।

Common Mistakes

  • Affine ≠ Linear — Ax + b linear নয় (origin শূন্যে যায় না)। কিন্তু "homogeneous coordinate"-এ linear।
  • Composition order ভুলে যাওয়া।
  • Singular (rank-deficient) matrix-কে invert করার চেষ্টা।

Practice Tasks

  1. 90° rotation matrix বানান এবং [1, 0] কোথায় যায় verify করুন।
  2. [[1, 1], [0, 1]]-এর rank ও null space বের করুন।
  3. Rotation আগে নাকি scaling আগে — দুই order-এ একটি square transform করে পার্থক্য দেখান।

Assignment

matplotlib দিয়ে একটি unit square আঁকুন। তারপর scale, rotate, shear, reflect — প্রতিটির পর shape কেমন হয় subplot-এ দেখান। সবশেষে দুটি transformation compose করে দেখান order বদলালে আকার বদলে যাচ্ছে।

Interview Questions

  1. Linear transformation-এর দুই শর্ত কী?
  2. Affine ও linear-এর পার্থক্য?
  3. Non-linearity ছাড়া deep network কেন কাজ করে না?
  4. Rank-deficient matrix বলতে কী বোঝায়, কেন সমস্যা?

Mini Project

"2D Transform Visualizer" — Python script যেখানে user একটি 2×2 matrix input দেবে, এবং script সেই transformation-এর under unit grid কেমন দেখায় plot করবে। সাথে rank, det, eigenvalue print করবে।

Summary · সারসংক্ষেপ

  • Linear transformation = matrix multiplication; origin fixed, সরলরেখা সরল থাকে।
  • Scaling, rotation, reflection, shear, projection — ৫টি core type।
  • Composition = matrix multiplication; order matters।
  • Neural network = transformation এবং non-linearity-র পরপর প্রয়োগ।
✨ পরবর্তী পদক্ষেপ
Chapter 9-এ SVD শিখব — যেকোনো matrix-কে rotation × scaling × rotation আকারে ভাঙার সর্বজনীন পদ্ধতি।