Донецкий национальный технический университет
Факультет вычислительной техники и информатики
Группа СП-01м


Мерзленко Александр Александрович

flexic@inbox.ru
alex.flexic@gmail.com

ДонНТУ
Магитры ДонНТУ

Биография Автореферат

Эл. библиотека

Каталог ссылок
Отчет о поиске

Соискателям работы
Автор перевода: Мерзленко А.А., ДонНТУ, 2006.
Исходный текст взят из книги Rosenblatt F. 1962. "Principles of neurodynamics".

Технология искусственных нейронных сетей

4.1 Главные компоненты искусственного нейрона

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

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

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

Компонент 2. Функция суммирования: Первая стадия функционирования элемента обработки - вычисляется взвешенная сумма по всем входам. С математической точки зрения, входы и соответствующие им веса образуют векторы, которые могут быть представлены в виде (i1..in) и (w1…wn). Совокупный входной сигнал есть скалярное произведение этих векторов. Эта упрощенная функция подсчета вычисляется как поэлементное произведение векторов I и W с последующим суммированием полученных результатов умножения. Вход1=i1*w1, Вход2=i2*w2 и т.д., суммируются в виде Вход1+ Вход2…+ Вход n. В результате получается одно число, а не многоэлементный вектор.

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

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

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

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

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

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

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

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

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

Этот тип масштабирования и ограничения используется преимущественно в топологиях, применяемых для тестирования модели биологических нейронов, таких как brain-state-in-the-box Джеймса Андерсена.

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

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

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

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

4.2 Обучение искусственной нейронной сети

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

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

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

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

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

4.2.2 Неконтролируемое обучение

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

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

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

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

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

4.2.3 Скорость обучения

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

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

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

4.2.4 Обучающие правила

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

Правило Хебба: Первое и, несомненно, наиболее широко известное обучающее правило, было введено Дональдом Хеббом. Описание было представлено в книге "Организация поведения" в 1949 году. Основное правило заключается в следующем: Если нейрон получает на вход значение от другого нейрона, и оба нейрона активны (имеют одинаковый знак), вес между нейронами должен быть усилен (увеличен).

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

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

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

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