{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ECE 417 Lecture 20: Hidden Markov Models\n", "## Mark Hasegawa-Johnson, November 2, 2017\n", "This file is distributed under a CC-BY license. You may freely re-use or re-distribute the whole or any part. If you re-distribute a non-trivial portion of it, give me credit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Outline of Today's lecture\n", "* Defining an HMM\n", "* Generating data from an HMM\n", "* Initializing the parameters\n", "* Re-estimating parameters: The forward-backward algorithm\n", "* The scaled forward-backward algorithm\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Preliminaries\n", "First let's load some libraries, and some data." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import scipy.stats as stats\n", "import requests\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Defining an HMM\n", "A diagonal covariance Gaussian Hidden Markov model (an HMM with diagonal covariance Gaussian observation probabilities) is defined by four sets of parameters:\n", "$$\\pi_i=\\Pr\\left\\{q_1=i\\right\\}$$\n", "$$a_{ij}=\\Pr\\left\\{q_{t+1}=j|q_t=i\\right\\}$$\n", "$$\\mu_{di}=E\\left[x_{dt}|q_t=i\\right]$$\n", "$$\\sigma_{di}^2=E\\left[(x_{dt}-\\mu_{di})^2|q_t=i\\right]$$\n", "In this lecture I will generate data using the true values of each parameter, and then try to recognize data using estimated values of each parameter. Let's assume a three-state HMM.\n", "* For simplicity, let's set $\\pi_i=\\delta[i-1]$, so the HMM always starts in state 1.\n", "* Let's use a left-to-right HMM: $a_{ij}=0$ unless $j\\in\\left\\{i,i+1\\right\\}$. In particular, let's use $a_{ii}=0.8$, so that the HMM is expected to stay in each state for five frames.\n", "* Let's use a 12-dimensional observation vector. Its mean vector will be different in each state.\n", "* Let's use a variance vector which has the same variance in every dimension, but with higher variance in the middle state." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "states = [0,1,2,3]\n", "N = len(states)-1 # Define N as the number of emitting states\n", "pi_true = [1,0,0,0]\n", "A_true = [[0.8,0.2,0,0],[0,0.8,0.2,0],[0,0,0.8,0.2]]\n", "mu_true = [[2,2,2,2,0,0,0,0,0,0,0,0],[0,0,0,0,2,2,2,2,0,0,0,0],[0,0,0,0,0,0,0,0,2,2,2,2]]\n", "sigsq_true = [[1,1,1,1,1,1,1,1,1,1,1,1],[2,2,2,2,2,2,2,2,2,2,2,2],[1,1,1,1,1,1,1,1,1,1,1,1]]\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Generating data from an HMM\n", "Now let's run the HMM. We'll generate a state $q$, then generate a vector $\\vec{x}$ from it. Then repeat this process until $q=3$, at which point we stop." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Q = list(np.random.choice(states,1,p=pi_true))\n", "q = Q[-1]\n", "X = []\n", "while q < 3:\n", " xt = stats.multivariate_normal.rvs(mean=mu_true[q],cov=np.diag(sigsq_true[q]))\n", " X.append(xt)\n", " Q.extend(np.random.choice(states,1,p=A_true[q]))\n", " q = Q[-1]\n", "\n", "\n", "plt.subplot(211)\n", "plt.imshow(np.transpose(X))\n", "plt.title('Generated feature vectors')\n", "plt.subplot(212)\n", "plt.plot(Q)\n", "plt.xlabel('Frames')\n", "plt.title('True State Sequence')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Estimating the parameters of an HMM\n", "Now let's create estimated parameters. In order to create the initial estimate,\n", "we'll just divide the training example into thirds. \n", "* pi: We'll assume we know this\n", "* A: We'll estimate this by estimating the duration of each state to be $d=T/3$, and then choosing the transition probability $a_{i,i+1}=1/d$. That's the transition probability such that the expected duration of the state is $d$.\n", "* $\\mu$, $\\sigma^2$: We'll estimate these parameters as the mean and the variance, respectively, of each one-third of the given training example.\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pi=[1,0,0,0]\n", "T=len(X)\n", "d=int(T/3)\n", "a=1/d\n", "A=[[1-a,a,0,0],[0,1-a,a,0],[0,0,1-a,a]]\n", "mu=[np.average(X[0:d],axis=0),np.average(X[d:2*d],axis=0),np.average(X[2*d:T],axis=0)]\n", "sigsq=[np.var(X[0:d],axis=0),np.var(X[d:2*d],axis=0),np.var(X[2*d:T],axis=0)]\n", "plt.subplot(211)\n", "plt.plot(np.transpose(mu))\n", "plt.legend(['state 0','state 1','state 2'])\n", "plt.title('Initial estimated HMM means')\n", "plt.subplot(212)\n", "plt.plot(np.transpose(sigsq))\n", "plt.title('Initial estimated HMM variances')\n", "plt.xlabel('Feature dimension')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Now we'll compute the forward-backward algorithm using these initial estimates. First we compute B, a matrix whose $(i,t)^{\\textrm{th}}$ element is $p(\\vec{x}_t|q_t=i)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### E-step part 1\n", "$$b_i(\\vec{x}_t)=p(\\vec{x}_t|q_t=i)=\\frac{1}{(2\\pi)^{D/2}|\\Sigma_i|^{1/2}}e^{-\\frac{1}{2}(\\vec{x}_t-\\vec\\mu_{i})^T\\Sigma_i^{-1}(\\vec{x}_t-\\vec\\mu_i)}$$\n", "for diagonal covariance Gaussians, that's\n", "$$b_i(\\vec{x}_t)=\\prod_{d=1}^{12} \\frac{1}{\\sqrt{2\\pi\\sigma_i^2}}e^{-\\frac{1}{2}\\left(\\frac{x_{dt}-\\mu_{di}}{\\sigma_i}\\right)^2}$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "B=np.zeros((N,T))\n", "for t in range(0,T):\n", " for i in range(0,N):\n", " B[i,t]=stats.multivariate_normal(mu[i],np.diag(sigsq[i])).pdf(X[t])\n", "plt.imshow(np.log(B))\n", "plt.title('Log probability of the observation given the state')\n", "plt.xlabel('Frame number')\n", "plt.ylabel('State number')\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### E-Step part 2\n", "Now we compute alpha, beta, gamma, and xi.\n", "$$\\alpha_0(i)=\\Pr\\left\\{q_0=i,\\vec{x}_0\\right\\}=\\pi_i b_i(\\vec{x}_0)$$\n", "$$\\alpha_t(i)=\\Pr\\left\\{q_t=i,\\vec{x}_0,\\ldots,\\vec{x}_t\\right\\}=b_i(\\vec{x}_t)\\sum_{j=0}^{N-1}\\alpha_{t-1}(j)a_{ji}$$\n", "$$\\beta_{T-1}(i)=1$$\n", "$$\\beta_{t}(i)=\\Pr\\left\\{\\vec{x}_{t+1},\\ldots,\\vec{x}_{T-1}|q_t=i\\right\\}\\sum_{j=0}^{N-1}a_{ij}b_j(\\vec{x}_{t+1})\\beta_{t+1}(j)$$\n", "$$\\gamma_t(i)=\\Pr\\left\\{q_t=i|\\vec{x}_0,\\ldots,\\vec{x}_{T-1}\\right\\}=\\frac{\\alpha_t(i)\\beta_t(i)}{\\sum_{j=0}^{N-1}\\alpha_t(j)\\beta_t(j)}$$\n", "$$\\xi_t(i,j)=\\Pr\\left\\{q_t=i,q_{t+1}=j|\\vec{x}_0,\\ldots,\\vec{x}_{T-1}\\right\\}=\\frac{\\alpha_t(i)a_{ij}b_j(\\vec{x}_{t+1})\\beta_{t+1}(j)}{\\sum_{i=0}^{N-1}\\sum_{j=0}^{N-1}\\alpha_t(i)a_{ij}b_j(\\vec{x}_{t+1})\\beta_{t+1}(j)}$$\n", "\n", "Notice that, since $a_{ij}=0$ except for $j\\in\\left\\{i,i+1\\right\\}$, therefore $\\xi_t(i,j)=0$ except for $j\\in\\left\\{i,i+1\\right\\}$. Therefore we can save a little space in computations by computing $\\xi_t(i,j)$ only for those two possibilities." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\jhasegaw\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\ipykernel_launcher.py:31: RuntimeWarning: divide by zero encountered in log\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "alpha = np.zeros((N,T))\n", "beta = np.zeros((N,T))\n", "gamma = np.zeros((N,T))\n", "xi = np.zeros((2*N,T))\n", "Amat = np.array(A) # Convert to an np matrix so we can compute inner products\n", "for i in range(0,N):\n", " alpha[i,0]=pi[i]*B[i,0]\n", "for t in range(1,T):\n", " for i in range(0,N):\n", " alpha[i,t]=B[i,t]*np.inner(alpha[:,t-1],Amat[:,i])\n", "for i in range(0,N):\n", " beta[i,T-1]=1\n", "for t in range(T-2,-1,-1):\n", " for i in range(0,N):\n", " beta[i,t]=np.inner(Amat[i,0:N],beta[:,t+1]*B[:,t+1])\n", "for t in range(0,T):\n", " gamma[:,t]=alpha[:,t]*beta[:,t]\n", " gamma[:,t]=gamma[:,t]/np.sum(gamma[:,t])\n", "for t in range(0,T):\n", " for i in range(0,N):\n", " for j in range(i,i+2):\n", " xi[i+j,t]=alpha[i,t]*Amat[i,j]\n", " if (t0','0->1','1->1','1->2','2->2','2->3'])\n", "plt.title('Xi')\n", "plt.xlabel('Frame index, t')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### M-Step for multiple files\n", "If you have multiple files, then you compute for example $\\gamma_{t\\ell}(i)$ for the $t^{th}$ frame of the $\\ell^{th}$ file\n", "$$a_{ij}=\\frac{\\sum_\\ell\\sum_t \\xi_{t\\ell}(i,j)}{\\sum_\\ell\\sum_t\\gamma_{t\\ell}(i)}\\approx \\Pr\\left\\{q_{t+1}=j|q_t=i\\right\\}$$\n", "$$\\vec\\mu_i=\\frac{\\sum_\\ell\\sum_t\\gamma_{t\\ell}(i)\\vec{x}_t}{\\sum_\\ell\\sum_t\\gamma_{t\\ell}(i)}\\approx E\\left[\\vec{x}_{t}|q_t=i\\right]$$\n", "$$\\sigma_{di}^2=\\frac{\\sum_\\ell\\sum_t\\gamma_{t\\ell}(i)(x_{dt}-\\mu_{di})^2}{\\sum_\\ell\\sum_t\\gamma_{t\\ell}(i)}\\approx E\\left[(x_{dt}-\\mu_{di})^2|q_t=i\\right]$$" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(0,N):\n", " for j in range(i,i+2):\n", " A[i][j]=np.sum(xi[i+j,:])/np.sum(gamma[i,:])\n", "for i in range(0,N):\n", " mu[i] = np.inner(np.transpose(X),gamma[i,:])/np.sum(gamma[i,:])\n", "for i in range(0,N):\n", " sigsq[i]=np.inner(np.transpose(X-mu[i])**2,gamma[i,:])/np.sum(gamma[i,:])\n", "plt.subplot(311)\n", "plt.plot(np.transpose(A))\n", "plt.title('Re-estimated Transition Probabilities')\n", "plt.subplot(312)\n", "plt.plot(np.transpose(mu))\n", "plt.title('Re-estimated Gaussian Means')\n", "plt.legend(['state 0','state 1','state 2'])\n", "plt.subplot(313)\n", "plt.plot(np.transpose(sigsq))\n", "plt.title('Re-estimated Gaussian Variances')\n", "plt.xlabel('Feature Dimension')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Iterating the EM algorithm\n", "In real life, we would iterate the above algorithm several times between the E-step and the M-step. We won't do that today." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### M-Step\n", "Now we re-estimate the means, variances, and transition probabilities\n", "$$a_{ij}=\\frac{\\sum_t \\xi_t(i,j)}{\\sum_t\\gamma_t(i)}\\approx \\Pr\\left\\{q_{t+1}=j|q_t=i\\right\\}$$\n", "$$\\vec\\mu_i=\\frac{\\sum_t\\gamma_t(i)\\vec{x}_t}{\\sum_t\\gamma_t(i)}\\approx E\\left[\\vec{x}_{t}|q_t=i\\right]$$\n", "$$\\sigma_{di}^2=\\frac{\\sum_t\\gamma_t(i)(x_{dt}-\\mu_{di})^2}{\\sum_t\\gamma_t(i)}\\approx E\\left[(x_{dt}-\\mu_{di})^2|q_t=i\\right]$$" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Scaled EM\n", "You might have noticed that $\\alpha_t(i)$ keeps getting smaller and smaller as you go further to the right. That's because the Gaussian pdf can be either bigger or smaller than 1.0, but usually it's much smaller.\n", "\n", "Suppose that $b_j(\\vec{x}_t)$ is typically around $0.001$. Then $\\alpha_t(i)\\sim 10^{-3t}\\sim 2^{-30t}$. Standard IEEE double-precision floating point can represent numbers as small as $2^{-1022}$, which means that you can compute the forward-backward algorithm for an audio file of at most $T\\le 1022/30=34$ frames. The problem is much worse on fixed-point embedded processors (obviously).\n", "\n", "The solution is to scale $\\alpha_t(i)$ and $\\beta_t(i)$. As long as we scale them by the same amount, then we can compute $\\gamma_t(i)$ without any special re-normalizing. It works like this:\n", "$$\\tilde{\\alpha}_t(i)=\\frac{\\alpha_t(i)}{\\prod_{\\tau=1}^t g_\\tau}$$\n", "$$\\tilde{\\beta}_t(i)=\\frac{\\beta_t(i)}{\\prod_{\\tau=t+1}^T g_\\tau}$$\n", "$$\\gamma_t(i)=\\frac{\\alpha_t(i)\\beta_t(i)}{\\sum_{j=0}^{N-1}\\alpha_t(j)\\beta_t(j)}$$\n", "$$=\\frac{\\frac{\\alpha_t(i)\\beta_t(i)}{\\prod_{\\tau=1}^T g_\\tau}}{\\frac{\\sum_{j=0}^{N-1}\\alpha_t(j)\\beta_t(j)}{\\prod_{\\tau=1}^T g_\\tau}}$$\n", "$$=\\frac{\\tilde{\\alpha}_t(i)\\tilde{\\beta}_t(i)}{\\sum_{j=0}^{N-1}\\tilde{\\alpha}_t(j)\\tilde{\\beta}_t(j)}$$\n", "\n", "So any scaling constant $g_t$ will work, AS LONG AS YOU USE THE SAME $g_t$ FOR BOTH ALPHA AND BETA!!!\n", "\n", "Here's a pretty reasonable choice:\n", "$$\\bar\\alpha_t(i)=b_i(\\vec{x}_t)\\sum_{j=0}^{N-1}\\tilde{\\alpha}_{t-1}(j)a_{ji}$$\n", "$$g_t=\\sum_{i=0}^{N-1}\\bar\\alpha_t(i)$$\n", "$$\\tilde\\alpha_t(i) = \\frac{1}{g_t}\\bar\\alpha_t(i)$$\n", "\n", "If you work through it, you discover that, with this choice,\n", "$$\\prod_{t=1}^T g_t = \\sum_{j=0}^{N-1}\\alpha_T(j)$$\n", "\n", "But you might remember that $\\sum_{j=0}^{N-1}\\alpha_T(j)$ is actually the probability of the data sequence, $X$, given the model parameters $\\Lambda$. So\n", "$$p(X|\\Lambda)=\\sum_{j=0}^{N-1}\\alpha_T(j)=\\prod_{t=1}^T g_t$$\n", "$$\\ln p(X|\\Lambda)=\\sum_{t=1}^{T}\\ln g_t$$\n", "\n", "So we don't need to store $g_t$, just $\\ln g_t$." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tildealpha=np.zeros((N,T))\n", "tildebeta=np.zeros((N,T))\n", "log_g = np.zeros((T))\n", "baralpha = np.zeros((N,T))\n", "Amat = np.array(A)\n", "\n", "for i in range(0,N):\n", " baralpha[i,0]=pi[i]*B[i,0]\n", "log_g[0] = np.log(np.sum(baralpha[:,0]))\n", "tildealpha[:,0]=baralpha[:,0]/np.exp(log_g[0])\n", "\n", "for t in range(1,T):\n", " for i in range(0,N):\n", " baralpha[i,t]=B[i,t]*np.inner(tildealpha[:,t-1],Amat[:,i])\n", " log_g[t] = np.log(np.sum(baralpha[:,t]))\n", " tildealpha[:,t]=baralpha[:,t]/np.exp(log_g[t])\n", "\n", "for i in range(0,N):\n", " tildebeta[i,T-1] = 1/np.exp(log_g[T-1])\n", "\n", "for t in range(T-2,-1,-1):\n", " for i in range(0,N):\n", " tildebeta[i,t]=np.inner(Amat[i,0:N],tildebeta[:,t+1]*B[:,t+1])/np.exp(log_g[t+1])\n", "\n", "for t in range(0,T):\n", " gamma[:,t] = tildealpha[:,t]*tildebeta[:,t]\n", " gamma[:,t] = gamma[:,t]/np.sum(gamma[:,t])\n", " \n", "plt.subplot(311)\n", "plt.plot(log_g)\n", "plt.title('Log Gain at each Frame')\n", "plt.subplot(312)\n", "plt.plot(np.transpose(tildealpha))\n", "plt.title('Tilde-Alpha')\n", "plt.legend(['state 0','state 1','state 2'])\n", "plt.subplot(313)\n", "plt.plot(np.transpose(gamma))\n", "plt.title('Gamma')\n", "plt.xlabel('Frame Index')\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" } }, "nbformat": 4, "nbformat_minor": 2 }