“Computers that learn in unsupervised ways and don't need to be told what to do in advance is the next phase of computer science” : Steve Wozniak , Apple co-founder
1. DEVFEST DLA 2015
Patrick MVENG | @adelphepatrick
Startup LaunchPad member by Google’s Developers
Founder of VIKI
#SelfProgramming
2. AGENDA
C’est quoi le self-programming ?
Concepts et Technologies utilisés
Pratique
Questions/réponses - Echange
3. “Computers that learn in unsupervised
ways and don't need to be told what to
do in advance is the next phase of
computer science”
Steve Wozniak , Apple co-founder
C’est quoi le Self-programming ?
4. Cette présentation décrit une expérience visant à produire un
programme en Intelligence Artificielle, capable de développer
d'autres programmes avec l'interaction en langage naturel
Est-il possible à un ordinateur d’écrire ses propres programmes ?
Self-programming
5. Concepts utilisés
Intelligence Artificielle
Apprentissage Automatique
Traitement Automatique du Langage
Naturel
Réseaux de Neurones
Programmation parallèle
Expressions régulières
Analyseur syntaxique et semantique
Modèle de markov Caché
6. Technologies utilisées
Visual Studio 2012 ou Android Studio
Framework DotNet
C# ou Java
Regex Library
TaskParallel Library
AIML ( Artificial Intelligence Markup
Language ) dérivé de XML
11. /// <summary>
/// Classe pour la compilation et l’exécution dynamique du
code généré
/// </summary>
public class CSharpCompiler
{
public bool Compile()//true if successful
{
bool success;
this.AssembleCode();//convert the data structures to
this.code
//compile class into assembly
CSharpCodeProvider codeProvider = new
CSharpCodeProvider();
ICodeCompiler compiler = codeProvider.CreateCompiler();
return success;
}//Compile()
}
Cas 1 : Génération automatique de code
source - #selfprogramming
12. Cas 2 : VIKI, votre secrétaire virtuelle sur Android
JAVA on Android Studio 8
public void neuron_speakOut(String text) {
tts=new TextToSpeech( this,
new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR)
{
int result = tts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA ||
result == TextToSpeech.LANG_NOT_SUPPORTED)
{
lmessage_viki = "This Language is not supported";
Log.e("TTS", lmessage_viki);
//Toast.makeText(this, lmessage_viki ,
Toast.LENGTH_LONG).show();
}
}
}
});
tts.speak(text.toString(), TextToSpeech.QUEUE_FLUSH, null);
}
VIKI permet aux développeurs d'inclure des interfaces vocales et le langage naturel dans leurs produits.
Cette copine répond aux questions et aux tâches des utilisateurs dans un langage naturel
13. Perspectives de VIKI
Prendre le job des êtres humains
IoT => IIoT ( Intelligent Internet of Things )
Transformer tout téléphone mobile en secrétaire ( Rendre plus intelligent les
smartphones)
Rendre Intelligent tout périphérique
Facilité la vie des êtres humains en leur donnant plus de temps pour prendre
du café