Modules
1. What is a Neuron?
2. Neural Networks
3. How Training Works
4. Word Embeddings
5. Attention Mechanism
6. The Transformer
7. How LLMs Work
8. RAG Pipelines
9. Building AI Agents
10. Prompt Engineering
11. Linear Regression
12. Logistic Regression
13. Decision Trees
14. Random Forest
15. K-Means Clustering
16. Cosine Similarity
17. Types of AI & AI Agents
18. Tokenization in NLP
19. Fine-Tuning LLMs
20. Evaluating LLMs
21. Vector Databases Explained
22. Diffusion Models & Image Generation
23. Generative Adversarial Networks (GANs)
24. Reinforcement Learning Basics
25. RLHF: Reinforcement Learning from Human Feedback
26. Convolutional Neural Networks (CNNs)
27. RNNs and LSTMs
28. Overfitting & Regularization
29. Hyperparameter Tuning
30. Support Vector Machines (SVM)
31. Naive Bayes Classifier
32. PCA & Dimensionality Reduction
33. Model Context Protocol (MCP)
34. Why LLMs Hallucinate
35. Context Windows & Long Context
36. Multimodal AI (Vision + Language)
37. AI Ethics & Bias in Machine Learning
38. Classifier Evaluation Metrics: Precision, Recall, ROC & F1
39. Bayesian Inference & MAP Estimation
40. Backpropagation Explained
41. Autoencoders & Variational Autoencoders
42. NLP Text Representation: N-grams, Bag-of-Words & TF-IDF
43. Markov Decision Processes & the Bellman Equation
44. Data Preprocessing & Cleaning for Machine Learning
45. Feature Engineering for Machine Learning
46. ML Frameworks Compared: TensorFlow, PyTorch & JAX
47. Data Selection & Active Learning
48. ML Hardware Acceleration: GPUs, TPUs & Accelerators
49. ML Benchmarking Methodology
50. Responsible AI Engineering: Safety & Robustness
51. DBSCAN & Hierarchical Clustering
52. ML Pipelines: Chaining Preprocessing and Models
53. History & Evolution of AI Systems
54. ML System Design Fundamentals
55. The Machine Learning Workflow & Lifecycle
56. Data Engineering for Machine Learning
57. Model Compression: Quantization, Pruning & Distillation
58. Model Serving & Inference Systems
59. MLOps: Monitoring & Maintaining Models in Production
60. The Turing Test & AI Evaluation
61. Heuristics & Search in AI
62. Genetic Algorithms & Evolutionary Computation
63. Knowledge Representation & Semantic Networks
64. Expert Systems
65. AI and Games: How AlphaZero Works
66. AI in Bioinformatics
67. Symbolic vs. Connectionist AI
68. Constraint Satisfaction Problems
69. Fuzzy Logic Systems
70. Multivariate Regression Analysis
71. Non-Linear Least Squares Fitting
72. k-Nearest Neighbors (kNN)
73. Ridge & Lasso Regression
74. Polynomial Regression
75. Boosting Algorithms: AdaBoost, Gradient Boosting & XGBoost
76. Ensemble Modeling: Bagging, Boosting & Stacking Compared
77. Gaussian Mixture Models
78. Linear Discriminant Analysis (LDA)
79. Anomaly Detection in Machine Learning
80. Time Series Forecasting with Machine Learning
81. Survival Analysis for Machine Learning
82. Multicollinearity & Variance Inflation Factor (VIF)
83. Cross-Validation Strategies
84. Statistical Hypothesis Testing for ML Model Comparison
85. Activation Functions Deep Dive: ReLU, ELU, Sigmoid, Softmax & Swish
86. Neural Network Hyperparameters Explained
87. The Multilayer Perceptron (MLP)
88. CNN Building Blocks: Convolution & Pooling Layers
89. Famous CNN Architectures: VGG, ResNet & Beyond
90. GRUs vs LSTMs
91. Transformer-XL & Reformer: Handling Longer Sequences
92. NLU vs NLG: Understanding vs Generating Language
93. The Pre-Transformer Embedding Era: ELMo, ULMFit & BERT
94. Deep Reinforcement Learning (DRL) Overview
95. Policy Gradient Methods
96. Actor-Critic Methods
97. Self-Supervised Learning
98. Transfer Learning
99. Batch Normalization & Layer Normalization
100. ML Deployment Paradigms: Cloud, Edge & Mobile
101. Edge AI & TinyML
102. System Balance: Matching ML Workloads to Hardware
103. Neural Computation Fundamentals
104. Network Architecture Design Tradeoffs
105. Distributed Training: Data & Model Parallelism
106. Federated Learning
107. ML Reproducibility Engineering
108. Feature Stores Explained
109. Model Registry & Versioning
110. A/B Testing ML Models in Production
111. Shadow Deployment & Canary Releases for ML
112. ML Cost Optimization
113. ONNX & Model Interoperability
114. Model Explainability: SHAP & LIME
115. ML System Observability
116. Synthetic Data Generation
117. Data Augmentation Techniques
118. ML Security: Adversarial Attacks
119. Privacy-Preserving Machine Learning
120. Chain-of-Thought Reasoning
121. Mixture of Experts (MoE)
122. Speculative Decoding
123. Constitutional AI & Alignment Techniques
124. Tool-Use Patterns in LLM Agents
125. Advanced RAG Patterns: Hybrid Search & Re-ranking
126. Semantic Search vs Keyword Search
127. Fine-Tuning Embedding Models
128. Prompt Injection Security
129. AI Red-Teaming
130. Speech Recognition (ASR)
131. Text-to-Speech (TTS)
132. Computer Vision: Object Detection
133. Image Segmentation
134. OCR & Document AI
135. NumPy Fundamentals for Machine Learning
136. Pandas for Data Science
137. Data Visualization for ML with Matplotlib
138. Model Interpretability: Feature Importance Methods
139. ML Experiment Tracking
140. AutoML Explained
141. Handling Imbalanced Data: SMOTE & Resampling Techniques
142. Multi-Label Classification
143. Multi-Task Learning
144. Zero-Shot & Few-Shot Learning
145. Curriculum Learning
146. Model Calibration
147. Snapshot & Neural Network Ensembles
148. Knowledge Graphs in AI
149. Jupyter Notebooks for Machine Learning
150. Linear Algebra for Machine Learning
151. Calculus for Machine Learning
152. Probability Theory for Machine Learning
153. Information Theory: Entropy, Cross-Entropy & KL Divergence
154. Optimization Algorithms: SGD, Adam & RMSprop Compared
155. Convex vs. Non-Convex Optimization
156. Lagrange Multipliers & Constrained Optimization
157. Monte Carlo Methods in Machine Learning
158. Numerical Stability in Machine Learning
159. The Central Limit Theorem for Machine Learning
160. Bootstrapping & Resampling Methods
161. Bayesian vs. Frequentist Statistics
162. Confidence Intervals for ML Metrics
163. Power Analysis & Sample Size Calculation
164. A/A Testing & Experiment Validity Checks
165. The Adam Optimizer Explained
166. Learning Rate Schedules: Warmup, Cosine Annealing & Step Decay
167. Gradient Clipping
168. Mixed Precision Training
169. Weight Initialization Strategies
170. Association Rule Mining & the Apriori Algorithm
171. Collaborative Filtering for Recommender Systems
172. Matrix Factorization for Recommender Systems
173. Content-Based Recommender Systems
174. The Cold Start Problem in Recommender Systems
175. Spectral Clustering
176. Mean Shift Clustering
177. Local Outlier Factor (LOF)
178. t-SNE Deep Dive
179. UMAP Deep Dive
180. Graph Neural Networks (GNNs)
181. Siamese Networks
182. One-Shot Learning & Meta-Learning (MAML)
183. Neural Ordinary Differential Equations (Neural ODEs)
184. Normalizing Flows
185. Energy-Based Models
186. Restricted Boltzmann Machines (RBMs)
187. Self-Organizing Maps (SOMs)
188. Capsule Networks
189. Spiking Neural Networks (SNNs)
190. Part-of-Speech Tagging & Named Entity Recognition
191. Dependency Parsing: Representing Sentence Structure
192. Coreference Resolution: Tracking Who's Who in Text
193. Text Summarization: Extractive vs. Abstractive
194. Machine Translation: From Rule-Based to Neural
195. Language Model Perplexity: What It Measures
196. Subword Tokenization Deep Dive: BPE, WordPiece & Unigram
197. Byte-Level Tokenization: Solving the Unknown-Token Problem
198. Instruction Tuning Datasets: Building FLAN & Alpaca-Style Data
199. RLHF Reward Hacking: When Models Game the Reward Model
200. Image Classification Metrics: Top-1 & Top-5 Accuracy
201. Super-Resolution with GANs
202. Neural Style Transfer
203. Human Pose Estimation
204. Face Recognition Systems
205. Video Action Recognition
206. Point Clouds & 3D Vision
207. SLAM Basics (Simultaneous Localization and Mapping)
208. Vision Data Augmentation Deep Dive
209. Image Captioning
210. Multi-Agent Reinforcement Learning
211. Inverse Reinforcement Learning
212. Imitation Learning
213. Reward Shaping in Reinforcement Learning
214. The Sparse Rewards Problem in RL
215. Sim-to-Real Transfer in Robotics
216. Offline Reinforcement Learning
217. Curiosity-Driven Exploration
218. Hierarchical Reinforcement Learning
219. Model-Based Reinforcement Learning
220. The ReAct Agent Pattern
221. Plan-and-Execute Agents
222. Multi-Agent Orchestration Patterns
223. Agent Memory Architectures
224. Agent Evaluation Methodology
225. Prompt Caching & Context Caching
226. Structured Outputs & JSON Mode
227. Vector Database Comparison Deep Dive
228. LoRA Merging & Model Merging
229. Quantization Formats: GGUF, AWQ & GPTQ Compared
230. AI Regulation: The EU AI Act & Risk-Based Frameworks
231. AI & Copyright: Open Questions
232. The Environmental Impact of AI
233. AI and the Future of Work
234. Learning to Rank for Search
235. Fraud Detection Systems with Machine Learning
236. Credit Scoring Models
237. Demand Forecasting with Machine Learning
238. Small Language Models (SLMs) vs. LLMs
239. On-Device LLMs
240. The Hugging Face Ecosystem Overview
241. LangChain vs. LlamaIndex
242. Agent Framework Comparison: AutoGPT, CrewAI & LangGraph
243. Feature Crossing for Recommenders
244. A/B Testing ML-Powered Products
245. Isolation Forest Deep Dive
246. OPTICS Clustering
247. Affinity Propagation Clustering
248. Decision Stumps & Weak Learners
249. Hopfield Networks
250. Word2Vec and GloVe Embeddings
251. Decoder-Only vs Encoder-Decoder Architectures
252. Positional Encoding in Transformers
253. Rotary Position Embeddings (RoPE)
254. Flash Attention Explained
255. KV Cache and Inference Memory
256. Sampling Strategies: Temperature, Top-k & Top-p
257. Beam Search Decoding
258. Grounding and Retrieval Faithfulness
259. Agentic Workflows vs Agentic Chains
260. Function Calling in LLMs
261. Guardrails for LLM Outputs
262. LLM Observability & Tracing
263. Cost Optimization for LLM Applications
264. Prompt Templates & Few-Shot Formatting
265. Self-Consistency Decoding
266. Tree-of-Thought Reasoning
267. Retrieval-Augmented Fine-Tuning (RAFT)
268. Knowledge Distillation
269. Teacher-Student Training
270. Contrastive Learning
271. CLIP and Vision-Language Pretraining
272. Vision Transformers (ViT)
273. Swin Transformer Architecture
274. U-Net Architecture for Segmentation
275. YOLO Object Detection Explained
276. Optical Flow Estimation
277. Depth Estimation from Images
278. Text-to-Image Diffusion Pipelines
279. ControlNet & Guided Image Generation
280. Stable Diffusion Internals
281. Neural Radiance Fields (NeRF)
282. Gaussian Splatting for 3D Rendering
283. Speech-to-Text Model Architectures
284. Voice Cloning & TTS Fine-Tuning
285. Audio Generation Models
286. Time Series Anomaly Detection
287. State Space Models (Mamba)
288. Linear Attention Mechanisms
289. Long Context Extension Techniques
290. Model Distillation for LLMs
291. Model Watermarking
292. AI Agents in Browser Automation
293. Computer-Use Agents
294. Multi-Agent Debate & Consensus
295. Agent Guardrails & Sandboxing
296. Evaluation-Driven Development for LLM Apps
297. Dataset Curation for Pretraining
298. Data Deduplication at Scale
299. Pretraining vs Post-Training
300. Continual Pretraining
301. Catastrophic Forgetting
302. Elastic Weight Consolidation
303. Meta-Learning Beyond MAML
304. Few-Shot Prompting vs Fine-Tuning Tradeoffs
305. Parameter-Efficient Fine-Tuning (PEFT)
306. QLoRA Explained
307. Adapters & Prefix Tuning
308. Model Parallelism Strategies
309. Pipeline Parallelism
310. Tensor Parallelism
311. ZeRO Optimizer & Memory Sharding
312. Gradient Accumulation
313. Checkpointing Strategies for Training
314. Loss Landscape Visualization
315. Double Descent Phenomenon
316. Grokking in Neural Networks
317. Scaling Laws for Neural Networks
318. Chinchilla & Compute-Optimal Training
319. Emergent Abilities in LLMs
320. In-Context Learning Mechanics
321. Attention Sink & Streaming LLMs
322. Sliding Window Attention
323. Sparse Attention Patterns
324. Mixture of Depths
325. Routing Networks & Gating
326. Neural Architecture Search (NAS)
327. Differentiable Architecture Search
328. Hyperparameter Optimization with Bayesian Methods
329. Grid Search vs Random Search vs Bayesian Optimization
330. Surrogate Models for Optimization
331. Active Learning Query Strategies
332. Weak Supervision & Programmatic Labeling
333. Data Labeling Quality Control
334. Human-in-the-Loop ML Systems
335. Model Cards & Documentation Standards
336. Dataset Bias Detection
337. Fairness Metrics in Machine Learning
338. Differential Privacy in Machine Learning
339. Homomorphic Encryption for ML
340. Secure Multi-Party Computation for ML
341. Model Stealing & Extraction Attacks
342. Membership Inference Attacks
343. Backdoor Attacks on Neural Networks
344. Robustness to Distribution Shift
345. Out-of-Distribution Detection
346. Uncertainty Quantification in Deep Learning
347. Bayesian Neural Networks
348. Gaussian Processes for Machine Learning
349. Conformal Prediction
Share Guide
AI & MLQuick
Intermediate

