Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Компьютерное зрение: обучение Dense Neural Network

Время на прочтение8 мин
Количество просмотров4.3K

До сих пор мы работали со слоем Dense для классификации изображений. Но на практике перед использованием плотного слоя мы используем пару специальных слоев — слой свертки и слой максимального объединения. Обычно перед использованием плотных слоев можно увидеть множество пар слоев свертки и слоев с максимальным объединением.

Когда за многими парами этих слоев следует плоский слой, а затем несколько плотных слоев, это обычно называют сверточной нейронной сетью (CNN). Сверточные нейронные сети — это своего рода нейронная сеть с прямой связью, искусственные нейроны которой могут реагировать на часть окружающих ячеек в диапазоне покрытия, чего плотный слой не может достичь сам по себе.

Читать далее
Всего голосов 11: ↑7 и ↓4+4
Комментарии0

Обучите YOLOv8 на пользовательском наборе данных

Время на прочтение10 мин
Количество просмотров40K

Ultralytics недавно выпустила семейство моделей обнаружения объектов YOLOv8. Эти модели превосходят предыдущие версии моделей YOLO как по скорости, так и по точности в наборе данных COCO. Но как насчет производительности на пользовательских наборах данных? Чтобы ответить на этот вопрос, мы будем обучать модели YOLOv8 на пользовательском наборе данных. В частности, мы будем обучать его на крупномасштабном наборе данных для обнаружения выбоин.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии12

Теория вероятностей в машинном обучении. Часть 1: модель регрессии

Время на прочтение28 мин
Количество просмотров22K

В данной статье мы подробно рассмотрим вероятностную постановку задачи машинного обучения: что такое распределение данных, дискриминативная модель, i.i.d.-гипотеза и метод максимизации правдоподобия, что такое регрессия Пуассона и регрессия с оценкой уверенности, и как нормальное распределение связано с минимизацией среднеквадратичного отклонения.

В следующей части рассмотрим метод максимизации правдоподобия в классификации: в чем роль кроссэнтропии, функций сигмоиды и softmax и как кроссэнтропия связана с "расстоянием" между распределениями вероятностей и почему модель регрессии тоже обучается через минимизацию кроссэнтропии. Затем перейдем от метода максимизации правдоподобия к байесовскому выводу и его различным приближениям.

Данная серия статей не является введением в машинное обучение и предполагает знакомство читателя с основными понятиями. Задача статей - рассмотреть машинное обучение с точки зрения теории вероятностей, что позволит по новому взглянуть на проблему, понять связь машинного обучения со статистикой и лучше понимать формулы из научных статей. Также на описанном материале строятся более сложные темы, такие как вариационные автокодировщики (Kingma and Welling, 2013), нейробайесовские методы (Müller et al., 2021) и даже некоторые теории сознания (Friston et al., 2022).

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии0

Как настроить Jenkins в режиме высокой доступности

Время на прочтение6 мин
Количество просмотров2.5K

Когда говорим о высокой доступности (HA), мы имеем в виду системы, которые могут работать непрерывно без сбоев в течение длительного времени. Jenkins — один из ключевых компонентов DevOps, а потому критически важно, чтобы он оставался высокодоступным.

В статье разберём два способа настройки Jenkins в режиме высокой доступности.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

Создаем HTPC с поддержкой HDR Tone Mapping, 4K Upscaling и масштабированием на базе MadVR и Kodi

Время на прочтение30 мин
Количество просмотров32K

Большинство кинолюбителей, строящих сегодня домашний кинотеатр, останавливают свой выбор на Apple TV или устройствах на базе Android TV, например Nvidia Shield. Многие пробуют использовать более продвинутые варианты, вроде Dune или Zappiti. Это прекрасные устройства, которые дают отличную картинку из коробки с поддержкой всех современных стандартов (4K, HDR, Dolby Vision и тд). Но можно ли получить картинку еще лучше? Безусловно! Для этого существуют специальные устройства - видеопроцессоры, которые позволяют обрабатывать видео с источника и выводить его в максимально возможном качестве и параметрах. Как правило такие системы умеют масштабировать контент в любой формат, будь это широкоформатный экран CimemaScope (2.35:1) или классический 16:1, убирать черные полосы с фильмов, делать качественный апскейлинг FullHD контента до Ultra HD, повышать резкость и качество изображения, умеют делать HDR Tone Mapping и многое другое. В сегодняшней статье речь пойдет о создании такого видеопроцессора с возможностями медиацентра на базе Kodi и использованием высококачественного видеорендера MadVR.

Сделать красиво
Всего голосов 24: ↑24 и ↓0+24
Комментарии15

Возим «ложкой» по ковшу жидкого чугуна и снимаем «шлакопенку»

