মূল content-এ যাও

Mathematics for AI/Functions ও Graph/Lesson 02

Line: y = wx + b

Slope আর intercept কী বোঝায়, slider টেনে নিজে হাতে একটা line data-র ওপর বসানো, MSE দিয়ে কতটা ভালো মাপা, আর সেরা line-এর সূত্র — linear regression-এর পুরো ভিত্তি।

সময়
26 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

সরলরেখার সমীকরণ:

y=wx+by = wx + b
  • ww — slope (ঢাল): xx এক বাড়লে yy কত বাড়ে
  • bb — intercept: x=0x = 0 হলে yy কত (line-টা y-axis-কে কোথায় ছোঁয়)

স্কুলে হয়তো y=mx+cy = mx + c লিখেছো — একই জিনিস। ML-এ লেখা হয় ww (weight) আর bb (bias), কারণ এগুলোই model-এর "শেখা" সংখ্যা।

main.py

ww বাড়লে line খাড়া হয়, negative হলে নিচে নামে। bb বদলালে পুরো line উপর-নিচে সরে।

কেন দরকার?

Linear regression — Machine Learning-এর প্রথম model — ঠিক এই একটা line। আর neural network-এর প্রতিটা layer-এর ভেতরেও wx+bwx + b:

y^=wx+b\hat{y} = wx + b

y^\hat{y} ("y hat") মানে prediction — model-এর অনুমান। আসল মান yy। দুটোর পার্থক্যই ভুল।

ঢাল: পরিবর্তনের হার

দুটো বিন্দু (x1,y1)(x_1, y_1) আর (x2,y2)(x_2, y_2) দিয়ে যাওয়া line-এর ঢাল:

w=y2−y1x2−x1=ΔyΔxw = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x}

Δ\Delta (delta) মানে "পরিবর্তন"। "সপ্তাহে ২ ঘণ্টা পড়লে নম্বর ৭০, ৬ ঘণ্টায় ৮২" — ঢাল 82−706−2=3\frac{82 - 70}{6 - 2} = 3: প্রতি অতিরিক্ত ঘণ্টায় ৩ নম্বর। Exercise-এ এটাই করবে।

নিজে হাতে model "train" করো

নিচের বিন্দুগুলো ৯ জন student-এর পড়ার ঘণ্টা (xx) আর নম্বর (yy, ১০-এর মধ্যে)। Slider টেনে এমন একটা line খোঁজো যেটা বিন্দুগুলোর সবচেয়ে কাছ দিয়ে যায়:

00224466881010study hours (x)

y = 0.20x + 5.00

0.20
5.00

MSE2.470

লাল দাগগুলো (ভুল) যত ছোট, MSE তত কম।

Slider টেনে line-টা বিন্দুগুলোর ওপর বসাও। তুমি এখন নিজেই একটা model “train” করছো — Machine Learning ঠিক এটাই করে, শুধু নিজে নিজে।

লাল দাগগুলো প্রতিটা বিন্দুর ভুল (residual) — আসল yy আর line-এর y^\hat{y}-এর পার্থক্য। তুমি যখন slider টানছো, আসলে একটা optimization-এর কাজ করছো — ভুল কমানো। Machine Learning ঠিক এটাই করে, শুধু নিজে নিজে, আর লাখ লাখ ww নিয়ে।

কতটা ভালো? MSE

"সবচেয়ে কাছ দিয়ে" — সংখ্যায় মাপতে Mean Squared Error:

MSE=1n∑i=1n(yi−y^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} \left( y_i - \hat{y}_i \right)^2

প্রতিটা বিন্দুর ভুলের বর্গ, তারপর গড়। (∑\sum চিহ্নটা — "সব যোগ করো" — এই module-এর শেষ lesson-এ বিস্তারিত।)

main.py

একাধিক feature

Real model-এ একটা না, অনেক input:

y^=w1x1+w2x2+⋯+wdxd+b\hat{y} = w_1 x_1 + w_2 x_2 + \dots + w_d x_d + b
main.py

প্রতিটা feature-এর নিজের weight — model শেখে কোন feature কতটা গুরুত্বপূর্ণ। (@@ হলো dot product — Vectors module-এ বিস্তারিত।) আর ৩টা feature মানে line না, একটা উঁচু-dimension-এর সমতল — কিন্তু গণিত একই।

Exercise

Exercise

দুটো বিন্দু থেকে line

+20 XP

একটা line দুটো বিন্দু দিয়ে যায়: (2, 7) আর (6, 19)।

  • w — slope (ঢাল) = y-এর পরিবর্তন ÷ x-এর পরিবর্তন
  • b — intercept (x = 0 হলে y কত)
  • predict(x) — function যেটা w·x + b return করে

মানগুলো বিন্দু থেকে হিসাব করো, হাতে লিখো না।

solution.py

Quiz

  1. Q1y = −2x + 5 — x এক বাড়লে y কী হয়?
  2. Q2House price model-এ y = 0.05 × area + 10। এখানে 10 কী বোঝায়?
  3. Q3MSE-তে ভুলের বর্গ নেওয়া হয় কেন, শুধু যোগ না করে?
0/3 answered

Challenge

Challenge

সেরা line-এর সূত্র

+50 XP

Slider দিয়ে হাতে খুঁজেছো। এবার সূত্র দিয়ে — MSE সবচেয়ে কম এমন line (least squares):

  • w = Σ (x − x̄)(y − ȳ) ÷ Σ (x − x̄)²
  • b = ȳ − w · x̄

(x̄ মানে x-এর গড়।) fit_line(x, y) function লেখো যেটা (w, b) return করে — দুটোই সাধারণ float। NumPy দিয়ে, loop ছাড়া। np.polyfit ব্যবহার করবে না — নিজে সূত্র লেখো।

solution.py

বাস্তবে কোথায় ব্যবহার হয়?

Challenge-এর সূত্রটা হাতে-কলমে যাচাই — আর দেখো, সূত্র যা দেয়, slider দিয়ে তুমি তার কতটা কাছে পৌঁছেছিলে:

main.py

scikit-learn-এর LinearRegression().fit(X, y) ঠিক এই হিসাবই করে (বহু feature-এর জন্য matrix সংস্করণে — Matrices module-এ)। আর শেষে যে coef_ আর intercept_ দেয়, সেগুলোই এই ww আর bb।

Interview প্রশ্ন

  • Beginner: y=wx+by = wx + b-এ ww আর bb কী বোঝায়?
  • Intermediate: MSE কী? Absolute error-এর বদলে বর্গ কেন?
  • Advanced: Least squares-এর closed-form সমাধান থাকা সত্ত্বেও বড় dataset-এ gradient descent কেন ব্যবহার করা হয়?

এরপর কী?

Line হলো সবচেয়ে সরল function। কিন্তু ML-এ দুটো "বাঁকা" function সবখানে — sigmoid-এর ভেতরে exe^x, আর loss function-এর ভেতরে log⁡\log। পরের lesson: Exponent ও Log।