Logistic regression — sigmoid, cross-entropy loss
5.6.2· Coding › Machine Learning (Aerospace Applications)
Overview
Logistic regression ek fundamental algorithm hai binary classification problems ke liye aerospace ML mein. Yeh continuous values predict karne ke bajaye (jaise altitude), probabilities predict karta hai (jaise "kya yeh component fail hoga?" ya "kya yeh satellite image cloudy hai?"). Yeh kisi bhi real-valued input ko 0 aur 1 ke beech ek probability mein map karta hai sigmoid function use karke, phir cross-entropy loss minimize karke train hota hai.

Core Components
Sigmoid function exactly yahi karta hai. Ise ek "probability translator" samjho — yeh model ka raw confidence score leta hai aur use ek valid probability mein convert karta hai.
1. The Sigmoid Function
First Principles se Derivation:
Yeh specific form kyun? Odds ratio se shuru karo. Agar class 1 ki probability hai, toh odds hain:
Logistic regression mein, hum maante hain ki log-odds features mein linear hai:
Kyun? Yeh key assumption hai — features ka effect odds par multiplicative hota hai, lekin log-odds par additive. Ab ke liye solve karo:
Numerator aur denominator dono ko se multiply karo:
Key Properties:
- (decision boundary)
- jab
- jab
- Derivative: (backprop ke liye bahut convenient!)
Derivative ki Derivation: ke saath chain rule use karke:
Yeh step kyun? Derivative ka yeh form gradient calculations ko elegant banata hai — gradient updates mein koi exponentials nahi!
2. Cross-Entropy Loss
Information theory ka cross-entropy exactly yahi karta hai.
training examples ke liye:
Maximum Likelihood se Derivation:
Maano ki har label , probability wali Bernoulli distribution se aata hai:
Yeh form kyun? Jab , yeh hai. Jab , yeh hai. Ek perfect compact notation.
Saare data ki likelihood (independence maanke):
Log-likelihood lo (products sums ban jaate hain, optimize karna aasaan):
Log-likelihood maximize karo = negative log-likelihood minimize karo:
Yeh step kyun? Likelihood maximize karna woh parameters dhundta hai jo observed data ke saath sabse consistent hain. Negative sign ise ek aisi loss banata hai jise minimize kiya ja sake.
Intuition Check:
- Agar aur : loss = (chhota)
- Agar aur : loss = (bada!)
- Agar aur : loss = (bada!)
Derivation:
Single example ke liye, chain rule:
Step 1: Prediction ke w.r.t. loss derivative
Kyun? ka derivative hai, aur ka derivative hai.
Step 2: Sigmoid derivative (pehle derive kar chuke hain)
Step 3: Linear part ka derivative
Combine karo:
Yeh step kyun? Cross-entropy aur sigmoid ke derivatives milkar complex fractions ko perfectly cancel kar dete hain, aur ek beautifully simple gradient bachta hai!
examples par average karo:
Gradient descent update:
Worked Examples
Problem: Operating hours ke basis par predict karo ki ek turbine blade fail hoga ya nahi. Dataset:
- hours, (koi failure nahi)
- hours, (failure)
Initialize: , (features unnormalized hain illustration ke liye; chhota isliye choose kiya taaki ek sane range mein rahe).
Forward Pass (Example 2):
Yeh step kyun? Hum pehle linear combination compute karte hain, phir probability paane ke liye sigmoid se pass karte hain. Note karo ki humne deliberately use kiya hai taaki sigmoid ko saturate na kare.
Is example ke liye Loss:
Gradient:
Negative kyun? Prediction bahut kam hai (0.55 vs 1), isliye increase karna hoga prediction badhane ke liye. Negative gradient matlab descent mein add karega.
Update (): Kyunki raw feature () bada hai, gradient bhi bada hai, isliye overshoot se bachne ke liye bahut chhota learning rate choose karte hain:
Yeh step kyun? Unnormalized features ke saath gradient ka magnitude ke saath scale karta hai, isliye chhota hona chahiye. (Practice mein hum features normalize karte hain — Mistake 2 dekho — jisse hum ek bada, zyada stable use kar sakte hain.) Update ke baad increase hota hai, jiski wajah se model high operating hours ke liye zyada probability predict karta hai.
Problem: Cloud presence ke liye binary classifier. Features: average pixel brightness (), brightness variance ().
Training point: , (cloudy) Parameters: ,
Prediction:
Yeh step kyun? Negative matlab model sochta hai "cloudy nahi" (prob < 0.5), lekin sach yeh hai ki cloudy hai () — error!
Loss:
Gradients:
Yeh step kyun? Dono gradients negative hain kyunki prediction bahut kam hai. Updates dono weights ko increase karenge taaki model in feature values ke liye zyada "pro-cloudy" bane.
Common Mistakes
Galat Soch: "Sigmoid 0.7 de raha hai, toh output 0.7 hai?"
Kyun Sahi Lagta Hai: Sigmoid ek number output karta hai, toh directly use karo.
The Fix: ek probability hai, final class nahi. Threshold apply karo:
prediction_class = 1 if y_hat >= 0.5 else 0Aerospace safety applications ke liye, threshold 0.3 use kar sakte ho (missed failures ke bajaye false alarms prefer karo).
Yeh Kyun Kaam Karta Hai: Probabilities cost/benefit ke basis par decisions inform karti hain. 0.7 probability ka matlab "class 1 ka 70% jawab hai" nahi — iska matlab hai "class 1 mein 70% confidence hai."
Galat Code:
# x1 in [0, 1000] hours, x2 in [0, 1] boolean
z = w1 * x1 + w2 * x2 + bKyun Fail Hota Hai: dominate karega kyunki ki scale bahut badi hai. Gradient updates unstable ho jaate hain aur tumhe bahut chhota learning rate use karna padta hai (jaisa Example 1 mein dekha).
The Fix: Features standardize karo:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)Yeh Kyun Kaam Karta Hai: Saare features equally contribute karte hain. Gradients ki magnitudes similar hoti hain, optimization faster converge hoti hai aur ek bada, stable learning rate use kar sakte ho.
Galat Math: compute karna, ke bajaye
Kyun Hota Hai: True label aur predicted probability mein confusion.
The Fix: Cross-entropy inn dono ke beech divergence measure karta hai:
- True distribution: (ya toh 0 ya 1)
- Predicted distribution: (sigmoid se probability)
Hamesha:
Study Aids
Cross-Entropy: "Confident Wrongs ko Punish karo" bahut bada ho jaata hai jab probability → 0. Agar model confident hai (high ) lekin galat hai (), toh loss explode kar jaata hai.
Recall
Feynman Explanation (12 Saal ke Bachche ko Samjhao) Socho tum guess kar rahe ho ki coin heads hai ya tails, sirf yeh dekh kar ki woh kitna shiny hai. Tum directly "haan" ya "nahi" nahi bol sakte — tumhe batana hoga ki tum KITNE SURE ho, jaise "70% sure ki heads hai."
Sigmoid function ek special ruler ki tarah hai jo kisi bhi measurement (shine level) ko 0% aur 100% ke beech ek percentage mein badal deta hai. Agar shine bahut zyada hai, sigmoid kehta hai "almost 100% heads." Agar shine bahut kam hai, sigmoid kehta hai "almost 0% heads" (toh tails!). Agar shine medium hai, sigmoid kehta hai "50% — dono ho sakta hai."
Ab, computer kaise seekhta hai ki "zyada" aur "kam" shine ka kya matlab hai? Hum computer ko bahut saare coins aur unke sahi answers dikhate hain. Cross-entropy ek "wrongness score" hai — agar tumne kaha "90% heads" lekin woh tails tha, toh tumhe BAHUT BADA penalty milti hai. Agar tumne kaha "51% heads" aur woh heads tha, toh chhoti si penalty. Computer apna ruler adjust karta hai taaki wrongness score jitna ho sake utna chhota ho.
Aerospace mein, coins ki jagah hum guess karte hain "kya yeh engine part toot jaayega?" temperature aur vibration ke basis par. Same math!
Connections
- Linear Regression: Logistic regression linear combination use karta hai, lekin classification ke liye sigmoid add karta hai
- Gradient Descent: Weight updates yahaan derive kiya hua use karte hain; same optimization algorithm
- Softmax Regression: Multi-class generalization — classes ke liye sigmoid, softmax ban jaata hai
- Neural Networks: Sigmoid ek activation function hai; cross-entropy standard classification loss hai
- Maximum Likelihood Estimation: Cross-entropy loss, Bernoulli model ka negative log-likelihood hai
- ROC Curves and AUC: Decision threshold vary karke logistic regression evaluate karo
- Regularization (L1, L2): Overfitting rokne ke liye loss function mein add karo
- Bayesian Interpretation: Logistic regression directly approximate karta hai
Flashcards
#flashcards/coding