added a bit to report, bit of notebook formatting

This commit is contained in:
aj 2021-01-03 21:14:25 +00:00
parent 735275d7ae
commit afb259bd6d
4 changed files with 86 additions and 5 deletions

View File

@ -1,7 +1,7 @@
Hidden Markov Models Hidden Markov Models
==================== ====================
Speech recognition coursework focusing on training and analysing hidden markov models. Speech recognition coursework focusing on training and analysing hidden markov models, main dev notebook [here](markov.ipynb).
![PDFs with observations marked](report/res/pdfs-w-obs.png) ![PDFs with observations marked](report/res/pdfs-w-obs.png)
Probability density functions with provided observations marked Probability density functions with provided observations marked

View File

@ -24,7 +24,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 38, "execution_count": 2,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -113,14 +113,14 @@
"output_type": "stream", "output_type": "stream",
"name": "stdout", "name": "stdout",
"text": [ "text": [
"3.8 -> State 1: 0.02185157424475792, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n4.2 -> State 1: 0.009496655019831194, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n3.4 -> State 1: 0.04499247209432338, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n-0.4 -> State 1: 0.16833223796171576, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n1.9 -> State 1: 0.2509478601290037, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n3.0 -> State 1: 0.08289761566062391, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n1.6 -> State 1: 0.2933877723035829, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n1.9 -> State 1: 0.2509478601290037, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n5.0 -> State 1: 0.0012852324969092556, State 2: {gaussian(obs, state2.mean, state2.std_dev)}\n" "3.8 -> State 1: 0.02185157424475792, State 2: 0.5471239427774459\n4.2 -> State 1: 0.009496655019831194, State 2: 0.5471239427774459\n3.4 -> State 1: 0.04499247209432338, State 2: 0.3947074079064296\n-0.4 -> State 1: 0.16833223796171576, State 2: 1.500652790137751e-09\n1.9 -> State 1: 0.2509478601290037, State 2: 0.006331212017054291\n3.0 -> State 1: 0.08289761566062391, State 2: 0.2054255182126689\n1.6 -> State 1: 0.2933877723035829, State 2: 0.001596702666402633\n1.9 -> State 1: 0.2509478601290037, State 2: 0.006331212017054291\n5.0 -> State 1: 0.0012852324969092556, State 2: 0.2054255182126689\n"
] ]
} }
], ],
"source": [ "source": [
"for obs in observations:\n", "for obs in observations:\n",
" print(f'{obs} -> State 1: {gaussian(obs, state1.mean, state1.std_dev)},', \n", " print(f'{obs} -> State 1: {gaussian(obs, state1.mean, state1.std_dev)},', \n",
" 'State 2: {gaussian(obs, state2.mean, state2.std_dev)}')" " f'State 2: {gaussian(obs, state2.mean, state2.std_dev)}')"
] ]
}, },
{ {

View File

@ -48,4 +48,14 @@
urldate = {2021-1-1}, urldate = {2021-1-1},
} }
@Book{standford-hmm-book,
author = {Dan Jurafsky and James H. Martin},
title = {Speech and Language Processing},
year = {2020},
edition = {3 (Draft)},
chapter = {A},
url = {https://web.stanford.edu/~jurafsky/slp3/},
urldate = {2021-1-3},
}
@Comment{jabref-meta: databaseType:bibtex;} @Comment{jabref-meta: databaseType:bibtex;}

View File

@ -8,7 +8,7 @@
\begin_preamble \begin_preamble
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]} \def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist \let\endchangemargin=\endlist
\pagenumbering{roman} \pagenumbering{gobble}
\usepackage{pxfonts} \usepackage{pxfonts}
\usepackage{color} \usepackage{color}
@ -182,6 +182,22 @@ University of Surrey
\end_inset \end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status open
\begin_layout Plain Layout
\backslash
pagenumbering{roman}
\end_layout
\end_inset
\end_layout \end_layout
\begin_layout Abstract \begin_layout Abstract
@ -282,6 +298,16 @@ literal "false"
memoryless memoryless
\emph default \emph default
. .
The hidden Markov model extends the standard Markov chain by modeling a
system where the states are not directly observable but are hidden
\begin_inset CommandInset citation
LatexCommand cite
key "standford-hmm-book"
literal "false"
\end_inset
, instead the states are inferred from the visible observations.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -678,6 +704,31 @@ noprefix "false"
ns. ns.
\end_layout \end_layout
\begin_layout Standard
The forward and backward procedure are outlined by
\begin_inset CommandInset citation
LatexCommand cite
key "standford-hmm-book"
literal "false"
\end_inset
, the equations for both forward and backward likelihood can be seen below,
\end_layout
\begin_layout Standard
\begin_inset Flex TODO Note (inline)
status open
\begin_layout Plain Layout
Finish?
\end_layout
\end_inset
\end_layout
\begin_layout Section \begin_layout Section
Results Results
\end_layout \end_layout
@ -3261,6 +3312,7 @@ The development of the model behind this report was completed using Jupyter
The used notebook can be seen formatted in plain text below, the relevant The used notebook can be seen formatted in plain text below, the relevant
mark scheme elements are referenced in brackets ( mark scheme elements are referenced in brackets (
\begin_inset listings \begin_inset listings
lstparams "language=Python,basicstyle={\ttfamily}"
inline true inline true
status open status open
@ -3310,6 +3362,11 @@ noprefix "false"
shows how the output probability density functions move during 5 iterations shows how the output probability density functions move during 5 iterations
of training. of training.
State 1's output function can be seen to spread out (increasing variance)
and shift slightly to the right (increasing mean).
State 2's mean begins by increasing before decreasing below the initial
value.
The variance also decreases, tightening the function.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -3354,6 +3411,20 @@ name "fig:5-training-iterations"
\end_inset \end_inset
\end_layout
\begin_layout Standard
\begin_inset Formula
\[
\hat{a}_{ij}=\left[\begin{array}{cc}
0.80 & 0.19\\
0.26 & 0.50
\end{array}\right]
\]
\end_inset
\end_layout \end_layout
\end_body \end_body