МАШИННОЕ ОБУЧЕНИЕ: насколько черным этот красивый черный ящик

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

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

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

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

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



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

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

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

Сияющий свет в ящики.

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

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

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

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

Нужно ли нам разбираться в электричестве, чтобы зажечь свет?

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

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

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

Другой подход - работать с функцией черного ящика и смотреть на важность входных данных для этой функции. Примените его для количественной оценки эффекта оптимизации гиперпараметров алгоритма.

Существуют программные библиотеки для решения проблем оптимизации черного ящика. В них используется последовательная оптимизация на основе модели (байесовская оптимизация), которая является итерационным методом решения таких проблем. AutoWeka - это один из примеров, разработанный для обеспечения автоматического выбора модели и оптимизации гиперпараметров в WEKA. Weka представляет собой простой в использовании набор общедоступных алгоритмов машинного обучения для задач интеллектуального анализа данных с использованием машинного обучения.

Получение ящиков, чтобы продолжать рассказывать нам, что мы знаем

Другой способ справиться с черными ящиками - сделать сеть еще более плотной, добавив больше слоев. Это вход в место, где обитают глубокие сети. Страна разнообразных архитектур глубоких сетей, включая: Сверточные нейронные сети (CNN), Рекуррентные нейронные сети (RNN), Рекурсивную нейронную сеть и новые модели Decoupled Neural Interfaces (DNI) и Дифференцируемые нейронные компьютеры (DNC).

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

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

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

Большинство алгоритмов глубокого обучения используют ту или иную форму оптимизации, чтобы минимизировать или максимизировать функцию f (x), регулируя значение для x. Подлежащая корректировке функция известна как функция цели, потерь, ошибок или затрат. Глубокое обучение использует эти функции для измерения и корректировки того, насколько результаты (прогнозы, классификации и т. Д.) Близки к входным данным. Цель состоит в том, чтобы минимизировать функцию потерь.

Производная функции

дает наклон f (x) в точке x, которая определяет масштаб небольшого изменения на входе, чтобы соответствовать соответствующему изменению на выходе.

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

Стохастический градиентный спуск

Вместо того, чтобы смотреть на все веса в сети и пересчитывать их, градиентный спуск - это метод поиска пути, который сокращает соответствующее пространство весов и, следовательно, количество обновлений и требуемых вычислений.

Метод стохастического градиентного спуска (SGD) используется для многих моделей машинного обучения и является основным алгоритмом, используемым в ИНС, а также обеспечивает простой способ получения точных результатов в глубоких сетях. Стохастический градиентный спуск может дать приблизительную оценку потерь с использованием небольшого набора выборок, уменьшая количество требуемых вычислений.

