Марковская модель интеллектуальных алгоритмов

машинное обучение искусственный интеллект
Марковская модель интеллектуальных алгоритмов

предисловие

Возможно, чаще встречается скрытая марковская модель (HMM).Марковскую модель можно рассматривать как более простую модель. Она моделирует события, которые можно непосредственно наблюдать, поэтому она соответствует HMM, иногда называемой видимой марковской (VMM). ). Модель Маркова имеет дело с проблемами последовательности, и основная идея состоит в том, чтобы подсчитать все выборки и получить вероятность перехода между состояниями в системе.

Марковский процесс

Марковский процесс является случайным процессом, система имеет вероятность перехода из одного состояния в другое состояние, и вероятность перехода рассчитывается только по предыдущему состоянию и не имеет ничего общего с прошлым состоянием и начальным состоянием. Случайный процесс здесь в основном означает, что процесс изменяется во времени, а значение состояния в каждый момент является случайным, согласно определенному распределению вероятностей.

Если релевантное состояние случайного процесса обобщается на предыдущее состояние, то переход каждого состояния в процессе зависит от предыдущих n состояний, и эта модель является моделью n-го порядка. Следовательно, упомянутый выше марковский процесс является процессом первого порядка, и его характеристика состоит в том, что переход каждого состояния зависит только от предыдущего состояния. По аналогии, это процесс n-го порядка, который вычисляет вероятность перехода на основе предыдущих n состояний.

Цепь Маркова

Марковский процесс, в котором время и состояние дискретны, называется цепью Маркова. Предположим, что множество всех возможных значений, содержащихся в цепи Маркова, равноS=\left \{s_1,s_2,...s_m\right \}, то S называется пространством состояний. Настроить цепь МарковаX=\{x_1,x_2,...x_t\}, диапазон значений каждой переменной находится в наборе S, а t представляет собой общее количество t моментов.

В соответствии с предыдущим процессом n-го порядка существует также цепь Маркова n-го порядка. Например, если вероятность появления состояния связана с его предыдущим состоянием, то это цепь Маркова первого порядка, а при обработке естественного языка она соответствует бинарной грамматике. Точно так же, если вероятность появления состояния связана с его первыми двумя состояниями, это цепь Маркова второго порядка, соответствующая триграмме. Модель Маркова n-го порядка соответствует n+1-грамме.

Чтобы узнать о грамматике n-грамм, обратитесь к предыдущей статье "n-грамм".

гипотеза Маркова

Для марковского процесса n-го порядка можно предположить, что состояние связано с предыдущим словом или словами, что является гипотезой Маркова. Цепь Маркова первого порядка, вероятность состояния переходного процесса связана с предыдущим состоянием, которое можно выразить как

P(x_i|x_1,x_2,...x_{i-1}) = P(x_i|x_{i-1})

Например

Используйте простое предложение «Китайцы обедают в полдень», чтобы увидеть переходы различных состояний и их вероятности. Вероятность «中» для «страна» и «полдень» составляет 50%, а вероятность «полдень» для «еда» и «хочу» составляет 50%, а остальные состояния преобразуются в 100%. Когда мы тренируемся с большим объемом корпуса, мы можем получить большую матрицу перехода, и за каждым словом может быть много связей состояний, и есть соответствующие вероятности.

这里写图片描述

выполнить

Одним из выходов может быть «пообедать».

import random

words = ["中", "国", "人", "中", "午", "要", "吃", "午", "饭"]
cache = {}
size = 3


def binary():
    for i in range(len(words) - 1):
        yield (words[i], words[i + 1])


for w1, w2 in binary():
    key = w1
    if key in cache:
        cache[key].append(w2)
    else:
        cache[key] = [w2]

seed = random.randint(0, len(words) - 1)
seed_word = words[seed]
word1 = seed_word
_words = []
for i in range(size):
    _words.append(word1)
    word1, = random.choice(cache[word1])
print(' '.join(_words))

------------- Рекомендуем прочитать ------------

Резюме моей статьи за 2017 год — машинное обучение

Резюме моих статей за 2017 год — Java и промежуточное ПО

Резюме моих статей 2017 года — глубокое обучение

Краткое изложение моих статей за 2017 год — исходный код JDK

Резюме моей статьи за 2017 год — обработка естественного языка

Резюме моих статей 2017 года — Java Concurrency

------------------рекламное время----------------

Меню официальной учетной записи было разделено на «распределенное», «машинное обучение», «глубокое обучение», «НЛП», «глубина Java», «ядро параллелизма Java», «исходный код JDK», «ядро Tomcat», и т.д. Там может быть один стиль, чтобы удовлетворить ваш аппетит.

Моя новая книга «Анализ проектирования ядра Tomcat» продана на Jingdong, и нуждающиеся друзья могут ее купить. Спасибо друзья.

Зачем писать «Анализ проектирования ядра Tomcat»

Добро пожаловать, чтобы следовать:

这里写图片描述