Большой datastructures в функциональном программировании

Я - новичок в Функциональном программировании.

У меня есть огромная нейронная сеть с тысячами нейронов, и каждое соединение между нейронами имеет свой вес. Я должен обновлять эти веса очень часто, несколько тысяч раз на учебное занятие.

FP все еще применим здесь? Я имею в виду в fp, мы не можем изменить переменные и только способный возвратить новые переменные, не изменяющие предыдущие значения. Это означает, что я должен воссоздать целую сеть на каждом обновлении веса?

12
задан Denis Gorodetskiy 22 May 2010 в 03:00
поделиться

3 ответа

Изучите массивы Haskell , которые включают изменяемые варианты в монаде.

2
ответ дан 2 December 2019 в 07:02
поделиться

Вам не нужно каждый раз воссоздавать всю сеть происходит обновление веса. Предположительно, ваши нейроны моделируются как отдельные объекты - это означает, что для «обновления» отдельного нейрона вы фактически создаете новый нейрон с обновленным весом. Затем этот нейрон будет вставлен в сеть вместо старого, который, в свою очередь, будет свободен для утилизации сборщиком мусора.

Я не согласен с идеей использования изменяемого состояния. Функциональные языки знают, что они функциональны, поэтому они оптимизируют функциональное программирование. Если функциональный язык действительно является лучшим инструментом для работы, воспользуйтесь его преимуществами.

1
ответ дан 2 December 2019 в 07:02
поделиться

Если вы структурируете свои данные таким образом, чтобы вы могли использовать постоянную структуру данных для моделирования своей нейронной сети, функциональные обновления нейронной сети будут дешевыми (по крайней мере, по сравнению с копирование всего этого).

Если он все еще недостаточно быстр, ваш язык может позволить другие методы (например, осторожное использование мутации), чтобы ускорить его; например, если вы использовали Clojure, вы могли бы использовать переходные процессы для некоторой дополнительной скорости.

1
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: