Many Methods Make Light Work

4/17/2022

Introduction

Here are some definitions of intelligence:

  • the ability to acquire and apply knowledge and skills

  • measures an agent’s ability to achieve goals in a wide range of environments

  • a very general mental capability that, among other things, involves the ability to reason, plan, solve problems, think abstractly, comprehend complex ideas, learn quickly and learn from experience

So I think in order for artificial intelligence software to become more intelligent, it must go to school. School provides an excellent way to be tested on a wide variety of subjects and measure progress in the form of grades. I decided to test SingularAgent's abilities using the Khan Academy website:

"Khan Academy is a not-for-profit educational organization started by Salman Khan in 2008. Our mission is to provide a free, world-class education to anyone, anywhere. Our online materials cover subjects ranging from math and finance to history and art. With thousands of bite-sized videos, step-by-step problems, and instant progress information, Khan Academy provides a rich and engaging learning experience. You can earn points and badges along the way, and coach others as well."

Today I am announcing that SingularAgent has achieved a perfect score on the first 3 practice lessons in the Counting unit for the Early Math course on Khan Academy.

How do you eat an elephant? One bite at a time.

Details

Over the past couple of years, I have built up a decent collection of methods in SingularAgent. A method is a code block that contains a series of statements. A program causes the statements to be executed by calling the method and specifying any required method arguments. Here is a brief overview of what methods (aka abilities) SingularAgent has so far:

  • Keyboard key presses

  • Mouse moving and clicking

  • Screen and image file pixel processing (identifying colors, groups of pixels, and etc.)

  • Screen and image file fixed font pixel to text processing (aka reading)

  • Speech input (aka listening) and output (aka speaking) using the .NET framework SpeechRecognitionEngine and SpeechSynthesizer

  • Parameter manipulation

  • Logging

In order for SingularAgent to learn how to do simple math, I had to create approximately 40 new methods. The good news is that over 75% of the methods that I used for the practice lessons on Khan Academy were ones that I had already previously created. I essentially coded (aka taught) SingularAgent the minimum skills that it needed to learn in order to answer these simple math questions. There is no unexplainable magic happening behind the curtain. This is just the result of lots of small reusable methods connected together passing parameters to each other. By breaking down everything into simple steps, complex processes become less complicated and anything becomes possible.

Demos

Embedded below are three YouTube videos that demonstrate SingularAgent achieving a perfect score on the following practice lessons:

  • Count with small numbers

  • Count in order

  • Find 1 more or 1 less than a number

As you can see by watching, I wasn't concerned with speed at this point. I focused more on getting the right answer. Most of the delay before selecting the answer was due to converting the pixels to text and counting the cute little animals. Sometimes these animals had pixels that were overlapping each other so SingularAgent had to determine where one animal ends and another animal begins.

Enjoy watching!