stem/AI/Pattern Matching/Dynamic Time Warping.md
Andy Pack abbd7bba68 vault backup: 2023-12-22 16:39:03
Affected files:
.obsidian/community-plugins.json
.obsidian/graph.json
.obsidian/plugins/calendar/data.json
.obsidian/plugins/calendar/main.js
.obsidian/plugins/calendar/manifest.json
.obsidian/plugins/dataview/main.js
.obsidian/plugins/dataview/manifest.json
.obsidian/plugins/dataview/styles.css
.obsidian/workspace.json
Events/Cardiff.md
Events/November 27th Week.md
Events/🪣🪣🪣.md
Food/From Aldi.md
Food/Meal Plans/Meals - 2023-06-18.md
Food/Meal Plans/Meals - 2023-06-24.md
Food/Meal Plans/Meals - 2023-07-30.md
Food/Meal Plans/Meals - 2023-08-06.md
Food/Meal Plans/Meals - 2023-08-13.md
Food/Meal Plans/Meals - 2023-08-20.md
Food/Meal Plans/Meals - 2023-08-27.md
Food/Meal Plans/Meals - 2023-09-03.md
Food/Meal Plans/Meals - 2023-09-10.md
Food/Meal Plans/Meals - 2023-09-17.md
Food/Meal Plans/Meals - 2023-09-25.md
Food/Meal Plans/Meals - 2023-10-02.md
Food/Meal Plans/Meals - 2023-10-14.md
Food/Meal Plans/Meals - 2023-10-22.md
Food/Meal Plans/Meals - 2023-10-30.md
Food/Meal Plans/Meals - 2023-11-05.md
Food/Meal Plans/Meals - 2023-11-14.md
Food/Meal Plans/Meals - 2023-11-20.md
Food/Meal Plans/Meals - 2023-12-03.md
Food/Meal Plans/Meals - 2023-12-11.md
Food/Meal Plans/Meals - 2023-12-16.md
Food/Meals.md
Food/Sauces.md
Lab/DNS.md
Lab/Deleted Packages.md
Lab/Domains.md
Lab/Ebook Laundering.md
Lab/Home.md
Lab/Linux/Alpine.md
Lab/Linux/KDE.md
Lab/Photo Migration.md
Lab/VPN Servers.md
Languages/Arabic.md
Languages/Spanish/Spanish.md
Languages/Spanish/Tenses.md
Languages/Spanish/Verbs.md
Money/Me/Accounts.md
Money/Me/Car.md
Money/Me/Home.md
Money/Me/Income.md
Money/Me/Monthly/23-04.md
Money/Me/Monthly/23-05.md
Money/Me/Monthly/23-06.md
Money/Me/Monthly/23-07.md
Money/Me/Monthly/23-08.md
Money/Me/Monthly/23-09.md
Money/Me/Monthly/23-10.md
Money/Me/Monthly/23-11.md
Money/Me/Monthly/23-12.md
Money/Me/Subs.md
STEM/AI/Classification/Classification.md
STEM/AI/Classification/Decision Trees.md
STEM/AI/Classification/Gradient Boosting Machine.md
STEM/AI/Classification/Logistic Regression.md
STEM/AI/Classification/Random Forest.md
STEM/AI/Classification/Supervised/SVM.md
STEM/AI/Classification/Supervised/Supervised.md
STEM/AI/Ethics.md
STEM/AI/Kalman Filter.md
STEM/AI/Learning.md
STEM/AI/Literature.md
STEM/AI/Neural Networks/Activation Functions.md
STEM/AI/Neural Networks/Architectures.md
STEM/AI/Neural Networks/CNN/CNN.md
STEM/AI/Neural Networks/CNN/Convolutional Layer.md
STEM/AI/Neural Networks/CNN/Examples.md
STEM/AI/Neural Networks/CNN/FCN/FCN.md
STEM/AI/Neural Networks/CNN/FCN/FlowNet.md
STEM/AI/Neural Networks/CNN/FCN/Highway Networks.md
STEM/AI/Neural Networks/CNN/FCN/ResNet.md
STEM/AI/Neural Networks/CNN/FCN/Skip Connections.md
STEM/AI/Neural Networks/CNN/FCN/Super-Resolution.md
STEM/AI/Neural Networks/CNN/GAN/CycleGAN.md
STEM/AI/Neural Networks/CNN/GAN/DC-GAN.md
STEM/AI/Neural Networks/CNN/GAN/GAN.md
STEM/AI/Neural Networks/CNN/GAN/StackGAN.md
STEM/AI/Neural Networks/CNN/GAN/cGAN.md
STEM/AI/Neural Networks/CNN/Inception Layer.md
STEM/AI/Neural Networks/CNN/Interpretation.md
STEM/AI/Neural Networks/CNN/Max Pooling.md
STEM/AI/Neural Networks/CNN/Normalisation.md
STEM/AI/Neural Networks/CNN/UpConv.md
STEM/AI/Neural Networks/CV/Data Manipulations.md
STEM/AI/Neural Networks/CV/Datasets.md
STEM/AI/Neural Networks/CV/Filters.md
STEM/AI/Neural Networks/CV/Layer Structure.md
STEM/AI/Neural Networks/CV/Visual Search/Visual Search.md
STEM/AI/Neural Networks/Deep Learning.md
STEM/AI/Neural Networks/Learning/Boltzmann.md
STEM/AI/Neural Networks/Learning/Competitive Learning.md
STEM/AI/Neural Networks/Learning/Credit-Assignment Problem.md
STEM/AI/Neural Networks/Learning/Hebbian.md
STEM/AI/Neural Networks/Learning/Learning.md
STEM/AI/Neural Networks/Learning/Tasks.md
STEM/AI/Neural Networks/MLP/Back-Propagation.md
STEM/AI/Neural Networks/MLP/Decision Boundary.md
STEM/AI/Neural Networks/MLP/MLP.md
STEM/AI/Neural Networks/Neural Networks.md
STEM/AI/Neural Networks/Properties+Capabilities.md
STEM/AI/Neural Networks/RNN/Autoencoder.md
STEM/AI/Neural Networks/RNN/Deep Image Prior.md
STEM/AI/Neural Networks/RNN/LSTM.md
STEM/AI/Neural Networks/RNN/MoCo.md
STEM/AI/Neural Networks/RNN/RNN.md
STEM/AI/Neural Networks/RNN/Representation Learning.md
STEM/AI/Neural Networks/RNN/SimCLR.md
STEM/AI/Neural Networks/RNN/VQA.md
STEM/AI/Neural Networks/SLP/Least Mean Square.md
STEM/AI/Neural Networks/SLP/Perceptron Convergence.md
STEM/AI/Neural Networks/SLP/SLP.md
STEM/AI/Neural Networks/Training.md
STEM/AI/Neural Networks/Transformers/Attention.md
STEM/AI/Neural Networks/Transformers/LLM.md
STEM/AI/Neural Networks/Transformers/Transformers.md
STEM/AI/Neural Networks/Weight Init.md
STEM/AI/Pattern Matching/Dynamic Time Warping.md
STEM/AI/Pattern Matching/Markov/Markov.md
STEM/AI/Pattern Matching/Pattern Matching.md
STEM/AI/Problem Solving.md
STEM/AI/Properties.md
STEM/AI/Searching/Informed.md
STEM/AI/Searching/Searching.md
STEM/AI/Searching/Uninformed.md
STEM/CS/ABI.md
STEM/CS/Calling Conventions.md
STEM/CS/ISA.md
STEM/CS/Languages/Assembly.md
STEM/CS/Languages/Javascript.md
STEM/CS/Languages/Python.md
STEM/CS/Languages/Rust.md
STEM/CS/Quantum.md
STEM/CS/Resources.md
STEM/IOT/Networking/Networking.md
STEM/Light.md
STEM/Quantum/Confinement.md
STEM/Quantum/Orbitals.md
STEM/Quantum/Schrödinger.md
STEM/Quantum/Standard Model.md
STEM/Quantum/Wave Function.md
STEM/Speech/Linguistics/Consonants.md
STEM/Speech/Linguistics/Language Structure.md
STEM/Speech/Linguistics/Linguistics.md
STEM/Speech/Linguistics/Terms.md
STEM/Speech/Linguistics/Vowels.md
STEM/Speech/Literature.md
STEM/Speech/NLP/NLP.md
STEM/Speech/NLP/Recognition.md
STEM/Speech/Speech Processing/Applications.md
Work/Possible Tasks.md
Work/Tech.md
2023-12-22 16:39:03 +00:00

