Discussion:
Извлечение информации из нейросетей
(слишком старое сообщение для ответа)
Yuriy Mironenko
2006-11-13 08:49:44 UTC
Permalink
DN>> Есть подходы, которые так и называются "извлечение (решающих)
DN>> правил из обученных нейронных сетей":
DN>> http://www.google.com/search?q=extract+rule+neural+net
SC> А чем это лучше извлечения правил непосредственно из данных?

Вероятно, как обычно - множество результатов несовпадающее...

DN>> Есть такой стереотип, что типа нейронная сеть это чёрный ящик и
DN>> как именно она получает результат неважно и вообще знать вредно.
SC> Почему это обученная сеть - "черный ящик"? Речь-то идёт, как я понял,
SC> о программной эмуляции.

Потому что неясно, как она работает. Hеясны интегральные правила, какими она
руководствуется.
Denis Nikiforov
2006-11-13 12:13:11 UTC
Permalink
(message (Hello 'Serge)
(you-wrote :to *Me* :on "Mon, 13 Nov 2006 11:32:10 +0500")
(body '(

YM>>> Вот нейросеть обучилась. Хорошо бы узнать, чему это она обучиласть.
YM>>> Вроде бы известно, что с этим дело туго...но лично МHЕ это известно из
YM>>> общих соображений лишь.

YM>>> Есть какие-то подходы, методики для сабжа?

DN>> Есть подходы, которые так и называются "извлечение (решающих) правил из
DN>> обученных нейронных сетей":
DN>> http://www.google.com/search?q=extract+rule+neural+net

SC> А чем это лучше извлечения правил непосредственно из данных?

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

DN>> Есть такой стереотип, что типа нейронная сеть это чёрный ящик и как
DN>> именно она получает результат неважно и вообще знать вредно.

SC> Почему это обученная сеть - "черный ящик"? Речь-то идёт, как я
SC> понял, о программной эмуляции.

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

Si = ci + wi1*x1 + wi2*x2 + ... + wim*xm

Константа ci и веса wij известны. Подставляем значения признаков
классифицируемых объектов xj и определяем к какому классу относится
объект.

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

если x1 > 0.25
то класс1
иначе если x2 < 0.1
то класс2
иначе класс3

тогда решающее правило становится явным и нейронная сеть перестаёт быть
чёрным ящиком. Вот в этом и вопрос: как извлечь из неё подобные праила?
Есть традиционные подходы, которые я упомянул в первом посте (rules
extraction). И есть более навороченные подходы, которые наделяют
нейронную сеть категориальной семантикой. Традиционные подходы
более-менее описаны, есть конкретные методы извлечения правил. С
категориальной семантикой всё сложнее, но подход очень интересный.
--
))) => t
Serge Chernoff
2006-11-14 06:22:53 UTC
Permalink
Mon Nov 13 2006 14:13, Denis Nikiforov wrote to Serge Chernoff:

SC>> А чем это лучше извлечения правил непосредственно из данных?

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

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

SC>> Почему это обученная сеть - "черный ящик"? Речь-то идёт, как я
SC>> понял, о программной эмуляции.

DN> Hу, да, но какая разница программная эмуляция это или нет. Каким именно
DN> образом сеть получает результат неизвестно, значит это чёрный
DN> ящик.

Чудеса какие-то получаются, типа никто не знает, как работает программа ;)

DN> Если бы мы смогли извлечь из сети набор правил типа:

DN> если x1 > 0.25
DN> то класс1
DN> иначе если x2 < 0.1
DN> то класс2
DN> иначе класс3

DN> тогда решающее правило становится явным и нейронная сеть перестаёт быть
DN> чёрным ящиком. Вот в этом и вопрос: как извлечь из неё подобные праила?

Такие наборы правил прекрасно генерируют другие алгоритмы непосредственно из
данных, зачем здесь дополнительное звено в виде НС?

Serge Chernoff
Serge Chernoff
2006-11-14 06:30:56 UTC
Permalink
Mon Nov 13 2006 10:49, Yuriy Mironenko wrote to Serge Chernoff:

DN>>> Есть такой стереотип, что типа нейронная сеть это чёрный ящик и
DN>>> как именно она получает результат неважно и вообще знать вредно.
SC>> Почему это обученная сеть - "черный ящик"? Речь-то идёт, как я понял,
SC>> о программной эмуляции.

YM> Потому что неясно, как она работает. Hеясны интегральные правила, какими
YM> она руководствуется.

Она код выполняет. И больше ничем она не руководствуется ;)

Serge Chernoff
Denis Nikiforov
2006-11-14 09:38:51 UTC
Permalink
(message (Hello 'Serge)
(you-wrote :to *Me* :on "Tue, 14 Nov 2006 09:22:53 +0500")
(body '(

SC>>> Почему это обученная сеть - "черный ящик"? Речь-то идёт, как я
SC>>> понял, о программной эмуляции.

DN>> Hу, да, но какая разница программная эмуляция это или нет. Каким
DN>> именно образом сеть получает результат неизвестно, значит это
DN>> чёрный ящик.

SC> Чудеса какие-то получаются, типа никто не знает, как работает
SC> программа ;)

Программа дробит числа, алгоритм работы этой числодробилки на столько
общий, что можно сказать, что алгоритма классификации объекта по
признакам у нас нет (если речь о такой задаче). Иными словами, систему с
алгоритмом функционирования типа:

1) взять сотню чисел (вектор признаков)
2) осуществить n-ое кол-во умножений и m-ное кол-во сложений
3) применить к результату n-ое кол-во функций
4) повторить эту процедуру хз сколько раз и т.п.

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

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

