CHAPTER FOUR: PROGRAMMING

12 1 0
                                    

Journal Entry #78

Okay. Programming. Where to even start?

Neural networks are a good place, I suppose. Neural networks are the bread and butter of developmental robotics. The behaviors needed to navigate real-world scenarios are far too complex to program by hand. There are simply too many variables to take into consideration. Neural networks allow complex and nuanced behaviors to emerge naturally, through trial and error learning.

Mariimo is going to use neural networks extensively. She's going to be running on a multiple network system. Each sensory system will have its own dedicated neural network, roughly analogous to the various sensory cortices of a human brain.

Her sensors will feed raw data into the corresponding network's input layer. The data will then be interpreted within the web of neurons that compose the hidden layers, and the results will be spat out the other side. From the output layer, the data will be rerouted into a central neural network, where the compiled data from every sensory network will be compared, and patterns identified.

It's my hope that by keeping the sensory networks separate, I can prevent a synesthesia-like blending of senses. A machine with synesthesia could very well prove to be a worthwhile project, but it's not my goal with Mariimo.

Journal Entry #79

Speaking of goals, they will be absolutely vital to Mariimo's development. Without goals, there is no drive. No learning. An artificial intelligence without goals would have no reason to take any action at all. The question is, what motivates Mariimo?

There is a concept in machine learning known as "reinforcement learning." It works on the same principles in machine learning as it does in behavioral psychology; i.e. positive and negative reinforcement. This concept will be at the core of Mariimo's behavior.

Think of it as a scoreboard. Each time Mariimo perceives a stimulus designated as positive, a point is added. Each time she perceives a stimulus designated as negative, a point is removed. By specifying that her goal is to increase her score, she can be motivated to seek out positive stimuli, while avoiding negative ones.

Her metaphorical scoreboard will be separated into several different categories. This will allow different types of stimuli to be weighted by importance. In this way, important stimuli can be given priority over unimportant ones. I'll provide these weights in the beginning, but she'll be able to adjust her own priorities over time, given new information.

I'm going to spend the next little while deciding, sensor by sensor, which stimuli will be designated as positive, and which will be designated as negative.

Journal Entry #80

While striving toward goals is all well and good, learning to achieve those goals without outside influence would be a very, very slow process. This is where mimicry comes in. Mimicry is going to be another core aspect of Mariimo's behavior. It will allow her to learn by example, rather than simply be left to her own devices.

I want to be able to teach Mariimo in two ways. The first is passive observation. I want her to be able to look at me, observe my actions, and attempt to replicate them. This can be accomplished through the use of body tracking software. I suspect this type of mimicry will be the less precise of the two. It will likely require a bit of trial and error before she can translate my movements into something she can actually use.

The second is kinesthetic demonstration, where I take hold of Mariimo's body and guide her movements directly. This type of mimicry will be more precise, I think. There are fewer steps between demonstration and proprioceptive feedback. I can use this technique to demonstrate new behaviors, as well assist in refining existing ones.

MARiiMOWhere stories live. Discover now