ক্যাপস্টোন — লিনিয়ার রিগ্রেশন সম্পূর্ণ গাণিতিকভাবে ডেরাইভ ও কোড করা
এই পাঠে যা শিখবেন
- লিনিয়ার রিগ্রেশনের মডেল ও মিন-স্কয়ারড-এরর (MSE) লস ফাংশন থেকে শুরু করে সম্পূর্ণ গ্রেডিয়েন্ট ডেরাইভেশন
- নরমাল ইকুয়েশন — গ্রেডিয়েন্ট শূন্য বসিয়ে ক্লোজড-ফর্ম সমাধান বের করার সম্পূর্ণ প্রমাণ
- কেন গাউসিয়ান নয়েজের অধীনে "স্কয়ারড এরর মিনিমাইজ করা" আর "ম্যাক্সিমাম লাইকলিহুড এস্টিমেট খোঁজা" একই কাজ
- একই সিন্থেটিক ডেটাসেটে ক্লোজড-ফর্ম ও গ্রেডিয়েন্ট ডিসেন্ট — দুটো সম্পূর্ণ ভিন্ন পদ্ধতি একই উত্তরে পৌঁছায় তা কোডে যাচাই
- Ridge regularization কীভাবে এই একই ফ্রেমওয়ার্কে যোগ হয় (পাঠ ৩২-এর সাথে সংযোগ)
- পুরো ৩৫-পাঠের কোর্সের একটি সংশ্লিষ্ট, প্রয়োগযোগ্য পুনরালোচনা
১ · মডেল ও লস ফাংশন
লিনিয়ার রিগ্রেশনের মডেল সহজ — প্রতিটি ইনপুট ভেক্টর $\mathbf{x} \in \mathbb{R}^d$-এর জন্য একটি সংখ্যা পূর্বাভাস করা: $$\hat y = \mathbf{w}^T\mathbf{x} + b$$ এটিই পাঠ ০১-এ দেখা একক-নিউরনের গণনা — এখানে ওজন ভেক্টর $\mathbf{w} \in \mathbb{R}^d$ ও বায়াস $b$ হলো শেখার মতো প্যারামিটার। $n$টি ডেটা পয়েন্ট $\{(\mathbf{x}_i, y_i)\}_{i=1}^n$ থাকলে, আমাদের লস ফাংশনMean Squared Error, MSEপ্রতিটি পূর্বাভাস ও প্রকৃত মানের পার্থক্যের বর্গের গড়। হলো: $$\mathcal{L}(\mathbf{w}, b) = \frac{1}{n}\sum_{i=1}^n (\hat y_i - y_i)^2 = \frac{1}{n}\sum_{i=1}^n (\mathbf{w}^T\mathbf{x}_i + b - y_i)^2$$ লক্ষ্য — এমন $\mathbf{w}, b$ খুঁজে বের করা যা $\mathcal{L}$-কে সর্বনিম্ন করে। এই একটি সমীকরণকে দুটি সম্পূর্ণ ভিন্ন উপায়ে সমাধান করা যায় — একটি ক্যালকুলাসে ভিত্তি করে সরাসরি সূত্র বসিয়ে (নরমাল ইকুয়েশন), আরেকটি ধাপে ধাপে গ্রেডিয়েন্ট অনুসরণ করে (গ্রেডিয়েন্ট ডিসেন্ট) — এবং দুটোই একই উত্তরে পৌঁছায়, কারণ $\mathcal{L}$ একটি কনভেক্স ফাংশন (পাঠ ১৬)।
২ · গ্রেডিয়েন্ট ডেরাইভ করা (পাঠ ১৪)
পাঠ ১৪-এর নিয়ম অনুযায়ী, $\mathcal{L}$-এর প্রতিটি প্যারামিটারের সাপেক্ষে পার্শিয়াল ডেরিভেটিভ বের করি। প্রথমে $b$-এর সাপেক্ষে (চেইন রুল, পাঠ ১৩ ব্যবহার করে): $$\frac{\partial \mathcal{L}}{\partial b} = \frac{1}{n}\sum_{i=1}^n 2(\hat y_i - y_i)\cdot\frac{\partial \hat y_i}{\partial b} = \frac{2}{n}\sum_{i=1}^n (\hat y_i - y_i)$$ কারণ $\partial \hat y_i/\partial b = 1$। এখন $\mathbf{w}$-এর সাপেক্ষে — এখানে $\partial \hat y_i/\partial \mathbf{w} = \mathbf{x}_i$ (পাঠ ১৪-এ দেখা $\nabla_{\mathbf{x}}(\mathbf{w}^T\mathbf{x}) = \mathbf{w}$-এর প্রতিসম সংস্করণ): $$\nabla_{\mathbf{w}} \mathcal{L} = \frac{1}{n}\sum_{i=1}^n 2(\hat y_i - y_i)\,\mathbf{x}_i = \frac{2}{n}\sum_{i=1}^n (\hat y_i - y_i)\,\mathbf{x}_i$$ সব ডেটা পয়েন্ট একসাথে ম্যাট্রিক্স আকারে লিখলে ($\mathbf{X}$ হলো $n \times d$ ম্যাট্রিক্স, প্রতিটি সারি একটি $\mathbf{x}_i^T$; $\hat{\mathbf{y}} = \mathbf{Xw} + b\mathbf{1}$, পাঠ ০৭): $$\nabla_{\mathbf{w}} \mathcal{L} = \frac{2}{n}\mathbf{X}^T(\hat{\mathbf{y}} - \mathbf{y}), \qquad \frac{\partial \mathcal{L}}{\partial b} = \frac{2}{n}\sum_i(\hat y_i - y_i)$$
লেখা সহজ করতে $\mathbf{X}$-এ একটি অতিরিক্ত কলাম যোগ করি যার সব মান $1$, এবং $\tilde{\mathbf{X}} = [\mathbf{X} \mid \mathbf{1}]$, $\tilde{\mathbf{w}} = [\mathbf{w}; b]$ ধরি। তাহলে $\hat{\mathbf{y}} = \tilde{\mathbf{X}}\tilde{\mathbf{w}}$, এবং $$\nabla_{\tilde{\mathbf{w}}} \mathcal{L} = \frac{2}{n}\tilde{\mathbf{X}}^T(\tilde{\mathbf{X}}\tilde{\mathbf{w}} - \mathbf{y})$$ — একটি একক পরিচ্ছন্ন সূত্র, যা $\mathbf{w}$ ও $b$ উভয়ের গ্রেডিয়েন্ট একসাথে ধরে রাখে।
৩ · ক্লোজড-ফর্ম সমাধান — নরমাল ইকুয়েশন (পাঠ ০৯)
যেহেতু $\mathcal{L}$ কনভেক্স (এটি একটি কোয়াড্রেটিক ফর্ম, পাঠ ১২), এর গ্লোবাল মিনিমাম ঠিক সেই বিন্দুতে যেখানে গ্রেডিয়েন্ট শূন্য (পাঠ ১৬)। গ্রেডিয়েন্ট শূন্য বসাই: $$\frac{2}{n}\tilde{\mathbf{X}}^T(\tilde{\mathbf{X}}\tilde{\mathbf{w}} - \mathbf{y}) = \mathbf{0} \implies \tilde{\mathbf{X}}^T\tilde{\mathbf{X}}\tilde{\mathbf{w}} = \tilde{\mathbf{X}}^T\mathbf{y}$$ এই সমীকরণকেই বলে নরমাল ইকুয়েশন (normal equations)। যদি $\tilde{\mathbf{X}}^T\tilde{\mathbf{X}}$ ইনভার্টিবল হয় (অর্থাৎ পূর্ণ র্যাঙ্ক, পাঠ ০৯ — এর মানে ফিচারগুলো একে অপরের সাথে সম্পূর্ণ রৈখিকভাবে নির্ভরশীল নয়, পাঠ ০৬), তাহলে উভয় পাশে $(\tilde{\mathbf{X}}^T\tilde{\mathbf{X}})^{-1}$ দিয়ে গুণ করে সরাসরি সমাধান পাওয়া যায়: $$\boxed{\tilde{\mathbf{w}} = (\tilde{\mathbf{X}}^T\tilde{\mathbf{X}})^{-1}\tilde{\mathbf{X}}^T\mathbf{y}}$$ এটিই ক্লোজড-ফর্ম সমাধান — কোনো ইটারেশন ছাড়াই, একটি ম্যাট্রিক্স ইনভার্স ও কয়েকটি গুণ দিয়ে সরাসরি সর্বোত্তম $\mathbf{w}, b$ বের করা যায়।
np.linalg.inv-এর বদলে np.linalg.lstsq
বা pseudo-inverse ব্যবহার করা হয় — অথবা, নিচে দেখানো Ridge regularization যোগ করে সমস্যাটি সবসময়ের জন্য সমাধান করা যায়।
৪ · কেন এটি কাজ করে — গাউসিয়ান নয়েজের অধীনে MLE (পাঠ ৩০)
"স্কয়ারড এরর মিনিমাইজ করা" কি স্রেফ একটি সুবিধাজনক পছন্দ, নাকি এর পেছনে গভীর যুক্তি আছে? ধরি বাস্তব ডেটা তৈরি হয় এভাবে — সত্যিকারের রৈখিক সম্পর্ক প্লাস কিছুটা এলোমেলো নয়েজ: $$y = \mathbf{w}^T\mathbf{x} + b + \epsilon, \qquad \epsilon \sim \mathcal{N}(0, \sigma^2)$$ তাহলে (পাঠ ২৬-এর গাউসিয়ান PDF ব্যবহার করে) $y$, $\mathbf{x}$ দেওয়া থাকলে একটি গাউসিয়ান অনুসরণ করে: $y \mid \mathbf{x} \sim \mathcal{N}(\mathbf{w}^T\mathbf{x}+b, \sigma^2)$, অর্থাৎ $$P(y_i \mid \mathbf{x}_i; \mathbf{w}, b) = \frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{(y_i - \hat y_i)^2}{2\sigma^2}\right)$$ $n$টি ডেটা পয়েন্ট iid ধরলে (পাঠ ৩০-এর মতো), likelihood হলো এদের গুণফল, ও log-likelihood যোগফল: $$\ell(\mathbf{w}, b) = \sum_{i=1}^n \log P(y_i \mid \mathbf{x}_i) = -\frac{n}{2}\log(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^n (y_i - \hat y_i)^2$$ লক্ষ করুন — এই রাশির মধ্যে $\mathbf{w}, b$-এর উপর নির্ভরশীল একমাত্র অংশ হলো $-\frac{1}{2\sigma^2}\sum_i(y_i-\hat y_i)^2$ (প্রথম পদটি $\mathbf{w}, b$-নিরপেক্ষ ধ্রুবক)। তাই: $$\arg\max_{\mathbf{w},b} \ell(\mathbf{w},b) = \arg\max_{\mathbf{w},b}\left[-\sum_i (y_i-\hat y_i)^2\right] = \arg\min_{\mathbf{w},b}\sum_i(y_i-\hat y_i)^2$$ অর্থাৎ — গাউসিয়ান নয়েজের অধীনে ম্যাক্সিমাম লাইকলিহুড এস্টিমেশন ঠিক স্কয়ারড এরর মিনিমাইজ করার সমতুল্য। "কেন বর্গ (square), অন্য কোনো পাওয়ার নয়?" — এই প্রশ্নের সঠিক উত্তর হলো এটাই: নয়েজ গাউসিয়ান ধরে নিলে, বর্গ-এরর ঠিক সেই রাশি যা likelihood থেকে স্বাভাবিকভাবে বেরিয়ে আসে।
এই একটি ডেরিভেশনেই — ম্যাট্রিক্স ও ইনভার্স (লিনিয়ার অ্যালজেব্রা, M2-M3), গ্রেডিয়েন্ট ও চেইন রুল (ক্যালকুলাস, M4), এবং গাউসিয়ান লাইকলিহুড (সম্ভাবনা তত্ত্ব, M6-M7) — পাঠ ০১-এ প্রতিশ্রুত তিন ধরনের গণিতের চক্র সম্পূর্ণরূপে একত্রিত হয়ে একটি বাস্তব, ব্যবহারযোগ্য অ্যালগরিদম তৈরি করছে।
৫ · কোড: ক্লোজড-ফর্ম বনাম গ্রেডিয়েন্ট ডিসেন্ট — একই ডেটাসেটে
এখন এই দুটি সম্পূর্ণ ভিন্ন সমাধান পদ্ধতি — একটি সরাসরি সূত্র (ধারা ৩), আরেকটি পাঠ ১৭-এর ইটারেটিভ গ্রেডিয়েন্ট ডিসেন্ট (ধারা ২-এর গ্রেডিয়েন্ট ব্যবহার করে) — একই সিন্থেটিক ডেটাসেটে চালিয়ে দেখি তারা একই $\mathbf{w}, b$-এ পৌঁছায় কি না।
import numpy as np
rng = np.random.default_rng(42)
# --- সিন্থেটিক ডেটাসেট তৈরি: y = true_w . x + true_b + গাউসিয়ান নয়েজ ---
n, d = 200, 2
X = rng.normal(0, 1, size=(n, d)) # ফিচার ম্যাট্রিক্স (n x d)
true_w = np.array([3.0, -2.0])
true_b = 5.0
noise = rng.normal(0, 0.5, size=n) # epsilon ~ N(0, 0.25)
y = X @ true_w + true_b + noise
# --- (A) ক্লোজড-ফর্ম সমাধান: নরমাল ইকুয়েশন ---
X_tilde = np.hstack([X, np.ones((n, 1))]) # বায়াসের জন্য কলাম যোগ
w_tilde_closed = np.linalg.inv(X_tilde.T @ X_tilde) @ X_tilde.T @ y
w_closed, b_closed = w_tilde_closed[:-1], w_tilde_closed[-1]
print("ক্লোজড-ফর্ম -> w =", np.round(w_closed, 4), " b =", round(b_closed, 4))
# --- (B) গ্রেডিয়েন্ট ডিসেন্ট (পাঠ ১৭) ---
w_gd = np.zeros(d)
b_gd = 0.0
lr = 0.1
epochs = 1000
for epoch in range(epochs):
y_hat = X @ w_gd + b_gd
error = y_hat - y
grad_w = (2 / n) * (X.T @ error)
grad_b = (2 / n) * np.sum(error)
w_gd -= lr * grad_w
b_gd -= lr * grad_b
print("গ্রেডিয়েন্ট ডিসেন্ট -> w =", np.round(w_gd, 4), " b =", round(b_gd, 4))
print("প্রকৃত (true) -> w =", true_w, " b =", true_b)
৬ · বোনাস — Ridge regularization (পাঠ ৩২-এর সাথে সংযোগ)
পাঠ ৩২-এ আমরা দেখেছিলাম প্রতিটি ওজনের উপর গাউসিয়ান প্রায়র বসালে MAP এস্টিমেশন $L2$ regularization-এ পরিণত হয়। এখানে সেই একই ধারণা প্রয়োগ করলে লস ফাংশন হয় $\mathcal{L}_{ridge} = \frac{1}{n}\|\tilde{\mathbf{X}}\tilde{\mathbf{w}} - \mathbf{y}\|^2 + \lambda\|\mathbf{w}\|_2^2$ (সাধারণত বায়াস $b$-কে regularize করা হয় না)। একই পদ্ধতিতে গ্রেডিয়েন্ট শূন্য বসিয়ে সমাধান করলে: $$\tilde{\mathbf{w}} = (\tilde{\mathbf{X}}^T\tilde{\mathbf{X}} + \lambda \mathbf{I}')^{-1}\tilde{\mathbf{X}}^T\mathbf{y}$$ যেখানে $\mathbf{I}'$ হলো identity ম্যাট্রিক্স, শুধু বায়াসের অবস্থানে $0$ (যাতে বায়াস regularize না হয়)। লক্ষণীয় — $\lambda \mathbf{I}'$ যোগ করা $\tilde{\mathbf{X}}^T\tilde{\mathbf{X}}$-কে সবসময় ইনভার্টিবল করে তোলে, এমনকি যখন এটি নিজে থেকে ইনভার্টিবল না-ও হয় (পাঠ ০৯-এর সেই সমস্যাটির একটি সরাসরি সমাধান)।
# উপরের একই X, y, X_tilde ব্যবহার করে Ridge regression
lam = 1.0
reg_matrix = lam * np.eye(d + 1)
reg_matrix[-1, -1] = 0 # বায়াসকে regularize করা হয় না
w_tilde_ridge = np.linalg.inv(X_tilde.T @ X_tilde + reg_matrix) @ X_tilde.T @ y
print("Ridge (λ=1.0) -> w =", np.round(w_tilde_ridge[:-1], 4), " b =", round(w_tilde_ridge[-1], 4))
পাঠ ০১-এ আমরা বলেছিলাম একটি নিউরাল নেটওয়ার্ক তিন ধরনের গণিতের একটি চক্র। এই ৩৫টি পাঠে আপনি সেই চক্রের প্রতিটি
অংশ সম্পূর্ণ গাণিতিকভাবে ডেরাইভ করেছেন — ভেক্টর ও ম্যাট্রিক্স থেকে শুরু করে (M2-M3), আইগেনভ্যালু ও SVD পেরিয়ে,
চেইন রুল দিয়ে ব্যাকপ্রপাগেশন হাতে-কলমে ডেরাইভ করে (M4-M5), সম্ভাবনা তত্ত্ব ও পরিসংখ্যানের ভিত্তি বুঝে
(M6-M7), এবং অবশেষে এই ক্যাপস্টোনে — যেখানে ম্যাট্রিক্স ইনভার্স, গ্রেডিয়েন্ট ও গাউসিয়ান লাইকলিহুড একসাথে
মিলে একটি সম্পূর্ণ, বাস্তবে ব্যবহারযোগ্য মডেল তৈরি করেছে। এখন থেকে আপনি যখন কোনো পেপারের appendix-এ একটি
ডেরিভেশন দেখবেন, বা কোনো লাইব্রেরির সোর্স কোডে np.linalg.inv বা গ্রেডিয়েন্টের হিসাব দেখবেন —
সেই গণিতটা আর অচেনা লাগবে না, কারণ আপনি নিজের হাতে সেটা প্রথম থেকে তৈরি করেছেন। এটি একটি সমাপ্তি নয়, একটি
ভিত্তি — Machine Learning ও Deep Learning কোর্সে এখন আপনি সূত্র দেখে থমকে না গিয়ে সরাসরি প্রয়োগে মনোযোগ
দিতে পারবেন। অভিনন্দন, এবং শুভকামনা আপনার পরবর্তী ধাপের জন্য।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ নরমাল ইকুয়েশন যখন একটি একক সূত্রেই সরাসরি সমাধান দেয়, তাহলে বাস্তব ML সিস্টেমে (যেমন নিউরাল নেটওয়ার্ক) কেন সবসময় গ্রেডিয়েন্ট ডিসেন্ট ব্যবহার করা হয়?
দুটি কারণ। প্রথমত, $(\tilde{\mathbf{X}}^T\tilde{\mathbf{X}})^{-1}$ গণনার খরচ $O(d^3)$ — ফিচারের সংখ্যা $d$ যদি লক্ষ লক্ষ হয় (যেমন একটি বড় নিউরাল নেটওয়ার্কে), এই ইনভার্স ব্যবহারিকভাবে গণনা করাই অসম্ভব হয়ে যায়। দ্বিতীয়ত, নরমাল ইকুয়েশন কাজ করে কারণ MSE লস $\mathbf{w}$-এর একটি রৈখিক (linear) ফাংশনের সাপেক্ষে কোয়াড্রেটিক — কিন্তু নিউরাল নেটওয়ার্কে $\hat y$ প্যারামিটারের একটি nonlinear ফাংশন (একাধিক লেয়ার ও অ্যাক্টিভেশনের কারণে), তাই কোনো বন্ধ-আকারের সমাধানই থাকে না — গ্রেডিয়েন্ট ডিসেন্টই একমাত্র ব্যবহারিক উপায়।
প্র ০২ যদি দুটি ফিচার একে অপরের সাথে হুবহু সমানুপাতিক হয় (perfectly correlated), তাহলে নরমাল ইকুয়েশনে কী সমস্যা হবে, এবং এর সাথে পাঠ ০৬ ও পাঠ ০৯-এর সম্পর্ক কী?
দুটি ফিচার সমানুপাতিক হলে তারা রৈখিকভাবে নির্ভরশীল (পাঠ ০৬) — অর্থাৎ $\mathbf{X}$-এর কলামগুলো পূর্ণ র্যাঙ্ক
তৈরি করে না, ফলে $\tilde{\mathbf{X}}^T\tilde{\mathbf{X}}$-ও পূর্ণ র্যাঙ্ক হয় না এবং এর ডিটারমিন্যান্ট $0$
(পাঠ ০৯) — অর্থাৎ ইনভার্স-ই নেই। ব্যবহারিকভাবে np.linalg.inv একটি error বা numerically
অস্থিতিশীল ফলাফল দেবে। এই সমস্যার একটি সরাসরি সমাধানই হলো ধারা ৬-এর Ridge regularization, যা
$\tilde{\mathbf{X}}^T\tilde{\mathbf{X}}$-এ $\lambda\mathbf{I}'$ যোগ করে সবসময় ইনভার্টিবল করে তোলে।
প্র ০৩ যদি নয়েজ $\epsilon$ গাউসিয়ান না হয়ে অন্য কোনো বিতরণ থেকে আসত (যেমন Laplace), তাহলে MLE কি এখনো স্কয়ারড এরর মিনিমাইজেশনের সমতুল্য হতো?
না। ধারা ৪-এর ডেরিভেশন সরাসরি গাউসিয়ান PDF-এর $\exp(-(y-\hat y)^2/2\sigma^2)$ আকারের উপর নির্ভরশীল, যা log নিলে একটি বর্গ-পদ দেয়। Laplace নয়েজের PDF-এ থাকে $\exp(-|y-\hat y|/b)$ — log নিলে এটি একটি absolute-value পদ দেয়, অর্থাৎ সেক্ষেত্রে MLE হবে $|y_i-\hat y_i|$-এর সমষ্টি মিনিমাইজ করা (L1 loss / mean absolute error), বর্গ নয়। এটি দেখায় লস ফাংশনের পছন্দ আসলে নয়েজ সম্পর্কে একটি সুস্পষ্ট পরিসংখ্যানগত অনুমান — কোনো স্বেচ্ছাচারী পছন্দ নয়।
অনুশীলন
-
পরীক্ষা করুন: কোড সেলে
n,noise-এর স্ট্যান্ডার্ড ডেভিয়েশন বাtrue_w/true_b-এর মান বদলে Run চাপুন। ক্লোজড-ফর্ম ও গ্রেডিয়েন্ট ডিসেন্ট এখনো একে অপরের কাছাকাছি থাকে কি না দেখুন। নয়েজ অনেক বাড়ালে (যেমন std=5.0) কী বদলায়?দুটি পদ্ধতি সবসময় একে অপরের কাছাকাছি থাকবে (কারণ তারা একই কনভেক্স ফাংশনের একই মিনিমাম খুঁজছে), কিন্তু নয়েজ বাড়ালে উভয় পদ্ধতির উত্তরই প্রকৃত (true) $\mathbf{w}, b$ থেকে বেশি দূরে সরে যাবে — কারণ বেশি নয়েজ মানে ডেটা থেকে প্রকৃত সম্পর্ক অনুমান করা কঠিন হয়ে যায় (কম "সিগনাল", বেশি "শব্দ")।
-
ডেরাইভ করুন: একটি ফিচার ($d=1$) ধরে নিয়ে দেখান যে নরমাল ইকুয়েশন সমাধান পরিসংখ্যানের ক্লাসিক
সরল রিগ্রেশন সূত্র $w = \dfrac{\sum_i(x_i-\bar x)(y_i-\bar y)}{\sum_i(x_i-\bar x)^2}$, $b=\bar y - w\bar x$-এর
সমতুল্য।
$d=1$-এ নরমাল ইকুয়েশন $\tilde{\mathbf{X}}^T\tilde{\mathbf{X}}\tilde{\mathbf{w}} = \tilde{\mathbf{X}}^T\mathbf{y}$ হাতে-কলমে লিখে ২টি সমীকরণ ২টি অজানা ($w, b$) সমাধান করলে ($\sum x_i$, $\sum x_i^2$, $\sum y_i$, $\sum x_iy_i$ পদগুলোর মাধ্যমে) ঠিক এই ক্লাসিক সূত্রেই পৌঁছাবেন — কারণ এটি শুধু একই নরমাল ইকুয়েশনের বীজগাণিতিকভাবে সরলীকৃত, বিশেষ ($d=1$) কেস।
আরও পড়ুন · আপনার পরবর্তী পদক্ষেপ
- Machine Learning কোর্স এখন শুরু করুন এই কোর্সের গণিত — নরমাল ইকুয়েশন, গ্রেডিয়েন্ট ডিসেন্ট, রেগুলারাইজেশন — বাস্তব অ্যালগরিদম ও লাইব্রেরিতে কীভাবে প্রয়োগ হয় তা দেখুন।
- Deep Learning কোর্স ব্যাকপ্রপ থেকে বাস্তবে M4-M5-তে ডেরাইভ করা ব্যাকপ্রপাগেশন কীভাবে PyTorch-এ প্রকৃত নিউরাল নেটওয়ার্ক প্রশিক্ষণে রূপ নেয়।
- সব AI Courses দেখুন ABCL TECH AI Foundations, Python for AI, Machine Learning, Deep Learning ও আরও অনেক কিছু — সব এক জায়গায়।