Salut !
Je viens de voir qu'OC à publié un cours d'introduction au machine learning, qui vise à présenter les choses de façon générale et que je trouve pas trop mal ! Pourquoi ne pas faire une première partie du même genre qui donne au lecteur les grandes lignes et le vocabulaire de base du sujet ?
Car parler de deep learning quand on ne sait pas ce qu'est le learning tout court ni à quoi cela sert c'est un peu mettre la charrue avant les boeufs non ?
Pourquoi ne de faire une première partie (ou un premier tuto ?) qui présente le maching learning de façon générale puis une seconde partie qui présente plus spécifiquement le deep learning.
Je te donne un petit exemple de comment personnellement je présenterait un neurone, sans utilise de maths dans un premier temps avant de donner des détails ensuite. L'idée est de donner l'intuition pour le non matheux en utilisant des exemples et expliquant les termes et dans un second temps de présenter les choses plus en détail. Comme ça tout le monde y trouve son compte. Le non matheux s'arrête à la première partie et comprend le principe, le matheux peut lui aller plus loin et mieux capter l'essence du sujet. Pour la première partie une bonne façon selon moi de faire est de te dire "comment est-ce que j’expliquerai ça à ma grand-mère ?". Tu n'en fera pas une data scientist, mais tu pourra lui donner une culture générale du sujet suffisante pour ne pas être perdu et en comprendre les grands principes et enjeux.
Un neurone fonctionne de façon similaire à un neurone de notre cerveau : le neurone reçoit plusieurs signaux, traite ses signaux et en fonction de ce traitement renvois un résultat en sortie. Les signaux sont les données qu'on à pour traiter notre problème et la sortie est la solution qu'on propose. Un exemple simple est d'imaginer un neurone qui essaye de prédire si une personne doit prendre son parapluie ou pas. Notre neurone reçois deux entrées (= données) pour l'aider à prendre sa décision : une première entrée qui est la probabilité qu'il pleuve dans la journée et la seconde entrée est la distance que l'on doit parcourir à l'air libre (avec le risque d'être mouillé si on n'a pas pris de parapluie et qu'il pleut). Le neurone utilise ses deux informations pour calculer la probabilité qu'on prenne un parapluie, ce qui correspond à la sortie du neurone.
(Mettre dessin du genre http://prntscr.com/dja1jj).
Notre but est d'entrainer ce neurone à nous dire en fonction des deux paramètres d'entrée si on doit ou non prendre notre parapluie. Pour cela le neurone va faire des calculs en utilisant les données qu'il reçoit afin de trouver la meilleure réponse possible.
Pour faire son calcul, le neurone utilise ce qu'on appel une fonction d'activation. On parle de fonction d'activation car elle décide si le neurone s'active ou non. Si le neurone estime qu'on ne doit pas prendre le parapluie on dit qu'il ne s'active pas et si il nous conseil de l'emporter alors on dit qu'il est activé. La fonction d'activation est une fonction mathématique qui prend en paramètre les entrées du neurone et donne en résultat la sortie du neurone. Ici notre fonction pour notre neurone parapluie serait de ce genre :
$$f(probabilitéPluie,distance) = ProbabilitéPrendreParapluie$$
Pour l'instant on ne s'intéresse pas à savoir exactement comment cette fonction marche et fait son calcul : on admet qu'elle prend les données et qu'elle les combinent de façon à donner une probabilité en sortie. Nous examinerons plus en détail ces fonctions plus tard.
Une chose importante à noter est que notre fonction ne vas pas accorder la même importance à tous les paramètres qu'elle reçoit pour déterminer le résultat. Pour notre neurone-parapluie il semble normal que la probabilité de pluie est plus importante pour déterminer le résultat final que la distance à parcourir : après tout, si il n'y a aucune chance de pleuvoir (probabilité de pluie = 0), la distance importe peu : on n'a pas besoin de parapluie. Pour tenir compte des différences d'importance des paramètres, le neurone va leur accorder ce qu'on appel un poids. Le poids d'un paramètre indique son importance pour le neurone : plus le poids est élevé, plus ce paramètre "compte" dans le résultat final.
Pour chaque paramètre $i$ on note son poids $\omega_i$ et on multiple chaque paramètre par son poids avant de le donner au neurone. Par exemple si on estime que pour notre neurone-parapluie doit prendre en compte la probabilité de pluie de façon plus importante que la distance pour calculer la sortie on peut décider de donner un poids $\omega_1 = 2$ a la probabilité de pluie et attribuer un poids normal de $\omega_2 = 1$ a la distance. Notre neurone ressemblera alors à ceci :
http://prntscr.com/dja422
N'importe quel neurone peut alors être vue comme une "boîte noire" qui traite des paramètres spécifiques qui vont être chacun multiplié par un poids qui indique son importance et donne un résultat en sortie :
Mettre dessin ici.
La question importante du maching learning avec réseau de neurone est de savoir quels sont les poids $w_i$ que l'on doit affecter à chaque paramètre pour que notre neurone soit le plus efficace possible. L'idée générale est que a chaque fois que notre neurone va avoir de nouvelles données, il va modifier un petit peu les poids afin de se rapprocher de la bonne solution. Plus on lui donne de données, mieux il va ainsi pouvoir ajuster ses poids. Si ce n'est pas encore très clair pas de panique, c'est normale. On reviendra là dessus plus tard. Mais pour le moment, avant de savoir comment trouver les poids idéals on va se pencher plus en détail sur la fonction d'activation du neurone pour comprendre comment en pratique elle utilise les paramètres pour calculer la sortie. Cela demande quelques bases en mathématiques, aussi n'hésite pas à réviser un peu ou à sauter cette partie si vous n'avez pas encore le niveau nécessaire.
Là on parle des sigmoïde et on peut développer pourquoi pas !
Voilà, c'est vraiment fait vite fait et je ne suis clairement pas un spécialiste du sujet, mais c'est ce genre d'approche que j'adopterai si je devais expliquer à un débutant ce qu'est un neurone et comment il fonctionne. En espérant ne pas voir trop dit de bêtises et que ma réponse t'aidera un peu !