Может ли кто-нибудь предложить мне учебник, книгу, блог или образец общего кода для нейронных сетей в Haskell? У меня есть опыт в нейронных сетях на императивных языках, но я хочу попробовать это в Haskell.
Нейронные сети в Haskell - советы
Ответ 1
В Hackage имеется несколько библиотек:
-
HaskellNN Библиотека Haskell, использующая библиотеки hmatrix (и, транзитивно, GSL и libLBFGS C) для тяжелой атлетики ( GPL). Утверждается, что это быстро.
-
instinct Библиотека pure-Haskell, которая утверждает, что она быстрая (BSD).
-
hnn Минимальная библиотека нейронной сети Haskell (LGPL).
-
bindings-fann Привязка к библиотеке FANN.
-
hfann Другие привязки к библиотеке FANN.
Ответ 2
Вы можете найти этот пример приложения. Он использует обратное распространение. Я написал статью, обсуждая пример, объясняя, как использование функциональной парадигмы влияет на дизайн. Статья должна появиться в следующем выпуске The Monad Reader.
Ответ 3
Сообщество DataHaskell ведет более актуальный список пакетов Hackage по адресу http://www.datahaskell.org/docs/community/current-environment.html#neural-networks
Начиная с 2019-08-26, он рекомендует следующие пакеты:
- нейронный (только для процессора, см. выпуск 10)
- backprop-learn использует библиотеку backprop (только для процессора?)
- граната (зависимо набран! Удобный API, но пока только для процессора, см. выпуск 55/выпуск 35/выпуск 6)
- hasktorch (привязки Haskell к библиотекам C, лежащим в основе PyTorch, ранняя разработка, но она должна позволить вам тренироваться на GPU)
- tenorflow (привязки Haskell к TF; скорее всего, то, что вы использовали бы в работе, но пугающий API; может работать на GPU)
- (и sibe (только для процессора), хотя и под заголовком ML, реализует нейронные сети)
В https://mmhaskell.com/blog/2017/8/14/starting-out-with-haskell-tensor-flow/https://mmhaskell.com/blog/2017/8/21/digging-in-deep-solving-a-real-problem-with-haskell-tensor-flow и т.д. Есть серия сообщений в блоге об использовании TensorFlow от Haskell и т.д.
Если вы интересуетесь автоматическим/дифференцируемым программированием, автор Backprop-Learn показывает , как добавить зависимые типы в нейронную сеть и как сделать автоматическое дифференцирование (как в TF) от Haskell, что в итоге превратилось в библиотеку backprop. См. также библиотеку ad (здесь.).