алгоритмы обучения нейронных сетей без учителя

Нейронные сети: обучение без учителя

Рассмотренный в предыдущей главе алгоритм обучения нейронной сети с помощью процедуры обратного распространения подразумевает наличие некоего внешнего звена, предоставляющего сети кроме входных так же и целевые выходные образы. Алгоритмы, пользующиеся подобной концепцией, называются алгоритмами обучения с учителем. Для их успешного функционирования необходимо наличие экспертов, создающих на предварительном этапе для каждого входного образа эталонный выходной. Так как создание искусственного интеллекта движется по пути копирования природных прообразов, ученые не прекращают спор на тему, можно ли считать алгоритмы обучения с учителем натуральными или же они полностью искусственны. Например, обучение человеческого мозга, на первый взгляд, происходит без учителя: на зрительные, слуховые, тактильные и прочие рецепторы поступает информация извне, и внутри нервной системы происходит некая самоорганизация. Однако, нельзя отрицать и того, что в жизни человека не мало учителей – и в буквальном, и в переносном смысле, – которые координируют внешние воздействия. Вместе в тем, чем бы ни закончился спор приверженцев этих двух концепций обучения, они обе имеют право на существование.

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

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

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя(1)

где yi (n-1) – выходное значение нейрона i слоя (n-1), yj (n) – выходное значение нейрона j слоя n; wij(t) и wij(t-1) – весовой коэффициент синапса, соединяющего эти нейроны, на итерациях t и t-1 соответственно; a – коэффициент скорости обучения. Здесь и далее, для общности, под n подразумевается произвольный слой сети. При обучении по данному методу усиливаются связи между возбужденными нейронами.

Существует также и дифференциальный метод обучения Хебба.

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя(2)

Здесь yi (n-1) (t) и yi (n-1) (t-1) – выходное значение нейрона i слоя n-1 соответственно на итерациях t и t-1; yj (n) (t) и yj (n) (t-1) – то же самое для нейрона j слоя n. Как видно из формулы (2), сильнее всего обучаются синапсы, соединяющие те нейроны, выходы которых наиболее динамично изменились в сторону увеличения.

Полный алгоритм обучения с применением вышеприведенных формул будет выглядеть так:

1. На стадии инициализации всем весовым коэффициентам присваиваются небольшие случайные значения.

3. На основании полученных выходных значений нейронов по формуле (1) или (2) производится изменение весовых коэффициентов.

4. Цикл с шага 2, пока выходные значения сети не застабилизируются с заданной точностью. Применение этого нового способа определения завершения обучения, отличного от использовавшегося для сети обратного распространения, обусловлено тем, что подстраиваемые значения синапсов фактически не ограничены.

На втором шаге цикла попеременно предъявляются все образы из входного набора.

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

Другой алгоритм обучения без учителя – алгоритм Кохонена – предусматривает подстройку синапсов на основании их значений от предыдущей итерации.

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя(3)

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

Другой вариант – расчет расстояния между этими векторами в p-мерном пространстве, где p – размер векторов.

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя, (4)

где j – индекс нейрона в слое n, i – индекс суммирования по нейронам слоя (n-1), wij – вес синапса, соединяющего нейроны; выходы нейронов слоя (n-1) являются входными значениями для слоя n. Корень в формуле (4) брать не обязательно, так как важна лишь относительная оценка различных Dj.

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

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

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя, (5)

где xi – i-ая компонента вектора входного образа или вектора весовых коэффициентов, а n – его размерность. Это позволяет сократить длительность процесса обучения.

Инициализация весовых коэффициентов случайными значениями может привести к тому, что различные классы, которым соответствуют плотно распределенные входные образы, сольются или, наоборот, раздробятся на дополнительные подклассы в случае близких образов одного и того же класса. Для избежания такой ситуации используется метод выпуклой комбинации[3]. Суть его сводится к тому, что входные нормализованные образы подвергаются преобразованию:

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя, (6)

