Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_I_S.doc
Скачиваний:
1
Добавлен:
19.12.2018
Размер:
1.38 Mб
Скачать

Навчання нейронних мереж

Мережа навчається, щоб для деякої множини входів X давати бажану множину виходів Y. Кожна така вхідна (або вихідна) множина розглядається як вектор. Навчання здійснюється шляхом послідовного пред'явлення вхідних векторів з одночасним налагодженням ваг відповідно до певної процедури. В процесі навчання ваги мережі поступово стають такими, щоб кожен вхідний вектор виробляв вихідний вектор. Розрізняють алгоритми навчання з вчителем і без вчителя, детерміновані і стохастичні. Навчання з вчителем. Навчання з вчителем припускає, що для кожного вхідного вектора X існує цільовий вектор YT, що є необхідним виходом. Разом вони називаються навчальною парою. Звичайно мережа навчається для деякої кількості таких навчальних пар (навчальної множини). В ході навчання зчитується вхідний вектор X, обчислюється вихід мережі Y і порівнюється з відповідним цільовим вектором YT, різниця D ~ YT – Y за допомогою зворотного зв'язку подається в мережу і змінюються ваги W відповідно до алгоритму, прагнучого мінімізувати помилку ε. Зчитування векторів навчальної множини і налагодження ваг виконується до тих пір, поки сумарна помилка для всієї навчальної множини не досягне заданого низького рівня. Навчання без вчителя Не зважаючи на численні прикладні досягнення, навчання з вчителем критикувалося за свою біологічну неправдоподібність. Важко уявити навчальний механізм в мозку, який би порівнював бажані і дійсні значення виходів, виконуючи корекцію за допомогою зворотного зв'язку. Якщо допустити подібний механізм в мозку, то звідки тоді виникають бажані виходи? Навчання без вчителя є набагато правдоподібнішою моделлю навчання в біологічній системі. Розвинена Кохоненом і багатьма іншими, вона не потребує цільового вектора для виходів і, отже, не вимагає порівняння з ідеальними відповідями. Навчальна множина складається лише з вхідних векторів. Навчальний алгоритм налагоджує вагу мережі так, щоб виходили узгоджені вихідні вектори, тобто щоб пред'явлення досить близьких вхідних векторів давало однакові виходи. Процес навчання виділяє статистичні властивості навчальної множини і групує схожі вектори в класи. Алгоритми навчання Більшість сучасних алгоритмів навчання виросла з концепцій Хебба. Ним запропонована модель навчання без вчителя, в якій синаптична сила (вага) зростає, якщо активовані обидва нейрони, джерело і приймач. Таким чином, часто використовувані шляхи в мережі посилюються і феномен звички і навчання через повторення одержує пояснення. У штучній нейронній мережі, що використовує навчання по Хеббу, нарощування ваг визначається добутком рівнів збудження передаючого і приймаючого нейронів. Це можна записати як

wij(e+1) = w(e) + α OUTi OUTj,

де wij(e) - значення ваги від нейрона i до нейрона j до налагодження, wij(e+1) - значення ваги від нейрона i до нейрона j після налагодження, α - коефіцієнт швидкості навчання, OUTi - вихід нейрона i та вхід нейрона j, OUTj - вихід нейрона j; e – номер епохи (ітерації під час навчання). Для навчання нейромереж в багатьох випадках використовують алгоритм зворотного розповсюдження помилки. Розв’язок задачі за допомогою нейронної мережі зводиться до наступних етапів:

  1. Вибрати відповідну модель мережі (наприклад, трьохшарову )

  2. Визначити топологію мережі (кількість елементів та їх зв’язки)

  3. Вказати спосіб навчання (наприклад, зі зворотним розповсюдженням помилок) і параметри навчання

Кількість прихованих елементів – не менша за кількість вхідних.

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

