Генерируем уровни для игры с помощью нейросетей

Требования к тем, кто решил пройти курсы data science онлайн

На самом деле, курсы data science платные и каждый желающий может их пройти. Но, опытные специалисты указывают на то, что есть ряд качеств, которые позволяют определить истинного профессионала:

  • Настойчивость, усидчивость, трудолюбие;
  • Внимательность, скрупулезность и точность;
  • Способность доводить начатые дела до конца невзирая на негативные промежуточные результаты;
  • Аналитический склад ума;
  • Наличие бизнес-интуиции.

Что касается профессиональных навыков и знаний, то нужно сделать акцент на таких моментах:

  • Знание математики (в идеале, математический анализ, теория вероятности, статистика);
  • Знание английского языка;
  • Минимальные знания азов программирования;
  • Владение определенными инструментами статистического типа;
  • Основное знание отрасли, экономики, знание законов активного развития бизнеса;
  • Основным и базовым навыком специалиста можно назвать организацию систем хранения массивов данных и администрирование, организация их дальнейшего использования.

Тренировка нейронной сети — многовариантные исчисления, Часть 2

Текущая цель понятна – это минимизация потерь нейронной сети. Теперь стало ясно, что повлиять на предсказания сети можно при помощи изменения ее веса и смещения. Однако, как минимизировать потери?

Для простоты давайте представим, что в наборе данных рассматривается только :

Имя/Name Вес/Weight (минус 135) Рост/Height (минус 66) Пол/Gender
Alice -2 -1 1

Затем потеря среднеквадратической ошибки будет просто квадратической ошибкой для :

Еще один способ понимания потери – представление ее как функции веса и смещения. Давайте обозначим каждый вес и смещение в рассматриваемой сети:

Затем можно прописать потерю как многовариантную функцию:

Представим, что нам нужно немного отредактировать . В таком случае, как изменится потеря после внесения поправок в ?

На этот вопрос может ответить частная производная . Как же ее вычислить?

Для начала, давайте перепишем частную производную в контексте :

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

Подсчитать можно благодаря вычисленной выше :

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

Как было указано ранее, здесь является функцией активации сигмоида.

Так как влияет только на , а не на , можно записать:

Использование дифференцирования сложной функции.

Те же самые действия проводятся для :

Еще одно использование дифференцирования сложной функции.

В данном случае — вес, а — рост. Здесь как производная функции сигмоида встречается во второй раз. Попробуем вывести ее:

Функция в таком виде будет использована несколько позже.

Вот и все. Теперь разбита на несколько частей, которые будут оптимальны для подсчета:

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

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

Обучение нейронной сети

В данной части статьи по разработке простейшей нейронной сети мы научимся обучать нейронные сети.

Мы обучим нейросеть решать задачу по нахождении закономерности в ряде чисел. Для простоты это будут числа 0 и 1.

Для обучения нейронной сети надо иметь условия задач и решения, задачи должны решать одну проблему.

Данные для обучения выглядят так

Условие

Ответ

1

1

1

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

В результате обучения нейронная сеть находит логическую связь между условием и ответом.

Решение этой задачи это первое введённое число.

В качестве условия задачи которую должна решить нейронная сеть выглядит так

Условие

Ответ

1

1

1

Обучение нейронной сети это уменьшение потерь.

Чем меньше потерь тем лучше и правильнее результат.

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

Для обучения нам понадобится производная сигмоиды.

Что такое производная вы сможете посмотреть в википедии, а производная сигмоиды выглядит так:

Реализация на Python выглядит так:

Запишем этот код в файл Math.py

Так же для обучения нам нужно 2 константы:

rate — скорость обученияcount_learn — количество повторений обучения

Чем больше count_learn тем лучше обучится нейронная сеть, но потребуется больше времени на обучение. А с rate все понятно.

Присвоим константам значения:

rate = 0.1count_learn = 10000

После объявления констант, запускаем цикл от 0 до count_learn, внутри цикла запустим еще один цикл который будет выполняться столько раз, сколько входных данных для обучения у нас есть.

После этого будет сложная математика, поэтому дам вам просто код:

Запишем эту функцию в класс NeuronNet.

В итоге файл NeuronNet.py выглядит так:

А Math.py выглядит так:

Теперь запустим нашу нейронную сеть и обучение.

Допишем в файл main.py массив с данными для обучения и правильными ответами:

Далее запустим обучение:

И запустим нашу нейронную сеть подав ей задачу которую надо решить:

В итоге main.py выглядит так:

Теперь запустим программу введя в консоль:

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

Теперь обновим входные данные, вместо

Условие

Ответ

1

1

1

Зададим другую задачу

Условие

Ответ

1

При изменении входных данных результат программы выглядит так

Теперь подведем итоги.

