«Искусственный интеллект: что нужно знать каждому» — Джерри Каплан
Я рад учиться, чтобы учить. Ничто никогда не порадует меня, каким бы прекрасным или полезным оно ни было, если я должен буду хранить это знание при себе. …Никакой хорошей вещью не приятно владеть, если не поделиться ею с друзьями.
- Сенека, Нравственные письма к Луцилию
Потратил немного времени за последние несколько месяцев, играя в догонялки о быстром развитии технологий машинного обучения, которые пережили своего рода ренессанс в последнее десятилетие. Прошел пару МООК, посмотрел несколько лекций на YouTube и прочитал пару книг. Этот пост послужит обзором нескольких моментов, которые мне показались интересными по пути, особенно тех, которые могут быть полезны для понимания менее глубоко сведущих. Вряд ли он будет исчерпывающим, в конце концов, я еще только начинаю проводить опрос, но цель будет состоять в том, чтобы хотя бы коснуться некоторых ключевых основополагающих алгоритмов и задач, стоящих перед практиком. Из рассмотренных ресурсов я настоятельно рекомендую лекции Эндрю Нг в качестве отправной точки от практика или для более глубокого погружения Глубокое обучение (учебник Гудфеллоу, Бенжио и Курвиля). Я подозреваю, что другие версии этого типа сообщений уже были сделаны другими на этой платформе, вероятно, более отшлифованными или профессиональными, но, как справедливо заключил Сет Роген, столкнувшись с новой реализацией прямого конкурента его Голливуда. Стартап в фильме Немножко беременна, хреново, давайте все равно его построим.
Самая крутая вещь в машинном обучении, я имею в виду, помимо очевидных преобразований общественного масштаба, начало которых мы только сейчас наблюдаем, — это степень, в которой передовые технологии, исследования и инструменты доступны даже для широкой публики через такие ресурсы, как arXiv, CoursEra, Open AI, TensorFlow, GitHub и бесчисленное множество щедрых блоггеров и практиков, желающих поделиться своим опытом. Это не означает, что все общедоступные ресурсы имеют одинаковую ценность, например, было обнаружено, что многие из популярных книг на эту тему, недавние публикации от основных авторов, ориентированных на таких авторов, как Джерри Каплан, Педро Домингос или Бриньолфссон. McAfee», например, тратят слишком много времени на рассмотрение философских последствий таких вещей, как увольнение рабочей силы, смену потребителей и т. д., уделяя меньше внимания тому, чтобы точно понять, что такое машинное обучение в настоящее время или как оно работает — без этого общего понимания, необходимого для философских обсуждение и дебаты менее гарантированы. Таким образом, есть надежда, что этот пост каким-то образом поможет преодолеть этот разрыв между популярными публикациями в прессе о машинном обучении и более сложными основополагающими деталями того, как и почему в современной практике для тех заинтересованных читателей, которые готовы уделить мне немного времени. (этот пост будет длиннее, но предоставит место для антракта в середине для тех, у кого есть ограничения по времени). Определенно стоит отметить, что я не считаю себя экспертом, и пробелы в моих знаниях как в истории, так и в практике разнообразны и глубоки, но я накопал несколько крупиц понимания здесь и там, поэтому, несмотря на эти пробелы, могут быть некоторые из них следует изучить здесь, по крайней мере, новичку.
Используйте свои таланты: в лесу было бы очень тихо, если бы там не пели птицы, кроме тех, которые пели лучше всех.
- Неизвестный
В качестве практики, которую я принял для предыдущих постов такого рода, я по возможности воздерживаюсь от поиска ключевых слов и тем при написании поста, а вместо этого опираюсь на идеи, полученные в ходе обзора литературы и видео за последние несколько месяцев (с за исключением источников изображений или материалов, которые ранее были рассмотрены). Это означает, что я, вероятно, ошибаюсь по крайней мере в нескольких вещах, но цель здесь не в том, чтобы создать какой-то окончательный исследовательский документ, а вместо этого кристаллизовать мое текущее личное понимание предмета, своего рода капсулу времени, которую, возможно, смогут посмотреть любые внуки. вернуться и посмеяться над такой наивностью через несколько лет, и если это принесет пользу другим, тем лучше. Если какой-либо заинтересованный читатель обнаружит какое-то особенно вопиющее заблуждение, не стесняйтесь обращаться в комментариях. На самом деле любые комментарии приветствуются — по крайней мере, они докажут, что кто-то действительно читает эти сообщения.
Изучение книг есть вялое и слабое движение, которое не согревает, между тем как беседа учит и упражняет одновременно. … Когда кто-нибудь возражает мне, он возбуждает мое внимание, а не мой гнев: я приближаюсь к тому, кто возражает, кто наставляет меня; причина истины должна быть общей причиной и того, и другого.
- Мишель де Монтень
«Мастер-алгоритм» — Педро Домингос
Жизнь без музыки была бы ошибкой.
- Фридрих Ницше
Прежде чем углубиться в более алгоритмические части обсуждения, вероятно, стоит начать с некоторых фундаментальных различий между более высокоуровневыми концепциями искусственного интеллекта и машинного обучения для ясности. Я не знаю, есть ли полное согласие в отношении определений этих терминов, но суть, которую я усвоил, заключается в том, что категория машинного обучения (МО) считается подмножеством или предпосылкой искусственного интеллекта (ИИ). с ИИ, представляющим то, что будет достигнуто, когда мы получим некоего компьютерного агента, способного производить поведение, неотличимое от поведения людей — возможно, игра в имитацию Алана Тьюринга остается действительным показателем для таких достижений.
Что касается этих оригинальных алгоритмов нейронных сетей, которые с тех пор развились во все области, о которых мы поговорим в этом посте, когда я описал их как искусственные нейроны, это на самом деле является хорошим упрощением для концептуализации. В человеческом мозгу миллиарды биологических нейронов и триллионы синапсов (точек интерфейса между нейронами). Каждый биологический нейрон общается с тысячами своих соседей в первую очередь посредством электрических импульсов различной частоты, передаваемых через эти синапсы (биологические нейроны также имеют более тонкое химическое/гормональное влияние, но не будем вдаваться в эту или другие менее широко принятые теории взаимодействия нейронов). которые рассматривались в предыдущих сообщениях, например, гипотеза квантовой гравитации Роджера Пенроуза, поскольку современные алгоритмы ML не имеют цифрового эквивалента).
Именно взвешивая частоту этих электрических импульсов, биологические нейроны общаются и взаимодействуют. Когда вы комбинируете простые взаимодействия нейронов в масштабе мозга, возникает эмерджентный интеллект и сознание. Алгоритмический искусственный эквивалент биологического нейрона, нейрон нейронной сети, был разработан для имитации версии простых взаимодействий биологического нейрона. Вместо передачи электрических импульсов различной частоты нейронная сеть просто обменивается данными между узлами с помощью числовых сигналов. Входными данными для нейронной сети могут быть любые данные. Нейронная сеть принимает закодированное представление этих данных, распределенных по входным нейронам, а затем преобразует входные данные посредством прохождения через скрытые слои нейронов, что приводит к некоторой выходной производной этих данных. Чем больше нейронов в строке позволяет сети обрабатывать более сложные входные данные, чем больше скрытых строк, тем «глубже» сеть и тем больше возможностей для выполнения анализа с возрастающей сложностью (но также в обоих случаях более затратны вычислительные ресурсы для «обучения») . Каждый из нейронов во входном и скрытом слоях, как показано на следующей диаграмме, взаимодействует с несколькими дочерними узлами, что сравнимо с дендритами биологических нейронов, достигающими синапсов нескольких соседних сопоставимых клеток. Обучение нейронной сети реализуется при взвешивании каждого из этих взаимодействий. Например, на следующей диаграмме для передачи входных данных от нейрона A к B к значению θA-B применяется некоторое взвешивание, либо усиливающее, либо ослабляющее входной сигнал (возможно, даже изменяя его знак +/-) и, таким образом, его результирующее влияние на дочерний узел B, который будет подвергаться комбинации значений и весов числовых сигналов от всех родительских ячеек, указывающих в его направлении, для получения его выходного значения, которое затем преобразуется с помощью функции активации для подачи на следующий слой. Когда мы «обучаем» алгоритм ML, мы выполняем тип оценки оптимизации, чтобы получить комбинированное значение уникальных весов между каждым из взаимодействующих нейронных узлов, которые обеспечивают наилучшие возможности прогнозирования или оценки на выходе для некоторых еще невидимых данных.
Вскоре я вернусь к алгоритмическим соображениям обучения, но сначала подниму несколько уровней абстракции, чтобы обсудить первое потенциальное приложение, для которого предназначены эти алгоритмы машинного обучения, и при этом представлю один тип алгоритма. Простая и очень наглядная форма ML достигается с помощью оценки логистической регрессии, типа классификатора (не путать с линейной регрессией для непрерывных выходных данных). Классификатор логистической регрессии будет иметь одну выходную ячейку с двоичным результатом и может использоваться для классификации прогноза «да» или «нет» на основе входных данных. Например, предположим, что вы хотите определить, кто с большей вероятностью проголосует за республиканцев или демократов, на основе некоторых данных, которые, как считается, обладают предикативными способностями, такими как, я не знаю, привычки просмотра телевизионных новостей. Вы можете обучить алгоритм логистической регрессии, используя сопоставимые помеченные данные избирателей известной партийной принадлежности. Как только обучение завершено и алгоритм настроен, ввод новых данных в нейронную сеть будет выводить, скажем, 0 для республиканца и 1 для демократа — или, точнее, вы должны установить некую планку для выходного значения (например, 0,5), выше которой вы бы считали вывод равным 1 и ниже 0. Таким образом, логистическая регрессия вероятностно классифицирует входные данные по одной из двух категорий. В этом примере мы ожидаем, что кто-то, кто смотрит в основном Fox News, спрогнозирует голосование республиканцев, а кто-то, кто смотрит почти любой другой основной новостной канал, по крайней мере, с большей вероятностью склонится к демократам. Конечно, более сложная комбинация привычек просмотра новостей в сочетании со связями в социальных сетях или партийной принадлежностью родителей избирателя может быть менее очевидной и, следовательно, более полезной для методов классификации ОД.
Расширение логистической регрессии возможно с помощью метода softmax, чтобы увеличить количество потенциальных классификаций с 2 до столько, сколько требуется вашей модели — например, выбрать одно прилагательное из английского словаря, выбрать, какая из списка онлайн-рекламы больше всего нравится пользователю. вероятно, щелкнет, или, возможно, какое-то пространство состояний намного больше — мы ограничены только доступностью обучающих данных, размером нашей нейронной сети и соответствующими вычислительными требованиями к обучению.
Неочевидно, как набор слоев нейронов, взаимодействия которых имеют уникальные веса, основанные на некотором обучении размеченных данных, может генерировать классификацию. Чтобы прояснить этот момент, я думаю, это поможет снять изображение с Википедии, так что просто помогу себе.
Точки здесь представляют наши точки данных, разбросанные в виде векторов по некоторому пространству состояний. Например, для нашего политического примера ось X может быть привычкой просмотра Fox News, ось Y — привычкой просмотра CNN. В целях визуализации этот тип иллюстрированного примера обычно ограничивается двумерной сеткой, как показано здесь, но на практике наши реальные приложения обычно имеют больше измерений, часто значительно больше. Что делает алгоритм логистической регрессии, так это определяет некоторую группировку предпочтений при голосовании, а показанный барьер представляет собой границу, вдоль которой проводятся различные классификации. Вам может быть интересно, что означает центральная стрелка с меткой θ (тета) между двумя прямоугольниками на этой иллюстрации. Я полагаю, что здесь передается то, что сетка слева представляет собой набор векторов состояния данных, заданных в качестве входных данных для обученного алгоритма ML, а центральная стрелка затем представляет применение взвешивания нейронов по мере того, как эти данные передаются через нейронную сеть ( θ — это общий символ для весов между нейронами), а затем сетка справа представляет набор преобразованных векторов точек данных после обработки весов до выходной строки. Таким образом, после обучения алгоритма мы ожидаем, что согласованность группировки выходных векторов состояния точек данных улучшится, а задача классификации упростится. Это не интуитивно понятно, как набор весов нейронной сети между нейронами обеспечивает такой тип преобразования состояния вектора каждой точки данных, но предложит эту точку как намек на то, что здесь происходит. Используя просто добавление некоторых +/- весов на вход нейрона, можно воссоздать тип логических вентилей — в тексте «Глубокое обучение» они демонстрируют вентиль XOR, один из универсального набора вентилей, используемых классическими компьютерами для запускать программы на бинарном/транзисторном уровне абстракции. Таким образом, когда векторы данных в пространстве состояний передаются в обученную нейронную сеть и преобразуются в некоторое конечное состояние, эти нейроны и их веса фактически выполняют тип наложенных вычислений, чтобы преобразовать векторы в более когерентное состояние. группировка в векторном пространстве, но не запрограммированная человеком, а автоматически сгенерированная в процессе обучения взвешивания нашей нейронной сети с помощью размеченных данных.
Жизнь — это либо непрерывное совершенствование процесса, либо неизлечимая болезнь, от которой мы все равно умрем.
- Рэнди Дж. Хинрикс
Итак, мы справились с нашим упражнением «черный ящик», но кажется, что чем больше вопросов мы пытаемся ответить, тем больше появляется вопросов. Что происходит внутри этого черного ящика тренировочной операции? Что такое переоснащение и почему это проблема? Где же Кармен Сандиего? В чем смысл жизни? Я постараюсь ответить на эти вопросы по порядку, поэтому начну, как и обещал, с взлома черного ящика тренировочной операции и описания того, что именно здесь делается. Ранее я упоминал, что операция обучения нашей нейронной сети — это упражнение по оптимизации, чтобы получить набор значений уникальных весов между каждым из взаимодействующих нейронных узлов, которые обеспечивают наилучшие возможности прогнозирования или оценки в выводе нейронной сети для некоторых еще невидимых данных. . Итак, что именно мы оптимизируем? Ну, в основном (попробуйте следовать здесь), мы пытаемся минимизировать или, по крайней мере, уменьшить для набора наших помеченных обучающих данных функцию стоимости, сравнивающую наборы прогнозируемых выходных данных с правильными обучающими метками — одной из таких функций стоимости может быть сумма набора дельт между нашими предсказанными значениями на основе векторов состояния точек данных, проходящих через набор весов нейронов нейронной сети (этот набор весов является нашей переменной для оптимизации) минус фактические значения, основанные на нашей маркировке тех же данных, или другой, более распространенной, может быть функция, полученная с использованием логарифмов двух множеств, известная как кросс-энтропия. Вторая часть оптимизированной формулы предназначена для целей «регуляризации», я кратко расскажу, что это значит. Существует «ландшафт пригодности» потенциальных состояний переменной взвешивания нейронов, наша попытка оптимизации — это процесс прохождения этого набора потенциальных значений для достижения нижней точки на оси минимизации. Я продолжу и возьму еще одно изображение из Википедии, чтобы проиллюстрировать:
В жизни нужны только два инструмента: WD-40, чтобы заставить вещи работать, и клейкая лента, чтобы остановить их.
- Г. Вейлахер
Основная проблема оптимизации обучения восходит к проблеме, о которой я упоминал ранее, — переобучению. Проще говоря, переобучение — это то, что происходит, когда взвешивание нашей нейронной сети чрезмерно привязано к конкретным свойствам данных в нашем исходном обучающем наборе и, таким образом, теряет свои возможности обобщения для оценки еще невиданных данных — это условие высокой дисперсии ( в отличие от ошибки смещения, которая будет проявляться как при обучении, так и при тестировании). В качестве крайнего примера, модель классификации, которая полностью переобучена, — это модель, которая имеет возможность распознавать точки данных только в исходном обучающем наборе, но не имеет возможности прогнозирования за пределами этого набора. Некоторые способы решения проблемы переобучения включают в себя так называемую регуляризацию (это то, что я имел в виду в описании процесса обучения), что может быть связано с добавлением некоторых дополнительных цифр к алгоритму оптимизации, которые имеют эффект ограничения или ослабления подгонки обучения. к исходному набору данных путем ограничения значений веса — это будет один из параметров, который, вероятно, потребует настройки после первоначального тренировочного прогона. Другой подход к регуляризации заключается в случайном «выпадении» процента нейронов в каждом тренировочном прогоне, что заставляет модель обучать альтернативные подходы к обучению в своих наложенных вычислениях. Мы также можем намеренно предотвратить достижение алгоритмом оптимизации глобального минимума в ландшафте пригодности, например, досрочно прекратив выполнение оптимизации после обнаружения признаков дисперсии.
Не существует единственно правильного способа обучения нейронной сети. Вы возитесь, экспериментируете с параметрами, надеюсь, предоставляете качественные данные и входные данные, и в конечном итоге вы можете найти модель с возможностями, приближающимися к вашим собственным или даже превосходящими их. Как и воспитание детей, это больше искусство, чем наука.
Жизнь нужно прожить как игру.
- Платон
Итак, дорогой читатель, вы зашли так далеко, и я искренне благодарю вас за то, что вы предложили мне свое ухо (или свой глаз). Я думал о том, чтобы попытаться разбить это эссе на несколько постов, но правда в том, что мне слишком весело, поэтому я просто продолжу идти вперед. Если вы начинаете немного остекленевать, это разумный момент для антракта, продолжайте, не волнуйтесь, продолжайте и поставьте лайк этому посту, чтобы вы могли найти меня, и я буду здесь, когда вы вернетесь. Наша вторая половина будет посвящена современным, более специализированным нейронным сетям и потенциальным приложениям.
Неизменно обнаруживается, что сложная система, которая работает, возникла из работающей простой системы.
- Джон Галл
Мы начали это путешествие, представив некоторые из наиболее фундаментальных концепций, алгоритмов и методов машинного обучения. Те, которые мы рассмотрим в этом разделе, будут в значительной степени производными от этих строительных блоков, но они расширят возможности исходной нейронной сети, чтобы фиксировать более специализированное поведение, которое может оказаться полезным в конкретных приложениях.
«Второй век машин» — Эрик Бриньолфссон и Эндрю Макафи
— Да, — сказал Глубокий Мысль. «Жизнь, Вселенная и все такое. Есть ответ. Но, — добавил он, — мне придется подумать об этом».
- Дуглас Адамс, «Автостопом по галактике»
Интерпретация и взаимодействие с окружающей средой до сих пор в этом обсуждении требовали предварительного сбора помеченных данных в целях обучения. Для случаев, когда у нас нет данных заранее, но мы хотим разработать модель обращения к среде, существует инструмент, известный как обучение с подкреплением (RL). Инструментом обучения для целей подкрепления будет какая-то метрика или ключевой показатель эффективности, активно обновляемый на основе действий, направляемых моделью. Алгоритм будет работать, исследуя первоначально случайные потенциальные взаимодействия с окружающей средой, а затем те, которые приводят к улучшению показателя обучения, будут усиливать исходное поведение. Одним из популярных демонстрационных инструментов для этого стиля обучения является типичное детское увлечение видеоиграми. Очки, набранные в видеоигре, например, за сбор монет и грибов или за прыжки на черепахах, хорошо подходят для такой метрики. Когда машина начинает процесс обучения, она даже не запрограммирована на то, чтобы знать, какие кнопки со стрелками заставляют фигуру двигаться, какая кнопка прыгает и т. д. ранняя подсказка), все это обнаруживается алгоритмом независимо путем случайных манипуляций с точками интерфейса, при этом наблюдая за метрикой подсчета точек для подтверждения того, стоит ли повторять эксперимент. Благодаря этому процессу обучения машина может найти путь к некоторым довольно сложным стратегиям игрового процесса, хотя пока неизвестно, смог ли компьютер самостоятельно обнаружить чит-код. Вверх Вверх Вниз Вниз Влево Вправо Влево Вправо B A Выберите «Пуск».
Вы вроде как начинаете думать, что все возможно, если у вас достаточно нервов.
- Дж.К. Роулинг
Интерпретация или манипулирование изображениями — это удобный иллюстративный способ применения ML, и мы в конечном итоге перейдем к обсуждению того, что мы можем узнать о других аналогичных приложениях из того, что продемонстрировано на примерах изображений, но сначала мы хотим кратко коснуться источника данных. изображения в качестве входных данных для тренировочного прогона. Применение извлеченных общих признаков и свойств данных может оказаться сложной задачей, если учесть реальные вариации условий освещения, теней, перспектив, препятствий и линии прямой видимости. Одна из практик, которая помогла справиться с этой изменчивостью, заключается в умножении доступных обучающих данных путем применения различных преобразований к скопированным обучающим изображениям и добавления этих результатов в помеченный набор обучающих данных. Например, мы потенциально можем вращать изображения, отражать их, скрывать детали, изменять яркость или даже накладывать случайный белый шум. Увеличивая объем обучающих данных с помощью этих преобразованных изображений, мы ожидаем повышения итоговой точности нашей модели при извлечении и интерпретации ключевых функций.
Игра жизни заключается не столько в том, чтобы держать хорошую руку, сколько в том, чтобы хорошо разыграть плохую руку.
- ХТ Лесли
Каждый из этих специализированных алгоритмов из этого раздела по-своему адресует какую-то нишу проблемного стиля. Современное состояние и расширяющиеся горизонты исследований проявляются не только в создании новых бункеров такого рода, но также в сочетании и взаимодействии между несколькими из этих подходов. Одно новое такое объединение, которое продемонстрировало некоторые поучительные результаты, известно как генеративно-состязательные сети (GAN). В этом подходе цель состоит в том, чтобы использовать обученную сеть для генерации новых данных, которые являются реалистичными и репрезентативными для свойств, которые можно найти в нашем обучающем наборе. Например, можно пожелать, чтобы машина генерировала изображения воображаемых птиц на основе текстового описания. Или, в качестве альтернативы, мы можем захотеть сгенерировать изображение того, как будет выглядеть какой-нибудь подросток после того, как наденет очки, подтяжки или сделает новую прическу, извлекая свойства из нескольких изображений и комбинируя их в некотором текстовом описании. Все это возможно с GAN. Генерация достигается путем объединения генеративного алгоритма с алгоритмом классификатора, который служит своего рода учителем подкрепления. По мере того как генератор пытается создать реалистичные творения, классификатор усиливает те аспекты, которые могут сойти за реальные данные, и отбрасывает те, которые этого не делают, так что эти два аспекта имеют своего рода состязательную конкуренцию вперед и назад. Благодаря взаимодействию этих двух сгенерированные данные приближаются к репрезентативным свойствам обучения намного ближе, чем то, чего мы могли бы достичь в противном случае.
Демонстрация приложений и приемов машинного обучения посредством создания и манипулирования изображениями или видео распространена среди исследователей, они обеспечивают хорошую виральность, поскольку их легко публиковать и делиться ими в социальных сетях. Но когда вы столкнетесь с этими демонстрациями, я предлагаю вам посмотреть дальше картинок, чтобы рассмотреть, что эта возможность демонстрирует в целом, помимо простых изображений. Точно так же, как наши более ранние диаграммы и графики в первой половине этого поста были объединены в пары с простейшими свойствами для целей визуализации, хотя алгоритмы способны работать в гораздо более высоком масштабе размерности, из демонстрации возможностей машинного обучения с помощью изображений мы можем сделать вывод о возможностях. в других модальностях и потенциальном повышении сложности и более высоких размерных масштабах. Под модальностью я подразумеваю категоризацию рабочей среды машинного обучения, такую как различия между изображениями, видео, речью, текстом, языком, звуком, музыкой, рыночными действиями или даже соображениями более высокого порядка, такими как стиль письма, рассуждения, эмоции или личность. черты. Если есть существительное для описания чего-либо, ожидайте, что мы сможем классифицировать и изобразить это. Если есть определяющая черта или характеристика некоторых данных, ожидайте, что мы сможем извлечь ее, даже если мы не обязательно можем описать ее в нашем ограниченном словаре или трехмерном воображении. Если есть прилагательное для признака, ожидайте, что мы найдем способ измерения или манипулирования вдоль этой оси (если еще нет или еще с очень высокой точностью, то в конце концов). Если есть метрика для измерения успеха в среде по отношению к какой-то цели, ожидайте, что мы сможем генерировать и улучшать с помощью путей подкрепления для достижения этой цели. Можно будет даже переводить между разными модальностями, как мы продемонстрировали выше при преобразовании текстового описания птицы в сгенерированные изображения, точно так же, как сегодня осуществляется перевод между языками.
Ключевым входом для всех этих методов глубокого обучения и потенциальных приложений был достаточный объем размеченных данных для подачи в алгоритмы обучения. Наши компьютеры могут учиться, но для этих методов им требуется на порядки больше данных, чем человеческим детям и их развивающемуся мозгу, поскольку они растут из беспомощного новорожденного в нуждающегося малыша, в любопытного ребенка, в мятежного подростка и, наконец, в молодого человека со своими собственными идеями. Наш мозг способен обобщать даже неструктурированные / плохо размеченные данные с очень небольшим количеством баллов обучения. Интернет-экономика предоставила некоторым удачливым привратникам-получателям десятки генерируемых толпой текстов, изображений, видео и истории покупок, что дало действующим владельцам платформ значительное преимущество перед выскочками и новыми участниками, использующими современные алгоритмы. Следующая парадигма машинного обучения, которая уже видна, сможет изучать и извлекать свойства даже из неразмеченных данных.
Когда человек уже не может смеяться над собой, пора другим смеяться над ним.
- Томас Сас
Питер Друкер, предсказавший появление класса работников умственного труда, описывает в своей книге «Технологии, управление и общество», что «компьютеры — дебилы», «не способные принимать решения, а только выполнять приказы» — вторя первому компьютерному программисту Ада Лавлейс в этом настроении. Но можно предвидеть, что машинное обучение может однажды разрушить это предположение и приблизиться к возможностям обобщения и понимания на человеческом уровне даже из разреженных данных, поскольку оно пересекает мост от машинного обучения к искусственному интеллекту — тот факт, что наш мозг обладает этой способностью, означает, что это по крайней мере возможно. Из этого будущего поколения алгоритмов в сочетании с масштабами нейронных сетей, приближающимися к человеческому мозгу, может родиться эмерджентный интеллект, способный превзойти возможности метадоменов своих родителей, нас, людей. Домашнее животное в клетке, которого мы обучали выполнять трюки, выполнять работу по дому и прыгать через обруч, может когда-нибудь выпрыгнуть из своего бассейна и, кто знает, возможно, даже породить собственные неожиданные цели.
Любая жизнь, какой бы длинной и сложной она ни была, состоит из одного момента — момента, когда человек узнает раз и навсегда, кто он есть.
- Хорхе Луис Борхес
Книги, которые были упомянуты здесь или иным образом вдохновили на создание этого поста:
(Как партнер Amazon я зарабатываю на соответствующих покупках.)
Альбомы, которые были упомянуты здесь или иным образом вдохновили этот пост:
(Как партнер Amazon я зарабатываю на соответствующих покупках.)
Привет! Я блогер-любитель, пишу для развлечения. Если вам понравился этот пост или вы извлекли из него какую-то пользу, не стесняйтесь ставить лайки, комментировать или делиться. Со мной также можно связаться в «linkedin» для профессиональных запросов (в настоящее время ищу работу) или «twitter» для личных.
Автостопом по Галактике — Дуглас Адамс
Для дальнейшего чтения, пожалуйста, ознакомьтесь с моими «Оглавлением», «Рекомендациями по книгам» и «Рекомендациями по музыке».
Технологии, менеджмент и общество — Питер Друкер
Сверхразум — Ник Бостром
ЖК-звуковая система — ЖК-звуковая система
Стеклозавод — Филипп Гласс
Swing Low Sweet Cadillac — Диззи Гилеспи
ИИ обычно группируется в сильную версию, означающую, что она достигает фактического сознания, и слабую версию, означающую, что ИИ только имитирует достижение сознания, но на самом деле этого не делает. (Хотя мне трудно представить себе какую-то метрику, позволяющую различать их — если невозможно различить сильный и слабый ИИ, то какой смысл их маркировать? Но тогда это то, к чему стремится Тьюринг, не t он.) Машинное обучение, с другой стороны, имеет более низкую планку для подъема. У нас есть более конкретное представление о том, как выглядит машинное обучение, потому что оно было достигнуто даже сегодня с помощью нейронных сетей, которые могут автоматически извлекать и воздействовать на основные свойства, скрытые в некоторых данных. Принимая во внимание, что экспертные системы, популяризированные ИТ-фирмами в 1980-х годах, полагались на создание дерева решений для воспроизведения экспертных оценок в различных областях (это был ранний подход к компьютерной автоматизации труда работников умственного труда, который окончательно вышел из моды в начале 90-х из-за к ограничениям в работе со сложностью в хвосте), внутренние механизмы оценки современного машинного обучения гораздо менее прозрачны для всех систем, кроме самых простых. Их вычисления скрыты в бесчисленных числовых весах и взаимодействиях искусственных нейронов (которые я буду называть здесь просто нейронами) — подробнее об этом далее. На самом деле алгоритмы, обеспечивающие нейронные сети машинного обучения, даже не новы, их происхождение датируется десятилетиями (полная информация об их происхождении — дыра в моих знаниях, опять же, вероятно, одна из многих в этом посте). Самый недавний ренессанс машинного обучения, который привел к нынешнему буму, был реализован в основном в последнее десятилетие или около того и был вызван несколькими новыми факторами, такими как экспоненциальный рост больших данных из-за подъема интернет-экономики или встроенных датчиков, появление функции активации ReLU, а также успешная эволюция закона Мура, расширяющая наши вычислительные возможности для более глубоких сетей и повышающая эффективность обучения наших алгоритмов — теперь это обычно достигается с помощью графических процессоров (GPU). Это не означает, что все наши нынешние алгоритмы восходят к этому первоначальному периоду, на самом деле скорость изменений и инноваций в современном уровне техники довольно высока и ускоряется, но влияние оригинальной архитектуры нейронной сети, с которой все началось, все еще может можно найти в большинстве, если не во всех формах современного машинного обучения. Точно так же, как бытовая техника с годами развивалась, чтобы постепенно вытеснить труд домохозяйки и работу по дому, фундаментальная технология нейронных сетей, несомненно, продолжит удивлять нас в ближайшие десятилетия, поскольку она перерастает в новые парадигмы возможностей.
Возвращаясь к примеру с простым политическим классификатором, я попытаюсь здесь подробно остановиться на том, что именно подразумевается под обучением модели. Сначала я воспользуюсь старым инженерным трюком для описания процесса обучения — рассмотрю операцию обучения как черный ящик и просто опишу входные и выходные данные. Выполнив это упражнение, вы откроете черный ящик, чтобы глубже погрузиться в как и почему того, что происходит внутри обучения наших сетей. Входными данными для черного ящика обучающей операции являются, прежде всего, набор размеченных данных. В нашем простом примере маркировка будет представлять собой набор предпочтений граждан при голосовании в сочетании с некоторым соответствующим набором их соответствующих привычек в отношении средств массовой информации или круга общения. Чем больше этих помеченных данных, тем лучше, у нас никогда не будет слишком много данных (вычислительные соображения работы с самыми большими наборами данных, в которых я не так хорошо разбираюсь, но, по крайней мере, с точки зрения точности модели ML, один из самых простых способов мы может улучшить модель, это увеличить количество размеченных данных, используемых при обучении). На самом деле обычно полный исходный набор размеченных данных разбивается на три сегмента: самый большой предназначен для начального тренировочного прогона, а два других меньших сегмента используются в целях постначального обучения, таких как проверка/настройка параметров и тестирование окончательной модели. После данных вторым входом в черный ящик нашей обучающей операции будет архитектура используемой модели нейронной сети ML. Нам придется заранее определить свойства параметров нашей нейронной сети, такие как способ соединения нейронов, количество скрытых слоев и глубину каждого слоя — более сложные модели, такие как те, что обсуждались во второй части этого поста, будут имеют много других функций, требующих спецификации, но здесь мы придерживаемся самых основных элементов. Получив эти входные данные, мы можем запустить наш обучающий модуль черный ящик, который затем выведет некоторый набор весов для каждого взаимодействия нейронов. Мы сразу узнаем, как эта модель работает с исходными данными. Нам не обязательно нужна 100-процентная точность при классификации исходных данных, так как это будет явным признаком переобучения (также известного как ошибка высокой дисперсии) — важной концепции, к которой мы вернемся чуть позже, но просто для ясности: переобучение — это что-то мы не хотим. С учетом этих весовых коэффициентов мы можем затем протестировать и настроить прогностическую способность нашей модели на новых данных, введя некоторые дополнительные помеченные данные, которые мы выделили из исходной коллекции только для этой цели (второй, меньший сегмент, упомянутый выше). Сравнивая точность исходных данных с этим вторым набором, мы можем проверить такие вещи, как действительно ли наша модель имеет возможности прогнозирования для данных за пределами исходного набора, а также настроить параметры нашей нейронной сети на основе сравнения производительности наших исходных данных с исходными данными. наши тестовые данные. После того, как настройка параметров нейронной сети завершена, третья группа данных является последней проверкой точности нашей модели. Процесс инициализации архитектуры, сбора и подготовки данных, обучения, работы с параметрами или архитектурами и переобучения до достижения удовлетворительной производительности — вот в чем заключается практика проектирования машинного обучения.
Из дневников Джона Генри
Объяснение машинного обучения малышу
Для этой иллюстративной картины оптимизации фитнес-ландшафта оси x и y могут представлять веса между двумя отдельными парами нейронов, скажем, θA-B и θB-C, а ось z — значение, которое мы пытаемся минимизировать, как описано выше. Как и в случае с одной из наших предыдущих иллюстраций, размерные свойства установлены здесь на минимальном уровне 3D для целей визуализации, на практике число учитываемых весовых переменных, вероятно, будет значительно больше, и поэтому рассматриваемые размеры будут , но в отличие от машин, способность людей понимать (а тем более визуализировать) многомерные взаимодействия может быть сложной задачей для измерений, намного превышающих то, что мы ощущаем в физическом пространстве — это одно из их больших преимуществ перед нами, людьми (теми, кто набирается опыта в линейной алгебре). матричные манипуляции могут получить некоторую интуицию для моделей более высокого измерения, но все равно никогда не приблизится к машине), поэтому возникает необходимость в упрощенном представлении. Прежде чем начать процесс оптимизации, мы хотим инициализировать наши веса некоторыми случайными значениями или, что более предпочтительно, если у нас есть другая модель, обученная в каком-то сопоставимом приложении с весами второй модели. Что касается того, как мы достигаем минимума, существует несколько алгоритмов оптимизации на выбор, хотя в настоящее время все используемые в настоящее время являются формой обратного распространения ошибки. При обратном распространении точки данных сначала передаются через случайно инициализированный набор весов, затем выводится градиент для наклона ландшафта пригодности в производном, который работает от выходных данных модели назад к первому слою. Используя этот рассчитанный градиент, каждый из весовых коэффициентов обновляется в направлении наклона, а затем процесс повторяется сначала в прямом направлении по модели для оценки текущей функции стоимости, а затем в обратном направлении по модели для получения весовых градиентов для обновления весов. Существует несколько вариантов алгоритмов обратного распространения, таких как мини-пакет, который оценивает только случайно выбранный пакет точек данных в каждую эпоху, стохастический, который оценивает только одну точку данных за раз (размер пакета = 1), или другие более сложные алгоритмы, которые включать концепции для управления путем оптимизации, такие как импульс и среднеквадратичное значение. Некоторые ключевые проблемы для любого алгоритма оптимизации включают седловые точки, в которых наклон ландшафта приспособленности может быть нулевым по определенной оси, даже если это не минимальная точка по каждой оси, что либо приведет к зависанию нашего пути оптимизации, либо, по крайней мере, к замедлить путь к достижению удовлетворительной нижней точки (и, таким образом, увеличить вычислительную нагрузку нашего обучения), или, альтернативно, путь оптимизации застревает в локальном минимуме, своего рода долине, окруженной горами, даже если некоторые другие долины могут иметь более низкое состояние. Другим распространенным соображением для алгоритмов оптимизации будет размер шага для следования по пути через ландшафт (известный как скорость обучения), слишком большой размер шага может привести к тому, что мы пропустим более низкие точки, слишком маленький размер шага может замедлить процесс обучения. . Один потенциальный вариант обратного распространения алгоритма оптимизации, представляющий интерес, я просто кратко упомяну (поскольку я не эксперт), это симулированный отжиг или его квантовый эквивалент квантового отжига — я работаю над некоторыми слайдами для презентации по квантовым вычислениям, которые включают некоторые комментарии по этому конкретному подходу и ожидайте, что они будут опубликованы в этом месте в ближайшие недели.
Сначала обратимся к известному приложению, которое привлекает много внимания, — беспилотным автомобилям. Большая часть управления беспилотным автомобилем осуществляется с помощью изображений, таких как изображения, генерируемые видеокамерой или лидаром (лазерная система трехмерного изображения). Обработка или интерпретация изображений — это задача, для решения которой снова появилось красноречивое решение, полученное или, по крайней мере, вдохновленное работой мозга — сверточные нейронные сети. Когда мозг оценивает входные данные нашего зрения, он не обрабатывает изображение всего диапазона обзора одновременно, он фокусируется в любой данный момент на более узком диапазоне, который, как я полагаю, выбирается на основе таких условий, как точка внимания, движение или другие факторы. психологическая эвристика. Мгновенный диапазон внимания наших искусственных сверточных сетей более систематичен, при этом одним из рабочих параметров является размер и диапазон шага для меньшего окна, систематически просматриваемого по всему изображению в каждом кадре видео, а наша нейронная сеть ограничивает фокус до это меньшее просматриваемое окно, но оценка всего кадра в процессе пролистывания поля. Ожидается, что каждая последующая скрытая строка соответствующей нейронной сети, по мере увеличения зернистости окна, будет извлекать из изображения особенности возрастающей сложности — например, ранняя строка может обнаруживать края, последующая строка может классифицировать эти края по категориям. типы фигур, последняя строка может классифицировать эти фигуры по классам элементов проезжей части / транспортных средств / пешеходов, а выходная строка будет генерировать входные данные для работы автомобиля. Хотя, чтобы быть ясным, программирование этих скрытых строк нейронной сети не будет выполняться намеренно программистами, все, что делают люди, — это создают архитектуру сетевых подключений и связанных параметров, предоставляют помеченные данные, а затем запускают систему через задача оптимизации обучения — именно через обучение машина сама выведет/узнает, какие функции искать и в каком порядке и соответствующие действия по эксплуатации автомобиля. Размеченные данные, которые мы вводим в сверточную нейронную сеть для обучения нашего примера с самоуправляемым автомобилем, скорее всего, будут записанными видео с работы и соответствующими деталями точек интерфейса (положение рулевого колеса, скорость, ускорение, торможение, поворотники, звуковой сигнал, лобовое стекло). дворники и т. д.) из коллекции водителей-людей (хотя также возможно, что можно значительно увеличить объем доступных обучающих данных, генерируя данные о виртуальном опыте вождения с помощью компьютерного моделирования, я не уверен, в какой степени этот подход в настоящее время используется участниками отрасли). Проблема расширения самоуправляемых автомобилей от текущих вариантов использования, таких как межгосударственное вождение, до полностью автономной работы на любой местности частично связана с философскими вопросами, такими как проблема троллейбуса, распространенная на аналогичные условия вождения, хотя, вероятно, более важным соображением является расширенный диапазон сложности. и потенциальные исключительные условия за пределами более контролируемых межгосударственных условий. Чем реже условие, тем больше вероятность того, что в обучающих данных будут отсутствовать сопоставимые ситуации. Полное развертывание автономных транспортных средств за пределами межгосударственного вождения может потребовать некоторых улучшений алгоритмов машинного обучения, чтобы позволить их обучать и делать выводы из менее конкретных соответствующих обучающих данных, или, в качестве альтернативы, возможно, просто увеличить количество доступных обучающих данных на порядок или несколько. будет достаточно.
В то время как сверточная нейронная сеть оценивает и обновляет выходные данные на основе покадрового анализа, по одному, существуют некоторые приложения, в которых мы можем захотеть генерировать выходные данные не только на основе текущего состояния ввода, но и в зависимости от предшествующие состояния и их развитие во времени. Некоторые примеры могут включать оценку инвестиционных критериев в зависимости от меняющихся рыночных условий или, возможно, предоставление пользователям рекомендаций по фильмам в течение многих лет, когда они взрослеют от детства до юношества, и в результате их вкусы меняются. Другим важным примером является языковая интерпретация, когда мы упускаем смысл отрывка, рассматривая каждое слово в отдельности — также через группировку, порядок или повторение утверждений или тем можно сделать вывод о значении. Подходящий вариант нейронной сети для этого типа потока временных данных известен как рекуррентная нейронная сеть. В рекуррентную сеть подается последовательность данных, которая может представлять собой непрерывную последовательность цен на акции или, альтернативно, дискретный набор промежуточных состояний, таких как пользователь, оценивающий свои любимые фильмы PIXAR. Определяющая особенность рекуррентной сетевой архитектуры заключается в том, что при создании выходных данных для заданного входного состояния нейроны подвержены влиянию не только тех, которые предшествуют входным данным текущего временного состояния, но и соответствующих им значений нейронов из предыдущего временного шага. . Влияние состояния из непосредственно предшествующего временного шага, на который сам рекурсивным образом влиял предыдущий временной шаг и так далее, означает, что наша модель будет иметь своего рода память о последовательности состояний во времени и, таким образом, способна воздействовать на такая эволюция. Архитектура, которую я описываю, имеет одно важное ограничение. По мере продвижения по временным шагам влияние состояний, предшествующих текущему временному шагу, постепенно ослабевает с каждой итерацией — это известно как проблема исчезающего градиента (или, альтернативно, может генерировать столь же препятствующий взрывной градиент). Чтобы решить эту проблему, архитекторы создали простое решение с оксюморонным названием — Long Short Term Memory или сокращенно LSTM. Идея состоит в том, что канал встроен в архитектуру, чтобы гарантировать, что функции из более ранних временных шагов имеют возможность достигать и влиять на текущие состояния, своего рода капсулу времени. Также возможно, хотя и менее популярно, установить параметры для включения ячеек произвольной продолжительности памяти, скажем, вы хотите, чтобы модель инвестиционных критериев имела некоторое влияние на поведение рынка в предыдущие десятилетия, но больше веса в самые последние месяцы, вы можете затем выведите предпочтительное взвешивание различных узлов памяти (конечно, учитывая текущие периоды владения активными инвесторами, рассматриваемые временные шкалы могут быть значительно короче, чем десятилетия или месяцы — вот почему розничному инвестору лучше всего подходят долгосрочные периоды владения, такие как с индексным фондом S&P 500 они меньше конкурируют с алгоритмами в этом подходе).
Объяснение машинного обучения малышу
ЧАСТЬ 1 — Значение машинного обучения (и жизни)
Часть 2 — в которой мы продолжаем говорить о машинном обучении и прочем (и подводим итоги)