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 of x সমান x-এর বর্গ"। , ।
তুমি Python-এ আগেই এটা লিখেছো:
গণিতের function আর Python-এর function — একই ধারণা।
কেন দরকার?
একটা Machine Learning model আসলে একটা function।
- House price model:
- Spam filter:
- ChatGPT/Claude:
Training মানে এমন একটা function খুঁজে বের করা যেটা data-র সাথে সবচেয়ে ভালো মেলে। তাই function বোঝা ML বোঝার প্রথম ধাপ।
Graph: function চোখে দেখা
Function-এর graph হলো সব বিন্দু একসাথে আঁকা:
Graph দেখে এক নজরে বোঝা যায়:
- কোথায় function সবচেয়ে ছোট — আর দুটোই -এ
- কোথায় বাড়ছে, কোথায় কমছে
- কতটা খাড়াভাবে বদলাচ্ছে — সব জায়গায় একই হারে
ML-এ আমরা প্রায়ই একটা function-এর সবচেয়ে ছোট বিন্দু খুঁজি — "loss function যেখানে সবচেয়ে কম, model সেখানে সবচেয়ে ভালো।" Exercise-এ graph থেকে ঠিক এটাই করবে। Optimization module-এ শিখবো কীভাবে গোটা graph না এঁকেই সেই বিন্দুতে পৌঁছানো যায়।
একাধিক input
একটা function একাধিক input নিতে পারে:
— নিচের ছোট সংখ্যাকে বলে subscript, শুধু আলাদা input-কে নাম দেওয়ার উপায়। ML paper-এ সবখানে দেখবে।
Function জোড়া লাগানো (composition)
একটা function-এর output আরেকটার input:
ক্রম গুরুত্বপূর্ণ: , কিন্তু ।
Neural network = function-এর শিকল
একটা neural network-এ প্রতিটা layer একটা function, আর পুরো network সেগুলোর composition:
ছবি ──► [layer 1] ──► [layer 2] ──► [layer 3] ──► "বিড়াল: 92%"
প্রতিটা layer সাধারণ (একটা line আর একটা activation), কিন্তু অনেকগুলো জোড়া লাগালে অবিশ্বাস্য জটিল pattern ধরতে পারে। "Deep" learning-এর "deep" মানে এই শিকল লম্বা। Challenge-এ নিজেই একটা ছোট neuron জোড়া লাগাবে।
Exercise
Exercise
Graph থেকে সর্বনিম্ন বিন্দু
Function: f(x) = x² − 4x + 3
f(x)Python function লেখো — NumPy array দিলেও যেন কাজ করেxs= −2 থেকে 6 পর্যন্ত 801টা সমান দূরত্বের বিন্দু (np.linspace)x_min=xs-এর যে বিন্দুতে f সবচেয়ে ছোট, আরf_min= সেখানে f-এর মান
Loop ছাড়া — পুরো xs-এর ওপর একবারে f হিসাব করো।
Quiz
Challenge
Challenge
Function জোড়া লাগাও
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-তে কাজ করবে।
বাস্তবে কোথায় ব্যবহার হয়?
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-তে:
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।