|
neuroproject.ru Форум сайта компании НейроПроект
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
nerdy_weirdie Новый посетитель

Зарегистрирован: 26 Фев 2007 Сообщения: 5
|
Добавлено: Пн Фев 26, 2007 7:46 am Заголовок сообщения: Распараллелить нейронную сеть |
|
|
Добрый день! Я вот выбрал (и подписал у завкафедры) тему дипломного проекта "Програмный комплекс для высокопроизводительной реализации распределенной нейронной сети." Только, наверное, погорячился. Идея в том, чтобы распараллелить именно обучение нейронной сети. Но руководитель проектирования ссылаясь на сложность задачи рекомендует бесславно отступить и выкрутиться (формулировка темы позволяет) распараллелив работу обученной сети. На написание программы есть еще месяц, но тип распараллеливаемой операции необходимо выбрать до среды.
Вопросы следующие:
1. Какой тип нейронной сети мне выбрать?
2. Как мержить (merge) результаты обучения (векторы) параллельно работающих копий нейронной сети? (знаю, вопрос научный и еще толком нерешенный, но за любые мысли буду очень признателен)
3. Где найти толковую информацию по данной теме?
Спасибо |
|
| Вернуться к началу |
|
 |
Victor G. Tsaregorodtsev Эксперт

Зарегистрирован: 28 Июн 2005 Сообщения: 114 Откуда: Красноярск
|
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Пн Фев 26, 2007 12:51 pm Заголовок сообщения: Re: Распараллелить нейронную сеть |
|
|
| nerdy_weirdie писал(а): | | ... Но руководитель проектирования ссылаясь на сложность задачи рекомендует бесславно отступить и выкрутиться (формулировка темы позволяет) распараллелив работу обученной сети... |
Это несерьезно.
Даже если люди на защите диплома впервые в жизни услышат про нейронную сеть, они сразу же поймут, что прямое распространение сигнала по сети любой сложности должно выполняться моментально и параллельность здесь ни к чему.
Распараллеливать имеет смысл только вычислительно-емкие процессы. Например, обучение, или применение релаксационных сетей типа Хопфилда. Хотя мне сложно представить, как можно Хопфилда распараллеливать. Может, только асинхронные модели какие-нибудь.
Или еще хороший вариант распараллеливать обучение множества сетей. Например, одновременное обучение нескольких разнородных сетей для комитетов. Но тут никакой сложности с научной точки зрения как раз нет |
|
| Вернуться к началу |
|
 |
Victor G. Tsaregorodtsev Эксперт

Зарегистрирован: 28 Июн 2005 Сообщения: 114 Откуда: Красноярск
|
Добавлено: Пн Фев 26, 2007 3:38 pm Заголовок сообщения: Re: Распараллелить нейронную сеть |
|
|
| Oleg Agapkin писал(а): | | прямое распространение сигнала по сети любой сложности должно выполняться моментально и параллельность здесь ни к чему. |
Вот про то же я и написал на указанном форуме, только более детально с точки зрения программизма (довел детализацию чуть ли не подсчета тактов процессора).
| Oleg Agapkin писал(а): |
Но тут никакой сложности с научной точки зрения как раз нет |
Я не думаю, что требуется высокий уровень именно науки - скорее всего там обычный технический вуз, программистский факультет. Но раз так - то главным становятся вопрос об адекватной постановке задачи (предварительный анализ реализуемости с целью оценки возможности достижения положительного эффекта от распараллеливания и величины такого эффекта) и возможность последующего сравнения параллельного и непараллельного вариантов с точки зрения скорости (и за непараллельный вариант при этом лучше взять вариант вообще без распараллеливания, а не запускаемый только с одним потоком параллельный - чтобы оценить накладные расходы на распараллеливание). А вот насчет выигрыша скорости у меня огромные сомнения...
nerdy_weirdie
Если люди (переросшие студенческий уровень знакомства с нейросетками и имеющие гораздо больший стаж программирования самих сеток вплоть до их распараллеливания в разных позах (или, по крайней мере, знакомые с разными вариантами распараллеливания)) сразу говорят Вам о малой эффективности распараллеливания именно работы обученной сети, то к этому стоит, наверно, прислушаться заранее, а не перед самой защитой. _________________ www.neuropro.ru - нейросети, анализ данных, прогнозирование |
|
| Вернуться к началу |
|
 |
nerdy_weirdie Новый посетитель