Где X - набор входных значений Xi, W - набор факторов важности (весов) каждого значения Xi. Положительный вес означает, что этот фактор риска увеличивает вероятность результата, а отрицательный вес означает, что этот фактор риска снижает вероятность этого результата. Целевое выходное значение, η - это скорость обучения (роль скорости обучения состоит в том, чтобы контролировать уровень, до которого веса изменяются на каждой итерации. F (z) - это выходной сигнал, генерируемый функцией, которая отображает большую входную область на в этом случае небольшой набор выходных значений.

Функция f (z) - это логистическая функция:

в функции потерь

пытается оценить параметр w, который минимизирует Q (w).

Градиентный спуск

где η - скорость обучения.

Стохастический градиентный спуск в любой отдельной точке аппроксимируется как

Таким образом, начальный вектор w при скорости обучения η повторяется i число раз со случайным перемешиванием обучающих данных. Создавая случайные связи, можно сократить время обучения, так как нет необходимости обучать веса скрытых слоев.

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

Видеть черные ящики как машины, которые просто дают правильные ответы



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

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

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

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

Модели векторных пространств (VSM) представляют (встраивают) слова в непрерывное векторное пространство, где семантически похожие слова отображаются в близлежащие точки (встраиваются рядом друг с другом). Они проистекают из теории, согласно которой слова, встречающиеся в одном и том же контексте, имеют семантическое значение. Именно так программы, подобные Word2Vec, используют двухслойную нейронную сеть для восстановления лингвистических контекстов слов в многомерном векторном пространстве; давая Векторные представления слов.

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

Word2Vec математически определяет сходство слов с другими словами, близкими к ним во входном корпусе. Он дает числовые представления таких характеристик слова, как контекст. Он тренирует слова по сравнению с другими словами из входных данных. Это можно сделать двумя способами. Один использует контекст для предсказания целевого слова (метод, известный как непрерывный набор слов). Другой использует слово для предсказания целевого контекста (известный как skip-gram).

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



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

Самоанализ

Еще одно решение преодоления страха перед неизвестным - это разработка модели, которая знает о себе, модели, которая может вспоминать, пересчитывать, рассуждать и размышлять, а также анализировать себя; модель с памятью. Тот, кто осознает себя и учится на том, что он делал исторически. Модель, которая может представлять переменные и структуры данных и хранить данные в течение длительного времени. Несколько моделей нейронных сетей (Внимание и расширенные рекуррентные нейронные сети) предоставляют способ объединения сетей, позволяя одной сети исследовать другую.

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

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

Просто сделай это

Наука имеет давнюю традицию учиться на собственном опыте, то есть использовать эксперименты для формирования теории. Это также область, где предложения или тезисы для проверки - это путь вперед. Большая часть материалов, упомянутых в этой статье, относится к передовым технологиям машинного обучения. Райан Лоу, автор книги Как машины учатся, прокомментировал недавнюю обзорную статью, что он был соавтором книги Мы придерживаемся мнения, что оставлять« хорошее неопубликованным в ожидании идеального - это не продуктивный путь вперед для науки ».

Доступ к данным - это еще один способ узнать, что делают черные ящики, и иметь возможность воспроизводить эксперименты с использованием тех же данных. Важным шагом является использование открытых источников не только для разработки алгоритмов, но и для наборов данных, которые они используют для их обучения и передачи. Google, Microsoft, Facebook, Apache, научные сообщества, государственные органы и многие другие открыли исходный код не только для программного обеспечения, но и для обучающих данных и лабораторий.

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

Рассмотрим два конца субмолекулярной физики Калибровочной теории и Большого адронного коллайдера. Оба используются для поиска одинакового просветления. Ученые открывают удивительные результаты с помощью LHC, а теоретики струн предсказывают удивительные частицы. Оба сходятся время от времени, чтобы искать, а иногда и раскрывать объединенные идеи, при этом одно информирует другое. Иногда поразительные теории, такие как идея о том, что гравитация является энтропийной силой, а не фундаментальным взаимодействием, как предлагал Эйнштейн, сидят без дела годами и получают подтверждение по мере того, как тесты, предлагаемые теорией, завершены.

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

Использованная литература:

Искусственные нейронные сети - как открыть черные ящики? Https://www.tu-braunschweig.de/Medien-DB/igp/heinert_2008.pdf

Байесовская оптимизация для вероятностных программ https://papers.nips.cc/paper/6421-bayesian-optimization-for-probabilistic-programs.pdf

Эффективный подход к оценке важности гиперпараметров http://jmlr.org/proceedings/papers/v32/hutter14.pdf
AutoWeka https://github.com/automl/autoweka

Auto-WEKA 2.0: Автоматический выбор модели и оптимизация гиперпараметров в WEKA http://www.cs.ubc.ca/labs/beta/Projects/autoweka/papers/16-599.pdf

Учебное пособие по глубокому обучению в многоуровневой нейронной сети http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/

Сверточные нейронные сети https://www.tensorflow.org/versions/r0.12/tutorials/deep_cnn/index.html#convolutional-neural-networks

Рекуррентные нейронные сети https://www.tensorflow.org/versions/r0.12/tutorials/recurrent/index.html

Рекурсивные (не повторяющиеся!) Нейронные сети в TensorFlow https://pseudoprofound.wordpress.com/2016/06/20/recursive-not-recurrent-neural-nets-in-tensorflow/

Разделенные нейронные интерфейсы с использованием синтетических градиентов https://deepmind.com/blog/decoupled-neural-networks-using-synthetic-gradients/

Дифференцируемые нейронные компьютеры https://deepmind.com/blog/differentiable-neural-computers/

Книга по машинному обучению Python ISBN-13: 978–1783555130 https://github.com/rasbt/python-machine-learning-book

Неоправданная эффективность рекуррентных нейронных сетей http://karpathy.github.io/2015/05/21/rnn-effectiveness/

Представляем A.I. Эксперименты https://aiexperiments.withgoogle.com/

Переосмысление начальной архитектуры компьютерного зрения http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44903.pdf

Игра в Atari с глубоким обучением с подкреплением https://arxiv.org/pdf/1312.5602.pdf

ПОНИМАНИЕ ГЛУБОКОЕ ОБУЧЕНИЕ ТРЕБУЕТ ПЕРЕСМОТРЕНИЯ ОБОБЩЕНИЯ https://openreview.net/pdf?id=Sy8gdB9xx

Ультрафиолетовые данные Хиггса показывают удивительный результат http://home.cern/about/updates/2016/04/sonified-higgs-data-show-surprising-result

Векторные представления слов https://www.tensorflow.org/tutorials/word2vec/

Как эффективно использовать t-SNE http://distill.pub/2016/misread-tsne/

Визуализация репрезентаций: глубокое обучение и человеческие существа https://colah.github.io/posts/2015-01-Visualizing-Representations/

Открытые данные для глубокого обучения https://deeplearning4j.org/opendata

Лаборатория DeepMind с открытым исходным кодом https://deepmind.com/blog/open-sourcing-deepmind-lab/

Почему глубокое и дешевое обучение так хорошо работает? Https://arxiv.org/pdf/1608.08225v2.pdf

Можно ли проверить теорию струн? Http://www.pbs.org/wgbh/nova/blogs/physics/2012/09/can-string-theory-be-tested/

Суперсимметрия предсказывает частицу-партнер для каждой частицы в Стандартной модели, чтобы помочь объяснить, почему частицы имеют массу https://home.cern/about/physics/supersymmetry

Эмерджентная гравитация и темная Вселенная https://arxiv.org/pdf/1611.02269v1.pdf

Первая проверка теории возникающей гравитации Верлинде с использованием измерения слабого гравитационного линзирования https://arxiv.org/pdf/1612.03034v2.pdf