Artificial Intelligence
fast.ai outer layer / inner layer RNN (reccurent neural network) classifiers
Target problems
- Regression problem
- Classification problem: déterminer la catégorie (= classe) d'appartenance d'un input ("cette image représente-t-elle un piéton ou un animal?", "cette image représente quelle lettre de l'alphabet?")
Expert systems
Moteur qui mimic un "expert" via des règles prédéfinies (conditions -> décisions)
Le système expert n'acquiert pas de nouvelles connaissances de façon autonome. Il a besoin d'etre feed par des experts.
Le système expert peut partir de facts pour arriver à une décision, mais il peut etre aussi programmé pour déduire les conditions d'apparition d'un fact (backward chaining)
Avantages: plus rapide qu'un expert
Désavantages: durs à maintenir (need expert, knowledge, frequent updates...)
Full info: Tutorialspoint/AI/Expert Systems
Decision Tree
https://www.analyticsvidhya.com/blog/2016/04/tree-based-algorithms-complete-tutorial-scratch-in-python/
Neural networks types
Chaque type de neural network a ses forces et faiblesses
Type | Caractéristiques | Links |
---|---|---|
Perceptron | The basic one | medium.com |
Convolutional (CNN) | Reco image | |
Recurrent (RNN) | ||
Adversarial | generator + discriminator. Reco image | |
Long Short Term Memory (LSTM) | Séquentiel, texte, parole | github.com |
- Neurone: fonction qui prend un input et output une valeur d'activation entre 0 et 1
- Weights
- Sigmoid: fonction qui prend n'importe quoi et le squash entre 0 et 1 (utile pour déterminer la valeur d'activation du neurone du layer suivant)
- ReLu (Rectified Linear Unit): autre type de fonction pls simple et plus rapide
- Bias: ajoute un threshold d'activation
- Learning: trouver les bias et weights "corrects" en minimisant la fonction de cost.
- Trouver un minimum: la technique de trouver la pente (gradient) permet de trouver un minimum local. Il faut répéter cette méthode pour chaque neurone (le signe du gradient renseigne sur la nécessité d'augmenter/diminuer le poids et la valeur renseigne sur la magnitude du changement nécessaire pour atteindre le minimum)
- Représentation = matrices
- Training data
- Testing data: doit evidemment être différente de la training data
- Loss/cost: distance entre le training data set et l'output de l'AI (lower the better)
https://github.com/mnielsen/neural-networks-and-deep-learning
Word vectors
SpaCy: natural language processor = permet de tokenizer un texte et de classifier les tokens. Peut-être utilisé pour préparer un texte d'apprentissage ML. Word2vec https://gist.github.com/aparrish/5732d2f50166930113fb138fe9f09554
Deep learning libraries
High level
- keras: high level API, peut wrapper CNTK, Theano ou Tensorflow
Low level (backend engines)
Torch: LuaJIT pytorch: wrapper de Torch en Python
tensorflow: low level API
MXNet: apache, open source CNTK: microsoft, open source Theano
- Dynamic
- Static
Data type
Training data Test data Validation Data
Training models
Attentional models (natural language
Process
Input Training
- Tensor: modèle de représentation de données utilisé par Tensorflow (matrice 3D)
- Overfitting: le network ne génère rien de nouveau et ressort la training data
Communauté
Kaggle
Compétitions (with prizes), public datasets
Predicting HOTS games: https://www.youtube.com/watch?v=wjOEHvzv15s
OpenAI
Initiative open source, soutenue par Elon Musk, AWS.
- Baselines: algorithmes de renforcement
- Gym: benchmark
DeepMind
Société basé au Royaume-Uni, CEO Demis Hassabis.
- 2014: acquisition par Google
- 2016: AlphaGo bat le champion de Go (basé sur une bdd de moves)
- 2017: AlphaZero, une version plus puissante/généraliste (shogi, échecs, go) + s'entraine only par self-play
- 2018: AlphaFold, prédiction molécules 3D (recherche Parkinson/Alzeihmer)
- 2019: AlphaStar: starcraft
Loi de Moore pour AI
source: openai.com
La puissance de calcule nécessaire à TRAIN une AI double tous les 3.5 mois. (la loi de Moore c'était tous les 18 mois)
AlphaGo Zero est souvent présentée comme une AI qui consomme peu, mais c'est uniquement pendant sa phase de run. La phase de train est la plus massive.