- •Решение задачи классификации на основе нейропакета NeuroShell2
- •1.Характеристика NeuroShell 2.
- •Систему для начинающего
- •Систему для профессионала
- •Средства автономного использования
- •1.1 Описание работы с «Системой для начинающего»
- •1.2 Описание работы с «Системой для профессионала»
- •1.3 Средства автономного использования
- •1.4 Пример использования «Системы для начинающего»
- •1.5 Пример использования «Системы для профессионала»
1.1 Описание работы с «Системой для начинающего»
Модуль Нейронные сети для начинающего представляет собой упрощенный набор процедур для построения и использования законченного, эффективного приложения на основе нейронной сети в рамках системы, работа с которой проще, чем работа с Системой для профессионала (рис.1).
Система для начинающего использует трехслойную сеть с обратным распространением ошибки, универсальную архитектуру, обладающую способностью хорошо обобщать в широком диапазоне задач. Система для начинающих осуществляет предварительную установку параметров сети, таких, как скорость обучения, момент и количество скрытых нейронов. Вы вводите данные, указываете входы и выходы и тренируете сеть. Затем Вы можете применить натренированную сеть к новым данным и экспортировать результаты.
Рис.1 Экранная форма Системы для начинающего
Меню системы для начинающего состоит из четырех панелей:
Ввод задачи
1. Импорт файлов - Этот модуль позволяет импортировать файлы из других систем во внутренний формат файлов NeuroShell 2. Этот внутренний формат совпадает с форматами Lotus 1-2-3 .WK1 и Excel 4 .XLS, поэтому при желании можно просматривать файл на любом этапе его обработки с помощью собственной программы электронных таблиц. (NeuroShell 2 работает с файлами .XLS электронных таблиц Excel по версию 4 включительно. Пользователи Excel версии 5.0 или выше могут сохранить файл как электронную таблицу Excel версии 4 или ниже, или воспользоваться модулем Импорт файлов электронных таблиц.)
Поддерживается импорт файлов следующих форматов:
Импорт текстовых файлов
Импорт двоичных файлов
Импорт файлов электронных таблиц
Импорт файлов MetaStock
Импорт файлов Omega Downloader
2. Ввод данных - Для ввода данных непосредственно в формате NeuroShell 2 или для просмотра файлов после их обработки сетью используйте модуль Ввода данных. NeuroShell 2 позволяет использовать либо модуль Таблица NeuroShell 2, либо обычную программу электронных таблиц.
Модуль Таблица (установка по умолчанию). Это напоминающее программу электронных таблиц средство ввода данных, позволяющее вырезать, вставлять и перемещать данные, однако это не есть полностью функциональная программа электронных таблиц. Таблица была создана для работы только с небольшими файлами, и для больших файлов ее работа замедляется и становится менее эффективной.
Программы электронных таблиц: Вы можете использовать подменю Установки Главного меню NeuroShell 2 для выбора программы электронных таблиц, которую бы хотели использовать в качестве альтернативного механизма ввода и просмотра данных в рамках NeuroShell 2. Когда используется программа электронных таблиц в качестве механизма ввода данных, необходимо сохранять файлы в формате .WK1 или Excel 4 .XLS и добавлять в них информацию об интервалах, если в файле есть имена столбцов. Также существует возможность считывать в NeuroShell 2 файлы, созданные программами электронных таблиц, с помощью модуля Импорт файлов электронных таблиц. При использовании этого модуля информация об интервалах будет добавлена автоматически.
Построение сети
1. Выбор входов/выходов - Этот модуль позволяет пользователю выбрать, какие переменные будут использоваться в качестве входов и выходов сети, а также указать либо вычислить значения минимума и максимума для каждой переменной. (Во внутреннем формате файлов NeuroShell 2 переменные являются столбцами, а примеры являются строками.) Этот модуль создает файл .MMX, который необходим как для тренировки сети, так и для обработки файла с помощью уже натренированной сети.
Выбор входов/выходов
Этот модуль позволяет выбрать, какие переменные являются входами сети и какие - выходами. На экране появляется таблица, в которой в строке под названием Имя перечислены имена столбцов из файла данных. Чтобы увидеть возможные варианты использования столбцов, щелкните по стрелке в поле Выбор типа переменной. Щелчком мыши выберите тип переменной, который хотите устанавливать, из следующего списка:
I Вход (Input) - Это переменные, используемые для осуществления предсказания или классификации (независимые переменные).
A Выход (Actual output) - Результаты, которые сеть пытается обучиться предсказывать (зависимые переменные). Если Вы осуществляете классификацию данных, должны существовать по одному выходу для каждой возможной категории. Помечайте столбцы как A только при использовании типов сети, обучаемых с учителем (сети с обратным распространением ошибки, ВНС, НСОР и МГУА).
(Пусто) Не используется - Значения, содержащиеся в столбце, поле типа для которого оставлено пустым, не будут использоваться для построения сети.
Выбрав тип переменной, щелкните по ячейке в строке Тип, расположенной в столбце, назначение которого хотите задать. Если хотите пометить как переменные одного и того же типа более одного столбца, перемещением мыши подсветите (выберите) соответствующие ячейки в строке Тип переменной. Чтобы подсветить всю строку, щелкните по имени строки Тип.
Если не пометите буквами I или A ни один из столбцов, сеть будет использовать весь файл. Сеть определит количества входов и выходов, основываясь на количествах нейронов во входном и выходном блоках, которые задаете в модуле Проектирование.
Если метки I и A расставлены, но их расстановка не соответствует количествам нейронов во входном и выходном блоках, то при тренировке будут использоваться столбцы, помеченные буквами I и A, а не значения, заданные в блоках.
Установка минимумов/максимумов
Поскольку нейронные сети требуют перевода переменных путем масштабирования в диапазоны от 0 до 1 или от -1 до 1, сети необходимо знать реальный диапазон изменения переменной. Воспользуйтесь этим модулем, чтобы ввести минимальное и максимальное значения для каждой переменной, которая должна использоваться сетью, или же можете вычислить искомый диапазон из данных автоматически, выбирая соответствующие пункты из меню Установки.
В общем случае, используйте диапазон, границы которого вплотную примыкают к данным. (Вы можете захотеть указать значения минимума и максимума, которые будут меньше и больше соответствующих значений в файле данных, чтобы предусмотреть более широкий диапазон для будущих предсказаний, или можете предпочесть выбрать диапазон более узкий, чтобы исключить выбросы, которые могут повлиять на точность работы сети.) Если не установитm значения минимума и максимума вплотную к данным, сеть может потерять способность отслеживать мелкие различия в данных.
Используйте меню Установки, чтобы автоматически установить значения минимумов и максимумов для переменных. Выбор пункта Задание минимумов или Задание максимумов позволяет ввести подходящее значение в появляющемся поле правки и записать это значение сразу во все выбранные ячейки. Выбор пункта Расчет мин/макс вызывает автоматическое вычисление минимальных и максимальных значений, а также средних и стандартных отклонений.
При выборе пункта Расчет мин/макс по стандартному отклонению произойдет расчет минимальных и максимальных значений, отстоящих на указанное количество (N) стандартных отклонений от среднего значения для данной переменной. (Стандартное отклонение = квадратный корень из дисперсии, являющейся средним квадратичным отклонением от среднего. Это статистическая мера разброса в данных.) Появится диалоговое окно, в котором следует ввести в поле правки количество стандартных отклонений от 1 до 5, которое хотите использовать для расчета минимальных и максимальных значений. Минимальное значение будет установлено равным Среднее N * Стандартное_отклонение. Максимум будет установлен равным Среднее + N * Стандартное_отклонение. При задании N Вы можете использовать дробные значения, например, 1,75.
При выборе пункта Изменение диапазона мин/макс появится диалоговое окно, в котором Вас попросят ввести процентное значение, на которое должен быть расширен диапазон между минимумом и максимумом. Заметим, что, прежде чем будет позволено воспользоваться этим пунктом меню, в таблицу Выбора входов и выходов уже должны быть введены минимальные и максимальные значения.
2. Выделение тестового набора - Этот модуль позволяет выделить тестовый и тренировочный наборы из файла данных.
Воспользуйтесь этим модулем для выделения тестового набора и/или экзаменационного набора данных из числа тренировочных примеров. Тестовый набор может использоваться с Калибровкой, которая предотвращает перетренировку сетей, обеспечивая хорошее обобщение на новых данных. Калибровка используется сетями с обратным распространением ошибки, ВНС, НСОР и сетями МГУА. Экзаменационный набор может использоваться для проверки результатов работы сети на данных, которые сеть никогда не "видела" раньше. Исходный файл, обычно это .PAT-файл, остается без изменений.
Методы выделения
Этот модуль предлагает пять различных способов выделения данных из тренировочного набора. Выберите один из них, нажав на соответствующую кнопку переключателя. Все эти способы оставляют .PAT-файл нетронутым.
1. N процентов (тестовый набор), M процентов (экзаменационный набор), случайный выбор - Этот метод выделит N процентов .PAT-файла в тестовый набор (.TST) и/или M процентов .PAT-файла в экзаменационный набор (.PRO). Оставшаяся часть файла данных станет тренировочным набором (.TRN). По умолчанию, 20 процентов .PAT-файла выделяется в тестовый набор. Вы можете изменить процентные соотношения между наборами, вводя новые значения процентов в поля правки.
2. Каждый N-й пример (тестовый набор), каждый M-й пример (экзаменационный набор) - Этот метод выделит каждый N-й пример из .PAT-файла в тестовый набор (.TST) и/или каждый M-й пример из .PAT-файла в экзаменационный набор (.PRO). Оставшаяся часть файла данных станет тренировочным набором (.TRN).
3. Все примеры после N по M (тестовый набор), все после M (экзаменационный набор) - Используйте этот метод, если примеры, которые хотите включить в тестовый набор, находятся в конце файла. Этот метод выделит из .PAT-файла в тестовый набор (.TST) все примеры после N-го примера (с N+1-го) по M-й. Все примеры после M-го будут выделены в экзаменационный набор (.PRO). Оставшаяся часть файла данных станет тренировочным набором (.TRN).
4. Последние M примеров (экзаменационный набор), N процентов (тестовый набор), случайный выбор - Используйте этот метод для выделения экзаменационного набора от конца файла и случайного выбора тестового набора из оставшихся данных. Этот метод выделит последние M примеров .PAT-файла в экзаменационный набор (.PRO) и случайным образом выберет N процентов .PAT-файла из его оставшейся части в тестовый набор (.TST). Оставшаяся часть файла данных станет тренировочным набором (.TRN).
5. По метке строки - Используйте этот метод, если в файле данных есть столбец, содержащий символы (слова) или числа, которые могут быть использованы как ключевые слова при поиске для выделения примеров из файла. Необходимо задать один ключ для тестового набора, один ключ для тренировочного набора и, возможно, ключ для экзаменационного (.PRO) набора.
Начало случайной последовательности- Если хотите изменить начало случайной последовательности, используемой для случайного выбора примеров, введите в текстовое поле другое число. По умолчанию это поле устанавливается равным 0, и, в случае использования установки по умолчанию, при каждом запуске процедуры извлечения в тестовый набор будут выделяться одни и те же примеры. Если измените начало случайной последовательности (оно может лежать в диапазоне от 0 до 32767), то примеры, выделяемые в тестовый набор, будут другими.
Метка тренировочного набора- Используйте это текстовое поле для ввода буквенно-цифрового текста или числа, который (-ое) будет использоваться модулем при поиске в качестве ключевого слова для выделения тренировочного набора примеров при использовании метода метки строки. Все примеры с этой меткой попадут в тренировочный набор. Ключевой текст может включать пробелы. По умолчанию для обозначения строк файла данных, которые будут выделены в тренировочный набор, используется латинское "T".
Метка тестового набора- Используйте это текстовое поле для ввода буквенно-цифрового текста или числа, который (-ое) будет использоваться модулем при поиске в качестве ключевого слова для выделения тестового набора примеров при использовании метода метки строки. Все примеры с этой меткой попадут в тестовый набор. Ключевой текст может включать пробелы. По умолчанию для обозначения строк файла данных, которые будут выделены в тестовый набор, используется латинское "P".
Метка экзаменационного набора-Используйте это текстовое поле для ввода буквенно-цифрового текста или числа, который (-ое) будет использоваться модулем при поиске в качестве ключевого слова для выделения экзаменационного набора примеров при использовании метода метки строки. Все примеры с этой меткой попадут в экзаменационный набор. Вы можете захотеть создать экзаменационный набор, чтобы проверять результаты работы сети на данных, которые сеть никогда не "видела" раньше. Ключевой текст может включать пробелы. По умолчанию для обозначения строк файла данных, которые будут выделены в экзаменационный набор, используется латинское "V".
Столбец для поиска- Выдается список столбцов в файле данных. При использовании метода метки строки щелчком мыши выберите столбец, содержащий ключевые метки для тренировочного, тестового и экзаменационного наборов.
3. Обучение - Этот модуль позволяет выбрать параметры тренировки сети и осуществляет тренировку (рис.2).
Это модуль, в котором сеть учит примеры данных из тренировочного набора. Тренировка продолжается, пока не будут выполнены условия, установленные в модуле Параметры тренировки и критерии остановки.
Рис.2. Экранная форма Параметры тренировки и критерии остановки
Выбор примеров (Pattern Selection)
Поочередный (Rotational) - Этот метод обеспечивает выбор тренировочных примеров в том порядке, в котором они появляются в .PAT-файле или в .TRN-файле, если используется Калибровка. Используйте его, если схожие тренировочные примеры равномерно распределены по тренировочному набору.
Случайный (Random) - Этот метод обеспечивает случайный выбор тренировочных примеров, хотя он не гарантирует, что каждый пример будет выбран одинаковое количество раз. Используйте его, если тренировочный набор содержит примеры, чередующиеся циклически (например, данные об объеме продаж, подверженные сезонным изменениям), а Вы хотите, чтобы сеть давала ответы, не зависящие от этих изменений и от группировки примеров в файле.
Рекуррентные сети должны тренироваться с поочередным выбором, поскольку для них порядок предъявления примеров важен.
Сохранение сетей (Automatically Save Training)
Для задания момента автоматической записи сети щелкните по одной из следующих кнопок переключателя:
На тренировочном наборе (best training set) - сеть сохраняется каждый раз при достижении нового минимального значения средней ошибки на тренировочном наборе. Данный метод можно использовать, если НЕ используете Калибровку. (При использовании этого метода вычисление средней ошибки производится по окончании каждой эпохи.)
На тестовом наборе (best test set) - сеть сохраняется каждый раз при достижении нового минимального значения средней ошибки на тестовом наборе. Если используете Калибровку, выберите этот метод. (Вычисления для тестового набора производятся по окончании указанного количества событий.)
Не нужно (no auto save) - сеть не сохраняется. Вы можете захотеть использовать этот режим для ускорения тренировки в начале, когда сеть все время находит новые значения минимальной ошибки, но необходимо сохранить сеть, прежде чем закрыть модуль. Когда новые значения минимальной ошибки будут попадаться уже не так часто, Вы можете захотеть включить автоматическую запись сети, выбирая На тренировочном наборе или На тестовом наборе.
Вы можете изменять метод автоматической записи сети в процессе тренировки.
Чтобы автоматически остановить тренировку, установите соответствующие флажки и укажите числа, соответствующие выбранным критериям остановки на тестовом и/или на тренировочном наборе. Если выбрано более одного критерия, тренировка будет прекращена, как только будет выполнен любой из них:
Критерии на тренировочном наборе (Training Set)- Вычисляются в конце каждой эпохи
Средняя ошибка меньше указанного уровня.
Количество эпох после достижения минимальной средней ошибки превышает указанное.
Наибольшая ошибка меньше указанного уровня.
Количество эпох обучения превысило указанное значение.
Критерии на тестовом наборе (Test Set) - Вычисляются в конце интервала Калибровки
Средняя ошибка меньше указанного уровня.
Количество событий после достижения минимальной средней ошибки превышает указанное.
Наибольшая ошибка меньше указанного уровня.
Нейроны и скорость обучения (Neurons and Learning)
Скорость обучения (Learning Rate)
Всякий раз, когда сети в процессе тренировки предъявляется тренировочный пример, веса, ведущие к выходам, слегка изменяются в направлении, необходимом для уменьшения ошибки при следующем предъявлении того же примера. Величина подстройки весов равна произведению скорости обучения на ошибку. Например, если скорость обучения равна 0,5, изменение весов равно половине ошибки. Чем больше скорость обучения, тем больше изменения весов, и тем быстрее будет происходить обучение. Если скорость обучения слишком велика, могут возникать колебания и процесс может "не сойтись".
Момент (Momentum)
Большие значения скорости обучения часто приводят к колебаниям изменений весов, и обучение либо никогда не кончается, либо модель сходится к не оптимальному решению. Одним из способов обеспечить возможность более быстрого обучения без колебаний состоит в том, чтобы сделать изменение весов функцией от предыдущего изменения весов, что имеет эффект сглаживания. Момент определяет долю последнего изменения весов, которая добавляется к новому изменению весов.
Вход (Input)
Вход - это переменная, используемая сетью для классификации или предсказания. Ученые называют ее независимой переменной.
Выход (Actual Output)
Выход - это переменная в тренировочных примерах, значение которой сеть должна предсказать или которая содержит желаемый результат классификации.
Применение сети
1. Применение к файлу - Этот модуль пропускает файл данных через натренированную сеть, создавая новый файл, содержащий предсказания или классификации, сделанные сетью.
Воспользуйтесь этим модулем для обработки файла данных натренированной нейронной сетью, чтобы получить классификацию или предсказания сети для каждого примера в файле. Будет получен выходной файл (.OUT-файл).
2. Приписывание выходного файла - Этот модуль объединяет новый файл, содержащий ответы сети, с исходным файлом данных. Вы также можете использовать этот модуль для объединения любых двух файлов во внутреннем формате (файлов электронных таблиц).
Воспользуйтесь этим модулем, чтобы приписать два существующих файла один к другому сбоку или снизу.
Приписывание файла сбоку
Этот модуль обычно используют, когда хотят сравнить результаты классификации или предсказания сети с данными, использованными для тренировки сети. Этот модуль объединяет файлы, «приклеивая» результаты классификации или предсказания сети к файлу данных справа.
Приписывание файлов снизу
Используйте этот модуль, чтобы объединить два файла в один, например, когда хотите добавить дополнительные данные в существующий файл. Оба файла должны содержать одни и те же переменные в одних и тех же столбцах.
Вывод задачи
1. Экспорт файлов - Этот модуль позволяет экспортировать файлы из внутреннего формата файлов NeuroShell 2. Этот внутренний формат совпадает с форматами электронных таблиц Lotus 1-2-3 .WK1 и Excel 4 .XLS, поэтому можете просматривать файл на любом этапе его обработки с помощью программы электронных таблиц.
Поддерживается экспорт файлов следующих форматов:
Экспорт текстовых файлов
Экспорт двоичных файлов
Экспорт файлов электронных таблиц
2. Просмотр данных - Этот модуль(известныq также как Таблица) позволяет просматривать файлы после их обработки сетью. По умолчанию в Таблицу передается .OUT-файл. Таблица - это напоминающее программу электронных таблиц средство ввода и просмотра данных, позволяющее вырезать, вставлять и перемещать данные, однако это не есть полностью функциональная программа электронных таблиц. Таблица была создана для работы только с небольшими файлами, и для больших файлов ее работа замедляется и становится менее эффективной.
