Искусственный интеллект
Лет 5 назад искусственный интеллект (он же ИИ) ассоциировался с фантастическими фильмами, где роботы спасали мир, а суперкомпьютеры пытались его поработить. Сегодня про ИИ говорят все. Давайте попробуем разобраться, что за магия скрывается за человекоподобными машинами, как они думают и зачем нужно машинное обучение.
Хотя тайна человеческого мозга еще не раскрыта и до создания его программных аналогов нам далеко, сегодня уже существуют роботы, которые способны выполнять определенные действия и принимать решения гораздо эффективнее, чем Homo Sapiens.
ИИ вовсю принимает участие в медицине, помогая врачам выявить болезнь Альцгеймера по речи пациента, определить предрасположенность к заболеваниям, и творит многие другие удивительные вещи. Умные машины применяются почти во всех возможных отраслях. Например, компания LG планирует в 2023 году открыть завод по производству техники, на котором все процессы, начиная от закупки сырья, заканчивая контролем качества выпускаемой продукции, будут полностью автоматизированы.
Мощно, не правда ли? И это всё не набор команд, которые выполняются при определенных условиях. Это программа, которая способна анализировать и на основании данных выполнять то или иное действие.
Чтобы ИИ научился принимать правильные решение, его нужно обучить, этот процесс и называется машинным обучением (machine learning).
Machine learning — что нужно?
Выделяют три составляющие машинного обучения (ML):
Данные. Если мы хотим предсказывать погоду, необходима сводка погоды за последние несколько лет (чем больше, тем лучше). Хотим определять спам, нужны примеры таких писем. Чем качественнее данные, тем эффективнее будет работать программа.
Признаки. Это набор свойств, характеристик или признаки, которые описывают нашу модель. Если говорим о погоде, то это температура, скорость ветра, время года. В случае со спамом — это отправители, темы писем, определенные фразы и изображения. Правильно подобранные признаки — залог успешного обучения.
Алгоритм. Тут всё просто. Каждую задачу можно решить разными способами. Для разных целей можно подобрать разные алгоритмы.
Но всё же главное в ML — это данные. Каким бы совершенным не был бы алгоритм работы, если качество данных не очень, то результат будет соответствующим.
Методы машинного обучения
Как работает машинное обучение? Искусственный интеллект похож на маленького ребенка, которому родители объясняют, почему небо голубое, а трава зеленая. Также методом проб и ошибок он самостоятельно познаёт мир.
Существует множество методов обучения, каждый из которых включает в себя разные алгоритмы. Поговорим про самые распространённые базовые методы:
- классическое обучение;
- обучение с подкреплением;
- нейросети и глубокое обучение.
Пробежимся кратко по каждому из них.
Классическое обучение
Большинство ИИ использует классическое обучение. Это простые алгоритмы, основанные на закономерностях в данных.
Есть два типа классического обучения:
- с учителем (supervised learning);
- без учителя (unsupervised learning).
Обучение с учителем
Принцип простой. Мы обучаем машину на реальных примерах. Допустим, мы хотим научить её отличать яблоки от груш. Мы загружаем в программу данные (dataset) и говорим ей, что на этих картинках изображены яблоки, а на этих груши. А она, в свою очередь, находит общие признаки, анализирует их и выстраивает связи.
Если мы дадим машине картинку без описания, то она на основании полученных данных должна верно определить, что за фрукт на ней изображен.
Поэтому важно отбирать правильные данные для обучения и загружать их как можно больше: чем больше данных мы загрузим, тем точнее и быстрее будет происходить определение.
Обучение без учителя
Этот метод используется, когда нет возможности предоставить роботу размеченные данные. Программа сама находит закономерности, общие признаки и классифицирует полученные данные.
Обучение без учителя отлично подходит для кластеризации (сегментации) данных. Его часто используют в таргентированной рекламе. Когда действия или предпочтения пользователя нельзя заранее классифировать.
Обучение с подкреплением
Возьмем для примера игру «Змейка». На поле расположен объект, до которого змейке необходимо добраться, но сама она не знает, как это сделать и какой путь самый эффективный, она знает только расстояние до объекта. Методом проб и ошибок змейка находит оптимальный вариант движения и анализирует ситуации, которые ведут к проигрышу.
Данный способ также используют для обучения роботов-пылесосов или самоуправляемых автомобилей. Обучение похоже на игру: за правильно принятое решение машина получает балл, за ошибки — баллы вычитаются.
Нейросети и глубокое обучение (Deep learning)
Любая нейросеть — это набор нейронов (функций) и связей между ними. Задача нейрона — взять входные числа, выполнить над ними определенные действия и выдать результат. Пример полезного нейрона: просуммировать все цифры со входов и, если их сумма больше N, отправить на выход единицу, иначе — ноль.
Связи — это каналы, через которые нейроны отправляют друг другу числа. У каждой связи есть своя оценка — параметр, который можно условно представить как прочность связи. Когда через связь с оценкой 0.5 проходит число 10, оно превращается в 5. Сам нейрон не разбирается, что к нему пришло, и суммирует всё подряд. Получается, что оценка нужна для управления тем, на какие входы нейрон должен реагировать, а на какие — нет.
Нейроны и связи — это условное обозначение, в реальном программировании нейросеть представляет собой матрицу и всё считается матричными представлениями, так как это эффективно по скорости.
Для чего необходимы нейронные сети:
- определение объектов на видео и фото;
- обработка фотографий;
- распознавание речи;
- машинный перевод.
В упрощённом виде работа нейросети выглядит примерно так:
На деле все немного сложнее. Изображение делится на пиксели, затем выявляются доминирующие линии по горизонтали и по вертикали, всё это складывается в несколько массивов, из которых получается очертание объекта. В итоге, на основании этих данных мы приходим к нужному результату.
В заключение
Это была базовая теория машинного обучения. На самом деле тема гораздо обширнее. Если вы планируете с головой погрузиться в машинное обучение, просто начните с базовых методов. Для масштабных проектов, требующих большой вычислительной мощности Рег.ру предлагает облачный сервер с GPU.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