Нейронные сети, фундаментальные принципы работы, многообразие и топология |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-07-04 09:41 Нейронные сети совершили революцию в области распознавания образов, но из-за неочевидной интерпретируемости принципа работы, их не используют в таких областях, как медицина и оценка рисков. Требуется наглядное представление работы сети, которое сделает её не чёрным ящиком, а хотя бы «полупрозрачным». Cristopher Olah, в работе «Neural Networks, Manifolds, and Topology» наглядно показал принципы работы нейронной сети и связал их с математической теорией топологии и многообразия, которая послужила основой для данной статьи. Для демонстрации работы нейронной сети используются низкоразмерные глубокие нейронные сети.
Понять поведение глубоких нейронных сетей в целом нетривиальная задача. Проще исследовать низкоразмерные глубокие нейронные сети — сети, в которых есть только несколько нейронов в каждом слое. Для низкоразмерных сетей можно создавать визуализацию, чтобы понять поведение и обучение таких сетей. Эта перспектива позволит получить более глубокое понимание о поведении нейронных сетей и наблюдать связь, объединяющую нейронные сети с областью математики, называемой топологией. Из этого вытекает ряд интересных вещей, в том числе фундаментальные нижние границы сложности нейронной сети, способной классифицировать определенные наборы данных. Рассмотрим принцип работы сети на примере Начнем с простого набора данных — двух кривых на плоскости. Задача сети научится классифицировать принадлежность точек кривым. Очевидный способ визуализировать поведение нейронной сети, посмотреть, как алгоритм классифицирует все возможные объекты (в нашем примере точки) из набора данных. Начнем с простейшего класса нейронной сети, с одним входным и выходным слоем. Такая сеть пытается отделить два класса данных, разделив их линией. Такая сеть не используется на практике. Современные нейронные сети обычно имеют несколько слоёв между их входом и выходом, называемыми «скрытыми» слоями. Схема простой сети Визуализируем поведение этой сети, наблюдая за тем, что она делает с разными точками в своей области. Сеть со скрытым слоем отделяет данные более сложной кривой, чем линия. С каждым слоем сеть преобразует данные, создавая новое представление. Мы можем посмотреть данные в каждом из этих представлений и как их классифицирует сеть со скрытым слоем. Когда алгоритм дойдёт до окончательного представления, нейронная сеть проведет линию через данные (или в более высоких измерениях — гиперплоскость).В предыдущей визуализации рассмотрены данные в «сыром» представлении. Вы можете представить это, посмотрев на входной слой. Теперь, рассмотрим его после того, как он будет преобразован первым слоем. Вы можете представить это, посмотрев на скрытый слой. Каждое измерение соответствует активации нейрона в слое. Скрытый слой обучается на представлении, так чтобы данные были линейно разделимы. Непрерывная визуализация слоев В подходе, описанном в предыдущем разделе, мы учимся понимать сети, просматривая представление, соответствующее каждому слою. Это дает нам дискретный список представлений. Нетривиальная часть заключается в понимании того, как мы переходим от одного к другому. К счастью, уровни нейронной сети имеют свойства, которые делают это возможным. Существует множество различных типов слоёв, используемых в нейронных сетях. Рассмотрим слой tanh для конкретного примера. Tanh-слой tanh (Wx + b) состоит из:
Мы можем представить это как непрерывное преобразование следующим образом: Этот принцип работы очень похож на другие стандартные слои, состоящие из аффинного преобразования, за которым следует поточечное применение монотонной функции активации. Этот метод можно применить для понимания более сложных сетей. Так, следующая сеть классифицирует две спирали, которые слегка запутаны, используя четыре скрытых слоя. Со временем видно, что нейронная сеть переходит от «сырого» представления к более высокому уровню, который сеть изучила, чтобы классифицировать данные. В то время как спирали изначально запутаны, к концу они линейно отделимы. С другой стороны, следующая сеть, также использующая несколько уровней, но не может классифицировать две спирали, которые более запутаны. Следует отметить, что эти задачи имеют ограниченную сложность, потому что используются низкоразмерные нейронные сети. Если бы использовались более широкие сети, решение задач упростилось. Топология слоев tang Каждый слой растягивается и сжимает пространство, но он никогда не режет, не разбивает и не складывает его. Интуитивно мы видим, что топологические свойства сохраняются на каждом слое. Доказательство: 1. Предположим, что W имеет ненулевой детерминант. Тогда это биективная линейная функция с линейным обратным. Линейные функции непрерывны. Итак, умножение на W является гомеоморфизмом. Топология и классификация Рассмотрим двухмерный набор данных с двумя классами A, B?R2: Требование: нейронная сеть не может классифицировать этот набор данных, не имея 3 или более скрытых слоя, независимо от ширины. Как упоминалось ранее, классификация с сигмовидной функцией или слоем softmax эквивалентна попытке найти гиперплоскость (или в этом случае линию), которая разделяет A и B в конечном представлении. Имея только два скрытых слоя, сеть топологически неспособна разделять данные таким образом, и обречена на неудачу в этом наборе данных. В следующей визуализации мы наблюдаем скрытое представление, пока сеть тренируется вместе с классификационной линией. Для этой сети обучения недостаточно для достижения стопроцентного результата. Алгоритм попадает в непроизводительный локальный минимум, но способен достичь ~ 80% точности классификации. В этом примере был только один скрытый слой, но он не срабатывал. Утверждение. Либо каждый слой является гомоморфизмом, либо весовая матрица слоя имеет определитель 0. Доказательство: Если мы добавим третий скрытый элемент, проблема станет тривиальной. Нейронная сеть узнает следующее представление: Если это гомоморфизм, то A по-прежнему окружен B, и линия не может их разделить. Но предположим, что она имеет детерминант 0: тогда набор данных коллапсирует на некоторой оси. Поскольку мы имеем дело с чем-то, гомеоморфным исходному набору данных, A окруженных B, и коллапсирование на любой оси означает, что мы будем иметь некоторые точки из A и B смешенными, и что приводит к невозможности для различения. Представление даёт возможность разделить наборы данных гиперплоскостью. Чтобы лучше понять, что происходит, давайте рассмотрим еще более простой набор данных, который является одномерным: A=[?1/3,1/3] B=[?1,?2/3]?[2/3,1] Без использования слоя из двух или более скрытых элементов мы не можем классифицировать этот набор данных. Но, если мы используем сеть с двумя элементами, мы научимся представлять данные как хорошую кривую, которая позволяет нам разделять классы с помощью линии: Что происходит? Один скрытый элемент учится срабатывать, когда x> -1/2, и один учится срабатывать, когда x> 1/2. Когда первый срабатывает, но не второй, мы знаем, что мы находимся в A. Гипотеза многообразия Это относится к наборам данных из реального мира, например, наборам изображений? Если вы серьезно относитесь к гипотезе многообразия, я думаю, что это имеет значение. Связи и гомотопии Еще один интересный набор данных — два связанных тора A и B. Как и предыдущие наборы данных, которые мы рассмотрели, этот набор данных не может быть разделен без использования n + 1 измерений, а именно четвёртого измерения.Связи изучаются в теории узлов, области топологии. Иногда, когда мы видим связь, не сразу понятно, является ли это бессвязность (множество вещей, которые запутались вместе, но могут быть разделены непрерывной деформацией) или нет. Относительно простая бессвязность. Если нейронная сеть, использующая слои только с тремя юнитами, может ее классифицировать, то она является бессвязной. (Вопрос: Может ли все бессвязности классифицироваться по сети только с тремя бессвязностями, теоретически?) С точки зрения этого узла, непрерывная визуализация представлений, созданных нейронной сетью, это процедура распутывания связей. В топологии мы будем называть это эмбиентной изотопией между исходным звеном и разделенными. Формально, изотопия окружающего пространства между многообразиями А и В является непрерывной функцией F: [0,1] ? X ? Y такая, что каждый Ft является гомеоморфизмом из X в его диапазон, F0 является тождественной функцией, а F1 отображает A в B. Т.е. Ft непрерывно переходит из отображения A в себя, к отображению A в B. Теорема: существует изотопия окружающего пространства между входом и представлением сетевого уровня, если: a) W не является вырожденной, b) мы готовы перенести нейроны в скрытый слой и c) имеется более 1 скрытого элемента. Доказательство: До сих пор такие связи, о которых мы говорили маловероятно появятся в реальных данных, но существуют обобщения более высокого уровня. Правдоподобно, что такие особенности могут существовать в реальных данных. 1. Самая сложная часть — линейное преобразование. Чтобы это было возможно, нам нужно, чтобы W обладала положительным определителем. Наша предпосылка заключается в том, что она не равна нулю, и мы можем перевернуть знак, если он отрицательный, переключив два скрытых нейрона, и поэтому можем гарантировать, что определитель положителен. Пространство положительных детерминантных матриц является связным, поэтому существует p: [0,1] ? GLn ®5 такое, что p (0) = Id и p (1) = W. Мы можем непрерывно переходить от функции тождества к W-преобразованию с помощью функции x ? p (t) x, умножая x в каждой точке времени t на непрерывно переходящую матрицу p (t). Связи и узлы являются одномерными многообразиями, но нам нужны 4 измерения, чтобы сети могли распутать все из них. Точно так же может потребоваться еще более высоко размерное пространство, чтобы иметь возможность разложить n-мерные многообразия. Все n-мерные многообразия могут быть разложены в 2n + 2 размерностях. [3] Легкий выход Простой путь, состоит в том, чтобы попытаться вытащить многообразия отдельно и растянуть части, которые запутаны настолько, насколько это возможно. Хотя это не будет близко к подлинному решению, такое решение может достичь относительно высокой точности классификации и быть приемлемым локальным минимумом. Такие локальные минимумы абсолютно бесполезны с точки зрения попытки решения топологических проблем, но топологические проблемы могут обеспечить хорошую мотивацию для изучения этих проблем.С другой стороны, если нас интересует исключительно достижение хороших результатов классификации, подход приемлем. Если крошечный бит многообразия данных зацепился за другое многообразие, является ли это проблемой? Вероятно, что удастся получить произвольно хорошие результаты классификации, несмотря на эту проблему. Улучшенные слои для манипулирования многообразиями? Трудно представить, что стандартные слои с аффинным преобразованием, действительно, хороши для манипулирования многообразиями. Возможно, имеет смысл иметь совсем другой слой, который мы можем использовать в композиции с более традиционными? Перспективным является изучение векторного поля с направлением, в котором мы хотим сдвинуть многообразие: А затем деформируем пространство, основанное на векторном поле: Можно было бы изучить векторное поле в неподвижных точках (просто взять некоторые фиксированные точки из набора тестовых данных для использования в качестве якорей) и каким-то образом интерполировать. Векторное поле выше имеет вид: Где v0 и v1 — векторы, а f0 (x) и f1 (x) — n-мерные Гауссианы. Р (х) =( v0f0 (х) + v1f1 (х) )/( 1 + 0 (х) + f1 (х)) K-Nearest Neighbor Layers Линейная разделимость может быть огромной и, возможно, необоснованной потребностью в нейронных сетях. Естественным является применение метода k-ближайших соседей (k-NN). Однако, успех k-NN в значительной степени зависит от представления, которое он классифицирует, поэтому требуется хорошее представление до того, как k-NN сможет работать хорошо. Заключение Топологические свойства данных, такие как связи, могут сделать невозможным линейное разделение классов с использованием низкоразмерных сетей независимо от глубины. Даже в тех случаях, когда это технически возможно. Например, спирали, разделить которые это может быть очень сложно. Ссылки на источники и пояснения [1] A lot of the natural transformations you might want to perform on an image, like translating or scaling an object in it, or changing the lighting, would form continuous curves in image space if you performed them continuously. Источник: habr.com Комментарии: |
|