Рассмотрим общий для всех сетей принцип обучения с наставником. Пускай имеется некоторый набор пар следующего вида: входной вектор - выход сети (т.е. нам известно как точно должна работать сеть на некотором множестве входных векторов). Такое множество пар называют "обучающая выборка" (далее мы будем использовать именно этот термин). Процесс обучения выглядит следующим образом:

  1. Предадим синаптическим весам некоторые начальные значения.

  2. Предъявим сети вектор из обучающей выборки.

  3. Вычислим отклонения выхода сети от желаемого.

  4. По некоторому алгоритму (зависящему от конкретной архитектуры) подстроим синаптические веса, учитывая отклонение полученное на предыдущем шаге.

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

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

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

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

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

12/2.

Методы обучения нейросистем

По своей организации и функциональному назначению искусственная нейронная сеть (модель) с несколькими входами и выходами выполняет некоторое преобразование входных стимулов — сенсорной информации о внешнем мире — в выходные управляющие сигналы. Число преобразуемых стимулов равно n — числу входов сети, а число выходных сигналов соответствует числу выходов m. Совокупность всевозможных входных векторов размерности n образует векторное пространство X, которое мы будем называть признаковым пространством. Аналогично, выходные вектора также формируют признаковое пространство, которое будет обозначаться Y. Состояние, при котором нейронная сеть выполняет требуемую функцию, называют обученным состоянием сети W*.

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

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

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

Метод обратного распространения

Основная идея обратного распространения состоит в том, как получить оценку ошибки для нейронов скрытых слоев. Заметим, что известные ошибки, делаемые нейронами выходного слоя, возникают вследствие неизвестных пока ошибок нейронов скрытых слоев. Чем больше значение синаптической связи между нейроном скрытого слоя и выходным нейроном, тем сильнее ошибка первого влияет на ошибку второго. Следовательно, оценку ошибки элементов скрытых слоев можно получить, как взвешенную сумму ошибок последующих слоев. При обучении информация распространяется от низших слоев иерархии к высшим, а оценки ошибок, делаемые сетью — в обратном направлении, что и отражено в названии метода. Перейдем к подробному рассмотрению этого алгоритма. Для упрощения обозначений ограничимся ситуацией, когда сеть имеет только один скрытый слой. Матрицу весовых коэффициентов от входов к скрытому слою обозначим W, а матрицу весов, соединяющих скрытый и выходной слой — как V. Для индексов примем следующие обозначения: входы будем нумеровать только индексом i, элементы скрытого слоя — индексом j, а выходы, соответственно, индексом k.

Пусть имеется набор пар векторов (x, y = 1..p, т.е. обучающая выборка. Будем называть нейронную сеть обученной на данной обучающей выборке, если при подаче на входы сети каждого вектора x), на выходах всякий раз получается соответствующий вектор y Алгоритм обучения проводится в следующей последовательности:

1. Начальные значения весов всех нейронов всех слоев V(t =0) и W(t =0) назначаются случайным образом.

2. На нейронную сеть подается первый стимул xα и на выходе наблюдается реакция yα. При этом нейроны последовательно от слоя к слою функционируют по следующим формулам в зависимости от принятой функции нелинейного преобразования f(x):

в скрытом слое

в выходном слое

3. Вычисляется величина ошибки, делаемой сетью на выходе j слоя, начиная с последнего предъявленного стимула:

4. Используя градиентный метод минимизации функционала, находятся уточненные значения подстройки весов j слоев начиная с последнего:

где h – темп обучения (0 < h < 1).

На этом шаге необходимо учитывать следующее: а) уточняются только компоненты матрицы весов, отвечающие ненулевым значениям входов; б) знак приращения веса соответствует знаку ошибки, т.е. положительная ошибка ( > 0, значение выхода меньше требуемого) проводит к усилению связи; в) обучение каждого нейрона происходит независимо от обучения остальных нейронов, что соответствует важному с биологической точки зрения, принципу локальности обучения. О сходимости h необходимо сделать несколько дополнительных замечаний. Во-первых, практика показывает что сходимость метода обратного распространения весьма медленная. Невысокий темп сходимости является “генетической болезнью” всех градиентных методов, так как локальное направление градиента отнюдь не совпадает с направлением к минимуму. Во-вторых, подстройка весов выполняется независимо для каждой пары образов обучающей выборки. При этом улучшение функционирования на некоторой заданной паре может, вообще говоря, приводить к ухудшению работы на предыдущих образах. В этом смысле, нет достоверных (кроме весьма обширной практики применения метода) гарантий сходимости.

