Введение в машинное обучение. Просто о сложном / Хабрахабр вчера в 00:29Введение в машинное обучение. Просто о сложномиз песочницы Искусственный интеллектКратчайшая история искусственного интеллекта
Искусственный интеллект, как научная область активно развивается с начала XIX века. Наибольшая активность в области происходила в 60-х и 70-х годах. В то время казалось, что ИИ это близкое будущее, что, в общем, не удивительно, т.к направление прогрессировало невероятно быстро. Компьютеры все чаще обыгрывали лучших шахматистов, а на исследования в области ИИ выделялись огромные деньги. Однако, к 1973 году стало понятно, что не все так хорошо, как кажется. В этом году был опубликован так называемый отчет Лайтхилла - документ «Искусственный интеллект: Общий обзор», дающий крайне пессимистические прогнозы для основных направлений отрасли. Документ предвещал наступление т.н. «зимы искусственного интеллекта».
Основными причинами «Зимы ИИ» стали:
- Проблема комбинаторного взрыва (Резкий рост временной сложности алгоритма при увеличении размера входных данных).
- Низкая производительность компьютеров (Более высокая производительность могла бы частично решить первую проблему).
- Проблема представлений знаний «здравого мысла» (Например, задача формализации процесса распознавания речи человеком не решена до сих пор).
- Парадокс Моравеца (Для компьютера многие задачи, очевидные с человеческой точки зрения, становятся сложными и наоборот).
Однако, уже имеющиеся достижения в области искусственного интеллекта не могли просто пропасть или заморозиться в ожидании лучших времен. Потеря перспективности ИИ положила начало развитию многих смежных областей, таких, как машинное обучение, компьютерное зрение, обработка естественных языков и т.д.
К своему удивлению, я не обнаружил на хабре статей по машинному обучению. Поэтому, в данном цикле статей я постараюсь исправить это недоразумение.
Введение в машинное обучение
Нестрогое определение машинного обучения дал Артур Самуэль в далеком 1959 году в своей инновационной работе по компьютерным шашкам. Он определил машинное обучение следующим образом:
Машинное обучение это процесс, в результате которого машина (компьютер) способна показывать поведение, которое в нее не было явно заложено (запрограммировано).
Если говорить о строгом, формальном определении, то его хорошо дал Том Митчел в своей книге о машинном обучении, ставшей классической.
Говорят, что компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта E.
Таким образом, машинное обучение - это подраздел искусственного интеллекта, изучающий алгоритмы, способные к обобщению и обучению. Машинное обучение находится на стыке многих разделов множества наук. В задачах машинного обучения часто применяются методы теории вероятностей, линейной алгебры, статистики, оптимизации и многих других дисциплин.
Список прикладных сфер применения машинного обучения невероятно широк. Сферы применения машинного обучения:
- Распознавание речи.
- Компьютерное зрение.
- Компьютерная лингвистика и обработка естественных языков.
- Медицинская диагностика.
- Техническая диагностика.
- Рубрикация текстов.
- Интеллектуальные игры.
В рамках машинного обучение существует большое количество открытых вопросов. Например:
- Какое количество и какой информации необходимо для обучения?
- Какие данные лучше выбирать для обучения и почему?
- Какой алгоритм решает поставленную задачу наилучшим образом?
- Как свести какую-либо задач обучения к аппроксимации или оптимизации некоторой функции?
Обучение может происходить как до работы программы (например, для распознавания лиц программа сначала учится, а затем работает на настоящих данных) или во время (например, для фильтрации спама).
Машинное обучение разделяется на несколько типов:
- Обучение с учителем (обучение по прецедентам) - На подмножестве рассматриваемых объектов известны ответы для каждого из них. Учителем, обычно, называют обучающую выборку пар объект-ответ. Задачей такого обучение является нахождение закономерности, согласно которой можно найти ответ для любого объекта.
- Частичное обучение - При частичном обучении большая часть ответов неизвестна.
- Активное обучение - Очень похоже на обучение с учителем с той разницей, что ответы изначально неизвестны. Основная идея состоит в том, что алгоритм сам может обучаться на малых выборках, если он сам выбирает какие данные ему нужны. То есть алгоритм составляет запросы, ответы на которые помогают ему обучаться.
- Стимулируемое обучение (обучение с подкреплением) - В этом случае правильных ответов не существует, а алгоритм пытается найти оптимальную стратегию.
- Обучение без учителя - (Алгоритм ищет не пары объект-ответ, а связи между объектами.
Рассмотрим подробнее обучение с учителем и без него.
Обучение с учителем
Определение
Пусть X - множество объектов, Y - множество ответов и имеется некоторая зависимость (детерминированная или вероятностная), позволяющая по x∈X предсказать y∈Y. То есть, если эта зависимость детерминированная, то существует некоторая функция ƒ*:X→Y. Причем изначально, эта зависимость известна только на объектах из обучающей выборки. Задача машинного обучения с учителем - научиться по новым объектам x∈X предсказывать y∈Y, т.е восстановить зависимость.
В зависимости от множества Y выделяют типы задач обучения:
- Задача классификации (Y={1,2,..,K} конечно) - множество X разбивается на K классов. По x∈X требуется предсказать к какому классу он принадлежит. В частности, задачей классификации является задача распознавания образов.
- Задача восстановления регрессии (Y=R) - требуется найти функцию ƒ из определенного класса, которая аппроксимирует ƒ*.
Практическое применение
Рассмотрим в качестве примера задачу медицинской диагностики.
Неформальная постановка задачи: по некоторому набору симптомов и характеристик пациента необходимо поставить диагноз или определить, что пациент здоров.
Формализуем задачу. Определим множество объектов X, как множество симптомов, а множество ответов Y, как множество всех существующих болезней и элемента «пациент здоров». Очевидно, что Y конечно, а, значит, перед нами задача классификации. Обучение будет проходить на достаточном объеме прецедентов.
Нам могут встречаться признаки различных типов:
- Бинарные (Пол, наличие боли в спине, в сознании ли пациент).
- Номинальные (Тип боли: колющая, режущая, ноющая).
- Порядковые (Общее состояние больного: удовлетворительное, средней тяжести, тяжелое, крайне тяжелое).
- Количественные (Температура тела, пульс, артериальное давление).
Пусть, например, у нас имеется некоторая информация о N пациентах. История болезни каждого из них состоит из информации о восьми различных характеристиках, а, также о том болен он сахарным диабетом или нет. Эта информация будет обучающей выборкой. Задача алгоритма - на основе обучающей выборки научиться по набору этих характеристик определять болен пациент (не из обучающей выборки) сахарным диабетом или нет.
Мы имеем N точек в 8-мерном пространстве.
Можно визуально представить расположение точек на бокс-диаграммах.
Можно спроецировать на двухмерную плоскость уровень глюкозы и индекс массы тела пациентов.
Задачей машинного обучения будет нахождение зависимости между набором характеристик и диагнозом. Однако, очевидно, что при небольшой обучающей выборке доверять программе будет нельзя. А вот при обучающей выборке в несколько сотен тысяч человек, машина будет правильно диагностировать в 99% случаев.
Обучение без учителя
Определение
В случае обучения без учителя, обучающая выборка состоит только из объектов. Пусть X - множество объектов. Задача программы - определить, как элементы из X связаны между собой. В частности, решить задачу кластеризации, т.е разбить объекты на группы таким образом, чтобы в одной группе оказались объекты похожие, а в разных - существенно различные.
Практическое применение
Рассмотрим в качестве примера задачу выделения групп родственных естественных языков на основе списка Сводеша. Список Сводеша - это список из 207 слов базового словаря языков.
На основе списка Сводеша можно построить матрицу родственности между языками.
В качестве заключения
Теперь каждый, кто осилил статью имеет общее представление о машинном обучении. Если хабрасообществу покажется интересным подобный цикл статей, мне будет интересно написать целый курс по машинному обучению в подобном стиле, и, возможно, рассмотреть несколько реальных задач с приведением исходного кода их решения.
--------------------
Пятеро искусственных собеседников провалили тест Тьюринга
Опубликовано
17.10.2008 00:38 автором
sunday Все пятеро программ - искусственных собеседников, участвовавших в конкурсе Университета Ридинга, провалили тест Тьюринга, передает BBC News. Для победы требовалось, чтобы судьи приняли программу за человека хотя бы в 30 процентах случаев. Разговор человека и машины длился всего пять минут
Прошедшие тесты были частью восемнадцатой премии Лебнера (Loebner Prize), вручаемой ежегодно авторам лучших искусственных собеседников. Первый результат в нынешней проверке, 25 процентов, показала программа Elbot, пишет The Guardian. Программа обманула 3 из 12 судей, отмечает Associated Press. Создатель Elbot, Фред Робертс, несмотря на поражение, получит премию в три тысячи долларов.
Изначально в конкурсе должны были участвовать шесть программ, однако искусственную собеседницу Alice не смогли вовремя настроить, и она выбыла.
Тест Тьюринга предложен в пятидесятых годах британским математиком и криптографом Аланом Тьюрингом в качестве ответа на вопрос "Может ли машина мыслить?". Тьюринг считал, что точного ответа быть не может, но если человек в ходе переписки сочтет собеседника-машину также человеком, то можно считать данную программу "мыслящей".
До сих пор ни одна программа не смогла пройти тест Тьюринга. Сам математик считал, что к 2000 году программы смогут проходить тест в 30 процентах случаев.
Ссылки по теме
-
Chatbots take the ultimate AI test - and fail - The Guardian, 13.10.2008
-
UK university holds artificial intelligence test - Associated Press, 12.10.2008
-
Test explores if robots can think - BBC News, 12.10.2008
-
Британцы устроят состязание компьютерных программ-болтунов - Lenta.ru, 06.10.2008
Сайты по теме
-
Elbot http://lenta.ru/(Просмотров всего: 2,092, сегодня: 1 )
Случайно выбранные посты:
Copied from:
http://articles.org.ru/blog/?p=742 -----------------------------
Машинное обучение. Часть 2