Differentiable Architecture Search

9 min read

Learn
Quick Reading
Estimated 9 mins
Prereq
Intermediate
Basic ML concepts helpful
Interactive
Static Playbook
Static guide & reference tables

From discrete search to continuous relaxation

Classic Neural Architecture Search treats architecture choice as a discrete combinatorial problem — sample a candidate, train it, score it, repeat — which is why it needed thousands of GPU-hours. Differentiable Architecture Search (DARTS), introduced in 2018, reframes the problem so it can be solved with ordinary gradient descent instead. Rather than choosing one discrete operation per connection (e.g. 'this edge is a 3x3 convolution'), DARTS keeps *all* candidate operations active simultaneously, each weighted by a learnable continuous parameter, and optimizes those weights jointly with the network's normal weights.

The continuous relaxation, concretely

DARTS represents the search space as a directed acyclic graph where each edge between nodes could be any operation from a candidate set $\mathcal{O}$ (e.g. 3x3 conv, 5x5 conv, max pooling, skip connection, zero/none). Instead of picking one, the output of an edge is a softmax-weighted mixture: $\bar{o}(x) = \sum_{o \in \mathcal{O}} \frac{\exp(\alpha_o)}{\sum_{o'} \exp(\alpha_{o'})} \, o(x)$, where $\alpha_o$ are learnable architecture parameters, one per operation per edge. At the end of search, the final discrete architecture is recovered by keeping, on each edge, only the operation with the largest $\alpha_o$ — collapsing the soft mixture back into a hard choice.