77 lines
3.1 KiB
Markdown

---
tags:
- ai
---
***Deterministic
Pattern Recogniser***
Allows timescale variations in sequences for same class
![](../../img/dtw-graph.png)
$$D(T,N)=\min_{t,i}\sum_{\substack{t\in1..T \\ i\in1..N}}d(t,i)$$
- $d(t,i)$ is distance between features from $t$-th frame of test to $i$-th frame of template
$$D(t,i)=\min[D(t,i-1),D(t-1, i-1),D(t-1,i)]+d(t,i)$$
- Allowing transition from current and previous frame only
- Recursive
![](../../img/dtw-graph-unit.png)
# Problems
- How much flexibility to allow?
- How to penalise warping?
- How to determine a fair distance metric?
- How many templates to register?
- How to select best ones?
# Basic Algorithm
1. Initialise the cumulative distances for $t=1$
$$D(1,i)=\begin{cases}d(1,i) & \text{for }i=1, \\ D(1, i-1)+d(1,i) & \text{for }i=2,...,N\end{cases}$$
2. Recur for $t=2,...,T$
$$D(t,i)=\begin{cases}D(t-1,i) + d(t,i) & \text{for }i=1, \\ \min[D(t, i-1), D(t-1, i-1),D(t-1,i)] + d(t,i) & \text{for }i=2,...,N\end{cases}$$
3. Finalise, the cumulative distance up to the final point gives the total cost of the match: $D(T,N)$
![](../../img/dtw-heatmap.png)
- Euclidean distances
# Distortion Penalty
1. Initialise the cumulative distances for $t=1$
$$D(1,i)=\begin{cases}d(1,i) & \text{for }i=1, \\ d(1,i)+D(1, i-1)+d_V & \text{for }i=2,...,N\end{cases}$$
2. Recur for $t=2,...,T$
$$D(t,i)=\begin{cases}d(t,i)+D(t-1,i1)+d_H & \text{for }i=1, \\ \min[d(t,i)+D(t,i-1)+d_V,2d(t,i)+D(t-1,i-1),d(t,i)+D(t-1,i)+d_H] & \text{for }i=2,...,N\end{cases}$$
- Where $d_V$ and $d_H$ are costs associated with vertical and horizontal transitions respectively
3. Finalise, the cumulative distance up to the final point gives the total cost of the match: $D(T,N)$
- Allows weighting for dynamic penalties when moving horizontally or vertically
- As opposed to diagonally
![](../../img/dtw-heatmap-distortion.png)
# Store Best Path
1. Initialise distances and traceback indicator for $t=1$
$$D(1,i)=\begin{cases}d(1,i) & \text{for } i=1,\\ d(1,i)+D(1,i-1) & \text{for }i = 2,...,N\end{cases}$$
$$\phi(1,i)=\begin{cases}[0,0] & \text{for } i=1,\\ [1,i-1] & \text{for }i = 2,...,N\end{cases}$$
2. Recur for cumulative distances at $t=2,...,T$
$$D(1,i)=\begin{cases}d(t,i)+D(t-1,i) & \text{for } i=1,\\ d(t,i)+\min[D(t,i-1),D(t-1,i-1),D(t-1,i)] & \text{for }i = 2,...,N\end{cases}$$
$$\phi(1,i)=\begin{cases}[t-1,i] & \text{for } i=1,\\ \arg\min[D(t,i-1),D(t-1,i-1),D(t-1,i)] & \text{for }i = 2,...,N\end{cases}$$
3. Final point gives the total alignment cost D(T,N) and the end coordinates of the best path $z_K=[T,N]$, where $K$ is the number of nodes on the optimal path
4. Trace the path back for $k=K-1,...,1,z_k=\phi(z_{k+1}), \text{ and }Z=\{z_1,...,z_K\}$
- Stores best path
![](../../img/dtw-possible-movements.png)
- Vary allowable movements through grid
- Second row for blocking multiple of the same movements in succession
# Search Pruning
- Speed up algorithm for real-time
- Kill bad options
## Gross Partitioning
![](../../img/dtw-gross-partitioning.png)
- Too far from diagonal
- Probably wrong or bad
## Score Pruning
![](../../img/dtw-score-pruning.png)
- Examine existing branches
- See which scores are really bad