В серии статей по искусственным нейронным сетям мы изучили

  1. Принципы работы искусственных нейронов

  2. Принципы работы нейронных сетей

  3. Принципы обучения нейронных сетей

  4. Написали свою нейронную сеть

Эта часть статьи была последней.

Итоговый код нейронной сети вы сможете найти на моей странице в github.

Что там под капотом

Внутри работают два нейросетевых алгоритма. 

Первый — ImageNet из OpenAI. Он генерирует картинки 256 на 256 пикселей. Его задача — получить картинку максимального качества. Для этого он раз за разом улучшает детализацию и делает картинку чётче и подробнее.

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

Вместе они работают так:

  1. CLIP говорит второму алгоритму, к какой картинке она должна стремиться.
  2. ImageNet старательно делает первый набросок и показывает его.
  3. CLIP оценивает, насколько это совпадает с запросом, и говорит, в каком направлении нужно двигаться дальше.
  4. ImageNet делает второй набросок и показывает его снова.
  5. Так продолжается до тех пор, пока CLIP не скажет «всё, хорош» или когда точность приближения, по мнению нейросети, не будет ниже той, что нужна для остановки.

Откуда нейросеть всё это знает

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

Если бы не было такого набора с данными, нейронка сама бы не поняла, что кошка — это кошка, и выдавала бы просто квадрат из несвязных пикселей.

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

Похожим образом работает «Балабоба» Яндекса — это нейросетевой алгоритм, обученный на огромном корпусе текстов из интернета. Когда мы даём задание «Балабобе», алгоритм дёргает нужные фразы из корпуса и выдаёт результат. 

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Олег Вешкурцев

В чем фишка DALL-E?

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

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

Пример работы DALL-E. Запрос – создание неоновой вывески с надписью SkyNet.

Конечно, результаты не идеальны. На картинке выше можно заметить, что на одной картинке вместо SkyNet написано SKJNET.

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

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

Что такое машинное обучение и почему это важно?

Машинное обучение — это область искусственного интеллекта, использующая статистические методы, чтобы предоставить компьютерным системам способность «учиться». То есть постепенно улучшать производительность в конкретной задаче, с помощью данных без явного программирования. Хороший пример — то, насколько эффективно (или не очень) Gmail распознает спам или насколько совершеннее стали системы распознавания голоса с приходом Siri, Alex и Google Home.

С помощью машинного обучения решаются следующие задачи:

  • Распознавание мошенничества — отслеживание необычных шаблонов в транзакциях кредитных карт или банковских счетов
  • Предсказание — предсказание будущей цены акций, курса обмена валюты или криптовалюты
  • Распознавание изображений — определение объектов и лиц на картинках

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

Для теоретиков

Эмулятор работы нейросети основан на представлениях схемотехнической
основ природных нейросетей.

Есть особенности, которые стоит учитывать при
конструировании нейросетей.

1. У нейронов задан фиксированный порог в 5 условных единиц
активности (воздействие синапса в эмуляторе от 0 до 10, что соответствует
небольшой градации проводимости синапсов в природе)

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

2. Для природных нейросетей не характерно, чтобы от одного
нейрона следовали синапсы разных видов (и возбуждающие и тормозные). Характерно
наличие “вставочных” нейронов, предназначенных для торможения при своем
возбуждении. Поэтому не стоит в схемах от одного нейрона вести связи и
возбуждающие, и тормозные, а следует вставлять промежуточные нейроны. Поэтому
организовывать взаимное торможение, нужно не проводя встречные связи (они
сольются в одну полоску, что и означает неверный прием), а вставляя
дополнительные тормозные нейроны.

Эмулятор позволяет адекватно моделировать и проверять
различные фрагменты нейронных соединений.

Демонстрационные программы

В качестве демонстрационных примеров приведены три программы, показывающие возможности предложенных компонентов.

Программа Recognition используя компонент TNeuralNetHopf , реализует нейронную сеть Хопфилда. Программа решает задачу распознавания образов. На вход сети подается некий образ, возможно искаженный или неполный и нейронная сеть восстанавливает образ, т.е. относит предъявляемый образ к одному из хранимых сетью образов, либо в случае неудачи, выдает новый образ, иногда называемый «химерой».

Программа XOR_Problem, реализует функцию «исключающее или», которая является стандартным тестом, после знаменитой работы Минского и Пейперта «Перцептроны». В основе программы лежит компонент TNeuralNetBP.

Что еще умеет DALL-E?

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

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

Например, DALL-E может создавать художественные иллюстрации с очень тонким контролем над их содержимым. Нарисовать можно практически все, смотрите:

Текстовый запрос: капибара на закате.

Текстовый запрос: капибара ночью

Текстовый запрос: капибара в кожаной куртке играет на гитаре

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

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

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

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

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

Гостиная с картиной, на которой изображен Сиднейский оперный театр

