Skip to main content

Working towards to creating AI to writing programs for humans

In this blog, I will talk about how to create an AI to write programs for us.  This is a forward looking, exploratory note about how we should take the next step.

Goal:
1) We want software that we will have to write only once.
2) This software will write all future applications.
3) When people want a new application, we simply collect the data for every specific task.
4) Then, through observation, this master program creates a new application for us.


Current Computer Limitations
- Our computer languages are created to support the CPU hardware structure and the memory structure in 1950s.
- Our computer languages have evolved several times over.
   note: they are a functional language, a structural language, object-oriented language and declarative language.
-  They all require humans to write the code in logical and specific ways.

Different Paradigm

Current Situation:
- Humans instructs a computer on rules of processing of input data.
- Then, a computer generates some output.
- The output is in form of text, sound, motion and graphics.

Future Situation:
- Humans should tell a computer what input data we have.
- Humans should tell a computer what output data we want.
- Then, a computer should automatically come up with rules of processing to generate the expected data output.


Future is Here:
- Machine Learning and Deep Learning is about guiding a computer to figure out the rules of processing.

Current AI Limitations:
- Still difficult for an ordinary person to guide a computer with AI Library to figure out the rules of processing on a given input dataset to generate the expected dataset.
- Current AI libraries or tools are still primitive to generate a set of arbitrary rules.
- Current AI libraries or tools are narrow domain specific.
   note: eg) classify a dog vs a cat, identify an object, process spoken or written words, etc.

Next Step:
eg) Differential Programming

Note:
- This computer language was introduced with a hope of addressing the current limiations.
- Its language syntax and semantics are still stuck in back in time of 1950s.


What should be:
- We shouldn't be using a computer language to write an application.
- We should create a master program which will write all applications.
- The master program should observe to collect the data.
- The master program should generate a new application from the input data.
- Then, it should figure out the rules of processing for a new application.


Reference:
- A simple automatica derivative evaluation program. (1964)
- Evaluating Derivatives: ::: Principles & Techniques of Algorithmic Differentiation (2008)
- Automatic Differentiation in Machine Learning: A survey (2017)

Comments

Popular posts from this blog

How to project a camera plane A to a camera plane B

How to Create a holographic display and camcorder In the last part of the series "How to Create a Holographic Display and Camcorder", I talked about what the interest points, descriptors, and features to find the same object in two photos. In this part of the series, I'll talk about how to extract the depth of the object in two photos by calculating the disparity between the photos. In order to that, we need to construct a triangle mesh between correspondences. To construct a mesh, we will use Delaunnay triagulation.  Delaunnay Triagulation - It minimizes angles of all triangles, while the sigma of triangles is maximized. The reason for the triangulation is to do a piece wise affine transformation for each triangle mapped from a projective plane A to a projective plane B. A projective plane A is of a camera projective view at time t, while a projective plane B is of a camera projective view at time t+1. (or, at t-1.  It really doesn't matter)...

How to create a holographic camcorder

Since the invention of a camcorder, we haven't seen much of advancement of a video camcorder. Sure, there are few interesting, new features like capturing video in 360 or taking high resolution 4K content. But the content is still in 2D and we still watch it on a 2D display. Have you seen the movie Minority Report (2002)? There is a scene where Tom Cruise is watching a video recording of his lost son in 3D or holographically. Here is a video clip of this scene. I have been waiting for the technological advancement to do this, but it's not here yet. So I decided to build one myself. In order to build a holographic video camcorder, we need two devices. 1) a video recorder - a recorder which captures the video content in 3D or holographically. 2) a video display - a display device which shows the recorded holographic content in 3D or holographically. Do we have a technology to record a video, holographically. Yes, we can now do it, and I'll e...

How to reduce TOF errors in AR glasses

In this blog, I will describe how we reduced the noise of the Time-Of-Flight sensor in our AR glasses prototype. Types of noise - systematic noise    note: caused by imperfect sinusoidal modulation - random noise    note: by shot noise. use bilateral filtering Motion artifacts reduction note: when motion is observed on a target object, we have motion artifacts observed in the tof sensor.  This happens when TOF measurement is recorded sequentially.  And, this causes doppler effects. fix: - use Plus and Minus rules    -- reference:        1) "Time of flight motion compensation revisited"  (2014)        2) "Time of flight cameras: Principles, Methods and Applications" (2012) Physics-based MPI reduction fix: - use 2K+1 frequency measurements for K inferencing paths in absence of noise. Per-pixel temporal processing of raw ToF measurements fix: - matrix pencil method - Prong's met...