Через буквально день после предыдущего поста скинули еще более новую статью про контролируемое изменение семантики картинок с помощью диффузионных моделей. И в этой работе можно изменять детали любых изображений, а не только тех, что предварительно были сгенерированны моделью.
#paper
Imagic: text-based редактирование изображений с помощью диффузионной модели.
Как это работает:
Берем предобученную диффузионную модель. Например, Imagen: авторы использовали именно его.
Также берем любую картинку, которую хотим изменить, и придумываем к ней описание, которое будет соответствовать уже новой картинке. Например, если мы хотим из картинки белой машины сделать черную, таргет текст может быть таким: “black sports car”.
И делаем следующее:
1. Прогоняем target text через text encoder, получаем эмбеддинг e_tgt. Далее делаем пару итераций тюнинга этого эмбеддинга: меняем его так, чтобы картинка, которую выдает диффузионная модель на этому эмбеддингу, получалась как можно более похожей на картинку, которую мы хотим поменять (на картинку белой машины). Это делается обычным backprop. Диффузионная модель при этом не обучается. Назовем полученный эмбеддинг на этом шаге e_opt.
2. Теперь замораживаем эмбеддинг текста и еще пару итераций дообучаем диффузию. Цель та же: чтобы диффузия выдавала по этому эмбеддингу картинку, более похожую на нашу картинку, которую мы хотим изменять.
3. Последний шаг. Берем e_opt и e_tgt, и интерполируем: e = alpha*e_opt + (1-alpha)*e_tgt. Результат e прогоняем через дообученную диффузию. Вуаля, получаем на выходе картинку. Ее основные детали остались теми же, что были на изначальной картинке, но некоторые детали поменялись в соответствии с target text.
Для разных alpha результат получится разным: для маленьких alpha картинка будет практически идентична изначальной, для alpha ~1 картинка получится абсолютно новой, не имеющей ничего общего с изначальной. Для промежуточных значений alpha будет получаться то, что нам нужно: все детали, кроме тех, что мы хотим поменять, будут сохранены (ну, почти сохранены, об этом ниже). Пример получаемых картинок для разных alpha — на второй картинке к посту.
Идея работы модели, конечно, крутая: так просто позволяет изменять вообще любые изображения. Но у алгоритма есть ограничения:
- Модель работает с довольно low-resolution картинками. Потому что иначе на 1-2 шагах алгоритма просто не выйдет подобрать эмбеддинг и веса модели так, чтобы на выходе диффузии получалась картинка, прям похожая на нужную. Получаемые low-resolution картинки потом прогоняются через super-resolution сети (как это и было у Imagen, собственно).
- Таким алгоритмом, очевидно, не выйдет добиться того, чтобы на получаемой картинке все детали, которые мы не хотели менять, в точности сохранялись такими, каким были на изначальной картинке. Вообще все детали чуть меняются: это видно на примерах работы модели (1 картинка к посту). Например, стена и окно дома за человеком со скрещенными руками чуть разные на изначальной и полученной картинке.
Изменения затрагивают все детали в основном из-за того, что на первом шаге алгоритма измененяется e_tgt. Именно поэтому первый шаг делается очень малое количество итераций, чтобы e_opt был как можно ближе к e_tgt, но все же содержал каку-то информацию из target text’а.
- Из второго пункта очевидно следует, что этим алгоритмом не получится делать сложные изменения деталей. Действительно, чтобы сделать солжные изменения, нужно сильно изменить e_tgt. Но тогда сильнее изменятся и остальные детали изображения, чего мы не хотим.
Больше примеров работы модели — на третьей картинке к посту.
📃 Статья
#paper
Imagic: text-based редактирование изображений с помощью диффузионной модели.
Как это работает:
Берем предобученную диффузионную модель. Например, Imagen: авторы использовали именно его.
Также берем любую картинку, которую хотим изменить, и придумываем к ней описание, которое будет соответствовать уже новой картинке. Например, если мы хотим из картинки белой машины сделать черную, таргет текст может быть таким: “black sports car”.
И делаем следующее:
1. Прогоняем target text через text encoder, получаем эмбеддинг e_tgt. Далее делаем пару итераций тюнинга этого эмбеддинга: меняем его так, чтобы картинка, которую выдает диффузионная модель на этому эмбеддингу, получалась как можно более похожей на картинку, которую мы хотим поменять (на картинку белой машины). Это делается обычным backprop. Диффузионная модель при этом не обучается. Назовем полученный эмбеддинг на этом шаге e_opt.
2. Теперь замораживаем эмбеддинг текста и еще пару итераций дообучаем диффузию. Цель та же: чтобы диффузия выдавала по этому эмбеддингу картинку, более похожую на нашу картинку, которую мы хотим изменять.
3. Последний шаг. Берем e_opt и e_tgt, и интерполируем: e = alpha*e_opt + (1-alpha)*e_tgt. Результат e прогоняем через дообученную диффузию. Вуаля, получаем на выходе картинку. Ее основные детали остались теми же, что были на изначальной картинке, но некоторые детали поменялись в соответствии с target text.
Для разных alpha результат получится разным: для маленьких alpha картинка будет практически идентична изначальной, для alpha ~1 картинка получится абсолютно новой, не имеющей ничего общего с изначальной. Для промежуточных значений alpha будет получаться то, что нам нужно: все детали, кроме тех, что мы хотим поменять, будут сохранены (ну, почти сохранены, об этом ниже). Пример получаемых картинок для разных alpha — на второй картинке к посту.
Идея работы модели, конечно, крутая: так просто позволяет изменять вообще любые изображения. Но у алгоритма есть ограничения:
- Модель работает с довольно low-resolution картинками. Потому что иначе на 1-2 шагах алгоритма просто не выйдет подобрать эмбеддинг и веса модели так, чтобы на выходе диффузии получалась картинка, прям похожая на нужную. Получаемые low-resolution картинки потом прогоняются через super-resolution сети (как это и было у Imagen, собственно).
- Таким алгоритмом, очевидно, не выйдет добиться того, чтобы на получаемой картинке все детали, которые мы не хотели менять, в точности сохранялись такими, каким были на изначальной картинке. Вообще все детали чуть меняются: это видно на примерах работы модели (1 картинка к посту). Например, стена и окно дома за человеком со скрещенными руками чуть разные на изначальной и полученной картинке.
Изменения затрагивают все детали в основном из-за того, что на первом шаге алгоритма измененяется e_tgt. Именно поэтому первый шаг делается очень малое количество итераций, чтобы e_opt был как можно ближе к e_tgt, но все же содержал каку-то информацию из target text’а.
- Из второго пункта очевидно следует, что этим алгоритмом не получится делать сложные изменения деталей. Действительно, чтобы сделать солжные изменения, нужно сильно изменить e_tgt. Но тогда сильнее изменятся и остальные детали изображения, чего мы не хотим.
Больше примеров работы модели — на третьей картинке к посту.
📃 Статья
👍22🔥11❤4🤮1
На основе GPT-3 придумали очередную тулзу. Explainapaper: объяснятор научных статей
Загружаете статью, выделяете какую-то ее часть (например, ту, которую не понимаете), и GPT-3 переводит сложный заумный текст в лакончиную простую форму (т.е. решает задачу text summarization). Пример — на картинке к посту. Далее у GPT-3 можно спрашивать уточняющие вопросы по тексту, и модель постарается ответить.
Кажется, это действительно работает: текст получился верным и простым для понимания. Для уверенности нужно еще потестить, конечно.
Интересно наблюдать за тем, как после релиза инструмента снова пошли разговоры о том, как нейронки кого-то заменят и как представители некоторых профессий “наверное, напряглись” =)
В связи с этим, скажите: как вам кажется, полезная штука? Пользовались бы?
Мне кажется, людям, которые работают в науке и читают статьи по теме своих исследований, такая штука не нужна. Но если приходится читать текст не по своей специализации, может быть полезно: там могут встречаться термины и рассуждения, непонятные человеку вне области. И саммари простым языком значительно упростит понимание. Плюс, возможно, это будет полезно научпоп-жерналистам: часто они не очень глубоко разбираются в теме, на которые пишут статьи, а научные работы в процессе написания материала разбирать приходится.
Загружаете статью, выделяете какую-то ее часть (например, ту, которую не понимаете), и GPT-3 переводит сложный заумный текст в лакончиную простую форму (т.е. решает задачу text summarization). Пример — на картинке к посту. Далее у GPT-3 можно спрашивать уточняющие вопросы по тексту, и модель постарается ответить.
Кажется, это действительно работает: текст получился верным и простым для понимания. Для уверенности нужно еще потестить, конечно.
Интересно наблюдать за тем, как после релиза инструмента снова пошли разговоры о том, как нейронки кого-то заменят и как представители некоторых профессий “наверное, напряглись” =)
В связи с этим, скажите: как вам кажется, полезная штука? Пользовались бы?
Мне кажется, людям, которые работают в науке и читают статьи по теме своих исследований, такая штука не нужна. Но если приходится читать текст не по своей специализации, может быть полезно: там могут встречаться термины и рассуждения, непонятные человеку вне области. И саммари простым языком значительно упростит понимание. Плюс, возможно, это будет полезно научпоп-жерналистам: часто они не очень глубоко разбираются в теме, на которые пишут статьи, а научные работы в процессе написания материала разбирать приходится.
👍69❤🔥16❤3🔥1😁1
eDiffi: новая SOTA text-to-image диффузионная модель от Nvidia, которая также хорошо умеет в style transfer и генерацию картинок по скетчам (!)
#paper
Авторы eDiff пристально посмотрели на то, как происходит генерация картинок диффузионными моделями, и нашли две интересные особенности. Эти особенности они затем использовали для построения более эффективной архитектуры модели.
Вот что за особенности:
1️⃣ Как мы знаем, диффузия генерирует картинку шаг за шагом, на каждом шаге чуть уменьшая зашумленность картинки. Ребята из Nvidia внимательно посмотрели на этот процесс и заметили, что на первых шагах алгоритма (когда картинка представляет из себя практически гауссов шум), значения матрицы cross-attention между пикселями картинки и эмбеддингами текста довольно большие. Т.е. это значит, что на первых шагах алгоритм сильно опирается на текст, чтобы сгенерировать следующую картинку. А на последних шагах алгоритма, когда картинка уже почти готова и шума осталось мало, значения матрицы cross-attention малы. Это значит, что модель практически игнорирует текст на этом этапе.
Это звучит логично: на первых шагах входящая картинка — это просто случайный шум, и модель “смотрит” на текст, чтобы понять, что вообще генерировать. А на последних шагах все объекты на изображении уже расставлены, и задача модели — добиться визуальной красоты, убрать малый остаточный шум, причесать детали.
В связи с этим авторы предположили, что иметь лишь одну модель для всех стадий генерации картинки из шума не оптимально. Она ведь, по сути, разные задачи на разных этапах решает. Поэтому они педложили сделать три модели: одну для начальных этапов (когда нужно сильно смотреть на текст), вторую для середины процесса, третью — для финала (когда нужно “причесывать детали”).
Чтобы сильно не увеличивать время обучения (три модели обучать дороже), авторы сначала обучают одну модель, как обычно это и делается, и затем делят ее на три и немного дообучают их каждую для своей стадии.
Эта идея позволяет получить SOTA диффузию на датасете COCO 2014, и обойти Imagen, Parti, Stable Diffusion и другие модели.
2️⃣ Идея номер два связана с то, каким образом получаются эмбеддинги текста. Мы помним, что DALL-E 2 использует эмбеддинги предобученного CLIP, а Imagen и многие другие модели — эмбеддинги из языковой модели T5 (тоже предобученной). Переход от CLIP к T5, казалось бы, улучшил результаты: детали генерируемых картинок стали более четкими, на них даже начал появляться осмысленный текст.
Однако не все так однозначно (эта фраза вызвала нервную улыбку, простите)). Похоже, эмбеддинги CLIP и T5 каждый по-своему хороши. Диффузия с эмбеддингами CLIP позволяет получить более “цельно” выглядящую картинку, все детили которой хорошо согласуются между собой. Эмбеддинги T5 же делают детали картинки более проработанными.
Идея тогда проста: обучать сеть на обоих эмбедднгах сразу. И это помогает: картинки становятся в целом еще лучшего визуального качества. Метрика FID-CLIP для такой модели также выше, чем для моделей, обученных только с CLIP или только с T5.
Вот такая общая идея модели. Лакончично и практично. Но и это еще не все: авторы также придумали, как делать классный style transfer и генерацию изображений по скетчам. Об этом будут следующие посты⬇️
📃 Статья
#paper
Авторы eDiff пристально посмотрели на то, как происходит генерация картинок диффузионными моделями, и нашли две интересные особенности. Эти особенности они затем использовали для построения более эффективной архитектуры модели.
Вот что за особенности:
1️⃣ Как мы знаем, диффузия генерирует картинку шаг за шагом, на каждом шаге чуть уменьшая зашумленность картинки. Ребята из Nvidia внимательно посмотрели на этот процесс и заметили, что на первых шагах алгоритма (когда картинка представляет из себя практически гауссов шум), значения матрицы cross-attention между пикселями картинки и эмбеддингами текста довольно большие. Т.е. это значит, что на первых шагах алгоритм сильно опирается на текст, чтобы сгенерировать следующую картинку. А на последних шагах алгоритма, когда картинка уже почти готова и шума осталось мало, значения матрицы cross-attention малы. Это значит, что модель практически игнорирует текст на этом этапе.
Это звучит логично: на первых шагах входящая картинка — это просто случайный шум, и модель “смотрит” на текст, чтобы понять, что вообще генерировать. А на последних шагах все объекты на изображении уже расставлены, и задача модели — добиться визуальной красоты, убрать малый остаточный шум, причесать детали.
В связи с этим авторы предположили, что иметь лишь одну модель для всех стадий генерации картинки из шума не оптимально. Она ведь, по сути, разные задачи на разных этапах решает. Поэтому они педложили сделать три модели: одну для начальных этапов (когда нужно сильно смотреть на текст), вторую для середины процесса, третью — для финала (когда нужно “причесывать детали”).
Чтобы сильно не увеличивать время обучения (три модели обучать дороже), авторы сначала обучают одну модель, как обычно это и делается, и затем делят ее на три и немного дообучают их каждую для своей стадии.
Эта идея позволяет получить SOTA диффузию на датасете COCO 2014, и обойти Imagen, Parti, Stable Diffusion и другие модели.
2️⃣ Идея номер два связана с то, каким образом получаются эмбеддинги текста. Мы помним, что DALL-E 2 использует эмбеддинги предобученного CLIP, а Imagen и многие другие модели — эмбеддинги из языковой модели T5 (тоже предобученной). Переход от CLIP к T5, казалось бы, улучшил результаты: детали генерируемых картинок стали более четкими, на них даже начал появляться осмысленный текст.
Однако не все так однозначно (эта фраза вызвала нервную улыбку, простите)). Похоже, эмбеддинги CLIP и T5 каждый по-своему хороши. Диффузия с эмбеддингами CLIP позволяет получить более “цельно” выглядящую картинку, все детили которой хорошо согласуются между собой. Эмбеддинги T5 же делают детали картинки более проработанными.
Идея тогда проста: обучать сеть на обоих эмбедднгах сразу. И это помогает: картинки становятся в целом еще лучшего визуального качества. Метрика FID-CLIP для такой модели также выше, чем для моделей, обученных только с CLIP или только с T5.
Вот такая общая идея модели. Лакончично и практично. Но и это еще не все: авторы также придумали, как делать классный style transfer и генерацию изображений по скетчам. Об этом будут следующие посты⬇️
📃 Статья
🔥23👍7🤮2👎1
Style Transfer с помощью eDiff
Идея проста: давайте в качестве condition для модели будем использовать не только эмбеддинги текста из CLIP и T5, но еще и эмбеддинг картинки из CLIP. Берем картинку, стиль которой хотим перенести, получаем ее эмбеддинг из CLIP, подаем на вход модели в качестве еще одного condition. Обучаем модель таким способом.
Результаты крутые!
Надо сказать, что тдельную модель для style transfer обучать не нужно: это все еще та же модель из поста выше. Просто при ее обучении иногда использовали эмбеддинг картинки из CLIP’а в качестве condition, иногда — нет. В итоге модель умеет генерировать картинки как обычно, и еще делать style transfer.
Идея проста: давайте в качестве condition для модели будем использовать не только эмбеддинги текста из CLIP и T5, но еще и эмбеддинг картинки из CLIP. Берем картинку, стиль которой хотим перенести, получаем ее эмбеддинг из CLIP, подаем на вход модели в качестве еще одного condition. Обучаем модель таким способом.
Результаты крутые!
Надо сказать, что тдельную модель для style transfer обучать не нужно: это все еще та же модель из поста выше. Просто при ее обучении иногда использовали эмбеддинг картинки из CLIP’а в качестве condition, иногда — нет. В итоге модель умеет генерировать картинки как обычно, и еще делать style transfer.
🔥15👎1🤮1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Генерация картинки по скетчу с помощью eDiff
Интерфейс такой: вводите текстовый запрос и рисуете скетч: примерные расположения и формы объектов на картинке. Каждой нарисованной форме ставите в соответствие слово из своего текстового запроса. И модель сгенерирует по тексту картинку, на которой объекты будут в примерно нужных местах и примерно нужных форм.
Иллюстрация — на видео к посту.
Как это работает:
Снова очень просто. Авторы берут картинку, которую рисует юзер, переводят ее в бинарные маски для каждого слова. Маска размера самой картинки: 1 там, где пиксели должны соответствовать слову, 0 — в остальных местах. Эти маски затем подаются в слой cross-attention. Вычисление cross-attention при этом чуть меняется: к произведению QK добавляется wA, где A — маска, w — вес, с которым она входит в формулу. Авторы статьи меняют вес w в зависимости от стадии генерации картинки.
Подробнее — в разделе 4.3 статьи
На сайте проекта можно найти больше примеров style transfer и рисовалки по скетчу. Онлайн-демки пока не нашла, но, надеюсь, скоро завезут.
Интерфейс такой: вводите текстовый запрос и рисуете скетч: примерные расположения и формы объектов на картинке. Каждой нарисованной форме ставите в соответствие слово из своего текстового запроса. И модель сгенерирует по тексту картинку, на которой объекты будут в примерно нужных местах и примерно нужных форм.
Иллюстрация — на видео к посту.
Как это работает:
Снова очень просто. Авторы берут картинку, которую рисует юзер, переводят ее в бинарные маски для каждого слова. Маска размера самой картинки: 1 там, где пиксели должны соответствовать слову, 0 — в остальных местах. Эти маски затем подаются в слой cross-attention. Вычисление cross-attention при этом чуть меняется: к произведению QK добавляется wA, где A — маска, w — вес, с которым она входит в формулу. Авторы статьи меняют вес w в зависимости от стадии генерации картинки.
Подробнее — в разделе 4.3 статьи
На сайте проекта можно найти больше примеров style transfer и рисовалки по скетчу. Онлайн-демки пока не нашла, но, надеюсь, скоро завезут.
🔥42👍4🤯3👎1🤮1💩1🙏1🐳1
И снова: помните курс Mathshub по созданию ML-продуктов? Я на нем занятия по CV читала и вас туда приглашала, а еще рассказывала про его классную основательницу Айру и ее подкаст.
Так вот, ребята запускают новые программы в школе, и в связи с этим ищут в команду сильных преподавателей по Python. Ниже — краткая информация о школе и о вакансии, а также контакты для вопросов и подачи заявки.
Mathshub - международная школа программирования и Data Science. Создатели школы - практики и предприниматели, построившие карьеру в разработке и управлении продуктов с машинным обучением в Яндекс, Mail.Ru Group, Alfabank, Ozon, МВидео, Aitarget с опытом преподавания в ВШЭ, МФТИ, Y-DATA.
Требования к кандидатам:
- Отличное знание языка Python;
- Опыт преподавания более 3х лет(обсуждаемо);
- возможность быстро подключиться к программе.
Что нужно делать:
⁃ Проводить живые групповые уроки 2 раза в неделю (лекции и семинары);
⁃ Создание программы занятий и домашних заданий.
Вилка — ~5000р за 1.5-часовое занятие (обсуждаемо)
Как откликнуться:
⁃ Чтобы откликнуться на вакансию, заполните эту форму: https://forms.gle/K5LtwbZZ6tP2n6LY6
⁃ Если вам не придет ответ на почту, свяжитесь с Дианой в тг: @diswana
P.S. кажется, пора воодить тег #job
Так вот, ребята запускают новые программы в школе, и в связи с этим ищут в команду сильных преподавателей по Python. Ниже — краткая информация о школе и о вакансии, а также контакты для вопросов и подачи заявки.
Mathshub - международная школа программирования и Data Science. Создатели школы - практики и предприниматели, построившие карьеру в разработке и управлении продуктов с машинным обучением в Яндекс, Mail.Ru Group, Alfabank, Ozon, МВидео, Aitarget с опытом преподавания в ВШЭ, МФТИ, Y-DATA.
Требования к кандидатам:
- Отличное знание языка Python;
- Опыт преподавания более 3х лет(обсуждаемо);
- возможность быстро подключиться к программе.
Что нужно делать:
⁃ Проводить живые групповые уроки 2 раза в неделю (лекции и семинары);
⁃ Создание программы занятий и домашних заданий.
Вилка — ~5000р за 1.5-часовое занятие (обсуждаемо)
Как откликнуться:
⁃ Чтобы откликнуться на вакансию, заполните эту форму: https://forms.gle/K5LtwbZZ6tP2n6LY6
⁃ Если вам не придет ответ на почту, свяжитесь с Дианой в тг: @diswana
P.S. кажется, пора воодить тег #job
❤52🤮41👍14🔥9🤡3🤓3💩2🌚2👎1🤔1🕊1
Ребята, объясните мне, почему вы ставите блюющие и другие странные смайлики к посту выше. Это даже не реклама, тем более не реклама чего-то, в чем я не уверена. Очень интересно.
🤔30🤮18🤡6❤3💩3👍2👌2🕊2😢1🐳1
Спасибо всем за диалог под постом выше!
Скажу пару слов ещё:
- я не переживаю из-за самого наличия странных смайлов на постах. Все, что я хотела — узнать, почему некоторые люди поставили их на пост. Эти смайлы — это обратная связь, которую я хотела расшифровать.
Обратная связь мне действительно важна, я к ней всегда открыта и благодарна за нее. Через нее я больше узнаю о мире и могу корректировать свою деятельность. Я ни в коем случае никогда не считаю, что я точно права, все знаю, и что моя позиция — самая правильная. К примеру, так бывает, что я могу считать классным что-то, что, по вашему мнению, таковым не является. Или сделать ошибку в посте про какую-нибудь нейронку. Так бывает. Даже было совсем недавно, когда я писала пост про нейронку в нейрофизиологии: в этой сфере я не являюсь экспертом, и люди в комментариях указали мне на проблемы и помогли мне больше про это понять.
В общем, ваша обратная связь помогает мне подправить мою картину мира и узнать что-то новое. Именно поэтому мне так важно понимать обратную связь и развиваться.
Спасибо тем, кто эту обратную связь конструктивно даёт :)
- ну и ещё раз о рекламе. Нативной рекламы здесь нет. Если я говорю, что мне что-то нравится, то это действительно так. Если я говорю, что что-то классное, то я действительно так считаю. Стараюсь быть как можно более открытой и прозрачной во всем.
Платная реклама всегда помечена тегом #промо. В этом случае текст рекламы чаще всего прислан рекламодателем, и там бывает реклама продуктов, которые я не знаю изнутри. Но даже в этом случае я часто правлю текст рекламы, чтобы там не было фраз, под которыми я не готова подписаться, и убеждаюсь, что этот продукт я готова рекламировать. Как писала выше, ошибки все равно бывают, но это нормально. Главное — учитывать их на будущее, что я стараюсь делать.
Ещё более подробно о своем отношении к рекламе я ещё писала тут
Всем хорошего вечера! ❤️
Скажу пару слов ещё:
- я не переживаю из-за самого наличия странных смайлов на постах. Все, что я хотела — узнать, почему некоторые люди поставили их на пост. Эти смайлы — это обратная связь, которую я хотела расшифровать.
Обратная связь мне действительно важна, я к ней всегда открыта и благодарна за нее. Через нее я больше узнаю о мире и могу корректировать свою деятельность. Я ни в коем случае никогда не считаю, что я точно права, все знаю, и что моя позиция — самая правильная. К примеру, так бывает, что я могу считать классным что-то, что, по вашему мнению, таковым не является. Или сделать ошибку в посте про какую-нибудь нейронку. Так бывает. Даже было совсем недавно, когда я писала пост про нейронку в нейрофизиологии: в этой сфере я не являюсь экспертом, и люди в комментариях указали мне на проблемы и помогли мне больше про это понять.
В общем, ваша обратная связь помогает мне подправить мою картину мира и узнать что-то новое. Именно поэтому мне так важно понимать обратную связь и развиваться.
Спасибо тем, кто эту обратную связь конструктивно даёт :)
- ну и ещё раз о рекламе. Нативной рекламы здесь нет. Если я говорю, что мне что-то нравится, то это действительно так. Если я говорю, что что-то классное, то я действительно так считаю. Стараюсь быть как можно более открытой и прозрачной во всем.
Платная реклама всегда помечена тегом #промо. В этом случае текст рекламы чаще всего прислан рекламодателем, и там бывает реклама продуктов, которые я не знаю изнутри. Но даже в этом случае я часто правлю текст рекламы, чтобы там не было фраз, под которыми я не готова подписаться, и убеждаюсь, что этот продукт я готова рекламировать. Как писала выше, ошибки все равно бывают, но это нормально. Главное — учитывать их на будущее, что я стараюсь делать.
Ещё более подробно о своем отношении к рекламе я ещё писала тут
Всем хорошего вечера! ❤️
❤84🕊16👍6🤮6🥰3💩3🤡3👏2🐳1🌚1🏆1
Самый первый выпуск подкаста Deep Learning Stories был посвящен собеседованиям в AI Research. Гостем был Александр Петюшко — мой бывший тимлид и человек с богатым опытом собеседований.
Вообще, изначально никакого подкаста и в мыслях не было. Дело было так: в сентябре 2021 сразу пара человек за неделю спросили меня, как попасть на работу в DL Research. Кого берут, к чему готовиться. У меня опыт прохождения мной собеседований не такой обширный, а опыт собеседования других и вообще никакой. Поэтому я задала этот вопрос Александру, в то время он был моим тимлидом. И он сказал буквально следующее: “у меня накопился довольно обширный опыт, много мыслей на эту тему, а поделиться не с кем”. Так и родилась идея записать видео на тему собеседований, которая потом переросла в идею полноценного подкаста.
Так вот, к чему я. Тот выпуск был полностью посвящен собеседованиям. Но Александр — это человек, который имеет богатый опыт работы в RnD (например, с недавних пор работает в сфере создания беспилотных автомобилей), а также горячо любит и занимается (в меру возможностей) теоретическими основами и границами их применения в DL. Короче, тем для разговора с ним еще много.
Поэтому в эту среду мы планируем записать еще один выпуск подкаста Deep Learning Stories с Александром. Посвящен он будет математике и теории в Deep Learning. Примерные темы такие:
- нужна ли математика в ML/DL;
- математика и теория ML/DL - одно и то же или нет?
- где конкретно математика нужна (в какого рода исследованиях и компаниях);
- какие направления математики востребованы в индустрии;
- нужна ли математика для создания беспилотников.
И, как обычно перед записью выпусков, мне нужны ваши вопросы гостю. Что про математику в DL вам интересно узнать, какие вопросы задать Александру?
Пишите вопросы в комментарии к посту ⬇️
P.S. Этот выпуск будет посвящен в первую очередь математике, не беспилотникам. Если вам интересна тема беспилотников, мы можем поговорить на эту тему в следующих выпусках =)
Пока что можете посмотреть недавнее выступление Александра в UC Berkeley на тему проблем беспилотных автомобилей.
Вообще, изначально никакого подкаста и в мыслях не было. Дело было так: в сентябре 2021 сразу пара человек за неделю спросили меня, как попасть на работу в DL Research. Кого берут, к чему готовиться. У меня опыт прохождения мной собеседований не такой обширный, а опыт собеседования других и вообще никакой. Поэтому я задала этот вопрос Александру, в то время он был моим тимлидом. И он сказал буквально следующее: “у меня накопился довольно обширный опыт, много мыслей на эту тему, а поделиться не с кем”. Так и родилась идея записать видео на тему собеседований, которая потом переросла в идею полноценного подкаста.
Так вот, к чему я. Тот выпуск был полностью посвящен собеседованиям. Но Александр — это человек, который имеет богатый опыт работы в RnD (например, с недавних пор работает в сфере создания беспилотных автомобилей), а также горячо любит и занимается (в меру возможностей) теоретическими основами и границами их применения в DL. Короче, тем для разговора с ним еще много.
Поэтому в эту среду мы планируем записать еще один выпуск подкаста Deep Learning Stories с Александром. Посвящен он будет математике и теории в Deep Learning. Примерные темы такие:
- нужна ли математика в ML/DL;
- математика и теория ML/DL - одно и то же или нет?
- где конкретно математика нужна (в какого рода исследованиях и компаниях);
- какие направления математики востребованы в индустрии;
- нужна ли математика для создания беспилотников.
И, как обычно перед записью выпусков, мне нужны ваши вопросы гостю. Что про математику в DL вам интересно узнать, какие вопросы задать Александру?
Пишите вопросы в комментарии к посту ⬇️
P.S. Этот выпуск будет посвящен в первую очередь математике, не беспилотникам. Если вам интересна тема беспилотников, мы можем поговорить на эту тему в следующих выпусках =)
Пока что можете посмотреть недавнее выступление Александра в UC Berkeley на тему проблем беспилотных автомобилей.
👍59🔥15❤🔥3💩3❤2👏2
Набор ссылок для изучения диффузионных моделей
#learning
Я тут свой Ph.D. начала, и тема моего рисерча связана с диффузионными моделями. Ботать я их начинала еще намного раньше, где-то полгода назад, а сейчас я пытаюсь еще глубже понять математику внутри, advantages и limitations этих моделей. И у меня уже накопилось довольно много ссылок на матеарилы, которые помогут разботать диффузию: как на простом уровне, так и поглубже. В этом посте постараюсь их собрать.
Лонгрид про диффузионные модели в блоге Lilian Weng из OpenAI. В нем, с одной стороны, достаточно математики (без нее в диффузии уж вообще никак), с другой стороны — довольно понятно. Лонгрид еще и дополняется по мере развития области.
Вообще в ее блоге много статей и на другие темы. Например, последняя про математику в NTK — очень интеерсная тема. Как-то даже начинала ей заниматься, но потом жизнь повернулась чуть по-другому.
Несколько ссылок по intro to diffusion models чуть попроще:
- Diffusion Models Made Easy (towardsdatascience);
- How diffusion models work: the math from scratch;
- The annotated Diffusion Model (туториал на huggingface с кодом).
Если вы читаете один пост и после него вам осталось что-то непонятно, советую открыть другой: часто лучшее понимание в голове собирается за счет прочтения одной и той же темы в разных источниках, разных подачах.
Если вам больше нравится видео:
- Туториал по диффузии с CVPR-2022 от Nvidia и Google Research. Изначально туториал проводился на конференции, но к нему было столько общего интереса, что ребята решили записать его еще раз для широкой аудитории. Теперь можно смотреть на ютубе.
UPD: этот туториал крутой: очень понятный (посмотрела пока первые 30 минут)
После того, как основы изучены (или вы сразу хотите по-хардкору), можно переходить к научным статьям. Вот ссылки на основные две:
- Denoising Diffusion Probabilistic Models. Это статья, с которой все началось в 2020 году, когда диффузию применили к генерации картинок и она отлично заработала.
- Denoising Diffusion Implicit Models. Эта статья предлагает модификацию стандартной диффузии (DDPM), которая обладает хорошими свойствами и часто используется.
И, напоследок: github-репо с огромным набором ссылок на статьи/видео/etc, связанных с диффузией. Есть разделение по темам: introductory posts/papers/videos, обзоры, диффузия применительно к текстам/картинкам/3D и т.д. Также дополняется.
Пост может дополняться по мере нахождения новых материалов. Если у вас есть ссылки на хорошие материалы по диффузии — welcome to комментарии =)
#learning
Я тут свой Ph.D. начала, и тема моего рисерча связана с диффузионными моделями. Ботать я их начинала еще намного раньше, где-то полгода назад, а сейчас я пытаюсь еще глубже понять математику внутри, advantages и limitations этих моделей. И у меня уже накопилось довольно много ссылок на матеарилы, которые помогут разботать диффузию: как на простом уровне, так и поглубже. В этом посте постараюсь их собрать.
Лонгрид про диффузионные модели в блоге Lilian Weng из OpenAI. В нем, с одной стороны, достаточно математики (без нее в диффузии уж вообще никак), с другой стороны — довольно понятно. Лонгрид еще и дополняется по мере развития области.
Вообще в ее блоге много статей и на другие темы. Например, последняя про математику в NTK — очень интеерсная тема. Как-то даже начинала ей заниматься, но потом жизнь повернулась чуть по-другому.
Несколько ссылок по intro to diffusion models чуть попроще:
- Diffusion Models Made Easy (towardsdatascience);
- How diffusion models work: the math from scratch;
- The annotated Diffusion Model (туториал на huggingface с кодом).
Если вы читаете один пост и после него вам осталось что-то непонятно, советую открыть другой: часто лучшее понимание в голове собирается за счет прочтения одной и той же темы в разных источниках, разных подачах.
Если вам больше нравится видео:
- Туториал по диффузии с CVPR-2022 от Nvidia и Google Research. Изначально туториал проводился на конференции, но к нему было столько общего интереса, что ребята решили записать его еще раз для широкой аудитории. Теперь можно смотреть на ютубе.
UPD: этот туториал крутой: очень понятный (посмотрела пока первые 30 минут)
После того, как основы изучены (или вы сразу хотите по-хардкору), можно переходить к научным статьям. Вот ссылки на основные две:
- Denoising Diffusion Probabilistic Models. Это статья, с которой все началось в 2020 году, когда диффузию применили к генерации картинок и она отлично заработала.
- Denoising Diffusion Implicit Models. Эта статья предлагает модификацию стандартной диффузии (DDPM), которая обладает хорошими свойствами и часто используется.
И, напоследок: github-репо с огромным набором ссылок на статьи/видео/etc, связанных с диффузией. Есть разделение по темам: introductory posts/papers/videos, обзоры, диффузия применительно к текстам/картинкам/3D и т.д. Также дополняется.
Пост может дополняться по мере нахождения новых материалов. Если у вас есть ссылки на хорошие материалы по диффузии — welcome to комментарии =)
❤77🔥32👍7🤩3🐳2
Помните, были дипфейки раньше популярны? На их основе еще всякие мошенники делали картинки/видео с разными людьми и деньги вымогали.
Нас ждет новое поколение дипфейков, основанное на диффузионных моделях, способных изменять картикни. Например, на тех, о которых выше были посты. Подобные модели ужекачественно меняют детали изображений, а через пару месяцев-лет, верю, докрутят еще получше.
Встает вопрос: как от этого защититься? Как сделать так, чтобы из селфи из инстаграма не нагенерили дипфейков?
Исследователи из MIT занялись этой проблемой и сделали тулзу, которая добавляет к вашей картинке небольшой шум и делает так, что вашу картинку не получится изменить, используя диффузионную модель. Короче, они изобрели adversarial attack на диффузионные модели. Общая иллюстрация идеи — на картинке к посту.
Атака работает привычным нам способом. Модель для измнения картинок — это обычная text-to-image диффузия с condition’ом в виде картинки, которую нужно изменить. Есть два варианта атаки на такую модель: атака только на механизм condition и атака на всю систему целиком.
- Атака на condition mechanism. Идея: мы пытаемся так несильно изменить входящее изображение, чтобы его эмбеддинг был как можно ближе к эмбеддингу случайной картинки. Это заставляет tetx-to-image модель игнорировать детали входящей картинки и генерировать абсолютно новую картинку, основываясь только на тексте. Пример работы — 2 картинка к посту.
- Атака на всю сеть. Это обычная adversarial attack по типу FGSM с единственным нюансом: градиенты считаются только на последних четырех шагах диффузии. Но этого оказывается достаточно, чтобы сломать процесс изменения картинки. Пример работы этой атаки — на 3 картинке к посту.
Ограничения такого подхода такие же, что и у любых adversarial атак:
- работает для конкретной модели, т.е. white-box;
- требует довольно большого количества памяти (но работает при этом довольно быстро)
Ссылки:
- Блогпост от MIT.
Позащищать свои селфи перед загрузкой в запрещеннограм:
- Код на GitHub.
#paper
Нас ждет новое поколение дипфейков, основанное на диффузионных моделях, способных изменять картикни. Например, на тех, о которых выше были посты. Подобные модели ужекачественно меняют детали изображений, а через пару месяцев-лет, верю, докрутят еще получше.
Встает вопрос: как от этого защититься? Как сделать так, чтобы из селфи из инстаграма не нагенерили дипфейков?
Исследователи из MIT занялись этой проблемой и сделали тулзу, которая добавляет к вашей картинке небольшой шум и делает так, что вашу картинку не получится изменить, используя диффузионную модель. Короче, они изобрели adversarial attack на диффузионные модели. Общая иллюстрация идеи — на картинке к посту.
Атака работает привычным нам способом. Модель для измнения картинок — это обычная text-to-image диффузия с condition’ом в виде картинки, которую нужно изменить. Есть два варианта атаки на такую модель: атака только на механизм condition и атака на всю систему целиком.
- Атака на condition mechanism. Идея: мы пытаемся так несильно изменить входящее изображение, чтобы его эмбеддинг был как можно ближе к эмбеддингу случайной картинки. Это заставляет tetx-to-image модель игнорировать детали входящей картинки и генерировать абсолютно новую картинку, основываясь только на тексте. Пример работы — 2 картинка к посту.
- Атака на всю сеть. Это обычная adversarial attack по типу FGSM с единственным нюансом: градиенты считаются только на последних четырех шагах диффузии. Но этого оказывается достаточно, чтобы сломать процесс изменения картинки. Пример работы этой атаки — на 3 картинке к посту.
Ограничения такого подхода такие же, что и у любых adversarial атак:
- работает для конкретной модели, т.е. white-box;
- требует довольно большого количества памяти (но работает при этом довольно быстро)
Ссылки:
- Блогпост от MIT.
Позащищать свои селфи перед загрузкой в запрещеннограм:
- Код на GitHub.
#paper
👍37❤4🤮2🔥1
Наткнулась на вот такую статью: Sleep prevents catastrophic forgetting in spiking neural networks by forming joint synaptic weight representations
#paper
TL;DR такой:
Всем известно, что одна из функций сна — консолидация памяти. После хорошего сна отлично помнится все, что делал накануне, и даже если сегодня начинаешь учить что-то новое, выученное вчера не забывается.
У нейросетей же есть довольно важная проблема: catastrophic forgetting. Заключается она в том, что если обучать нейросеть на задаче А, а затем на задаче B, то нейросеть забудет задачу A.
Обычно эта проблема решается тем, что сеть тренируют одновременно на обеих задачах. Скажем, пару итераций на А, затем пару итераций на B. Проблема в том, что этот подход требует одновременной доступности данных для обеих задач и плохо скейлится.
Авторы этой статьи предлагают посмотреть на то, как это решается у людей (т.е. сном) и изобрести искусственный “аналог сна” для нейронок. Общая идея обучения сети со “сном” такая: учим нейросеть на задаче А, затем на задаче B, затем запускаем “сон”. “Сон” (кажется) состоит в том, что наиболее сильные связи между нейронам начинают искусственно симулироваться сигналами, распределенными по Пуассону ("hidden layer neurons were artificially stimulated by Poisson distributed spike trains in order to maintain spiking rates similar to that during task training”). Это, говорится в статье, напоминает активность нейронов в головном мозге во время REM-фазы сна, которая отвечает за консолидацию памяти.
Так вот, после такого обучения нейросеть начинает решать обе задачи на приемлемом одинаковом качестве.
Надо сказать, что в статье задачи A и B были суперпростыми, и ставились в парадигме RL. Поэтому далеко не факт, что метод будет применим для реальных нейросетей. Но в статье приведено много анализа работы нейросети в режиме сна и без, и это вселяет надежду. Поэтому идея мне показалась интересной.
Однако полностью механизм “сна” я понять не смогла. О том, как он устроен, в статье написана одна строчка (та, что приведена выше), и, кажется, чтобы понять все, нужно разботать Spike-timing-dependent plasticity (STDP, это что-то из нейробиологиии) и spike neural networks.
Поэтому: если тут есть люди, которые в этом понимают и могут описать идею статьи в небольшом тексте, я была бы очень рада ваш разбор прочитать и выложить в канал. Ну или просто разобраться в комментариях под постом.
Статья
#paper
TL;DR такой:
Всем известно, что одна из функций сна — консолидация памяти. После хорошего сна отлично помнится все, что делал накануне, и даже если сегодня начинаешь учить что-то новое, выученное вчера не забывается.
У нейросетей же есть довольно важная проблема: catastrophic forgetting. Заключается она в том, что если обучать нейросеть на задаче А, а затем на задаче B, то нейросеть забудет задачу A.
Обычно эта проблема решается тем, что сеть тренируют одновременно на обеих задачах. Скажем, пару итераций на А, затем пару итераций на B. Проблема в том, что этот подход требует одновременной доступности данных для обеих задач и плохо скейлится.
Авторы этой статьи предлагают посмотреть на то, как это решается у людей (т.е. сном) и изобрести искусственный “аналог сна” для нейронок. Общая идея обучения сети со “сном” такая: учим нейросеть на задаче А, затем на задаче B, затем запускаем “сон”. “Сон” (кажется) состоит в том, что наиболее сильные связи между нейронам начинают искусственно симулироваться сигналами, распределенными по Пуассону ("hidden layer neurons were artificially stimulated by Poisson distributed spike trains in order to maintain spiking rates similar to that during task training”). Это, говорится в статье, напоминает активность нейронов в головном мозге во время REM-фазы сна, которая отвечает за консолидацию памяти.
Так вот, после такого обучения нейросеть начинает решать обе задачи на приемлемом одинаковом качестве.
Надо сказать, что в статье задачи A и B были суперпростыми, и ставились в парадигме RL. Поэтому далеко не факт, что метод будет применим для реальных нейросетей. Но в статье приведено много анализа работы нейросети в режиме сна и без, и это вселяет надежду. Поэтому идея мне показалась интересной.
Однако полностью механизм “сна” я понять не смогла. О том, как он устроен, в статье написана одна строчка (та, что приведена выше), и, кажется, чтобы понять все, нужно разботать Spike-timing-dependent plasticity (STDP, это что-то из нейробиологиии) и spike neural networks.
Поэтому: если тут есть люди, которые в этом понимают и могут описать идею статьи в небольшом тексте, я была бы очень рада ваш разбор прочитать и выложить в канал. Ну или просто разобраться в комментариях под постом.
Статья
❤34🔥17👍11😴8❤🔥1
Вспомнила благодаря статье из поста выше, что хотела заботать основы нейробиологии. В конце концов, кажется, скоро много новых идей в AI будут основаны на биологических нейропроцессах.
Мне рекомендовали вот этот курс по основам нейробиологии от университета Чикаго. Говорят, доступно и емко. А еще week 4 курса — про Perception and Vision. Суперполезно для лучшего понимания того, как работает зрение, и насколько разные модели AI на это похожи/далеки.
P.S. В комментариях еще релевантных ссылок кидают⬇️
Мне рекомендовали вот этот курс по основам нейробиологии от университета Чикаго. Говорят, доступно и емко. А еще week 4 курса — про Perception and Vision. Суперполезно для лучшего понимания того, как работает зрение, и насколько разные модели AI на это похожи/далеки.
P.S. В комментариях еще релевантных ссылок кидают⬇️
👍34🔥11❤4
В эти выходные проводим заключительный хакатон от проекта "Практики будущего". Собираем вместе аналитиков, дизайнеров, журналистов, чтобы делать проекты, которые изменят то, как мы видим будущее.
#промо
Вообще мы давно хотели собрать кейсы, которые нам кажутся важными. Формат супер-интенсивный, но чтобы успеть ещё отоспаться – с вечера пятницы до вечера субботы, 25-26 ноября. Хакатон заточен под создание небольших, но действительно работающих решений. Можно подключиться онлайн из любой точки мира, а можно прийти на площадку в Петербурге, на Мойке, и наконец познакомиться лично.
Регистрация: https://talent.kruzhok.org/events/3795
Описание кейсов и все подробности: https://practicingfutures.org/data
Кейсы мы получили у экспертов Медицинского центра ДВФУ, Новосибирского государственного университета, Института цитологии и генетики СО РАН, Института химической биологии и фундаментальной медицины СО РАН, проекта «Сетевые исследования» и издания MR7.ru.
Среди кейсов:
– создание туристических маршрутов на основе данных,
– сбор данных для улучшения диагностики болезни Паркинсона,
– обработка данных о транскриптомном ответе на коронавирус у человека,
– визуализация данных об архитектурных памятниках, которым грозит уничтожение,
– исследование влияния рынка российского дизайна на мировой рынок,
– исследование рынка российских СМИ.
Приходите сделаем классное, научимся новому и пообщаемся!
#промо
Вообще мы давно хотели собрать кейсы, которые нам кажутся важными. Формат супер-интенсивный, но чтобы успеть ещё отоспаться – с вечера пятницы до вечера субботы, 25-26 ноября. Хакатон заточен под создание небольших, но действительно работающих решений. Можно подключиться онлайн из любой точки мира, а можно прийти на площадку в Петербурге, на Мойке, и наконец познакомиться лично.
Регистрация: https://talent.kruzhok.org/events/3795
Описание кейсов и все подробности: https://practicingfutures.org/data
Кейсы мы получили у экспертов Медицинского центра ДВФУ, Новосибирского государственного университета, Института цитологии и генетики СО РАН, Института химической биологии и фундаментальной медицины СО РАН, проекта «Сетевые исследования» и издания MR7.ru.
Среди кейсов:
– создание туристических маршрутов на основе данных,
– сбор данных для улучшения диагностики болезни Паркинсона,
– обработка данных о транскриптомном ответе на коронавирус у человека,
– визуализация данных об архитектурных памятниках, которым грозит уничтожение,
– исследование влияния рынка российского дизайна на мировой рынок,
– исследование рынка российских СМИ.
Приходите сделаем классное, научимся новому и пообщаемся!
👍6
⬆️Платную рекламу в канале я сейчас не делаю, так как (как видите) регулярно писать посты у меня пока не выходит. Морально сложный этап в жизни) А делать рекламу без достаточного количества постов между ними я не хочу.
Но пост выше — про хакатон, который делает моя подруга Тася. Она попросила меня рассказать вам о хаке. Тася делает образовательные проекты, и делает их очень хорошо. Так что приходите на хакатон — организация будет точно топ.
Но пост выше — про хакатон, который делает моя подруга Тася. Она попросила меня рассказать вам о хаке. Тася делает образовательные проекты, и делает их очень хорошо. Так что приходите на хакатон — организация будет точно топ.
👍43❤8👎1
DLStories
Самый первый выпуск подкаста Deep Learning Stories был посвящен собеседованиям в AI Research. Гостем был Александр Петюшко — мой бывший тимлид и человек с богатым опытом собеседований. Вообще, изначально никакого подкаста и в мыслях не было. Дело было так:…
Выпуск подкаста “S01E06: Математика и теория в deep learning” доступен на всех платформах!
Гость эпизода — Александр Петюшко, technical lead manager в компании Nuro и мой бывший тимлид. Поговорили с Александром о том, нужна ли математика в ML/DL, где конкретно она нужна и какая, какие еще навыки нужны рисерчеру, как их развивать и держать руку на пульсе современных исследований.
Ссылки:
Yandex Music
Apple Music
Google Music
Spotify
Anchor.fm
YouTube (тут с видео из zoom)
—————————————
Поддержать подкаст и канал можно тут
Гость эпизода — Александр Петюшко, technical lead manager в компании Nuro и мой бывший тимлид. Поговорили с Александром о том, нужна ли математика в ML/DL, где конкретно она нужна и какая, какие еще навыки нужны рисерчеру, как их развивать и держать руку на пульсе современных исследований.
Ссылки:
Yandex Music
Apple Music
Google Music
Spotify
Anchor.fm
YouTube (тут с видео из zoom)
—————————————
Поддержать подкаст и канал можно тут
🔥45👍6
На всякий случай скажу: я понимаю, что в этом эпизоде звук тож не самый чистый. Я многое поняла о записи видео и аудио, пока мы делали разные эпизоды подкаста, и думаю, что в следующий раз смогу сделать уже намного лучше.
Будем считать, что этот эпизод завершает нулевой сезон (E0). Даже в подкасте, как и во всей моей жизни в последнее время, перейдем на следующий этап) Забавно, что и начинал сезон, и завершает его один гость — Александр =)
Будем считать, что этот эпизод завершает нулевой сезон (E0). Даже в подкасте, как и во всей моей жизни в последнее время, перейдем на следующий этап) Забавно, что и начинал сезон, и завершает его один гость — Александр =)
👍19❤8