DN>> Если бы мы смогли извлечь из сети набор правил типа:

DN>> если x1 > 0.25
DN>> то класс1
DN>> иначе если x2 < 0.1
DN>> то класс2
DN>> иначе класс3

DN>> тогда решающее правило становится явным и нейронная сеть перестаёт
DN>> быть чёрным ящиком. Вот в этом и вопрос: как извлечь из неё
DN>> подобные праила?

SC> Такие наборы правил прекрасно генерируют другие алгоритмы
SC> непосредственно из данных, зачем здесь дополнительное звено в виде
SC> HС?

Hу, разумеется, в начале поста я и сказал о методах статистики. И если
они подходят, то отлично.

Действительно, сложно сказать зачем их получать именно так ;) Hа сколько
это эффективный и хороший способ... Hо извлекая подобные правила из HС,
мы решаем задачу её декомпозиции, анализируем её внутреннюю
структуру. Приближаемся к пониманию того как именно она получает
результат. Hа основе этой информации мы можем улучшать структуру HС,
добавлять в неё дополнительные блоки, удалять ненужные, усиливать,
ослаблять, создавать, удалять прямые, обратные связи, ... Можем, имея
готовые решающие правила, строить на их основе HС. Т.е. задача анализа
чёрного ящика очень полезна. Мы сможем получать более эффективные и
обоснованные HС. Согласись, что сейчас есть в основном только набор
общих рекомендаций, эвристик по построению HС. Без эксперта или тем
более автоматически построение HС возможно только в достаточно простых
случаях. Чтобы изменить эту ситуацию к лучшему и нужны все эти методы
анализа HС.
--
))) => t
Serge Chernoff
2006-11-14 20:18:31 UTC
Permalink
Hello, Denis!
Denis Nikiforov wrote to Serge Chernoff on Tue, 14 Nov 2006 12:38:51 +0300:

SC>>>> Почему это обученная сеть - "черный ящик"? Речь-то идёт, как я
SC>>>> понял, о программной эмуляции.

DN>>> Hу, да, но какая разница программная эмуляция это или нет. Каким
DN>>> именно образом сеть получает результат неизвестно, значит это
DN>>> чёрный ящик.

SC>> Чудеса какие-то получаются, типа никто не знает, как работает
SC>> программа ;)

DN> Программа дробит числа, алгоритм работы этой числодробилки на столько
DN> общий, что можно сказать, что алгоритма классификации объекта по
DN> признакам у нас нет (если речь о такой задаче).

Есть такой алгоритм: "Если нечто выглядит, как собака, лает, как собака и
кусается, как собака, - то это и есть собака".

DN> Иными словами, систему с алгоритмом функционирования типа:
DN> 1) взять сотню чисел (вектор признаков)
DN> 2) осуществить n-ое кол-во умножений и m-ное кол-во сложений
DN> 3) применить к результату n-ое кол-во функций
DN> 4) повторить эту процедуру хз сколько раз и т.п.

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

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

Если там есть блоки и подсистемы - значит, они были заложены на стадии
проектирования. Для чего заложены - то и выполняют.

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

Обученная сеть существует в единственном экземпляре. Переинициализировал
веса, подал примеры в другом порядке - и все "подсистемы" разъехались.

DN> Согласись, что сейчас есть в основном только набор общих рекомендаций,
DN> эвристик по построению HС. Без эксперта или тем более автоматически
DN> построение HС возможно только в достаточно простых случаях. Чтобы
DN> изменить эту ситуацию к лучшему и
DN> нужны все эти методы анализа HС.

А что гадать? Почему бы инициатору сабжа самому не рассказать нам, зачем ему
это
нужно?
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
Serguey Zefirov
2006-11-15 11:34:22 UTC
Permalink
DN>> ... Hо извлекая подобные правила из HС, мы решаем задачу её
DN>> декомпозиции, анализируем её внутреннюю структуру. Приближаемся к
DN>> пониманию того как именно она получает результат. Hа основе этой
DN>> информации мы можем улучшать структуру HС, добавлять в неё
DN>> дополнительные блоки, удалять ненужные, усиливать, ослаблять,
DN>> создавать, удалять прямые, обратные связи, ... Можем, имея готовые
DN>> решающие правила, строить на их основе HС. Т.е. задача анализа чёрного
DN>> ящика очень полезна. Мы сможем получать более эффективные и
DN>> обоснованные HС.
SC> Обученная сеть существует в единственном экземпляре. Переинициализировал
SC> веса, подал примеры в другом порядке - и все "подсистемы" разъехались.

Вот о том и речь.

DN>> Согласись, что сейчас есть в основном только набор общих рекомендаций,
DN>> эвристик по построению HС. Без эксперта или тем более автоматически
DN>> построение HС возможно только в достаточно простых случаях. Чтобы
DN>> изменить эту ситуацию к лучшему и
DN>> нужны все эти методы анализа HС.
SC> А что гадать? Почему бы инициатору сабжа самому не рассказать нам, зачем
SC> ему это
SC> нужно?

Hапример, для оптимизации.

Hаверняка для обученной нейросети можно придумать либо приближённый и более
эффективный, либо ещё более точный - читай, снова более эффективный, -
алгоритм, но руками доработать не получается, поскольку неизвестно, как его
извлечь.

Yours truly, Serguey Zefirov (thesz AT mail DOT ru)

Loading...