|
neuroproject.ru Форум сайта компании НейроПроект
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
Spin Гость
|
Добавлено: Чт Июн 23, 2005 1:16 am Заголовок сообщения: Организация нейросетей под реальные задачи |
|
|
Практически все доступные материалы, связанные с нейросетями описывают либо общую теорию, либо достаточно простые (в плане проекции теории на практику) способы применения. В том числе ваш учебник при описании применения нейросетей для предсказания результатов финансовых показателей рассматривает в качестве данных одномерный исторический массив. Реально могут учитываться несколько разнородных параметров - что угодно, хоть фазы луны. При этом совершенно неочевидно как нейронные сети работают с группами данных. Здравый смысл подсказывает, что признак группы должен существенно способствовать повышению эффективности работы с сетью, но как это реализуется практически? Аналогичная ситуация с итоговыми данными: если нужен в результате массив, то каким образом задается последовательность элементов?
Наверняка ваш опыт решения реальных задач позволяет осветить данный круг вопросов. Я (уверен и многие другие) буду весьма признателен за возможность познакомиться с такой информацией.
Если данная тема в действительности где-то уже освещена - буду признателен за ссылки.
Заранее спасибо |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Чт Июн 23, 2005 3:14 pm Заголовок сообщения: Организация нейросетей под реальные задачи |
|
|
| Цитата: | | Практически все доступные материалы, связанные с нейросетями описывают либо общую теорию, либо достаточно простые (в плане проекции теории на практику) способы применения |
Не совсем так.
В научной периодике, книгах, на конференциях, да и просто в интернете можно найти большое количество совсем не тривиальных примеров.
| Цитата: | | В том числе ваш учебник при описании применения нейросетей для предсказания результатов финансовых показателей рассматривает в качестве данных одномерный исторический массив. Реально могут учитываться несколько разнородных параметров - что угодно, хоть фазы луны. При этом совершенно неочевидно как нейронные сети работают с группами данных. |
Действительно, там описывается самый простой способ прогнозирования "с погружением временного ряда". В практических задачах такой подход вряд ли даст хорошие результаты, хотя бы потому что реальный временной ряд чаще всего зависит от большого количества параметров. Если речь идет о бизнес-прогнозировании, то такими параметрами могут быть: затраты на рекламные компании, уровень спроса, цена, активность конкурентов, ...
Если речь идет о прогнозировании финансовых рынков, это могут быть значения выбранных индикаторов, экономические показатели.
В этой статье (журнал "Секрет Фирмы") в качестве очень серьезного параметра, определяющего рынок, указывается эмоционально-психологический фон его участников.
При этом нейронная сеть для учета всех таких сущностей подходит значительно лучше чем, скажем, статистические методы прогнозирования.
Самый главный вопрос нейросетевого анализа как раз и состоит в том чтобы правильно выбрать действительно нужный комплект параметров, на основании которых сеть должна работать.
Еще одна проблема - уметь формализовать эти параметры до числовой формы.
Ну иногда все понятно: температуру, цену, значения индикаторов учесть не сложно. Достаточно просто отнормировать их в нужный диапазон и подавать на отдельные входы нейросети. (Так же как в примере из учебника на входы сети подавались задержанные значения одного временного ряда).
В более сложных случаях все не так очевидно. Например ясно, что продажи как-то зависят от рекламы (разные ролики на телевидении, радио, в журналах, ...), но как правильно использовать данные о рекламе для прогнозирования продаж не понятно. Здесь невозможно дать общих рекомендаций - все зависит от специфики задачи.
| Цитата: | | Аналогичная ситуация с итоговыми данными: если нужен в результате массив, то каким образом задается последовательность элементов? |
Не уверен, что правильно понял вопрос. Что вы имеете в виду?
| Цитата: | | Если данная тема в действительности где-то уже освещена - буду признателен за ссылки. |
А что именно интересует? Если сам механизм учета разных параметров при нейросетевом анализе, то можно взять практически любую статью, или книгу по нейронным сетям. Да того же Ежова-Шумского "Нейрокомпьютинг ..." у наc на сайте, там таких примеров предостаточно.
Если конкретные применения на финансовых рынках, то можно в google набрать "neural networks financial markets". Вот интересная ссылка оттуда.
Можно еще здесь посмотреть (Portal on
forecasting with artificial neural networks). |
|
| Вернуться к началу |
|
 |
Гость
|
Добавлено: Пт Июн 24, 2005 2:42 am Заголовок сообщения: Re: Организация нейросетей под реальные задачи |
|
|
| Цитата: | Еще одна проблема - уметь формализовать эти параметры до числовой формы.
Ну иногда все понятно: температуру, цену, значения индикаторов учесть не сложно. Достаточно просто отнормировать их в нужный диапазон и подавать на отдельные входы нейросети. (Так же как в примере из учебника на входы сети подавались задержанные значения одного временного ряда). |
Меня как раз, прежде всего, интересовал данный технический аспект (формализация бизнес-задачи и создание примеров - отдельный интересный вопрос, но лучше не смешивать темы). В чем я вижу проблему: как правило, для обучения сети нам нужны ряды данных, например времянные. Причем, я так понимаю, на каждый вход постоянно (при предъявлении каждого примера или теста) подается значение, соответсвующее определенному (одному и тому же для каждого примера) номеру элемента в ряду. Т.е. на 1-й вход - значение первого дня в рассматриваемом ряду, на 2-й - второго дня и т.д. Если же мы имеем хотя бы 2 входных параметра и используем последовательности значений 3-х дней первого параметра и, например, значения 5-ти дней второго, то очевидно, нейронной сети придется обучиться в том числе тому, что с 4-го входного элемента начинается другая последовательность. Наверняка такой подход работает, но здравый смысл подсказывает, что при этом потребуется более сложная сеть и большее количество примеров для обучения по сравнению с ситуацией, где можно было бы предопределить принадлежность первых трех значений одной группе, а 5-ти следующих - другой (или я ошибаюсь в этом предположении?). Но мне неясно, как это можно сделать на плоском массиве входов нейронной сети.
| Цитата: | Аналогичная ситуация с итоговыми данными: если нужен в результате массив, то каким образом задается последовательность элементов?
Не уверен, что правильно понял вопрос. Что вы имеете в виду? |
Вопрос касается той же проблемы, которую мы только что рассматривали для входных нейронов. Если мы хотим в качестве выхода получать, например, две последовательности значений, то нам нужно всего лишь искусственно их назначить и обучать в соответсвии с этим назначением? (Хотя интуитивно понятно, что для выходных элементов это не должно являться таким же важным вопросом, как для входных данных)
| Цитата: | Если данная тема в действительности где-то уже освещена - буду признателен за ссылки.
А что именно интересует? |
В данном случае интересует методика (или методики) проекции уже формализованных задач на нейронные сети (или их комбинации с другими алгоритмами). В частности, построение цепочек в которых результаты работы нейронной сети передаются для обработки следующей нейронной сетью (или другим алгоритмом), обучение таких структур (например, это делается раздельно по звеньям или совокупно?) и т.д. Очень интересуют применения в области работы с текстами. На русском и в электоронном виде - конечно удобнее
Спасибо за приведенные ссылки, буду изучать, но, если это соответсвует политике форума был бы признателен за возможность ставить отдельные вопросы в форуме - даже если информация есть в публикациях, часто она либо разрозненна, либо сформулирована недружелюбно читателю, либо требует длительного поиска... да и зачастую просто приятнее у живого человека совет спросить |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Пт Июн 24, 2005 2:46 pm Заголовок сообщения: |
|
|
| Цитата: | | Если же мы имеем хотя бы 2 входных параметра и используем последовательности значений 3-х дней первого параметра и, например, значения 5-ти дней второго, то очевидно, нейронной сети придется обучиться в том числе тому, что с 4-го входного элемента начинается другая последовательность. Наверняка такой подход работает, но здравый смысл подсказывает, что при этом потребуется более сложная сеть и большее количество примеров для обучения по сравнению с ситуацией, где можно было бы предопределить принадлежность первых трех значений одной группе, а 5-ти следующих - другой (или я ошибаюсь в этом предположении?). Но мне неясно, как это можно сделать на плоском массиве входов нейронной сети. |
Это обычно делается следующим образом. Пусть у нас есть две разные входные переменные (два разных временных ряда)
X(t)=x1, x2, x3, ..., xn
Y(t)=y1, y2, y3, ..., yn
Выходной ряд обозначим за Z(t)=z1, z2, z3, ...zn
Пусть для прогнозирования Z надо использовать три последних значения X и пять последних Y. Тогда паттерны для обучения и применения задаются так (паттерны идут в строках):
При этом на первые три входа всегда подаются значения переменных одной группы (X), а на входы 4,5,6,7,8 - значения переменных группы Y.
Это совершенно естесственный подход - сеть оперирует числами и ей все равно какую природу они имееют.
Можно, конечно, предположить более хитрый способ построения нейронной сети - когда каждая группа обрабатывается "своей частью" единой нейроконструкции (т.е. как бы выполняется предобработка), и выходные значения этих "частей", в свою очередь, поступают для обработки на следующий уровень иерархии. Надо только понимать, что такой подход как раз более сложный и используется он когда эти "группы" имеют совершенно разный характер влияния.
Например, при прогнозировании продаж, как правило, отдельно прогнозируют тренд, сезонную составляющую и поправку. Это могут быть три разных сети которые работают совершенно независимо, а результат их работы, например, поступают на вход еще одной сети, которая выдает окончательный ответ, или просто суммируются.
| Цитата: | | Вопрос касается той же проблемы, которую мы только что рассматривали для входных нейронов. Если мы хотим в качестве выхода получать, например, две последовательности значений, то нам нужно всего лишь искусственно их назначить и обучать в соответсвии с этим назначением? |
Ну да. "Назначаем" сети разные выходы, потом обучаем и применяем. Хотя в случае выходных переменных часто оказывается выгодным делить одну задачу на несколько. Так чтобы, допустим, не одна сеть выдавала два выхода, а две сети работали каждый со своим выходом.
| Цитата: | | В данном случае интересует методика (или методики) проекции уже формализованных задач на нейронные сети (или их комбинации с другими алгоритмами). В частности, построение цепочек в которых результаты работы нейронной сети передаются для обработки следующей нейронной сетью (или другим алгоритмом), обучение таких структур (например, это делается раздельно по звеньям или совокупно?) и т.д. |
Часто используется нейросетевая предобработка данных
Смысл в том, что первая нейросеть осуществляет сжатие данных. Она тренируется так, чтобы воспроизводить входные данные на выходе. Причем в среднем скрытом слое у нее нейронов меньше, чем на входе и выходе, т.е. размерность данных при прохождении через это "узкое горло" меньше, чем изначально. Их снимают с этого "узкого горла" и дальше уже сжатые данные обрабатываются другой сетью. В таком случае вторая сеть обучаться будет легче, т.к. данные уже предобработаны и из них удален "мусор".
Есть еще вариант иерархической нейроклассификации
Здесь каждый прямоугольник - это обычная простая сеть с относительно малым количеством нейронов, которая либо классифицирует изображение как принадлежащее к какому-то классу, либо не может конкретно указать на класс (в силу своей простоты), но выделяет его как принадлежащее к группе классов. Далее сети на следующих уровнях иерархии решают уже более простые задачи.
Смысл такого классификатора в том, что мы не создаем большую и сложную сеть, которая будет классифицировать на много классов сразу, а создаем много простых и легко обучаемых сетей, которые обучаются раздельно друг от друга, а работают "сообща".
| Цитата: | | Очень интересуют применения в области работы с текстами. |
Интересует распознавание текста, или семантический анализ?
| Цитата: | | если это соответсвует политике форума был бы признателен за возможность ставить отдельные вопросы в форуме - даже если информация есть в публикациях, часто она либо разрозненна, либо сформулирована недружелюбно читателю, либо требует длительного поиска |
Конечно задавайте. Для этого форум и нужен |
|
| Вернуться к началу |
|
 |
