Подтвердить что ты не робот

Нейронные сети в Haskell - советы

Может ли кто-нибудь предложить мне учебник, книгу, блог или образец общего кода для нейронных сетей в Haskell? У меня есть опыт в нейронных сетях на императивных языках, но я хочу попробовать это в Haskell.

4b9b3361

Ответ 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 (здесь.).