5. Шаги 2-4 повторяются для всех обучающих векторов (стимулов) до тех пор, пока не будет достигнут критерий оптимизации (точность, время и т.д.).

Рассмотренный алгоритм получил название «с учителем», поскольку известны как входные вектора, так и требуемые значения выходных векторов (имеется учитель, способный оценить правильность ответа ученика).

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

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

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

    • на основании полученных выходных значений нейронов производится изменение весовых коэффициентов;

    • цикл с шага 2, пока выходные значения сети не застабилизируются с заданной точностью.

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

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

Кохонена мережі. (13)

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

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

                    Сети векторного квантования сигналов [5], тесно связанные с простейшим базовым алгоритмом кластерного анализа (метод динамических ядер или K-средних, то есть K-means).

                    Самоорганизующиеся карты Кохонена (Self-Organising Maps, SOM) [6].

                    Сети векторного квантования, обучаемые с учителем (Learning Vector Quantization) [7].

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

Изначально известна размерность входных данных, по ней некоторым образом строится первоначальный вариант карты. В процессе обучения векторы веса узлов приближаются к входным данным. Для каждого наблюдения выбирается наиболее похожий по вектору веса узел, и значение его вектора веса приближается к наблюдению. Также к наблюдению приближаются векторы веса нескольких узлов, расположенных рядом, таким образом если в множестве входных данных два наблюдения были схожи, на карте им будут соответствовать близкие узлы. Циклический процесс обучения, перебирающий входные данные, заканчивается по достижении картой допустимой (заранее заданной аналитиком) погрешности, или по совершении заданного количества итераций [3].

Мережа розроблена Тойво Кохоненом на початку 1980-х рр. і принципово відрізняється від розглянутих вище мереж, оскільки використовує неконтрольоване навчання і навчальна множина складається лише із значень вхідних змінних.

Мережа розпізнає кластери в навчальних даних і розподіляє дані до відповідних кластерів. Якщо в наступному мережа зустрічається з набором даних, несхожим ні з одним із відомих зразків, вона відносить його до нового кластеру. Якщо в даних містяться мітки класів, то мережа спроможна вирішувати задачі класифікації. Мережі Кохонена можна використовувати і в задачах, де класи відомі - перевага буде у спроможності мережі виявляти подібність між різноманітними класами.

Мережа Кохонена має всього два прошарки: вхідний і вихідний, що називають самоорганізованою картою. Елементи карти розташовуються в деякому просторі - як правило двовимірному.

Рис. 4. Мережа Кохонена

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

Проте, алгоритм може працювати і на іншому рівні. В результаті ітеративної процедури навчання мережа організовується таким чином, що елементи, які відповідають центрам, розташованим близько один від одного в просторі входів, будуть розташовані близько один від одного і на топологічній карті. Топологічний прошарок мережі можна уявити як двовимірну штахету, яку потрібно так відобразити в N-вимірний простір входів, щоб по можливості зберегти вихідну структуру даних. Звісно ж, при будь-якій спробі відтворити N-вимірний простір на площині буде загублено багато деталей, але такий прийом дозволяє користувачу візуалізувати дані, що неможливо зрозуміти іншим засобом.

Основний ітераційний алгоритм Кохонена послідовно проходить ряд епох, на кожній епосі опрацьовується один навчальний приклад. Вхідні сигнали - вектори дійсних чисел - послідовно пред'являються мережі. Бажані вихідні сигнали не визначаються. Після пред'явлення достатнього числа вхідних векторів, синаптичні ваги мережі визначають кластери. Крім того, ваги організуються так, що топологічне близькі вузли чуттєві до схожих вхідних сигналів.

Для реалізації алгоритму необхідно визначити міру сусідства нейронів (окіл нейрона-переможця). На мал. 6 показані зони топологічного сусідства нейронів на карті ознак у різні моменти часу. NEj(t) - множина нейронів, що вважаються сусідами нейрона j у момент часу t. Зони сусідства зменшуються з часом.

 

Рис. 5. Зони топологічного сусідства на карті ознак у різні моменти часу

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]