darts_mixed_op.py
python
import torch
import torch.nn as nn
import torch.nn.functional as F

class MixedOp(nn.Module):
    """One edge in the DARTS search graph: a weighted mix of candidate ops."""
    def __init__(self, candidate_ops: list[nn.Module]):
        super().__init__()
        self.ops = nn.ModuleList(candidate_ops)
        self.alpha = nn.Parameter(torch.randn(len(candidate_ops)) * 1e-3)

    def forward(self, x):
        weights = F.softmax(self.alpha, dim=0)
        return sum(w * op(x) for w, op in zip(weights, self.ops))

    def discretize(self):
        """After search: collapse to the single best operation."""
        best_idx = torch.argmax(self.alpha).item()
        return self.ops[best_idx]

Bilevel optimization: two sets of parameters

DARTS optimizes two distinct parameter groups: the network's ordinary weights $w$ (conv filters, etc.) and the architecture parameters $\alpha$. Formally this is a bilevel optimization problem — find $\alpha^*$ that minimizes validation loss, where $w^*(\alpha)$ is itself the result of minimizing training loss given $\alpha$. Solving this exactly would require fully retraining $w$ for every update to $\alpha$, which is intractable. DARTS instead approximates it: alternate a gradient step on $w$ using the training set with a gradient step on $\alpha$ using the validation set, treating $w$ as roughly fixed during the $\alpha$ update. This approximation is what makes the whole method a single, relatively cheap training run instead of a search loop around many runs.

