মূল content-এ যাও

Mathematics for AI/Functions ও Graph/Lesson 01

Function কী?

Input নিয়ে output দেওয়া একটা নিয়ম — গণিতের function আর Python function একই জিনিস। Graph দিয়ে function দেখা, function জোড়া লাগানো, আর কেন একটা neural network আসলে একটা বিশাল function।

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

সহজ ভাষায়

Function হলো একটা নিয়ম, যেটা প্রতিটা input-এর জন্য ঠিক একটা output দেয়। একটা যন্ত্রের মতো ভাবো:

input  ──►  [  নিয়ম  ]  ──►  output
   3   ──►  [  x²    ]  ──►    9

গণিতে লিখি:

f(x)=x2f(x) = x^2

পড়ো: "f of x সমান x-এর বর্গ"। f(3)=9f(3) = 9, f(−2)=4f(-2) = 4।

তুমি Python-এ আগেই এটা লিখেছো:

main.py

গণিতের function আর Python-এর function — একই ধারণা।

কেন দরকার?

একটা Machine Learning model আসলে একটা function।

  • House price model: f(আয়তন,রুম,এলাকা)=দামf(\text{আয়তন}, \text{রুম}, \text{এলাকা}) = \text{দাম}
  • Spam filter: f(email)=P(spam)f(\text{email}) = P(\text{spam})
  • ChatGPT/Claude: f(এখন পর্যন্ত লেখা)=পরের শব্দের probabilityf(\text{এখন পর্যন্ত লেখা}) = \text{পরের শব্দের probability}

Training মানে এমন একটা function খুঁজে বের করা যেটা data-র সাথে সবচেয়ে ভালো মেলে। তাই function বোঝা ML বোঝার প্রথম ধাপ।

Graph: function চোখে দেখা

Function-এর graph হলো সব (x,f(x))(x, f(x)) বিন্দু একসাথে আঁকা:

main.py

Graph দেখে এক নজরে বোঝা যায়:

  • কোথায় function সবচেয়ে ছোট — x2x^2 আর ∣x∣|x| দুটোই x=0x = 0-এ
  • কোথায় বাড়ছে, কোথায় কমছে
  • কতটা খাড়াভাবে বদলাচ্ছে — 2x+12x + 1 সব জায়গায় একই হারে

ML-এ আমরা প্রায়ই একটা function-এর সবচেয়ে ছোট বিন্দু খুঁজি — "loss function যেখানে সবচেয়ে কম, model সেখানে সবচেয়ে ভালো।" Exercise-এ graph থেকে ঠিক এটাই করবে। Optimization module-এ শিখবো কীভাবে গোটা graph না এঁকেই সেই বিন্দুতে পৌঁছানো যায়।

একাধিক input

একটা function একাধিক input নিতে পারে:

f(x1,x2)=3x1+2x2+5f(x_1, x_2) = 3x_1 + 2x_2 + 5
main.py

x1,x2x_1, x_2 — নিচের ছোট সংখ্যাকে বলে subscript, শুধু আলাদা input-কে নাম দেওয়ার উপায়। ML paper-এ সবখানে দেখবে।

Function জোড়া লাগানো (composition)

একটা function-এর output আরেকটার input:

h(x)=f(g(x))h(x) = f(g(x))
main.py

ক্রম গুরুত্বপূর্ণ: f(g(2))=9f(g(2)) = 9, কিন্তু g(f(2))=5g(f(2)) = 5।

Neural network = function-এর শিকল

একটা neural network-এ প্রতিটা layer একটা function, আর পুরো network সেগুলোর composition:

output=f3(f2(f1(x)))\text{output} = f_3(f_2(f_1(x)))
ছবি ──► [layer 1] ──► [layer 2] ──► [layer 3] ──► "বিড়াল: 92%"

প্রতিটা layer সাধারণ (একটা line আর একটা activation), কিন্তু অনেকগুলো জোড়া লাগালে অবিশ্বাস্য জটিল pattern ধরতে পারে। "Deep" learning-এর "deep" মানে এই শিকল লম্বা। Challenge-এ নিজেই একটা ছোট neuron জোড়া লাগাবে।

Exercise

Exercise

Graph থেকে সর্বনিম্ন বিন্দু

+20 XP

Function: f(x) = x² − 4x + 3

  1. f(x) Python function লেখো — NumPy array দিলেও যেন কাজ করে
  2. xs = −2 থেকে 6 পর্যন্ত 801টা সমান দূরত্বের বিন্দু (np.linspace)
  3. x_min = xs-এর যে বিন্দুতে f সবচেয়ে ছোট, আর f_min = সেখানে f-এর মান

Loop ছাড়া — পুরো xs-এর ওপর একবারে f হিসাব করো।

solution.py

Quiz

  1. Q1f(x) = 3x + 2 হলে f(4) কত?
  2. Q2h(x) = f(g(x)), যেখানে g(x) = x + 1 আর f(x) = x²। h(2) কত?
  3. Q3একটা image classifier-কে function হিসেবে ভাবলে input আর output কী?
0/3 answered

Challenge

Challenge

Function জোড়া লাগাও

+50 XP

compose(f, g) লেখো যেটা একটা নতুন function return করে: h(x) = f(g(x)) — আগে g, তারপর f।

তারপর এটা দিয়ে একটা ছোট "neuron" বানাও: neuron = compose(sigmoid, linear), যেখানে - linear(x) = 2x − 1 - sigmoid(z) = 1 / (1 + e^(−z))

সব function NumPy array-তে কাজ করবে।

solution.py

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

PyTorch-এ একটা neural network লেখা মানে আক্ষরিক অর্থেই function জোড়া লাগানো — nn.Sequential হলো compose-এর একটা শক্তিশালী সংস্করণ:

model = nn.Sequential(
    nn.Linear(784, 128),   # f1
    nn.ReLU(),             # f2
    nn.Linear(128, 10),    # f3
)
output = model(image)      # f3(f2(f1(image)))

আর তোমার compose দিয়ে একই ধারণা, NumPy-তে:

main.py

Interview প্রশ্ন

  • Beginner: Function কী? একটা ML model-কে function হিসেবে ব্যাখ্যা করো।
  • Intermediate: Function composition কী? Neural network-এর সাথে এর সম্পর্ক কী?
  • Advanced: শুধু linear function জোড়া লাগালে (activation ছাড়া) পুরো network কেন একটা linear function-ই থাকে? (দুটো line-এর composition আবার একটা line।)

এরপর কী?

সবচেয়ে সরল কিন্তু সবচেয়ে গুরুত্বপূর্ণ function — সরলরেখা। Linear regression থেকে neural network-এর প্রতিটা layer পর্যন্ত এর ওপর দাঁড়িয়ে। পরের lesson: Line: y = wx + b।