Странно, один ответ уже исчез. Но уже не важно. У распределенных вычислений есть свои достоинства и недостатки. Хотелось бы их услышать поконкретнее.
Самая главная проблема в применительности распределенных вычислений - это как я написал возможность разбиения самого процесса вычисления на мелкие подзадачи.
Достоинства - , что есть возможность сократить время вычислений, а недостатки - требуемое наличие нескольких компьютеров.
Но дело даже пока не в этом. Вопрос таков: можно ли разбить на мелкие подзадачи, которые можно решать паралельно, вычисления при обучении нейросетей.
Достоинства - , что есть возможность сократить время вычислений, а недостатки - требуемое наличие нескольких компьютеров.
Но дело даже пока не в этом. Вопрос таков: можно ли разбить на мелкие подзадачи, которые можно решать паралельно, вычисления при обучении нейросетей.
sergeev:
Самая главная проблема в применительности распределенных вычислений - это как я написал возможность разбиения самого процесса вычисления на мелкие подзадачи.
Достоинства - , что есть возможность сократить время вычислений, а недостатки - требуемое наличие нескольких компьютеров.
Но дело даже пока не в этом. Вопрос таков: можно ли разбить на мелкие подзадачи, которые можно решать паралельно, вычисления при обучении нейросетей.
Самая главная проблема в применительности распределенных вычислений - это как я написал возможность разбиения самого процесса вычисления на мелкие подзадачи.
Достоинства - , что есть возможность сократить время вычислений, а недостатки - требуемое наличие нескольких компьютеров.
Но дело даже пока не в этом. Вопрос таков: можно ли разбить на мелкие подзадачи, которые можно решать паралельно, вычисления при обучении нейросетей.
Хорошо, уточню вопрос. В распределенных вычислениях обычно фактор времени становится обычно не критичным. Если какой-то комп, отключился от сети и не передал результат, то вычисления продолжаются дальше. Просто этот результат будет получен позже. На обработку результатов "сервер" дает "клиентам" вполне определенное время. Возникает вопрос о критичности временных интервалов. Может возникать ситуация, когда паровоз уже ушел а результата еще нет. Может я не о том говорю, может быть. Тогда нужно конкретнее ставить задачу. (Это относится не к нейросетям, а к тяжелым вычислениям).
Integer:
Народ, вы меня немного тревожите и я за вас начинаю переживать.
Вы всегда так начинаете обсуждение тем - с каких-то отвлеченных
понятий.sergeev, вы убили кого-то чтоли? Откуда такая навязчивая потребность к чистоте после себя?
Вообще есть мысли по распределению обучения сети, но извини. .....
Если вы так переживаете, что я удалю эту тему после 10 страниц такого вот ненужного здесь флуда - то вы будете наверно на 100% правы!
Или у вас появилась навязчивая идея флудить и писать всякие неприятные и обидные слова именно в моих топиках?
Если тема для многих людей интересна, то я быхотел попросить третью сторону (модераторов или если захочет Vinin) не так озабоченную по отношению ко мне, создать ее под своим авторством. Чтоб у меня даже не было возможности что либо менять.
Если же вы и дальше намерены портить обсуждение моих тем глупостями и обсуждением совсем дроугих вопросов, то тогда хотел бы поставить воспро ребром и попросить весь форум проголововать за вечный бан sergeeva. Потому что такое отношение к любому человеку я считаю недопустимым.
Vinin:
Хорошо, уточню вопрос. В распределенных вычислениях обычно фактор времени становится обычно не критичным. Если какой-то комп, отключился от сети и не передал результат, то вычисления продолжаются дальше. Просто этот результат будет получен позже. На обработку результатов "сервер" дает "клиентам" вполне определенное время. Возникает вопрос о критичности временных интервалов. Может возникать ситуация, когда паровоз уже ушел а результата еще нет. Может я не о том говорю, может быть. Тогда нужно конкретнее ставить задачу. (Это относится не к нейросетям, а к тяжелым вычислениям).
Ты все правильно говоришь. У себя в Volvox я реализовал выход из
ситуации таким образом: За единицу времени вычислений я принимал
среднее время вычислений одного пакета данных. И если от конкретного
клиента нет ответа в течении 2-3 едениц среднего времени, то этот пакет передавался другому клиенту.
Хорошо, уточню вопрос. В распределенных вычислениях обычно фактор времени становится обычно не критичным. Если какой-то комп, отключился от сети и не передал результат, то вычисления продолжаются дальше. Просто этот результат будет получен позже. На обработку результатов "сервер" дает "клиентам" вполне определенное время. Возникает вопрос о критичности временных интервалов. Может возникать ситуация, когда паровоз уже ушел а результата еще нет. Может я не о том говорю, может быть. Тогда нужно конкретнее ставить задачу. (Это относится не к нейросетям, а к тяжелым вычислениям).
Так что с этим я думаю не стоит волноваться. Там все красиво реализовано
Но все таки я так и не понял можно ли распаралелить вычисления при обучении нейросетей?
sergeev:
Так что с этим я думаю не стоит волноваться.
Но все таки я так и не понял можно ли разпаралелить вычисления при обучении нейросетей?
Vinin:
Хорошо, уточню вопрос. В распределенных вычислениях обычно фактор времени становится обычно не критичным. Если какой-то комп, отключился от сети и не передал результат, то вычисления продолжаются дальше. Просто этот результат будет получен позже. На обработку результатов "сервер" дает "клиентам" вполне определенное время. Возникает вопрос о критичности временных интервалов. Может возникать ситуация, когда паровоз уже ушел а результата еще нет. Может я не о том говорю, может быть. Тогда нужно конкретнее ставить задачу. (Это относится не к нейросетям, а к тяжелым вычислениям).
Ты все правильно говоришь. У себя в Volvox я реализовал выход из
ситуации таким образом, что за 1 вычислений я принимал среднее
время вычислений одного пакета данных. И если от конкретного
клиента нет ответ в течении 2-3 едениц среднего времени, то этот
пакет передавался другому клиенту. Хорошо, уточню вопрос. В распределенных вычислениях обычно фактор времени становится обычно не критичным. Если какой-то комп, отключился от сети и не передал результат, то вычисления продолжаются дальше. Просто этот результат будет получен позже. На обработку результатов "сервер" дает "клиентам" вполне определенное время. Возникает вопрос о критичности временных интервалов. Может возникать ситуация, когда паровоз уже ушел а результата еще нет. Может я не о том говорю, может быть. Тогда нужно конкретнее ставить задачу. (Это относится не к нейросетям, а к тяжелым вычислениям).
Так что с этим я думаю не стоит волноваться.
Но все таки я так и не понял можно ли разпаралелить вычисления при обучении нейросетей?
Распараллерить можно, просто нужна не одна нейронка а несколько, и еще одна для сведения общего результата. Возьмем например машки. Одна нейронка обрабатывает скорость, вторая расположение машек друг относительно другаЮ ттетья еще что-то. В каждом случае получаем вполне конкретный результат с определенной точностью. Последняя сеть должна по результатам предыдущей работы вынести вполне определенное резюме. Тогда можно для каждого вида рынка (тренд, флэт или что-то другое, суждений довольно много) принимать какое-то свое решение.
Хочу уточнить что мы сейчас можем пока говорить не о разделении
глобальных задач межд компьютерами (одна нейронка одному а
другая другому) А о разделении вычислений вообще... внутри одной
нейронки
Да и еще.
Хочу уточнить что речь пока идет о длительности процесса обчения и возможности его ускорения.
Хочу уточнить что речь пока идет о длительности процесса обчения и возможности его ускорения.
Хотел бы я знать, как можно back propagation распараллелить... Сами по
себе НС по своей природе уже считаются системами параллельных
вычислений, вне зависимости от количества компутеров. Ну Vinin уже ответил. Что-то типа комитета с каждой НС на отдельном компе
получается?
sergeev:
Хочу уточнить что мы сейчас можем пока говорить не о разделении глобальных задач межд компьютерами (одна нейронка одному а другая другому) А о разделении вычислений вообще... внутри одной нейронки
Хочу уточнить что мы сейчас можем пока говорить не о разделении глобальных задач межд компьютерами (одна нейронка одному а другая другому) А о разделении вычислений вообще... внутри одной нейронки
Распределенные вычисления здесь вряд ли помогут. Может помочь только смена алгоритма обучения.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да и вообще часто в литературе встречаю высказывании про то, что на обучение сети может потратиться очень много времени. Может даже и недель. (Я пока только штудирую данную тему, поэтому с реальными цифрами собственного опыта не знаком).
В свою университетскую молодость я со своим коллегой разработали клиент/серверное приложение для распределенных вычислений. В принципе делали мы это забавы ради в качестве изучения TCP/IP протокола. Но результаты оказались настолько красивыми, что мы даже попытались наладить связи между различными НИИ, которые на наш взгляд реально нуждались в такой разработке. К сожалению, дальше эта тема не пошла (никто не хотел финансировать или брать в свой штат) и проект Volvox был скромно положен на верхнюю полку и запылился. А буквально месяц назад я наткнулся на очень похожую разработку (rixler.com).
Но у меня есть интересное предложение к тем, кто уже написал свою первую нейронку и понимает к чему я веду.
Возможно ли разделение процесса обучения на подзадачи таким образом, чтоб их можно было раздавать между машинами-клиентами, а после выполнения требуемых вычислений собрать результат на машине-сервере? Это во много раз сократит время поиска решения.
Если такая возможность есть (а мне бы очень хотелось бы чтоб была), то я могу сразу предложить два пути осуществления этого интересного проекта
1) у вас есть возможность найти хотя бы 5-10 машин (на работе у друга, в институте или еще где-нибудь)
2) Вариант поинтереснее. Все желающие могут взять и поставить у себя на машине (а может и у друзей или еще где-нибудь) клиентскую часть и поделиться «гуляющим» процессорным временем. Во-вторых. В этом случае каждый из вас тоже смог бы получить взамен самое ценное – время.
Даже если в такую группу войдут всего несколько человек, уже будет неплохо.
В принципе хоть идея эта ко мне пришла в отношении обучения нейросетей, но такой подход возможен не только для них, а и любых других «тяжелых» вычислений. (Я уже пока молчу о возможности создании очень большой нейросети, которая включала бы в себя десятки компьютеров)
Поэтому если кто желает принять участие в осуществлении этого проекта, то буду рад единомышленникам.