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

Тимур Казанцев, 2020

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

Оглавление

Из серии: Технологии

* * *

Приведённый ознакомительный фрагмент книги Искусственный интеллект и Машинное обучение. Основы программирования на Python предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

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

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

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

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

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

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

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

В природе существует три вида цветков ириса. Они отличаются друг от друга размерами лепестка и чашелистника. Все данные по цветкам занесены в таблицу, в столбиках указаны длина и ширина лепестка, а также длина и ширина чашелистника. В последнем столбце указан вид ириса — Ирис щетинистый (Iris setosa), Ирис виргинский (Iris virginica) и Ирис разноцветный (Iris versicolor). Тот или иной вид ириса и является в нашем случае меткой.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Регрессия

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

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

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

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

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

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

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

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

Конец ознакомительного фрагмента.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Искусственный интеллект и Машинное обучение. Основы программирования на Python предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я