Поскольку это лишь первая часть, в которой мы поймем что такое ИИ, в чем заключается одна из его главных слабостей - начнем, как полагается айтишникам, издалека, с мемчиками и максимальным осуждением, а далее углубимся в тему и будем смотреть живые примеры и код с красивыми графиками. Людям знакомым с машинным обучением можно этот этап пропустить, вы уже не самые маленькие :).
Искусственный интеллект в понимании среднестатистического обывателя, эта такая штука, которая делает что хочет, ведет себя как ей нравится, никого не слушает и обязательно захватит мир, если мы его будем развивать.
Естественно, ни о какой достоверности или близости таких рассуждений к реальности, как и во всем среднестатистическом, речь идти не может. Искусственный интеллект, на базовом своем уровне, это некоторое количество условий, представляющих собой, в совокупности алгоритм принятия решений, работающий по принципу "Если идёт дождь, стоит взять с собой зонт", или другими словами - ищет закономерности. Звучит не так страшно? А мы ведь только начали.
С точки зрения мира, машинное обучение как подход к решению задач, очень молод. Первые шаги в этом направлении были проделаны только в 1950-ых, и имели "под капотом" чистую статистику. Решали такие алгоритмы простые, с точки зрения людей, задачи. Если спуститься еще ниже, можно сказать, что применение корреляционного анализа (это там, где "Если бьют беги, если дают - бери") уже можно назвать машинным обучением, а сам метод, между прочим, был придуман в далеком 19-ом веке. И да, я незаметно перешел на какой-то сухой и неинтересный термин "Машинное обучение".
"Как понять, занимаетесь вы искусственным интеллектом или машинным обучением? Если у вас открыта среда разработки, то это машинное обучение. Если вы нажимаете кнопки в Power Point, то это искусственный интеллект."
Так повелось, что в новостные сводки и речи политиков попадают лишь самые громкие, самые провокационные термины, которые призваны продать, но не объяснить "с чем это едят". Мы видели это уже много раз, специалисты по BIG DATA и Сloud computing точно поймут, про что я говорю. Но мы отвлеклись, поговорить мы хотели про другое.
Для понимания проблемы, необходимо сначала понять, что же такое машинное обучение, как оно работает. Если на пальцах, процесс выглядит следующим образом:
Собрать данные из области, где мы хотим нашу
машинумодель заставить решать задачи.Выбрать тип модели, которая будет искать в данных зависимости.
Запихнуть в алгоритм собранные ранее данные, значение которых мы осознали, поскольку последствия событий мы уже пережили.
Запихивать данные по мере их поступления и получать ответ нашей модели, когда мы еще не знаем, что именно они означают, рассчитывая, что так оно и будет, когда время дойдет до последствий.
Исходя из этого, можно с уверенностью сказать, что:
А еще можно сказать, что нам остается только надеяться на то, что модель действительно ответит на наш вопрос правильно. И все бы ничего, когда речь идет о ценах на жилье, ценах на машины, голосовом помощнике, где обычный сценарий использования - прикинуть сколько мы заработаем в следующем году или типичное "Сири позови Алису". А что делать, когда мы захотим ответить на вопрос о том, есть ли у человека рак и сколько ему осталось жить? Что будет, когда к нам придет врач, которому надо назначить лечение и спросит о том, почему наша модель сказала, что человек болен? В такой ситуации мы "сядем в лужу", и останется лишь промямлить "ну искусственный интеллект же".
И тут (примерно в 70-ых) умные дяди мира сего пришли ко мнению, что просто все бросить, отгородиться этикой и игнорировать такие области - не вариант, нужно придумать что-то, что позволит нам сказать, почему модель дала именно такой результат, и отвечать на вопрос "Почему?", помимо привычного нам "Что?".
Давайте для примера рассмотрим простейший случай, когда у нас есть данные о динамике стоимости квартиры за прошедшие несколько лет (Рис. 1, слева). Мы хотели бы на основании этих данных сказать, сколько эта квартира будет стоить в следующем году(Рис. 1, справа), и для этого построили такую линию, которая минимизирует сумму расстояний от прямой до всех точек (наблюдений). Такой прием называется Линейной регрессией, и строится по простейшей формуле прямой, которая всем нам известная:
Где m — наклон линии, а b — его y-сдвиг
Можно поиграться тут - https://colab.research.google.com/drive/1_hr2-CQIb5gpBlMnQYI-U_QIDB9L9-tT#scrollTo=6KtWO4tvQD33 меняем random state, запускаем и радуемся.
Путем простейших действий, мы уже можем сказать, что же там, в следующем году у нас случится. Да, точность такого предсказания будет сомнительна, но если нас спросят, почему мы дали тот или иной ответ, мы ткнем на график и с умным видом скажем "Тренд видишь?". Это и будет объяснением нашего решения, т.е. мы уже сможем худо-бедно обосновать его.
И если в случае простейшего алгоритма, объяснить что-то еще можно, поскольку вся информация удобно размещается на одном рисунке, то что сказать, когда признаков у нас не один (год), а сотня? А если качество решения нас не устраивает и нам нужна модель серьезнее, вроде этого ... "нечто"(Рис. 2)?
К 90-ым, подходов, методов, алгоритмов и способов придумали массу. За основу брали, как статистические законы, так и алгоритмические свойства, но цель у всех была одна - сказать, что же там, в этой "черной коробке" происходит.
Вот мы и подошли к концу первой части. Мы разобрались, что такое машинное обучение и с чем его едят, какая проблема нас ожидает при его использовании и готовы перейти к изучению подходов, которые откроют нам глаза на то, как видит наш мир ИИ. Следующая часть нашего маленького сериала выйдет в ближайшее время и ссылка будет где-то в комментариях, не теряйтесь.