где xi – i-ая компонента входного образа, n – общее число его компонент, a (t) – коэффициент, изменяющийся в процессе обучения от нуля до единицы, в результате чего вначале на входы сети подаются практически одинаковые образы, а с течением времени они все больше сходятся к исходным. Весовые коэффициенты устанавливаются на шаге инициализации равными величине

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя, (7)

где n – размерность вектора весов для нейронов инициализируемого слоя.

На основе рассмотренного выше метода строятся нейронные сети особого типа – так называемые самоорганизующиеся структуры – self-organizing feature maps (этот устоявшийся перевод с английского, на мой взгляд, не очень удачен, так как, речь идет не об изменении структуры сети, а только о подстройке синапсов). Для них после выбора из слоя n нейрона j с минимальным расстоянием Dj (4) обучается по формуле (3) не только этот нейрон, но и его соседи, расположенные в окрестности R. Величина R на первых итерациях очень большая, так что обучаются все нейроны, но с течением времени она уменьшается до нуля. Таким образом, чем ближе конец обучения, тем точнее определяется группа нейронов, отвечающих каждому классу образов.

Источник

Алгоритмы обучения нейронных сетей без учителя

В статье рассмотрены алгоритмы обучения искусственных нейронных сетей без учителя. Приведена библиотека классов на C++ и тестовый пример.

Листинг 1 &nbsp&nbsp&nbsp&nbsp Листинг 2 &nbsp&nbsp&nbsp&nbsp Листинг 3 &nbsp&nbsp&nbsp&nbsp Листинг 4

Рассмотренный в [1] алгоритм обучения нейронной сети с помощью процедуры обратного распространения подразумевает наличие некоего внешнего звена, предоставляющего сети кроме входных так же и целевые выходные образы. Алгоритмы, пользующиеся подобной концепцией, называются алгоритмами обучения с учителем. Для их успешного функционирования необходимо наличие экспертов, создающих на предварительном этапе для каждого входного образа эталонный выходной. Так как создание искусственного интеллекта движется по пути копирования природных прообразов, ученые не прекращают спор на тему, можно ли считать алгоритмы обучения с учителем натуральными или же они полностью искусственны. Например, обучение человеческого мозга, на первый взгляд, происходит без учителя: на зрительные, слуховые, тактильные и прочие рецепторы поступает информация извне, и внутри нервной системы происходит некая самоорганизация. Однако, нельзя отрицать и того, что в жизни человека не мало учителей – и в буквальном, и в переносном смысле, – которые координируют внешние воздействия. Вместе в тем, чем бы ни закончился спор приверженцев этих двух концепций обучения, они обе имеют право на существование.

Главная черта, делающая обучение без учителя привлекательным, – это его «самостоятельность». Процесс обучения, как и в случае обучения с учителем, заключается в подстраивании весов синапсов. Некоторые алгоритмы, правда, изменяют и структуру сети, то есть количество нейронов и их взаимосвязи, но такие преобразования правильнее назвать более широким термином – самоорганизацией, и в рамках данной статьи они рассматриваться не будут. Очевидно, что подстройка синапсов может проводиться только на основании информации, доступной в нейроне, то есть его состояния и уже имеющихся весовых коэффициентов. Исходя из этого соображения и, что более важно, по аналогии с известными принципами самоорганизации нервных клеток[2], построены алгоритмы обучения Хебба.

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

где y i (n-1) – выходное значение нейрона i слоя (n-1), y j (n) – выходное значение нейрона j слоя n; w ij (t) и w ij (t-1) – весовой коэффициент синапса, соединяющего эти нейроны, на итерациях t и t-1 соответственно; a – коэффициент скорости обучения. Здесь и далее, для общности, под n подразумевается произвольный слой сети. При обучении по данному методу усиливаются связи между возбужденными нейронами.

Существует также и дифференциальный метод обучения Хебба.

Здесь y i (n-1) (t) и y i (n-1) (t-1) – выходное значение нейрона i слоя n-1 соответственно на итерациях t и t-1; y j (n) (t) и y j (n) (t-1) – то же самое для нейрона j слоя n. Как видно из формулы (2), сильнее всего обучаются синапсы, соединяющие те нейроны, выходы которых наиболее динамично изменились в сторону увеличения.