Spin Новый посетитель

Зарегистрирован: 24 Июн 2005 Сообщения: 15
|
Добавлено: Сб Июн 25, 2005 1:02 am Заголовок сообщения: |
|
|
Большое спасибо за объяснение - именно эти аспекты меня и интересовали.
Также спасибо за отличную подборку ссылок с аннотациями.
| Oleg Agapkin писал(а): |
| Цитата: | | Очень интересуют применения в области работы с текстами. |
Интересует распознавание текста, или семантический анализ?
|
Семантический анализ: выделение значимой части текста из страницы, содержащей дополнительные (например, оформительские и навигацонные) элементы, категоризация текста (например, по типу материала и по тематике), формирование аннотации, выделение ключевых слов, нахождение похожих текстов в группе, синонимические замены и т.д. |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Пн Июн 27, 2005 2:51 pm Заголовок сообщения: семантический анализ |
|
|
К сожалению, такими применениями нейронных сетей мы никогда не занимались. Даже не могу сразу сказать, где можно посмотреть информацию.
Лучше обратиться за помощью к профессионалам. На российском рынке я бы назвал НейрОК, они как раз текстовыми применениями занимаются, в том числе и семантическим анализом. |
|
| Вернуться к началу |
|
 |
Spin Новый посетитель

Зарегистрирован: 24 Июн 2005 Сообщения: 15
|
Добавлено: Ср Июн 29, 2005 11:24 pm Заголовок сообщения: Re: семантический анализ |
|
|
| Oleg Agapkin писал(а): | К сожалению, такими применениями нейронных сетей мы никогда не занимались. Даже не могу сразу сказать, где можно посмотреть информацию.
Лучше обратиться за помощью к профессионалам. На российском рынке я бы назвал НейрОК, они как раз текстовыми применениями занимаются, в том числе и семантическим анализом. |
Можно отметить, что продукты Нейрок в целом существенно дороже, чем Neuroproject. Это связано с большей сложностью лингвистических задач или обусловленно другими факторами? |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Чт Июн 30, 2005 3:09 pm Заголовок сообщения: |
|
|
| Цитата: | | Можно отметить, что продукты Нейрок в целом существенно дороже, чем Neuroproject. Это связано с большей сложностью лингвистических задач или обусловленно другими факторами? |
У нас продуктов, специально ориентированных на семантический анализ текстов нет вообще
А на вопрос чем обусловлена стоимость продуктов НейрОК я ответить не могу |
|
| Вернуться к началу |
|
 |
