Machine Learning (машинное обучение) — способ решения задачи при помощи математической модели данных. Задача решается не напрямую, путем задания готовых инструкций, выраженных в программном коде, а косвенно. Компьютеру предъявляется некая модель, на основании которой решается определенный класс задач: прогнозирование, категоризация, кластеризация и пр.
Машинное обучение — метод искусственного интеллекта.
Компьютер обучается на основе данных. Это могут быть фотографии, тексты, цифры и многое другое. Чем разнообразнее и качественнее подготовлены данные, тем лучше компьютер может научиться выполнять задачу.
Рекомендации в интернет-магазинах
Когда вы видите рекомендации товаров, это может быть результатом машинного обучения, учитывающего ваш предыдущий выбор и предпочтения.
Распознавание лиц в фотографиях
Компьютер может научиться распознавать определенные лица на фотографиях, изучая большое количество обучающих изображений.
Автоматический перевод
Сервисы автоматического перевода, такие как Google Translate, используют машинное обучение для понимания и перевода текста на разные языки.
Таким образом, машинное обучение позволяет создавать новые решения, которые работают по другим принципам. Алгоритмическое программирование при решении задачи уступает место ИИ-модели.
Deep learning (глубинное или глубокое обучение) — подраздел машинного обучения, который стремится моделировать абстрактные представления данных, используя искусственные нейронные сети с несколькими слоями (отсюда и название «глубокое обучение»). Давайте разберемся подробнее.
Нейросетями называют программные или аппаратные структуры, которые имитируют работу человеческого мозга. Они состоят из условных ячеек или искусственных нейронов, которые соединены друг с другом и передают информацию.
В глубоком обучении используются нейронные сети с несколькими слоями. Каждый слой обрабатывает входные данные и передает результат следующему слою. Это позволяет модели извлекать сложные признаки и закономерности из данных.
Deep Learning стремится автоматически извлекать представления данных на разных уровнях абстракции. Например, при обучении на изображениях первый слой может выделять края, следующий — формы, а последующие — более сложные детали.
Глубокое обучение часто требует большого объема данных для эффективного обучения. Модели применяются к огромным наборам данных, чтобы научиться обобщать и делать точные предсказания. Например, модель ChatGPT обучалась на 420 Гб текстовых данных.
В отличие от традиционных методов, где нужно вручную создавать признаки для обучения модели, Deep Learning модели могут автоматически извлекать признаки из данных.
Простыми словами, глубинное обучение — это способ обучения компьютера «мыслить» и принимать решения, подобно тому, как это делает человек. Это достигается путем использования сложных математических моделей, которые могут автоматически выявлять закономерности в данных и делать предсказания на основе этой информации. Метод применяется в различных областях, таких как распознавание образов, обработка естественного языка, медицинская диагностика и многое другое.
Главный вывод состоит в том, что для того, чтобы успешно провести машинное обучение, программирование все равно понадобится. На первом этапе вы определяете задачу, которую нужно решить. Затем подготавливаете данные и обучаете модель. Выбор модели зависит от типа задачи, объема доступных данных. Обучение модели проводится до тех пор, пока целевая функция или функция потерь достигает своего оптимального значения. Адекватность модели проверяется на тестовой выборе данных.
В глубинном обучении или Deep Learning используются сложные модели, содержащие ансамбли алгоритмов и нейронные сети со множеством скрытых слоев. Такие модели предварительно создаются и настраиваются человеком. Такая модель в дальнейшем может функционировать автономно, извлекая закономерности из данных не прибегая к помощи оператора.
В обоих случаях на основании Machine Learning и Deep Learning моделей создаются готовые IT-продукты, которые мы видим в повседневной жизни, в частности генеративный ИИ — ChatGPT, DeepFusion, MidJourney и другие. При создании этих продуктов используется обычное программирование на популярных языках C++, Java, или иных.