Время на прочтение6 мин
Количество просмотров16K


Представьте себе огромный ковш с жидким чугуном. В нём есть две примеси, которые мешают ему стать качественной сталью: фосфор и сера. Фосфор удаляют в конвертере на первом этапе выплавки стали, а вот серу нужно как-то убрать заранее. Для этого в расплав вдуваются реагенты вроде оксида магния, которые в ковше реагируют с серой, и продукты реакции всплывают наверх в виде шлаков типа пенки на молоке.

Ковш при этом накрыт крышкой-платформой, температуры там не самые приятные для электроники. У нас есть максимум 10 минут на то, чтобы снять этот шлак с помощью скиммера (такого огромного железного скребка), затем выдвижная стрела сильно перегревается. Задача — убрать почти всю серу из расплава.

Раньше задача решалась на глаз: специалисты цеха делали несколько движений скиммером по ковшу, ориентировались на количество оставшегося шлака в поле зрения и решали, что всё, вроде его осталось мало. Но «вроде» никого не устраивало.

А лишние движения скиммером — это лишние несколько тонн потерянного чугуна. Если же сделать движений меньше, чем надо для 95 % удаления, то дальше мы не попадём в физико-химические свойства сортамента стали. К тому же время, уходившее на снятие шлака, разнилось от плавки к плавке: где-то оператор справлялся за четыре минуты, а где-то — за все восемь с половиной. А каждая выигранная минута повышает производительность конвертера.

В итоге мы придумали, что можно поставить камеру около заливочного носка ковша (который обычный человек называет носиком), чтобы видеть количество оставшегося шлака на зеркале и точно определить процент его удаления, который даже через десятилетия опыта на глаз определяется сложно.

Уже полгода система в опытной эксплуатации, и, похоже, можно праздновать победу.
Читать дальше →
Всего голосов 101: ↑101 и ↓0+101
Комментарии39

Как писать преобразователи данных в Sklearn

Время на прочтение7 мин
Количество просмотров8.5K

Сегодня разбираемся, как создавать собственные преобразователи Sklearn, позволяющие интегрировать практически любую функцию или преобразование данных в классы конвейера Sklearn. Подробности под катом к старту флагманского курса по Data Science.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Обзор Spring-компонентов. Часть 1 – Spring Boot и фреймворк интеграции

Время на прочтение18 мин
Количество просмотров42K

В обзоре собраны краткие описания каждого компонента экосистемы, чтобы дать понимание – как выглядит мир Spring, и ориентиры – что из этого стоит изучить глубже и применять в проекте.

Читать далее
Всего голосов 14: ↑13 и ↓1+16
Комментарии1

Как мы подходим к поддержке ML-моделей в синтезе речи

Время на прочтение10 мин
Количество просмотров2.6K

Всем привет! Меня зовут Александра Сорока, я занимаюсь синтезом речи в Тинькофф. А это — мой текст о том, зачем вообще думать о долгосрочной поддержке кода и ML-моделей. Я расскажу, почему мы отказались от опенсорсных решений, как работаем с датасетами и разными версиями моделей и как замеряем их качество. Статья может оказаться полезной для всех, кто хочет знать, как ничего не поломать.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии2

Flash attention is all you need

Время на прочтение5 мин
Количество просмотров7.6K

Всем привет. 

Характерной тенденцией последних нескольких лет в глубоком обучении является проникновение трансформера в различные сферы деятельности, где только можно и нельзя (но если очень хочется, то можно) применить нейронные сети. Универсальность архитектуры позволяет работать с самыми разнообразными данными, предварительно превращая их в последовательность токенов, будь то текст, картинки, аудио, видео или даже состояние среды.

Но за невероятную мощь и гибкость архитектуры приходится платить значительной вычислительной сложностью и расходом памяти, ибо сие многоголовое чудище ненасытно в отношении памяти, особенно для длинных последовательностей, что ограничивает применимость моделей на практике. Да и даже при наличии серьезных вычислительных ресурсов  обучение моделей на серьезных задачах - дело отнюдь не быстрое. 

В недалеком прошлом вышла целая плеяда работ посвященных удешевлению дорогой операции внимания посредством построения различных приближений, сводящих квадратичную по длине последовательности вычислительную сложность и расход памяти к субквадратичной за счет приближения матрицами более низкого ранга, хэшированием, разреженного внимания, локального внимания, комбинированного и вагон и маленькая тележка других идей. Многие подходы показали себя довольно неплохо, давая небольшую потерю в качестве относительно исходного vanilla attention, но все-таки внимание в его первозданном виде было и остается наиболее распространенным. 

И на днях вышла работа Flash Attention, где был предложен способ существенно ускорить вычисление attention на GPU, причем никак не меняя конечный результат. То есть делается то же самое, что и раньше, но по-другому.

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии1

