Emerging Complex Programs
The complexity science of software evolution and emergence
Complex System
"a system in which large networks of components with no central control and simple rules of operation give rise to complex collective behavior, sophisticated information processing, and adaptation via learning or evolution" ~Mitchell, M.
Complex System (alternative def.)
"a system that exhibits nontrivial emergent and self-organizing behaviors"
Properties common to Complex Systems
- Simple Components (or agents)
- Nonlinearity and Complex Interactions
- Decentralization
- Emergency
- Hierarchical Organization
- Information Processing
- Dynamics
- Evolution and Learning
Software Engineering & Deep Learning
Background
Neural Network
Are Neural Networks Turing Complete?
Algorithm
Program
ON THE TURING COMPLETENESS OF MODERN NEURAL NETWORK ARCHITECTURES (ICLR'19 Perez, et al.)
For any arbitrary function F(x), there exists a Neural Network that closely approximates it for any input x
For any arbitrary Program P(x), there exists a Neural Network that closely approximates it for any input x
Source Code Generative Agents
Deep Learning agents that synthesize source code. Those agents might perform other SE tasks so that they are unsupervised multi-taskers.
Source Code Generative Agent
Source Code
Source Code
Transformer
Fine-Tunned Agent
Source Code
SE Task
Supervised SE Task
Transformer + Softmax
What if the Generative Agents interact among each other in a controlled environment?
Complexity Science applied on Source Code Generative Agents
Enhanced supervised task?
Synthesized Code
Generative Agent
Fine-Tuned Agent
Output
Input
Enhanced synthesized source code?
At a Larger Scale the behavior emerge (Power Law)
Can the generated source code produce a generative agent?
Self-Replication (?)
What if the self-replicated agent (by emergency) generates better behavior (i.e. classification accuracy)?
Enhanced task?
Instead of transmitting typical outputs (source code), now the agents also share learned configurations (meta-data)
Transfer Learning at larger scales
Emerging Complex Programs is feasible under tensor manipulations and simple local rules
Transfer Learning at larger scale
Enhanced Software 2.0 Programs? or Probably Brand-New Programs?
Deep Software Engineering via Complexity Science Analysis and Design
Towards Self-Maintenance Programs
- Property 1: Simple Components or agents (simple relative to the whole system)
Auto-regressive, adversarial, or autoenconder architectures
Trained Generative Agent
Trained Fine-Tuned Agent
Deep Neural Classifier
- Property 2: Nonlinearity and Complex Interactions (synergy)
Better Performance
Generative Agents are sensitive to initial conditions (hyper-parameters) and inputs
Fine-Tune Strategy 1
Fine-Tune Strategy 2
Worst Performance
- Property 3: Descentralization or no central control
No leading agent or "deep neural net" controlling for interactions
- Property 4: Emergency
Case study 1 [self-replication]: Are self-replicated "programs" (or NN or Software 2.0) somewhat better? What type of properties have? Can the multi-tasker agents perform a brand new task?
- Property 4: Emergency
Case study 2 [self-organization]: are the generative agents reporting enhanced accuracy after transfer-learning interactions?
Assembled Agent (by transfer learning strategies)
Enhanced synthesized code?
Simple and Local Transfer Rules
Better accuracy? What type of tasks emerged?
Fine-Tuning
Complex Programs or Advanced Software Systems
- Property 4: Emergency
Case study 3 [evolution]: are the generative agents reporting enhanced accuracy after evolving parameters or structure?
Evolved Generative Agents
Enhanced synthesized code?
Fine-Tuning
Better accuracy? What type of tasks emerged?
Evolutionary Computation
Complex Programs or Advanced Software Systems
We can make source code Generative Agents more sophisticated. If each individual unit includes an independent reasoning unit, then agents can interact with each other by taking individual decisions (e.g., game theory, Q-Function, and reinforcement)
Reasoning Unit
Input Information
Filtered Outcome
Reasoning Units could control for maintenance tasks of each Neural Net. In other words, these nets are ablet to self-maintain the entire architecture (adaptability strategies)
Reasoning Unit
Input Information
Filtered Outcome
Regulation
Recall the three types of reasoning process?
Each Generative Agent can be considered "intelligent" when a reasoning is included...
Reasoning Unit
Input Information
Inferred Decision
Observation
Intervention
Retrospection
Each Generative Agent can be considered "intelligent" when a reasoning is included...
Reasoning Unit
Input Information
Inferred Decision
Observation
Intervention
Retrospection
Deep Unsupervised Nets
- Property 4: Emergency with "Intelligent Agents"
Case study 4 [causal inference]: Is reasoning among agents generating enhanced programs? What type of properties have?
Inferred Decision
Inferred Decision
Inferred Decision
Towards self-maintenance
By David Nader Palacio
Towards self-maintenance
- 273