русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Подготовка входных и выходных данных


Дата добавления: 2013-12-23; просмотров: 1069; Нарушение авторских прав


Выбор количества нейронов и слоев

Аппроксимация многомерной функции.

Рассмотрим многомерную функцию y = f (x), где вектор yимеет N0компонент, а вектор xNIкомпонент. Самый простой способ формализации — использовать сеть с NI входами и N0 выходами.

Компоненты вектора xподаются на вход сети, y— снимаются на выходе. Сеть обучается на известных значениях функции f.

 

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

Количество нейронов и слоев связано:

1) со сложностью задачи;

2) с количеством данных для обучения;

3) с требуемым количеством входов и выходов сети;

4) с имеющимися ресурсами: памятью и быстродействием машины, на которой моделируется сеть;

 

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

 

Если в сети слишком мало нейронов или слоев:

1) сеть не обучится и ошибка при работе сети останется большой;

2) на выходе сети не будут передаваться резкие колебания аппроксимируемой функции y(x).

 

Превышение требуемого количества нейронов тоже мешает работе сети.

Если нейронов или слоев слишком много:

1) быстродействие будет низким, а памяти потребуется много — на фон-неймановских ЭВМ;

2) сеть переобучится: выходной вектор будет передавать незначительные и несущественные детали в изучаемой зависимости y(x), например, шум или ошибочные данные;

3) зависимость выхода от входа окажется резко нелинейной: выходной вектор будет существенно и непредсказуемо меняться при малом изменении входного вектора x;

4) сеть будет неспособна к обобщению: в области, где нет или мало известных точек функции y(x) выходной вектор будет случаен и непредсказуем, не будет адекватен решаемой задаче.



 

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

Один из распространенных способов — масштабирование:

x=(x'm) * c

где x'— исходный вектор,

x— масштабированный.

Вектор m— усредненное значение совокупности входных данных.

с— масштабный коэффициент.

 

Масштабирование необходимо, чтобы привести данные в допустимый диапазон. Если этого не сделать, то возможно несколько проблем:

1) нейроны входного слоя или окажутся в постоянном насыщении (|m| велик, дисперсия входных данных мала) или будут все время заторможены (|m| мал, дисперсия мала);

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

 

Рассмотрим набор входных данных для сети с одним входом:

{xs} = {10 10,5 10,2 10,3 10,1 10, 4}

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

m =10,2 и c=4. Это даст значения в допустимом диапазоне (1; − 1).

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

лежал на рабочем участке функции активации.

 



<== предыдущая лекция | следующая лекция ==>
Прогнозирование одномерной функции | АЛГОРИТМ ОБУЧЕНИЯ ПЕРСЕПТРОНА


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.