Skip to content

alphara/Self-Developing.AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

self-developing.ai

Self Developing AI

0

AI which develop AI, full stack, and itself. AI which takes description of application on human language (en, ru, es, etc.) and develops code of the application on programming languages with AI, neural networks, deep learning and so on. AI learns by itself through looking documentation in internet/google. I’m modeling neural networks (strategies) from my brain and brain of other great developers and developing those neural networks in code. I found developers/team who develop the same, and we are develop AI inventor together. AI has voice input/output, accepts different human languages, etc. This Software Engineer AI is absolute model of me and my brain, and even improved model. Also I want create robot who looks and behave like me. All the IT and psychology is in this project. The AI can teach people how to code with the best productivity and performance.

1

Artem (A):

I have an idea about creating AI which develops software. The AI could take a specification, which is input text on human language. Then AI could develop the software according the specification. I assume that we need to apply NLP to create such AI.

I was studying with psychological trainings about how to get model of genius. If some person can do something great, we can get the model of what’s going on inside the brain and body of the genius. Then we can teach other people to apply the model of genius in practice. We could get models of thinking and doing for great developers. We could model complex skill of development of computer software as a bunch of simple skills: how to create a function, how to assign a variable, how to create an algorithm, and so on. Most part of those skills are very well know. We could teach similar neural network as great programmers have in their brains. Such way we could create deep learning algorithm, which develop computer software. Initially, the AI could help to real developer with creating some simple functions. Then more complex algorithms. Then the AI-programmer could write the computer software by itself without human programmer.

We could also create AI, which creates algorithm for deep learning. So AI could develop AI. In some moment, AI could start develop itself. This is an idea of “Self-developing AI”.

2

Bálint:

The idea is sound, but how to marry reasoning with intuition? Tell me that first :) You have first order logic and you have deep nets. I, as a human, have both and can combine them for any task. Never stop dreaming, never stop exploring!

Artem:

Intuition is one of the most interesting parts. This is about modeling strategies. Intuition is also set of algorithms inside brain and mind. But intuition works unconsiousnessly. We should aware those algorithms with moving them from unconsiousness level to consiousness level. So the person could aware how his intuition works on level of the sensor systems (Visual, Audial, Kinestetic, Audio-digital systems); which mucles are stretched; what going on with movements of hands, legs, rythms of the heart; and so on. So we could ask the professional developer how he is thinking: what's the first step, what's second step. We could look on him and recognize his micro-movements of face, language patterns, which thoughts, beliefs and ideas he has, and so on. I believe, that we could aware any unconsiousness behaviour and transform that to the technique. The same I did with modeling strategies of humorists. There was a lot of intution on how they creating jokes. On the final step, I got a simple technique with simple steps: do 1, do 2, do 3 and you get a joke. The same way, we could model intuition of developers and get bunch of simple technique: how he creates a function, how he anylize data, how he choose algorithms and so on. We could cobine those simple techniqes to the complex skill of development software.

For example, we have some intuition on how to create a convolutional neural network. If we ask some AI Engineer:

-- How did you create a convolutional neural network?

He could answer:

-- I was experimenting. I tried one approach, second approach, third approach.

-- What did you do first?

-- I started with running sample of CNN code for Keras, which found on Udacity.

-- What did you do second?

-- I loaded my own training, validation and test data.

-- What did you do then?

-- I created Sequential model with 2 convolutional layers and 2 max pooling layers, and one dence layer.

-- How did you choose model to create?

-- Randomly on base of my prevous experience.

-- And then?

-- I compiled and trained model and started to test it.

-- And then?

-- Then I got low accuracy and decided to improve it.

-- And what did you do to improve accuracy?

-- I added dropout layer, flatten layer. And got better accuracy, but still low, and diceded to improve further.

...

-- And what did you do then?

-- I was changing number of filters, layers, nodes, activation functions, etc. until got accuracy 98%. Decided to stop experimentation.

-- And what did you do on final step?

-- I just felt happy that got great accuracy.

We could create a technique for AI students on how works the intuition of our AI Engineer, and teach about the intuition.

And then we even can create an Parent-AI App, which works on base of the intuition of the AI Engineer. We could make the algorithm:

  1. Parent-AI App generates code other Child-AI App from template with CNN code on Keras (or TensorFlow, etc.).
  2. Parent-AI App substitutes loading data to the Child-AI App template (from files pointed out in specification on human language).
  3. Parent-AI App randomly creates model with layers for Child-AI App.
  4. Parent-AI App executes Child-AI App. Child-AI App compiles model, train it, and test it.
  5. Parent-AI App evaluate accuracy, performance, human feedback (score: 0-100%) optionally and other metrics of Child-AI App.
  6. Parent-AI App changes model, adds/removes layers, changes count of nodes, activation functions and so on. Then regenerate code of Child-AI App.
  7. Parent-AI App repeats steps 4-6 until gets specified level of accuracy or exit by timeout with choosing the best model as result.
  8. Parent-AI App outputs code of the generated Child-AI App with the best model and accuracy.

The Parent-AI and Child-AI App could be created with Deep Learning algorithms (MLP, CNN, etc.). On steps 3, 6, Parent-AI App has intuition, built with DL algorithms on how better to change model and parameters with less count of steps, better perfomance and short time. AI App intuition is software analogue of the AI Engineer intuition.

Then, we could develop the Parent-AI App, which creates Child-AI Apps. The task of the Parent-AI App is to get the best possible performance, accuracy and feedback of Child-AI App.

What if Grand-Parent-AI App generates code of Parent-AI App, which generates code of Child-AI App? Grand-Parent-AI, Parent-AI and Child-AI could be the same AI App (Self-Developing AI). So the AI App could develop and generate its own code. We get Self-Developing AI.

3. Golden ratio and Fibonacchi numbers!

IDEA! We can apply golden ratio and Fibonacchi numbers to neural network arhichitecture (nodes in layers and so on).

https://en.wikipedia.org/wiki/Golden_ratio φ = (1 + sqrt(5)) / 2 = 1.61803398875;

https://en.wikipedia.org/wiki/Fibonacci_number f(n) = f(n-1) + f(n-2); f(0) = 0; f(1) = 1; 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...