Download cours-pdf.html from MAALOUFimad02/Machine_Learning_Training: direct link, hf CLI and curl.
- Browser
- Download file 24.8 kB
-
https://huggingface.co/spaces/MAALOUFimad02/Machine_Learning_Training/resolve/main/cours-pdf.html
- Command line
-
hf download hf://spaces/MAALOUFimad02/Machine_Learning_Training/cours-pdf.html
-
curl -L -o cours-pdf.html https://huggingface.co/spaces/MAALOUFimad02/Machine_Learning_Training/resolve/main/cours-pdf.html
24.8 kB
| <html lang="fr"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Cours de Machine Learning - ML Academy</title> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> | |
| <script> | |
| window.MathJax = { | |
| tex: { inlineMath: [['$', '$']], displayMath: [['$$', '$$']] }, | |
| options: { skipHtmlTags: ['script','noscript','style','textarea','pre'] } | |
| }; | |
| </script> | |
| <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> | |
| <style> | |
| /* Reset */ | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { margin: 0; padding: 0; font-family: 'Inter', -apple-system, sans-serif; } | |
| /* Page setup */ | |
| @page { | |
| size: A4; | |
| margin: 2.5cm 2cm; | |
| @bottom-center { | |
| content: "Imad Maalouf — ML Academy"; | |
| font-size: 9pt; | |
| color: #666; | |
| } | |
| @bottom-right { | |
| content: counter(page); | |
| font-size: 9pt; | |
| color: #666; | |
| } | |
| } | |
| @page :first { | |
| margin: 0; | |
| @bottom-center { content: none; } | |
| @bottom-right { content: none; } | |
| } | |
| /* Cover page */ | |
| .cover { | |
| width: 210mm; | |
| height: 297mm; | |
| margin: 0; | |
| position: relative; | |
| overflow: hidden; | |
| page-break-after: always; | |
| background: linear-gradient(135deg, #0f0f1a 0%, #1a1a2e 50%, #252542 100%); | |
| } | |
| .cover-decoration { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| overflow: hidden; | |
| } | |
| .cover-circle { | |
| position: absolute; | |
| border-radius: 50%; | |
| opacity: 0.1; | |
| } | |
| .cover-circle-1 { | |
| width: 400px; | |
| height: 400px; | |
| background: #6366f1; | |
| top: -100px; | |
| right: -100px; | |
| } | |
| .cover-circle-2 { | |
| width: 300px; | |
| height: 300px; | |
| background: #06b6d4; | |
| bottom: 10%; | |
| left: -80px; | |
| } | |
| .cover-circle-3 { | |
| width: 200px; | |
| height: 200px; | |
| background: #f59e0b; | |
| top: 40%; | |
| right: 15%; | |
| } | |
| .cover-content { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| text-align: center; | |
| width: 80%; | |
| z-index: 1; | |
| } | |
| .cover-badge { | |
| display: inline-block; | |
| padding: 8px 16px; | |
| background: rgba(99, 102, 241, 0.2); | |
| border: 1px solid rgba(99, 102, 241, 0.4); | |
| border-radius: 20px; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 10pt; | |
| color: #818cf8; | |
| text-transform: uppercase; | |
| letter-spacing: 2px; | |
| margin-bottom: 30px; | |
| } | |
| .cover-title { | |
| font-size: 36pt; | |
| font-weight: 700; | |
| color: #f8fafc; | |
| margin-bottom: 15px; | |
| line-height: 1.2; | |
| } | |
| .cover-subtitle { | |
| font-size: 14pt; | |
| color: #94a3b8; | |
| margin-bottom: 60px; | |
| } | |
| .cover-author { | |
| font-size: 12pt; | |
| color: #818cf8; | |
| margin-bottom: 10px; | |
| } | |
| .cover-info { | |
| font-size: 10pt; | |
| color: #64748b; | |
| } | |
| /* Content styles */ | |
| .content { | |
| padding: 0; | |
| } | |
| h1 { | |
| font-size: 20pt; | |
| font-weight: 700; | |
| color: #1a1a2e; | |
| margin: 30pt 0 15pt 0; | |
| padding-bottom: 8pt; | |
| border-bottom: 2px solid #6366f1; | |
| page-break-after: avoid; | |
| } | |
| h2 { | |
| font-size: 14pt; | |
| font-weight: 600; | |
| color: #1a1a2e; | |
| margin: 20pt 0 10pt 0; | |
| page-break-after: avoid; | |
| } | |
| h3 { | |
| font-size: 12pt; | |
| font-weight: 600; | |
| color: #333; | |
| margin: 15pt 0 8pt 0; | |
| page-break-after: avoid; | |
| } | |
| p { | |
| font-size: 11pt; | |
| line-height: 1.7; | |
| color: #333; | |
| margin-bottom: 10pt; | |
| text-align: justify; | |
| text-align-last: left; | |
| } | |
| strong { | |
| font-weight: 600; | |
| color: #1a1a2e; | |
| } | |
| em { | |
| font-style: italic; | |
| color: #444; | |
| } | |
| /* Info box */ | |
| .info-box { | |
| background: #f8f9fa; | |
| border-left: 4px solid #6366f1; | |
| padding: 12pt 15pt; | |
| margin: 15pt 0; | |
| page-break-inside: avoid; | |
| } | |
| .info-box-title { | |
| font-weight: 600; | |
| color: #6366f1; | |
| margin-bottom: 5pt; | |
| font-size: 10pt; | |
| } | |
| .info-box p { | |
| margin: 0; | |
| font-size: 10pt; | |
| } | |
| /* Equation block */ | |
| .equation-block { | |
| background: #f8f9fa; | |
| border: 1px solid #e2e8f0; | |
| border-left: 3px solid #6366f1; | |
| border-radius: 4px; | |
| padding: 15pt; | |
| margin: 15pt 0; | |
| text-align: center; | |
| page-break-inside: avoid; | |
| } | |
| .equation-label { | |
| display: block; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 8pt; | |
| color: #64748b; | |
| text-align: right; | |
| margin-top: 8pt; | |
| } | |
| /* Cards grid */ | |
| .cards-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 12pt; | |
| margin: 15pt 0; | |
| } | |
| .card { | |
| background: #f8f9fa; | |
| border: 1px solid #e2e8f0; | |
| border-radius: 6px; | |
| padding: 12pt; | |
| page-break-inside: avoid; | |
| } | |
| .card-icon { | |
| width: 32px; | |
| height: 32px; | |
| background: linear-gradient(135deg, #6366f1, #06b6d4); | |
| border-radius: 6px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 12pt; | |
| font-weight: 700; | |
| color: white; | |
| margin-bottom: 8pt; | |
| } | |
| .card-title { | |
| font-size: 10pt; | |
| font-weight: 600; | |
| color: #1a1a2e; | |
| margin-bottom: 5pt; | |
| } | |
| .card-text { | |
| font-size: 9pt; | |
| color: #555; | |
| line-height: 1.5; | |
| } | |
| /* Pipeline */ | |
| .pipeline { | |
| display: flex; | |
| gap: 8pt; | |
| margin: 15pt 0; | |
| padding: 12pt; | |
| background: #f8f9fa; | |
| border: 1px solid #e2e8f0; | |
| border-radius: 6px; | |
| } | |
| .pipeline-step { | |
| flex: 1; | |
| text-align: center; | |
| position: relative; | |
| } | |
| .pipeline-step:not(:last-child)::after { | |
| content: '->'; | |
| position: absolute; | |
| right: -10pt; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: #6366f1; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 10pt; | |
| } | |
| .pipeline-num { | |
| width: 24pt; | |
| height: 24pt; | |
| background: linear-gradient(135deg, #6366f1, #06b6d4); | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 9pt; | |
| font-weight: 700; | |
| color: white; | |
| margin: 0 auto 5pt; | |
| } | |
| .pipeline-label { | |
| font-size: 8pt; | |
| font-weight: 600; | |
| color: #1a1a2e; | |
| } | |
| .pipeline-desc { | |
| font-size: 7pt; | |
| color: #64748b; | |
| } | |
| /* Comparison */ | |
| .comparison-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 12pt; | |
| margin: 15pt 0; | |
| } | |
| .comparison-box { | |
| background: #f8f9fa; | |
| border: 1px solid #e2e8f0; | |
| border-radius: 6px; | |
| padding: 12pt; | |
| page-break-inside: avoid; | |
| } | |
| .comparison-box h4 { | |
| font-size: 10pt; | |
| font-weight: 600; | |
| color: #1a1a2e; | |
| margin-bottom: 8pt; | |
| padding-bottom: 5pt; | |
| border-bottom: 1px solid #e2e8f0; | |
| } | |
| .comparison-box ul { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| .comparison-box li { | |
| padding: 3pt 0; | |
| font-size: 9pt; | |
| color: #444; | |
| } | |
| .comparison-box li::before { | |
| content: '>'; | |
| color: #6366f1; | |
| margin-right: 6pt; | |
| font-family: 'JetBrains Mono', monospace; | |
| } | |
| /* Metric cards */ | |
| .metric-row { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 12pt; | |
| margin: 15pt 0; | |
| } | |
| .metric-card { | |
| background: #f8f9fa; | |
| border: 1px solid #e2e8f0; | |
| border-radius: 6px; | |
| padding: 12pt; | |
| text-align: center; | |
| page-break-inside: avoid; | |
| } | |
| .metric-name { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 7pt; | |
| color: #64748b; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| margin-bottom: 5pt; | |
| } | |
| .metric-formula { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 9pt; | |
| color: #6366f1; | |
| font-weight: 600; | |
| margin-bottom: 3pt; | |
| } | |
| .metric-desc { | |
| font-size: 7pt; | |
| color: #64748b; | |
| } | |
| /* Table */ | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| margin: 15pt 0; | |
| font-size: 9pt; | |
| page-break-inside: avoid; | |
| } | |
| thead { | |
| display: table-header-group; | |
| } | |
| th { | |
| background: #f1f5f9; | |
| color: #475569; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 8pt; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| padding: 8pt 10pt; | |
| text-align: left; | |
| border-top: 2px solid #333; | |
| border-bottom: 1px solid #333; | |
| } | |
| td { | |
| padding: 8pt 10pt; | |
| border-bottom: 1px solid #e2e8f0; | |
| color: #333; | |
| } | |
| tbody tr:last-child td { | |
| border-bottom: 2px solid #333; | |
| } | |
| /* Page break utilities */ | |
| .page-break { | |
| page-break-after: always; | |
| } | |
| /* Prevent overflow */ | |
| pre, table, figure, img, svg, blockquote { | |
| max-width: 100%; | |
| box-sizing: border-box; | |
| } | |
| a { word-break: break-all; } | |
| /* Author footer on each page */ | |
| .author-footer { | |
| margin-top: 30pt; | |
| padding-top: 15pt; | |
| border-top: 1px solid #e2e8f0; | |
| text-align: center; | |
| } | |
| .author-name { | |
| font-size: 10pt; | |
| font-weight: 600; | |
| color: #6366f1; | |
| } | |
| .author-contact { | |
| font-size: 8pt; | |
| color: #64748b; | |
| margin-top: 3pt; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <!-- Cover Page --> | |
| <div class="cover"> | |
| <div class="cover-decoration"> | |
| <div class="cover-circle cover-circle-1"></div> | |
| <div class="cover-circle cover-circle-2"></div> | |
| <div class="cover-circle cover-circle-3"></div> | |
| </div> | |
| <div class="cover-content"> | |
| <div class="cover-badge">Formation 2025/2026</div> | |
| <h1 class="cover-title">Cours de<br>Machine Learning</h1> | |
| <p class="cover-subtitle">De la theorie a la pratique — Algorithmes fondamentaux et techniques avancees</p> | |
| <p class="cover-author">Formateur : Imad Maalouf</p> | |
| <p class="cover-info">ML Academy — GE-MCI 4A</p> | |
| </div> | |
| </div> | |
| <!-- Content --> | |
| <div class="content"> | |
| <h1>1. Introduction au Machine Learning</h1> | |
| <p> | |
| Le <strong>Machine Learning (ML)</strong> est une branche de l'intelligence artificielle | |
| qui permet aux machines d'apprendre a partir de donnees <em>sans etre explicitement programmees</em> | |
| pour chaque tache. Au lieu de coder des regles a la main, on montre des exemples au modele | |
| et il decouvre lui-meme les patterns. | |
| </p> | |
| <div class="info-box"> | |
| <div class="info-box-title">Idee fondamentale</div> | |
| <p> | |
| On cherche a approximer une fonction inconnue $f$ telle que $\hat{y} = f(x_1, x_2, \ldots, x_n)$. | |
| Le modele ML apprend cette fonction a partir d'exemples $(x, y)$ connus. | |
| </p> | |
| </div> | |
| <h2>1.1 Types d'apprentissage</h2> | |
| <div class="cards-grid"> | |
| <div class="card"> | |
| <div class="card-icon">S</div> | |
| <div class="card-title">Supervise</div> | |
| <div class="card-text">Donnees labellisees $(x, y)$ : regression et classification.</div> | |
| </div> | |
| <div class="card"> | |
| <div class="card-icon">N</div> | |
| <div class="card-title">Non supervise</div> | |
| <div class="card-text">Pas de labels : clustering, reduction de dimension.</div> | |
| </div> | |
| <div class="card"> | |
| <div class="card-icon">R</div> | |
| <div class="card-title">Par renforcement</div> | |
| <div class="card-text">Agent apprend via actions-recompenses.</div> | |
| </div> | |
| </div> | |
| <h2>1.2 Pipeline ML typique</h2> | |
| <div class="pipeline"> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">1</div> | |
| <div class="pipeline-label">Donnees</div> | |
| <div class="pipeline-desc">Collecte & nettoyage</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">2</div> | |
| <div class="pipeline-label">Features</div> | |
| <div class="pipeline-desc">Engineering</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">3</div> | |
| <div class="pipeline-label">Split</div> | |
| <div class="pipeline-desc">Train / Test</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">4</div> | |
| <div class="pipeline-label">Modele</div> | |
| <div class="pipeline-desc">Entrainement</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">5</div> | |
| <div class="pipeline-label">Evaluation</div> | |
| <div class="pipeline-desc">Metriques</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">6</div> | |
| <div class="pipeline-label">Production</div> | |
| <div class="pipeline-desc">Deploiement</div> | |
| </div> | |
| </div> | |
| <div class="page-break"></div> | |
| <h1>2. Regression Lineaire</h1> | |
| <p> | |
| La <strong>regression lineaire</strong> modelise la relation entre les features et la cible | |
| par une fonction affine. C'est l'algorithme le plus simple mais souvent tres efficace | |
| comme baseline. | |
| </p> | |
| <div class="equation-block"> | |
| $$\hat{y} = w_0 + w_1 x_1 + w_2 x_2 + \cdots + w_n x_n = \mathbf{w}^T \mathbf{x}$$ | |
| <span class="equation-label">Modele lineaire avec coefficients $\mathbf{w}$</span> | |
| </div> | |
| <p> | |
| L'objectif est de minimiser l'erreur quadratique moyenne (MSE) : | |
| </p> | |
| <div class="equation-block"> | |
| $$\text{MSE} = \frac{1}{m} \sum_{i=1}^{m} (y_i - \hat{y}_i)^2$$ | |
| <span class="equation-label">Fonction de cout : moyenne des erreurs quadratiques</span> | |
| </div> | |
| <div class="info-box"> | |
| <div class="info-box-title">Solution analytique</div> | |
| <p> | |
| La regression lineaire admet une solution fermee : | |
| $\mathbf{w}^* = (X^T X)^{-1} X^T Y$. Pas besoin d'iterations ! | |
| </p> | |
| </div> | |
| <h2>2.1 Avantages et limitations</h2> | |
| <div class="comparison-grid"> | |
| <div class="comparison-box"> | |
| <h4>[+] Avantages</h4> | |
| <ul> | |
| <li>Tres rapide a entrainer</li> | |
| <li>Interpretable (coefficients)</li> | |
| <li>Pas d'hyperparametres</li> | |
| <li>Excellent baseline</li> | |
| </ul> | |
| </div> | |
| <div class="comparison-box"> | |
| <h4>[-] Limitations</h4> | |
| <ul> | |
| <li>Relation lineaire uniquement</li> | |
| <li>Sensible aux outliers</li> | |
| <li>Performance decroit en haute dimension</li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="page-break"></div> | |
| <h1>3. Regression Logistique</h1> | |
| <p> | |
| Malgre son nom, la <strong>regression logistique</strong> est un algorithme de <em>classification</em>. | |
| Elle predit la probabilite d'appartenance a une classe en utilisant la fonction sigmoide. | |
| </p> | |
| <div class="equation-block"> | |
| $$P(y=1|\mathbf{x}) = \sigma(\mathbf{w}^T \mathbf{x}) = \frac{1}{1 + e^{-\mathbf{w}^T \mathbf{x}}}$$ | |
| <span class="equation-label">Fonction sigmoide pour la classification binaire</span> | |
| </div> | |
| <div class="info-box"> | |
| <div class="info-box-title">Cas d'usage : Dataset Titanic</div> | |
| <p> | |
| Predire la survie des passagers du Titanic a partir de leur age, sexe, | |
| classe de billet, etc. Un classique du ML pour debuter ! | |
| </p> | |
| </div> | |
| <div class="page-break"></div> | |
| <h1>4. Random Forest</h1> | |
| <p> | |
| <strong>Random Forest</strong> est un ensemble d'arbres de decision qui votent pour predire. | |
| C'est l'un des algorithmes les plus populaires en ML applique : performant, robuste, | |
| peu sensible au tuning. | |
| </p> | |
| <h2>4.1 Algorithme : Bagging + Random Splits</h2> | |
| <div class="pipeline"> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">1</div> | |
| <div class="pipeline-label">Bootstrap</div> | |
| <div class="pipeline-desc">Echantillons aleatoires</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">2</div> | |
| <div class="pipeline-label">Splits</div> | |
| <div class="pipeline-desc">Features aleatoires</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">3</div> | |
| <div class="pipeline-label">Arbres</div> | |
| <div class="pipeline-desc">N arbres independants</div> | |
| </div> | |
| <div class="pipeline-step"> | |
| <div class="pipeline-num">4</div> | |
| <div class="pipeline-label">Vote</div> | |
| <div class="pipeline-desc">Moyenne ou mode</div> | |
| </div> | |
| </div> | |
| <h2>4.2 Hyperparametres cles</h2> | |
| <div class="metric-row"> | |
| <div class="metric-card"> | |
| <div class="metric-name">n_estimators</div> | |
| <div class="metric-formula">100 - 500</div> | |
| <div class="metric-desc">Nombre d'arbres</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">max_depth</div> | |
| <div class="metric-formula">10 - 30</div> | |
| <div class="metric-desc">Profondeur max</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">min_samples_split</div> | |
| <div class="metric-formula">2 - 10</div> | |
| <div class="metric-desc">Min pour splitter</div> | |
| </div> | |
| </div> | |
| <div class="info-box"> | |
| <div class="info-box-title">Feature Importance</div> | |
| <p> | |
| Random Forest fournit automatiquement l'importance de chaque feature, | |
| ce qui aide a comprendre quelles variables influencent le plus les predictions. | |
| </p> | |
| </div> | |
| <div class="page-break"></div> | |
| <h1>5. Reseaux de Neurones</h1> | |
| <p> | |
| Les <strong>reseaux de neurones</strong> sont inspires du cerveau humain : des couches de neurones | |
| interconnectes executent des transformations non-lineaires. Ils excellent pour les patterns complexes. | |
| </p> | |
| <h2>5.1 Fonctionnement : Forward + Backprop</h2> | |
| <div class="cards-grid"> | |
| <div class="card"> | |
| <div class="card-icon">F</div> | |
| <div class="card-title">Forward Pass</div> | |
| <div class="card-text">Donnees traversent les couches : $\mathbf{h}_1 = \sigma(W_1 \mathbf{x} + b_1)$</div> | |
| </div> | |
| <div class="card"> | |
| <div class="card-icon">L</div> | |
| <div class="card-title">Loss Computation</div> | |
| <div class="card-text">Compare prediction vs realite : $L = \frac{1}{m} \sum (y - \hat{y})^2$</div> | |
| </div> | |
| <div class="card"> | |
| <div class="card-icon">B</div> | |
| <div class="card-title">Backpropagation</div> | |
| <div class="card-text">Calcule les gradients via la chaine de derivation</div> | |
| </div> | |
| </div> | |
| <h2>5.2 Fonctions d'activation</h2> | |
| <div class="metric-row"> | |
| <div class="metric-card"> | |
| <div class="metric-name">ReLU</div> | |
| <div class="metric-formula">$f(x) = \max(0, x)$</div> | |
| <div class="metric-desc">Couches cachees</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">Sigmoid</div> | |
| <div class="metric-formula">$f(x) = \frac{1}{1 + e^{-x}}$</div> | |
| <div class="metric-desc">Classification binaire</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">Softmax</div> | |
| <div class="metric-formula">$f(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}$</div> | |
| <div class="metric-desc">Classification multi-classe</div> | |
| </div> | |
| </div> | |
| <div class="page-break"></div> | |
| <h1>6. LSTM et Series Temporelles</h1> | |
| <p> | |
| <strong>LSTM (Long Short-Term Memory)</strong> est un type de reseau neuronal pour series temporelles. | |
| Il peut "retenir" l'information sur de longues periodes — crucial pour les predictions temporelles. | |
| </p> | |
| <div class="info-box"> | |
| <div class="info-box-title">Probleme des RNN vanilla</div> | |
| <p> | |
| Les gradients disparaissent (vanishing) ou explosent (exploding) sur de longues sequences. | |
| Le LSTM resout ce probleme avec son <strong>cell state</strong>. | |
| </p> | |
| </div> | |
| <h2>6.1 Les trois portes du LSTM</h2> | |
| <div class="metric-row"> | |
| <div class="metric-card"> | |
| <div class="metric-name">Forget Gate</div> | |
| <div class="metric-formula">$f_t = \sigma(W_f [h_{t-1}, x_t] + b_f)$</div> | |
| <div class="metric-desc">Quoi oublier ?</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">Input Gate</div> | |
| <div class="metric-formula">$i_t = \sigma(W_i [h_{t-1}, x_t] + b_i)$</div> | |
| <div class="metric-desc">Quoi ajouter ?</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">Output Gate</div> | |
| <div class="metric-formula">$o_t = \sigma(W_o [h_{t-1}, x_t] + b_o)$</div> | |
| <div class="metric-desc">Quoi exposer ?</div> | |
| </div> | |
| </div> | |
| <div class="info-box"> | |
| <div class="info-box-title">Cas d'usage</div> | |
| <p> | |
| Prediction de prix boursiers, meteo, consommation energetique, | |
| traitement du langage naturel (NLP)... | |
| </p> | |
| </div> | |
| <div class="page-break"></div> | |
| <h1>7. Metriques de Performance</h1> | |
| <p> | |
| Evaluer correctement un modele est crucial. Les bonnes metriques dependent du type de probleme | |
| (regression vs classification) et des objectifs metier. | |
| </p> | |
| <h2>7.1 Regression</h2> | |
| <div class="metric-row"> | |
| <div class="metric-card"> | |
| <div class="metric-name">MAE</div> | |
| <div class="metric-formula">$\frac{1}{n}\sum|y_i - \hat{y}_i|$</div> | |
| <div class="metric-desc">Robuste aux outliers</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">RMSE</div> | |
| <div class="metric-formula">$\sqrt{\frac{1}{n}\sum(y_i - \hat{y}_i)^2}$</div> | |
| <div class="metric-desc">Penalise les grandes erreurs</div> | |
| </div> | |
| <div class="metric-card"> | |
| <div class="metric-name">R2</div> | |
| <div class="metric-formula">$1 - \frac{SS_{res}}{SS_{tot}}$</div> | |
| <div class="metric-desc">% variance expliquee</div> | |
| </div> | |
| </div> | |
| <h2>7.2 Classification</h2> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>Metrique</th> | |
| <th>Formule</th> | |
| <th>Usage</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td><strong>Accuracy</strong></td> | |
| <td>$(TP + TN) / Total$</td> | |
| <td>Classes equilibrees</td> | |
| </tr> | |
| <tr> | |
| <td><strong>Precision</strong></td> | |
| <td>$TP / (TP + FP)$</td> | |
| <td>Minimiser faux positifs</td> | |
| </tr> | |
| <tr> | |
| <td><strong>Recall</strong></td> | |
| <td>$TP / (TP + FN)$</td> | |
| <td>Minimiser faux negatifs</td> | |
| </tr> | |
| <tr> | |
| <td><strong>F1-Score</strong></td> | |
| <td>$2 \cdot \frac{P \cdot R}{P + R}$</td> | |
| <td>Classes desequilibrees</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <div class="page-break"></div> | |
| <h1>8. Optimisation et Regularisation</h1> | |
| <p> | |
| Pour eviter le <strong>surapprentissage (overfitting)</strong> et ameliorer la generalisation, | |
| plusieurs techniques existent. | |
| </p> | |
| <div class="cards-grid"> | |
| <div class="card"> | |
| <div class="card-icon">D</div> | |
| <div class="card-title">Dropout</div> | |
| <div class="card-text">Desactive aleatoirement des neurones pendant l'entrainement.</div> | |
| </div> | |
| <div class="card"> | |
| <div class="card-icon">E</div> | |
| <div class="card-title">Early Stopping</div> | |
| <div class="card-text">Arrete l'entrainement quand la validation stagne.</div> | |
| </div> | |
| <div class="card"> | |
| <div class="card-icon">L</div> | |
| <div class="card-title">L2 Regularization</div> | |
| <div class="card-text">Penalise les grands poids : $L_{total} = L_{data} + \lambda \sum w^2$</div> | |
| </div> | |
| </div> | |
| <div class="info-box"> | |
| <div class="info-box-title">Regle d'or</div> | |
| <p> | |
| Toujours comparer les metriques sur <strong>train</strong> ET <strong>test</strong>. | |
| Un grand ecart = overfitting. Objectif : R2 train ≈ R2 test. | |
| </p> | |
| </div> | |
| <div class="author-footer"> | |
| <div class="author-name">Imad Maalouf</div> | |
| <div class="author-contact"> | |
| imadmaalouf02@gmail.com | github.com/imadmaalouf02 | huggingface.co/spaces/MAALOOUF/ML_Training | |
| </div> | |
| </div> | |
| </div> | |
| </body> | |
| </html> | |