Максим Новый посетитель

Зарегистрирован: 25 Июл 2005 Сообщения: 2
|
|
| Вернуться к началу |
|
 |
Spin Новый посетитель

Зарегистрирован: 24 Июн 2005 Сообщения: 15
|
Добавлено: Пн Июл 25, 2005 6:50 pm Заголовок сообщения: |
|
|
| Спасибо, интересная подборка |
|
| Вернуться к началу |
|
 |
Андрей Новый посетитель

Зарегистрирован: 09 Авг 2005 Сообщения: 4
|
Добавлено: Вт Авг 09, 2005 6:49 am Заголовок сообщения: |
|
|
>Есть еще вариант иерархической нейроклассификации
Не подскажите кто первым предложил такой подход. Или это фольклер. |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Вс Авг 14, 2005 10:06 pm Заголовок сообщения: |
|
|
| Цитата: | >Есть еще вариант иерархической нейроклассификации
Не подскажите кто первым предложил такой подход. Или это фольклер. |
Честно говоря, не знаю
Наши сотрудники активно этот метод прорабатывали где-то в середине девяностых. Эти работы были частью научных исследований, по результатам которых после была защищена кандидатская ... |
|
| Вернуться к началу |
|
 |
Андрей Новый посетитель

Зарегистрирован: 09 Авг 2005 Сообщения: 4
|
Добавлено: Пн Авг 15, 2005 6:18 am Заголовок сообщения: |
|
|
| Цитата: | | Эти работы были частью научных исследований, по результатам которых после была защищена кандидатская ... |
А есть текст диссертации в электронном виде. Хотелось бы ознакомиться. Получены расчеты доказывающие, что при иерархической обработке сокращаются общие вычислительные затраты на обучение. Этот факт не очевиден, так как вместо одной сети приходится обучать несколько сетей. |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Пн Авг 15, 2005 9:49 am Заголовок сообщения: |
|
|
| Цитата: | | Получены расчеты доказывающие, что при иерархической обработке сокращаются общие вычислительные затраты на обучение. |
Интересно. Не могли бы вы дать ссылку...
В тех работах (наших сотрудников) сокращение вычислительных затрат было очень заметным и являлось одним из достоинств классифицирующей системы. Вторым достоинством было качество самой классификации.
| Цитата: | | Этот факт не очевиден, так как вместо одной сети приходится обучать несколько сетей. |
Но при этом каждая из этих нескольких сетей настолько простая, что даже тренировка их всех вместе взятых происходит заметно быстрее, чем тренировка одной "сложной" сети.
Я поищу работы, о которых говорил, но, насколько я помню, там никаких математических доказательств сокращения вычислительной сложности при переходе к иерархической классификации нет. Хотя при ее практическом применении именно так и было. |
|
| Вернуться к началу |
|
 |
