Как обучить свою первую нейросеть

Как работают нейронные сети и что такое машинное обучение

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

Machine Learning — новый инструмент, новый путь инженерии. Мы занимаемся машинным обучением в двух направлениях: улучшаем свои продукты — например, поисковик, краеугольный камень нашего бизнеса, — и строим совершенно новые продукты, которые раньше были просто невозможны. Есть несколько методов машинного обучения, которые сегодня применяются на практике».

3 метода

«Supervised Learning — один из важнейших типов. Представьте, если бы вы учились играть в шахматы, а за вашей спиной стоял бы гроссмейстер и нашептывал, как ходить. Конкретный пример: автоматическая сортировка спама в вашей почте. Раньше программисты задавали определенные правила, например, если в тексте слово viagra написанно со странными символами — это на 99 процентов спам. Теперь же алгоритм изучает архив писем, которые были помечены как спам и не спам. Он делает это снова и снова и медленно, но верно становится лучше и лучше, определяет спам все точнее. Это очень успешная техника — и костяк многих систем».

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

Метод спонтанного обучения (Unsupervised Learning) работает без вмешательства со стороны экспериментатора. Машина производит анализ структур данных, вычленяя из них какие-то общие паттерны. Мы, люди, владеем всеми тремя обозначенными способами. Но машины пока освоили неплохо только первый, и постепенно мы стараемся научить двумя другим.

Как появились нейросети

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

Конечно, нельзя говорить, что нейронная сеть — это точная искусственная копия мозга. Важно отметить, что нейросеть — это прежде всего компьютерная симуляция: такие сети созданы посредством программирования обычных компьютеров, в которых традиционным образом работают обычные транзисторы, объединенные в логические связи.

Как нейросеть генерирует новые фото

Преимущества графических процессоров для глубокого обучения

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

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

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

Также видеокарты оптимизированы для матричных операций и ускоряют их – они необходимы нейронным сетям для получения результата.

AI Conference: Mashinnoe obuchenie na videokartah: kak GPU ispolzuyutsya v Machine Learning? 1

Работа на нескольких видеокартах

Для повышения скорости обучения можно устанавливать несколько GPU. При обучении сверточных нейросетей можно получить ускорение в 1,9/2,8/3,5 раза, если использовать 2/3/4 GPU соответственно. Для рекуррентных сетей более важна длина последовательности. Для NLP ускорение будет примерно такое же, как для свёрточных, либо немного слабее.

Использование нескольких GPU также позволит одновременно запускать сразу несколько экспериментов на каждой видеокарте отдельно.

Ближе к реальности: неттопы и мини-ПК

Это выбор для тех, кто любит экономить место и предпочитает всё компактное. У таких компьютеров скорость сопоставима с ноутбуком, но для работы им нужна внешняя клавиатура, мышь, монитор и блок питания.

У Intel есть линейка NUC: на них спокойно работает Windows 10, можно использовать как полноценный офисный компьютер. Обратите внимание, что NUC обычно поставляется без диска и оперативной памяти, их придётся докупать. Зато NUC маленький.

Если вы фанат Apple, то на вас смотрит Mac mini. Из хорошего — он симпатичен. Из плохого — последние модели очень трудно обновлять. Если через пару лет вы захотите увеличить на них память, скорее всего, не выйдет.

Это Intel Nuc. Внутри — полноценный компьютер с процессором Intel i7, 32 гигабайтами памяти и диском на 1 терабайт. Это неплохо для компьютера размером с ладонь.

Основные виды машинного обучения

1. Классическое обучение

Это простейшие алгоритмы, которые являются прямыми наследниками вычислительных машин 1950-х годов. Они изначально решали формальные задачи — такие, как поиск закономерностей в расчетах и вычисление траектории объектов. Сегодня алгоритмы на базе классического обучения — самые распространенные. Именно они формируют блок рекомендаций на многих платформах.

Так выглядит блок рекомендаций в YouTube

Но классическое обучение тоже бывает разным:

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

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

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

Эта модель возникла в 1990-х годах и на практике используется гораздо реже. Ее применяют для данных, которые просто невозможно разметить из-за их колоссального объема. Такие алгоритмы применяют для риск-менеджмента, сжатия изображений, объединения близких точек на карте, сегментации рынка, прогноза акций и распродаж в ретейле, мерчендайзинга. По такому принципу работает алгоритм iPhoto, который находит на фотографиях лица (не зная, чьи они) и объединяет их в альбомы.

2. Обучение с подкреплением

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

Обучение с подкреплением инженеры используют для беспилотников, роботов-пылесосов, торговли на фондовом рынке, управления ресурсами компании. Именно так алгоритму AlphaGo удалось обыграть чемпиона по игре Го: просчитать все возможные комбинации, как в шахматах, здесь было невозможно.

3. Ансамбли

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

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

Ансамбли работают в поисковых системах, компьютерном зрении, распознавании лиц и других объектов.

4. Нейросети и глубокое обучение

Самый сложный уровень обучения ИИ. Нейросети моделируют работу человеческого мозга, который состоит из нейронов, постоянно формирующих между собой новые связи. Очень условно можно определить их как сеть со множеством входов и одним выходом. Нейроны образуют слои, через которые последовательно проходит сигнал. Все это соединено нейронными связями — каналами, по которым передаются данные. У каждого канала свой «вес» — параметр, который влияет на данные, которые он передает.

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

Настоящим прорывом в этой области стало глубокое обучение, которое обучает нейросети на нескольких уровнях абстракций.

Здесь используют две главных архитектуры:

  • Сверточные нейросети первыми научились распознавать неразмеченные изображения — самые сложные объекты для ИИ. Для этого они разбивают их на блоки, определяют в каждом доминирующие линии и сравнивают с другими изображениями нужного объекта;
  • Рекуррентные нейросети отвечают за распознавание текста и речи. Они выявляют в них последовательности и связывают каждую единицу — букву или звук — с остальными.

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

Как появились нейросети

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

Конечно, нельзя говорить, что нейронная сеть — это точная искусственная копия мозга. Важно отметить, что нейросеть — это прежде всего компьютерная симуляция: такие сети созданы посредством программирования обычных компьютеров, в которых традиционным образом работают обычные транзисторы, объединенные в логические связи.

Как нейросеть генерирует новые фото

Где используются нейросети и машинное обучение?

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

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

  1. Медицина. На основе сопоставления большого количества данных о пациентах нейронные сети способны ставить точные диагнозы, затрачивая минимум времени. А это повысит качество сферы здравоохранения и снизит смертность.
  2. Обучение. Нейросети могут анализировать личные качества школьников и студентов, создавая для них наиболее подходящие программы обучения. Это позволит понять общий уровень образования, формировать профессиональные кадры для нужных сфер и т.д.
  3. Транспорт. Машинное обучение позволяет исключить человеческий фактор и эффективно контролировать транспортные потоки, повышая безопасность дорожного движения.
  4. Информационные технологии. Тут возможности применения нейросетей особенно разнообразны.

Перечислим ряд возможностей:

  • улучшение алгоритмов поискового ранжирования (Google и Яндекс «учатся» показывать пользователю именно ту информацию, которую он ищет в поиске);
  • создание элементов дополнительной реальности (может использоваться в играх, кинематографе и т.д.);
  • механизмы распознавания речи и жестов (применяются в большинстве видов современной техники, начиная от смартфонов и заканчивая ТВ–пультами и т.д.).

Искусственные нейронные сети

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

В следующих разделах рассматриваются наиболее популярные типы искусственных нейронных сетей.

Нейронная сеть с передачей по очереди

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

Рекуррентная нейронная сеть (RNN)

Рекуррентные нейронные сети — это широко используемые искусственные нейронные сети. Эти сети сохраняют выходные данные слоя и передают его обратно на входной слой, чтобы улучшить прогнозирование на выходе конкретного слоя. У рекуррентных нейронных сетей отличные возможности для обучения. Они широко используются для выполнения сложных задач, таких как прогнозирование временных рядов, обучение распознаванию рукописного ввода и распознавание естественной речи.

Сверточные нейронные сети (CNN)

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

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

Генеративно-состязательная сеть (GAN)

Генеративно-состязательные сети — это регенеративные модели, обученные для создания реалистичного содержимого, например изображений. Каждая такая сеть состоит из двух сетей, известных как генератор и дискриминатор. Обе сети обучаются одновременно. Во время обучения генератор использует случайные помехи для создания новых искусственных данных, которые похожи на реальные данные. Дискриминатор принимает выходные данные генератора в качестве входных данных и использует реальные данные, чтобы определить, является ли созданное содержимое реальным или искусственным. Каждая из сетей конкурирует друг с другом. Генератор пытается создать искусственное содержимое, которое не отличается от реального содержимого, в то время как дискриминатор пытается правильно классифицировать входные данные либо как реальные, либо как искусственные. Затем выходные данные используются для обновления веса обеих сетей, чтобы помочь им лучше достичь соответствующих целей.

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

Преобразователи

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

Преобразователи используются для решения проблем обработки естественного языка, таких как перевод, создание текста, ответы на вопросы и формирование сводных данных текста.

Вот некоторые известные примеры реализации преобразователей:

  • Двунаправленные представления кодировщика из преобразователей (BERT)
  • Генеративный предварительно обученный трансформатор 2 (GPT-2)
  • Генеративный предварительно обученный трансформатор 3 (GPT-3)

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector