Pull to refresh

«Вспомнить все» или решение проблемы катастрофической забывчивости для чайников

Reading time29 min
Views8.3K

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

Сначала напомним, что это, собственно, за проблема. Если вдруг так оказалось, что вам нужно обучать нейронную сетку сначала на одном датасете, а затем на другом, то вы обнаружите, что по мере обучения на втором датасете сетка быстро забывает первый датасет, то есть теряет навык, полученный при обучении на нем. Или же если вы используете transfer learning и доучиваете готовую сетку на своих примерах, то будет наблюдаться тот же эффект – сетка успешно доучится на ваших данных, но при этом существенно утеряет предыдущие навыки, то есть то, ради чего весь transfer learning и затевался. Если вдруг датасетов, на которых надо последовательно учиться, не два а, к примеру, пять, то к концу обучения на пятом сетка забудет первый датасет практически полностью.

Вот с этим мы и будем бороться.

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments8

Технологии больших данных в работе с бактериями микробиоты. Лекция в Яндексе

Reading time16 min
Views7.1K
Мы часто говорим о задачах, которые лежат на стыке той или иной классической науки и анализа данных. В сегодняшнем докладе эта идеология представлена воочию — большую часть доклада читает учёный, а о конкретных методах и инструментах рассказывает программист.


Под катом — расшифровка и основная часть слайдов.

Total votes 42: ↑42 and ↓0+42
Comments2

Transfer Learning с использованием TensorFlow.JS

Reading time13 min
Views2.6K

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

Кроме того, на мой взгляд Transfer Learning ­– это наиболее перспективная техника для использования на клиентской стороне с помощью TensorFlowJS. Большим преимуществом тут перед применением той же самой техники на сервере – это сохранение конфиденциальности клиентской информации и наличием возможности к доступа сенсоров (камера, гео-локации и др).

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments0

Краткий обзор статьи: «Что лучше: предварительно обученные свертки или предварительно обученные трансформеры?»

Reading time3 min
Views1.9K

В этой статье авторы из Google Research хотели исследовать вопрос, могут ли CNN-архитектуры конкурировать с трансформерами (Transformers) в задачах NLP. Оказывается, что предварительно обученные модели CNN (convolutional neural network — сверточная нейронная сеть) все-таки превосходят предварительно обученных трансформеров в некоторых задачах; они также обучаются быстрее и лучше масштабируются под длинные последовательности.

По словам авторов, ранее не публиковались серьезные работы с проведением научных экспериментов по предварительному обучению и настройке CNN для работы с текстами.

Возможные преимущества CNN:

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments0

Нейропластичность в искусственных нейронных сетях

Reading time17 min
Views53K
Привет, Хабр, давно не виделись. В этом посте мне хотелось бы рассказать о таком относительно новом понятии в машинном обучении, как transfer learning. Так как я не нашел какого-либо устоявшегося перевода этого термина, то и в названии поста фигурирует хоть и другой, но близкий по смыслу термин, который как бы является биологической предпосылкой к формализации теории передачи знаний от одной модели к другой. Итак, план такой: для начала рассмотрим биологические предпосылки; после коснемся отличия transfer learning от очень похожей идеи предобучения глубокой нейронной сети; а в конце обсудим реальную задачу семантического хеширования изображений. Для этого мы не будем скромничать и возьмем глубокую (19 слоев) сверточную нейросеть победителей конкурса imagenet 2014 года в разделе «локализация и классификация» (Visual Geometry Group, University of Oxford), сделаем ей небольшую трепанацию, извлечем часть слоев и используем их в своих целях. Поехали.
Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments38

Deep Learning: Transfer learning и тонкая настройка глубоких сверточных нейронных сетей

Reading time7 min
Views27K
В предыдущей статье из цикла «Deep Learning» вы узнали о сравнении фреймворков для символьного глубокого обучения. В этом материале речь пойдет о глубокой настройке сверточных нейронных сетей для повышения средней точности и эффективности классификации медицинских изображений.


Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments0

Deep Learning: Cочетание глубокой сверточной нейронной сети с рекуррентной нейронной сетью

Reading time6 min
Views23K
Представляем вам завершающую статью из цикла по Deep Learning, в которой отражены итоги работы по обучению ГСНС для изображений из определенных областей на примере распознавания и тегирования элементов одежды. Предыдущие части вы найдете под катом.


Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments3

Создаём нейронную сеть InceptionV3 для распознавания изображений

Reading time11 min
Views137K


Привет, Хабр! Под катом пойдёт речь о реализации свёрточной нейронной сети архитектуры InceptionV3 с использованием фреймворка Keras. Статью я решил написать после ознакомления с туториалом "Построение мощных моделей классификации с использованием небольшого количества данных". С одобрения автора туториала я немного изменил содержание своей статьи. В отличие от предложенной автором нейронной сети VGG16, мы будем обучать гугловскую глубокую нейронную сеть Inception V3, которая уже предустановлена в Keras.

Вы научитесь:

  1. Импортировать нейронную сеть Inception V3 из библиотеки Keras;
  2. Настраивать сеть: загружать веса, изменять верхнюю часть модели (fc-layers), таким образом, приспосабливая модель под бинарную классификацию;
  3. Проводить тонкую настройку нижнего свёрточного слоя нейронной сети;
  4. Применять аугментацию данных при помощи ImageDataGenerator;
  5. Обучать сеть по частям для экономии ресурсов и времени;
  6. Оценивать работу модели.

При написании статьи я ставил перед собой задачу представить максимально практичный материал, который раскроет некоторые интересные возможности фреймворка Keras.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments27

Transfer Learning: как быстро обучить нейросеть на своих данных

Reading time11 min
Views46K
Машинное обучение становится доступнее, появляется больше возможностей применять эту технологию, используя «готовые компоненты». Например, Transfer Learning позволяет использовать накопленный при решении одной задачи опыт для решения другой, аналогичной проблемы. Нейросеть сначала обучается на большом объеме данных, затем — на целевом наборе.

Food recognition

В этой статье я расскажу, как использовать метод Transfer Learning на примере распознавания изображений с едой. Про другие инструменты машинного обучения я расскажу на воркшопе «Machine Learning и нейросети для разработчиков».
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments8

Обучение Russian SuperGLUE моделей с помощью библиотеки DeepPavlov

Reading time6 min
Views4.2K

В последние годы соревнования GLUE и SuperGLUE на английском языке стали стандартным бенчмарком для определения возможностей универсальных языковых моделей, таких как BERT, RoBERTa в решении широкого круга задач обработки естественного языка, в том числе задач с недостаточным объемом обучающей выборки. Соревнования GLUE/SuperGLUE представляют из себя наборы задач NLP на основе ранее представленных датасетов. Академическое сообщество NLP довольно быстро расправилось с GLUE, отчасти вследствие того, что задачи были довольно однотипные, они сводились либо к парной текстовой классификации, либо к классификации единственной последовательности. Ответом на это был новый набор задач SuperGLUE, в состав которого вошли вопросно-ответные задачи, задачи кореференции и задачи семантического следования. На данный момент модели, обученные на базе ERNIE и DeBERT, превзошли качество разметки человеком.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments5

Передача знания и Нейронный машинный перевод на практике

Reading time6 min
Views4.2K
Нейронный машинный перевод (НМП, англ. Neural Machine Translation, NMT) развивается очень быстро. Сегодня, чтобы собрать свой переводчик, не нужно иметь два высших образования. Но чтобы обучить модель, нужен большой параллельный корпус (корпус, в котором предложению на исходном языке сопоставлен его перевод). На практике речь идет хотя бы об одном миллионе пар предложений. Есть даже отдельная большая область НМП, исследующая методы обучения языковых пар с малым количеством данных в электронном виде (англ. Low Resource NMT).

Мы собираем чувашско-русский корпус и параллельно смотрим, что можно сделать с имеющимся объемом данных. В этом примере использовали корпус из 90 000 пар предложений. Самый хороший результат на данный момент дал метод передачи знания (англ. Transfer Learning), о нем и пойдет речь в статье. Цель статьи — дать практический пример реализации, который легко можно было бы воспроизвести.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments3

Как правильно: Мане или Моне? Отвечает нейросеть

Reading time4 min
Views2.7K
Художников Эдуарда Мане и Клода Моне путали и при жизни (вот очень интересная статья на Арзамас). Что неудивительно, ведь они оба родоначальники импрессионизма и писали в схожей манере. Слушая на coursera курс по Convolutional neural networks, я решила попробовать сделать модель, определяющую, кем из художников написана картина.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments5

Люди ломаются на логике, роботы — на всем понемногу. Экзамены по русскому для NLP-моделей

Reading time9 min
Views9.4K
Чтобы машины могли обрабатывать текст на русском и «понимать» его, в NLP используются универсальные языковые модели и трансформеры — BERT, RoBERTa, XLNet и другие — архитектуры от 100 миллионов параметров, обученные на миллиардах слов. Все оригинальные модели появляются обычно для английского, показывают state-of-the-art в какой-нибудь прикладной задаче и только спустя полгода-год появляются и для русского языка, без тюнинга архитектуры.



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

Мы — это команда AGI NLP Сбербанка, лаборатория Noah’s Ark Huawei и факультет компьютерных наук ВШЭ. Проект Russian SuperGLUE — это набор тестов на «понимание» текста и постоянный лидерборд трансформеров для русского языка.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments13

BERT, ELMO и Ко в картинках (как в NLP пришло трансферное обучение)

Reading time11 min
Views46K

2018 год стал переломной точкой для развития моделей машинного обучения, направленных на решение задач обработки текста (или, что более корректно, обработки естественного языка (Natural Language Processing, NLP)). Быстро растет концептуальное понимание того, как представлять слова и предложения для наиболее точного извлечения их смысловых значений и отношений между ними. Более того, NLP-сообщество продвигает невероятно мощные инструменты, которые можно бесплатно скачать и использовать в своих моделях и пайплайнах. Эту переломную точку также называют NLP’s ImageNet moment, ссылаясь на тот момент несколько лет назад, когда схожие разработки значительно ускорили развитие машинного обучения в области задач компьютерного зрения.


transformer-ber-ulmfit-elmo


(ULM-FiT не имеет ничего общего с Коржиком, но что-то лучше не пришло в голову)

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

Делаем нейронную сеть, которая сможет отличить борщ от пельмешек

Reading time2 min
Views4.8K
Как то раз смотря видос про достижения Поднебесной, я увидел прикольную штуку. Столовую будущего, точнее для Китая настоящего, а для нас будущего. Суть заключалась в полном самообслуживание клиента. Он брал блюда на поднос и подносил поднос к видео камере где нейросетка детектировала и распознавала еду, выставляла ему счет и он через еще одну нейронную сеть, которая распознавала его лицо, оплачивал свою покупку. Мне тоже захотелось сделать что то подобное. Размечать датасет под YOLO, что бы можно было детектировать блюда мне было совсем не охото. Готово размеченного с борщами и пельмешками я не нашел, поэтому решил сделать только классификацию.


Total votes 12: ↑7 and ↓5+2
Comments6

Переходим на личности: как создать не просто бота, а виртуального персонажа с характером и историей

Reading time18 min
Views6.6K

Надоели стандартные боты с типовыми запросами? Да, мы вас очень понимаем.

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

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

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments3