Концепция мини-партии в глубокой генеративной модели с использованием пиро - PullRequest
0 голосов
/ 24 сентября 2019

Я новичок в вероятностном программировании и ML.Я следую коду на глубокой марковской модели, приведенной на сайте пиро.Ссылка на страницу github с этим кодом:

https://github.com/pyro-ppl/pyro/blob/dev/examples/dmm/dmm.py

Я понимаю большую часть кода.Часть, которую я не понимаю, это идея мини-партии, которую они используют из строки 175.

Вопрос 1: Может ли кто-нибудь объяснить, что они там делают, когда используют мини?batch?

В документации по пиро они говорят:

mini_batch - это трехмерный тензор, где первое измерение является размерностью пакета, второе измерение является временным размером, ипоследнее измерение - это особенности (в нашем случае 88-мерное) '

Вопрос 2: Что здесь означает временное измерение?

Потому что я хочу использовать этот код в моем наборе данных, который представляет собой последовательные данные.Я выполнил одно горячее кодирование своих данных так, чтобы их размерность была (10000,500,20) , где 10000 - это число примеров / последовательностей, 500 - длина каждой из этих последовательностей, а 20 - это число.количество функций.

Вопрос 3: Как я могу использовать мои горячие закодированные данные в качестве мини-пакета здесь?

Извините, если это действительноОсновной вопрос, но понимание будет оценено.

Ссылка на эту документацию:

https://pyro.ai/examples/dmm.html

1 Ответ

1 голос
/ 25 сентября 2019

Вопрос 1. Может ли кто-нибудь объяснить, что они там делают, когда используют мини-серию?

Чтобы оптимизировать большинство моделей глубокого обучения, мы используем мини-серию градиентного спуска.,Здесь A mini_batch относится к небольшому числу примеров.Скажем, у нас есть 10 000 обучающих примеров, и мы хотим создать мини-партии по 50 примеров.Таким образом, всего будет 200 мини-пакетов, и мы выполним 200 обновлений параметров за одну итерацию по всему набору данных.

Вопрос 2. Что означает здесь временное измерение?

В ваших данных: (10000, 500, 20), второе измерение относится к временному измерению.Вы можете считать, что у вас есть примеры с 500 временными шагами (t1, t2, ..., t500).

Вопрос 3: Как я могу использовать мои закодированные данные в горячем виде в качестве мини-пакета здесь?

В вашем сценарии вы можете разделить ваши данные (10000, 500, 20) на 200 небольших пакетов размером (50, 500, 20), где 50 - это число примеров / последовательностей в мини-пакете, 500 - это длина каждой из этих последовательностей, а 20 - это число.функций.

Как определить размер мини-партии?По сути, мы можем настроить размер партии так же, как и любые другие гиперпараметры нашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...