This project demonstrates two neural networkss written from scratch in Java:
LanguageDetection is a back-propagation neural network that learns whether an input word is an English word or a random sequence of characters. This uses back-propagation based on a learning file generated from an online dictionary. It is able to achieve a 91% accuracy on the test case.
NeuralNet_TicTacToe implement a genetic algorithm to "organically" learn tic-tac-toe. Each generation has a population of 1000, and competes either against a perfect opponent or against other nets. After one million generations it achieves a local maximum of about 50% win-rate against the perfect opponent.
To train, run Train() in main. To test with manual input, run HumanInput().