ANN: Difference between revisions
No edit summary |
|||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
= Introduction = |
= Introduction = |
||
⚫ | |||
⚫ | |||
ANN is an activity where children can design, build, and test artificial neural networks (ANNs) [http://en.wikipedia.org/wiki/Artificial_neural_network]. Each 'experiment' will have a particular task ranging in difficulty from switching on and off a light to controlling a paddle in a game of pong. Children will design and build an ANN that they can then test in a simulated environment. If you have any comments, please contact me at bjgraham@udel.edu |
ANN is an activity where children can design, build, and test artificial neural networks (ANNs) [http://en.wikipedia.org/wiki/Artificial_neural_network]. Each 'experiment' will have a particular task ranging in difficulty from switching on and off a light to controlling a paddle in a game of pong. Children will design and build an ANN that they can then test in a simulated environment. If you have any comments, please contact me at bjgraham@udel.edu |
||
Line 12: | Line 16: | ||
== Sprite Engine/Experiment Library == |
== Sprite Engine/Experiment Library == |
||
The experiment library will most likely be based on [[OLPCGames]] to allow ANN control of on-screen sprites within the experiments. These sprites will |
The experiment library will most likely be based on [[OLPCGames]] to allow ANN control of on-screen sprites within the experiments. These sprites will be configured based on plain text files and image. This will provide teachers and advanced students the ability to define their own experiments. |
||
=== Configuration File === |
|||
= gui mockups = |
|||
The sprite configuration files will be plain text that defines several aspects of the sprite, animation, and sensor/effector details. It will contain a single or multiple sprite entries with various key-value combinations |
|||
⚫ | |||
<b>bold = required</b> |
|||
# Sprite Entry |
|||
⚫ | |||
## <b>Image file name </b> |
|||
## <b>Image size (w, h)</b> |
|||
## <b>Location (x,y)</b> |
|||
## State(s) (see below) |
|||
## Effector(s) (see below) |
|||
## Sensors(s) (see below) |
|||
# State Entry |
|||
## <b>ID</b> |
|||
## Image file name |
|||
## Image size |
|||
## Location (x, y) |
|||
## Velocity (dx, dy) |
|||
## Duration (dt) |
|||
## Next State: (id) |
|||
## Sensor value: (value) |
|||
# Effector Entry |
|||
## <b>Effector image file name</b> |
|||
## Threshold |
|||
## <b>Inactive state ID</b> |
|||
## <b>Active state ID</b> |
|||
## <b>Priority</b> |
|||
# Sensor Entry |
|||
## <b>Sensor image file name</b> |
|||
## sensor : (x position, y position, x velocity, y velocity ...) |
|||
## scale |
|||
= Experiment ideas = |
= Experiment ideas = |
||
Line 26: | Line 56: | ||
= Phase 1 plans = |
= Phase 1 plans = |
||
* |
* Develop the core ANN simulation engine |
||
* |
* Design and build the gui for ANN creation/editing |
||
* |
* Develop the sprite engine possibly based on [[OLPCGames]] for ANN testing |
||
* |
* Design and construct an initial subset of experiments ranging in difficulty |
||
= Ideas for the future (or if all goes well this summer) = |
= Ideas for the future (or if all goes well this summer) = |
||
* Make the experiment configuration extensible so that teachers and advanced students can make their own |
* Make the experiment configuration extensible so that teachers and advanced students can make their own |
||
* Allow collaborative editing of ANN and sharing of ANNs and experiments over the mesh network |
* Allow collaborative editing of ANN and sharing of ANNs and experiments over the mesh network |
||
* |
* Create input/output adapters for the microphone, speakers, camera, and keyboard to allow physical interaction with the ANNs |
||
[[Category:GSoC proposals]] |
[[Category:GSoC proposals]] |
||
[[Category:Software]] |
|||
[[Category:Science]] |
|||
[[Category:Activities]] |
Latest revision as of 22:33, 7 April 2008
Introduction
ANN is an activity where children can design, build, and test artificial neural networks (ANNs) [1]. Each 'experiment' will have a particular task ranging in difficulty from switching on and off a light to controlling a paddle in a game of pong. Children will design and build an ANN that they can then test in a simulated environment. If you have any comments, please contact me at bjgraham@udel.edu
Rationale
The study of artificial neural networks (ANNs) in it's simplest form is the examination of how interconnected groups of relatively simple units can solve computational problems. ANNs provide a framework to think about and study how the brain and nervous system functions and interacts with the environment. Providing children with the tools necessary to learn about and explore ANNs will provide them with experience in problem solving, creative thinking, logic, experimentation, and introduce them to the fields of artificial intelligence and neuroscience.
Development plans
ANN will be programmed in Python using pyGtk for the gui and possibly OLPCGames for the experiments. This activity was inspired by the Bug Brain application [2]
ANN simulation engine
The ANN library will be developed from scratch and will contain implementations of binary-thresholding units and adapting synapses. Additionally, the library will contain input and output adapters that will allow variables within the experiments to interface with the ANN units.
Sprite Engine/Experiment Library
The experiment library will most likely be based on OLPCGames to allow ANN control of on-screen sprites within the experiments. These sprites will be configured based on plain text files and image. This will provide teachers and advanced students the ability to define their own experiments.
Configuration File
The sprite configuration files will be plain text that defines several aspects of the sprite, animation, and sensor/effector details. It will contain a single or multiple sprite entries with various key-value combinations bold = required
- Sprite Entry
- Image file name
- Image size (w, h)
- Location (x,y)
- State(s) (see below)
- Effector(s) (see below)
- Sensors(s) (see below)
- State Entry
- ID
- Image file name
- Image size
- Location (x, y)
- Velocity (dx, dy)
- Duration (dt)
- Next State: (id)
- Sensor value: (value)
- Effector Entry
- Effector image file name
- Threshold
- Inactive state ID
- Active state ID
- Priority
- Sensor Entry
- Sensor image file name
- sensor : (x position, y position, x velocity, y velocity ...)
- scale
Experiment ideas
- Turn on a light whenever a switch is pulled
- Turn on a light when two switches are pulled (and logic)
- Turn on a light when one or more of two switches is/are pulled (or logic)
- Turn on a light when only one of two switches is pulled (xor logic)
Phase 1 plans
- Develop the core ANN simulation engine
- Design and build the gui for ANN creation/editing
- Develop the sprite engine possibly based on OLPCGames for ANN testing
- Design and construct an initial subset of experiments ranging in difficulty
Ideas for the future (or if all goes well this summer)
- Make the experiment configuration extensible so that teachers and advanced students can make their own
- Allow collaborative editing of ANN and sharing of ANNs and experiments over the mesh network
- Create input/output adapters for the microphone, speakers, camera, and keyboard to allow physical interaction with the ANNs