GPT-4 уже не за горами. Что мы о нём знаем

Время на прочтение7 мин
Количество просмотров18K

Возможно, вы помните, что о появлении GPT-3 объявили в мае 2020 года. Его запустили через год после GPT-2, который также появился спустя год после первой версии GPT. Если бы эта тенденция сохранялась, то GPT-4 уже был бы доступен. Увы, четвёртой версии мы пока не дождались. Но генеральный директор OpenAI Сэм Альтман недавно заявил, что GPT-4 на подходе. Некоторые эксперты полагают, что релиз состоится где-то в июле-августе 2022 года.

Удивительно то, что информации о GPT-4 очень мало. На что он будет похож, какие у этой модели особенности и возможности. Точно известно, что у GPT-4 не будет 100 триллионов параметров (т.е. в 500 раз больше, чем заложено в GPT-3). Для создания такой большой модели нужно больше времени.

Давайте попробуем разобраться, что ещё известно о четвёртом поколении алгоритма обработки естественного языка от OpenAI.

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии5

Как я готовился к собеседованию на позицию Senior ML Engineer

Время на прочтение11 мин
Количество просмотров13K

Привет, меня зовут Глеб Зарин, я ML-разработчик. Сегодня я расскажу, как я подготовился к собеседованиям на позицию Senior Machine Learning Engineer и получил работу мечты за рубежом.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Большое сравнение 400 нейронных сетей для задачи классификации на более 8000 классов

Время на прочтение7 мин
Количество просмотров10K

Думаю, вы знакомы с графиками сравнения точности архитектур. Их применяют в задачах по классификации изображений на ImageNet. 

В каждом сравнении которые я мог встретить ранее в Интернете, как правило это было сравнение небольшого количества архитектур нейросетей, произведенными разными командами, и возможно в разных условиях.

Кроме того в последнее время я наблюдаю изменения: появилось большое количество архитектур. Однако их сравнений с ранее созданными архитектурами я не встречал, либо оно было не столь масштабным.

Мне захотелось столкнуть большое количество существующих архитектур для решения одной задачи, при это объективно посмотреть как поведут себя новые архитектуры типа Трансформер, так и ранее созданные архитектуры.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии17

Для чего нужно интервью по проектированию системы машинного обучения и как его провести

Время на прочтение5 мин
Количество просмотров3.1K

Предлагаем детальный гайд по подготовке к интервью по проектированию системы ML

Что означает дизайн системы ML?

Такие навыки как машинное обучение, презентации, кодирование, статистика, вероятность, тематические исследования и прочие необходимы для успешного проведения интервью по машинному обучению. И одном из главных интервью по ML является интервью по проектированию системы.

Оно необходимо для оценки кандидата на его понимание общей картины разработки полной системы ML с учетом всех деталей. В основном кандидаты ML хорошо разбираются в технических тонкостях, но когда дело доходит до их компиляции, они не могут увидеть сложности и взаимозависимости проектирования всей системы от сбора данных до оценки и развёртывания модели и поэтому плохо справляются с интервью.

Важно в таком интервью – структурированный мыслительный процесс. Однако он требует подготовки. Заранее подготовленный гайд может очень пригодиться при ограниченном времени интервью. Гарантируем, что вы сконцентрируетесь на важном, не будете долго обсуждать одно или упускать важные темы.

Итак, гайд выглядит так:

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

NNHelper – пакет на языке Go для создания и использования нейронной сети

Время на прочтение4 мин
Количество просмотров6.2K

Данная статья описывает работу пакета nnhelper, предназначенного для создания и использования нейронных сетей в программах на языке Go.

Если Вы уже знакомы с машинным обучением и используете его в своей работе, то эта статья и описанные в ней примеры могут показаться вам слишком простыми. Если Вы в начале пути и хотите познакомиться с этой темой или вам хотелось бы научиться использовать нейроматрицу в ваших программах на языке Go, то вы попали точно по адресу.

Go пакет nnhelper разработан для быстрого создания нейронной сети и использовании ее в приложениях, написанных на языке Go. Для использования nnhelper не потребуется ничего дополнительного, кроме Go. Пакет nnhelper является надстройкой над пакетом gonn. И это единственная внешняя зависимость.

Читать далее
Всего голосов 9: ↑6 и ↓3+3
Комментарии7

Распределённое глубокое обучение: параллелизм моделей и данных в TensorFlow

Время на прочтение12 мин
Количество просмотров6K

Значительное количество задач, предусматривающих обучение глубоких нейронных сетей, можно решить на отдельном компьютере, обладающем единственным, сравнительно мощным и быстрым GPU. Но бывает так, что нужно что-то помощнее. Например — данные могут просто не поместиться в память, доступную на отдельной машине. Или окажется, что имеющееся «железо» просто не «потянет» некую задачу. В результате может возникнуть необходимость в горизонтальном масштабировании вычислительных мощностей.

«Горизонтальное масштабирование» — это когда в компьютер добавляют дополнительные GPU, или когда используют несколько машин, входящих в состав кластера. При таком подходе нужен какой-то способ эффективного распределения задач обучения моделей по имеющимся системам. В теории всё просто, но в реальной жизни это — задача нетривиальная. На самом деле — существует несколько стратегий организации распределённого обучения. Выбор конкретной стратегии сильно зависит от конкретной задачи, от данных и от модели.

В этом материале я попытаюсь описать существующие стратегии организации распределённого обучения, раскрыв детали необходимые для того, чтобы читатель смог бы получить общее представление о них. Нашей главной целью будет обретение возможности выбора наилучшей из стратегий для конкретной задачи. Тут я продемонстрирую некоторые примеры кода, основанные на библиотеке TensorFlow. Освоив их, вы разберётесь с тем, как именно устроена программная часть рассматриваемых здесь стратегий распределённого обучения. Но, в любом случае, затрагиваемые здесь концепции применимы не только к TensorFlow, но и к другим библиотекам и фреймворкам глубокого обучения.

Эта публикация входит в серию материалов о глубоком обучении. В предыдущих статьях шла речь о создании собственного цикла обучения для задачи по сегментации изображений с помощью U-net. Мы развернули модель в Google Cloud для того чтобы получить возможность удалённого запуска обучения. Здесь я буду использовать тот же код.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии1

Причинно-следственный анализ в машинном обучении

Время на прочтение15 мин
Количество просмотров23K

Что появилось первым: курица или яйцо?
Статистики давно уже нашли ответ на этот вопрос.
Причем несколько раз.
И каждый раз ответ был разным.

А если серьезно, то для машинного обучения становятся все более актуальными вопросы причинно-следственного анализа (causal inference) - когда главной целью моделирования является не прогноз и его качество, а то, как мы можем принимать решения на основе нашего алгоритма. И как это повлияет на мир, в котором эта модель будет действовать. Сделает ли модель его лучше, чем он был? Или наоборот.

Под катом я расскажу о причинно-следственном анализе, его ключевых методах и применении в машинном обучении. В следующей статье побеседуем о ключевых трендах в развитии методов причинно-следственного анализа в машинном обучении в 2020-2021 гг.

Читать далее
Всего голосов 23: ↑22 и ↓1+24
Комментарии1

Если вы устраняете систематическую ошибку модели, то уже слишком поздно

Время на прочтение7 мин
Количество просмотров5.9K

Введение


Машинное обучение — это технологический прорыв, случающийся раз в поколение. Однако с ростом его популярности основной проблемой становятся систематические ошибки алгоритма. Если модели ML не обучаются на репрезентативных данных, у них могут развиться серьёзные систематические ошибки, оказывающие существенный вред недостаточно представленным группам и приводящие к созданию неэффективных продуктов. Мы изучили массив данных CoNLL-2003, являющийся стандартом для создания алгоритмов распознавания именованных сущностей в тексте, и выяснили, что в данных присутствует серьёзный перекос в сторону мужских имён. При помощи наших технологии мы смогли компенсировать эту систематическую ошибку:

  1. Мы обогатили данные, чтобы выявить сокрытые систематические ошибки
  2. Дополнили массив данных недостаточно представленными примерами, чтобы компенсировать гендерный перекос

Модель, обученная на нашем расширенном массиве данных CoNLL-2003, характеризуется снижением систематической ошибки и повышенной точностью, и это показывает, что систематическую ошибку можно устранить без каких-либо изменений в модели. Мы выложили в open source наши аннотации Named Entity Recognition для исходного массива данных CoNLL-2003, а также его улучшенную версию, скачать их можно здесь.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

ML-модели VS осложнения при бурении нефтяных скважин

Время на прочтение10 мин
Количество просмотров3.4K

Всем привет. Меня зовут Семён. Я занимаюсь разработкой интеллектуальных приложений для нефтегазовой отрасли в компании «Цифра». В этой статье я и моя коллега Анна Тарасова расскажем, как мы искали решение для проблемы с прихватами при бурении нефтяных скважин с помощью машинного обучения и к чему в результате пришли.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

Асинхронное взаимодействие Spring-микросервисов с помощью Kafka

Время на прочтение7 мин
Количество просмотров20K

В этой статье разберемся, как реализовать обмен сообщениями между Java-микросервисами на Spring с помощью Kafka.

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии2

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность