Марковские цепи на Яве - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть приложение, которое запускает нейронную сеть каждые несколько секунд, которое выполняет некоторую классификацию с 7 возможными классами (A, B, C, D, E, F, G).Выходные данные этого алгоритма могут немного перескакивать, поэтому я хочу добавить цепочку Маркова, чтобы сгладить предсказания, поскольку существуют четко определенные вероятности перехода состояний.

stateTransitionMatrix =
                 A     B     C     D     E     F     G
        A   {{0.50, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00},
        B    {0.00, 0.50, 0.50, 0.00, 0.00, 0.00, 0.00},
        C    {0.25, 0.25, 0.25, 0.25, 0.00, 0.00, 0.00},
        D    {0.00, 0.00, 0.33, 0.33, 0.33, 0.00, 0.00},
        E    {0.00, 0.00, 0.00, 0.33, 0.33, 0.33, 0.00},
        F    {0.00, 0.00, 0.00, 0.00, 0.33, 0.33, 0.33},
        G    {0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.50}}

Я хотел бы использовать цепочку Маркованаблюдаемые вероятности из последних 4 выходов нейронной сети.Так, например, цепь Маркова должна использовать следующие 4 выхода и матрицу перехода состояний для определения вероятности того, что состояние A, B, C, D, E, F и G. Существуют ли какие-либо библиотеки Java, которые делают это?Если нет, есть ли у кого-нибудь фрагменты кода?

                   A     B     C     D     E     F     G
observation1 = {0.01, 0.00, 0.00, 0.00, 0.00, 0.99, 0.00}
observation2 = {0.00, 0.05, 0.00, 0.00, 0.00, 0.95, 0.00}
observation3 = {0.80, 0.00, 0.00, 0.05, 0.00, 0.00, 0.15}
observation4 = {0.00, 0.02, 0.00, 0.00, 0.00, 0.98, 0.00}
...