Читать книгу "Искусственный интеллект - Мередит Бруссард"
Шрифт:
Интервал:
Закладка:
А теперь выполним классическое практическое упражнение: при помощи машинного обучения предскажем, кто выжил во время крушения «Титаника». Представим, что происходило на корабле сразу после столкновения с айсбергом. Уже видите Леонардо Ди Каприо и Кейт Уинслет, скользящих по палубам корабля? Это неправда – но оживляет воображение, если вы смотрели фильм столько же раз, сколько и я. Вероятнее всего, вы видели фильм «Титаник» хотя бы раз. По итогам проката фильм заработал $659 млн в США и $1,5 млрд во всем мире, что делает его величайшим и вторым самым кассовым фильмом в истории. (Джеймс Кэмерон, режиссер «Титаника», также автор самого кассового фильма в истории – «Аватара».) Его крутили в кинотеатрах в течение почти что года, в том числе потому, что молодые люди приходили смотреть его снова и снова[87]. Фильм «Титаник» стал частью нашей коллективной памяти подобно крушению настоящего «Титаника». Наш мозг нередко путает реальные события с реалистичной выдумкой. Досадно, но это нормально. Из-за путаницы усложняется восприятие риска.
Мы делаем выводы на основе эвристик, неформальных правил. На эти эвристики влияют эмоционально насыщенные истории, которые к тому же легко запомнить. Например, на колумниста The New York Times Чарльза Блоу в детстве напала злая собака, содрав почти всю кожу с лица. И, будучи взрослым, вспоминает Блоу в мемуарах, он весьма настороженно относился к незнакомым собакам[88]. Что очевидно. Нападение крупного животного на человека в детстве становится травматичным опытом, и, конечно, воспоминания об этом всплывают каждый раз, когда человек видит собаку. Читая книгу Блоу, я сопереживала маленькому мальчику, была напугана вместе с ним. На следующий день после прочтения мемуаров в парке рядом с моим домом я увидела мужчину, выгуливающего собаку без поводка. Я тут же подумала о Блоу и о том, насколько тем, кто боится собак, некомфортно видеть собаку без поводка. Я подумала о том, что случится, если собака вдруг разозлится. История повлияла на то, как я оцениваю риск. Те же закономерности мышления приводят к тому, что после просмотра выпусков «Закон и порядок: Специальный корпус» (Law & Order: SVU) многие закупаются перцовыми баллончиками или после просмотра фильма ужасов проверяют заднее сиденье машины на предмет неприятных сюрпризов. Это явление специалисты называют эвристикой доступности[89]. Первыми приходят на ум истории, которые мы либо считаем наиболее важными по той или иной причине, либо часто с нами случаются.
Возможно, как раз из-за того, что крушение «Титаника» глубоко укоренилось в нашей коллективной памяти, эту историю отрабатывают в рамках практики машинного обучения. В частности, список пассажиров «Титаника» используется для того, чтобы на основе этих данных студенты научились генерировать прогнозы. Упражнение всегда работает, поскольку почти все студенты видели фильм или знают о катастрофе. Кроме того, здорово, что не приходится тратить время на прояснение исторического контекста, можно переходить сразу к интересной работе с прогнозированием.
Я хочу провести вас через увлекательную часть при помощи обучения с учителем. Мне кажется важным видеть в точности то, как обучается машина. Кроме того, если хотите выполнить упражнение самостоятельно, в сети можно найти достаточно сайтов с уроками по машинному обучению. Я собираюсь предложить вам упражнение с платформы DataCamp. Согласно Kaggle, эта платформа – первый шаг для тех, кто хочет включиться в рынок труда аналитики данных[90]. Kaggle, принадлежащий родительской компании Google Alphabet, – это сайт, где люди соревнуются между собой, стремясь набрать наибольшее число очков за анализ массива данных. Аналитики данных участвуют в соревнованиях в составе команд, оттачивая собственные навыки и практики взаимодействия. Этот сайт также полезен с точки зрения обучения студентов анализу данных или для поиска массивов данных.
Чтобы пройти урок DataCamp о крушении «Титаника», мы обратимся к языку Python и нескольким его популярным библиотекам: pandas, scikit-learn и numpy. Библиотека – это небольшой набор функций, выложенный где-то на просторах интернета. Импортируя библиотеку, мы делаем функции доступными для программы, которую пишем. Можно представить ее в виде настоящей библиотеки. Я состою в системе Нью-Йоркской публичной библиотеки. Если я еду куда-то больше чем на неделю, стараюсь получить карту посетителя в местной библиотеке. И пока я являюсь членом местной библиотеки, я могу обращаться как к основным ресурсам Нью-Йоркской библиотеки, так и к уникальным источникам местной. На языке Python у нас есть ряд встроенных функций: они – Нью-Йоркская библиотека. Импорт новой библиотеки подобен регистрации в локальной библиотеке. Так, наша программа может использовать как ключевые функции из базовой библиотеки Python, так и замечательные функции с открытым кодом (open-source), написанные учеными и разработчиками, которые как раз и опубликовали, например, библиотеку scikit-learn.
Библиотека pandas, которую мы также будем использовать, имеет контейнер DataFrame, который «вмещает» набор данных. Такой тип пакета также называют объектом, как в объектно-ориентированном программировании. Объект – это такой же общий термин в программировании, как и в обычной жизни. В программировании объект – концептуальная обертка небольшого набора данных, переменных и кода. Таким образом, маркер объект становится для нас первой точкой опоры. Нам необходимо представить наш набор битов как нечто упорядоченное, о чем можно размышлять и говорить.
Во-первых, разделим наш набор данных пополам: на данные для обучения и на тестовые данные. Мы разработаем и обучим модель на данных для обучения и затем проверим на тестовом наборе. Помните, какой из двух ИИ тут работает – общий или слабый? Слабый. Итак, начнем:
import pandas as pd
import numpy as np
from sklearn import tree, preprocessing
Мы только что импортировали необходимые нам библиотеки. Каждой библиотеке мы дали собственные названия – pd для pandas, np для numpy. Теперь у нас есть доступ ко всем функциям обеих библиотек, и мы можем решить, какие из них нам нужны. Из библиотеки scikit-learn мы возьмем только две: первая называется tree, вторая – preprocessing.
Затем импортируем данные из файла. CSV (comma-separated values), который также можно найти в интернете. В частности, нужный нам. CSV-файл находится на сервере Web Services (AWS), принадлежащем Amazon. Нам это известно потому, что ссылка файла (которая начинается с http://) выглядит как s3.amazonaws.com. Файл. CSV представляет собой структурированные данные, где каждая колонка отделена запятой. Мы скачаем с AWS два файла с данными о «Титанике» – обучающий и тестовый, и они оба будут в формате. CSV. Импортируем их:
Внимание!
Сайт сохраняет куки вашего браузера. Вы сможете в любой момент сделать закладку и продолжить прочтение книги «Искусственный интеллект - Мередит Бруссард», после закрытия браузера.