banner banner banner
Искусственный интеллект и Машинное обучение. Основы программирования на Python
Искусственный интеллект и Машинное обучение. Основы программирования на Python
Оценить:
Рейтинг: 0

Полная версия:

Искусственный интеллект и Машинное обучение. Основы программирования на Python

скачать книгу бесплатно


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

Машинное обучение

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

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

Выбор места для ритейла. В ритейле одним из самых главных факторов, которые влияют на прибыльность бизнеса, является местоположение. У сети кофеен Старбакс имеется около 30 000 локаций по всему миру. Вы накопили большой объем информации о том, в каких местах продажи лучше. На основе этой информации вы можете составить алгоритм по выбору наиболее удачного места в новой локации. Ваши переменные могут включать геохарактеристики (расстояние до центра города, до метро, цена за квадратный метр), трафик (число маршрутов наземного транспорта в разных радиусах от локации) и наличие тех или иных объектов рядом, например, торговых центров, бизнес-центров, домов, школ и банков.

Глубокое обучение

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

Машинный перевод. Возможно, кто-то из вас использовал Google Translate, и вы могли заметить насколько хорошо он переводит в последнее время. Практически ничего не надо исправлять. Но если вспомнить примерно 5 или 7 лет назад, то качество перевода было далеко от идеального. А все потому, что сейчас вместо множества правил как надо переводить, используются нейронные сети, через которые уже прошли миллионы переводов художественной, технической и другой литературы, и эти алгоритмы ГО все продолжают улучшаться.

Интеллектуальные игры: шахматы, Го, Дота 2, покер и другие. Долгое время считалось, что компьютер никогда не превзойдет по силе мысли человека до тех пор, пока он не сможет обыграть его в шахматы. Однако, это случилось в конце 20 века, а в 2010-х годах, компьютер, обученный алгоритмами ГО, смог обыграть и чемпионов в го – игру, которая считается даже еще более сложной чем шахматы. Сейчас не проходит и года, как не появляется очередная новость о том, что компьютер обыграл человека в очередной игре. ИИ уже обыграл людей в покер, Доту 2 и другие интеллектуальные игры. Все это получилось благодаря задействованию нейронных сетей и ГО.

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

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

И в конце, на что еще хотелось бы обратить внимание. Как уже было сказано, и ГО и МО являются только частью более общей области под названием ИИ. Так вот, в сложных проектах, как правило, присутствует несколько видов алгоритмов ИИ, и глубокое обучение и машинное обучение, и другие виды. Например, во время движения беспилотного автомобиля участвует более 100 различных алгоритмов, которые ответственны за распознавание объектов, управление движением, навигацию, безопасность, и т.д.

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

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

Обучение с учителем и обучение без учителя

Если вы интересовались темой искусственного интеллекта и машинного обучения, возможно вы уже встречались с такими понятиями как обучение с учителем (на англ. supervised learning) и обучение без учителя (unsupervised learning). В этой главе мы узнаем, чем отличаются эти два понятия.

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

Во-вторых, обучение с учителем не обязательно подразумевает, что кто-то стоит над компьютером и контролирует каждое его действие. В терминах машинного обучения, обучение с «учителем» означает, что человек уже подготовил данные для дальнейшей работы над ними компьютером, то есть у каждого объекта имеется метка (на англ. label) которая выделяет этот объект от остальных объектов или дает ему какое-то именное или числовое наименование. И компьютеру остается только найти закономерности между признаками объектов и их наименованиями, основываясь на этих подготовленных или как их называют помеченных данных. На английском такие данные называются labeled data.

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