Текстовый запрос: кожаное кресло в виде пончика

Текстовый запрос: манекен в джинсах и красном поло

Сложно даже представить себе все, что позволит сделать эта нейросеть в недалеком будущем, когда мы сможем получить обученные модели. Пока в тестовом режиме DALL-E пробовали применять для дизайна одежды и интерьеров.

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

GeekUniversity совместно с Mail.ru Group открыли первый в России факультет Искусственного интеллекта преподающий нейронные сети.

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

После учебы вы сможете работать по специальностям:

  • Искусственный интеллект,
  • Машинное обучение,
  • Нейронные сети,
  • Анализ больших данных.

Особенности обучения в GeekUniversity

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

Обучение проводится на основании государственной лицензии № 040485. По результатам успешного завершения обучения выдаем выпускникам диплом о профессиональной переподготовке и электронный сертификат на портале GeekBrains и Mail.ru Group.

Проектно-ориентированное обучение

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

Наставник

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

Основательная математическая подготовка

Профессионализм в Data Science — это на 50% умение строить математические модели и еще на 50% — работать с данными. GeekUniversity прокачает ваши знания в матанализе, которые обязательно проверят на собеседовании в любой серьезной компании.

GeekUniversity дает полтора года опыта работы для вашего резюме

В результате для вас откроется в 5 раз больше вакансий:

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

Самые последние новости криптовалютного рынка и майнинга:

The following two tabs change content below.

Mining-Cryptocurrency.ru

Материал подготовлен редакцией сайта «Майнинг Криптовалюты», в составе: Главный редактор — Антон Сизов, Журналисты — Игорь Лосев, Виталий Воронов, Дмитрий Марков, Елена Карпина. Мы предоставляем самую актуальную информацию о рынке криптовалют, майнинге и технологии блокчейн.
Отказ от ответственности: все материалы на сайте Mining-Cryptocurrency.ru имеют исключительно информативные цели и не являются торговой рекомендацией или публичной офертой к покупке каких-либо криптовалют или осуществлению любых иных инвестиций и финансовых операций.

Новости Mining-Cryptocurrency.ru

  • Что будет с ценой биткоина в ближайшие недели? Прогнозы экспертов на октябрь — 28.09.2021
  • Как устроены NFT-игры с возможностью заработка по модели Play-to-Earn? — 28.09.2021
  • Россия входит в ТОП-3 стран по количеству пользователей криптовалют — 28.09.2021
  • Как действовать на медвежьем крипторынке, что бы не потерять свои средства? — 28.09.2021

Искусственная нейронная сеть

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

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

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

Раньше люди генерировали признаки вручную. Чем больше признаков и точнее подобраны веса, тем точнее ответ. Нейронная сеть автоматизировала этот процесс:

Искусственная нейронная сеть состоит из трех компонентов:

  • Входной слой;
  • Скрытые (вычислительные) слои;
  • Выходной слой.

Обучение таких нейросетей происходит в два этапа:

  • Прямое распространение ошибки;
  • Обратное распространение ошибки.

Во время прямого распространения ошибки делается предсказание ответа. При обратном распространении ошибка между фактическим ответом и предсказанным минимизируется.

Для более глубокого изучения советуем к просмотру 2 видео из TED Talks: Видео 1, Видео 2 (видео-ролики на английском языке).

Иллюстрации

Autodraw — инструмент для рисования от Google. В 2017 году компания выпустила нейросетевую программу, которая превращает набросок от руки в полноценную иллюстрацию. Разработка построена на алгоритме, который анализирует рисунок, распознает тип изображения и подбирает похожие клип-арт иллюстрации. Пока нейросеть работает не идеально — Autodraw выдает несколько похожих картинок, из которых пользователь выбирает наиболее подходящую. Иногда программа ошибается, но чем больше вы пользуетесь инструментом, тем быстрее нейросеть учится.

Autodraw пригодится для рисования иконок, логотипов, баннеров, афиш и быстрого прототипирования.

Пример работы Autodraw от The Verge

ProjectQuick3D — инструмент для создания 3D-моделей от Adobe. Программа работает по схожему с Autodraw алгоритму: пользователь рисует быстрый скетч, а программа с помощью машинного обучения находит в библиотеке Adobe Stock нужную 3D-модель. Нейросеть обучается — чем больше пользователей рисуют, тем точнее работает алгоритм. Разработчики представили проект на конференции Adobe MAX как инструмент для начинающих дизайнеров, которые прежде не работали с 3D.

Разработчики Adobe демонстрируют работу программы на конференции Adobe MAX

Шаг 4. Создание своей нейросети. Как написать нейронную сеть? Пишем и обучаем

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

Пример очень полезной информации можно найти здесь. В этом материале удивительное количество знаний сжато до 11 строк кода.

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

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


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