Игорь Новый посетитель

Зарегистрирован: 17 Авг 2005 Сообщения: 1
|
Добавлено: Чт Авг 18, 2005 10:59 am Заголовок сообщения: |
|
|
Добрый день!
Вы говорите, что метод погружения временного ряда на реальных задачах прогноза не эффективен, тогда какой является наиболее предпочтительным на Ваш взгляд? Не могли бы прояснить ситуацию – нейросеть хорошо отрабатывает тестовые примеры и оценочное множество, но потом не работает. Почему так происходит?
С уважением,
Игорь |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Чт Авг 18, 2005 2:56 pm Заголовок сообщения: |
|
|
| Цитата: | | Вы говорите, что метод погружения временного ряда на реальных задачах прогноза не эффективен, тогда какой является наиболее предпочтительным на Ваш взгляд? |
Методом "погружения" мы вводим в сеть информацию о значениях прогнозируемого временного ряда в предыдущие моменты времени. Если для решения задачи этого достаточно, то этим можно ограничиться. Кстати, даже в таком случае нейросеть чаще всего работает лучше чем ARIMA (один из лучших статистических методов).
Проблема в том, что в большинстве реальных задач информации для прогнозирования, содержащейся в самом ряде недостаточно. Есть еще куча всяких факторов, определяющих прогнозируемую переменную - цена, реклама и пр.
Т.е. смысл в том, что погружение - правильный подход, но ограничиваться только им нельзя.
| Цитата: | | Не могли бы прояснить ситуацию – нейросеть хорошо отрабатывает тестовые примеры и оценочное множество, но потом не работает. Почему так происходит? |
Скорее всего, меняются механизмы тех процессов, данные которых сеть отрабатывает.
Либо есть неучтенные при тренировке важные факторы, тогда сеть как-то подстраивается под тренировочный набор, но дальше работать неспособна.
Может быть, конечно, обычное переобучение, но, думаю, это не тот случай. |
|
| Вернуться к началу |
|
 |
alMuk Новый посетитель

Зарегистрирован: 19 Окт 2005 Сообщения: 1
|
Добавлено: Ср Окт 19, 2005 11:25 am Заголовок сообщения: |
|
|
| Цитата: | | Смысл в том, что первая нейросеть осуществляет сжатие данных. Она тренируется так, чтобы воспроизводить входные данные на выходе. Причем в среднем скрытом слое у нее нейронов меньше, чем на входе и выходе, т.е. размерность данных при прохождении через это "узкое горло" меньше, чем изначально. Их снимают с этого "узкого горла" и дальше уже сжатые данные обрабатываются другой сетью. В таком случае вторая сеть обучаться будет легче, т.к. данные уже предобработаны и из них удален "мусор". |
Не очень понял этот момент , ведь сеть тренируется так, чтобы воспроизводить входные данные на выходе.
Что имеется в виду под "мусором"? |
|
| Вернуться к началу |
|
 |
siteadmin НейроПроект

Зарегистрирован: 10 Июн 2005 Сообщения: 81 Откуда: Москва
|
Добавлено: Ср Окт 19, 2005 2:23 pm Заголовок сообщения: |
|
|
| Видимо, под мусором Олег подразумевал избыточную информацию,которая содержится во входном векторе. |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Вт Дек 06, 2005 5:02 pm Заголовок сообщения: |
|
|
| Вопросы участников форума Slash и Aleksey вынесены в отдельные темы. Эта тема закрывается. |
|
| Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|