AI: Difference between revisions
m (Removed stray colon) |
(added my contact info!) |
||
(38 intermediate revisions by 21 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Community]] | [[Category:Community]] | ||
[[Category:AI]] | |||
== Introduction == | == 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. | 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. | ||
Line 5: | Line 6: | ||
== People == | == 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. | 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. | ||
Yuriy Pitomets (netsu) <pitometsu at gmail> | |||
Mark Wong-VanHaren (marklar) <markwvh at gmail> | |||
Andrew Wagner (chessguy) <wagner dot andrew at gmail> | Andrew Wagner (chessguy) <wagner dot andrew at gmail> | ||
Line 17: | Line 22: | ||
Adam Wyner (Lawman) <adam dot wyner dot info> | Adam Wyner (Lawman) <adam dot wyner dot info> | ||
Dave Tapley (DukeDave) <dukedave at gmail> | Dave Tapley (DukeDave) <dukedave at gmail> | ||
Lloyd Allison <lloyd dot allison at infotech dot monash dot edu dot au> | 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> | Paul Berg (Procyon) <procyon at procyondevelopments dot com> | ||
Line 29: | Line 34: | ||
Charles Blundell <blundellc at gmail> | Charles Blundell <blundellc at gmail> | ||
Mathew Mills (mathewm) <mathewmills (at) gmail (dot) com> | Mathew Mills (mathewm) <mathewmills (at) gmail (dot) com> | ||
Line 36: | Line 39: | ||
Jason Morton (inverselimit) <jason.morton at gmail> | Jason Morton (inverselimit) <jason.morton at gmail> | ||
Jiri Hysek (dvekravy) <xhysek02 at stud dot fit dot vutbr dot cz> | Jiri Hysek (dvekravy) <xhysek02 at stud dot fit dot vutbr dot cz> [NN, EA] | ||
Shahbaz Chaudhary <shahbazc at gmail> [interested in GP] | 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) | |||
Ant Al'Thor R. <ant (at) theixo (dot) com> (AI Interest & Business) | |||
== Ideas == | == Ideas == | ||
Line 47: | Line 76: | ||
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: | 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 | * http://catenova.org/~awagner/Simplifier (broken link) | ||
**This was given to me by Alfonso Acosta (mentioned recently on haskell-cafe) | **This was given to me by Alfonso Acosta (mentioned recently on haskell-cafe) | ||
*http://catenova.org/~awagner/GPLib | *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. | **[[GPLib]] is a work in progress by yours truly, hopefully a future framework for genetic algorithms in haskell. | ||
Line 72: | Line 101: | ||
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? | 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/ | *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 == | == Proposed Module Hierarchy == | ||
*AI | *AI | ||
**AI.Searching | **AI.Searching | ||
***AI.Searching.Evolutionary | |||
**AI.Logic | **AI.Logic | ||
**AI.Planning | **AI.Planning | ||
***AI.Planning.Swarm | |||
**AI.Probabilistic | **AI.Probabilistic | ||
**AI.Learning | **AI.Learning | ||
***AI.Learning.Kernel | |||
***AI.Learning.NeuralNet | |||
**AI.Classification | |||
***AI.Classification.ExpertSystem | |||
**AI.Communication | **AI.Communication | ||
==Proposed | ==Proposed sample format for a wiki page on a topic or sub-topic== | ||
'''AI | '''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... | *Fuzzy logic is blah blah... | ||
Line 105: | Line 148: | ||
**Progress being made on them | **Progress being made on them | ||
**Code and documentation. | **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) |
Latest revision as of 08:26, 1 December 2018
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.
Yuriy Pitomets (netsu) <pitometsu at gmail>
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>
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)
Ant Al'Thor R. <ant (at) theixo (dot) com> (AI Interest & Business)
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, as I've started to explore as part of a course on computational modeling that I'm teaching. Given that 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 rational programming language like Avi Pfeffer's IBAL -- not only is probability distribution a monad, I just realized that 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.
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
- AI.Searching
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
- General
- 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
- Packages at Hackage, marked AI
- HaskLab Wiki
- The HaskLab mailing-list
- The HaskLab Archives (mailing-list archive)
- Preventing memoization in (AI) search problems
- Digit recognition with a neural network. First attempt! (Blog article)
- Haskell Neural Network: plugging a space leak (Blog article)
- Further Reading
- hs-logic; logic programming in Haskell (software on github)