Полный алгоритм обучения с применением вышеприведенных формул будет выглядеть так:

1. На стадии инициализации всем весовым коэффициентам присваиваются небольшие случайные значения.

3. На основании полученных выходных значений нейронов по формуле (1) или (2) производится изменение весовых коэффициентов.

4. Цикл с шага 2, пока выходные значения сети не застабилизируются с заданной точностью. Применение этого нового способа определения завершения обучения, отличного от использовавшегося для сети обратного распространения, обусловлено тем, что подстраиваемые значения синапсов фактически не ограничены.

На втором шаге цикла попеременно предъявляются все образы из входного набора.

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

Другой алгоритм обучения без учителя – алгоритм Кохонена – предусматривает подстройку синапсов на основании их значений от предыдущей итерации.

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

Другой вариант – расчет расстояния между этими векторами в p-мерном пространстве, где p – размер векторов.

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

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

где x i – i-ая компонента вектора входного образа или вектора весовых коэффициентов, а n – его размерность. Это позволяет сократить длительность процесса обучения.

Инициализация весовых коэффициентов случайными значениями может привести к тому, что различные классы, которым соответствуют плотно распределенные входные образы, сольются или, наоборот, раздробятся на дополнительные подклассы в случае близких образов одного и того же класса. Для избежания такой ситуации используется метод выпуклой комбинации[3]. Суть его сводится к тому, что входные нормализованные образы подвергаются преобразованию:

где x i – i-ая компонента входного образа, n – общее число его компонент, a (t) – коэффициент, изменяющийся в процессе обучения от нуля до единицы, в результате чего вначале на входы сети подаются практически одинаковые образы, а с течением времени они все больше сходятся к исходным. Весовые коэффициенты устанавливаются на шаге инициализации равными величине

где n – размерность вектора весов для нейронов инициализируемого слоя.

На основе рассмотренного выше метода строятся нейронные сети особого типа – так называемые самоорганизующиеся структуры – self-organizing feature maps (этот устоявшийся перевод с английского, на мой взгляд, не очень удачен, так как, речь идет не об изменении структуры сети, а только о подстройке синапсов). Для них после выбора из слоя n нейрона j с минимальным расстоянием D j (4) обучается по формуле (3) не только этот нейрон, но и его соседи, расположенные в окрестности R. Величина R на первых итерациях очень большая, так что обучаются все нейроны, но с течением времени она уменьшается до нуля. Таким образом, чем ближе конец обучения, тем точнее определяется группа нейронов, отвечающих каждому классу образов. В приведенной ниже программе используется именно этот метод обучения.

Развивая объектно-ориентированный подход в моделировании нейронных сетей, рассмотренный в [1], для программной реализации сетей, использующих алгоритм обучения без учителя, были разработаны отдельные классы объектов типа нейрон, слой и сеть, названия которых снабжены суффиксом UL. Они наследуют основные свойства от соответствующих объектов прямопоточной сети, описанной в [1]. Фрагмент заголовочного файла с описаниями классов и функций для таких сетей представлен на листинге 1.

Как видно из него, в классе NeuronUL в отличие от NeuronBP отсутствуют обратные связи и инструменты их поддержания, а по сравнению с NeuronFF здесь появилось лишь две новых переменных – delta и inhibitory. Первая из них хранит расстояние, рассчитываемое по формуле (4), а вторая – величину заторможенности нейрона. В классе NeuronUL существует два конструктора – один, используемый по умолчанию, – не имеет параметров, и к созданным с помощью него нейронам необходимо затем применять метод _allocateNeuron класса NeuronFF. Другой сам вызывает эту функцию через соответствующий конструктор NeuronFF. Метод Propagate является почти полным аналогом одноименного метода из NeuronFF, за исключением вычисления величин delta и inhibitory. Методы Normalize и Equalize выполняют соответственно нормализацию значений весовых коэффициентов по формуле (5) и их установку согласно (7 ). Метод CountDistance вычисляет расстояние (4). Следует особо отметить, что в классе отсутствует метод IsConverged, что, объясняется, как говорилось выше, различными способами определения факта завершения обучения. Хотя в принципе написать такую функцию не сложно, в данной программной реализации завершение обучения определяется по «телеметрической» информации, выводимой на экран, самим пользователем. В представленном же вместе со статьей тесте число итераций, выполняющих обучение, вообще говоря, эмпирически задано равным 3000.

В состав класса LayerUL входит массив нейронов neurons и переменная с размерностью массивов синапсов – neuronrang. Метод распределения нейронов – внешний или внутренний – определяется тем, как создавался слой. Этот признак хранится в переменной allocation. Конструктор LayerUL(unsigned, unsigned) сам распределяет память под нейроны, что соответствует внутренней инициализации; конструктор LayerUL(NeuronUL _FAR *, unsigned, unsigned) создает слой из уже готового, внешнего массива нейронов. Все методы этого класса аналогичны соответствующим методам класса LayerFF и, в большинстве своем, используют одноименные методы класса NeuronUL.

В конце заголовочного файла описаны глобальные функции. SetSigmoidTypeUL, SetSigmoidAlfaUL и SetDSigmaUL аналогичны одноименным функциям для сети обратного распространения. Функция SetAccreditationUL устанавливает режим, при котором эффективность обучения нейронов, попавших в окружение наиболее возбужденного на данной итерации нейрона, пропорциональна функции Гаусса от расстояния до центра области обучения. Если этот режим не включен, то все нейроны попавшие в область с текущим радиусом обучения одинаково быстро подстраивают свои синапсы, причем область является квадратом со стороной, равной радиусу обучения. Функция SetLearnRateUL устанавливает коэффициент скорости обучения, а SetMaxDistanceUL – радиус обучения. Когда он равен 0 – обучается только один нейрон. Функции SetInhibitionUL и SetInhibitionFresholdUL устанавливают соответственно длительность торможения и величину возбуждения, его вызывающего.

Тексты функций помещены в файле neuro_mm.cpp, представленном в листинге 2. Кроме него в проект тестовой программы входят также модули neuron_ff.cpp и subfun.cpp, описанные в [1]. Главный модуль, neuman7.cpp приведен в листинге 3. Программа компилировалась с помощью компилятора Borland C++ 3.1 в модели LARGE.

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

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

Несмотря на некоторые сложности реализации, алгоритмы обучения без учителя находят обширное и успешное применение. Например, в [4] описана многослойная нейронная сеть, которая по алгоритму самоорганизующейся структуры обучается распознавать рукописные символы. Возникающее после обучения разбиение на классы может в случае необходимости уточняться с помощью обучения с учителем. По сути дела, по алгоритму обучения без учителя функционируют и наиболее сложные из известных на сегодняшний день искусственные нейронные сети – когнитрон и неокогнитрон, – максимально приблизившиеся в своем воплощении к структуре мозга. Однако они, конечно, существенно отличаются от рассмотренных выше сетей и намного более сложны. Тем не менее, на основе вышеизложенного материала можно создать реально действующие системы для распознавания образов, сжатия информации, автоматизированного управления, экспертных оценок и много другого.

С.Короткий, Нейронные сети: алгоритм обратного распространения.

Ф.Блум, А.Лейзерсон, Л.Хофстедтер, Мозг, разум и поведение, М., Мир, 1988.

Ф.Уоссермен, Нейрокомпьютерная техника, М., Мир, 1992.

Keun-Rong Hsieh and Wen-Tsuen Chen, A Neural Network Model which Combines Unsupervised and Supervised Learning, IEEE Trans. on Neural Networks, vol.4, No.2, march 1993.

Листинг 1 &nbsp&nbsp&nbsp&nbsp Листинг 2 &nbsp&nbsp&nbsp&nbsp Листинг 3 &nbsp&nbsp&nbsp&nbsp Листинг 4