Кстати, если интересуют хорошие наборы данных, вы можете посетить этот сайт.

Чем раньше вы начнёте свои эксперименты, тем лучше. Будет кстати и изучение Python-библиотек для программирования нейронных сетей: Theano, Lasagne, Nolearn. А ещё лучше — попробовать записаться на курс «Нейронные сети на Python» в OTUS. С его помощью вы освоите архитектуру нейронных сетей, узнаете методы их обучения и общие особенности реализации. Остается лишь решиться и приняться за дело.

По материалам статьи .

Шрифты

Fontmap — интерактивная карта шрифтов, созданная ИИ. Разработчик сайта Кевин Хо вдохновился исследователем из Стенфорда, который с помощью нейросети организовал тысячи фотографий на одной карте. В блоге Кевин пишет, что эксперимент с фотографиями показал, насколько полезными стали нейросети в работе с визуальной информацией. Программист задумался, как применить машинное обучение к дизайнерской рутине, и нашел решение — выбор шрифтовых сочетаний.

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

Тогда Кевин совместно с Google Creative Lab разработал Fontmap. Алгоритм машинного обучения сортирует шрифты по визуальным характеристикам и подбирает сочетающиеся. Сейчас в базе Fontmap 750 шрифтов.

Шрифты, которые нейронные сети Fontmap выбрали для использования с Roboto

René — программа, которая поиграет со шрифтами за вас. Ее создал разработчик Джон Голд из Airbnb и TheGrid. Работа René построена на машинном обучении — с каждым новым подбором программа учится понимать принципы сочетания шрифтов. René помогает дизайнерам и разработчикам экономить время и составлять подборки шрифтов для разных проектов.

Джон Голд настраивает базовые характеристики для подбора шрифтов

Разработчик поддерживает идею, что нейросети — это инструменты-помощники, и высказывается против автоматизированного подхода. По мнению разработчика, René будет полезна только для дизайнера-профессионала, который будет «рулить» программой.

Где попробовать

Для работы с алгоритмом достаточно интернета и гугловского ноутбука в облаке. Мы уже писали про jupyter-ноутбуки, но на всякий случай вот суть:

  1. Ноутбук — это среда выполнения для кода, которая позволяет сразу видеть результат работы всех частей кода. В нашем случае это среда для Python, но бывают и ноутбуки для других языков.
  2. Можно эту среду запустить на своём компьютере, а можно использовать облачные ноутбуки. Если запускать у себя, то ноутбук сможет использовать все системные ресурсы и работать быстрее. Если в облаке — ресурсы облачного компьютера. 
  3. Пример такого облачного ноутбука — «Гугл Колаб». Им можно делиться с кем угодно, и тот, у кого есть ссылка на ноутбук, может тоже запустить тот же самый алгоритм. 

Вот . На всякий случай мы сделали свою копию, если вдруг исходный ноутбук будет недоступен.

Fontjoy

Тот самый момент, когда нейросети добрались и до типографики. Как всё начиналось? Создатель Джек Киао обучил нейронную сеть классифицировать шрифты. Потом Джек составил карту шрифтов с помощью нейронки. В результате появился Fontjoy, который подбирает сочетания шрифтов при помощи этого обучаемого алгоритма.

Как это работает?

Нужно нажать кнопку «Generate». Далее выбирается степень контраста между шрифтами: от максимальной схожести до максимального различия. Дополнительно можно зафиксировать любой нужный шрифт и подбирать пару к нему. Пока хорошо сочетается не так много вариантов как хотелось бы, но точно лучше случайного выбора. Думаю, через годик будет совсем круто, если Джек не забросит проект.

Обучение с учителем

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

Например, как создать спам-детектор? Один из способов — интуиция. Можно вручную определять правила: например «содержит слово деньги» или «включает фразу Western Union». И пусть иногда такие системы работают, в большинстве случаев все-таки сложно создать или определить шаблоны, опираясь исключительно на интуицию.

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

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

  • В регрессионных проблемах мы пытаемся предсказать непрерывный вывод. Например, предсказание цены дома на основе данных о его размере
  • В классификационных — предсказываем дискретное число качественных меток. Например, попытка предсказать, является ли письмо спамом на основе количества слов в нем.

Невозможно говорить о машинном обучении с учителем, не затронув модели обучения с учителем. Это как говорить о программировании, не касаясь языков программирования или структур данных. Модели обучения — это те самые структуры, что поддаются тренировке. Их вес (или структура) меняется по мере того, как они формируют понимание того, что нужно предсказывать. Есть несколько видов моделей обучения, например:

  • Случайный лес (random forest)
  • Наивный байесовский классификатор (naive Bayes)
  • Логистическая регрессия (logistic regression)
  • Метод k-ближайших соседей (k nearest neighbors)

В этом материале в качестве модели будет использоваться нейронная сеть.