There is an interesting scene in The Matrix movie where Neo asks Trinity “Can you fly that thing?” (a helicopter). She replies “Not yet!” and at that moment the Operation Center downloads a pilot program to her mind. The program enables her to learn to fly the helicopter immediately. While this exact scene is too futuristic for today but the premise of Software 2.0 is already close to that at least for today’s computers and robots. Here we outline our vision for what the future of software would look like with the advent of human-level artificial intelligence.
Communicating with Computers:
Today’s computers are general-purpose computational devices. Anything we can think of is possible to simulate inside them. The main obstacle is that computers can only understand machine code, a very rigid and concrete form of instructions. And only a handful of people can use these instructions to communicate with computers. Imagine that most of us have Aladdin’s Genie but only a few of us can speak with him! And even those who could speak, they cannot express their bigger wishes to the Genie.
There is no limit to what we can achieve if there is no language barrier between us and the computers. Fortunately, smart people made more abstractions from the machine code creating higher-level programming languages like C++, Java, Python…etc. These programming languages allow us to communicate with computers using instructions close to the English language. However, they are still too concrete compared to our day to day natural language commands. For instance, If you want to program a robot to grant you the following request: “Please, give me the glass of water over there”. First, you have to define to the computer what do you mean by “glass” and “water”. Defining every new object for the computer is neither easy nor scalable.
Furthermore, the task of “getting to the glass of water” is very complex even though it looks deceptively easy for us. It involves the knowledge on how to step forward and how to walk (e.g. how much force the robot needs to lift and move each leg). It also involves complete awareness of its current position and the surroundings (e.g. how to balance on one leg while moving forward and avoid falling), what direction to turn into (relative to a reference), how to locate and grasp the glass, …, and many other complex calculations.
On the contrary, Humans have learned to do all the above effortlessly. No parent gives concrete instructions to their children on how should they walk or grasp things around them. Children learn to do so simply by seeing and imitating others. They are also capable of generalizing their actions to other new situations. Computers today are far from this, not only because of the hardware limitations but more so because of the software that intermediates the communication between humans and computers.
Mem Store: The App Store of The Future:
Many have envisioned that when computers reach a level that can communicate with us in natural language and understand our intentions, the possibilities are virtually limitless. Imagine that you can teach your robot (computer) how to make a delicious recipe just like you teach a human by showing it. As your robot watches you and listens to you, it will learn from your instructions. Next time, all you need is to command your robot to cook for you the delicious recipe. Likewise, if you want to teach your robot how to get you a glass of water, you simply show it the process. These learned and memorized instructions are termed Software 2.0 as opposed to Software 1.0 which are hand-coded programs.
What is more, you could ask your robot to upload the software it had learned to the cloud where others can download it to their robots. We may call this “Memory Store” or “Mem Store”. It is similar to the App Store but it serves the learned memories instead of the hand-coded programs. You could even license your creative work and make money from it just like regular Apps on the App store (Figure 3). Furthermore, depending on how you license your work, other people would be able to extend and expand your work to make different versions of your recipe. The robot AI can progressively learn more recipes and put it in its memory, hence, incrementally becomes a better chief.
There might be security issues like someone teaching their robot malicious and dangerous tasks and uploading them to the Mem Store but this problem exists with Software 1.0 too. And fortunately, good measures have been taken to minimize malicious programs on the App and Play Stores. Therefore, we think Software 2.0 will be established on a solid foundation where it is reviewed and checked before the release. The advent of something like the Mem Store will revolutionize the tech industry forever because it will merge the gap between idea and execution. Anybody with an idea will be able to develop a software out of it. This makes everyone a computer developer!
Many people think that the current deep learning techniques, which have been used to build new types of software (e.g Image detection, Style GANs, GPT-3), are paving the path toward Software 2.0 but we think there are some major issues with these techniques. These issues can prevent these learning methods from becoming the fertile ground of the Mem Store. In a previous article, we mentioned that these techniques are bad at extrapolating beyond the training range (Link). But even if we ignore that, the current deep learning techniques are inherently iterative, offline, and sample inefficient. Moreover, the learned representations are hard to understand and are usually labeled as a black box.
The vision we outlined above requires a learning method that has the following features:
- It should be capable of real-time learning. Without that, you cannot interactively teach your robot how to cook or learn to do anything. Interactivity is a big component of making the teaching process enjoyable.
- It should be capable of one-shot learning or at least capable of few-shot learning. Without that, real-time learning would be difficult to achieve.
- It should be capable of incremental and progressive learning. And by that, we mean acquiring new knowledge should not washout the previously learned knowledge but should integrate into it seamlessly.
- Security is an important aspect. If the learned process does not have an understandable representation aka black box, it will be hard to debug and fix issues.
- Model Accuracy is also another important aspect.
Note that we put the accuracy at the end because we think any learning system capable of the first four, the accuracy part will come to it eventually. Even deep learning methods, which put a lot of emphasis on accuracy, were quite bad in the beginnings. The state of the art accuracies only came after a decade of experimentations, fiddling with the various architectures, and fine-tuning the parameters. Although deep learning is now very good at many accuracy benchmarks, they are inherently iterative, offline, and black box learners. As we mentioned above, these characteristics are not suitable for the futuristic vision of Software 2.0 and the Mem Store we outlined above.
PHUN: A Fun, Progressive, and Real-Time Learning Algorithm:
At Brainxyz we work hard to achieve all the above features in our learning system. Predictive Hebbian Unified Neurons (PHUN), which we put our faith in, can easily achieve the first 4 features. PHUN has a lot of similarities to how we, humans, learn. It is inherently an online method that is capable of real-time learning. Learning in PHUN is progressive and adaptive. This means that newly acquired knowledge will not washout the previous knowledge instead it will integrate into it.
In its current state, PHUN can only learn from a one-dimensional array of data. Therefore, it cannot compete with the Convolutional Neural Networks for image classification accuracy-wise. We believe that accuracy will come eventually as we make the method more fine-tuned and enable it to handle learning from two-dimensional arrays and Matrices.
To make Machine Learning with PHUN practical, easy, and fun for every user, we created Braifun. It is a progressive, fast, and free learning tool that builds upon the PHUN algorithm. It makes it easy to read and prepare text, audio, and image datasets for training. In the future, we will add multi-modal learning capabilities. We hope to release a functional version of our framework soon. Please stay tuned with us and subscribe to our mailing list to get notified once we release Braifun.