Это будет пример цветков ириса Фишера. Этот набор данных стал уже классическим, и часто используется для иллюстрации работы различных статистических алгоритмов. Вы можете найти его по следующей ссылке (https://gist.github.com/curran/a08a1080b88344b0c8a7) либо просто вбив в интернете.

В природе существует три вида цветков ириса. Они отличаются друг от друга размерами лепестка и чашелистника. Все данные по цветкам занесены в таблицу, в столбиках указаны длина и ширина лепестка, а также длина и ширина чашелистника. В последнем столбце указан вид ириса –  Ирис щетинистый (https://ru.wikipedia.org/wiki/%D0%98%D1%80%D0%B8%D1%81_%D1%89%D0%B5%D1%82%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%8B%D0%B9) (Iris setosa), Ирис виргинский (https://ru.wikipedia.org/w/index.php?title=%D0%98%D1%80%D0%B8%D1%81_%D0%B2%D0%B8%D1%80%D0%B3%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&action=edit&redlink=1) (Iris virginica) и Ирис разноцветный (https://ru.wikipedia.org/w/index.php?title=%D0%98%D1%80%D0%B8%D1%81_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%86%D0%B2%D0%B5%D1%82%D0%BD%D1%8B%D0%B9&action=edit&redlink=1) (Iris versicolor). Тот или иной вид ириса и является в нашем случае меткой.

На основании этого набора данных требуется построить правило классификации, определяющее вид растения в зависимости от размеров. Это задача многоклассовой классификации (https://ru.wikipedia.org/w/index.php?title=%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%86%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&action=edit&redlink=1), так как имеется три класса – три вида ириса.

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

Почему этот пример можно считать обучение с учителем? Потому что наши данные распределены по признакам, у каждого признака есть показатель для конкретного цветка, то есть размеры длины и ширины. И имеются ответы или метки, какой вид ириса бывает при тех или иных размерах лепестка и чашелистника. То есть мы как учитель обучаем нашу модель и говорим ей, что вот окей, если ты видишь, что размер лепестка такой-то, а чашелистника – такой, то этой ирис виргинский, а если размеры такие-то и такие-то, то это ирис разноцветный. Это и называется обучение с учителем, когда мы показываем нашей модели все ответы в зависимости от признаков. Модель учится на этих данных, и создает формулу или алгоритм, который поможет нам в будущем предсказывать вид цветка в зависимости от размеров, когда нам будут поступать новые образцы цветов.

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

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

Классический пример регрессии – это когда мы предсказываем цену квартиры в зависимости от ее площади.

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

Таким образом, если суммировать, то в обучении с учителем – ключевая фраза – это labeled data или помеченные данные. То есть мы загружаем в нашу модель данные с ответами, будь то класс, к которому принадлежит тот или иной объект или реальная цена квартиры в зависимости от площади. На основе этой информации модель учится и создает алгоритм, который может делать прогнозы.

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

В отличие от обучения с учителем, модели, которые используются в обучении без учителя, выводят закономерности и выводы на основе немаркированных данных (или unlabeled data). Помните, у нас был пример с цветками ириса. Так вот в данных, которые мы давали компьютеру, присутствовали ответы какой вид ириса мы имеем в зависимости от тех или иных размеров лепестка и чашелистника. А в немаркированных данных, у нас имеются данные и признаки, но мы не имеем ответа к какому виду или классу они относятся. Поэтому такие данные называются немаркированные.

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

Давайте рассмотрим пример кластеризации.

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

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

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

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

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

Указанные задачи мы рассмотрим более подробно в следующих главах.

Регрессия

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

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

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

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

В данном случае мы видим линейную зависимость, и в таких ситуациях используется формула прямой Y = AX + B, в которой Y = цена, X – площадь.

На самом деле, зависимость необязательно будет линейной, она может быть кривой, либо иметь совсем странный вид.

Так вот, чтобы у нас была конкретная рабочая формула, нам надо найти коэффициенты А и В.

Как это можно сделать? Самый простой классический способ, который вы наверняка проходили на уроках алгебры или статистики – это метод наименьших квадратов. На самом деле этот метод был придуман еще 200 лет назад, и сейчас появились более эффективные решения, но тем не менее метод наименьших квадратов по-прежнему актуален и используется достаточно часто в задачах регрессии.


Вы ознакомились с фрагментом книги.
Для бесплатного чтения открыта только часть текста.
Приобретайте полный текст книги у нашего партнера:
Полная версия книги
(всего 10 форматов)