অধ্যায় 1 · AI-এর জন্য গণিত কেন
AI-এর জন্য গণিত কেন (আর কতটা দরকার)
- পৃষ্ঠা 1 / 17
- 3 মিনিট পড়া
কোনো গণিত না জেনেও একটা ল্যাঙ্গুয়েজ মডেল ব্যবহার করা যায়। কিন্তু যখনই কী ঘটছে তা বুঝতে হবে — সার্চ কেন ভুল ডকুমেন্ট দিচ্ছে, বেশিক্ষণ ট্রেন করলে মডেল কেন খারাপ হচ্ছে, ৮৮% কি আসলেই ৮৬%-এর চেয়ে ভালো — তখন একটু গণিত লাগে। ডিগ্রি নয়: হাতেগোনা কয়েকটা ধারণা, যার প্রতিটা AI-এর কাজে রোজ লাগে। এই টিউটোরিয়াল সেগুলো NumPy দিয়ে শেখায়, তাই প্রতিটা সূত্র এমন কোডও, যা নিজে চালাতে পারবেন।
চার লাইনে পুরো একটা মডেল
এখানে একটা ছোট্ট স্প্যাম ডিটেক্টর। এটা একটা ইমেইলের বর্ণনা দেওয়া তিনটা সংখ্যা দেখে বলে সেটা স্প্যাম হওয়ার সম্ভাবনা কত:
import numpy as np
# একটা ইমেইল, তিনটা সংখ্যায় বর্ণনা করা (ফিচার):
# লিংকের সংখ্যা, বড় হাতের অক্ষরের অনুপাত, "!"-এর সংখ্যা (সব 0–1-এ আনা)
x = np.array([0.9, 0.7, 0.4])
w = np.array([2.0, 1.5, 0.5]) # ওয়েট: কোন ফিচার কতটা গুরুত্বপূর্ণ
b = -1.5 # বায়াস: শুরুর বিন্দু
z = x @ w + b # ডট প্রোডাক্ট (পাতা ৩)
p = 1 / (1 + np.exp(-z)) # সিগময়েড স্কোরকে সম্ভাবনায় বদলায় (পাতা ৮)
print(f"score z = {z:.2f}")
print(f"probability of spam = {p:.2f}")score z = 1.55
probability of spam = 0.82প্রতিটা লাইন এমন এক টুকরো গণিত, যা এখানে শিখবেন। ইমেইলটা একটা ভেক্টর (পাতা ২)। ওয়েটের সাথে মেলানো হলো ডট প্রোডাক্ট (পাতা ৩)। স্কোরকে সম্ভাবনায় বদলাতে লাগে সিগময়েড ফাংশন (পাতা ৮)। ভালো ওয়েট খুঁজে বের করা হয় গ্রেডিয়েন্ট ডিসেন্ট দিয়ে (পাতা ৭)। ডিটেক্টরটা আদৌ ভালো কিনা যাচাই করতে লাগে প্রিসিশন আর রিকল (পাতা ১৬)। একটা বড় ল্যাঙ্গুয়েজ মডেল এই একই ধরন, শতকোটি বার পুনরাবৃত্ত।
চারটা ক্ষেত্র
| ক্ষেত্র | AI-তে কী কাজ করে | অধ্যায় |
|---|---|---|
| লিনিয়ার অ্যালজেব্রা | ডেটাকে ভেক্টর আর ম্যাট্রিক্স হিসেবে প্রকাশ করে: এমবেডিং, ছবি, মডেলের ওয়েট | ২ |
| ক্যালকুলাস | মডেল কীভাবে শেখে তা ব্যাখ্যা করে: ঢাল, গ্রেডিয়েন্ট, লস | ৩ |
| পরিসংখ্যান | ডেটা বর্ণনা করে আর বলে একটা ফলাফল আসল নাকি ভাগ্য | ৪ |
| সম্ভাবনা | অনিশ্চয়তা সামলায়: অনুমান, বেইজ, LLM পরের শব্দ কীভাবে বাছে | ৫ |
কতটা দরকার
যে AI ইঞ্জিনিয়ার অ্যাপ্লিকেশন বানান, তাঁর দরকার ধারণাগুলো বোঝা আর কোডে চিনতে পারা। হাতে ডেরিভেটিভ খুব কমই হিসাব করবেন; প্রায়ই জানতে হবে গ্রেডিয়েন্ট কী, ফিচার কেন একই মাপে আনতে হয়, বা টেস্ট সেট কেন আলাদা রাখতে হয়। যে গবেষকেরা নতুন মডেল নকশা করেন তাঁরা অনেক গভীরে যান — দুই ক্ষেত্রেই এই টিউটোরিয়াল হলো ভিত।
চিহ্ন পড়া
পেপার আর ডকুমেন্টেশনের গণিতে কয়েকটা চিহ্ন বারবার আসে। এখনই মুখস্থ করার দরকার নেই; যখনই কোনোটা পাবেন, এই টেবিলে ফিরে আসুন।
| চিহ্ন | পড়ুন এভাবে | NumPy-তে |
|---|---|---|
x, 𝐱 | একটা সংখ্যা; একটা ভেক্টর (প্রায়ই মোটা হরফে) | x = np.array([...]) |
xᵢ | x-এর i-তম উপাদান | x[i] |
Σ xᵢ | সব xᵢ-এর যোগফল | x.sum() |
x̄ বা μ | গড় | x.mean() |
σ | স্ট্যান্ডার্ড ডেভিয়েশন | x.std() |
‖x‖ | একটা ভেক্টরের দৈর্ঘ্য | np.linalg.norm(x) |
x · y, xᵀy | ডট প্রোডাক্ট | x @ y |
W, Wᵀ | একটা ম্যাট্রিক্স; তার ট্রান্সপোজ | W, W.T |
ŷ | "y হ্যাট": একটা অনুমান | y_pred |
∂L/∂w | w বদলালে লস L কতটা বদলায় | একটা গ্রেডিয়েন্ট (পাতা ৭) |
P(A | B) | B ঘটেছে ধরে নিয়ে A-এর সম্ভাবনা | পাতা ১৪ |
এই টিউটোরিয়াল কীভাবে ব্যবহার করবেন
- প্রতিটা উদাহরণ নিজে চালান — নোটবুকে (AI-এর জন্য Python, পাতা ২০) একটা সংখ্যা বদলে কী হয় দেখা সহজ।
- কোনো সূত্র ভয়ংকর দেখালে আগে পাশের কোডটা পড়ুন। কোড হলো ধাপে ধাপে লেখা গণিত।
- তিনটা কুইজ দিন: অধ্যায় ২-এর পর, অধ্যায় ৪-এর পর, আর শেষে চূড়ান্ত পরীক্ষা।
নিজে চেষ্টা করুন
- প্রথম উদাহরণের ইমেইলটা বদলে
[0.0, 0.1, 0.0]করুন। সম্ভাবনার কী হয়, আর কেন? - কোন ওয়েট সবচেয়ে বেশি পার্থক্য করে? একে একে প্রতিটাকে 0 করে তুলনা করুন।