Источник

Обучение без учителя: любопытный ученик

За последнее десятилетие машинное обучение беспрецедентно продвинулось в таких разных областях, как распознавание образов, робомобили и сложные игры типа го. Эти успехи в основном были достигнуты через обучение глубоких нейросетей с одной из двух парадигм – обучение с учителем и обучение с подкреплением. Обе парадигмы требуют разработки человеком обучающих сигналов, передающихся затем компьютеру. В случае обучения с учителем это «цели» (к примеру, правильная подпись под изображением); в случае с подкреплением это «награды» за успешное поведение (высокий результат в игре от Atari). Поэтому пределы обучения определяются людьми.

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

Ключевая мотивация в обучении без учителя состоит в том, что если данные, передаваемые обучающимся алгоритмам имеют чрезвычайно богатую внутреннюю структуру (изображения, видеоролики, текст), то цели и награды в обучении обычно весьма сухие (метка «собака» относящаяся к этому виду, или единица/ноль, обозначающие успех или поражение в игре). Это говорит о том, что большая часть того, что изучает алгоритм, должна состоять из понимания самих данных, а не из применения этого понимания к решению определённых задач.

Расшифровка элементов зрения

2012-й стал знаковым годом для глубокого обучения, когда AlexNet (названная в честь ведущего архитектора Алекса Крижевского) смела конкурентов на конкурсе классификации ImageNet. Её способность распознавать изображения не имела аналогов, однако ещё более удивительным было то, что происходит под капотом. Проанализировав действия AlexNet, учёные обнаружили, что она интерпретирует изображения через построение всё усложняющихся внутренних репрезентаций входных данных. Низкоуровневые особенности, к примеру, текстуры и грани представляются нижними слоями, а потом из них на слоях повыше комбинируются концепции более высокого уровня, вроде колёс или собак.

Это удивительно похоже на то, как обрабатывает информацию наш мозг – простые грани и текстуры в основных областях, связанных с органами чувств, собираются в сложные объекты вроде лиц в более высоких областях мозга. Таким образом сложную сцену можно собрать из визуальных примитивов, примерно так же, как смысл возникает из отдельных слов, из которых состоит предложение. Без непосредственных установок слои AlexNet обрнаужили фундаментальный зрительный «словарь», подходящий для решения задачи. В каком-то смысле, сеть научилась играть в то, что Людвиг Витгенштейн называл «языковой игрой», пошагово переходящей от пикселей к меткам изображений.

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя
Зрительный словарь свёрточной нейросети. Для каждого слоя создаются изображения, максимально активирующие определённые нейроны. Затем реакцию этих нейронов на другие изображения можно интерпретировать, как наличие или отсутствие визуальных «слов»: текстур, книжных полок, морд собак, птиц.

Обучение переносом

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

Тем не менее, у репрезентаций, полученных такими классификаторами, как AlexNet, есть свои ограничения. В частности, поскольку сеть обучена ставить сообщениям метки одного класса (собака, кошка, машина, вулкан) остальную информацию – неважно, насколько она может быть полезной для других задач – она проигнорирует. К примеру, репрезентации могут не уловить фон изображений, если метки относятся только к объектам на переднем плане. Возможное решение – дать более всесторонние тренировочные сигналы, к примеру, подробные описания изображений: не просто «собака», а «корги ловит фрисби в солнечном парке». Однако такие метки тяжело проставлять, особенно в больших масштабах, и их всё равно может быть недостаточно для восприятия всей информации, необходимой для выполнения задачи. Основное предположение обучения без учителя состоит в том, что лучший способ обучиться легко переносимым репрезентациям – это попытаться узнать о данных всё, что можно.

Если понятие переноса через обучение репрезентаций кажется вам слишком абстрактным, представьте ребёнка, обучившегося рисовать людей в стиле «палка, палка, огуречик». Он обнаружил репрезентацию внешнего вида человека, которая как очень компактна, так и хорошо адаптируется. Дополняя каждую фигурку определёнными особенностями, он может создавать портреты всех одноклассников: очки для его лучшего друга, любимую красную футболку его соседу по парте. И он выработал этот навык не для того, чтобы выполнить определённую задачу или получить вознаграждение, но в ответ на базовую потребность отображать окружающий мир.

