Pull to refresh

Comments 9

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

Пусть даже данные хорошие. Но вот как подбираются pi(x), я из формулок не понял. Чем хуже просто застекать K регрессий или нейронок (да чего хотите) с подбором коэффициентов гридсерчем? Как мне кажется, статья именно про это.


Другое дело, что автор начал с клёвых рассжудений про правдоподобие (про которое практически на каждом углу трубят), а когда дошёл до самого интересного, т.е. MDN, ретировался и не стал ничего писать. Придётся лезть в статьи.


P.s. эффект статьи потерялся

Да, наверное следовало больше раскрыть теорию MDN. Правда там уже особо нечего раскрывать, оно все выводится из формулы 5, по сути это loss функция для обучения. pi(x) — не подбирается, оно имеет вид распределения поэтому и получается из softmax функции.

pi = F.softmax(self.pi(x), dim=1)

pi(x) — обучается, собственно как и mu(x) как и sigma_sq(x), опять же на основе формулы 5. Реализация ее приведена в коде в статье.

А вот это:

self.pi = nn.Linear(layer_size, coefs)
self.mu = nn.Linear(layer_size, out_dim*coefs) # mean
self.sigma_sq = nn.Linear(layer_size, coefs) # variance

По сути выходные слои для этих трех обучаемых значений.

Ну гридсерч тут не поможет точно. pi(x) — это не параметр который находится гридсерчем, это один из слоев нейронной сети. Да и «просто застекать» не выйдет, ведь стекинг, бустинг и прочее все таки предназначены для других задач. А тут немного другая именно архитектура сетки (ее выходных слоев).
они и есть слишком хорошие, они же сгенерированы из периодической функции синуса + плюс некий разброс или шум. И в данном случае проблема переобучения не важна. Тут речь идет о том как моделировать mixture distributions.
В данном случае в задаче регрессий мы положили нормальное распределение на y, а как бы выглядела плотность y если бы мы хотели сделать смесь классификаторов?
Дело в том, что плотность y не зависит от классификатора, это задано самой «природой» данных. А классификатор учится эту «природу» моделировать.
Нет, наверное вы меня не поняли — я спрашиваю про то как бы организованна была бы модель если бы y имел был бы дискретную природу (например два класса). Вы предлагаете в этом случае оставить условное нормальное распределение на y?
Sign up to leave a comment.

Articles