Польза big data для медицины: случай в Лурдском медицинском центре Богоматери в Нью-Джерси.
В то время как пациент проходил обследование из-за нового приступа судороги, вызванного пропущенным приемом лекарств, врачи обнаружили, что мужчина имеет куда более серьезную проблему со здоровьем: фибрилляция предсердий.
Диагноз удалось поставить благодаря тому, что сотрудники отделения получили доступ к телефону пациента, а именно к приложению, сопряженному с его фитнес-трекером. Данные с приложения оказались ключевым фактором в определении диагноза, ведь на момент обследования у мужчины никаких сердечных отклонений обнаружено не было.
Как еще специалисты используют большие данные?
Узнай, записавшись на полный курс по Data science в SkillFactory. Здесь для обучения уже подготовили много-много практических заданий по Python, Math&Stat, Machine Learning, менеджменту ー спустя всего год ты будешь готов к старту успешной карьеры в Data science!
🎁И, конечно, как же без новогодних желаний? В SkillFactory их уже начали исполнять – до 13 декабря скидка на курс 40%!
Если и учиться, то только на практике: https://clc.to/J3km8w
В то время как пациент проходил обследование из-за нового приступа судороги, вызванного пропущенным приемом лекарств, врачи обнаружили, что мужчина имеет куда более серьезную проблему со здоровьем: фибрилляция предсердий.
Диагноз удалось поставить благодаря тому, что сотрудники отделения получили доступ к телефону пациента, а именно к приложению, сопряженному с его фитнес-трекером. Данные с приложения оказались ключевым фактором в определении диагноза, ведь на момент обследования у мужчины никаких сердечных отклонений обнаружено не было.
Как еще специалисты используют большие данные?
Узнай, записавшись на полный курс по Data science в SkillFactory. Здесь для обучения уже подготовили много-много практических заданий по Python, Math&Stat, Machine Learning, менеджменту ー спустя всего год ты будешь готов к старту успешной карьеры в Data science!
🎁И, конечно, как же без новогодних желаний? В SkillFactory их уже начали исполнять – до 13 декабря скидка на курс 40%!
Если и учиться, то только на практике: https://clc.to/J3km8w
skillfactory.ru
Курс «Специалист по Data Science» с нуля, онлайн-обучение профессии Data Scientist
Онлайн-курс «Специалист по Data Science» с нуля до PRO ✔️Обучение профессии Data Scientist. Курс по машинному обучению от экспертов сферы IT. Попробуйте силы в аналитике данных и дата-инженерии. Получите профессиональный опыт уже во время обучения.
Машинному обучению сейчас не обучается только ленивый, но большинство делает это по старой университетской привычке, через боль и высшую математику. В школе Skillfactory готовы доказать, что это не единственный подход.
На практическом курсе “Machine Learning” вы научитесь решать все типовые задачи машинного обучения и познакомитесь с нейронными сетями. Совсем начинающим помогут лучше разобраться с Python и основными библиотеками.
Все полученные знания вы закрепите на финальном хакатоне на kaggle с реальными датасетами.
Хотите учиться на практике? Узнайте подробнее о программе: https://clc.to/1IYO1A
⚡️Кибернеделя в SkillFactory! Cкидка на курсы до 40% ー не упустите шанс!
На практическом курсе “Machine Learning” вы научитесь решать все типовые задачи машинного обучения и познакомитесь с нейронными сетями. Совсем начинающим помогут лучше разобраться с Python и основными библиотеками.
Все полученные знания вы закрепите на финальном хакатоне на kaggle с реальными датасетами.
Хотите учиться на практике? Узнайте подробнее о программе: https://clc.to/1IYO1A
⚡️Кибернеделя в SkillFactory! Cкидка на курсы до 40% ー не упустите шанс!
skillfactory.ru
Курс по Machine Learning - SkillFactory - Школа Data Science
Курс машинного обучения онлайн ★ Продвинутый курс по машинному обучению для разработчиков | Помощь наставника на протяжении обучения, отработка всех моделей машинного обучения на практике ▶ Школа по работе с данными Skillfactory ☎ +7 (495) 291-09-14
Google just released a paper describing a chatbot noscriptd "Meena", and they claimed that it's the most human-like chatbot ever created
https://www.youtube.com/watch?v=JhfNJlnN_Bg
https://www.youtube.com/watch?v=JhfNJlnN_Bg
YouTube
DeepFake Chatbots
Google just released a paper describing a chatbot noscriptd "Meena", and they claimed that it's the most human-like chatbot ever created. That's a big claim! They demonstrated several conversations across a wide variety of topics in which Meena was able to skillfully…
Forwarded from gonzo-обзоры ML статей
Big Self-Supervised Models are Strong Semi-Supervised Learners
Ting Chen, Simon Kornblith, Kevin Swersky, Mohammad Norouzi, Geoffrey Hinton
Статья: https://arxiv.org/abs/2006.10029
Код: https://github.com/google-research/simclr
Продолжаем серию про большие модели. Теперь картиночная SimCLRv2 от команды Google Brain с Хинтоном. Это пока не пиллиарды и бразиллионы параметров, как в GPT-3, но тем не менее.
В каком-то смысле это адаптация идей GPT (там работы назывались похоже — “Language Models are Unsupervised Multitask Learners”, “Language Models are Few-Shot Learners”) на картиночную область, также хитрым претрейнингом добиваемся получения большой модели, которую затем легко дообучить под конкретную задачу.
Авторы обучают глубокую и широкую модель (ResNet) в режиме self-supervised и затем файнтюнят на небольшом числе размеченных примеров (в случае ImageNet это стандартные сабсеты на 1% и 10%) и ещё потом всё дистиллируют.
Итоговый пайплайн таков:
#1. Unsupervised pretraining используя SimCLRv2 (наследник также весьма свежего SimCLR, https://ai.googleblog.com/2020/04/advancing-self-supervised-and-semi.html)
#2. Supervised fine-tuning на небольшом числе размеченных примеров.
#3. Дистилляция на неразмеченных примерах из целевой задачи.
Обо всём по порядку.
Оригинальный SimCLR первой версии (“A Simple Framework for Contrastive Learning of Visual Representations”, https://arxiv.org/abs/2002.05709) использует подход contrastive learning, когда хорошие представления выучиваются через максимизацию согласия между трансформированными изображениями. Представления картинок, произошедших от общего оригинала, должны получаться близкими, а от разных — далёкими.
Каждая картинка в батче дважды аугменируется (случайный crop, изменение цвета, Gaussian blur), прогоняется через ResNet и затем MLP, а после считается contrastive loss между всеми позитивными парами (негативные пары явно не сэмплятся, но это все остальные комбинации картинок внутри батча, они влияют на нормализацию лосса).
SimCLRv2 отличается в трёх аспектах:
1) Более глубокий и широкий ResNet (вместо ResNet-50 берём ResNet-152 с 3x больше каналов и Selective Kernels (https://arxiv.org/abs/1903.06586). Даёт +29% относительного улучшения по top-1 accuracy при файнтюнинге на 1% размеченных картинок.
2) Нелинейная часть сети, projection head (MLP после ResNet), становится глубже. SimCLR отбрасывала эту часть после предобучения, здесь делаем файн-тюнинг со среднего слоя этой части. Ещё +14% относительного улучшения.
3) Добавляется механизм памяти из MoCo (https://arxiv.org/abs/1911.05722). Ещё где-то +1%.
После предобучения и файнтюнинга делают дополнительную дистилляцию без меток, когда уже обученная сеть-учитель предсказывает метки неразмеченной части (уже новой задачи), а сеть-студент пытается к этому предсказанию приблизиться. Метки, если есть, в процедуру тоже несложно добавить. Дистиллировали в такую же архитектуру (self-distillation) или в более компактную.
Обучали на 128 Cloud TPUs, во время файнтюнинга и дистилляции делали случайные кропы и горизонтальные развороты.
Результаты хорошие.
Большие модели более label-efficient и улучшаются намного сильнее на небольшом числе примеров. Более глубокие projection heads также помогают (выучивают более качественные представления), особенно когда размеченных данных мало. Дистилляция только по неразмеченным примерам работает прекрасно, и небольшое число размеченных мало что к ней добавляет.
Из философски интересного здесь наблюдение, что более тяжёлые модели на небольшом числе размеченных примеров генерализуют лучше, хотя у них есть все шансы лучше заоверфититься. И это хорошее наблюдение, которое показывает, что в некоторых случаях, когда дополнительные данные добыть реально трудно, возможно, стоит инвестировать в обучение более тяжёлых моделей.
Ещё из интересного, ощутимо бьют 100%-supervised baseline (здесь правда может быть корректнее сравнивать по computational budget или чему-то похожему, ибо SimCLR внутри по сути делает много всякой аугментации данных)
Ting Chen, Simon Kornblith, Kevin Swersky, Mohammad Norouzi, Geoffrey Hinton
Статья: https://arxiv.org/abs/2006.10029
Код: https://github.com/google-research/simclr
Продолжаем серию про большие модели. Теперь картиночная SimCLRv2 от команды Google Brain с Хинтоном. Это пока не пиллиарды и бразиллионы параметров, как в GPT-3, но тем не менее.
В каком-то смысле это адаптация идей GPT (там работы назывались похоже — “Language Models are Unsupervised Multitask Learners”, “Language Models are Few-Shot Learners”) на картиночную область, также хитрым претрейнингом добиваемся получения большой модели, которую затем легко дообучить под конкретную задачу.
Авторы обучают глубокую и широкую модель (ResNet) в режиме self-supervised и затем файнтюнят на небольшом числе размеченных примеров (в случае ImageNet это стандартные сабсеты на 1% и 10%) и ещё потом всё дистиллируют.
Итоговый пайплайн таков:
#1. Unsupervised pretraining используя SimCLRv2 (наследник также весьма свежего SimCLR, https://ai.googleblog.com/2020/04/advancing-self-supervised-and-semi.html)
#2. Supervised fine-tuning на небольшом числе размеченных примеров.
#3. Дистилляция на неразмеченных примерах из целевой задачи.
Обо всём по порядку.
Оригинальный SimCLR первой версии (“A Simple Framework for Contrastive Learning of Visual Representations”, https://arxiv.org/abs/2002.05709) использует подход contrastive learning, когда хорошие представления выучиваются через максимизацию согласия между трансформированными изображениями. Представления картинок, произошедших от общего оригинала, должны получаться близкими, а от разных — далёкими.
Каждая картинка в батче дважды аугменируется (случайный crop, изменение цвета, Gaussian blur), прогоняется через ResNet и затем MLP, а после считается contrastive loss между всеми позитивными парами (негативные пары явно не сэмплятся, но это все остальные комбинации картинок внутри батча, они влияют на нормализацию лосса).
SimCLRv2 отличается в трёх аспектах:
1) Более глубокий и широкий ResNet (вместо ResNet-50 берём ResNet-152 с 3x больше каналов и Selective Kernels (https://arxiv.org/abs/1903.06586). Даёт +29% относительного улучшения по top-1 accuracy при файнтюнинге на 1% размеченных картинок.
2) Нелинейная часть сети, projection head (MLP после ResNet), становится глубже. SimCLR отбрасывала эту часть после предобучения, здесь делаем файн-тюнинг со среднего слоя этой части. Ещё +14% относительного улучшения.
3) Добавляется механизм памяти из MoCo (https://arxiv.org/abs/1911.05722). Ещё где-то +1%.
После предобучения и файнтюнинга делают дополнительную дистилляцию без меток, когда уже обученная сеть-учитель предсказывает метки неразмеченной части (уже новой задачи), а сеть-студент пытается к этому предсказанию приблизиться. Метки, если есть, в процедуру тоже несложно добавить. Дистиллировали в такую же архитектуру (self-distillation) или в более компактную.
Обучали на 128 Cloud TPUs, во время файнтюнинга и дистилляции делали случайные кропы и горизонтальные развороты.
Результаты хорошие.
Большие модели более label-efficient и улучшаются намного сильнее на небольшом числе примеров. Более глубокие projection heads также помогают (выучивают более качественные представления), особенно когда размеченных данных мало. Дистилляция только по неразмеченным примерам работает прекрасно, и небольшое число размеченных мало что к ней добавляет.
Из философски интересного здесь наблюдение, что более тяжёлые модели на небольшом числе размеченных примеров генерализуют лучше, хотя у них есть все шансы лучше заоверфититься. И это хорошее наблюдение, которое показывает, что в некоторых случаях, когда дополнительные данные добыть реально трудно, возможно, стоит инвестировать в обучение более тяжёлых моделей.
Ещё из интересного, ощутимо бьют 100%-supervised baseline (здесь правда может быть корректнее сравнивать по computational budget или чему-то похожему, ибо SimCLR внутри по сути делает много всякой аугментации данных)
GitHub
GitHub - google-research/simclr: SimCLRv2 - Big Self-Supervised Models are Strong Semi-Supervised Learners
SimCLRv2 - Big Self-Supervised Models are Strong Semi-Supervised Learners - google-research/simclr
Forwarded from gonzo-обзоры ML статей
This media is not supported in your browser
VIEW IN TELEGRAM
An illustration of the proposed SimCLR framework. The CNN and MLP layers are trained simultaneously to yield projections that are similar for augmented versions of the same image, while being dissimilar for different images, even if those images are of the same class of object. The trained model not only does well at identifying different transformations of the same image, but also learns representations of similar concepts (e.g., chairs vs. dogs), which later can be associated with labels through fine-tuning.
Towards Fast, Accurate and Stable 3D Dense Face Alignment
Генерация 3D модели лица с разверткой и текстурой на базе 1 фотографии.
https://github.com/cleardusk/3DDFA_V2
Генерация 3D модели лица с разверткой и текстурой на базе 1 фотографии.
https://github.com/cleardusk/3DDFA_V2
Forwarded from Brodetskyi. Tech, VC, Startups
💥 Команда DeepMind отчиталась о научном прорыве. С помощью ИИ AlphaFold им удалось решить задачу прогнозирования сворачивания белков, над которой научное сообщество работало 50 лет. Тестирование показало, что AlphaFold за несколько дней вычислений может предсказать структуру белка с точностью до атома. Это открывает возможности для новых открытий в сфере медицины и разработки лекарств.
Моделирование сворачивания белков - процесса, в котором цепочки аминокислот соединяются в сложнейшие трехмерные белковые структуры - ключевая задача для исследования того, как болезни распространяются и влияют на организм человека. Понимание этого процесса может позволить блокировать распространение инфекции в организме или исправлять ошибки в сворачивании, которые приводят к нейродегенеративным и когнитивным расстройствам. Очень своевременное открытие, учитывая, что эта пандемия - явно не последняя.
https://deepmind.com/blog/article/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology
Моделирование сворачивания белков - процесса, в котором цепочки аминокислот соединяются в сложнейшие трехмерные белковые структуры - ключевая задача для исследования того, как болезни распространяются и влияют на организм человека. Понимание этого процесса может позволить блокировать распространение инфекции в организме или исправлять ошибки в сворачивании, которые приводят к нейродегенеративным и когнитивным расстройствам. Очень своевременное открытие, учитывая, что эта пандемия - явно не последняя.
https://deepmind.com/blog/article/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology
Deepmind
AlphaFold: a solution to a 50-year-old grand challenge in biology
Proteins are essential to life, supporting practically all its functions. They are large complex molecules, made up of chains of amino acids, and what a protein does largely depends on its unique 3D structure. Figuring out what shapes proteins fold into is…
X5 ищет дата-сайентиста, который хочет работать с по-настоящему большими данными и влиять на жизнь миллионов людей. Важно знать Python, разбираться в алгоритмах и структурах данных, ML и Hadoop — плюс. Подробности здесь
https://openai.com/blog/clip/
https://github.com/openai/CLIP
CLIP: Connecting Text and Images
We’re introducing a neural network called CLIP which efficiently learns visual concepts from natural language supervision. CLIP (Contrastive Language–Image Pre-training) can be applied to any visual classification benchmark by simply providing the names of the visual categories to be recognized, similar to the “zero-shot” capabilities of GPT-2 and 3.
https://github.com/openai/CLIP
CLIP: Connecting Text and Images
We’re introducing a neural network called CLIP which efficiently learns visual concepts from natural language supervision. CLIP (Contrastive Language–Image Pre-training) can be applied to any visual classification benchmark by simply providing the names of the visual categories to be recognized, similar to the “zero-shot” capabilities of GPT-2 and 3.
Openai
CLIP: Connecting text and images
We’re introducing a neural network called CLIP which efficiently learns visual concepts from natural language supervision. CLIP can be applied to any visual classification benchmark by simply providing the names of the visual categories to be recognized,…
https://openai.com/blog/dall-e/
DALL·E: Creating Images from Text
(Генерация изображений через текстовое описание)
We’ve trained a neural network called DALL·E that creates images from text captions for a wide range of concepts expressible in natural language.
DALL·E: Creating Images from Text
(Генерация изображений через текстовое описание)
We’ve trained a neural network called DALL·E that creates images from text captions for a wide range of concepts expressible in natural language.
Openai
DALL·E: Creating images from text
We’ve trained a neural network called DALL·E that creates images from text captions for a wide range of concepts expressible in natural language.
Создание 3Д модели-аватара для игр на основе одной фотографии https://github.com/FuxiCV/MeInGame
GitHub
GitHub - FuxiCV/MeInGame: MeInGame: Create a Game Character Face from a Single Portrait, AAAI 2021
MeInGame: Create a Game Character Face from a Single Portrait, AAAI 2021 - FuxiCV/MeInGame
AmpliGraph — это набор моделей машинного обучения под лицензией Apache2 для извлечения эмбеддингов из графов знаний. Такие модели кодируют узлы и ребра графа в вектором виде и объединяют их для предсказания недостающих фактов. Графовые эмбеддинги применяются в таких задачах, как в довершение графа знаний, обнаружение знаний, кластеризация на основе связей и другие.
https://github.com/Accenture/AmpliGraph
https://github.com/Accenture/AmpliGraph
GitHub
GitHub - Accenture/AmpliGraph: Python library for Representation Learning on Knowledge Graphs https://docs.ampligraph.org
Python library for Representation Learning on Knowledge Graphs https://docs.ampligraph.org - Accenture/AmpliGraph
VOGUE: Try-On by StyleGAN Interpolation Optimization
StyleGAN для виртуальной примерки одежды. Алгоритм переносит одежду с фотографии одного человека на фотографию другого человека
https://vogue-try-on.github.io/
https://youtu.be/AWd7x_3GaZk
StyleGAN для виртуальной примерки одежды. Алгоритм переносит одежду с фотографии одного человека на фотографию другого человека
https://vogue-try-on.github.io/
https://youtu.be/AWd7x_3GaZk
YouTube
VOGUE: Try-On by StyleGAN Interpolation Optimization
VOGUE: Try-On by StyleGAN Interpolation Optimization
Kathleen M Lewis, Srivatsan Varadharajan, Ira Kemelmacher-Shlizerman
Project Website: https://vogue-try-on.github.io/
Kathleen M Lewis, Srivatsan Varadharajan, Ira Kemelmacher-Shlizerman
Project Website: https://vogue-try-on.github.io/
Продолжается набор на оплачиваемую летнюю стажировку в Яндексе ⚡️
Если вы (или ваши друзья) давно хотели попробовать себя в роли разработчика, летняя стажировка — идеальный вариант.
Отлично проявившие себя стажеры получат шанс перейти в штат!
Направления: фронтенд- и бэкенд-разработка, машинное обучение, аналитика, мобильная разработка и другие — ознакомиться с ними можно здесь.
Особый формат стажировки — Deep Dive в Яндекс.Маркете.
Сколько длится: от трех до 6 месяцев.
Где: в Москве, Санкт-Петербурге, Екатеринбурге, Нижнем Новгороде, Новосибирске, Сочи, Симферополе и Минске.
Если вы из другого города — мы оплатим вам дорогу и проживание в Москве 🙌
Что нужно уметь: мы ждём отличного знания базовых алгоритмов и уверенных навыков программирования на одном из языков.
Как проходит отбор: зависит от направления, но в большинстве случаев нужно будет выполнить тестовое задание, пройти два-три технических интервью, а затем выбрать команду.
Подавайте заявку до 31 мая: https://clck.ru/TgiBN
Если вы (или ваши друзья) давно хотели попробовать себя в роли разработчика, летняя стажировка — идеальный вариант.
Отлично проявившие себя стажеры получат шанс перейти в штат!
Направления: фронтенд- и бэкенд-разработка, машинное обучение, аналитика, мобильная разработка и другие — ознакомиться с ними можно здесь.
Особый формат стажировки — Deep Dive в Яндекс.Маркете.
Сколько длится: от трех до 6 месяцев.
Где: в Москве, Санкт-Петербурге, Екатеринбурге, Нижнем Новгороде, Новосибирске, Сочи, Симферополе и Минске.
Если вы из другого города — мы оплатим вам дорогу и проживание в Москве 🙌
Что нужно уметь: мы ждём отличного знания базовых алгоритмов и уверенных навыков программирования на одном из языков.
Как проходит отбор: зависит от направления, но в большинстве случаев нужно будет выполнить тестовое задание, пройти два-три технических интервью, а затем выбрать команду.
Подавайте заявку до 31 мая: https://clck.ru/TgiBN
Young&&Yandex ― старт карьеры в Яндексе
Экосистема стажировок и образовательных проектов — можно попробовать себя в IT, прокачать навыки и начать работать в Яндексе
Forwarded from Data Science by ODS.ai 🦜
SEER: The start of a more powerful, flexible, and accessible era for computer vision
#SEER stands for SElf-supERvised architecture which follows the vision of Yan LeCunn that real breakthrough in quality of models is possible only with #selfsupervised learning.
And here it is — model which was trained using some enormous amount of data achieves 84.2 percent top-1 accuracy on ImageNet.
Paramus: 1.3B
Dataset: 1B random images
Hardware: 512 GPUs (unspecified)
Blogpost: https://ai.facebook.com/blog/seer-the-start-of-a-more-powerful-flexible-and-accessible-era-for-computer-vision
ArXiV: https://arxiv.org/pdf/2103.01988.pdf
#facebook #fair #cv #dl
#SEER stands for SElf-supERvised architecture which follows the vision of Yan LeCunn that real breakthrough in quality of models is possible only with #selfsupervised learning.
And here it is — model which was trained using some enormous amount of data achieves 84.2 percent top-1 accuracy on ImageNet.
Paramus: 1.3B
Dataset: 1B random images
Hardware: 512 GPUs (unspecified)
Blogpost: https://ai.facebook.com/blog/seer-the-start-of-a-more-powerful-flexible-and-accessible-era-for-computer-vision
ArXiV: https://arxiv.org/pdf/2103.01988.pdf
#facebook #fair #cv #dl
Meta
SEER: The start of a more powerful, flexible, and accessible era for computer vision
The future of AI is in creating systems that can learn directly from whatever information they’re given — whether it’s text, images, or another type of data — without relying on carefully curated and labeled data sets to teach them how to recognize objects…
Приглашаем в эту субботу в 11 утра по мск на митап про AI, ML & Deep Learning. Расскажем про новый обучающий проект SailMapAI ⛴ Будем тренировать нейросети генерировать морские карты, используя GANs и минимум картинок. Будут эксперты, расскажем полезные техники и скинем материалы. Всех будем рады видеть!
Внимание, контент будет на английском 🏴
Hi everyone! I'd like to share a meetup with you, it's about AI, ML and Deep Learning. Thought you find it interesting.
The upcoming Saturday 10am CET we perform and introduce a SeaMapAI Project Meetup #1. The idea is to cycle GANs, utilize neural networks orchestration, evaluate images and eventually generate sea maps. Everyone is welcome to join, and thanks for your time!
https://www.eventbrite.co.uk/e/introducing-sailmapai-educational-neural-seamap-generator-project-tickets-149691925579?aff=telegram
Внимание, контент будет на английском 🏴
Hi everyone! I'd like to share a meetup with you, it's about AI, ML and Deep Learning. Thought you find it interesting.
The upcoming Saturday 10am CET we perform and introduce a SeaMapAI Project Meetup #1. The idea is to cycle GANs, utilize neural networks orchestration, evaluate images and eventually generate sea maps. Everyone is welcome to join, and thanks for your time!
https://www.eventbrite.co.uk/e/introducing-sailmapai-educational-neural-seamap-generator-project-tickets-149691925579?aff=telegram
Eventbrite
Introducing SailMapAI and GetConf - Neural Seamap Generator & Mobile Apps
Introducing SailMapAI - Educational Neural Seamap Generator Project
Forwarded from gonzo-обзоры ML статей
Perceiver: General Perception with Iterative Attention
Andrew Jaegle, Felix Gimeno, Andrew Brock, Andrew Zisserman, Oriol Vinyals, Joao Carreira
Статья: https://arxiv.org/abs/2103.03206
Код (неавторский): https://github.com/lucidrains/perceiver-pytorch
Работа, нацеленная на мультимодальность, чтобы одна универсальная архитектура на основе трансформера могла работать с данными разной природы.
Сейчас работа с различными модальностями часто основана на выборе подходящих задаче inductive biases, учитывающих знание о том, как соотносятся между собой элементы входа. Например, свёрточные сетки полагаются на локальность фич в изображениях и имеют подходящий для этого bias. С текстами хорошо работает трансформер. Ну и так далее. Смешивать разные модальности в одной модели в целом непросто.
Хочется заменить это на одну универсальную архитектуру, делающую по возможности меньше таких предположений о структуре входа. Ну то есть давайте заложим поменьше biases, сделаем универсальную архитектуру, и позволим ей выучить всё из данных. Если получится, не придётся затачиваться на отдельные модальности и можно будет использовать одну общую архитектуру для смешанных модальностей.
Собственно, Perceiver — это архитектура, основанная на трансформере и использующая асимметричный механизм внимания (кросс-внимание), могущий итеративно выхватывать из входа релевантные данные и агрегировать их внутри себя, и способный скейлиться на очень большие размеры входа (как раз чего не могут обычные трансформеры, хотя за последнее время появилось много эффективных их реализаций).
Как оно работает?
Основная идея подхода — завести маленький набор латентных переменных (latent array). Эти юниты будут через механизм внимания обращаться ко входу (потенциально большому) и таким образом окажутся боттлнеком, который должен отсеять важные части входа. И делать это perceiver может итеративно, потому что таких блоков в сети будет несколько. Каждый раз, соответственно, он может обращаться к разным частям входа, в зависимости от того, что он “узнал” на предыдущих шагах.
Авторы предлагают посмотреть на эту модель как на выполняющую кластеризацию входа end-to-end, где скрытые юниты являются центрами кластеров. Не знаю, мне сходу неочевидно, почему это так.
Поскольку временная/пространственная информация всё-таки важна, а модель на структуру входа напрямую не закладывается, авторы добавляют к каждому входному элементу позиционные энкодинги на основе Фурье (синусы и косинусы от логарифмического банка частот, а координата внутри измерения масштабируется в диапазон [-1,1]). Эмбеддинги не добавляются ко входу (как в оригинальном трансформере), а конкатенируются с ним.
Авторы считают, что эта история с позиционными эмбеддингами не дискредитирует их подход c уменьшением implicit biases. Типа, мы даём сети фичи, а как их использовать её дело, сама выучит и решит как лучше. К тому же их легче адаптировать к новым доменам, чем собирать новую архитектуру. Ну и вообще мультимодальные модели так легче собирать.
Внутри модели повторяются два основных блока: 1) кросс-внимание (cross-attention), где Q приходит из низкоразмерной латентной части, а K/V из входа (большого), и 2) обычное внимание (self-attention трансформера), трансформирующее эти latent’ы. Эти блоки могут повторяться много раз, и даже иметь расшаренные веса между этими повторениями. Тогда получается что-то типа развёрнутой по глубине RNN или универсального трансформера.
Стандартное внимание по-прежнему остаётся квадратичным, но оно здесь от низкоразмерного latent’а (<=1024), так что не так страшно. Можно заодно глубины добавить, чтобы модель посложнее была (на ImageNet сделали 48 таких блоков). У latent’ов есть обучаемые позиционные эмбеддинги. Сам этот latent array, так понимаю, выучивается, а не зависит от входа или какого-то рандома.
Andrew Jaegle, Felix Gimeno, Andrew Brock, Andrew Zisserman, Oriol Vinyals, Joao Carreira
Статья: https://arxiv.org/abs/2103.03206
Код (неавторский): https://github.com/lucidrains/perceiver-pytorch
Работа, нацеленная на мультимодальность, чтобы одна универсальная архитектура на основе трансформера могла работать с данными разной природы.
Сейчас работа с различными модальностями часто основана на выборе подходящих задаче inductive biases, учитывающих знание о том, как соотносятся между собой элементы входа. Например, свёрточные сетки полагаются на локальность фич в изображениях и имеют подходящий для этого bias. С текстами хорошо работает трансформер. Ну и так далее. Смешивать разные модальности в одной модели в целом непросто.
Хочется заменить это на одну универсальную архитектуру, делающую по возможности меньше таких предположений о структуре входа. Ну то есть давайте заложим поменьше biases, сделаем универсальную архитектуру, и позволим ей выучить всё из данных. Если получится, не придётся затачиваться на отдельные модальности и можно будет использовать одну общую архитектуру для смешанных модальностей.
Собственно, Perceiver — это архитектура, основанная на трансформере и использующая асимметричный механизм внимания (кросс-внимание), могущий итеративно выхватывать из входа релевантные данные и агрегировать их внутри себя, и способный скейлиться на очень большие размеры входа (как раз чего не могут обычные трансформеры, хотя за последнее время появилось много эффективных их реализаций).
Как оно работает?
Основная идея подхода — завести маленький набор латентных переменных (latent array). Эти юниты будут через механизм внимания обращаться ко входу (потенциально большому) и таким образом окажутся боттлнеком, который должен отсеять важные части входа. И делать это perceiver может итеративно, потому что таких блоков в сети будет несколько. Каждый раз, соответственно, он может обращаться к разным частям входа, в зависимости от того, что он “узнал” на предыдущих шагах.
Авторы предлагают посмотреть на эту модель как на выполняющую кластеризацию входа end-to-end, где скрытые юниты являются центрами кластеров. Не знаю, мне сходу неочевидно, почему это так.
Поскольку временная/пространственная информация всё-таки важна, а модель на структуру входа напрямую не закладывается, авторы добавляют к каждому входному элементу позиционные энкодинги на основе Фурье (синусы и косинусы от логарифмического банка частот, а координата внутри измерения масштабируется в диапазон [-1,1]). Эмбеддинги не добавляются ко входу (как в оригинальном трансформере), а конкатенируются с ним.
Авторы считают, что эта история с позиционными эмбеддингами не дискредитирует их подход c уменьшением implicit biases. Типа, мы даём сети фичи, а как их использовать её дело, сама выучит и решит как лучше. К тому же их легче адаптировать к новым доменам, чем собирать новую архитектуру. Ну и вообще мультимодальные модели так легче собирать.
Внутри модели повторяются два основных блока: 1) кросс-внимание (cross-attention), где Q приходит из низкоразмерной латентной части, а K/V из входа (большого), и 2) обычное внимание (self-attention трансформера), трансформирующее эти latent’ы. Эти блоки могут повторяться много раз, и даже иметь расшаренные веса между этими повторениями. Тогда получается что-то типа развёрнутой по глубине RNN или универсального трансформера.
Стандартное внимание по-прежнему остаётся квадратичным, но оно здесь от низкоразмерного latent’а (<=1024), так что не так страшно. Можно заодно глубины добавить, чтобы модель посложнее была (на ImageNet сделали 48 таких блоков). У latent’ов есть обучаемые позиционные эмбеддинги. Сам этот latent array, так понимаю, выучивается, а не зависит от входа или какого-то рандома.
GitHub
GitHub - lucidrains/perceiver-pytorch: Implementation of Perceiver, General Perception with Iterative Attention, in Pytorch
Implementation of Perceiver, General Perception with Iterative Attention, in Pytorch - lucidrains/perceiver-pytorch