AI Abracadabra

 

Created in 2018

 

Abracadabra.

A magical word that carries the meaning,
     
 
“I will create as I speak.” 
  in Hebrew or in Aramaic,
      
“I create like the word.” 

For this project, Abracadabra, I used IBM Watson's artificial intelligence to analyze conversations. 

The user will see the impact of their words by watching how this digital civilization changes as different words affect its growth and evolution.

 

AI Studies

01 Navigation Agents

NavMeshAgent components help you to create characters which avoid each other while moving towards their goal. Agents reason about the game world using the NavMesh and they know how to avoid each other as well as other moving obstacles. Pathfinding and spatial reasoning are handled using the scripting API of the NavMesh Agent. 

Assignment: 

Based on your assigned words (will be provided below). Design a series of navigation agents with different targets/goals. Design the landscape/environment that these agents need to navigation.  

Angelina Shin: 'Temperamental', 'Lazy'

Temperamental

Lazy

 

In a team of two, Wen Xu and I used IBM Watson Machine Learning Program to create a language translator. This translator detects human voice and translates the language in texts and images. 

02 Data & Training

This video has sound!

The translator translates English to Korean and Spanish. The user can also understand the other person's mood better with visual support.

 

Unity Machine Learning Agents (ML-Agents) is an open-source Unity plugin that enables games and simulations to serve as environments for training intelligent agents. Agents can be trained using reinforcement learning, imitation learning, neuro evolution, or other machine learning methods through a simple-to-use Python API.

03 Unity Machine Learning

Assignment: 

Design a Machine Learning Curriculum. Select a simple task that you would like to teach an agent to understand, replicate, react to, and eventually predict. For this exercise let us suspend reality, logic, and the question why and just have fun, be silly, and make.

<Before Training>

This is a simple prototype for an autonomous vehicle. I am going to train this car to avoid the orange borders.

If crashes,

reward = -1.0f

If not,

reward = 1.0f

<Teaching Method>

If the car crashes, it is going to be rewarded -1.0f, so it will move in the opposite direction. If the car does not crash, it is going to be rewarded 1.0f, so it will keep moving forward.

I used External Brain to make action decisions using TensorFlow through communication over an open socket with Python API. And then, used Internal Brain to embed a trained model into the car via TensorFlow.

<Generating Data>

After generating multiple data with different conditions, I earned the good database.

Step: 10000. Mean Reward: 23.119512195122027. Std of Reward: 6.9061026216372055.

Step: 20000. Mean Reward: 22.062790697674483. Std of Reward: 8.37496333225761.

Step: 30000. Mean Reward: 21.004545454545504. Std of Reward: 6.923640481759752.

Step: 40000. Mean Reward: 33.76896551724124. Std of Reward: 33.55567790433425.

Step: 50000. Mean Reward: 44.190909090909216. Std of Reward: 22.963407830144327.

Saved Model

Step: 60000. Mean Reward: 95.53999999999822. Std of Reward: 46.72580015366069.

Step: 70000. Mean Reward: 50.65263157894725. Std of Reward: 31.85267680102456.

Step: 80000. Mean Reward: 64.05624999999968. Std of Reward: 39.48441098632954.

Step: 90000. Mean Reward: 76.99999999999841. Std of Reward: 64.79090845312706.

Step: 100000. Mean Reward: 159.933333333334. Std of Reward: 102.06353685600322.

Saved Model

Step: 110000. Mean Reward: 236.51999999999953. Std of Reward: 94.23165922343262.

Step: 120000. Mean Reward: 195.4200000000058. Std of Reward: 162.1598149974428.

Step: 130000. Mean Reward: 144.1799999999956. Std of Reward: 56.9847488368574.

Step: 140000. Mean Reward: 232.2399999999945. Std of Reward: 54.48719482594171.

Step: 150000. Mean Reward: 214.9749999999936. Std of Reward: 48.86053494385753.

Saved Model

Step: 160000. Mean Reward: 345.3666666666956. Std of Reward: 205.25782702631298.

Step: 170000. Mean Reward: 500.0000000000452. Std of Reward: 0.0.

Step: 180000. Mean Reward: 402.2333333333565. Std of Reward: 69.20666313458833.

Step: 190000. Mean Reward: 500.0000000000452. Std of Reward: 0.0.

Step: 200000. Mean Reward: 500.0000000000452. Std of Reward: 0.0.

By the way, then what is a 'bad' database?

Step: 10000. Mean Reward: 10.001010101010085. Std of Reward: 0.009999489834961243.

Step: 20000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 30000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 40000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 50000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Saved Model

Step: 60000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 70000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 80000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 90000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 100000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Saved Model

Step: 110000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 120000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 130000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 140000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 150000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Saved Model

Step: 160000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 170000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 180000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 190000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Step: 200000. Mean Reward: 9.999999999999982. Std of Reward: 1.7763568394002505e-15.

Mean numbers are same, and the standard deviations are mostly the same. There must be an error so the car could not be properly trained.

<After Training>

The car is successfully avoiding the orange borders.

 

04 Design a Machine learning Curriculum

- Autonomous Car A -

I used generic algorithm. Only top 25% who travelled farthest can breed.

There will be 1% of mutation.

Thus, the newer generations are more likely to go further.

Gene 1 -------------- Detects the ceiling

Gene 2 -------------- Detects the ground

Gene 3 -------------- Detects the down obstacles

Gene 4 -------------- Detects the upper obstacles

Gene 5 -------------- Detects nothing

The car is designed to keep moving forward. All it needs to do is avoid the walls by moving up and down. 

 

05 Design a Machine learning Curriculum

- Autonomous Car B -

Five input for neural network

Right, Left, Forward, Left 45, Right 45

Two output

Forward & Rotation

For this project, I used neural network machine learning. The great feature of this is the agent can learn any behavior I want through training. 

I created two cars: Trainer and Learner

First, I manually moved the Trainer car with the arrow keys on the keyboard. Through this training, the Trainer car learned Right, Left, Forward, Left 45 degrees, and Right 45 degrees by using Raycast.

After training, I kept Sum Squared Error (SSE) as low as possible and implemented the data to the Learner car. Based on the data, the Learner car will decide when to go forward or to rotate.

 

06 Artificial Intelligence

Project Prototype I

'Build a World'

Create your own world by voice command.

Database

  • IBM Watson

  • Create dictionaries to control objects and train agents.

Teaching Method

  • Create groups of vocabularies to trigger certain actions.

This video has sound!

 

07 Artificial Intelligence

Project Prototype II

'Build a World'

Database

  • IBM Watson Speech-to-Text

  • IBM Watson Tone Analyzer

Sofa

IBM Tone Analyzer analyzes emotions and tones. It predicts whether people are happy, sad, angry, scared, disgusted, tentative, analytical, and/or confident.

After discussions with the instructors, I was inspired by the current AI devices which is quietly but actively listening to collect data.

This project's environment is set up on the sofa where people lose and find many items. With this project, people will be able to find and/or lose items depends on their tone while they are speaking. 

Aquarium

This aquarium changes constantly based on the surrounding sound.

More Projects For 2018 Fall Scholarship: