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
Character-level RNNName GenerationSequence Modeling
output, hidden = rnn(input_tensor, hidden)
topi = output.topk(1)[1][0][0]
25
Character-level RNNTemperature SamplingText Generation
def sample(category, start_letter='A'):
hidden = rnn.initHidden()
output, hidden = rnn(category_tensor, input[0], hidden)
26
RNNMulti-languageAttentionName Generation
def generate(category, start_letters='ABC'):
for start_letter in start_letters:
print(sample(category, start_letter))
27
RNN CellCustom LayersBackpropagation Through Time
class RNNCell(nn.Module):
def forward(self, x, hidden):
combined = torch.cat((x, hidden), 1)
return torch.tanh(self.i2h(combined))
28
Self-AttentionTransformersQuery-Key-ValueScaled Dot-Product
scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k)
attn = F.softmax(scores, dim=-1)
output = torch.matmul(attn, V)
29
GPT-2Autoregressive LMText GenerationCausal Language Model
from transformers import GPT2LMHeadModel, GPT2Tokenizer
model = GPT2LMHeadModel.from_pretrained('gpt2')
outputs = model.generate(input_ids, max_length=100)