Developmental Robotics using Neural Networks
Kara Breeden
Advisor: Prof. Douglas Blank
Computer Science Senior Thesis
Bryn Mawr College, Bryn Mawr, PA 19010
Computer neural networks are mathematical models created based on the human brain’s neural networks. They are made up of a series of layers of nodes connected together through links. Neural networks learn to do particular tasks without a set of task specific instructions though given examples. This form of machine learning can be used for developmental robotics, or epigenetic robotics. Developmental robotics is an interdisciplinary field of study to create the cumulative and complexed learning of humans in an robot. Like children, the robot will learn from exploring its surroundings and interacting with its world.
During my independent study this semester, I collected sonar, vision, and light data from the sensors of a virtual robot hard coded to find a light source. I used this data to train multiple neural networks with different combinations of the data. These networks were applied to the virtual robot to see if it had learned how to find the light source. The robot was able to find the light when it learned from the sonar and light data but the vision data just confused the network.
I will be building off this independent study to continue to explore neural networks and cognitive science. I will improve the virtual robot that learned how to move about in its environment and create a structure to let it remember when it did something of interest, identified by large sensor shifts. From this knowledge and the use of neural networks, the robot will come up with its own goals from what it found interesting. Once a goal is created, a representation of it will be stored to check if the robot has successfully completed it. These goals will make the robot enter into different movement sequences ending in its desired state, identified through the robot's senses including vision. These goals will develop and become more complicated over time as the robot learns and successfully completes more and more goals.
This will be completed using conx on Jupyter notebooks. Conx is an implementation of deep learning neural networks built on top of Keras. Jupyter notebooks are web documents that can contain both executable computer programs and text elements. Prof. Douglas Blank will be giving guidance throughout the project. He will be suggesting research resources and giving advice on the implementation of this task.