Skip to content
This repository has been archived by the owner on Jun 14, 2023. It is now read-only.

Ideas #3

Open
maxmouchet opened this issue Apr 1, 2019 · 2 comments
Open

Ideas #3

maxmouchet opened this issue Apr 1, 2019 · 2 comments
Labels
enhancement New feature or request

Comments

@maxmouchet
Copy link
Owner

maxmouchet commented Apr 1, 2019

Specialized transition matrix types

  • Classical, dense, transition matrix (Array{Float64,2})
  • Left-right
  • Sparse

Implementations of forward/backward/MLE dependent on the transition matrix type.

Higher-order models

As per https://discourse.julialang.org/t/ann-hmmbase-jl-a-lightweight-and-efficient-hidden-markov-model-abstraction/21604/2:

dellison:

The reason that I’m asking is that in natural language processing, HMMs have been used for sequence labeling tasks like part-of-speech tagging. In this task, for example, a second-order HMM that conditions on the previous two tags generally seems to do better than a first-order model that just conditions on one previous tag.

maxmouchet:

I’m not very familiar with higher-order models, but right now I see two ways of implementing them:

Writing specialized versions of the functions (e.g. messages_forwards_2);
Implementing more generic algorithms (such as belief propagation) to handle models of arbitrary orders in a single function;

The second option seems cleaner but I’m worried about the performance implications. On the other hand, macros could be used to generate specialized function for an arbitrary order instead.

As for the types, I can add a new parameter like AbstractHMM{F<:VariateForm, N} where N represents the order (1 by default).

Implement serialization/deserialization

Array(HMM), Dict, JSON, ...

Others

@maxmouchet maxmouchet added the enhancement New feature or request label Apr 1, 2019
@maxmouchet maxmouchet changed the title Implement higher-order models Future Ideas Nov 18, 2019
@maxmouchet maxmouchet changed the title Future Ideas Ideas Jun 11, 2020
@azev77
Copy link

azev77 commented Jul 28, 2020

Hi @maxmouchet, and thanks for this awesome package!
Has there been any progress on MLJ.jl integration?

@maxmouchet
Copy link
Owner Author

Hi,

Thanks for the kind words !
Unfortunately, I haven't made much progress.

Currently MLJ.jl does not handle time series (see JuliaAI/MLJ.jl#303).
I see that there is some early work in https://github.com/alan-turing-institute/MLJTime.jl, but I haven't yet looked into how I can adapt HMMBase to that.

I need to update the README but currently my focus for v1.1 is the support of multiple observations sequences (thanks to #26).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants