Нейронные сети с векторными потоками
Dec. 14th, 2019 01:21 amИдея эта, как и идеи, про которые я писал в предыдущем постинге, тоже простая, как первый трактор. Все "нейроморфные" вычисления устроены так, что чередуются, что-то, напоминающее линейное преобразование (где берётся нечто вроде "суммы с коэффициентами"), и что-то, напоминающее нелинейное преобразование.
Вот так они и идут: линейное - нелинейное - линейное - нелинейное - линейное - нелинейное - ...
Это означает, что необязательно делать "нейроморфные" вычисления с потоками чисел. Можно делать их с какими угодно потоками, лишь бы можно было брать "нечто вроде суммы этих потоков с коэффициентами". Могут быть потоки векторов и тензоров, в том числе, очень разреженных и бесконечномерных, могут быть потоки функций и распределений. Не удивительно, что если рассматривать такое, то выразительная мощность возрастает с нездешней силой, и вопрос в том, как эту вновь обретённую выразительную мощность оседлать.
Вот, по моим представлениям, люди должны были бы обнаружить это обстоятельство где-то во второй половине 1980-ых годов. (И я сам это должен был тогда сделать, и я знаю ещё людей, для которых было бы естественно сообразить это в 1980-е.)
Вместо этого, похоже, наша работа 2015-го года ("dataflow matrix machines"), это и есть первая работа такого рода (по моему опыту, если работа является переоткрытием (или частичным переоткрытием), то процесс реферирования/рецензирования быстро обнаруживает это обстоятельство; в данном случае, мы получили десятки рецензий на наши тексты, и никто не сказал, что это или что-то похожее, возможно, сделано там-то и там-то).
Вот, в соответствии с предыдущим постингом, естественное состояние дел в этой науке состоит в том, что работа делается на десятки лет позже, чем ей было вы естественно возникнуть, и обычно остается не особо замеченной несколько дольше, чем 10 лет. Это - обычное, стандартное состояние дел, вот там это всё и находится, в состоянии "остается не особо замеченной несколько дольше, чем 10 лет" (пока что, ещё не прошло 10-ти лет, может быть, если повезёт, можно сократить этот период).
Эта штука крайне интересна, как платформа для машинного обучения, и как платформа для программирования. С точки зрения "быстрого громкого успеха", группе, которая захотела бы этим пользоваться, наверное, стоит сосредоточиться на машинном обучении с помощью этих штук.
Но, в некотором смысле, смотреть на это, как на изящный программистский формализм, родственный некоторым известным вполне замечательным программистским парадигмам, но, всё же, иной, - может быть, на этом интереснее сосредоточиться, чем на машинном обучении (особенно, если заниматься этим совсем "малыми силами").
Я допишу кое-какие подробности в комментариях...
Вот так они и идут: линейное - нелинейное - линейное - нелинейное - линейное - нелинейное - ...
Это означает, что необязательно делать "нейроморфные" вычисления с потоками чисел. Можно делать их с какими угодно потоками, лишь бы можно было брать "нечто вроде суммы этих потоков с коэффициентами". Могут быть потоки векторов и тензоров, в том числе, очень разреженных и бесконечномерных, могут быть потоки функций и распределений. Не удивительно, что если рассматривать такое, то выразительная мощность возрастает с нездешней силой, и вопрос в том, как эту вновь обретённую выразительную мощность оседлать.
Вот, по моим представлениям, люди должны были бы обнаружить это обстоятельство где-то во второй половине 1980-ых годов. (И я сам это должен был тогда сделать, и я знаю ещё людей, для которых было бы естественно сообразить это в 1980-е.)
Вместо этого, похоже, наша работа 2015-го года ("dataflow matrix machines"), это и есть первая работа такого рода (по моему опыту, если работа является переоткрытием (или частичным переоткрытием), то процесс реферирования/рецензирования быстро обнаруживает это обстоятельство; в данном случае, мы получили десятки рецензий на наши тексты, и никто не сказал, что это или что-то похожее, возможно, сделано там-то и там-то).
Вот, в соответствии с предыдущим постингом, естественное состояние дел в этой науке состоит в том, что работа делается на десятки лет позже, чем ей было вы естественно возникнуть, и обычно остается не особо замеченной несколько дольше, чем 10 лет. Это - обычное, стандартное состояние дел, вот там это всё и находится, в состоянии "остается не особо замеченной несколько дольше, чем 10 лет" (пока что, ещё не прошло 10-ти лет, может быть, если повезёт, можно сократить этот период).
Эта штука крайне интересна, как платформа для машинного обучения, и как платформа для программирования. С точки зрения "быстрого громкого успеха", группе, которая захотела бы этим пользоваться, наверное, стоит сосредоточиться на машинном обучении с помощью этих штук.
Но, в некотором смысле, смотреть на это, как на изящный программистский формализм, родственный некоторым известным вполне замечательным программистским парадигмам, но, всё же, иной, - может быть, на этом интереснее сосредоточиться, чем на машинном обучении (особенно, если заниматься этим совсем "малыми силами").
Я допишу кое-какие подробности в комментариях...
no subject
Date: 2019-12-14 07:06 am (UTC)https://www.cs.brandeis.edu/~bukatin/dmm-white-paper-2019.pdf
Они сводятся к тому что: 1) на этих штуках можно программировать (а на обычных нейронных сетях реально нельзя программировать), но сложность задачи их синтеза должна быть примерно, как сложность синтеза нейронных сетей (то есть, заметно проще, чем общая задача синтеза программ). Поэтому, можно надеятся получить яркий прогресс в деле синтеза программ.
2) эти штуки легко меняют сами себя (в то время, как обычные нейронные сети меняют сами себя с большим трудом). Поэтому можно тренировать такую сеть, которая умеет менять саму себя, чтобы она меняла саму себя лучше. Это очень перспективно для популярного сейчас направления по автоматическому улучшению методов тренировки нейронных сетей.
Но, всё же, чтобы продвигаться прямо в этих направлениях, нужно чуть больше народу (или какая-то яркая идея, как продвинуться совсем малой кровью).
Поэтому, я чуть-чуть исследую более скромные проекты в этом направлении:
Вот это было сделано в самом начале весны:
https://github.com/anhinga/synapses/blob/master/regularization.md
а это чуть-чуть начато в начале осени:
https://github.com/anhinga/population-of-directions