The discretization gap

A persistent criticism of DARTS is the gap between the continuous relaxation used during search and the discrete architecture actually deployed. The soft mixture optimized during training is never itself run in deployment; what gets deployed is the argmax collapse, which can perform noticeably worse than the relaxed version suggested, and DARTS has been observed to sometimes converge toward degenerate architectures dominated by skip connections, which look cheap to the softmax but generalize poorly once isolated. Follow-up work (e.g. with regularization of skip-connection weight, or progressively pruning the search space) addresses this instability directly.

Discrete NAS vs differentiable NAS

PropertyDiscrete NAS (RL/evolutionary)Differentiable NAS (DARTS)
Search costThousands of training runs~1 training run on a relaxed super-network
Optimization methodBlack-box (reward, fitness)Gradient descent (bilevel)
Candidate evaluationTrain-and-score each candidateAll candidates co-exist, weighted
Known failure modeProhibitive compute costDiscretization gap, skip-connection collapse

What's Next?

DARTS treats the architecture itself as something to optimize with gradients; the same impulse — replacing manual tuning with a principled search procedure — applies just as naturally to the hyperparameters that sit around an architecture, like learning rates and regularization strength, which is where Bayesian optimization-style approaches take over.

I build these systems professionally.

Whether it's a RAG pipeline, analytics migration, or AI workflow — let's talk.

Need custom AI or MarTech setup? Let's build together.