02 — Learning
Deep Learning Topics
A curated path exploring neural networks, CNNs, RNNs, and Transformers. Each topic includes core concepts, sample implementation, and a link to the full notebook.
13
GradientsChain RuleOptimization
def backward_pass(loss):
loss.backward()
optimizer.step()
14
Keras Functional APIModel SubclassingCustom Layers
class CustomModel(tf.keras.Model):
def __init__(self):
super().__init__()
self.dense = tf.keras.layers.Dense(32, activation="relu")
15
TensorsAutogradComputational Graphs
import torch
x = torch.tensor([1., 2.], requires_grad=True)
y = x.sum()
y.backward()
16
Custom DatasetDataLoaderBatchingShuffling
from torch.utils.data import DataLoader
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)
17
DropoutOverfittingRegularization
import torch.nn as nn
model = nn.Sequential(
nn.Linear(128, 64),
nn.Dropout(p=0.5),
nn.ReLU()
)
18
Language ModelingN-GramsMarkov Assumption
from nltk.util import ngrams
bigrams = list(ngrams(tokens, 2))
19
SmoothingPerplexityProbability Distribution
# Laplace Smoothing Example
prob = (count + 1) / (total_count + vocab_size)
20
Neural Language ModelsWord EmbeddingsMLP
class BengioLM(nn.Module):
def __init__(self, vocab_size, embed_dim):
super().__init__()
self.embeddings = nn.Embedding(vocab_size, embed_dim)
21
MLPFeed-forwardActivation Functions
mlp = nn.Sequential(
nn.Linear(input_dim, hidden_dim),
nn.ReLU(),
nn.Linear(hidden_dim, output_dim)
)
22
Text CNN1D ConvolutionMax Pooling
self.conv1d = nn.Conv1d(in_channels=embed_dim, out_channels=100, kernel_size=3)
23
RNNSequential DataHidden State
self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)
output, hidden = self.rnn(x)
24
Sequence to SequenceLSTMsTime-series
self.lstm = nn.LSTM(input_size, hidden_size, num_layers=2, batch_first=True)
25
TransformersBERTSentiment AnalysisFine-tuning
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("google-bert/bert-base-uncased", num_labels=2)
26
Emotion ClassificationMulti-class ClassificationClass Weights
criterion = CrossEntropyLoss(weight=class_weights)
outputs = model(**inputs)
loss = criterion(outputs.logits, labels)
27
LLMsInstruction TuningCausal LM
from transformers import AutoModelForCausalLM, Trainer
model = AutoModelForCausalLM.from_pretrained("microsoft/Phi-3.5-mini-instruct")
trainer.train()