FYP: Teaching AI Maths
Every Final Year Project (FYP) is an epic journey of a group of students. Personally I feel very proud that most FYP’s undertaken by students of FAST-NU deserve at least an year’s worth of work. Thus, this work deserves to be shared with the world.
Ever since freshmen year, I dreamed of building an advanced AI application. I daydreamed of many possible solutions to the problems I perceived. I remember scribbling diagrams in notebooks of how the knowledge would be internally represented. Despite all this day dreaming, i never really wrote any code to this end. So when FYP finally came up, I knew it was time I got off my lazy butt and build something I could be proud of! And i couldn’t have asked for better partners than Asad Memon and Azka Qaiser.
We wanted to build a piece of program that could learn from sources meant for humans, or at least learn in a way similar to that of humans. We hoped this would eliminate the need for specially preparing training sets and let us utilize the plethora of literature meant for human education. Personally, I din’t want that “learnt” knowledge to be simply a collection of facts. That had already been done countless times before in varying degrees. I wanted the learning to be of new procedures. So the system could apply what it learnt to modify its behavior.
There was another hypothesis I wanted to test out. You know how in a dictionary, words are defined using more words. So perhaps there exists such a (small) subset of a given domain, that all other knowledge in that domain can be explained using the elements in that set. Just like all colors can be derived from 3 colors. Though, as it soon became pretty obvious, this hypothesis didn’t seem true for the English language, or at least that set would be pretty big. So we looked to other domains. Mathematics seemed like a great candidate as it fulfilled both of our requirements. Learning mathematics would mean learning applicable procedures, and figuring out which procedure to apply when. Also, the computer already knows basic mathematics. So it was perhaps easier to reach that point, beyond which the computer could learn on its own, provided we teach it “how to learn”.
With all this in mind, we set out to create the Open-Ended Mathematical Engine