Зарегистрирован: 26 Фев 2007 Сообщения: 5
|
Добавлено: Пн Фев 26, 2007 4:48 pm Заголовок сообщения: |
|
|
Спасибо за ответ!
| Цитата: | | Реализовать-таки распределенное ОБУЧЕНИЕ нейросеток (хотя это и так уже делали все, кому не лень |
Дело в том, что в современных реализациях распараллеливается только перемножение матриц, но вовсе не обучение сетей, как параллельное обучение копий, и затем слияние результатов обучения. Но если это действительно, как вы сказали, был бы очень признателен за ссылочку! |
|
| Вернуться к началу |
|
 |
Victor G. Tsaregorodtsev Эксперт

Зарегистрирован: 28 Июн 2005 Сообщения: 114 Откуда: Красноярск
|
Добавлено: Пн Фев 26, 2007 5:13 pm Заголовок сообщения: |
|
|
| nerdy_weirdie писал(а): | | Дело в том, что в современных реализациях распараллеливается только перемножение матриц, но вовсе не обучение сетей, как параллельное обучение копий, и затем слияние результатов обучения. Но если это действительно, как вы сказали, был бы очень признателен за ссылочку! |
Я распараллеливал именно перебор примеров в эпохе (т.е. один поток гонит через себя одну часть примеров обучающей выборки, другой - другую, вычисляя поправки для этих примеров, но не модифицируя затем сеть), результаты см. в статье у меня на сайте (правда, статья на английском). Сливались вместе не результаты обучения, а расчитываемых методом обратного распространения вектора градиентов (поправок) для отдельных фрагментов выборок - т.е. из непараллельного только синхронизация, суммирование пары или более векторов (в зависимости от числа потоков), внесение изменений в сеть (коррекция сети так, как это требует используемый при этом метод обучения). _________________ www.neuropro.ru - нейросети, анализ данных, прогнозирование |
|
| Вернуться к началу |
|
 |
nerdy_weirdie Новый посетитель

Зарегистрирован: 26 Фев 2007 Сообщения: 5
|
Добавлено: Пн Фев 26, 2007 5:51 pm Заголовок сообщения: |
|
|
| Да, думаю много полезного почерпну из ваших статей (естественно, со ссылкой на источник). Наверное, хватит, чтобы защититься. Но моя идея в том, чтобы распараллеливать сеть посредством кластера, объединенного по TCP/IP. В этом случае пересылка данных существенно медленнее и более эффективным было бы предоставление копиям большей автономии, и возможности модификации своей копии сети с возможностью последующего объединения. Вот в чем моя загвоздка.. |
|
| Вернуться к началу |
|
 |
Victor G. Tsaregorodtsev Эксперт

Зарегистрирован: 28 Июн 2005 Сообщения: 114 Откуда: Красноярск
|
Добавлено: Вт Фев 27, 2007 1:06 pm Заголовок сообщения: |
|
|
| nerdy_weirdie писал(а): | | моя идея в том, чтобы распараллеливать сеть посредством кластера, объединенного по TCP/IP. |
Это будет еще хуже - добавятся тормоза и в стеке TCP/IP операционной системы, и на уровне драйвера/железа сетевой карты, т.е. межкомпьютерная коммуникация-синхронизация будет гораздо тормознее синхронизации параллельных потоков на многопроцессорном компе или на компе с многоядерным процессором.
Вы вообще откуда? Хоть бы в профиле указали Ваш город. А то у нас в Красноярске один студент, а потом аспирант (аспирантура у него вроде еще не закончилась, руководителем диплома и аспирантуры являлся не я) как раз и бодался с распараллеливанием для кластера. Результат меня особо не впечатлил с точки зрения получаемой эффективности. Если я найду его е-мыл, то могу бросить его Вам, а вы у него попросите электронных вариантов его статей, если он не пожадничает и найдет время - хоть там и нет описания деталей (сужу по тем публикациям, которые я у него видел), но сама постановка задачи и некоторое обсуждение реальных результатов могут быть полезными Вам для постановки задачи и обхода уже обнаруженных подводных камней _________________ www.neuropro.ru - нейросети, анализ данных, прогнозирование |
|
| Вернуться к началу |
|
 |
nerdy_weirdie Новый посетитель

Зарегистрирован: 26 Фев 2007 Сообщения: 5
|
Добавлено: Вт Фев 27, 2007 7:35 pm Заголовок сообщения: |
|
|
| Victor G. Tsaregorodtsev писал(а): | | nerdy_weirdie писал(а): | | моя идея в том, чтобы распараллеливать сеть посредством кластера, объединенного по TCP/IP. |
Это будет еще хуже - добавятся тормоза и в стеке TCP/IP операционной системы, и на уровне драйвера/железа сетевой карты, т.е. межкомпьютерная коммуникация-синхронизация будет гораздо тормознее синхронизации параллельных потоков на многопроцессорном компе или на компе с многоядерным процессором. |
Я имею целью добиться высокой производительности массовостью.. но, к сожалению, машины с десятками процессоров мне недоступны. Так что при условии высокой автономии копий программы (при минимизации количества взаимодействий с остальными копиями) TCP/IP на десятках машин даст ощутимую выгоду. Заодно и достаточно универсальное решение. А вообще - моя цель, к сожалению, вовсе не построение сильно умной и производительной системы и не научные изыскания, а защита диплома. Сейчас просто нужна программа, о которой можно сказать пару красивых фраз, ибо завкафедры - специалист в нейронных сетях. |
|
| Вернуться к началу |
|
 |
nerdy_weirdie Новый посетитель

Зарегистрирован: 26 Фев 2007 Сообщения: 5
|
Добавлено: Вт Фев 27, 2007 7:40 pm Заголовок сообщения: |
|
|
| И кстати, сама формулировка темы - "распределенная нейронная сеть". |
|
| Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|