Обучение через творчество: генеративные модели

Возможно, простейшая цель обучения без учителя, это обучить алгоритм создавать собственные примеры данных. Т.н. генеративные модели должны не просто воспроизводить данные, на которых их обучали (это просто неинтересное «запоминание»), но создавать модель класса, из которого были взяты данные. Не определённую фотографию лошади или радуги, но набор фотографий лошадей и радуг; не определённое высказывание конкретного докладчика, но общее распределение словесных высказываний. Основной принцип генеративных моделей состоит в том, что возможность создания убедительного примера данных является сильнейшим свидетельством того, что их поняли: как говорил Ричард Фейнман, «то, что я не могу создать, я не понимаю».

Пока что наиболее успешной генеративной моделью для изображений остаётся генеративно-состязательная сеть (ГСС), в которой две сети – генератор и дискриминатор – вступают в соревнование по распознаванию, похожее на соревнование специалиста по подделке и детектива. Генератор выдаёт изображения, пытаясь заставить дискриминатор поверить в их реальность; дискриминатор же награждают за то, что он обнаруживает подделки. Сгенерированные изображения сперва получаются случайными и неаккуратными, затем улучшаются за много подходов, и динамическое взаимодействие сетей приводит к появлению всё более реалистичных изображений, которые во многих случаях невозможно отличить от реальных фотографий. ГСС также могут выдавать детальные ландшафты на основании грубых набросков пользователей.

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

алгоритмы обучения нейронных сетей без учителя. Смотреть фото алгоритмы обучения нейронных сетей без учителя. Смотреть картинку алгоритмы обучения нейронных сетей без учителя. Картинка про алгоритмы обучения нейронных сетей без учителя. Фото алгоритмы обучения нейронных сетей без учителя

Создание через предсказание

Подсказка системе (написанная человеком)

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

Законченный моделью текст (после 10 попыток)

Учёные назвали популяцию «единороги Овида» из-за их отличительных рогов. Эти четырёхрогие серебристо-белые единороги ранее были неизвестны науке. И вот, наконец, спустя два столетия загадка того, что породило это странное явление, решена.

Доктор Хорхе Перес, биолог-эволюционист из Университета Лапаза и несколько его компаньонов изучали Анды, когда обнаружили небольшую долину, где не было никаких других животных и людей. Перес заметил в долине нечто, похожее на естественный фонтан, окружённый двумя скалистыми пиками и серебристым снегом.

Затем Перес и остальные отправились дальше в эту долину. «Когда мы добрались до одного из пиков, вода казалась голубой, и на её поверхности было немного кристаллов», — сказал Перес.

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

Одно из интересных несоответствий – описание единорогов, как «четырёхрогих»: забавно изучать ограничения понимания сети.

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

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

Одна из проблем генеративных моделей состоит в возможности их злонамеренного использования. Манипуляции с уликами в виде фотографий, видеороликов и аудиозаписей были возможны уже долгое время, но генеративные модели могут сильно облегчить редактирование этих материалов со злым умыслом. Мы уже видели демонстрацию т.н. deepfake – к примеру, подложное видео с Обамой. Отрадно видеть наличие серьёзных попыток, пытающихся ответить на эти вызовы – к примеру, использование статистических техник для обнаружения синтетических материалов и подтверждения аутентичных, ознакомление общественности с происходящим, и дискуссии по поводу ограничения доступности обученных генеративных моделей. Кроме того, генеративные модели и сами можно использовать для обнаружения сфабрикованных материалов и аномальных данных – к примеру, обнаруживать поддельную речь или определять аномальные платежи для защиты пользователей от мошенников. Исследователям необходимо работать над генеративными моделями, чтобы лучше понимать их и уменьшать риски в будущем.

Повторное изобретение интеллекта

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *