Как стать автором
Обновить

Метод Монте-Карло в алгоритме обратного распространения ошибок с параллельными вычислениями

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.5K
Всего голосов 9: ↑7 и ↓2+6
Комментарии9

Комментарии 9

Сразу чувствуется научный подход и опыт подачи материала для коллег, занимающихся наукой. Отличительная черта такого подхода — отсутствие воды в тексте.

3 минуты против 16 часов — круто. Я, вообще, заметил, что чем более базовую технологию используешь, тем быстрее всё работает, так как появляется возможность использования собственных алгоритмов, оптимизированных под конкретные телодвижения.

На всякий случай напишу, что 2 программы - сервер и клиент хранятся в GitHub (AndrewMakarovsky/nn_mathserver и AndrewMakarovsky/nn_mathclient), посмотреть их можно. Но требуется небольшая чистка кода, окончательное тестирование и более подробные комментарии.

Сделано для Linux, компилируются с помощью make.

"для всех i от n − 1 до 1 выполнить"

Здравствуйте! В этой фразе все правильно?

Правильно. Но случайное число мне пришлось получать таким образом:

double d = ((double)rand()) / RAND_MAX;
int r = (int)(d * (i + 1));
r = (r == i + 1) ? i : r;

Иначе случайные числа не будут равновероятны. Можно проще:

int r = rand() % (i + 1);

Но с действительными числами для меня привычнее. В Википедии было написано, что в результате ошибок может получиться алгоритм Сандры Саттоло, в котором диапазон случайных чисел на 1 меньше, это у меня первоначально получился такой алгоритм, поэтому его пришлось дорабатывать. Скорее всего, Сандра Саттоло именно такого рода алгоритм и получила, какой написан выше, а по поводу его ошибочности в Википедии написано неправильно. Но для всех i от n − 1 до 1 - тоже правильно, просто о методах получения случайных чисел в диапазоне от 0 до i ничего не написано. Они должны быть равновероятны.

Спасибо

Версия 1.0 готова, закачана в GitHub (AndrewMakarovsky/nn_mathserver и AndrewMakarovsky/nn_mathclient).

Работа проверялась в Debian на моём компьютере и Ubuntu в firstvds, но в Linux кодировка русских букв другая, добавлено описание функций клиента на английском языке. Теперь буду все комментарии переводить на английский язык и писать новые комментарии.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации