Список форумов neuroproject.ru neuroproject.ru
Форум сайта компании НейроПроект
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

показатель значимости входных параметров нейронной сети

 
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Пн Мар 08, 2010 7:47 pm    Заголовок сообщения: показатель значимости входных параметров нейронной сети Ответить с цитатой

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

В интернете нашел, что показатель значимости параметра показывает, насколько изменится значение функции оценки по обучающему множеству, если текущее значение параметра заменить на выделенное значение (взято со страницы http://www.gotai.net/documents/doc-nn-006-12.aspx).

Разъясните, пожалуйста, как рассчитывать это значение.

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

Аргументом здесь что является, входной сигнал?


Расчет производить по всей обучающей выборке?


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


Зарегистрирован: 28 Июн 2005
Сообщения: 248
Откуда: Красноярск

СообщениеДобавлено: Пн Мар 08, 2010 10:51 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
показатель значимости параметра показывает, насколько изменится значение функции оценки по обучающему множеству, если текущее значение параметра заменить на выделенное значение

Это всего лишь один из возможных способов расчета. Есть и другие.

Цитата:
"насколько изменится значение функции оценки по обучающему множеству" -- значение функции - это выход нейрона, соответствующего выходному параметру?

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

Цитата:
Аргументом здесь что является, входной сигнал?

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

Цитата:
Расчет производить по всей обучающей выборке?

В данном случае - на всей.

Цитата:
В идеале, думаю, можно оценить, что в большей степени (из входных параметров) влияет на каждый выходной.

Идеал - это когда физически вход отрезается и (после обучения сети или без неё) точность на выборке сравнивается с исходной точностью (при наличии входа).
В рассматриваемом же случае получится ОЦЕНКА, причём В ПЕРВОМ ПРИБЛИЖЕНИИ (поскольку будут использоваться только первые частные производные тейлоровского разложения, а о степени влияния вторых и далее производных информация получена не будет).
Плюс - если для каждого выходного (если действительно сеть решает НЕСКОЛЬКО задач, т.е. несколько её выходов соответствует разным задачам, а не нескольким классам в задаче классификации), то надо "функцию оценки по обучающему множеству" каждый раз ограничивать на работу с нужным вых.сигналом и повторять расчет заново.
Да и известно всё это (и алгоритмы, и идеалы) уже сто лет в обед - указанную книжку Е.М.М. написал-издал более 10 лет назад, и новой теории в рассматриваемом вопросе там не придумал (пересказал уже известное).
_________________
neuropro.ru - нейронные сети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Ср Мар 10, 2010 8:19 pm    Заголовок сообщения: Ответить с цитатой

Большое спасибо за ответ.

Попробовал реализовать, на тестовом примере получились результаты, похожие на правду.

Я взял две функции:

y1 = 3*x1 + 2*x2
y2 = x1*x1 + 2*x2*x2

и получил для них таблицу значений:

--------------------------------------
|__x1__|__x2__|__y1__|__y2__|
--------------------------------------
|__2___|__4___|__14__|__36__|

... ... ...

Нейронную сеть обучил по таким данным и получил следующие результаты -- показатели значимости параметров:

_________y1________y2___

x1_____5.9054_____1.0081

x2_____0.6594_____3.9237

Эти оценки являются относительными величинами, например:

x1 больше влияет на параметр y1, чем влияет x2 (5.9054 > 0.6594).

А на y2 больше влияет x2.

Сравнивать эти величины можно только между собой и только в пределах одного y (исходя из моих экспериментов с реальными данными и по логике вещей -- с трудом можно представить, сказать, что x1 больше влияет на y1, чем на y2).

Расчет показателей производил по правилу, описанному выше -- в ответе на вопрос темы.

Брал данные для обучения (данные для тестирования не трогал) и при подаче входных сигналов менял xi везде на одну величину -- 0.05.

Хотелось бы спросить, может быть, кто-то знает: исходные данные для обучения сети нормируются (нормирую к [-1; 1], использую функцию активации -- гиперб. тангенс), один параметр у меня меняется от 500 до 600, другой 0.02 до 0.15.

То, что входные данные такие разные и меняю их на 0.05 (после приведения к отрезку [-1; 1]) -- это влияет на объективность оценок, т.е. получилось, что x1 больше влияет на x2 -- можно считать это верным?


И второй вопрос: какие еще существуют способы оценки показателей влияния?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 248
Откуда: Красноярск

СообщениеДобавлено: Ср Мар 10, 2010 11:28 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Сравнивать эти величины можно только между собой и только в пределах одного y (исходя из моих экспериментов с реальными данными и по логике вещей -- с трудом можно представить, сказать, что x1 больше влияет на y1, чем на y2).

Если сетка решает не одну, а несколько задач, т.е. имеет несколько выходов (исключением тут является задача классификации на несколько классов - для нее всё остается по-прежнему, дальнейшие слова будут справедливы для решения сразу нескольких задач классификации) - то суммарную целевую функцию надо или оставлять исходной (общей), тогда значимости получатся "усредненными по больнице", либо менять для расчета значимости только по одному нужному выходу сети (при вычислении производных в ходе обратного распространения на ненужные выходы сети надо просто подавать нули).
Более того, "относительность" и "несравнимость" характеристик вполне могла получиться именно из-за ОЦЕНОЧНОСТИ расчетов (ограничении первыми производными).

Цитата:
исходные данные для обучения сети нормируются (нормирую к [-1; 1].... То, что входные данные такие разные...

Влиять может абсолютно всё - начиная от законов распределения данных (случился, например, в одном показателе выброс далеко в сторону, и он занимает после нормировки интервал [0,1], а в точке -1 присутствует единственный случай - этот самый выброс) и до свойств самой сети (насыщение нейронов, например).

Цитата:
какие еще существуют способы оценки показателей влияния?

Я же говорил - их много. См. в статье http://www.neuropro.ru/mypapers/cit08.pdf позиции с номерами 12-23 в списке литературы.
_________________
neuropro.ru - нейронные сети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Вт Мар 16, 2010 7:46 pm    Заголовок сообщения: Ответить с цитатой

Найдены показатели значимости для 5 входов и 1 выхода:

_____y__
x1 0.4824
x2 0.4687
x3 0.3503
x4 0.3664
x5 0.3709

Видно, что больше всего на выход влияет x1 (наибольший показатель 0.4824), меньше всего x3.

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


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Ср Мар 24, 2010 7:40 pm    Заголовок сообщения: Ответить с цитатой

Для оценки показателей значимости можно использовать простой коэффициент корреляции.

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

Для определения незначимых параметров (границы значимости) в статистике есть что-то (не помню).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Чт Мар 25, 2010 1:03 am    Заголовок сообщения: Ответить с цитатой

Доброго времени суток!

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

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

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

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

С уважением,
Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Чт Мар 25, 2010 10:43 pm    Заголовок сообщения: Ответить с цитатой

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

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


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Вт Мар 30, 2010 11:33 pm    Заголовок сообщения: Ответить с цитатой

Добрый день!

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


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

Используем логистическое уравнение.



Получаем временной ряд данных. Предсказываем значение ряда на шаг вперед, используя значения на лагах 1 и 2. Соответственно: выход и входы НС. Корреляция между выходом и входами близка к 0, т.е. нет линейных зависимостей между зависимой и независимыми переменными. Однако обычная слоистая нейронная сеть обучается с точностью до 99,999% через несколько сотен (тысяч) эпох обучения - это зависит от скорости обучения.

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


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Чт Апр 01, 2010 6:29 pm    Заголовок сообщения: Ответить с цитатой

Понятно, спасибо большое.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Чт Апр 01, 2010 11:15 pm    Заголовок сообщения: Ответить с цитатой

Вам также спасибо за интерес.

Я еще решил добавить пару рисунков. На первом показана зависимость значения точки данных ряда (выход сети) от значения в предыдующий момент времени (один из входов сети).



Видно, что есть отчетливая функция зависимости нелинейного вида.

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

Вот такой график обучения получился у меня. Синий - обучающая выборка, красный - тестовая.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
evg
Новый посетитель
Новый посетитель


Зарегистрирован: 16 Ноя 2008
Сообщения: 18

СообщениеДобавлено: Вт Фев 21, 2012 4:17 pm    Заголовок сообщения: Ответить с цитатой

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

корреляция служит мерой линейной зависимости параметров, в случае нелинейной зависимости он не является показательным

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

не получается ли так, что показатель значимости тоже характеризует только линейную зависимость?

если да, тогда проще посчитать коэффициент корреляции
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
marafonec
Новый посетитель
Новый посетитель


Зарегистрирован: 25 Мар 2012
Сообщения: 1
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Апр 02, 2012 3:13 am    Заголовок сообщения: Ответить с цитатой

Огромное спасибо за очень подробный ответ по данному вопросу Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Rambler's Top100 Rambler's Top100