Hidden Markov Models with Nonparametric Emissions
We provide two learning algorithms for HMMs with nonparametric emissions: a naive nonparameteric EM and the spectral learning algorithm based on decompositions of continuous matrices (as described in the original paper). Continuous linear algebra is implemented using chebfun. KDE estimators are based on if-estimators.
Download
To get the code, clone the repository as follows:
$ git clone --recursive https://github.com/alshedivat/nphmm.git
Note: You need to clone recursively since nphmm
depends on chebfun
as a submodule.
Alternatively, the code can be donwloaded directly as a zip-file.
Installation
To use the library, add lib
to the MATLAB path and setup chebfun
as follows:
>> addpath(genpath('lib'))
>> chebfun_setup()
To ensure that the library is functional, you can run tests as follows:
>> runtests('tests')
Usage
The library provides two main classes, npHMM
and npObsHMM
, that correspond the nonparameteric HMM and its observable representation, respectively.
Additionally, learnNPHMM
trains a model from the provided data using either EM or spectral method.
For usecases and examples check the scripts in examples/
and tests/
.
Citation
@article{kax2016nphmm,
title={Learning HMMs with Nonparametric Emissions via Spectral Decompositions of Continuous Matrices},
author={Kandasamy, Kirthevasan and Al-Shedivat, Maruan and Xing, Eric P},
journal={arXiv preprint arXiv:1609.06390},
year={2016}
}
License
MIT (for details, please refer to LICENSE)
Copyright (c) 2016 Maruan Al-Shedivat, Kirthevasan Kandasamy