Nano Hash - криптовалюты, майнинг, программирование

Апостериорная прогностическая проверка детерминированной переменной PyMC3

TL; DR

Как правильно выполнять апостериорные прогностические проверки для pm.Deterministic переменных, которые принимают стохастику (представляя детерминированную также стохастическую) в качестве входных данных?

Слишком короткий; Не понял

Скажем, у нас есть такая модель pymc3:

import pymc3 as pm

with pm.Model() as model:
    # Arbitrary, trainable distributions.
    dist1 = pm.Normal("dist1", 0, 1)
    dist2 = pm.Normal("dist2", dist1, 1)

    # Arbitrary, deterministic theano math.
    val1 = pm.Deterministic("val1", arb1(dist2))

    # Arbitrary custom likelihood.
    cdist = pm.DensityDistribution("cdist", logp(val1), observed=get_data())

    # Arbitrary, deterministic theano math.
    val2 = pm.Deterministic("val2", arb2(val1))

Возможно, я неправильно понимаю, но я намереваюсь сделать выборку апостериорных значений dist1 и dist2 и передать эти выборки в детерминированные переменные. Возможна ли апостериорная прогностическая проверка только для наблюдаемых случайных величин?

Получить апостериорные прогностические выборки из dist2 и других случайных переменных, используя pymc3.sampling.sample_ppc, несложно, но большая часть значения моей модели получена из состояния val1 и val2 с учетом этих выборок.

Проблема возникает в том, что pm.Deterministic(.), кажется, возвращает th.TensorVariable. Итак, когда это называется:

ppc = pm.sample_ppc(_trace, vars=[val1, val2])["val1", "val2"]

...и pymc3 пытается выполнить этот блок кода в pymc3.sampling:

    410        for var in vars:
--> 411            ppc[var.name].append(var.distribution.random(point=param,
    412                                                          size=size))

... он жалуется, потому что th.TensorVariable явно не имеет .distribution.

Итак, как правильно провести апостериорные выборки стохастики через детерминистику? Нужно ли мне явно создавать th.function, который берет стохастические апостериорные выборки и вычисляет детерминированные значения? Это кажется глупым, учитывая тот факт, что у pymc3 уже есть график.

10.02.2017

Ответы:


1

Да, я неправильно понял цель .sample_ppc. Вам не нужно это для ненаблюдаемых переменных, потому что у них есть образцы в трассировке. Наблюдаемые переменные не выбираются, потому что их данные наблюдаются, поэтому вам нужно sample_ppc для создания выборок.

Короче говоря, я могу собрать образцы pm.Deterministic переменных из трассировки.

13.02.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..