Useful Gradient Identities
Useful Gradient Identities #
[ \nabla (a^T x) = a ] [ \nabla (x^T A x) = (A + A^T)x ]If A symmetric:
[ \nabla (x^T A x) = 2Ax ]These are heavily used in optimisation.
If A symmetric:
[ \nabla (x^T A x) = 2Ax ]These are heavily used in optimisation.
Deep Reinforcement Learning (DRL) studies how an agent learns to make a sequence of decisions by interacting with an environment and receiving feedback through rewards.
Reinforcement learning provides the framework for sequential decision-making. Deep learning extends this framework with powerful function approximators that can handle large or complex state and action spaces.
Deep Reinforcement Learning = Reinforcement Learning + Deep Neural Networks
The learning path begins with classical reinforcement learning foundations and progresses towards value-based deep learning, policy-gradient methods, model-based approaches, and imitation learning.
An inner product maps two vectors to a single scalar.
It allows us to measure:
flowchart TD
T["Inner<br/>products<br/>(types)"] --> DOT["Euclidean<br/>Dot product"]
T --> WIP["Weighted<br/>inner product"]
T --> FN["Function-space<br/>(integral)"]
T --> HERM["Complex<br/>Hermitian"]
T --> MAT["Matrix<br/>inner product<br/>(Frobenius)"]
DOT --> Rn["Vectors in<br/>
<span>
\( \mathbb{R}^n \)
</span>
"]
WIP --> SPD["SPD matrix<br/>W"]
FN --> L2["L2 space<br/>functions"]
HERM --> Cn["Vectors in<br/>C^n"]
MAT --> Mnm["Matrices<br/>R^{m×n}"]
style T fill:#90CAF9,stroke:#1E88E5,color:#000
style DOT fill:#C8E6C9,stroke:#2E7D32,color:#000
style WIP fill:#C8E6C9,stroke:#2E7D32,color:#000
style FN fill:#C8E6C9,stroke:#2E7D32,color:#000
style HERM fill:#C8E6C9,stroke:#2E7D32,color:#000
style MAT fill:#C8E6C9,stroke:#2E7D32,color:#000
style Rn fill:#CE93D8,stroke:#8E24AA,color:#000
style SPD fill:#CE93D8,stroke:#8E24AA,color:#000
style L2 fill:#CE93D8,stroke:#8E24AA,color:#000
style Cn fill:#CE93D8,stroke:#8E24AA,color:#000
style Mnm fill:#CE93D8,stroke:#8E24AA,color:#000
For vectors
\( \mathbf{a}, \mathbf{b} \in \mathbb{R}^n \)
Natural Language Processing (NLP) studies how computers can analyse, understand, represent, and generate human language.
It combines ideas from linguistics, computer science, machine learning, and deep learning to work with text and language-based information.
Natural Language Processing = Linguistics + Computation + Machine Learning
The learning path begins with language understanding and vector representations, progresses through language modelling, tagging, and parsing, and then moves towards transformers, knowledge graphs, Retrieval-Augmented Generation, and modern NLP applications.
| # | Experiment |
|---|---|
| 1 | Implement Uninformed Search Algorithms such as BFS and DFS |
| 2 | Implement the A* Algorithm for Informed Search |
| 3 | Implement Local Search Techniques using a Genetic Algorithm |
| 4 | Implement the Minimax Algorithm for Adversarial Search in game playing |
| 5 | Represent knowledge using logic and perform reasoning using Prolog |
| 6 | Experiment with Bayesian Networks and exact inference |
| 7 | Experiment with the application of a Hidden Markov Model in Natural Language Processing |
Backpropagation applies the chain rule:
Chain rule:
[ \frac{dL}{dx} = \frac{dL}{dy} \cdot \frac{dy}{dx} ]
flowchart LR
x --> y
y --> L
Automatic differentiation computes exact derivatives efficiently using computational graphs.
Once we define an inner product, we can define the angle between two vectors.
Angles allow us to measure how aligned or different two vectors are in space.
Key Idea: Angle measures similarity between vectors. Orthogonality means complete independence (no similarity).
For vectors in n-dimensional space: