Deep Dive 2 Deep Learning
387 subscribers
23 photos
4 videos
325 links
Канал про глубокое машинное обучение: кейсы, новости, открытия и факапы из мира нейросетей и не только
Download Telegram
Глубокое обучение и голография в медицинских исследованиях
Группа ученых из Калифорнийского университета Лос-Анджелеса разработала быстрый и экономичный датчик агглютинации частиц на базе голографической визуализации и глубокого обучения. Одноразовые капиллярные устройства позволяют анализировать реакцию агглютинации менее чем за 2 цента. Мобильный и недорогой голографический микроскоп снимает этот процесс, наблюдая за процессом кластеризации частиц в течение 3 минут. Созданный мини-фильм быстро обрабатывается обученными DL-нейросетями для автоматического измерения целевой концентрации аналита в образце. Это позволяет быстро и дешево определять антигены для выявления множества заболеваний.
https://phys.org/news/2021-08-deep-holography-point-of-care-sensor.html
☀️TensorFlow Lite – DL-платформа, не требовательная к аппаратным ресурсам
Эта open-source среда глубокого обучения адаптирована к небольшим вычислительным устройствам с малым размером. Она помогает разработчикам запускать свои ML-модели на совместимом оборудовании и устройствах IoT. Необходимо выбрать подходящую модель в зависимости от варианта использования. Платформа также позволяет переобучить существующую модель на настраиваемом наборе данных и является совместимой с TensorFlow. Настройка параметров оптимизации и квантования позволяет уменьшить размер модели и время ожидания. TensorFlow Lite поддерживает несколько платформ, включая мобильные телефоны Android и iOS , встроенный Linux и микроконтроллеры, позволяя разрабатывать ML-программы на Java, Swift, Objective-C, C ++ и Python. https://www.tensorflow.org/lite
💨Не только AlphaFold: альтернатива от ученых Вашингтонского университета
RoseTTAFold – нейросеть предсказания структуры белка, разработанная исследователями University of Washington. Как и AlphaFold2, она представляет собой сложную многослойную нейронную сеть, которая выводит предсказанные трехмерные структуры белка по заданной последовательности аминокислот. Поскольку компания Deep Mind, которой принадлежит авторство AlphaFold2, летом 2021 года открыла ее код на Github, разработчики RoseTTAFold тоже позволяют всем заглянуть под капот своей модели, разместив предпринт на Biorxiv https://www.biorxiv.org/content/10.1101/2021.06.14.448402v1
Интересно, что RoseTTAFold с AlphaFold с самого начала шли «ноздря в ноздрю», соревнуясь в производительности и качестве DL-моделей. https://www.wired.com/story/without-code-for-deepminds-protein-ai-this-lab-wrote-its-own/
Forwarded from Big Data Science [RU]
🚀Компания ATF Media (https://t.me/atflife ) решила сделать визионерский проект в помощь всем разработчикам продуктов на ИИ.

Запускается международный каталог продуктов, реализованных на искусственном интеллекте TopAI.me
Каталог будет рассылаться в более чем 25000 крупнейших компаний, правительствам стран, венчурным фондам.
В каталоге представлены решения из разных сфер разработки искусственного интеллекта.
Если вы являетесь разработчиками в сфере ИИ, наш каталог будет полезен вам для поиска инвесторов и интересных сотрудничеств.
Если вы являетесь инвестором и в поиске проектов, то наш каталог будет полезен вам для поиска новых инструментов для инвестирования и внедрения.

Отбор проектов по модерации.
P.S. Регистрация на TopAI занимает 20 секунд.
🚀Краткий ликбез по функциям активации DL-нейросетей
В нейросетях функция активации действует как (нелинейный) активатор нейрона на следующем сетевом уровне после учета смещения и весовых коэффициентов, позволяя DL-сети изучать многомерные сложные данные, а не просто выводить линейную комбинацию входов. Для глубоких нейросетей, например, сверточных (CNN), чаще всего применяются нелинейные функции активации: Sigmoid, ReLU и Softmax.
В частности, сигмоида используется для масштабирования выходного сигнала от 0 до 1 и отлично подходит для двоичной классификации с одним выходным блоком или даже с несколькими метками, когда каждое наблюдение может принадлежать более чем одному классу. А вот Softmax требует, чтобы входные данные принадлежали только одному классу. Обычно Softmax используется на конечном выходном слое. Ее главный недостаток – это высокие вычислительные затраты, а также проблемы с градиентами.
ReLU (Rectified Linear Unit) определяется как нулевое значение для отрицательного входа и равное входу для нулевого или положительного числа. Поскольку ReLU возвращает ноль для любого отрицательного входного сигнала, это может привести к остановке или зависанию активации ReLU в процессе обучения при обратном распространении сигнала. Из-за этого градиенты активации равны нулю, а нейроны с этой функцией активации не будут обновлять свои параметры (смещения и веса). ReLU обычно применяется в скрытых слоях нейросети. Утранить недостатки этой функции активации можно с помощью Leaky ReLU, которая допускает небольшое отрицательное число, пропорциональное входу, вместо нуля. Функции на основе ReLU считаются более надежными для глубоких сетевых уровней из-за стабильного обучения, однако склонны к неограниченному возрастанию, что выводит из строя узел нейросети.
Решить проблемы расходящихся градиентов и переобучения нейросети поможет простой, но мощный метод пакетной нормализации. Например, расширение ReLU6 ограничивает активацию этой функции выше заданного положительного порога. Однако, на практике оно используется нечасто. https://ai.plainenglish.io/my-notes-on-deep-learning-activation-functions-9d89cd326488
функции активации нейросетей
🤜🏻ТОП-5 достоинств TensorFlow
TensorFlow - это ML-платформа с открытым исходным кодом, созданная в 2015 году DL-исследователями Google. В этом фреймворке Python выступает в качестве интерфейсного API для создания приложений, транслируя их код C ++. В 2019 году вышел TensorFlow 2.0, который включает Keras API для обучения моделей. Основными преимуществами TensorFlow являются следующие:
• Многофункциональность: множество различных инструментов, библиотек и пользовательских ресурсов
• Переносимость: обучайте и развертывайте ML-модели независимо от языка и платформы
• Мощь: создавайте сложные топологии c Keras Functional API и API подклассов моделей
• Быстрая и интуитивно понятная отладка
• Несколько уровней абстракции для любых пользовательских потребностей
Наконец, TensorFlow имеет большое и активное сообщество ML-профессионалов, которое способствует развитию и популяризации этого фреймворка.
😎Что такое TensorFlow.js?
TensorFlow.js (TFJS) - это ML-библиотека с открытым исходным кодом, которую можно запускать с JavaScript. TFJS поддерживает WebGL – интерфейс браузера для OpenGL, который представляет собой API для рендеринга 2D и 3D векторной графики. TensorFlow.js обеспечивает возможности TensorFlow для экосистемы JavaScript, позволяя выполнять JS-код на графическом процессоре. Так можно создавать глубокие нейросети, которые легко интегрировать в веб-приложения, используя API Keras.
Запустить TensorFlow.js можно на следующих платформах:
• На стороне клиента в веб-браузере с использованием JavaScript
• На стороне сервера и с инструментами IoT с использованием Node.js
• Настольные и веб-приложения с использованием Electron
• Нативные мобильные приложения с использованием React Native
• Модели TensorFlow.js
TensorFlow.js предоставляет предварительно обученные готовые ML-модели, которые можно использовать в реальных проектах:
• Классификация изображений
• Обнаружение объекта
• Сегментация тела
• Распознавание речевых команд
• Простое распознавание лиц
• Трансферное обучение
👁Сверточные нейросети (CNN): краткий ликбез
CNN активно используются в задачах компьютерного зрения и распознавания образов: детекция объекта, классификация, реконструкция и пр.
Сверточная нейронная сеть (ConvNet) использует математическую операцию свертки, чтобы объединить два набора данных. В случае CNN свертка применяется к входным данным для фильтрации информации и создания карты признаков. При этом часто применяются следующие методы:
• Padding расширяет входную матрицу, добавляя поддельные пиксели к ее границам, т.к. свертка уменьшает размер матрицы.
• Striding – шаг, позволяющий пропускать некоторые области, например, каждые 2 или 3 пикселя, чтобы снизить размер пространства и сделать нейросеть более эффективной с точки зрения вычислений.

Архитектура ConvNet включает три уровня:
• Сверточный слой отвечает за распознавание элементов в пикселях
• Слой объединения отвечает за то, чтобы сделать эти функции более абстрактными
• Полносвязный слой отвечает за использование приобретенных функций для прогнозирования.

Достоинства CNN:
• Высокая адаптивность к новым задачам – CNN не требуют ручного feature-инжиниринга: даже при работе над совершенно новой задачей можно использовать предварительно обученную нейросеть и, передавая ей данные, корректировать веса;
• вычислительная эффективность благодаря процедуре свертки. CNN применяет совместное использование параметров и уменьшение размерности, упрощая и ускоряя развертывание моделей. Эти нейросети можно оптимизировать для работы на любом устройстве, даже на смартфонах.
• высокая точность в задачах, связанных с распознаванием изображений и видео и пр. по сравнению с другими нейросетями.

Однако, ConvNet не идеальна и имеет следующие недостатки:
• подверженность состязательным атакам, когда подача «плохих» примеров вызывает ошибки классификации. Даже небольшой сдвиг в пикселях может свести CNN с ума, изменив смысл дорожного знака или обманув систему распознавания лиц.
• Необходим огромный объем обучающих данных, которые нужно собрать и предварительно обработать.
Поэтому при всем современном техническом прогрессе сегодня существует всего несколько хороших предварительно обученных моделей: GoogleNet, VGG, Inception, AlexNet, большинство из которых принадлежит глобальным корпорациям с огромной ИИ-экспертизой.

https://ai.plainenglish.io/introduction-to-convolutional-neural-networks-cnns-2ab209f4fa16
🤦🏼‍♀️Переобучение в DL и как с ним бороться: 2 простых метода
В статистике переобучение - это ошибка моделирования, которая возникает, когда функция слишком тесно связана с ограниченным набором точек данных и не может соответствовать дополнительным данным или прогнозировать будущие наблюдения. Это случается, если модель слишком сложна или чрезмерно долго обучается на одних данных: она начинает соответствовать шуму и в итоге не может предсказать общую тенденцию, запоминает обучающие примеры вместо того, чтобы делать обобщения. Бороться с этим помогают следующие методы:
Исключение слоев из нейросети. В процессе обучения DL-сеть может зависеть от некоторых весов в скрытых слоях и игнорировать остальные. В результате сеть будет идеально соответствовать обучающим данным, но выйдет из строя на реальных. Исключение некоторых слоев гарантирует, что результаты обучения распределены по всем нейронам и не слишком сильно зависят от отдельной единицы. Веса отсева определяются случайным образом, чтобы не дать ни одному нейрону преимущества. В результате сеть намного лучше справляется с обобщением данных.
Пакетная нормализация – метод, направленный на предотвращение проблемы расхождения градиентов также помогает решить проблему переобучения. Веса DL-сети могут стать слишком большими, что приведет к экстремальным значениям градиентов, заставив функцию потерь возвращать бесконечные или неопределенные значения. Нормализация масштабирует данные в диапазоне от -1 до +1 или от 0 до +1. Например, для обработки изображений входные каналы обычно масштабируют в диапазоне от -1 до +1 вместо диапазона от 0 до 255. Это приводит к нормализации входного слоя. Но как скрытые слои не нормализуются и из-за случайной инициализации весов процесс обучения сети может вызвать экспоненциальный рост некоторых из них. Если разместить слои пакетной нормализации после других слоев, можно обеспечить плавное обучение. Внутри слоя пакетной нормализации есть два параметра: среднее значение и стандартное отклонение каналов пакетного ввода. Нормализация представляет собой вычитание среднего значения и деления на стандартное отклонение, обеспечивая удержание вывода из предыдущего слоя в рамках нужного диапазона. Важно, что среднее значение и стандартное отклонение не являются обучаемыми параметрами, поскольку они вычисляются во время прямого, а не обратного распространения.
https://ai.plainenglish.io/2-deep-learning-methods-against-overfitting-532710059c5d
😎Что такое конвейер Hugging Face Transformers и какие NLP-задачи он решает
Hugging Face - компания, занимающаяся разработкой NLP-технологий и демократизацией ИИ. Конвейеры ML-трансформеров от Hugging Face представляют собой объекты, которые абстрагируют большую часть сложного кода от библиотеки, предлагая простой API для конкретных MLP-задач:
• Анализ настроений – определение тональности текста с вероятностной оценкой положительных и отрицательных маркеров
• Ответы на вопросы на основе контекстной информации, предоставленной ML-модели
• Генерация текста
• Обобщение текста – формирование краткого описания из большого фрагмента
• Машинный перевод с одного языка на другой
https://huggingface.co/transformers/main_classes/pipelines.html
🏂Почему все GAN-сети работают одинаково, и зачем настраивать гиперпараметры
Генеративные состязательные сети, представляют собой структуру, способную изучать распределение на основе конкуренции между генератором и дискриминатором. Генератор учится генерировать образцы, неотличимые от реальных данных, а дискриминатор учится классифицировать, является ли данное изображение реальным или поддельным. Сегодня GAN-сети считаются мощным инструментом и активно используются в задачах генерации и реконструкции текстов, изображений и пр. При том, что есть множество разных архитектур и видов GAN-сетей, при достаточном гиперпараметрическом поиске почти все алгоритмы имеют случайные ранги, и даже самые последние работы работают аналогично оригинальной GAN, впервые предложенной Яном Гудфеллоу. Бенчмаркинговое сравнение различных GAN-сетей показало, что алгоритмические различия не так актуальны, а вот поиск по гиперпараметрам имеет большее влияние на результат. Однако, оптимальные гиперпараметры во многом зависят от набора данных и настройка гиперпараметров – одна из самых интересных и тонких задач ML-специалиста.
https://medium.com/codex/do-all-gans-perform-the-same-cc02055091af
сравнение GAN-сетей
🔥Практический Reinforcement learning с TF-агентами и сервисами Vertex AI
Обучение с подкреплением (RL, Reinforcement learning) - это форма машинного обучения, при которой агент предпринимает действия в среде, чтобы увеличить заданную цель (вознаграждение) за эту последовательность шагов. RL может примениться в робототехнике, автономных транспортных средствах и пр. Фундаментальная RL-система включает в себя множество состояний, соответствующих действий и вознаграждений за эти действия. Например, в рекомендательной системе фильмов онлайн-кинотеатра «состояние» - это пользователь, «действие» - это фильм, который нужно ему порекомендовать, а «награда» - это рейтинг фильма – выставленная пользователем оценка. В частности, RL как платформа для оптимизации ML-моделей применяется музыкальным сервисом Spotify.
В обучении с подкреплением агент выполняет последовательность действий в данной среде в соответствии с некоторой политикой с целью максимизировать данное вознаграждение за эту последовательность действий. TF-Agents - это мощная и гибкая библиотека, позволяющая легко разрабатывать, внедрять и тестировать RL-приложения. Он предоставляет вам полный набор логических модулей, которые поддерживают легкую настройку следующих ключевых понятий RL:
• Политика - отображение наблюдения за окружающей средой на действие или распределение действий. Это артефакт, полученный в результате обучения, и эквивалент «модели» в системе контролируемого обучения.
• Действие – действие или поведение, которое выводится какой-либо политикой, выбирается и выполняется агентом.
• Агент – объект, который инкапсулирует алгоритм использования одной или нескольких политик для выбора и выполнения действий и обучает политику.
• Наблюдения - характеристика состояния окружающей среды.
• Окружающая среда - определение проблемы RL, которую необходимо решить. На каждом временном шаге среда генерирует наблюдение, несет эффект действия агента, а затем, учитывая предпринятые действия и наблюдение, среда отвечает вознаграждением в качестве обратной связи.
Типичный процесс создания, оценки и развертывания RL-приложений выглядит следующим образом:
• Обозначьте проблему: например, классификация цифр: наблюдения - это изображения цифр, действия - прогнозы от 0 до 9, а награды указывают, соответствуют ли прогнозы цифрам истинности.
• Разработка и реализация экспериментов с моделированием RL.
• Оцените эффективность автономных экспериментов.
• Запустите непрерывный ML-конвейер, заменив составляющие моделирования реальными взаимодействиями.
Смотрите пошаговую демонстрацию, как создать систему рекомендаций с использованием TF-агентов и сервисов Vertex AI, включая настройки гиперпараметров, прогнозирования и развертывания конечных точек.
https://cloud.google.com/blog/topics/developers-practitioners/build-reinforcement-learning-recommendation-application-using-vertex-ai
🤜🏻PyTorch vs TensorFlow: 5 главных отличий
PyTorch - это open-source библиотека Python для глубокого обучения, которая активно используется в задачах компьютерного зрения и обработке естественного языка с 2016 года, когда этот фреймворк был разработан исследовательской ИИ-лабораторией Facebook. Она поддерживает ООП и графы динамических вычислений, а также отлично подходит для сложных математических вычислений из-за ускорения на графическом процессоре. Такое сочетание уникальных функций и простоты делает PyTorch одной из самых популярных DL-библиотек, которая соперничает с TensorFlow.
Основное различие между PyTorch и TensorFlow - это удачный компромисс между простотой и производительностью: PyTorch легче изучать (особенно для Python-программистов). TensorFlow сложнее в изучении, но работает лучше в production и используется более широко.
Сравним оба фреймворка по наиболее важным критериям:
Популярность - TensorFlow более востребован, будучи выпущен на год раньше, чем PyTorch. Но количество пользователей PyTorch растут быстрее, чем TensorFlow, что позволяет предположить, что PyTorch вскоре может стать самым популярным.
Параллелизм – PyTorch включает декларативный параллелизм, автоматически распределяя рабочую нагрузку обработки данных между различными графическими процессорами для повышения производительности. Параллелизм в TensorFlow требует ручного распределения заданий, что отнимает много времени и менее эффективно.
Динамические и статические графики - PyTorch по умолчанию имеет динамические графики, которые немедленно реагируют на новые данные. TensorFlow имеет ограниченную поддержку динамических графиков, но в основном использует статические графики.
Интеграции – PyTorch хорошо использовать для проектов на AWS благодаря подключению через TorchServe. TensorFlow хорошо интегрирован с Google Cloud и подходит для мобильных приложений через Swift API.
Визуализация – TensorFlow имеет более надежные инструменты визуализации и предлагает более точный контроль над настройками графиков. В PyTorch инструмент визуализации Visdom и другие стандартные библиотеки построения графиков, например, matplotlib, имеют не такой широкий набор функций, но их легче освоить.
🗣Почему трансформеры так востребованы в NLP
Сегодня трансформеры считаются наиболее распространенной архитектурой нейросетей для задач обработки естественного языка (NLP), что подтверждается успехами различных модификаций BERT и GPT. В этих методах используются нейронные сети с большим количеством параметров, чем в большинстве глубоких сверточных и рекуррентных моделей. Несмотря на больший размер, их популярность резко возросла, т.к. они эффективно масштабируются на архитектуре параллельных вычислений, позволяя разрабатывать более крупные и сложные модели.
До появления трансформеров большинство NLP-моделей основывались на рекуррентных и сверточных компонентах. А задачи моделирования и преобразования последовательностей, такие как машинный перевод, были основаны на архитектуре кодировщика-декодера с механизмом внимания, чтобы определить, какие части входных данных влияют на каждую часть результатов. Кодировщик преобразовывал входной текст в некоторое промежуточное числовое векторное представление (вектор контекста), а декодер переводил этот вектор в выходной текст. Механизм внимания повышал производительность этих моделей, моделируя зависимости между частями вывода и различными частями ввода. Как правило, внимание было связано с повторяющимися компонентами. Такие компоненты по своей сути являются последовательными - внутреннее скрытое состояние в любой заданной позиции t зависит от скрытого состояния в предыдущей позиции t-1. Поэтому распараллеливание обработки длинной входной последовательности было невозможно и на практике быстро сталкивалось с ограничениями памяти графического процессора.
Трансформеры позволяют полностью заменить повторяющиеся и сверточные компоненты, заменяя их механизмом внимания, применяемого как ко входу, так и к выходу. Это позволяет изучать зависимости между всеми частями входных и выходных последовательностей с возможностью распараллеливания вычислений.
🚀WIDeText - мультимодальная среда глубокого обучения от Airbnb для разработки систем классификации
Airbnb активно использует Deep Learning для множества бизнес-задач: ранжирование в поиске, обнаружение мошенничества, прогнозирование проблем в службе поддержки клиентов, понимание контента, а также классификация типов комнат на основе изображений.
WIDeText – это мультимодальная DL-структура на основе PyTorch, которая объединяет 3 канала входных данных: Wide, Image, Deep и Text, чтобы повысить возможности окончательного классификатора. DL-модели можно строить из готовых блоков, подключая и отключая каналы, и настраивая архитектуру в соответствии с целью. WIDeText поддерживает широкий список входных каналов:
• Канал изображения на основе VGG
• Текстовый канал на основе CNN
• Плотный канал на основе GBDT
• Wide-канал
• Классификатор на основе MLP
Благодаря поддержке JSON для настройки моделей, каждый канал в структуре является подключаемым и настраиваемым с точки зрения архитектуры, а также гиперпараметров для классификаторов. Примечательно, что фреймворк WIDeText помог Airbnb ускорить процесс разработки и развертывания модели с нескольких недель до нескольких дней. Эта структура сквозного обучения и развертывания позволяет разработчикам моделей использовать как можно больше необработанных фичей, упрощая отладку ML-модели.
https://medium.com/airbnb-engineering/widetext-a-multimodal-deep-learning-framework-31ce2565880c
💥7 советов ML-инженеров от Google
Продвигая свою облачную ML-платформу, Vertex AI, сотрудники Google разбирают частые причины сбоев при обучении ML-моделей и дают рекомендации по их устранению.
1. Используйте правильный программный пакет для архитектуры. Например, TensorFlow поддерживает архитектуры CPU, GPU и TPU. CPU-архитектуры отлично подходят для обучения с табличными данными, а GPU – для нейросетей в задачах компьютерного зрения и обработке естественного языка.
2. Выбирайте верную стратегию распределения обучения. К примеру, обучение на большом датасете и всего одном процессоре займет много времени, ускорить которое поможет распределение по нескольким вычислительным модулям. В частности, стратегии TensorFlow могут распределять данные между несколькими графическими процессорами, компьютерами или TPU без особых изменений в коде. Выбор стратегии зависит от варианта использования, данных, модели и API.
3. Дайте необходимые разрешения. Например, во время обучения Vertex AI считывает данные из облачных хранилищ, где также могут храниться настраиваемые зависимости и результаты обучения.
4. Позаботьтесь о безопасности. VPC Service Controls поможет снизить риск утечки или кражи данных при обучении Vertex AI. При запуске ML-задания внутри периметра службы, VPC Service Controls гарантирует, что данные пользователя не покинут периметр.
5. Помните про ограничения на размер пакета – гиперпараметр, который определяет количество выборок данных для вычисления каждого обновления обучаемых параметров модели (весов и смещений). Размер пакета имеет решающее влияние на время обучения и результирующую точность обученной модели. Чем больше пакет, тем больше образцов проходит через модель при прямом распространении. Рост размера пакета требует больше памяти графического процессора, поэтому ее нехватка помешает увеличить batch size.
6. Избегайте NaN-ошибок. Градиентный спуск - один из наиболее часто используемых алгоритмов машинного обучения, с помощью которого генерируются градиенты ошибок для обновления параметров ML-модели (весов сети). Поэтому даже один пропуск (NaN) в любой части вычислений может быстро распространиться на всю модель. Накопление больших градиентов ошибок чревато нестабильностью обучения, переполняя значения весов. Наивная реализация некоторых функций потерь приведет к переполнению даже при низких значениях. Избежать этого поможет оптимизатор, не слишком чувствительный к величине градиента. Также стоит убедиться, что функция потерь не возвращает NaN и искусственно ограничивать максимальные значения градиентов.
7. Продумайте работу с вычислительными мощностями. Эластичные рабочие нагрузки подлежат перераспределению ресурсов. Здесь поможет резервирование - это предложение по увеличению емкости, которое защищает существующие ресурсы и дает уверенность в получении емкости для критически важных рабочих нагрузок. Если сложно спрогнозировать потребности в мощности на уровне проекта и определить точное количество резервирований для каждого проекта, в Google Cloud Platform есть общее резервирование. Это позволяет использовать отдельные резервирования вычислительных мощностей для нескольких проектов в одной организации, упрощая планирование ресурсов и сокращая расходы.
https://cloud.google.com/blog/products/ai-machine-learning/7-tips-for-trouble-free-ml-model-training
🏂Быстрый guide по PyTorch для начинающих
PyTorch - это open-source библиотека Python для глубокого обучения, которая активно используется в задачах компьютерного зрения и обработке естественного языка. Она поддерживает ООП и графы динамических вычислений, а также отлично подходит для сложных математических вычислений из-за ускорения на графическом процессоре. Во многом это возможно благодаря тензорам – многомерным массивам, используемые в качестве основы для всех сложных операций. Они похожи на n-мерный массив NumPy и могут быть легко преобразованы в массив NumPy.
На тензорных вычислениях базируются и нейросети в PyTorch: пакет torch.nn содержит набор модулей для представления каждого уровня сети. Каждый модуль получает входные тензоры и вычисляет выходные тензоры, которые вместе создают нейросеть. Пакет torch.nn также определяет функции потерь для обучения нейросетей.
А для расчета производных (градиентов) сигналов нейросети в PyTorch есть пакет Autograd. Во время прямого прохода autograd записывает все тензорные операции с поддержкой градиента и создает ациклический граф, чтобы найти связь между тензором и всеми операциями. Этот набор операций называется автоматическим дифференцированием. Листья этого графа являются входными тензорами, а корни - выходными тензорами. Autograd вычисляет градиент, отслеживая граф от корня до листа и по цепочке умножая каждый градиент.
Оптимизаторы позволяют обновлять веса и смещения в модели, чтобы уменьшить ошибку и редактировать работу модели без необходимости переделывать ее целиком. Все оптимизаторы PyTorch содержатся в пакете torch.optim, и каждый из них предназначен для конкретной ситуации. Модуль torch.optim позволяет построить абстрактную схему оптимизации, просто передав список параметров.
Попрактиковаться с тензорами в PyTorch можно и на примере вычислительных графов, который являются упрощенной версией нейронных сетей с последовательностью операций преобразования входных сигналов в выходные.
https://www.educative.io/blog/pytorch-tutorial
Forwarded from Big Data Science
🚀Data Science в городе: продолжаем серию митапов Ситимобила про Data Science в геосервисах, логистике, приложениях Smart City и т.д. Приглашаем на 2-ю онлайн-встречу 23 сентября в 18:00 МСК. Вас ждут интересные доклады DS-практиков из Ситимобила, Optimate AI и Яндекс.Маршрутизации:
🚕Максим Шаланкин (Data Scientist в гео-сервисе Ситимобил) расскажет о жизненном цикле ML-модели прогнозирования времени в пути с учетом большой нагрузки
🚚Сергей Свиридов (CTO из Optimate AI) объяснит, что не так с классическими эвристиками и методами комбинаторной оптимизации для построения оптимальных маршрутов, и как их можно заменить динамическим программированием
🚛Даниил Тарарухин (Руководитель группы аналитики в Яндекс.Маршрутизации) поделится, как автомобильные пробки влияют на поиск оптимального маршрута и имитационное моделирование этой задачи.
После докладов спикеры ответят на вопросы слушателей.
Ведущий мероприятия – Алексей Чернобровов🛸
Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1773649/
🚀Быстрее и точнее: 2 DL-нейросети от Google AI
По мере роста популярности DL-нейросетей и объема обучающих данных эффективность обучения становится все более важным вопросом. Например, GPT-3 показывает отличные результаты, но для этого требуются недели обучения с тысячами графических процессоров. Поэтому исследователи Google AI разработали два новых семейства DL-моделей для распознавания изображений, которые используют поиск по нейронной архитектуре, и принципиальную методологию проектирования, основанную на емкости модели и обобщении^
EfficientNetV2 - сверточные нейросети c быстрой скоростью обучения для относительно небольших наборов данных типа ImageNet1k (с 1,28 миллиона изображений).
CoAtNet - гибридные модели, сочетающие свертку и самовнимание, чтобы повысить точность для крупномасштабных наборов данных, таких как ImageNet21 (с 13 миллионами изображений) и JFT (с миллиардами изображений).
Тестирование показало, что эти DL-модели модели работают в 4-10 раз быстрее, обеспечивая точность 90,88% наивысшего качества на датасете ImageNet.
Полное описание: https://ai.googleblog.com/2021/09/toward-fast-and-accurate-neural.html
Код на Github: https://github.com/google/automl