← Back to Library AI & Machine Learning Beginner 8 min read

What Is Machine Learning? Supervised, Unsupervised, and Reinforcement

Machine Learning (ML) is a subset of artificial intelligence where computer systems learn to detect patterns, make predictions, and adapt their behavior from training data without being explicitly programmed with fixed rules.

💡 Plain-English Analogy

Imagine teaching a child to recognize cats. You don't write a 50-page mathematical manual describing feline whisker curvature. You simply show them 100 pictures of cats and dogs, saying "This is a cat, that is a dog." Eventually, the child's brain recognizes what makes a cat. That is how machine learning trains algorithms.

⚙️ Architecture & Under the Hood

Machine learning algorithms formulate an objective (loss) function and iteratively update internal numerical weights via optimization techniques like gradient descent. The primary training paradigms are Supervised Learning (labeled pairs), Unsupervised Learning (discovering latent clusters), and Reinforcement Learning (reward/penalty policies).

The 3 Main Machine Learning Paradigms

Every machine learning problem falls into one of three core learning paradigms.

1. Supervised Learning
   Training Data: Inputs with known labels (e.g. house features ──▶ sale price)
   Goal: Predict labels for unseen inputs (Regression & Classification)

2. Unsupervised Learning
   Training Data: Unlabeled data points
   Goal: Discover hidden groupings and patterns (Clustering & Dimensionality Reduction)

3. Reinforcement Learning
   Agent acts in an environment, receiving rewards for good moves and penalties for mistakes
   Goal: Learn an optimal action policy (Game AI, Robotics)
# Conceptual Supervised Learning with scikit-learn
from sklearn.linear_model import LinearRegression
import numpy as np

# Training features (e.g. House square meters) and Target (Price in thousands)
X_train = np.array([[50], [80], [120], [150], [200]])
y_train = np.array([150, 240, 360, 450, 600])

model = LinearRegression()
model.fit(X_train, y_train) # Training / Learning weights

# Inference / Prediction on a new 95 m² house
predicted_price = model.predict([[95]])
print(f"Predicted price: ${predicted_price[0]:.1f}k")

Frequently Asked Questions

What is the difference between training and inference?

Training is the computationally expensive phase where the model analyzes historical data to calculate its internal weights. Inference is the fast production phase where the trained model uses those weights to evaluate new data.