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

Распараллелить нейронную сеть

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


Зарегистрирован: 26 Фев 2007
Сообщения: 5

СообщениеДобавлено: Пн Фев 26, 2007 7:46 am    Заголовок сообщения: Распараллелить нейронную сеть Ответить с цитатой

Добрый день! Я вот выбрал (и подписал у завкафедры) тему дипломного проекта "Програмный комплекс для высокопроизводительной реализации распределенной нейронной сети." Только, наверное, погорячился. Идея в том, чтобы распараллелить именно обучение нейронной сети. Но руководитель проектирования ссылаясь на сложность задачи рекомендует бесславно отступить и выкрутиться (формулировка темы позволяет) распараллелив работу обученной сети. На написание программы есть еще месяц, но тип распараллеливаемой операции необходимо выбрать до среды.
Вопросы следующие:
1. Какой тип нейронной сети мне выбрать?
2. Как мержить (merge) результаты обучения (векторы) параллельно работающих копий нейронной сети? (знаю, вопрос научный и еще толком нерешенный, но за любые мысли буду очень признателен)
3. Где найти толковую информацию по данной теме?

Спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


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

СообщениеДобавлено: Пн Фев 26, 2007 11:50 am    Заголовок сообщения: Ответить с цитатой

Ответил на форуме basegroup - просто туда раньше зашел Вот тамошняя тема http://forum.basegroup.ru/message.php?id=7217#7217
Ответ разгромный
_________________
www.neuropro.ru - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
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 - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
nerdy_weirdie
Новый посетитель
Новый посетитель


Зарегистрирован: 26 Фев 2007
Сообщения: 5

СообщениеДобавлено: Пн Фев 26, 2007 4:48 pm    Заголовок сообщения: Ответить с цитатой

Victor G. Tsaregorodtsev писал(а):
Ответил на форуме basegroup - просто туда раньше зашел Вот тамошняя тема http://forum.basegroup.ru/message.php?id=7217#7217
Ответ разгромный

Спасибо за ответ!
Цитата:
Реализовать-таки распределенное ОБУЧЕНИЕ нейросеток (хотя это и так уже делали все, кому не лень

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


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

СообщениеДобавлено: Пн Фев 26, 2007 5:13 pm    Заголовок сообщения: Ответить с цитатой

nerdy_weirdie писал(а):
Дело в том, что в современных реализациях распараллеливается только перемножение матриц, но вовсе не обучение сетей, как параллельное обучение копий, и затем слияние результатов обучения. Но если это действительно, как вы сказали, был бы очень признателен за ссылочку!

Я распараллеливал именно перебор примеров в эпохе (т.е. один поток гонит через себя одну часть примеров обучающей выборки, другой - другую, вычисляя поправки для этих примеров, но не модифицируя затем сеть), результаты см. в статье у меня на сайте (правда, статья на английском). Сливались вместе не результаты обучения, а расчитываемых методом обратного распространения вектора градиентов (поправок) для отдельных фрагментов выборок - т.е. из непараллельного только синхронизация, суммирование пары или более векторов (в зависимости от числа потоков), внесение изменений в сеть (коррекция сети так, как это требует используемый при этом метод обучения).
_________________
www.neuropro.ru - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
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 - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
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    Заголовок сообщения: Ответить с цитатой

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

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


Rambler's Top100 Rambler's Top100