На прошлой неделе неделе я посетил конференцию по вычислительным методам при анализе когнитома: пропустив первый день, который был полностью онлайн, я посетил конференцию очно во второй день, а также послушал, снова онлайн, доклады в последний, третий день.
Что такое когнитом? Это совокупность познавательных способностей мозга. Как математика может быть вообще применима для этого?
Я расскажу про два сюжета, первый из которых довольно сильно известен, а про второй я узнал именно на конференции.
1) В 1971-м году были открыты т.н. нейроны места. Что это такое? Допустим мы смотрим на мозг, скажем, мыши, которая как-то перемещается в пространстве. Тогда можно увидеть, что в гиппокампе есть некоторые специализированные нейроны, которые реагируют на определенное положение мышки. Такие нейроны как раз и называются нейронами места, а области, в которых они загораются, называются полями активации. Таким образом, у мышки в мозгу возникает информация о том, где она находится.
Тогда, если таких нейронов достаточно много, тогда просто по их активности можно понять то, какую топологию имеет пространство, по которому двигалась мышка. Например, если мышка бегает по некоторой комнате, то в каких-то частях комнаты у нее активируются какие-то нейроны. Если предположить, что в каждой точке комнаты хотя бы один нейрон активировался, то тогда поля активации, которые соответствуют нейронам, по сути зададут покрытие той самой комнаты, где бегает мышка. Тогда по покрытию можно взять нерв покрытия. Приняв некоторые технические допущения, из теоремы о нерве будет следовать, что пространство, по которому бегает мышка, имеет такую же форму, как и нерв покрытия (более точно, пространство гомотопически эквивалентно нерву покрытия).
И что? Возникает такой мем: мы можем понять форму комнаты, где бегала мышь, просто смотря мышке в голову. Мне в общем кажется это достаточно крутой вещью. И, видимо, не только мне: Джон О’Киф, который как раз открыл нейроны места, вместе с коллегами в 2014-м году получил Нобелевскую премию по физиологии и медицине "за открытие системы клеток в мозге, которая позволяет ориентироваться в пространстве".
Что такое когнитом? Это совокупность познавательных способностей мозга. Как математика может быть вообще применима для этого?
Я расскажу про два сюжета, первый из которых довольно сильно известен, а про второй я узнал именно на конференции.
1) В 1971-м году были открыты т.н. нейроны места. Что это такое? Допустим мы смотрим на мозг, скажем, мыши, которая как-то перемещается в пространстве. Тогда можно увидеть, что в гиппокампе есть некоторые специализированные нейроны, которые реагируют на определенное положение мышки. Такие нейроны как раз и называются нейронами места, а области, в которых они загораются, называются полями активации. Таким образом, у мышки в мозгу возникает информация о том, где она находится.
Тогда, если таких нейронов достаточно много, тогда просто по их активности можно понять то, какую топологию имеет пространство, по которому двигалась мышка. Например, если мышка бегает по некоторой комнате, то в каких-то частях комнаты у нее активируются какие-то нейроны. Если предположить, что в каждой точке комнаты хотя бы один нейрон активировался, то тогда поля активации, которые соответствуют нейронам, по сути зададут покрытие той самой комнаты, где бегает мышка. Тогда по покрытию можно взять нерв покрытия. Приняв некоторые технические допущения, из теоремы о нерве будет следовать, что пространство, по которому бегает мышка, имеет такую же форму, как и нерв покрытия (более точно, пространство гомотопически эквивалентно нерву покрытия).
И что? Возникает такой мем: мы можем понять форму комнаты, где бегала мышь, просто смотря мышке в голову. Мне в общем кажется это достаточно крутой вещью. И, видимо, не только мне: Джон О’Киф, который как раз открыл нейроны места, вместе с коллегами в 2014-м году получил Нобелевскую премию по физиологии и медицине "за открытие системы клеток в мозге, которая позволяет ориентироваться в пространстве".
🔥2👍1
2) В первом сюжете ключевую роль играли нейроны места. Но как их находить? Насколько я понимаю, это можно делать по-разному, и результаты не всегда совпадают. Может быть, какие-то нейроны аккумулируют в себе информацию с других, более "базовых" нейронов? Тогда можно попытаться как-то эти "базовые" нейроны находить.
Эти мысли наводят на следующую проблему: хочется построить какую-то математическую модель, которая бы также позволяла восстановить топологию пространства(как это делал нерв покрытия), но и также позволяла бы делать импликации такого вида:
Один из подходов решения такой проблемы следующий: если у нас, снова, информация об активности нейронов булевы(т.е. это либо 0, либо 1), то вся информация о том, как бегает мышка по лабиринту представляется в виде строчек из 0 и 1. Если нейронов было n, то вся эта совокупность строчек из 0 и 1 — это подмножество векторного пространства над полем F_2 размерности n. Такую совокупность называют нейронным кодом. О нем можно думать как об аффинном алгебраическом многообразии, и тогда можно рассмотреть его координатное кольцо (это кольцо всех многочленов на алгебраическом многообразии), которое называется нейронным кольцом. Помимо нейронного кольца, можно определить нейронный идеал, у него можно найти базисы Гребнера, и кажется это позволит решить задачу поиска импликаций вида
В прочем, такие размышления кажется не очень эффективны на практике, и представляют (пока) скорее теоретический интерес. Как сказал Антон Айзенберг: "не уверен, что мышь базисами Гребнера пользуется".
Эти мысли наводят на следующую проблему: хочется построить какую-то математическую модель, которая бы также позволяла восстановить топологию пространства(как это делал нерв покрытия), но и также позволяла бы делать импликации такого вида:
если нейроны i_1, ..., i_k загораются, то и нейрон i_p загорается. Один из подходов решения такой проблемы следующий: если у нас, снова, информация об активности нейронов булевы(т.е. это либо 0, либо 1), то вся информация о том, как бегает мышка по лабиринту представляется в виде строчек из 0 и 1. Если нейронов было n, то вся эта совокупность строчек из 0 и 1 — это подмножество векторного пространства над полем F_2 размерности n. Такую совокупность называют нейронным кодом. О нем можно думать как об аффинном алгебраическом многообразии, и тогда можно рассмотреть его координатное кольцо (это кольцо всех многочленов на алгебраическом многообразии), которое называется нейронным кольцом. Помимо нейронного кольца, можно определить нейронный идеал, у него можно найти базисы Гребнера, и кажется это позволит решить задачу поиска импликаций вида
если нейроны i_1, ..., i_k загораются, то нейрон i_p1 или i_p2 или ... или i_pn загорается. По всей видимости, в этой статье впервые появляются такие идеи, и там же находятся т.н. канонические формы нейронного идеала, но я пока саму статью не читал.В прочем, такие размышления кажется не очень эффективны на практике, и представляют (пока) скорее теоретический интерес. Как сказал Антон Айзенберг: "не уверен, что мышь базисами Гребнера пользуется".
🔥2
В октябре стартует online course on Category Theory for AI (Cats4AI) ✨
Курс полностью открытый и доступен для всех.
Для кого этот курс? Кажется, он расчитан на довольно широкую аудиторию, например, не предполагается никаких знаний по теории категорий, при этом программа довольно изящная. Ну а сами организаторы пишут так:
Whether you’re:
- A machine learning practitioner who wants to learn more about an exciting and emerging perspective for the field;
- A mathematician who wants to see how such abstract concepts can be used to shape the present and future of machine learning;
- Or just want to learn something new and interesting
This course is aimed towards machine learning researchers, but approachable to anyone with a basic understanding of linear algebra and differential calculus. The material is self-contained and all the necessary background will be introduced along the way.
https://cats.for.ai/
Курс полностью открытый и доступен для всех.
Для кого этот курс? Кажется, он расчитан на довольно широкую аудиторию, например, не предполагается никаких знаний по теории категорий, при этом программа довольно изящная. Ну а сами организаторы пишут так:
Whether you’re:
- A machine learning practitioner who wants to learn more about an exciting and emerging perspective for the field;
- A mathematician who wants to see how such abstract concepts can be used to shape the present and future of machine learning;
- Or just want to learn something new and interesting
This course is aimed towards machine learning researchers, but approachable to anyone with a basic understanding of linear algebra and differential calculus. The material is self-contained and all the necessary background will be introduced along the way.
https://cats.for.ai/
cats.for.ai
Categories for Machine Learning
This seminar series seeks to promote
the learning and use of Category Theory by Machine Learning Researchers
the learning and use of Category Theory by Machine Learning Researchers
👍7🤔1🌭1
Уже завтра стартует 3rd Workshop on Topological Methods in Data Analysis ✨
This three-day workshop includes introductions into the powerful data analysis machinery of persistent homology and to machine learning techniques. A particular focus is laid on synergies between TDA and machine learning, where fruitful applications have been recently emerging. In addition, participants will have the opportunity to give short presentations on their own TDA-related work.
https://tda.mathi.uni-heidelberg.de/
This three-day workshop includes introductions into the powerful data analysis machinery of persistent homology and to machine learning techniques. A particular focus is laid on synergies between TDA and machine learning, where fruitful applications have been recently emerging. In addition, participants will have the opportunity to give short presentations on their own TDA-related work.
https://tda.mathi.uni-heidelberg.de/
🍌2👍1
Если кто-то вдруг не знал, то уже больше года я со своими друзьями делаю в Воронеже какую-то математическую активность. В прошлом году мы делали семинары и всякие доклады, а неделю назад к нам приехал Андрей Рябичев и рассказал всякие приколы из маломерной топологии.
В общем, вышло классно.
https://vk.com/mathdeath?w=wall-177384512_362
В общем, вышло классно.
https://vk.com/mathdeath?w=wall-177384512_362
VK
Воронежская Математическая Жизнь. Запись со стены.
Всем привет!
Выкладываем записи лекций по мини-курсу по маломерной топологии, который прошел ... Смотрите полностью ВКонтакте.
Выкладываем записи лекций по мини-курсу по маломерной топологии, который прошел ... Смотрите полностью ВКонтакте.
👍3❤🔥1
Сегодня буду делать доклад про Римановы многообразия на Гейдельбергском семинаре по Riemannian Geometric Statistics. В прошлый раз, год назад, на похожем семинаре я рассказывал про UMAP, это кажется был мой первый доклад на английском, да и один из первых вообще, который прошел довольно неплохо.
Посмотрим, как получится в этот раз (я почти ничего про Римановы многообразия не знаю, и презентацию еще не сделал 🫣)
Посмотрим, как получится в этот раз (я почти ничего про Римановы многообразия не знаю, и презентацию еще не сделал 🫣)
👏2⚡1
Ну в общем как-то рассказал, вышло в целом неплохо, правда по ощущению я просто протататорил свои слайды, особенно в начале. Замедлился только в конце, потому что в конце некоторые вещи я так и не разобрал до конца. Честно говорил о том, что не понимаю какие-то вещи, и тогда я получал разъясняющие комментарии, но за исключением этого, никто ничего не говорил 😫
👍4😢2🏆1
Forwarded from космостас
Итак, обещал рассказать про участие в соревновании вместе с @snop_off
📎 Задача была от Иннополиса. Необходимы было предсказать класс урожайности(культуру), исходя о данных об индексе NDVI за сезон, а также используя данные о географии полей.
🎉 Призы получали первые 15 участников, мы вытянули на паблик лидерборде 20 место, нам совсем чуть-чуть оставалось до 15-шки, однако мы не использовали грамотную кросс-валидацию для составления прогнозов и улетели на привате на 52-53 места соответственно. Всего участников было 236.
В целом результат достойный, что на привате, что на паблике, однако мы могли бы выступить лучше, поэтому вынесли несколько уроков.
На этом мы не закончили, разгребем дела и в следующем сезоне попробуем пофармить чемпионаты по ML 💪
📎 Задача была от Иннополиса. Необходимы было предсказать класс урожайности(культуру), исходя о данных об индексе NDVI за сезон, а также используя данные о географии полей.
🎉 Призы получали первые 15 участников, мы вытянули на паблик лидерборде 20 место, нам совсем чуть-чуть оставалось до 15-шки, однако мы не использовали грамотную кросс-валидацию для составления прогнозов и улетели на привате на 52-53 места соответственно. Всего участников было 236.
В целом результат достойный, что на привате, что на паблике, однако мы могли бы выступить лучше, поэтому вынесли несколько уроков.
На этом мы не закончили, разгребем дела и в следующем сезоне попробуем пофармить чемпионаты по ML 💪
🔥6
космостас
Итак, обещал рассказать про участие в соревновании вместе с @snop_off 📎 Задача была от Иннополиса. Необходимы было предсказать класс урожайности(культуру), исходя о данных об индексе NDVI за сезон, а также используя данные о географии полей. 🎉 Призы получали…
На самом деле, мы очень поздно начали — за неделю до конца соревнования.
Я успел попробовать поделать различные топологические признаки из устойчивых гомологий, но, не успел настроить для них поиск параметров. Впрочем, многое, не успели сделать, но зато получили хороший опыт (а я еще и узнал про разные современные приколы типо Optuna) 😮💨😶🌫️
Я успел попробовать поделать различные топологические признаки из устойчивых гомологий, но, не успел настроить для них поиск параметров. Впрочем, многое, не успели сделать, но зато получили хороший опыт (а я еще и узнал про разные современные приколы типо Optuna) 😮💨😶🌫️
🔥3
Если вы вдруг хотели прослушать курс по алгебраической топологии (например, чтобы вкатиться в топологический анализ данных 😋), the electronic Computational Homotopy Theory (eCHT) online research community устроит в весеннем семестре бесплатный онлайн-курс по 2 и 3 главе Хатчера.
In Winter 2023, we will offer an online graduate course on introductory algebraic topology. This course could be well-suited to some students, especially if their institutions are not offering introductory algebraic topology this year. Our target audience includes first-year PhD students with interests in algebra, geometry, or topology; and masters students who are preparing to enter a PhD program soon. We are also open to enrolling advanced undergraduate students under certain circumstances.
Курс начнется 18 января и будет идти до мая, домашки и всякие проекты are included 🤓
https://s.wayne.edu/echt/echt-courses/algebraic-topology-homology-and-cohomology-winter-2023/
UPD: а еще там есть курс по К-теории, также в весеннем семестре
In Winter 2023, we will offer an online graduate course on introductory algebraic topology. This course could be well-suited to some students, especially if their institutions are not offering introductory algebraic topology this year. Our target audience includes first-year PhD students with interests in algebra, geometry, or topology; and masters students who are preparing to enter a PhD program soon. We are also open to enrolling advanced undergraduate students under certain circumstances.
Курс начнется 18 января и будет идти до мая, домашки и всякие проекты are included 🤓
https://s.wayne.edu/echt/echt-courses/algebraic-topology-homology-and-cohomology-winter-2023/
UPD: а еще там есть курс по К-теории, также в весеннем семестре
👍4
Я тут наткнулся на литералли гем среди мешапов — Exetra Beatz. Его старые мешапы мне не зашли, но то, что он сейчас делает, прям огонь. В рамках санкций от музыкальных лейблов, это должно быть на всех площадках, но пока это только на саундклауде
Объективный и неподкупный список лучших ремиксов следующий:
- Luciano & CIVO — Verliebt
- Pashanim & Dante YN — Switch Lanes
- Luciano & Centrall Cee — Pain
- Makko & T-low — Nachts wach
- Pashanim & Luciano — Tbh
Объективный и неподкупный список лучших ремиксов следующий:
- Luciano & CIVO — Verliebt
- Pashanim & Dante YN — Switch Lanes
- Luciano & Centrall Cee — Pain
- Makko & T-low — Nachts wach
- Pashanim & Luciano — Tbh
YouTube
Luciano feat. CIVO - Verliebt (prod. by Exetra Beatz)
https://exetrabeatz.com/
https://instagram.com/exetrabeatz
https://instagram.com/noxitebeatz
https://instagram.com/lucianoloco
https://instagram.com/civogram
https://instagram.com/exetrabeatz
https://instagram.com/noxitebeatz
https://instagram.com/lucianoloco
https://instagram.com/civogram
В декабре я успешно сдал курс Математика больших данных. Нужно было либо решить всякие стохастические задачки, либо сделать проект. Я выбрал второе, и сейчас я про это расскажу.
Проект заключался в реализации алгоритма малорангового восстановления матрицы. Вообще, это довольно полезная штука: например, чтобы Кинопоиск мог предложить вам какой-то фильм, ему нужно знать, как вы оценивали другие, уже просмотренные фильмы. Из оценок можно сформировать матрицу
Ну вот, если вдруг мы хотим предлагать пользователю какие-то фильмы, которые ему наверное понравятся, нам бы хотелось заранее знать, какую оценку он мог бы поставить фильму, который он еще не смотрел. Но как это сделать?
Хорошая новость заключается в том, что, хоть матрица
Об этом можно думать так: все фильмы можно разбить по жанрам: детективы, комедии, хорроры. Если пользователю
Допустим, это так. Выходит, чтобы приблизить нашу исходную матрицу
Рассмотрим такую функцию
Но мы ведь этого и хотели! Теперь мы примерно знаем, что конкретный пользователь может поставить фильму, который он еще не смотрел — надо просто глянуть на нужную ячейку в матрице
Вообщем, просмотреть все детали и код можно в этой тетрадке.
Проект заключался в реализации алгоритма малорангового восстановления матрицы. Вообще, это довольно полезная штука: например, чтобы Кинопоиск мог предложить вам какой-то фильм, ему нужно знать, как вы оценивали другие, уже просмотренные фильмы. Из оценок можно сформировать матрицу
(пользователи, фильмы), где на пересечении строки с пользователем A и фильмом B будет стоять оценка, которую пользователь A выставил фильму B. Это будет очень большая и жутко разреженная матрица, ведь каждый пользователь мог просмотреть лишь малое число от всех фильмов, которые есть у Кинопоиска. Ну вот, если вдруг мы хотим предлагать пользователю какие-то фильмы, которые ему наверное понравятся, нам бы хотелось заранее знать, какую оценку он мог бы поставить фильму, который он еще не смотрел. Но как это сделать?
Хорошая новость заключается в том, что, хоть матрица
(пользователи, фильмы) и большая, но скорее всего она малоранговая: вероятно, существует какой-то небольшой набор фильмов, оценки которых будут давать оценки всем другим фильмам. Как это понимать? Об этом можно думать так: все фильмы можно разбить по жанрам: детективы, комедии, хорроры. Если пользователю
A нравятся детективы (например, всем просмотренным детективам он выставил высокую оценку), но не нравятся хорроры (аналогично, всем просмотренным хоррорам он выставил низкую оценку), то вполне вероятно, что какому-то другому детективу он также выставит высокую оценку, а значит и предлагать ему надо какой-то детектив. В этом и заключается малоранговость матрицы (пользователи, фильмы): можно найти небольшое число фильмов (скажем, по одному ключевому фильму в каждом жанре), пользовательские оценки которых будут определять оценки других фильмов.Допустим, это так. Выходит, чтобы приблизить нашу исходную матрицу
(пользователи, фильмы), нам нужно искать среди матриц такого же размера, но у которых маленький ранг (например, ранг k). Это как-то облегчает нашу участь? О да: множество матриц фиксированного размера и фиксированного ранга, на самом деле, являются гладким многообразием! Более того, оно погружено в Евклидово пространство, а значит можно наследовать риманову метрику с объемлющего пространства на наше многообразие. А тогда мы можем заниматься всякой гладкой оптимизацией, ведь у нас теперь есть возможность посчитать градиент.Рассмотрим такую функцию
f(index; A) = A[index], которая по заданным индексам и матрице возвращает значения матрицы в этих индексах. Пусть index будет теперь означать индексы исходной матрицы (пользователи, фильмы), в которых стоят оценки. Тогда, можно рассмотреть квадратичную функцию ошибки на многообразии матриц фиксированного ранга: (f(index; (пользователи, фильмы)) - f(index; A))**2Ее мы можем минимизировать тем же градиентным спуском, и тогда мы получим приближение нашей исходной матрицы. То есть у нас получится найти такую матрицу
A, у которой на пересечении известных оценок будут, собственно, эти самые оценки, а для тех фильмов, оценки которых мы еще не знаем, мы получим какое-то приближение. Но мы ведь этого и хотели! Теперь мы примерно знаем, что конкретный пользователь может поставить фильму, который он еще не смотрел — надо просто глянуть на нужную ячейку в матрице
A. Ну и дальше уже думать, предлагать ли фильм или нет.Вообщем, просмотреть все детали и код можно в этой тетрадке.
Wikipedia
Matrix completion
task of filling in the missing entries of a partially observed matrix
👍4🔥2❤1