Читайте также: |
|
Один из недостатков метода главных компонент состоит в том, что это преобразование является линейным и может улавливать только линейные направления максимальной вариации (метод будет хорошо работать на данных, изображенных на левом рисунке, но не на правом).
Поэтому предлагается другой подход к проблеме: нелинейный вариант АГК, основанный на применении автоассоциативных сетей (Fausett, 1994; Bishop, 1995).
Автоассоциативная сеть - это сеть, предназначенная для воспроизведения на выходе своих же входных данных. У такой сети число выходов совпадает с числом входов, и все переменные имеют тип входная/выходная. Число же скрытых элементов делается меньше числа входов-выходов, и это заставляет сеть «сжимать» информацию, представляя ее в меньшей размерности.
Трехслойная автоассоциативная сеть сначала линейно преобразует входные данные в меньшую размерность промежуточного слоя, а затем снова линейно разворачивает их в выходном слое. Можно показать, что такая сеть на самом деле реализует стандартный алгоритм анализа главных компонент (Bourland and Kamp, 1988). Для того чтобы выполнить нелинейное понижение размерности, нужно использовать пятислойную сеть (Kramer, 1991). Ее средний слой служит для уменьшения размерности, а соседние с ним слои, отделяющие его от входного и выходного слоев, выполняют нелинейные преобразования.
Чтобы осуществить нелинейное понижение размерности с помощью автоассоциативной сети в пакете ST Neural Networks, нужно действовать так:
1. Сформировать обучающий набор данных для автоассоциативной сети. Выходные переменные нужно объявить неучитываемыми, а входным переменным присвоить тип Входная/выходная - Input/Output.
2.Построить автоассоциативную MLP-сеть с пятью слоями. В среднем скрытом слое должно быть меньше элементов, чем во входном и выходном слоях. В двух оставшихся промежуточных слоях должно быть достаточно большое (и одинаковое) число элементов.
3. Обучить автоассоциативную сеть на подготовленном обучающем множестве. Здесь годится любой итеративный алгоритм обучения (например, спуск по сопряженным градиентам).
4. Удалить два последних слоя автоассоциативной сети (кнопкой Удалить - Delete в окне Редактор сети - Network Editor). В результате получится сеть для пре-процессирования, понижающая размерность.
5. С помощью пре-процессирующей сети получить версию входных данных в уменьшенной размерности. Скопировать эти данные из окна Прогнать набор данных - Run Data Set в окно Редактор данных -Data Set Editor, заменив ими первоначальные входные, но оставив исходные выходные переменные. Таким образом, будет построено обучающее множество для понижения размерности.
6. Построить другую (обрабатывающую) сеть и обучить ее на построенном на предыдущем шаге обучающем множестве.
7. С помощью команды Сеть (добавить) - Network (Append)... меню Файл -Открыть – File -Open добавить обрабатывающую сеть к пре-процессирующей сети. При этом будет построена единая сеть, которая одновременно пре-процессирует и обрабатывает данные.
Дата добавления: 2015-11-30; просмотров: 37 | Нарушение авторских прав