Difference between revisions of "AI"

From HaskellWiki
Jump to navigation Jump to search
(Initial creation)
 
(→‎External links: Added a link to "Preventing memoization in (AI) search problems")
(63 intermediate revisions by 35 users not shown)
Line 1: Line 1:
  +
[[Category:Community]]
AI
 
  +
[[Category:AI]]
  +
== Introduction ==
  +
This is the home for the Haskell AI Strike Force! Here we will collect code, problems, papers, ideas, and people for putting together a flexible AI toolkit in Haskell.
  +
  +
== People ==
  +
If interested in contributing to or monitoring this project, please put your name, nickname (if applicable - e.g., if you talk on #haskell), and email address so we can keep each other up-to-date.
  +
  +
Mark Wong-VanHaren (marklar) <markwvh at gmail>
  +
  +
Andrew Wagner (chessguy) <wagner dot andrew at gmail>
  +
  +
Bryan Green (shevek) <dbryan dot green at gmail>
  +
  +
Ricardo Herrmann <rherrmann at gmail>
  +
  +
Dan Doel (dolio) <dan dot doel at gmail>
  +
  +
Chung-chieh Shan (ccshan) <ccshan at cs dot rutgers dot edu>
  +
  +
Adam Wyner (Lawman) <adam dot wyner dot info>
  +
  +
Allan Erskine (thedatabase) <allan dot erskine at gmail>
  +
  +
Dave Tapley (DukeDave) <dukedave at gmail>
  +
  +
Lloyd Allison <lloyd dot allison at infotech dot monash dot edu dot au>
  +
  +
Jim Geovedi <jim at geovedi dot com>
  +
  +
Paul Berg (Procyon) <procyon at procyondevelopments dot com>
  +
  +
Eric Kow (kowey) <eric dot kow at gmail> [watching on the sidelines]
  +
  +
Charles Blundell <blundellc at gmail>
  +
  +
Mathew Mills (mathewm) <mathewmills (at) gmail (dot) com>
  +
  +
Jason Morton (inverselimit) <jason.morton at gmail>
  +
  +
Jiri Hysek (dvekravy) <xhysek02 at stud dot fit dot vutbr dot cz> [NN, EA]
  +
  +
Shahbaz Chaudhary <shahbazc at gmail> [interested in GP]
  +
  +
Hans van Thiel <hthiel dot char á zonnet tot nl> [automated rule discovery, author of the Emping data mining utility]
  +
  +
Alp Mestanogullari (Alpounet) <alp (at) mestan (dot) fr> [machine learning mainly]
  +
  +
Chris Pettitt (cpettitt) <cpettitt at gmail>
  +
  +
Nathaniel Neitzke (nneitzke) <nightski at gmail>
  +
  +
Ricardo Honorato-Zimmer (_rata_) <rikardo dot horo at gmail dot com>
  +
  +
Raphael Javaux (RaphaelJ) <raphaeljavaux at gmail dot com>
  +
  +
Mahmut Bulut (vertexclique) <mahmutbulut0 at gmail dot com> (ML, natural language processing, swarming intelligence)
  +
  +
Mike Izbicki <mike at izbicki.me>
  +
  +
Chris Taylor (crntaylor) <crntaylor at gmail>
  +
  +
Libor Wagner <wagnelib at cmp dot felk dot cvut dot cz>
  +
  +
Florian Grunert <fgrunert ätt uni-osnabrueck dot de>
  +
  +
Chad Scherrer <chad (dot) scherrer (at) gmail> (Parallel learning algrorithms, L1 regularization, Bayesian inference)
  +
  +
== Ideas ==
  +
  +
* In short, parts of this project can range from established ideas to new syntheses. ccshan: The high level of domain-specific abstraction that Haskell enables is ideal for AI, because AI programs are often "meta": we need to model agents who model the world, and sometimes to model agents who model agents who model the world, etc. In particular, monads are a good way to structure and solve decision processes, [http://conway.rutgers.edu/~ccshan/wiki/cs504/posts/Second_week.html as I've started to explore as part of a course on computational modeling that I'm teaching]. Given that [http://www.cs.yale.edu/homes/hudak-paul/hudak-dir/ACM-WS/position.html Haskell is a good language for modular interpreters and compilers], it would also be nice to create and refactor in Haskell an implementation of a [http://ai.stanford.edu/~shoham/www%20papers/RatProg.pdf rational programming language] like [http://www.eecs.harvard.edu/~avi/ Avi Pfeffer]'s [http://www.eecs.harvard.edu/~avi/IBAL/index.html IBAL] -- not only [http://www.eecs.harvard.edu/~nr/pubs/pmonad-abstract.html is probability distribution a monad], I just realized that [http://ttic.uchicago.edu/~dmcallester/bayes.ps a certain kind of variable elimination] is simply garbage collection in a call-by-need language!
  +
  +
== Things that need a home ==
  +
  +
If there are things that should be included in the project, but you're not sure where it should go, place it here! I'll start with:
  +
* http://catenova.org/~awagner/Simplifier (broken link)
  +
**This was given to me by Alfonso Acosta (mentioned recently on haskell-cafe)
  +
  +
*http://catenova.org/~awagner/GPLib (broken link)
  +
**[[GPLib]] is a work in progress by yours truly, hopefully a future framework for genetic algorithms in haskell.
  +
  +
*http://www.haskell.org/haskellwiki/Libraries_and_tools/Linguistics
  +
  +
I've proposed a machine learning library for this year's Google Summer of Code. [http://hackage.haskell.org/trac/summer-of-code/ticket/1127] There has been a few interested (and seemingly well qualified) students, too. I'm not sure if it qualifes as "AI", but if you are interested in this project (as a potential student, mentor, or just...well, interested), please add yourself to the above link, and/or get in touch with me at <ketil at malde dot org>. --[[User:Ketil|Ketil]] 07:46, 26 March 2007 (UTC)
  +
  +
Martin Erwig's probabilistic functional programming (PFP) project, including an implementation of the probability monad:
  +
*http://web.engr.oregonstate.edu/~erwig/pfp/
  +
  +
Culmination of some recent posts about the probability monad on Random Hacks (including a darcs repository):
  +
*http://www.randomhacks.net/articles/2007/03/03/smart-classification-with-haskell
  +
  +
sigfpe's coverage and highly algebraic view of the probability monad in Haskell:
  +
*http://sigfpe.blogspot.com/2007/02/monads-for-vector-spaces-probability.html
  +
  +
Two links I found today that are interesting:
  +
*http://perception.inf.um.es/darcs/darcsweb.cgi
  +
*http://www-student.cs.york.ac.uk/~cb224/
  +
  +
Polytypic unification - unification seems particularly useful for AI tasks (at least natural language stuff)... wouldn't be nice to have a generic library that does it for you?
  +
*http://www.cs.chalmers.se/~patrikj/poly/unify/
  +
  +
Easy-to-use work-in-progress neural network library, by [[User:AlpMestan|Alp Mestan]] and Chaddaï Fouché :
  +
*http://github.com/alpmestan/HNN/tree/master
  +
  +
Implementation of some of the algorithms in Russell and Norvig's "Artificial Intelligence: A Modern Approach", by [[User:Crntaylor|Chris Taylor]]:
  +
*https://github.com/chris-taylor/aima-haskell
  +
  +
== Proposed Module Hierarchy ==
  +
*AI
  +
**AI.Searching
  +
***AI.Searching.Evolutionary
  +
**AI.Logic
  +
**AI.Planning
  +
***AI.Planning.Swarm
  +
**AI.Probabilistic
  +
**AI.Learning
  +
***AI.Learning.Kernel
  +
***AI.Learning.NeuralNet
  +
**AI.Classification
  +
***AI.Classification.ExpertSystem
  +
**AI.Communication
  +
  +
==Proposed sample format for a wiki page on a topic or sub-topic==
  +
  +
'''AI/Logic/Fuzzy'''
  +
  +
The slashes show that [[/Logic | Logic]] is a subpage of [[AI]] and [[/Logic/Fuzzy | Fuzzy]] is a subpage of [[AI/Logic]]. MediaWiki will then generate links back up the chain of pages. (Try the links to see)
  +
  +
*Fuzzy logic is blah blah...
  +
*Sub-topics:
  +
**Trivial fuzzy logic in Haskell
  +
**Type 2 fuzzy logic
  +
*Links to existing literature:
  +
**General
  +
***My first fuzzy logic book
  +
**Specific to functional programming / Haskell
  +
***Fun with fuzzy functions
  +
*Typical problems:
  +
**Problem 1: blah blah blah
  +
**Problem 2: blah blah blah
  +
*List of people involved in the area
  +
** Me
  +
**Someone else
  +
*Body
  +
**List of goals
  +
**Progress being made on them
  +
**Code and documentation.
  +
  +
==Current sub-pages==
  +
*[[/Logic/Fuzzy]]
  +
*[[/Genetic programming/Evolutionary chess]]
  +
*[[/Genetic programming/GPLib]]
  +
  +
  +
== External links ==
  +
  +
* [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:ai Packages at Hackage, marked AI]
  +
* [https://patch-tag.com/r/alpmestan/hasklab/wiki/ HaskLab Wiki]
  +
* [http://projects.haskell.org/cgi-bin/mailman/listinfo/hasklab The HaskLab mailing-list]
  +
* [http://projects.haskell.org/pipermail/hasklab/ The HaskLab Archives] (mailing-list archive)
  +
* [http://okmij.org/ftp/Haskell/#memo-off Preventing memoization in (AI) search problems]
  +
* [http://jpmoresmau.blogspot.com/2010/09/digit-recognition-with-neural-network.html Digit recognition with a neural network. First attempt!] (Blog article)
  +
* [http://jpmoresmau.blogspot.com/2010/09/haskell-neural-network-plugging-space.html Haskell Neural Network: plugging a space leak] (Blog article)
  +
* [http://www.ki.informatik.uni-frankfurt.de/research/HCAR.html Further Reading]
  +
* [https://github.com/smichal/hs-logic hs-logic]; logic programming in Haskell (software on github)

Revision as of 19:44, 27 September 2014

Introduction

This is the home for the Haskell AI Strike Force! Here we will collect code, problems, papers, ideas, and people for putting together a flexible AI toolkit in Haskell.

People

If interested in contributing to or monitoring this project, please put your name, nickname (if applicable - e.g., if you talk on #haskell), and email address so we can keep each other up-to-date.

Mark Wong-VanHaren (marklar) <markwvh at gmail>

Andrew Wagner (chessguy) <wagner dot andrew at gmail>

Bryan Green (shevek) <dbryan dot green at gmail>

Ricardo Herrmann <rherrmann at gmail>

Dan Doel (dolio) <dan dot doel at gmail>

Chung-chieh Shan (ccshan) <ccshan at cs dot rutgers dot edu>

Adam Wyner (Lawman) <adam dot wyner dot info>

Allan Erskine (thedatabase) <allan dot erskine at gmail>

Dave Tapley (DukeDave) <dukedave at gmail>

Lloyd Allison <lloyd dot allison at infotech dot monash dot edu dot au>

Jim Geovedi <jim at geovedi dot com>

Paul Berg (Procyon) <procyon at procyondevelopments dot com>

Eric Kow (kowey) <eric dot kow at gmail> [watching on the sidelines]

Charles Blundell <blundellc at gmail>

Mathew Mills (mathewm) <mathewmills (at) gmail (dot) com>

Jason Morton (inverselimit) <jason.morton at gmail>

Jiri Hysek (dvekravy) <xhysek02 at stud dot fit dot vutbr dot cz> [NN, EA]

Shahbaz Chaudhary <shahbazc at gmail> [interested in GP]

Hans van Thiel <hthiel dot char á zonnet tot nl> [automated rule discovery, author of the Emping data mining utility]

Alp Mestanogullari (Alpounet) <alp (at) mestan (dot) fr> [machine learning mainly]

Chris Pettitt (cpettitt) <cpettitt at gmail>

Nathaniel Neitzke (nneitzke) <nightski at gmail>

Ricardo Honorato-Zimmer (_rata_) <rikardo dot horo at gmail dot com>

Raphael Javaux (RaphaelJ) <raphaeljavaux at gmail dot com>

Mahmut Bulut (vertexclique) <mahmutbulut0 at gmail dot com> (ML, natural language processing, swarming intelligence)

Mike Izbicki <mike at izbicki.me>

Chris Taylor (crntaylor) <crntaylor at gmail>

Libor Wagner <wagnelib at cmp dot felk dot cvut dot cz>

Florian Grunert <fgrunert ätt uni-osnabrueck dot de>

Chad Scherrer <chad (dot) scherrer (at) gmail> (Parallel learning algrorithms, L1 regularization, Bayesian inference)

Ideas

Things that need a home

If there are things that should be included in the project, but you're not sure where it should go, place it here! I'll start with:

I've proposed a machine learning library for this year's Google Summer of Code. [1] There has been a few interested (and seemingly well qualified) students, too. I'm not sure if it qualifes as "AI", but if you are interested in this project (as a potential student, mentor, or just...well, interested), please add yourself to the above link, and/or get in touch with me at <ketil at malde dot org>. --Ketil 07:46, 26 March 2007 (UTC)

Martin Erwig's probabilistic functional programming (PFP) project, including an implementation of the probability monad:

Culmination of some recent posts about the probability monad on Random Hacks (including a darcs repository):

sigfpe's coverage and highly algebraic view of the probability monad in Haskell:

Two links I found today that are interesting:

Polytypic unification - unification seems particularly useful for AI tasks (at least natural language stuff)... wouldn't be nice to have a generic library that does it for you?

Easy-to-use work-in-progress neural network library, by Alp Mestan and Chaddaï Fouché :

Implementation of some of the algorithms in Russell and Norvig's "Artificial Intelligence: A Modern Approach", by Chris Taylor:

Proposed Module Hierarchy

  • AI
    • AI.Searching
      • AI.Searching.Evolutionary
    • AI.Logic
    • AI.Planning
      • AI.Planning.Swarm
    • AI.Probabilistic
    • AI.Learning
      • AI.Learning.Kernel
      • AI.Learning.NeuralNet
    • AI.Classification
      • AI.Classification.ExpertSystem
    • AI.Communication

Proposed sample format for a wiki page on a topic or sub-topic

AI/Logic/Fuzzy

The slashes show that Logic is a subpage of AI and Fuzzy is a subpage of AI/Logic. MediaWiki will then generate links back up the chain of pages. (Try the links to see)

  • Fuzzy logic is blah blah...
  • Sub-topics:
    • Trivial fuzzy logic in Haskell
    • Type 2 fuzzy logic
  • Links to existing literature:
    • General
      • My first fuzzy logic book
    • Specific to functional programming / Haskell
      • Fun with fuzzy functions
  • Typical problems:
    • Problem 1: blah blah blah
    • Problem 2: blah blah blah
  • List of people involved in the area
    • Me
    • Someone else
  • Body
    • List of goals
    • Progress being made on them
    • Code and documentation.

Current sub-pages


External links