“Practical Artificial Intelligence Programming With Java” by Mark Watson
leanpub.com
leanpub.com
Some people and I are working on Bitcoin Skynet. Basically we are seeing if we can code an independent bot/agent that can support itself through paid hosting with bitcoins, that makes income from automatic exchanges between cryptocurrencies. The bot is given intelligence and set free to see what it does. It switches hosting every month, and can decentralize itself to protect against denial of service, and also sells other services and escrow brokerage.
I'm sorry, since when did currency exchange markets yield reliable, non-normally-distributed profits like that? EDIT FOR DOWNVOTERS: I'm seriously asking this. I honestly thought forex markets were pretty normally distributed and quite a hard place to make a consistent, algorithmically-driven profit.
Also, I feel like this is going to blow up into some huge lesson in Why Capitalism Is Evil, as portrayed by the Capitalism Bot, and people are only really going to get it once they can look at the economic system as a malicious AI. But whatever.
Clojure, Python, Common Lisp, are other candidate languages for AI.
I love to write, and if I could get a world class Clojure coder (perhaps someone like Alex Ott, or someone with similar skills) to co-write, it would be fun to start over.
For example Weka is widely used for data mining (even in academia) and here it's used in the Machine Learning chapter; Drools is an excellent solution from JBoss/Red Hat used in the chapter for Expert Systems, and etc... I even see a Hadoop dependency in the code but I'm not sure (yet) in which chapter it's used.
I bought the book, as a Java developer this is one of the areas I'm less experienced in, so this is a great opportunity to get up to date.
Practical AI stuff can be done in most (lower level) practical languages.
It can be done, but that does not mean that it necessarily makes sense to do so. The question is, what advantage does Java really have here, over something like Clojure?
http://www.cs.st-andrews.ac.uk/research/aisc
This is not to say that you cannot do equivalent things in Java, but it is a lot easier in Lisp.
I still have this (https://www.librarything.com/work/3032548) book somewhere. Working through it as a kid was an interesting experience (amplified by the fact my computer was an Apple II+ at the time).
I want to get better in Go and it would have allowed me to kill two birds with one stone.
Table of contents:
Introduction
# Other JVM Languages
# Github Repository for Book Software
# Use of Java Generics and Native Types
# Notes on Java Coding Styles Used in this Book
# Book Summary
Search
# Representation of Search State Space and Search Operators
# Finding Paths in Mazes
# Finding Paths in Graphs
# Adding Heuristics to Breadth First Search
# Search and Game Playing
Reasoning
# Logic
# PowerLoom Overview
# Running PowerLoom Interactively
# Using the PowerLoom APIs in Java Programs
# Suggestions for Further Study
Semantic Web
# Relational Database Model Has Problems Dealing with Rapidly Changing Data Requirements 59
# RDF: The Universal Data Format
# Extending RDF with RDF Schema
# The SPARQL Query Language
# Using Sesame
# OWL: The Web Ontology Language
# Knowledge Representation and REST
# Material for Further Study
Expert Systems
# Production Systems
# The Drools Rules Language
# Using Drools in Java Applications
# Example Drools Expert System: Blocks World
# Example Drools Expert System: Help Desk System
# Notes on the Craft of Building Expert Systems
Genetic Algorithms
# Theory
# Java Library for Genetic Algorithms
# Finding the Maximum Value of a Function
Machine Learning with Weka
# Using Weka’s Interactive GUI Application
# Interactive Command Line Use of Weka
# Embedding Weka in a Java Application
# Suggestions for Further Study
Neural Networks
# Hopfield Neural Networks
# Java Classes for Hopfield Neural Networks
# Testing the Hopfield Neural Network Class
# Back Propagation Neural Networks
# A Java Class Library for Back Propagation
# Adding Momentum to Speed Up Back-Prop Training
Statistical Natural Language Processing
# Tokenizing, Stemming, and Part of Speech Tagging Text
# Named Entity Extraction From Text
# Using the WordNet Linguistic Database
# Automatically Assigning Tags to Text
# Text Clustering
# Spelling Correction
# Hidden Markov Models
Information Gathering
# Open Calais
# Information Discovery in Relational Databases
# Down to the Bare Metal: In-Memory Index and Search
# Indexing and Search Using Embedded Lucene
# Indexing and Search with Nutch Clients
Data Science Techniques
# A Mix of Open Source and Proprietary Tools
# Handling “small big data” in a Cost Effective Way
# Writing and Testing MapReduce Applications
# Example Application: MapReduce Application for Finding Proper Names in Text
# Using Inexpensive Large Memory Leased Servers
# Example Application Idea: Using the Google Book Project NGRAM Data Sets
# Example Application Idea: Using Wikipedia Data Dumps
# Conclusion
ConclusionsI feel like now that I'm in grad school I should take more and better AI courses, but I just can't find the interest in me, no matter that the field is economically hot right now.