<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://easy-explain-app.vercel.app/</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/playlists</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/playlist/PLKvb3M11cl9Q</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/playlist/PLNBMQNhZSP5c</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/playlist/PLVcQsK5b0mpA</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/playlist/PLNb7oagc_zsg</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/playlist/PLcuJu1K-wP1E</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/playlist/PLGcd9hFBmpQQ</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/6ABpSaJbSVI</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/6ABpSaJbSVI/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/6ABpSaJbSVI/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Your Backtest Order Can&apos;t Fill on the Same Bar</video:title>
      <video:description>Your order can&apos;t fill on the bar that triggered it. Here is the one-line rule that stops lookahead in Kestrel&apos;s simulated venue.</video:description>
      <video:player_loc>https://www.youtube.com/embed/6ABpSaJbSVI</video:player_loc>
      <video:duration>64</video:duration>
      <video:publication_date>2026-11-01T10:38:34.116Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>backtesting</video:tag>
      <video:tag>lookahead bias</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>trading engine</video:tag>
      <video:tag>fill model</video:tag>
      <video:tag>simulated venue</video:tag>
      <video:tag>slippage</video:tag>
      <video:tag>tick size</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>event-driven</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>systems programming</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/D3p-y0PyBxc</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/D3p-y0PyBxc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/D3p-y0PyBxc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Never Call a Handler Under a Lock</video:title>
      <video:description>One mutex mistake can freeze an entire trading engine. Here is how Kestrel&apos;s EventBus drain avoids it.</video:description>
      <video:player_loc>https://www.youtube.com/embed/D3p-y0PyBxc</video:player_loc>
      <video:duration>54</video:duration>
      <video:publication_date>2026-11-01T10:38:29.020Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>c++</video:tag>
      <video:tag>c++20</video:tag>
      <video:tag>mutex</video:tag>
      <video:tag>deadlock</video:tag>
      <video:tag>concurrency</video:tag>
      <video:tag>event bus</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>kestrel</video:tag>
      <video:tag>trading engine</video:tag>
      <video:tag>lock</video:tag>
      <video:tag>std::deque</video:tag>
      <video:tag>swap</video:tag>
      <video:tag>software design</video:tag>
      <video:tag>event driven</video:tag>
      <video:tag>multithreading</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/RyzvvNwa2jo</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/RyzvvNwa2jo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/RyzvvNwa2jo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Bug That Made Every Strategy One Bar Late</video:title>
      <video:description>One constant shifted every backtest by one bar. Here is how Kestrel&apos;s store read bar end times wrong, and the three-line fix.</video:description>
      <video:player_loc>https://www.youtube.com/embed/RyzvvNwa2jo</video:player_loc>
      <video:duration>55</video:duration>
      <video:publication_date>2026-11-01T10:38:23.729Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>backtesting bug</video:tag>
      <video:tag>off by one bar</video:tag>
      <video:tag>lookahead bias</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>trading platform code</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>event-driven engine</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>bar resampling</video:tag>
      <video:tag>time series bugs</video:tag>
      <video:tag>software engineering</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>systems programming</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/gVxbTL4y5xo</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/gVxbTL4y5xo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/gVxbTL4y5xo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>A Day in Paper Trading: Running a C++ Trading Stack, and 15 Lessons</video:title>
      <video:description>What does it actually take to run an algorithmic trading stack for one day? We walk through Kestrel&apos;s daily paper-trading routine, from the morning script to the ordered shutdown, then recap the design lessons of the whole 26-episode course.</video:description>
      <video:player_loc>https://www.youtube.com/embed/gVxbTL4y5xo</video:player_loc>
      <video:duration>753</video:duration>
      <video:publication_date>2026-11-01T10:38:18.859Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>paper trading</video:tag>
      <video:tag>trading system design</video:tag>
      <video:tag>event-driven architecture</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>software architecture</video:tag>
      <video:tag>lessons learned</video:tag>
      <video:tag>Unix sockets</video:tag>
      <video:tag>fail closed</video:tag>
      <video:tag>write-ahead log</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>quant developer</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/OlKum2tFHqA</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/OlKum2tFHqA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/OlKum2tFHqA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Ten Layers of Live-Trading Safety: Every Switch Before a Real Order</video:title>
      <video:description>How many switches stand between a strategy and a real broker order? In Kestrel, the answer is ten, and none of them trusts the others.</video:description>
      <video:player_loc>https://www.youtube.com/embed/OlKum2tFHqA</video:player_loc>
      <video:duration>709</video:duration>
      <video:publication_date>2026-11-01T10:38:03.598Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>live trading safety</video:tag>
      <video:tag>defence in depth</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>trading system design</video:tag>
      <video:tag>risk management software</video:tag>
      <video:tag>reconciliation</video:tag>
      <video:tag>kill switch</video:tag>
      <video:tag>environment variables</video:tag>
      <video:tag>Swiss cheese model</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>order management system</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/iN16nRT9xf0</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/iN16nRT9xf0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/iN16nRT9xf0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel Order Service: Sessions, Shadow Books, Crash Recovery</video:title>
      <video:description>What happens to your orders when a trading process dies? Kestrel&apos;s answer: the order service owns the truth, and the strategy keeps only a shadow.</video:description>
      <video:player_loc>https://www.youtube.com/embed/iN16nRT9xf0</video:player_loc>
      <video:duration>660</video:duration>
      <video:publication_date>2026-11-01T10:37:47.021Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>order management system</video:tag>
      <video:tag>crash recovery</video:tag>
      <video:tag>idempotency</video:tag>
      <video:tag>write-ahead journal</video:tag>
      <video:tag>Unix sockets</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>trading engine design</video:tag>
      <video:tag>shadow book</video:tag>
      <video:tag>fail closed</video:tag>
      <video:tag>software architecture</video:tag>
      <video:tag>Kestrel</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/s3vZM-5t8ZA</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/s3vZM-5t8ZA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/s3vZM-5t8ZA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Safe Order Placement: When the Broker Doesn&apos;t Answer</video:title>
      <video:description>What should a trading engine do when an order request times out and nobody knows whether it reached the exchange?</video:description>
      <video:player_loc>https://www.youtube.com/embed/s3vZM-5t8ZA</video:player_loc>
      <video:duration>864</video:duration>
      <video:publication_date>2026-11-01T10:37:34.181Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>safe order placement</video:tag>
      <video:tag>write-ahead ledger</video:tag>
      <video:tag>idempotency</video:tag>
      <video:tag>order tag</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>trading engine design</video:tag>
      <video:tag>uncertain outcomes</video:tag>
      <video:tag>crash recovery</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>double fill</video:tag>
      <video:tag>retry safety</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/REmSuZBv9Kc</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/REmSuZBv9Kc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/REmSuZBv9Kc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel Broker Plumbing: Daily Login, Secret Redaction, Rate Limiters</video:title>
      <video:description>What happens before a trading system sends its first request? Kestrel has to log in every morning, keep secrets out of every log, and stay under a broker&apos;s rate limits across several processes.</video:description>
      <video:player_loc>https://www.youtube.com/embed/REmSuZBv9Kc</video:player_loc>
      <video:duration>671</video:duration>
      <video:publication_date>2026-11-01T10:37:17.255Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>rate limiter</video:tag>
      <video:tag>sliding window</video:tag>
      <video:tag>OAuth login</video:tag>
      <video:tag>CSRF state</video:tag>
      <video:tag>secret redaction</video:tag>
      <video:tag>flock</video:tag>
      <video:tag>atomic file write</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>symbol master</video:tag>
      <video:tag>trading infrastructure</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/OwN6ZhVZjKE</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/OwN6ZhVZjKE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/OwN6ZhVZjKE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>One Connection, Many Traders: Inside Kestrel&apos;s Market-Data Service</video:title>
      <video:description>How does one process serve many strategies from a single broker connection without duplicating work or letting one slow client hurt the rest?</video:description>
      <video:player_loc>https://www.youtube.com/embed/OwN6ZhVZjKE</video:player_loc>
      <video:duration>724</video:duration>
      <video:publication_date>2026-11-01T10:37:01.704Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>market data</video:tag>
      <video:tag>websocket</video:tag>
      <video:tag>fan-out</video:tag>
      <video:tag>Unix socket</video:tag>
      <video:tag>subscription refcount</video:tag>
      <video:tag>backpressure</video:tag>
      <video:tag>REST fallback</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>event-driven architecture</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>poll loop</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>bar builder</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/qkZd9fvyPtU</loc>
    <lastmod>2026-11-01</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/qkZd9fvyPtU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/qkZd9fvyPtU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Decoding the FYERS Binary Market-Data Protocol, Byte by Byte</video:title>
      <video:description>Seventeen bytes arrive on a websocket. Can you turn them into a price safely? We decode the FYERS HSM binary market-data protocol byte by byte in C++20, inside the Kestrel trading platform.</video:description>
      <video:player_loc>https://www.youtube.com/embed/qkZd9fvyPtU</video:player_loc>
      <video:duration>775</video:duration>
      <video:publication_date>2026-11-01T10:36:45.451Z</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>FYERS</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>HSM protocol</video:tag>
      <video:tag>binary protocol</video:tag>
      <video:tag>websocket</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>market data</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>parsing binary data</video:tag>
      <video:tag>big-endian</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>bounds checking</video:tag>
      <video:tag>Inside Kestrel</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/vBpYOEogxZ8</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/vBpYOEogxZ8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/vBpYOEogxZ8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel: A Bounded HTTP Server, dlopen libcurl, and a Hand-Built WebSocket</video:title>
      <video:description>What if your trading binary could use libcurl without ever linking it, and speak WebSocket without a library?</video:description>
      <video:player_loc>https://www.youtube.com/embed/vBpYOEogxZ8</video:player_loc>
      <video:duration>776</video:duration>
      <video:publication_date>2026-10-31T09:39:03.087Z</video:publication_date>
      <video:view_count>4</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>WebSocket</video:tag>
      <video:tag>RFC 6455</video:tag>
      <video:tag>libcurl</video:tag>
      <video:tag>dlopen</video:tag>
      <video:tag>HTTP server</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>networking</video:tag>
      <video:tag>XOR mask</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>thread pool</video:tag>
      <video:tag>TLS</video:tag>
      <video:tag>Manim</video:tag>
      <video:tag>low level programming</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/NGBnBN60qBg</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/NGBnBN60qBg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/NGBnBN60qBg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Wire Framing and Loopback Security: Inside Kestrel&apos;s Local Sockets</video:title>
      <video:description>Four bytes of length, a streaming parser that rejects a 4 GB lie instantly, and a browser tab that hits three walls.</video:description>
      <video:player_loc>https://www.youtube.com/embed/NGBnBN60qBg</video:player_loc>
      <video:duration>845</video:duration>
      <video:publication_date>2026-10-31T09:38:46.486Z</video:publication_date>
      <video:view_count>6</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>length-prefixed framing</video:tag>
      <video:tag>Unix domain sockets</video:tag>
      <video:tag>loopback security</video:tag>
      <video:tag>constant-time compare</video:tag>
      <video:tag>DNS rebinding</video:tag>
      <video:tag>CSRF</video:tag>
      <video:tag>Origin header</video:tag>
      <video:tag>Host header</video:tag>
      <video:tag>timing attack</video:tag>
      <video:tag>non-blocking sockets</video:tag>
      <video:tag>MSG_NOSIGNAL</video:tag>
      <video:tag>algorithmic trading platform</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>socket hardening</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/41xVtq8a8Iw</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/41xVtq8a8Iw/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/41xVtq8a8Iw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Kestrel Runs as Many Processes: The Live Architecture</video:title>
      <video:description>One engine, many processes: why Kestrel splits paper and live trading into kestrel_md, kestrel_orders and kestrel_trader.</video:description>
      <video:player_loc>https://www.youtube.com/embed/41xVtq8a8Iw</video:player_loc>
      <video:duration>721</video:duration>
      <video:publication_date>2026-10-31T09:38:26.891Z</video:publication_date>
      <video:view_count>12</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>software architecture</video:tag>
      <video:tag>multi-process design</video:tag>
      <video:tag>Unix sockets</video:tag>
      <video:tag>signal handling</video:tag>
      <video:tag>sigtimedwait</video:tag>
      <video:tag>rate limiting</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>process isolation</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>trading platform</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/W8ETv5s93Ig</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/W8ETv5s93Ig/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/W8ETv5s93Ig/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Golden Tests, Fakes and the Run Archive: Proving a Trading Engine Unchanged</video:title>
      <video:description>How do you refactor a trading engine and prove that not a single byte of behaviour changed?</video:description>
      <video:player_loc>https://www.youtube.com/embed/W8ETv5s93Ig</video:player_loc>
      <video:duration>847</video:duration>
      <video:publication_date>2026-10-31T09:38:10.052Z</video:publication_date>
      <video:view_count>15</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>golden tests</video:tag>
      <video:tag>snapshot testing</video:tag>
      <video:tag>doctest</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>unit testing C++</video:tag>
      <video:tag>deterministic testing</video:tag>
      <video:tag>SHA-256</video:tag>
      <video:tag>fake transports</video:tag>
      <video:tag>run archive</video:tag>
      <video:tag>producer consumer</video:tag>
      <video:tag>mkdir atomic</video:tag>
      <video:tag>algorithmic trading platform</video:tag>
      <video:tag>backtesting engine</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>refactoring safely</video:tag>
      <video:tag>ctest</video:tag>
      <video:tag>systems programming</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/Myr5kcD89y8</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/Myr5kcD89y8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/Myr5kcD89y8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel Backtest Jobs, Parameter Sweeps and Honest Walk-Forward</video:title>
      <video:description>How do you run hundreds of backtests without cheating, without a network, and without fooling yourself?</video:description>
      <video:player_loc>https://www.youtube.com/embed/Myr5kcD89y8</video:player_loc>
      <video:duration>843</video:duration>
      <video:publication_date>2026-10-31T09:37:53.651Z</video:publication_date>
      <video:view_count>4</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>backtesting</video:tag>
      <video:tag>walk-forward analysis</video:tag>
      <video:tag>parameter sweep</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>quant development</video:tag>
      <video:tag>job queue</video:tag>
      <video:tag>worker pool</video:tag>
      <video:tag>overfitting</video:tag>
      <video:tag>Sharpe ratio</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>out-of-sample testing</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/tdfIdEJjsjA</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/tdfIdEJjsjA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/tdfIdEJjsjA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Backtest Metrics: Welford Sharpe, Sortino and Drawdown in C++</video:title>
      <video:description>Four equity points can produce a Sharpe ratio above 12. Here is why, and how Kestrel&apos;s BacktestMetrics computes Sharpe, Sortino, volatility, CAGR and drawdown in one streaming pass.</video:description>
      <video:player_loc>https://www.youtube.com/embed/tdfIdEJjsjA</video:player_loc>
      <video:duration>796</video:duration>
      <video:publication_date>2026-10-31T09:37:40.638Z</video:publication_date>
      <video:view_count>5</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>backtest metrics</video:tag>
      <video:tag>sharpe ratio</video:tag>
      <video:tag>sortino ratio</video:tag>
      <video:tag>max drawdown</video:tag>
      <video:tag>welford algorithm</video:tag>
      <video:tag>streaming variance</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>backtesting</video:tag>
      <video:tag>CAGR</video:tag>
      <video:tag>equity curve</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>risk-adjusted return</video:tag>
      <video:tag>numerical stability</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/48rKkAOY_Yw</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/48rKkAOY_Yw/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/48rKkAOY_Yw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Building an IV Surface: Parity Forward, Black-76, 25-Delta Wings</video:title>
      <video:description>How do you turn a noisy option chain into one clean volatility number? In this episode of Inside Kestrel we build an implied volatility surface from scratch: a put-call parity forward, Black-76 inversion, ATM IV, 25-delta risk reversal and butterfly, and constant-maturity IV.</video:description>
      <video:player_loc>https://www.youtube.com/embed/48rKkAOY_Yw</video:player_loc>
      <video:duration>758</video:duration>
      <video:publication_date>2026-10-31T09:37:27.386Z</video:publication_date>
      <video:view_count>12</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>implied volatility</video:tag>
      <video:tag>IV surface</video:tag>
      <video:tag>put-call parity</video:tag>
      <video:tag>forward price</video:tag>
      <video:tag>Black-76</video:tag>
      <video:tag>25 delta risk reversal</video:tag>
      <video:tag>butterfly</video:tag>
      <video:tag>volatility smile</video:tag>
      <video:tag>total variance</video:tag>
      <video:tag>constant maturity volatility</video:tag>
      <video:tag>Nifty options</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>options pricing</video:tag>
      <video:tag>calendar arbitrage</video:tag>
      <video:tag>Inside Kestrel</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/YkKtVWDa2BY</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/YkKtVWDa2BY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/YkKtVWDa2BY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Black-Scholes, Greeks and Implied Volatility by Bisection in C++</video:title>
      <video:description>Why does a production options library solve implied volatility with bisection instead of Newton&apos;s method? We read Kestrel&apos;s Black-Scholes code line by line.</video:description>
      <video:player_loc>https://www.youtube.com/embed/YkKtVWDa2BY</video:player_loc>
      <video:duration>755</video:duration>
      <video:publication_date>2026-10-31T09:37:11.108Z</video:publication_date>
      <video:view_count>1</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>black scholes</video:tag>
      <video:tag>implied volatility</video:tag>
      <video:tag>bisection method</video:tag>
      <video:tag>newton method</video:tag>
      <video:tag>option greeks</video:tag>
      <video:tag>delta gamma vega theta</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>options pricing</video:tag>
      <video:tag>put call parity</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>algorithmic trading platform</video:tag>
      <video:tag>NSE options</video:tag>
      <video:tag>numerical methods</video:tag>
      <video:tag>erfc normal cdf</video:tag>
      <video:tag>no arbitrage bounds</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/l31ennq60ME</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/l31ennq60ME/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/l31ennq60ME/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Indian Cost Model: Brokerage, STT, GST and Every Fee Per Fill</video:title>
      <video:description>A single option trade can look cheap and still pay seven different charges. In this episode of Inside Kestrel we build the Indian cost model line by line.</video:description>
      <video:player_loc>https://www.youtube.com/embed/l31ennq60ME</video:player_loc>
      <video:duration>792</video:duration>
      <video:publication_date>2026-10-31T09:36:57.342Z</video:publication_date>
      <video:view_count>11</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>Indian cost model</video:tag>
      <video:tag>STT</video:tag>
      <video:tag>brokerage</video:tag>
      <video:tag>GST on brokerage</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>backtesting costs</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>transaction charges</video:tag>
      <video:tag>SEBI fee</video:tag>
      <video:tag>stamp duty</video:tag>
      <video:tag>partial fills</video:tag>
      <video:tag>NIFTY options</video:tag>
      <video:tag>NIFTY futures</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>Kestrel</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/nVIKJndn4Is</loc>
    <lastmod>2026-10-31</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/nVIKJndn4Is/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/nVIKJndn4Is/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Simulated Venue: How Kestrel Fills Orders Without Lookahead</video:title>
      <video:description>When exactly does a simulated order fill, and at what price? A backtest that fills at the wrong bar quietly lies to you.</video:description>
      <video:player_loc>https://www.youtube.com/embed/nVIKJndn4Is</video:player_loc>
      <video:duration>740</video:duration>
      <video:publication_date>2026-10-31T09:36:37.868Z</video:publication_date>
      <video:view_count>18</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>backtesting</video:tag>
      <video:tag>lookahead bias</video:tag>
      <video:tag>fill simulation</video:tag>
      <video:tag>simulated venue</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>order matching</video:tag>
      <video:tag>slippage</video:tag>
      <video:tag>limit order</video:tag>
      <video:tag>stop order</video:tag>
      <video:tag>participation rate</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>event-driven engine</video:tag>
      <video:tag>Kestrel</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/Y1bAzh2dNCA</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/Y1bAzh2dNCA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/Y1bAzh2dNCA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Positions and P&amp;L in C++: Average Cost, Flips and Futures Variation Margin</video:title>
      <video:description>How does a trading engine know what you own, what you paid, and what you have made? Kestrel answers with one small function.</video:description>
      <video:player_loc>https://www.youtube.com/embed/Y1bAzh2dNCA</video:player_loc>
      <video:duration>705</video:duration>
      <video:publication_date>2026-10-30T08:40:02.512Z</video:publication_date>
      <video:view_count>10</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>average cost accounting</video:tag>
      <video:tag>position manager</video:tag>
      <video:tag>variation margin</video:tag>
      <video:tag>futures accounting</video:tag>
      <video:tag>realized pnl</video:tag>
      <video:tag>unrealized pnl</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>backtesting engine</video:tag>
      <video:tag>equity identity</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>NSE futures</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>trading system design</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>position flip</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/K82HXlABkK4</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/K82HXlABkK4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/K82HXlABkK4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>OMS and Risk: Normalise, Check, Then Send (Kestrel Code Walkthrough)</video:title>
      <video:description>What happens between an alpha saying &quot;sell 60&quot; and an order reaching a venue? In Kestrel, every order is normalised, risk-checked in a fixed order, and only then sent.</video:description>
      <video:player_loc>https://www.youtube.com/embed/K82HXlABkK4</video:player_loc>
      <video:duration>673</video:duration>
      <video:publication_date>2026-10-30T08:39:46.177Z</video:publication_date>
      <video:view_count>11</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>order management system</video:tag>
      <video:tag>OMS</video:tag>
      <video:tag>risk management</video:tag>
      <video:tag>kill switch</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>state machine</video:tag>
      <video:tag>fat finger</video:tag>
      <video:tag>price collar</video:tag>
      <video:tag>trading engine</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>event-driven</video:tag>
      <video:tag>lot size</video:tag>
      <video:tag>tick size</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/IWycUa9mA7U</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/IWycUa9mA7U/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/IWycUa9mA7U/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel Alpha Framework: Interfaces, Gates and Target Positions</video:title>
      <video:description>How does one C++ strategy object run unchanged in backtest, paper and live trading? Through a narrow interface, a chain of gates, and a habit of trading to targets instead of deltas.</video:description>
      <video:player_loc>https://www.youtube.com/embed/IWycUa9mA7U</video:player_loc>
      <video:duration>770</video:duration>
      <video:publication_date>2026-10-30T08:39:30.404Z</video:publication_date>
      <video:view_count>3</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>trading system design</video:tag>
      <video:tag>alpha framework</video:tag>
      <video:tag>target position</video:tag>
      <video:tag>order gating</video:tag>
      <video:tag>interface design</video:tag>
      <video:tag>fake context testing</video:tag>
      <video:tag>event-driven engine</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>backtesting engine</video:tag>
      <video:tag>idempotent orders</video:tag>
      <video:tag>software architecture</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/uqtCDPxQnqg</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/uqtCDPxQnqg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/uqtCDPxQnqg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Inside Kestrel: The Per-Bar Pipeline, Derived Bars and Expiry</video:title>
      <video:description>One bar arrives. What happens next, and in what order? In this episode we walk through Kestrel&apos;s handleBar pipeline in a C++20 trading engine, and see why the order of steps prevents lookahead bugs.</video:description>
      <video:player_loc>https://www.youtube.com/embed/uqtCDPxQnqg</video:player_loc>
      <video:duration>727</video:duration>
      <video:publication_date>2026-10-30T08:39:14.502Z</video:publication_date>
      <video:view_count>14</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>trading engine</video:tag>
      <video:tag>event-driven architecture</video:tag>
      <video:tag>backtesting</video:tag>
      <video:tag>derived bars</video:tag>
      <video:tag>option expiry</video:tag>
      <video:tag>expiry settlement</video:tag>
      <video:tag>lookahead bias</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>std::variant</video:tag>
      <video:tag>RAII</video:tag>
      <video:tag>paper trading</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ACqV2HMDSWw</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ACqV2HMDSWw/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ACqV2HMDSWw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Event Bus and K-Way Merge: Why Every Backtest Is Bit-Identical</video:title>
      <video:description>Run the same backtest twice and get the exact same bytes. How?</video:description>
      <video:player_loc>https://www.youtube.com/embed/ACqV2HMDSWw</video:player_loc>
      <video:duration>765</video:duration>
      <video:publication_date>2026-10-30T08:38:58.303Z</video:publication_date>
      <video:view_count>15</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>event bus</video:tag>
      <video:tag>k-way merge</video:tag>
      <video:tag>determinism</video:tag>
      <video:tag>backtesting engine</video:tag>
      <video:tag>priority queue</video:tag>
      <video:tag>single thread ownership</video:tag>
      <video:tag>concurrency</video:tag>
      <video:tag>deadlock</video:tag>
      <video:tag>snapshot</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>reproducible backtest</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/CeyDpWRj1Ls</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/CeyDpWRj1Ls/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/CeyDpWRj1Ls/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The History Store: Bar Files That Never Corrupt (Kestrel Ep. 4)</video:title>
      <video:description>What happens to your backtest when a data file is half written, or when every bar is one minute too early? In this episode we open Kestrel&apos;s history store and see how it survives crashes and concurrent writers.</video:description>
      <video:player_loc>https://www.youtube.com/embed/CeyDpWRj1Ls</video:player_loc>
      <video:duration>783</video:duration>
      <video:publication_date>2026-10-30T08:38:43.311Z</video:publication_date>
      <video:view_count>9</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>history store</video:tag>
      <video:tag>backtesting</video:tag>
      <video:tag>market data</video:tag>
      <video:tag>atomic file write</video:tag>
      <video:tag>fsync</video:tag>
      <video:tag>flock</video:tag>
      <video:tag>gzip CSV</video:tag>
      <video:tag>min-heap merge</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>FYERS</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>data engineering</video:tag>
      <video:tag>crash safety</video:tag>
      <video:tag>Manim</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/cPe2E0X15Gc</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/cPe2E0X15Gc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/cPe2E0X15Gc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel Core Vocabulary: Ticks, IST Time and the Run Config</video:title>
      <video:description>Before any engine logic, a trading system needs words it can trust. This episode walks through Kestrel&apos;s base types, the variant-index trick, tick rounding with an epsilon, hand-written IST time, and the three-file run config with its strict validator.</video:description>
      <video:player_loc>https://www.youtube.com/embed/cPe2E0X15Gc</video:player_loc>
      <video:duration>752</video:duration>
      <video:publication_date>2026-10-30T08:38:27.465Z</video:publication_date>
      <video:view_count>3</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>IST time</video:tag>
      <video:tag>tick size</video:tag>
      <video:tag>std::variant</video:tag>
      <video:tag>floating point</video:tag>
      <video:tag>config validation</video:tag>
      <video:tag>event-driven engine</video:tag>
      <video:tag>Indian markets</video:tag>
      <video:tag>FYERS</video:tag>
      <video:tag>quant developer</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>JSON config</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/j-wYUGibQjc</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/j-wYUGibQjc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/j-wYUGibQjc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel Build System: CMake Modules and a Zero-Comment Rule</video:title>
      <video:description>What happens when a C++20 trading codebase enforces its own boundaries? Kestrel turns every directory into a static library, makes dependency cycles impossible by design, and bans comments with a script.</video:description>
      <video:player_loc>https://www.youtube.com/embed/j-wYUGibQjc</video:player_loc>
      <video:duration>751</video:duration>
      <video:publication_date>2026-10-30T08:38:13.204Z</video:publication_date>
      <video:view_count>8</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>CMake tutorial</video:tag>
      <video:tag>C++20</video:tag>
      <video:tag>static libraries</video:tag>
      <video:tag>build system</video:tag>
      <video:tag>dependency graph</video:tag>
      <video:tag>acyclic dependencies</video:tag>
      <video:tag>AddressSanitizer</video:tag>
      <video:tag>UBSan</video:tag>
      <video:tag>compiler warnings</video:tag>
      <video:tag>Werror</video:tag>
      <video:tag>code style</video:tag>
      <video:tag>no comments rule</video:tag>
      <video:tag>C++ project structure</video:tag>
      <video:tag>algorithmic trading platform</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>software architecture</video:tag>
      <video:tag>static initialization</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/EgmlrRIfqY8</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/EgmlrRIfqY8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/EgmlrRIfqY8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Kestrel in One Picture: One Engine, Three Modes</video:title>
      <video:description>What if your backtest and your live trading ran the exact same code? Kestrel, a C++20 trading platform for Indian markets, does exactly that.</video:description>
      <video:player_loc>https://www.youtube.com/embed/EgmlrRIfqY8</video:player_loc>
      <video:duration>756</video:duration>
      <video:publication_date>2026-10-30T08:37:55.905Z</video:publication_date>
      <video:view_count>23</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>C++20</video:tag>
      <video:tag>algorithmic trading</video:tag>
      <video:tag>backtesting</video:tag>
      <video:tag>paper trading</video:tag>
      <video:tag>live trading</video:tag>
      <video:tag>software architecture</video:tag>
      <video:tag>event-driven</video:tag>
      <video:tag>NSE</video:tag>
      <video:tag>BSE</video:tag>
      <video:tag>MCX</video:tag>
      <video:tag>FYERS API</video:tag>
      <video:tag>CMake</video:tag>
      <video:tag>trading engine</video:tag>
      <video:tag>systems programming</video:tag>
      <video:tag>Kestrel</video:tag>
      <video:tag>quant developer</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/5N5y5aq_faE</loc>
    <lastmod>2026-10-30</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/5N5y5aq_faE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/5N5y5aq_faE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Prompt Injection in 50 Seconds: How AI Agents Get Hijacked</video:title>
      <video:description>A web page can secretly give your AI agent orders. Here is prompt injection in 50 seconds, plus two defenses that actually help.</video:description>
      <video:player_loc>https://www.youtube.com/embed/5N5y5aq_faE</video:player_loc>
      <video:duration>53</video:duration>
      <video:publication_date>2026-10-30T08:37:42.256Z</video:publication_date>
      <video:view_count>39</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>prompt injection</video:tag>
      <video:tag>indirect prompt injection</video:tag>
      <video:tag>LLM security</video:tag>
      <video:tag>AI agents</video:tag>
      <video:tag>AI safety</video:tag>
      <video:tag>guardrails</video:tag>
      <video:tag>privilege separation</video:tag>
      <video:tag>human in the loop</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>tool calling</video:tag>
      <video:tag>agent security</video:tag>
      <video:tag>shorts</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>Manim</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/GRGM2xSkTN0</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/GRGM2xSkTN0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/GRGM2xSkTN0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why 95% Accurate AI Agents Still Fail Most Tasks</video:title>
      <video:description>Your agent is right 95 percent of the time per step, so why does it fail so often? Because the errors multiply.</video:description>
      <video:player_loc>https://www.youtube.com/embed/GRGM2xSkTN0</video:player_loc>
      <video:duration>54</video:duration>
      <video:publication_date>2026-10-29T09:49:19.536Z</video:publication_date>
      <video:view_count>13</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>AI agents</video:tag>
      <video:tag>LLM agents</video:tag>
      <video:tag>agent reliability</video:tag>
      <video:tag>compounding errors</video:tag>
      <video:tag>0.95 to the 10</video:tag>
      <video:tag>ReAct</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>tool calling</video:tag>
      <video:tag>agent verification</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>Manim</video:tag>
      <video:tag>prompt engineering</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/3R6ydAxWMn4</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/3R6ydAxWMn4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/3R6ydAxWMn4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>DPO vs RLHF: What Got Removed From Alignment</video:title>
      <video:description>RLHF needs a reward model, PPO, and a lot of moving parts. DPO deletes most of that and trains with one simple loss.</video:description>
      <video:player_loc>https://www.youtube.com/embed/3R6ydAxWMn4</video:player_loc>
      <video:duration>69</video:duration>
      <video:publication_date>2026-10-29T09:49:14.533Z</video:publication_date>
      <video:view_count>130</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>DPO</video:tag>
      <video:tag>RLHF</video:tag>
      <video:tag>direct preference optimization</video:tag>
      <video:tag>PPO</video:tag>
      <video:tag>reward model</video:tag>
      <video:tag>LLM alignment</video:tag>
      <video:tag>fine-tuning</video:tag>
      <video:tag>preference learning</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>Bradley-Terry</video:tag>
      <video:tag>language models</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/LBuQcNXnyy8</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/LBuQcNXnyy8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/LBuQcNXnyy8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>LoRA in One Minute: 16.8 Million Parameters vs 65,536</video:title>
      <video:description>One weight matrix, 16.8 million numbers. LoRA trains just 65,536 of them.</video:description>
      <video:player_loc>https://www.youtube.com/embed/LBuQcNXnyy8</video:player_loc>
      <video:duration>57</video:duration>
      <video:publication_date>2026-10-29T09:49:09.969Z</video:publication_date>
      <video:view_count>228</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LoRA</video:tag>
      <video:tag>low rank adaptation</video:tag>
      <video:tag>fine-tuning</video:tag>
      <video:tag>LLM</video:tag>
      <video:tag>PEFT</video:tag>
      <video:tag>parameter efficient fine-tuning</video:tag>
      <video:tag>low-rank matrices</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>Manim</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>transformers</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/Fv6XxKEjy80</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/Fv6XxKEjy80/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/Fv6XxKEjy80/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Keyword Search Still Beats Embeddings Sometimes</video:title>
      <video:description>Embeddings are powerful, but they can miss an exact error code that old-school BM25 finds instantly.</video:description>
      <video:player_loc>https://www.youtube.com/embed/Fv6XxKEjy80</video:player_loc>
      <video:duration>54</video:duration>
      <video:publication_date>2026-10-29T09:49:05.093Z</video:publication_date>
      <video:view_count>20</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>keyword search</video:tag>
      <video:tag>BM25</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>hybrid search</video:tag>
      <video:tag>reciprocal rank fusion</video:tag>
      <video:tag>RRF</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>dense retrieval</video:tag>
      <video:tag>information retrieval</video:tag>
      <video:tag>error code search</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/7uW_i14xvaY</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/7uW_i14xvaY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/7uW_i14xvaY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Product Quantization: Shrink a 3072-Byte Vector to 96 Bytes</video:title>
      <video:description>One embedding takes 3072 bytes. Product quantization stores it in 96, which is 32 times smaller.</video:description>
      <video:player_loc>https://www.youtube.com/embed/7uW_i14xvaY</video:player_loc>
      <video:duration>65</video:duration>
      <video:publication_date>2026-10-29T09:49:00.008Z</video:publication_date>
      <video:view_count>342</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>product quantization</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>vector database</video:tag>
      <video:tag>ANN</video:tag>
      <video:tag>approximate nearest neighbor</video:tag>
      <video:tag>k-means</video:tag>
      <video:tag>codebook</video:tag>
      <video:tag>compression</video:tag>
      <video:tag>recall</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>faiss</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ibUk_bQsH4Q</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ibUk_bQsH4Q/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ibUk_bQsH4Q/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Cosine vs Dot Product: The Search Ranking Trap</video:title>
      <video:description>Your vector search might be ranking the wrong result, and vector length is why.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ibUk_bQsH4Q</video:player_loc>
      <video:duration>59</video:duration>
      <video:publication_date>2026-10-29T09:48:55.273Z</video:publication_date>
      <video:view_count>160</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>cosine similarity</video:tag>
      <video:tag>dot product</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>normalize embeddings</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>vector database</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>similarity metrics</video:tag>
      <video:tag>nearest neighbor</video:tag>
      <video:tag>shorts</video:tag>
      <video:tag>manim</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/2dy7e5K9mMA</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/2dy7e5K9mMA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/2dy7e5K9mMA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Chatbots Confidently Make Things Up</video:title>
      <video:description>Your chatbot just cited a paper that doesn&apos;t exist. Here&apos;s why.</video:description>
      <video:player_loc>https://www.youtube.com/embed/2dy7e5K9mMA</video:player_loc>
      <video:duration>47</video:duration>
      <video:publication_date>2026-10-29T09:48:50.580Z</video:publication_date>
      <video:view_count>37</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LLM hallucination</video:tag>
      <video:tag>why chatbots lie</video:tag>
      <video:tag>AI makes things up</video:tag>
      <video:tag>fabricated citations</video:tag>
      <video:tag>next token prediction</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>grounding</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>ChatGPT hallucination</video:tag>
      <video:tag>transformers</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/RggtSEH4g9g</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/RggtSEH4g9g/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/RggtSEH4g9g/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why AI Types Slowly: The KV Cache Explained</video:title>
      <video:description>Why does an LLM generate text one word at a time, and why does it get slower as the conversation grows? The answer is the KV cache.</video:description>
      <video:player_loc>https://www.youtube.com/embed/RggtSEH4g9g</video:player_loc>
      <video:duration>54</video:duration>
      <video:publication_date>2026-10-29T09:48:45.735Z</video:publication_date>
      <video:view_count>140</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>KV cache</video:tag>
      <video:tag>LLM inference</video:tag>
      <video:tag>why LLMs are slow</video:tag>
      <video:tag>decoding</video:tag>
      <video:tag>memory bandwidth</video:tag>
      <video:tag>transformer</video:tag>
      <video:tag>attention</video:tag>
      <video:tag>GPT</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>token generation</video:tag>
      <video:tag>GPU memory</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/XpNpP99kQ2I</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/XpNpP99kQ2I/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/XpNpP99kQ2I/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Temperature in 50 Seconds: How LLMs Choose the Next Word</video:title>
      <video:description>Why does an AI answer differently every time? Temperature is the dial behind it.</video:description>
      <video:player_loc>https://www.youtube.com/embed/XpNpP99kQ2I</video:player_loc>
      <video:duration>59</video:duration>
      <video:publication_date>2026-10-29T09:48:40.406Z</video:publication_date>
      <video:view_count>119</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>temperature</video:tag>
      <video:tag>LLM temperature</video:tag>
      <video:tag>softmax</video:tag>
      <video:tag>logits</video:tag>
      <video:tag>sampling</video:tag>
      <video:tag>next token prediction</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>top-p</video:tag>
      <video:tag>top-k</video:tag>
      <video:tag>transformers</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>Manim</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/unxHpAvwR0c</loc>
    <lastmod>2026-10-29</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/unxHpAvwR0c/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/unxHpAvwR0c/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Capstone 4: Deploy a Tool-Using AI Agent to Production (FastAPI, Docker, Guardrails)</video:title>
      <video:description>Build and ship a production-style tool-using agent: tool calling, memory, step and cost budgets, guardrails, human approval, FastAPI streaming, Docker, tracing, CI evals, canary and rollback.</video:description>
      <video:player_loc>https://www.youtube.com/embed/unxHpAvwR0c</video:player_loc>
      <video:duration>770</video:duration>
      <video:publication_date>2026-10-29T09:48:35.806Z</video:publication_date>
      <video:view_count>12</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>ai agent</video:tag>
      <video:tag>tool calling</video:tag>
      <video:tag>llm agents</video:tag>
      <video:tag>fastapi</video:tag>
      <video:tag>docker</video:tag>
      <video:tag>deploy llm</video:tag>
      <video:tag>mcp</video:tag>
      <video:tag>vllm</video:tag>
      <video:tag>prompt injection</video:tag>
      <video:tag>guardrails</video:tag>
      <video:tag>agent budgets</video:tag>
      <video:tag>human in the loop</video:tag>
      <video:tag>llm evals ci</video:tag>
      <video:tag>canary deployment</video:tag>
      <video:tag>generative ai course</video:tag>
      <video:tag>llm engineering</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/zmteR_v5BAo</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/zmteR_v5BAo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/zmteR_v5BAo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Capstone: Fine-Tune a Small Open Model End to End (QLoRA + TRL)</video:title>
      <video:description>Fine-tune a small open model for a narrow task, the right way: baseline first, clean data, QLoRA with TRL, honest evaluation, merge, quantize, and ship with a model card.</video:description>
      <video:player_loc>https://www.youtube.com/embed/zmteR_v5BAo</video:player_loc>
      <video:duration>752</video:duration>
      <video:publication_date>2026-10-28T09:05:41.475Z</video:publication_date>
      <video:view_count>9</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>fine-tuning LLM</video:tag>
      <video:tag>QLoRA</video:tag>
      <video:tag>TRL</video:tag>
      <video:tag>SFT</video:tag>
      <video:tag>LoRA</video:tag>
      <video:tag>DPO</video:tag>
      <video:tag>Hugging Face</video:tag>
      <video:tag>structured extraction</video:tag>
      <video:tag>LLM evaluation</video:tag>
      <video:tag>model card</video:tag>
      <video:tag>merge adapters</video:tag>
      <video:tag>quantization</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>capstone project</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/6T6zVctD2EM</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/6T6zVctD2EM/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/6T6zVctD2EM/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Capstone 2: Build a Repo-Aware Coding Assistant (Python, Sandboxed, Tested)</video:title>
      <video:description>What does it take to build a coding assistant that edits your code and proves it works? In this capstone we build one from scratch in plain Python.</video:description>
      <video:player_loc>https://www.youtube.com/embed/6T6zVctD2EM</video:player_loc>
      <video:duration>785</video:duration>
      <video:publication_date>2026-10-28T09:05:25.083Z</video:publication_date>
      <video:view_count>37</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>coding assistant</video:tag>
      <video:tag>build coding assistant</video:tag>
      <video:tag>LLM agent</video:tag>
      <video:tag>ReAct loop</video:tag>
      <video:tag>AST chunking</video:tag>
      <video:tag>tree-sitter</video:tag>
      <video:tag>hybrid search</video:tag>
      <video:tag>unified diff</video:tag>
      <video:tag>sandbox</video:tag>
      <video:tag>prompt injection</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>Python agent</video:tag>
      <video:tag>tool calling</video:tag>
      <video:tag>code RAG</video:tag>
      <video:tag>AI capstone project</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/8cwn3yn-ooc</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/8cwn3yn-ooc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/8cwn3yn-ooc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Build a Document Q&amp;A RAG Bot: Hybrid Search, Reranking, Citations, Evals</video:title>
      <video:description>Most RAG demos work on three hand-picked questions and fall apart on the fourth. In this capstone we build a document Q&amp;A bot that you can actually trust, and we prove it with an eval set.</video:description>
      <video:player_loc>https://www.youtube.com/embed/8cwn3yn-ooc</video:player_loc>
      <video:duration>854</video:duration>
      <video:publication_date>2026-10-28T09:05:09.409Z</video:publication_date>
      <video:view_count>5</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>RAG tutorial</video:tag>
      <video:tag>document Q&amp;A bot</video:tag>
      <video:tag>build a RAG app</video:tag>
      <video:tag>hybrid search</video:tag>
      <video:tag>reciprocal rank fusion</video:tag>
      <video:tag>cross-encoder reranking</video:tag>
      <video:tag>RAG evaluation</video:tag>
      <video:tag>recall at k</video:tag>
      <video:tag>faithfulness</video:tag>
      <video:tag>FastAPI</video:tag>
      <video:tag>Gradio</video:tag>
      <video:tag>vector database</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>chunking strategies</video:tag>
      <video:tag>citations and abstention</video:tag>
      <video:tag>generative AI course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/i8pR2yRAT4A</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/i8pR2yRAT4A/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/i8pR2yRAT4A/hqdefault.jpg</video:thumbnail_loc>
      <video:title>LLM Guardrails and Prompt Injection: Securing and Monitoring AI in Production</video:title>
      <video:description>Your LLM app passed every eval, so why can one pasted web page make it leak data?</video:description>
      <video:player_loc>https://www.youtube.com/embed/i8pR2yRAT4A</video:player_loc>
      <video:duration>844</video:duration>
      <video:publication_date>2026-10-28T09:04:54.626Z</video:publication_date>
      <video:view_count>22</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>prompt injection</video:tag>
      <video:tag>LLM guardrails</video:tag>
      <video:tag>LLM security</video:tag>
      <video:tag>AI safety</video:tag>
      <video:tag>indirect prompt injection</video:tag>
      <video:tag>LLM monitoring</video:tag>
      <video:tag>LLM observability</video:tag>
      <video:tag>excessive agency</video:tag>
      <video:tag>PII redaction</video:tag>
      <video:tag>jailbreaks</video:tag>
      <video:tag>defense in depth</video:tag>
      <video:tag>canary release</video:tag>
      <video:tag>LLM as judge</video:tag>
      <video:tag>production LLM</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>AI agents security</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/CDgof5l1jDA</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/CDgof5l1jDA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/CDgof5l1jDA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Serving LLMs with vLLM: Continuous Batching and PagedAttention Explained</video:title>
      <video:description>Why does the same GPU serve several times more users with vLLM? Two ideas: continuous batching and PagedAttention.</video:description>
      <video:player_loc>https://www.youtube.com/embed/CDgof5l1jDA</video:player_loc>
      <video:duration>877</video:duration>
      <video:publication_date>2026-10-28T09:04:37.590Z</video:publication_date>
      <video:view_count>2</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>vLLM</video:tag>
      <video:tag>PagedAttention</video:tag>
      <video:tag>continuous batching</video:tag>
      <video:tag>LLM serving</video:tag>
      <video:tag>LLM inference</video:tag>
      <video:tag>KV cache</video:tag>
      <video:tag>GPU memory</video:tag>
      <video:tag>speculative decoding</video:tag>
      <video:tag>tensor parallelism</video:tag>
      <video:tag>chunked prefill</video:tag>
      <video:tag>prefix caching</video:tag>
      <video:tag>OpenAI compatible server</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>inference optimization</video:tag>
      <video:tag>throughput latency</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/7b1C-BeC5wU</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/7b1C-BeC5wU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/7b1C-BeC5wU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Quantization Explained: INT8, INT4, GPTQ and AWQ for LLMs</video:title>
      <video:description>How do you fit a 70 billion parameter model into a fraction of the memory without wrecking it? Quantization.</video:description>
      <video:player_loc>https://www.youtube.com/embed/7b1C-BeC5wU</video:player_loc>
      <video:duration>913</video:duration>
      <video:publication_date>2026-10-28T09:04:20.259Z</video:publication_date>
      <video:view_count>20</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>quantization</video:tag>
      <video:tag>INT8</video:tag>
      <video:tag>INT4</video:tag>
      <video:tag>GPTQ</video:tag>
      <video:tag>AWQ</video:tag>
      <video:tag>LLM quantization</video:tag>
      <video:tag>GGUF</video:tag>
      <video:tag>llama.cpp</video:tag>
      <video:tag>post-training quantization</video:tag>
      <video:tag>FP8</video:tag>
      <video:tag>bitsandbytes</video:tag>
      <video:tag>Hugging Face</video:tag>
      <video:tag>LLM inference</video:tag>
      <video:tag>model compression</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>memory bandwidth</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/NhA_XtqraH0</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/NhA_XtqraH0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/NhA_XtqraH0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Latency and Cost Math for LLM Applications: Predict Your Bill</video:title>
      <video:description>Your LLM demo costs a fraction of a cent. Your production bill says otherwise. Learn the math that explains why.</video:description>
      <video:player_loc>https://www.youtube.com/embed/NhA_XtqraH0</video:player_loc>
      <video:duration>831</video:duration>
      <video:publication_date>2026-10-28T09:04:02.291Z</video:publication_date>
      <video:view_count>0</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LLM latency</video:tag>
      <video:tag>LLM cost</video:tag>
      <video:tag>time to first token</video:tag>
      <video:tag>TTFT</video:tag>
      <video:tag>tokens per second</video:tag>
      <video:tag>prompt caching</video:tag>
      <video:tag>LLM pricing</video:tag>
      <video:tag>RAG cost</video:tag>
      <video:tag>AI agent cost</video:tag>
      <video:tag>p95 latency</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>streaming LLM</video:tag>
      <video:tag>model routing</video:tag>
      <video:tag>token pricing</video:tag>
      <video:tag>LLM optimization</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/TqUMJN2kYFI</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/TqUMJN2kYFI/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/TqUMJN2kYFI/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Model Context Protocol (MCP) Explained: One Standard for AI Tools</video:title>
      <video:description>Every AI app needs tools, and every tool needs every app. MCP is the open protocol that turns that mess into one clean standard.</video:description>
      <video:player_loc>https://www.youtube.com/embed/TqUMJN2kYFI</video:player_loc>
      <video:duration>804</video:duration>
      <video:publication_date>2026-10-28T09:03:48.017Z</video:publication_date>
      <video:view_count>125</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>MCP</video:tag>
      <video:tag>Model Context Protocol</video:tag>
      <video:tag>LLM tools</video:tag>
      <video:tag>AI agents</video:tag>
      <video:tag>function calling</video:tag>
      <video:tag>JSON-RPC</video:tag>
      <video:tag>MCP server</video:tag>
      <video:tag>Python MCP SDK</video:tag>
      <video:tag>tool poisoning</video:tag>
      <video:tag>prompt injection</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>stdio transport</video:tag>
      <video:tag>streamable HTTP</video:tag>
      <video:tag>agent security</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/oBs2xT2_gJU</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/oBs2xT2_gJU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/oBs2xT2_gJU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Multi-Agent Systems: When They Help and When They Hurt</video:title>
      <video:description>More agents is not automatically better. Learn when splitting work across agents pays off, and when one agent wins.</video:description>
      <video:player_loc>https://www.youtube.com/embed/oBs2xT2_gJU</video:player_loc>
      <video:duration>775</video:duration>
      <video:publication_date>2026-10-28T09:03:34.282Z</video:publication_date>
      <video:view_count>39</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>multi-agent systems</video:tag>
      <video:tag>LLM agents</video:tag>
      <video:tag>orchestrator worker</video:tag>
      <video:tag>agent orchestration</video:tag>
      <video:tag>AI agents tutorial</video:tag>
      <video:tag>supervisor agent</video:tag>
      <video:tag>agent handoffs</video:tag>
      <video:tag>context isolation</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>agent cost analysis</video:tag>
      <video:tag>python agents</video:tag>
      <video:tag>critic agent</video:tag>
      <video:tag>parallel agents</video:tag>
      <video:tag>single agent vs multi agent</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/bz2vS3a1_TM</loc>
    <lastmod>2026-10-28</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/bz2vS3a1_TM/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/bz2vS3a1_TM/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Agent Memory Explained: Short-Term, Long-Term and Context Management</video:title>
      <video:description>Your agent forgets everything the moment the context window closes. Here is how to fix that.</video:description>
      <video:player_loc>https://www.youtube.com/embed/bz2vS3a1_TM</video:player_loc>
      <video:duration>789</video:duration>
      <video:publication_date>2026-10-28T09:03:19.903Z</video:publication_date>
      <video:view_count>4</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>agent memory</video:tag>
      <video:tag>LLM agents</video:tag>
      <video:tag>context engineering</video:tag>
      <video:tag>short-term memory</video:tag>
      <video:tag>long-term memory</video:tag>
      <video:tag>vector store memory</video:tag>
      <video:tag>conversation summarization</video:tag>
      <video:tag>context window</video:tag>
      <video:tag>prompt caching</video:tag>
      <video:tag>RAG vs memory</video:tag>
      <video:tag>AI agents tutorial</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>sliding window memory</video:tag>
      <video:tag>episodic memory</video:tag>
      <video:tag>compaction</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/IJum0tlGedQ</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/IJum0tlGedQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/IJum0tlGedQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The ReAct Loop, Planning and Reflection: How AI Agents Actually Think</video:title>
      <video:description>Build an AI agent from scratch: the ReAct loop explained, plus planning, reflection and the failure modes that sink real agents.</video:description>
      <video:player_loc>https://www.youtube.com/embed/IJum0tlGedQ</video:player_loc>
      <video:duration>798</video:duration>
      <video:publication_date>2026-10-27T10:15:07.536Z</video:publication_date>
      <video:view_count>367</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>ReAct agent</video:tag>
      <video:tag>ReAct loop</video:tag>
      <video:tag>AI agents</video:tag>
      <video:tag>LLM agents</video:tag>
      <video:tag>agent planning</video:tag>
      <video:tag>reflection</video:tag>
      <video:tag>Reflexion</video:tag>
      <video:tag>self-critique</video:tag>
      <video:tag>tool calling</video:tag>
      <video:tag>agent from scratch</video:tag>
      <video:tag>Python agent tutorial</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>plan and execute</video:tag>
      <video:tag>agent failure modes</video:tag>
      <video:tag>max steps agent</video:tag>
      <video:tag>agent trace logging</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/5BBBJGuUpmY</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/5BBBJGuUpmY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/5BBBJGuUpmY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Tool and Function Calling: How LLMs Actually Use Tools</video:title>
      <video:description>A language model can only write text, so how does it check the weather, do exact math, or call your API? The answer is tool calling: the model writes a request, and your code acts.</video:description>
      <video:player_loc>https://www.youtube.com/embed/5BBBJGuUpmY</video:player_loc>
      <video:duration>791</video:duration>
      <video:publication_date>2026-10-27T10:14:53.778Z</video:publication_date>
      <video:view_count>8</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>tool calling</video:tag>
      <video:tag>function calling</video:tag>
      <video:tag>LLM tools</video:tag>
      <video:tag>AI agents</video:tag>
      <video:tag>JSON schema</video:tag>
      <video:tag>Pydantic</video:tag>
      <video:tag>parallel tool calls</video:tag>
      <video:tag>constrained decoding</video:tag>
      <video:tag>prompt injection</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>python tool loop</video:tag>
      <video:tag>structured output</video:tag>
      <video:tag>agent tools</video:tag>
      <video:tag>tool use LLM</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/3X79mWN6jH4</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/3X79mWN6jH4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/3X79mWN6jH4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Fine-Tune vs RAG vs Prompt: How to Decide (A Practical Framework)</video:title>
      <video:description>Should you prompt, retrieve, or fine-tune? Most teams pick the wrong tool first. This lesson gives you a clear decision ladder, a cost comparison with hypothetical prices, four case studies, and Python code to decide with evidence.</video:description>
      <video:player_loc>https://www.youtube.com/embed/3X79mWN6jH4</video:player_loc>
      <video:duration>771</video:duration>
      <video:publication_date>2026-10-27T10:14:39.127Z</video:publication_date>
      <video:view_count>8</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>fine-tuning vs RAG</video:tag>
      <video:tag>RAG vs fine-tuning</video:tag>
      <video:tag>prompt engineering</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>when to fine-tune</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>LoRA</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM cost comparison</video:tag>
      <video:tag>model distillation</video:tag>
      <video:tag>LLM evaluation</video:tag>
      <video:tag>structured output</video:tag>
      <video:tag>AI tutorial</video:tag>
      <video:tag>decision framework</video:tag>
      <video:tag>few-shot prompting</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/FrgRkrSXLfE</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/FrgRkrSXLfE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/FrgRkrSXLfE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>DPO Derived: Preference Optimization Without RL</video:title>
      <video:description>What if you could get the benefits of RLHF with a single, simple classification-style loss? In this lesson we derive Direct Preference Optimization from scratch.</video:description>
      <video:player_loc>https://www.youtube.com/embed/FrgRkrSXLfE</video:player_loc>
      <video:duration>859</video:duration>
      <video:publication_date>2026-10-27T10:14:25.585Z</video:publication_date>
      <video:view_count>7</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>DPO</video:tag>
      <video:tag>direct preference optimization</video:tag>
      <video:tag>RLHF</video:tag>
      <video:tag>PPO</video:tag>
      <video:tag>preference optimization</video:tag>
      <video:tag>LLM alignment</video:tag>
      <video:tag>Bradley-Terry</video:tag>
      <video:tag>KL divergence</video:tag>
      <video:tag>TRL DPOTrainer</video:tag>
      <video:tag>reward model</video:tag>
      <video:tag>fine-tuning LLM</video:tag>
      <video:tag>IPO</video:tag>
      <video:tag>KTO</video:tag>
      <video:tag>ORPO</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>PyTorch</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/1TtwvD2JivM</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/1TtwvD2JivM/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/1TtwvD2JivM/hqdefault.jpg</video:thumbnail_loc>
      <video:title>RLHF Explained: Reward Models, KL Penalty and PPO Step by Step</video:title>
      <video:description>How does a raw language model become a helpful assistant? Reinforcement learning from human feedback, explained with real numbers.</video:description>
      <video:player_loc>https://www.youtube.com/embed/1TtwvD2JivM</video:player_loc>
      <video:duration>902</video:duration>
      <video:publication_date>2026-10-27T10:14:11.584Z</video:publication_date>
      <video:view_count>16</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>RLHF</video:tag>
      <video:tag>reinforcement learning from human feedback</video:tag>
      <video:tag>reward model</video:tag>
      <video:tag>PPO</video:tag>
      <video:tag>proximal policy optimization</video:tag>
      <video:tag>Bradley-Terry</video:tag>
      <video:tag>KL divergence</video:tag>
      <video:tag>reward hacking</video:tag>
      <video:tag>sycophancy</video:tag>
      <video:tag>LLM alignment</video:tag>
      <video:tag>instruction tuning</video:tag>
      <video:tag>GRPO</video:tag>
      <video:tag>RLVR</video:tag>
      <video:tag>DPO</video:tag>
      <video:tag>PyTorch</video:tag>
      <video:tag>fine-tuning LLMs</video:tag>
      <video:tag>InstructGPT</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ZfeWoghxgII</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ZfeWoghxgII/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ZfeWoghxgII/hqdefault.jpg</video:thumbnail_loc>
      <video:title>QLoRA Explained: Fine-Tune a 7B Model on One GPU with 4-Bit Quantization</video:title>
      <video:description>A 7 billion parameter model needs over 100 gigabytes to fine-tune the normal way. QLoRA does it in a fraction of that. Here is exactly how.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ZfeWoghxgII</video:player_loc>
      <video:duration>775</video:duration>
      <video:publication_date>2026-10-27T10:13:57.686Z</video:publication_date>
      <video:view_count>44</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>QLoRA</video:tag>
      <video:tag>quantized training</video:tag>
      <video:tag>LoRA</video:tag>
      <video:tag>NF4</video:tag>
      <video:tag>4-bit quantization</video:tag>
      <video:tag>bitsandbytes</video:tag>
      <video:tag>PEFT</video:tag>
      <video:tag>TRL</video:tag>
      <video:tag>fine-tune LLM</video:tag>
      <video:tag>double quantization</video:tag>
      <video:tag>paged optimizers</video:tag>
      <video:tag>gradient checkpointing</video:tag>
      <video:tag>bf16 mixed precision</video:tag>
      <video:tag>LLM fine-tuning memory</video:tag>
      <video:tag>Adam optimizer memory</video:tag>
      <video:tag>generative AI course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/0FyEOCwDgts</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/0FyEOCwDgts/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/0FyEOCwDgts/hqdefault.jpg</video:thumbnail_loc>
      <video:title>LoRA Math Explained: Low-Rank Adaptation Derived From Scratch</video:title>
      <video:description>Fine-tune a huge model by training less than half a percent of one weight matrix? Here is exactly why LoRA works.</video:description>
      <video:player_loc>https://www.youtube.com/embed/0FyEOCwDgts</video:player_loc>
      <video:duration>890</video:duration>
      <video:publication_date>2026-10-27T10:13:44.539Z</video:publication_date>
      <video:view_count>15</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LoRA</video:tag>
      <video:tag>low-rank adaptation</video:tag>
      <video:tag>LoRA explained</video:tag>
      <video:tag>LoRA math</video:tag>
      <video:tag>PEFT</video:tag>
      <video:tag>parameter efficient fine-tuning</video:tag>
      <video:tag>fine-tuning LLM</video:tag>
      <video:tag>PyTorch LoRA</video:tag>
      <video:tag>Hugging Face PEFT</video:tag>
      <video:tag>LoRA from scratch</video:tag>
      <video:tag>rank and alpha</video:tag>
      <video:tag>merge LoRA adapter</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>matrix factorization</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/u8pitUokrfE</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/u8pitUokrfE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/u8pitUokrfE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Supervised Fine-Tuning Explained: Chat Templates, Loss Masking and Code</video:title>
      <video:description>How does a model that only predicts the next token become an assistant that follows instructions? In this lesson we build supervised fine-tuning from the ground up.</video:description>
      <video:player_loc>https://www.youtube.com/embed/u8pitUokrfE</video:player_loc>
      <video:duration>707</video:duration>
      <video:publication_date>2026-10-27T10:13:30.136Z</video:publication_date>
      <video:view_count>2</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>supervised fine-tuning</video:tag>
      <video:tag>SFT</video:tag>
      <video:tag>instruction tuning</video:tag>
      <video:tag>chat template</video:tag>
      <video:tag>loss masking</video:tag>
      <video:tag>TRL</video:tag>
      <video:tag>SFTTrainer</video:tag>
      <video:tag>Hugging Face</video:tag>
      <video:tag>LLM fine-tuning</video:tag>
      <video:tag>catastrophic forgetting</video:tag>
      <video:tag>cross-entropy</video:tag>
      <video:tag>ignore_index -100</video:tag>
      <video:tag>synthetic data</video:tag>
      <video:tag>instruction dataset</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/uActEaJAYkk</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/uActEaJAYkk/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/uActEaJAYkk/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Evaluating RAG: Metrics, Test Sets and 8 Failure Modes</video:title>
      <video:description>Your RAG demo looks great, so why does it fail in production? Because you are probably judging it by eyeballing a few answers.</video:description>
      <video:player_loc>https://www.youtube.com/embed/uActEaJAYkk</video:player_loc>
      <video:duration>746</video:duration>
      <video:publication_date>2026-10-27T10:13:16.951Z</video:publication_date>
      <video:view_count>17</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>RAG evaluation</video:tag>
      <video:tag>evaluating RAG</video:tag>
      <video:tag>RAG failure modes</video:tag>
      <video:tag>recall at k</video:tag>
      <video:tag>MRR</video:tag>
      <video:tag>nDCG</video:tag>
      <video:tag>faithfulness</video:tag>
      <video:tag>LLM as a judge</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>RAG test set</video:tag>
      <video:tag>context precision</video:tag>
      <video:tag>context recall</video:tag>
      <video:tag>answer relevance</video:tag>
      <video:tag>lost in the middle</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/D5GscpT1ars</loc>
    <lastmod>2026-10-27</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/D5GscpT1ars/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/D5GscpT1ars/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Hybrid Search Explained: BM25 + Dense Vectors with Reciprocal Rank Fusion</video:title>
      <video:description>Your vector search just missed an exact error code. Here is why, and how hybrid search fixes it.</video:description>
      <video:player_loc>https://www.youtube.com/embed/D5GscpT1ars</video:player_loc>
      <video:duration>790</video:duration>
      <video:publication_date>2026-10-27T10:13:03.321Z</video:publication_date>
      <video:view_count>38</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>hybrid search</video:tag>
      <video:tag>BM25</video:tag>
      <video:tag>reciprocal rank fusion</video:tag>
      <video:tag>RRF</video:tag>
      <video:tag>dense retrieval</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>rank_bm25</video:tag>
      <video:tag>SPLADE</video:tag>
      <video:tag>sparse retrieval</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>information retrieval</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>keyword search</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/jjll_YlwJn0</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/jjll_YlwJn0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/jjll_YlwJn0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Reranking with Cross-Encoders: The Cheap Trick That Fixes RAG Search</video:title>
      <video:description>Your vector search finds roughly the right documents, but the best one is stuck at rank 7. Cross-encoder reranking fixes that.</video:description>
      <video:player_loc>https://www.youtube.com/embed/jjll_YlwJn0</video:player_loc>
      <video:duration>826</video:duration>
      <video:publication_date>2026-10-26T08:35:46.204Z</video:publication_date>
      <video:view_count>5</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>reranking</video:tag>
      <video:tag>cross-encoder</video:tag>
      <video:tag>bi-encoder</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>sentence-transformers</video:tag>
      <video:tag>ColBERT</video:tag>
      <video:tag>late interaction</video:tag>
      <video:tag>MRR</video:tag>
      <video:tag>recall at k</video:tag>
      <video:tag>two-stage retrieval</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM reranker</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/T2bEWLvGz7M</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/T2bEWLvGz7M/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/T2bEWLvGz7M/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Retrieval and Query Rewriting: Fix RAG Before It Fails</video:title>
      <video:description>Your RAG bot has the right document and still answers wrong. The problem is often the query, not the index.</video:description>
      <video:player_loc>https://www.youtube.com/embed/T2bEWLvGz7M</video:player_loc>
      <video:duration>879</video:duration>
      <video:publication_date>2026-10-26T08:35:32.944Z</video:publication_date>
      <video:view_count>22</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>RAG</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>query rewriting</video:tag>
      <video:tag>HyDE</video:tag>
      <video:tag>hypothetical document embeddings</video:tag>
      <video:tag>MMR</video:tag>
      <video:tag>maximal marginal relevance</video:tag>
      <video:tag>multi-query retrieval</video:tag>
      <video:tag>query decomposition</video:tag>
      <video:tag>query routing</video:tag>
      <video:tag>step-back prompting</video:tag>
      <video:tag>top-k retrieval</video:tag>
      <video:tag>metadata filtering</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>generative AI course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/N6x7Wnjq9SQ</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/N6x7Wnjq9SQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/N6x7Wnjq9SQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Chunking Strategies for RAG: How to Split Documents Right</video:title>
      <video:description>Your RAG system can only find what you chunked well. Learn fixed-size, recursive, structure-aware, semantic and parent-document chunking, with real numbers and Python.</video:description>
      <video:player_loc>https://www.youtube.com/embed/N6x7Wnjq9SQ</video:player_loc>
      <video:duration>821</video:duration>
      <video:publication_date>2026-10-26T08:35:18.812Z</video:publication_date>
      <video:view_count>155</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>RAG</video:tag>
      <video:tag>chunking</video:tag>
      <video:tag>chunking strategies</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>recursive character splitting</video:tag>
      <video:tag>semantic chunking</video:tag>
      <video:tag>parent document retriever</video:tag>
      <video:tag>small to big retrieval</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>text splitting</video:tag>
      <video:tag>contextual retrieval</video:tag>
      <video:tag>document parsing</video:tag>
      <video:tag>generative AI course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/jnQoARknUXg</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/jnQoARknUXg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/jnQoARknUXg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>RAG Explained: How to Ground LLMs in Your Own Data</video:title>
      <video:description>What if your LLM could look up the answer instead of guessing it?</video:description>
      <video:player_loc>https://www.youtube.com/embed/jnQoARknUXg</video:player_loc>
      <video:duration>747</video:duration>
      <video:publication_date>2026-10-26T08:35:05.063Z</video:publication_date>
      <video:view_count>79</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>RAG</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>LLM</video:tag>
      <video:tag>grounding LLMs</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>hallucination</video:tag>
      <video:tag>knowledge cutoff</video:tag>
      <video:tag>prompt template</video:tag>
      <video:tag>citations</video:tag>
      <video:tag>python RAG</video:tag>
      <video:tag>RAG from scratch</video:tag>
      <video:tag>AI engineering</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>vector database</video:tag>
      <video:tag>chatbot with documents</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ZtTkvM-SGBM</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ZtTkvM-SGBM/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ZtTkvM-SGBM/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Vector Databases in Practice: Filtering, Sizing, and Real Code</video:title>
      <video:description>An ANN index is not a database. Learn what a vector database really adds, and how to use one well.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ZtTkvM-SGBM</video:player_loc>
      <video:duration>794</video:duration>
      <video:publication_date>2026-10-26T08:34:50.735Z</video:publication_date>
      <video:view_count>6</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>vector database</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>pgvector</video:tag>
      <video:tag>Chroma</video:tag>
      <video:tag>LanceDB</video:tag>
      <video:tag>FAISS</video:tag>
      <video:tag>metadata filtering</video:tag>
      <video:tag>HNSW</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>multi-tenancy</video:tag>
      <video:tag>vector database tutorial</video:tag>
      <video:tag>approximate nearest neighbor</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/744E2X-idks</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/744E2X-idks/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/744E2X-idks/hqdefault.jpg</video:thumbnail_loc>
      <video:title>ANN Indexes Explained: HNSW, IVF and Product Quantization</video:title>
      <video:description>How do vector databases search millions of embeddings in milliseconds? Learn how HNSW graphs, IVF clustering and product quantization trade a little recall for huge speed and memory savings.</video:description>
      <video:player_loc>https://www.youtube.com/embed/744E2X-idks</video:player_loc>
      <video:duration>929</video:duration>
      <video:publication_date>2026-10-26T08:34:35.072Z</video:publication_date>
      <video:view_count>37</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>ANN index</video:tag>
      <video:tag>HNSW</video:tag>
      <video:tag>IVF</video:tag>
      <video:tag>product quantization</video:tag>
      <video:tag>FAISS</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>approximate nearest neighbor</video:tag>
      <video:tag>vector database</video:tag>
      <video:tag>recall@10</video:tag>
      <video:tag>nprobe</video:tag>
      <video:tag>efSearch</video:tag>
      <video:tag>IVFPQ</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>hnswlib</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/m3l8mcvY2d4</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/m3l8mcvY2d4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/m3l8mcvY2d4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Cosine vs Dot Product: How Exact Vector Search Really Works</video:title>
      <video:description>Your vector search can return the wrong results even when the embedding model is perfect. The cause is often a mismatch between dot product, cosine similarity and Euclidean distance.</video:description>
      <video:player_loc>https://www.youtube.com/embed/m3l8mcvY2d4</video:player_loc>
      <video:duration>783</video:duration>
      <video:publication_date>2026-10-26T08:34:20.241Z</video:publication_date>
      <video:view_count>43</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>cosine similarity</video:tag>
      <video:tag>dot product</video:tag>
      <video:tag>euclidean distance</video:tag>
      <video:tag>nearest neighbor search</video:tag>
      <video:tag>k-NN</video:tag>
      <video:tag>vector search</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>brute force search</video:tag>
      <video:tag>curse of dimensionality</video:tag>
      <video:tag>recall at k</video:tag>
      <video:tag>numpy</video:tag>
      <video:tag>PyTorch</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>normalization</video:tag>
      <video:tag>FAISS</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/EYVVDHaVXxY</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/EYVVDHaVXxY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/EYVVDHaVXxY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Sentence Embeddings and Contrastive Training: How Meaning Becomes Math</video:title>
      <video:description>How does a computer know that &quot;How do I reset my password?&quot; and &quot;I forgot my login&quot; mean the same thing? Sentence embeddings turn text into points in space, and contrastive training teaches them where to go.</video:description>
      <video:player_loc>https://www.youtube.com/embed/EYVVDHaVXxY</video:player_loc>
      <video:duration>767</video:duration>
      <video:publication_date>2026-10-26T08:34:07.622Z</video:publication_date>
      <video:view_count>16</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>sentence embeddings</video:tag>
      <video:tag>contrastive learning</video:tag>
      <video:tag>InfoNCE</video:tag>
      <video:tag>in-batch negatives</video:tag>
      <video:tag>sentence-transformers</video:tag>
      <video:tag>text embeddings</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>pooling</video:tag>
      <video:tag>mean pooling</video:tag>
      <video:tag>Matryoshka embeddings</video:tag>
      <video:tag>hard negatives</video:tag>
      <video:tag>temperature</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>PyTorch</video:tag>
      <video:tag>vector search</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/sJRSjP-zGWk</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/sJRSjP-zGWk/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/sJRSjP-zGWk/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Structured Output and Evaluating Prompts Like Real Software</video:title>
      <video:description>Your LLM works in the demo, then breaks your parser in production. Here is how to fix both problems.</video:description>
      <video:player_loc>https://www.youtube.com/embed/sJRSjP-zGWk</video:player_loc>
      <video:duration>914</video:duration>
      <video:publication_date>2026-10-26T08:33:52.664Z</video:publication_date>
      <video:view_count>4</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>structured output</video:tag>
      <video:tag>json mode</video:tag>
      <video:tag>llm structured output</video:tag>
      <video:tag>pydantic</video:tag>
      <video:tag>schema constrained decoding</video:tag>
      <video:tag>constrained decoding</video:tag>
      <video:tag>prompt evaluation</video:tag>
      <video:tag>llm evals</video:tag>
      <video:tag>llm as judge</video:tag>
      <video:tag>golden dataset</video:tag>
      <video:tag>prompt engineering</video:tag>
      <video:tag>regression testing prompts</video:tag>
      <video:tag>a/b testing prompts</video:tag>
      <video:tag>generative ai course</video:tag>
      <video:tag>llm engineering</video:tag>
      <video:tag>function calling json</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/YY8UJ1Y8vJ8</loc>
    <lastmod>2026-10-26</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/YY8UJ1Y8vJ8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/YY8UJ1Y8vJ8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Chain-of-Thought and Reasoning Models: How LLMs Learn to Think</video:title>
      <video:description>Why does asking a model to think step by step change its answers? This lesson explains chain-of-thought prompting, self-consistency voting with a worked probability example, tree search ideas, and how reasoning models use reinforcement learning and test-time compute.</video:description>
      <video:player_loc>https://www.youtube.com/embed/YY8UJ1Y8vJ8</video:player_loc>
      <video:duration>768</video:duration>
      <video:publication_date>2026-10-26T08:33:38.783Z</video:publication_date>
      <video:view_count>27</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>chain of thought</video:tag>
      <video:tag>reasoning models</video:tag>
      <video:tag>LLM reasoning</video:tag>
      <video:tag>self-consistency</video:tag>
      <video:tag>test-time compute</video:tag>
      <video:tag>prompt engineering</video:tag>
      <video:tag>think step by step</video:tag>
      <video:tag>reinforcement learning verifiable rewards</video:tag>
      <video:tag>thinking budget</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>majority vote LLM</video:tag>
      <video:tag>tree of thoughts</video:tag>
      <video:tag>chain of thought faithfulness</video:tag>
      <video:tag>AI explained</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/IqdOibMocJc</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/IqdOibMocJc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/IqdOibMocJc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Few-Shot Prompting and In-Context Learning Explained (With Code)</video:title>
      <video:description>What if you could teach a language model a brand new task without changing a single weight? That is in-context learning, and it is the engine behind few-shot prompting.</video:description>
      <video:player_loc>https://www.youtube.com/embed/IqdOibMocJc</video:player_loc>
      <video:duration>739</video:duration>
      <video:publication_date>2026-10-25T05:15:01.452Z</video:publication_date>
      <video:view_count>19</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>few-shot prompting</video:tag>
      <video:tag>in-context learning</video:tag>
      <video:tag>zero-shot prompting</video:tag>
      <video:tag>one-shot prompting</video:tag>
      <video:tag>prompt engineering</video:tag>
      <video:tag>LLM</video:tag>
      <video:tag>large language models</video:tag>
      <video:tag>kNN example selection</video:tag>
      <video:tag>dynamic few-shot</video:tag>
      <video:tag>TF-IDF</video:tag>
      <video:tag>prompt caching</video:tag>
      <video:tag>recency bias</video:tag>
      <video:tag>label bias</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>text classification with LLM</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/S_9qB8jhqGk</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/S_9qB8jhqGk/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/S_9qB8jhqGk/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Prompt Patterns and System Prompts: Programming in Plain English</video:title>
      <video:description>Prompting is programming with natural language specs. Learn the patterns that make LLM output reliable.</video:description>
      <video:player_loc>https://www.youtube.com/embed/S_9qB8jhqGk</video:player_loc>
      <video:duration>769</video:duration>
      <video:publication_date>2026-10-25T05:14:45.664Z</video:publication_date>
      <video:view_count>2</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>prompt engineering</video:tag>
      <video:tag>system prompt</video:tag>
      <video:tag>LLM</video:tag>
      <video:tag>prompt patterns</video:tag>
      <video:tag>chat messages</video:tag>
      <video:tag>instruction hierarchy</video:tag>
      <video:tag>prompt templates</video:tag>
      <video:tag>Jinja</video:tag>
      <video:tag>Python LLM</video:tag>
      <video:tag>prompt injection</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>structured prompts</video:tag>
      <video:tag>support email classifier</video:tag>
      <video:tag>delimiters</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/zalzq8lOAKk</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/zalzq8lOAKk/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/zalzq8lOAKk/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why LLMs Hallucinate (and What Actually Helps)</video:title>
      <video:description>Why does a language model confidently invent facts, names and citations? Because it is trained to produce plausible text, not true text.</video:description>
      <video:player_loc>https://www.youtube.com/embed/zalzq8lOAKk</video:player_loc>
      <video:duration>702</video:duration>
      <video:publication_date>2026-10-25T05:14:32.189Z</video:publication_date>
      <video:view_count>7</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LLM hallucination</video:tag>
      <video:tag>why LLMs hallucinate</video:tag>
      <video:tag>AI hallucinations explained</video:tag>
      <video:tag>self-consistency</video:tag>
      <video:tag>large language models</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>reduce hallucination</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>calibration</video:tag>
      <video:tag>temperature sampling</video:tag>
      <video:tag>fabricated citations</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>ChatGPT hallucination</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>grounding</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/uJLSDw2xJ4w</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/uJLSDw2xJ4w/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/uJLSDw2xJ4w/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The KV Cache Explained: Why LLM Decoding Is Memory-Bound</video:title>
      <video:description>Why does a GPU that can do hundreds of trillions of operations per second still crawl through text one token at a time? The answer is the KV cache and memory bandwidth.</video:description>
      <video:player_loc>https://www.youtube.com/embed/uJLSDw2xJ4w</video:player_loc>
      <video:duration>813</video:duration>
      <video:publication_date>2026-10-25T05:14:18.975Z</video:publication_date>
      <video:view_count>145</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>KV cache</video:tag>
      <video:tag>LLM inference</video:tag>
      <video:tag>memory-bound</video:tag>
      <video:tag>decoding</video:tag>
      <video:tag>prefill and decode</video:tag>
      <video:tag>roofline model</video:tag>
      <video:tag>arithmetic intensity</video:tag>
      <video:tag>grouped-query attention</video:tag>
      <video:tag>multi-query attention</video:tag>
      <video:tag>transformer</video:tag>
      <video:tag>PyTorch</video:tag>
      <video:tag>Hugging Face</video:tag>
      <video:tag>GPU memory bandwidth</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>sliding window attention</video:tag>
      <video:tag>cache quantization</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/oPNrMkhFJGg</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/oPNrMkhFJGg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/oPNrMkhFJGg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Context Windows and RoPE Explained: How LLMs Know Word Order</video:title>
      <video:description>How does a Transformer know which word came first? We derive Rotary Position Embeddings (RoPE) from scratch, work a 2D example with real numbers, and verify the relative-position property in PyTorch.</video:description>
      <video:player_loc>https://www.youtube.com/embed/oPNrMkhFJGg</video:player_loc>
      <video:duration>838</video:duration>
      <video:publication_date>2026-10-25T05:14:02.970Z</video:publication_date>
      <video:view_count>49</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>RoPE</video:tag>
      <video:tag>rotary position embedding</video:tag>
      <video:tag>positional encoding</video:tag>
      <video:tag>context window</video:tag>
      <video:tag>long context</video:tag>
      <video:tag>transformer</video:tag>
      <video:tag>LLM</video:tag>
      <video:tag>attention</video:tag>
      <video:tag>position interpolation</video:tag>
      <video:tag>YaRN</video:tag>
      <video:tag>ALiBi</video:tag>
      <video:tag>lost in the middle</video:tag>
      <video:tag>PyTorch</video:tag>
      <video:tag>generative AI</video:tag>
      <video:tag>LLM engineering</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/r3LnXDOJZ_8</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/r3LnXDOJZ_8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/r3LnXDOJZ_8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Sampling Explained: Greedy, Temperature, Top-k, Top-p (With Numbers)</video:title>
      <video:description>Why does the same LLM sound robotic in one app and wildly creative in another? The answer is not in the model. It is in how we pick the next token.</video:description>
      <video:player_loc>https://www.youtube.com/embed/r3LnXDOJZ_8</video:player_loc>
      <video:duration>783</video:duration>
      <video:publication_date>2026-10-25T05:13:48.891Z</video:publication_date>
      <video:view_count>66</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>llm sampling</video:tag>
      <video:tag>temperature softmax</video:tag>
      <video:tag>top-p sampling</video:tag>
      <video:tag>nucleus sampling</video:tag>
      <video:tag>top-k sampling</video:tag>
      <video:tag>greedy decoding</video:tag>
      <video:tag>min-p sampling</video:tag>
      <video:tag>beam search</video:tag>
      <video:tag>repetition penalty</video:tag>
      <video:tag>logits</video:tag>
      <video:tag>softmax temperature</video:tag>
      <video:tag>pytorch sampling</video:tag>
      <video:tag>hugging face generate</video:tag>
      <video:tag>generative ai course</video:tag>
      <video:tag>llm engineering</video:tag>
      <video:tag>llm determinism</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/vItWq_4QhSE</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/vItWq_4QhSE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/vItWq_4QhSE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Scaling Laws Explained: Why Bigger Models Keep Getting Better</video:title>
      <video:description>Why does making a language model bigger keep making it better, and so predictably? In this lesson we unpack scaling laws: power laws, the compute rule C ≈ 6ND, a worked GPU-days estimate for a 7B model, Chinchilla vs Kaplan, and why modern small models are over-trained.</video:description>
      <video:player_loc>https://www.youtube.com/embed/vItWq_4QhSE</video:player_loc>
      <video:duration>754</video:duration>
      <video:publication_date>2026-10-25T05:13:30.776Z</video:publication_date>
      <video:view_count>7</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>scaling laws</video:tag>
      <video:tag>LLM scaling laws</video:tag>
      <video:tag>Chinchilla</video:tag>
      <video:tag>Kaplan scaling laws</video:tag>
      <video:tag>compute optimal training</video:tag>
      <video:tag>power law</video:tag>
      <video:tag>C=6ND</video:tag>
      <video:tag>large language models</video:tag>
      <video:tag>GPT training</video:tag>
      <video:tag>tokens per parameter</video:tag>
      <video:tag>test-time compute</video:tag>
      <video:tag>emergent abilities</video:tag>
      <video:tag>data wall</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>numpy log-log regression</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/0wx-GpS2kns</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/0wx-GpS2kns/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/0wx-GpS2kns/hqdefault.jpg</video:thumbnail_loc>
      <video:title>How GPT Is Trained: Next-Token Prediction Explained with Math and Code</video:title>
      <video:description>Every GPT model starts with one simple game: predict the next token. Here is how that game becomes a chatbot.</video:description>
      <video:player_loc>https://www.youtube.com/embed/0wx-GpS2kns</video:player_loc>
      <video:duration>838</video:duration>
      <video:publication_date>2026-10-25T05:13:18.155Z</video:publication_date>
      <video:view_count>24</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>how GPT is trained</video:tag>
      <video:tag>next-token prediction</video:tag>
      <video:tag>language model pretraining</video:tag>
      <video:tag>cross-entropy loss</video:tag>
      <video:tag>perplexity explained</video:tag>
      <video:tag>autoregressive model</video:tag>
      <video:tag>teacher forcing</video:tag>
      <video:tag>causal masking</video:tag>
      <video:tag>LLM training data</video:tag>
      <video:tag>data mixture</video:tag>
      <video:tag>deduplication</video:tag>
      <video:tag>PyTorch language model</video:tag>
      <video:tag>character-level model</video:tag>
      <video:tag>generative AI course</video:tag>
      <video:tag>LLM engineering</video:tag>
      <video:tag>transformer training</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/XJJaWGSVIgE</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/XJJaWGSVIgE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/XJJaWGSVIgE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Bellman Equation: How a Gridworld Learns Its Values</video:title>
      <video:description>What if every square on a map could learn how good it is to stand there? That is the Bellman equation.</video:description>
      <video:player_loc>https://www.youtube.com/embed/XJJaWGSVIgE</video:player_loc>
      <video:duration>68</video:duration>
      <video:publication_date>2026-10-25T05:13:04.070Z</video:publication_date>
      <video:view_count>267</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>bellman equation</video:tag>
      <video:tag>gridworld</video:tag>
      <video:tag>reinforcement learning</video:tag>
      <video:tag>value function</video:tag>
      <video:tag>value iteration</video:tag>
      <video:tag>discount factor</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>dynamic programming</video:tag>
      <video:tag>markov decision process</video:tag>
      <video:tag>state value</video:tag>
      <video:tag>RL explained</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>AI basics</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/3vv61v7GAcU</loc>
    <lastmod>2026-10-25</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/3vv61v7GAcU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/3vv61v7GAcU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>LoRA Explained: Fine-Tune a Giant Model by Training a Sliver</video:title>
      <video:description>What if you could fine-tune a giant model by training less than two percent of one layer?</video:description>
      <video:player_loc>https://www.youtube.com/embed/3vv61v7GAcU</video:player_loc>
      <video:duration>56</video:duration>
      <video:publication_date>2026-10-25T05:12:59.139Z</video:publication_date>
      <video:view_count>466</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LoRA</video:tag>
      <video:tag>low-rank adaptation</video:tag>
      <video:tag>fine-tuning</video:tag>
      <video:tag>parameter efficient fine-tuning</video:tag>
      <video:tag>PEFT</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>large language models</video:tag>
      <video:tag>LLM</video:tag>
      <video:tag>low rank matrix</video:tag>
      <video:tag>matrix factorization</video:tag>
      <video:tag>transformers</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/7s2cOT9R9i4</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/7s2cOT9R9i4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/7s2cOT9R9i4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Attention Divides by Square Root of d</video:title>
      <video:description>Why does attention divide by the square root of d? Because without it, softmax collapses into a spike.</video:description>
      <video:player_loc>https://www.youtube.com/embed/7s2cOT9R9i4</video:player_loc>
      <video:duration>63</video:duration>
      <video:publication_date>2026-10-24T06:18:44.934Z</video:publication_date>
      <video:view_count>19</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>attention mechanism</video:tag>
      <video:tag>scaled dot-product attention</video:tag>
      <video:tag>square root of d</video:tag>
      <video:tag>transformers explained</video:tag>
      <video:tag>softmax</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>variance</video:tag>
      <video:tag>dot product</video:tag>
      <video:tag>self-attention</video:tag>
      <video:tag>query key</video:tag>
      <video:tag>vanishing gradients</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>LLM</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/PJKP02HMNe0</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/PJKP02HMNe0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/PJKP02HMNe0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Adam Works: Momentum Plus Scaling</video:title>
      <video:description>Why does plain gradient descent zig-zag, and how does Adam glide straight to the minimum?</video:description>
      <video:player_loc>https://www.youtube.com/embed/PJKP02HMNe0</video:player_loc>
      <video:duration>57</video:duration>
      <video:publication_date>2026-10-24T06:18:39.995Z</video:publication_date>
      <video:view_count>51</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>adam optimizer</video:tag>
      <video:tag>momentum</video:tag>
      <video:tag>sgd</video:tag>
      <video:tag>gradient descent</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>optimizers explained</video:tag>
      <video:tag>neural network training</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>learning rate</video:tag>
      <video:tag>rmsprop</video:tag>
      <video:tag>optimization</video:tag>
      <video:tag>ai explained</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/_RiQ4o_bjig</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/_RiQ4o_bjig/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/_RiQ4o_bjig/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Kernel Trick: Higher Dimensions for Free</video:title>
      <video:description>Can&apos;t separate your data with a line? Lift it to a higher dimension, without ever going there.</video:description>
      <video:player_loc>https://www.youtube.com/embed/_RiQ4o_bjig</video:player_loc>
      <video:duration>54</video:duration>
      <video:publication_date>2026-10-24T06:18:35.274Z</video:publication_date>
      <video:view_count>134</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>kernel trick</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>support vector machine</video:tag>
      <video:tag>SVM</video:tag>
      <video:tag>kernel methods</video:tag>
      <video:tag>feature map</video:tag>
      <video:tag>higher dimensions</video:tag>
      <video:tag>machine learning for beginners</video:tag>
      <video:tag>dot product</video:tag>
      <video:tag>RBF kernel</video:tag>
      <video:tag>polynomial kernel</video:tag>
      <video:tag>linear separability</video:tag>
      <video:tag>Manim</video:tag>
      <video:tag>3Blue1Brown style</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>data science</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/zFZGoTRzlBA</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/zFZGoTRzlBA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/zFZGoTRzlBA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Gradient Boosting: Just Keep Fitting the Mistakes</video:title>
      <video:description>One tree is weak. Three trees that fix each other&apos;s mistakes are not.</video:description>
      <video:player_loc>https://www.youtube.com/embed/zFZGoTRzlBA</video:player_loc>
      <video:duration>53</video:duration>
      <video:publication_date>2026-10-24T06:18:31.039Z</video:publication_date>
      <video:view_count>138</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>gradient boosting</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>boosting</video:tag>
      <video:tag>residuals</video:tag>
      <video:tag>decision trees</video:tag>
      <video:tag>XGBoost</video:tag>
      <video:tag>ensemble learning</video:tag>
      <video:tag>negative gradient</video:tag>
      <video:tag>machine learning for beginners</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>ml course</video:tag>
      <video:tag>supervised learning</video:tag>
      <video:tag>machine learning shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/HT4rbhWj3ho</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/HT4rbhWj3ho/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/HT4rbhWj3ho/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Zero Correlation Does NOT Mean Independent (Proof in 50 Seconds)</video:title>
      <video:description>Two variables can be perfectly dependent and still have a correlation of zero.</video:description>
      <video:player_loc>https://www.youtube.com/embed/HT4rbhWj3ho</video:player_loc>
      <video:duration>52</video:duration>
      <video:publication_date>2026-10-24T06:18:25.382Z</video:publication_date>
      <video:view_count>18</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>correlation</video:tag>
      <video:tag>zero correlation</video:tag>
      <video:tag>independence</video:tag>
      <video:tag>statistics</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>covariance</video:tag>
      <video:tag>parabola</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>correlation vs dependence</video:tag>
      <video:tag>linear association</video:tag>
      <video:tag>pearson correlation</video:tag>
      <video:tag>math visualization</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>probability</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/tnag53VDTMo</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/tnag53VDTMo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/tnag53VDTMo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Lagrange Multipliers in 50 Seconds: Where Gradients Line Up</video:title>
      <video:description>You want the highest point, but you must stay on a path. Lagrange multipliers solve it with one picture and one equation.</video:description>
      <video:player_loc>https://www.youtube.com/embed/tnag53VDTMo</video:player_loc>
      <video:duration>50</video:duration>
      <video:publication_date>2026-10-24T06:18:20.960Z</video:publication_date>
      <video:view_count>1314</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>Lagrange multipliers</video:tag>
      <video:tag>constrained optimization</video:tag>
      <video:tag>gradient</video:tag>
      <video:tag>contour plot</video:tag>
      <video:tag>tangent</video:tag>
      <video:tag>calculus</video:tag>
      <video:tag>multivariable calculus</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>optimization</video:tag>
      <video:tag>math visualization</video:tag>
      <video:tag>Manim</video:tag>
      <video:tag>3Blue1Brown style</video:tag>
      <video:tag>parallel gradients</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/7yt2UOU4Drc</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/7yt2UOU4Drc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/7yt2UOU4Drc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Chain Rule in 50 Seconds: Gears, Rates and Backprop</video:title>
      <video:description>Every neural network learns with one rule from calculus, and you can see it in 50 seconds.</video:description>
      <video:player_loc>https://www.youtube.com/embed/7yt2UOU4Drc</video:player_loc>
      <video:duration>52</video:duration>
      <video:publication_date>2026-10-24T06:18:16.504Z</video:publication_date>
      <video:view_count>1374</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>chain rule</video:tag>
      <video:tag>chain rule explained</video:tag>
      <video:tag>calculus</video:tag>
      <video:tag>calculus for machine learning</video:tag>
      <video:tag>backpropagation</video:tag>
      <video:tag>backprop</video:tag>
      <video:tag>computational graph</video:tag>
      <video:tag>derivatives</video:tag>
      <video:tag>neural networks</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>math shorts</video:tag>
      <video:tag>learn calculus</video:tag>
      <video:tag>deep learning basics</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/24e0iMnKg88</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/24e0iMnKg88/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/24e0iMnKg88/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The 99% Accuracy That Was a Lie (Data Leakage Explained)</video:title>
      <video:description>A model scored 99% accuracy and was completely useless. The cause: data leakage.</video:description>
      <video:player_loc>https://www.youtube.com/embed/24e0iMnKg88</video:player_loc>
      <video:duration>53</video:duration>
      <video:publication_date>2026-10-24T06:18:12.179Z</video:publication_date>
      <video:view_count>347</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>data leakage</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>scikit-learn pipeline</video:tag>
      <video:tag>train test split</video:tag>
      <video:tag>StandardScaler</video:tag>
      <video:tag>overfitting</video:tag>
      <video:tag>99% accuracy</video:tag>
      <video:tag>machine learning mistakes</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>python ml</video:tag>
      <video:tag>model evaluation</video:tag>
      <video:tag>feature leakage</video:tag>
      <video:tag>ML for beginners</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/QtvF2-JA0tQ</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/QtvF2-JA0tQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/QtvF2-JA0tQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Broadcasting Is NumPy&apos;s Superpower (and Its Silent Bug)</video:title>
      <video:description>One missing dimension can wreck your model, and NumPy will never warn you.</video:description>
      <video:player_loc>https://www.youtube.com/embed/QtvF2-JA0tQ</video:player_loc>
      <video:duration>55</video:duration>
      <video:publication_date>2026-10-24T06:18:07.716Z</video:publication_date>
      <video:view_count>100</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>numpy</video:tag>
      <video:tag>broadcasting</video:tag>
      <video:tag>numpy broadcasting</video:tag>
      <video:tag>python</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>array shapes</video:tag>
      <video:tag>numpy shapes</video:tag>
      <video:tag>reshape</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>python tips</video:tag>
      <video:tag>linear algebra</video:tag>
      <video:tag>ml from scratch</video:tag>
      <video:tag>numpy bug</video:tag>
      <video:tag>vectorization</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/I1hRcbRTP-o</loc>
    <lastmod>2026-10-24</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/I1hRcbRTP-o/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/I1hRcbRTP-o/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Machine Learning Course Wrap-Up: The Full Map and Your Roadmap Beyond</video:title>
      <video:description>You finished 70 lessons of Machine Learning from Zero to Advanced. Here is the complete map of everything you learned, the six principles that tie it together, and a clear roadmap for what to do next.</video:description>
      <video:player_loc>https://www.youtube.com/embed/I1hRcbRTP-o</video:player_loc>
      <video:duration>818</video:duration>
      <video:publication_date>2026-10-24T06:18:02.342Z</video:publication_date>
      <video:view_count>51</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning course</video:tag>
      <video:tag>machine learning roadmap</video:tag>
      <video:tag>ml wrap-up</video:tag>
      <video:tag>how to become ml engineer</video:tag>
      <video:tag>data scientist roadmap</video:tag>
      <video:tag>applied llm roadmap</video:tag>
      <video:tag>machine learning for beginners</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>transformers</video:tag>
      <video:tag>reinforcement learning</video:tag>
      <video:tag>mlops</video:tag>
      <video:tag>kaggle practice</video:tag>
      <video:tag>ml portfolio</video:tag>
      <video:tag>paper reading</video:tag>
      <video:tag>what to learn after machine learning</video:tag>
      <video:tag>machine learning from zero to advanced</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/FqSmDj7BpIo</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/FqSmDj7BpIo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/FqSmDj7BpIo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Forecasting to Production: Time Series, FastAPI, Docker and Drift Monitoring</video:title>
      <video:description>Can a forecast survive contact with the real world? In this capstone we build a time-series forecaster honestly, then ship it as a tested, containerized, monitored API.</video:description>
      <video:player_loc>https://www.youtube.com/embed/FqSmDj7BpIo</video:player_loc>
      <video:duration>778</video:duration>
      <video:publication_date>2026-10-23T05:19:16.069Z</video:publication_date>
      <video:view_count>6</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>time series forecasting</video:tag>
      <video:tag>seasonal naive</video:tag>
      <video:tag>ARIMA</video:tag>
      <video:tag>ETS</video:tag>
      <video:tag>gradient boosting</video:tag>
      <video:tag>lag features</video:tag>
      <video:tag>rolling origin evaluation</video:tag>
      <video:tag>MASE</video:tag>
      <video:tag>MAPE</video:tag>
      <video:tag>forecast intervals</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>FastAPI</video:tag>
      <video:tag>Docker</video:tag>
      <video:tag>MLOps</video:tag>
      <video:tag>drift monitoring</video:tag>
      <video:tag>machine learning capstone</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ANgBPEtDOrM</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ANgBPEtDOrM/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ANgBPEtDOrM/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Capstone: Train a CNN and a Tiny GPT From Scratch (Grad-CAM, Perplexity)</video:title>
      <video:description>Two real projects, one video: classify images with a CNN and transfer learning, then train a tiny GPT that writes Shakespeare-like text.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ANgBPEtDOrM</video:player_loc>
      <video:duration>861</video:duration>
      <video:publication_date>2026-10-23T05:19:00.830Z</video:publication_date>
      <video:view_count>8</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning capstone</video:tag>
      <video:tag>image classification</video:tag>
      <video:tag>CIFAR-10</video:tag>
      <video:tag>CNN PyTorch</video:tag>
      <video:tag>transfer learning</video:tag>
      <video:tag>data augmentation</video:tag>
      <video:tag>confusion matrix</video:tag>
      <video:tag>Grad-CAM</video:tag>
      <video:tag>character-level language model</video:tag>
      <video:tag>tiny GPT</video:tag>
      <video:tag>nanoGPT style</video:tag>
      <video:tag>perplexity</video:tag>
      <video:tag>temperature sampling</video:tag>
      <video:tag>transformer from scratch</video:tag>
      <video:tag>deep learning project</video:tag>
      <video:tag>ML course</video:tag>
      <video:tag>PyTorch tutorial</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/QciYJlJpU_M</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/QciYJlJpU_M/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/QciYJlJpU_M/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Customer Segmentation and a Recommender From Scratch (Capstone 7-8)</video:title>
      <video:description>Build two classic ML products from scratch: a customer segmentation with RFM features, k-means and Gaussian mixtures, and a movie recommender with item-based neighbors and matrix factorization.</video:description>
      <video:player_loc>https://www.youtube.com/embed/QciYJlJpU_M</video:player_loc>
      <video:duration>892</video:duration>
      <video:publication_date>2026-10-23T05:18:47.172Z</video:publication_date>
      <video:view_count>10</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>customer segmentation</video:tag>
      <video:tag>RFM analysis</video:tag>
      <video:tag>k-means clustering</video:tag>
      <video:tag>gaussian mixture model</video:tag>
      <video:tag>silhouette score</video:tag>
      <video:tag>BIC model selection</video:tag>
      <video:tag>PCA visualization</video:tag>
      <video:tag>recommendation system</video:tag>
      <video:tag>collaborative filtering</video:tag>
      <video:tag>matrix factorization</video:tag>
      <video:tag>cosine similarity</video:tag>
      <video:tag>ALS</video:tag>
      <video:tag>SGD</video:tag>
      <video:tag>precision at k</video:tag>
      <video:tag>cold start problem</video:tag>
      <video:tag>machine learning capstone</video:tag>
      <video:tag>MovieLens</video:tag>
      <video:tag>python machine learning</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/byiMkOlGXG0</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/byiMkOlGXG0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/byiMkOlGXG0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Spam Filter and Text Classifier From Scratch: Naive Bayes to Transformers</video:title>
      <video:description>Can a 1960s-style probability trick compete with a fine-tuned Transformer? We build a spam filter from scratch, then a multi-class text classifier, and compare them honestly.</video:description>
      <video:player_loc>https://www.youtube.com/embed/byiMkOlGXG0</video:player_loc>
      <video:duration>763</video:duration>
      <video:publication_date>2026-10-23T05:18:32.618Z</video:publication_date>
      <video:view_count>8</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>spam classification</video:tag>
      <video:tag>naive bayes from scratch</video:tag>
      <video:tag>text classification</video:tag>
      <video:tag>tf-idf</video:tag>
      <video:tag>logistic regression</video:tag>
      <video:tag>laplace smoothing</video:tag>
      <video:tag>nlp tutorial</video:tag>
      <video:tag>fine-tuning transformer</video:tag>
      <video:tag>distilbert</video:tag>
      <video:tag>machine learning capstone</video:tag>
      <video:tag>error analysis</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>label noise</video:tag>
      <video:tag>confusion matrix</video:tag>
      <video:tag>machine learning course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ut6ijfBnO_Y</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ut6ijfBnO_Y/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ut6ijfBnO_Y/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Credit Risk, Fairness and Anomaly Detection: Capstone 3 and 4</video:title>
      <video:description>Can a model that is accurate still be unfair? In this capstone we build a credit-risk classifier end to end, then audit it for fairness, and finally hunt rare anomalies with no labels at all.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ut6ijfBnO_Y</video:player_loc>
      <video:duration>657</video:duration>
      <video:publication_date>2026-10-23T05:18:19.054Z</video:publication_date>
      <video:view_count>3</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>credit risk</video:tag>
      <video:tag>fairness in machine learning</video:tag>
      <video:tag>demographic parity</video:tag>
      <video:tag>equalized odds</video:tag>
      <video:tag>model card</video:tag>
      <video:tag>class imbalance</video:tag>
      <video:tag>calibration</video:tag>
      <video:tag>gradient boosting</video:tag>
      <video:tag>logistic regression</video:tag>
      <video:tag>anomaly detection</video:tag>
      <video:tag>isolation forest</video:tag>
      <video:tag>mahalanobis distance</video:tag>
      <video:tag>autoencoder</video:tag>
      <video:tag>precision at k</video:tag>
      <video:tag>PR-AUC</video:tag>
      <video:tag>capstone project</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/45G2SdpIR94</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/45G2SdpIR94/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/45G2SdpIR94/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Two Full ML Projects: House Prices and Customer Churn, Start to Finish</video:title>
      <video:description>Two end-to-end tabular machine learning projects, built with one repeatable template.</video:description>
      <video:player_loc>https://www.youtube.com/embed/45G2SdpIR94</video:player_loc>
      <video:duration>686</video:duration>
      <video:publication_date>2026-10-23T05:18:00.342Z</video:publication_date>
      <video:view_count>7</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning capstone</video:tag>
      <video:tag>house price prediction</video:tag>
      <video:tag>customer churn prediction</video:tag>
      <video:tag>end to end machine learning project</video:tag>
      <video:tag>gradient boosting</video:tag>
      <video:tag>SHAP</video:tag>
      <video:tag>precision recall curve</video:tag>
      <video:tag>imbalanced classification</video:tag>
      <video:tag>model calibration</video:tag>
      <video:tag>residual analysis</video:tag>
      <video:tag>log transform target</video:tag>
      <video:tag>data science project</video:tag>
      <video:tag>scikit-learn tutorial</video:tag>
      <video:tag>machine learning from zero to advanced</video:tag>
      <video:tag>threshold selection business cost</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/VbGnNgIIbeo</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/VbGnNgIIbeo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/VbGnNgIIbeo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>MLOps: Reproducible Pipelines, Serving, Deployment and Monitoring</video:title>
      <video:description>Your model works in a notebook. Now what? This lesson shows how to take a machine learning model into production and keep it healthy.</video:description>
      <video:player_loc>https://www.youtube.com/embed/VbGnNgIIbeo</video:player_loc>
      <video:duration>816</video:duration>
      <video:publication_date>2026-10-23T05:17:46.941Z</video:publication_date>
      <video:view_count>6</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>MLOps</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>model deployment</video:tag>
      <video:tag>FastAPI</video:tag>
      <video:tag>Docker</video:tag>
      <video:tag>DVC</video:tag>
      <video:tag>MLflow</video:tag>
      <video:tag>data drift</video:tag>
      <video:tag>PSI</video:tag>
      <video:tag>KS test</video:tag>
      <video:tag>ONNX</video:tag>
      <video:tag>pickle security</video:tag>
      <video:tag>model monitoring</video:tag>
      <video:tag>canary deployment</video:tag>
      <video:tag>shadow deployment</video:tag>
      <video:tag>reproducibility</video:tag>
      <video:tag>machine learning course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/pOtWsuMS0CQ</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/pOtWsuMS0CQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/pOtWsuMS0CQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Trustworthy ML: Uncertainty, Shift, Fairness and Robustness Explained</video:title>
      <video:description>Your model scores 95 percent in testing. Why might you still not trust it?</video:description>
      <video:player_loc>https://www.youtube.com/embed/pOtWsuMS0CQ</video:player_loc>
      <video:duration>869</video:duration>
      <video:publication_date>2026-10-23T05:17:28.274Z</video:publication_date>
      <video:view_count>6</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>trustworthy machine learning</video:tag>
      <video:tag>conformal prediction</video:tag>
      <video:tag>aleatoric vs epistemic uncertainty</video:tag>
      <video:tag>distribution shift</video:tag>
      <video:tag>covariate shift</video:tag>
      <video:tag>isolation forest</video:tag>
      <video:tag>permutation importance</video:tag>
      <video:tag>partial dependence</video:tag>
      <video:tag>LIME</video:tag>
      <video:tag>causal inference</video:tag>
      <video:tag>fairness in machine learning</video:tag>
      <video:tag>demographic parity</video:tag>
      <video:tag>equalized odds</video:tag>
      <video:tag>FGSM adversarial examples</video:tag>
      <video:tag>MC dropout</video:tag>
      <video:tag>machine learning course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/8UoERDhvwBc</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/8UoERDhvwBc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/8UoERDhvwBc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Bayesian ML: MAP, Priors, and Gaussian Processes Explained</video:title>
      <video:description>What if your model could say &quot;I&apos;m not sure&quot; and mean it? Lesson 61 shows how probability turns guessing into reasoning.</video:description>
      <video:player_loc>https://www.youtube.com/embed/8UoERDhvwBc</video:player_loc>
      <video:duration>881</video:duration>
      <video:publication_date>2026-10-23T05:17:13.902Z</video:publication_date>
      <video:view_count>29</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>bayesian inference</video:tag>
      <video:tag>MAP estimation</video:tag>
      <video:tag>gaussian processes</video:tag>
      <video:tag>bayesian linear regression</video:tag>
      <video:tag>beta binomial</video:tag>
      <video:tag>conjugate prior</video:tag>
      <video:tag>L2 regularization prior</video:tag>
      <video:tag>L1 laplace prior</video:tag>
      <video:tag>MCMC</video:tag>
      <video:tag>variational inference</video:tag>
      <video:tag>probabilistic machine learning</video:tag>
      <video:tag>graphical models</video:tag>
      <video:tag>naive bayes</video:tag>
      <video:tag>machine learning course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/lU4UiB3x1V0</loc>
    <lastmod>2026-10-23</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/lU4UiB3x1V0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/lU4UiB3x1V0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>LLM Engineering Roadmap: What You Learned and Where to Go Next</video:title>
      <video:description>You finished the course. Now what? This final lesson turns forty lessons into one mental map, from foundations to production.</video:description>
      <video:player_loc>https://www.youtube.com/embed/lU4UiB3x1V0</video:player_loc>
      <video:duration>664</video:duration>
      <video:publication_date>2026-10-23T05:16:55.801Z</video:publication_date>
      <video:view_count>46</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LLM engineering</video:tag>
      <video:tag>generative AI roadmap</video:tag>
      <video:tag>what to learn after LLM course</video:tag>
      <video:tag>AI agents</video:tag>
      <video:tag>RAG</video:tag>
      <video:tag>fine-tuning</video:tag>
      <video:tag>prompt engineering</video:tag>
      <video:tag>LLM production</video:tag>
      <video:tag>AI portfolio projects</video:tag>
      <video:tag>how to read ML papers</video:tag>
      <video:tag>mixture of experts</video:tag>
      <video:tag>state space models</video:tag>
      <video:tag>interpretability</video:tag>
      <video:tag>reasoning models</video:tag>
      <video:tag>machine learning roadmap</video:tag>
      <video:tag>course wrap up</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/su8pblpqdY4</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/su8pblpqdY4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/su8pblpqdY4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Reinforcement Learning II: TD, Q-Learning, Policy Gradients, DQN and PPO</video:title>
      <video:description>How does an agent learn from a single step instead of waiting for the whole episode? This lesson takes you from temporal difference learning to Q-learning, Deep Q-Networks, policy gradients and PPO, with every formula worked through by hand.</video:description>
      <video:player_loc>https://www.youtube.com/embed/su8pblpqdY4</video:player_loc>
      <video:duration>1030</video:duration>
      <video:publication_date>2026-10-22T06:15:08.303Z</video:publication_date>
      <video:view_count>9</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>reinforcement learning</video:tag>
      <video:tag>temporal difference learning</video:tag>
      <video:tag>TD(0)</video:tag>
      <video:tag>Q-learning</video:tag>
      <video:tag>SARSA</video:tag>
      <video:tag>cliff walking</video:tag>
      <video:tag>epsilon greedy</video:tag>
      <video:tag>UCB bandit</video:tag>
      <video:tag>deep Q network</video:tag>
      <video:tag>DQN</video:tag>
      <video:tag>replay buffer</video:tag>
      <video:tag>target network</video:tag>
      <video:tag>policy gradient</video:tag>
      <video:tag>REINFORCE</video:tag>
      <video:tag>actor critic</video:tag>
      <video:tag>PPO</video:tag>
      <video:tag>reward hacking</video:tag>
      <video:tag>CartPole</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>Machine Learning from Zero to Advanced</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/EmuVFna7xsw</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/EmuVFna7xsw/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/EmuVFna7xsw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Reinforcement Learning I: MDPs, Bellman Equations, DP and Monte Carlo</video:title>
      <video:description>How does a machine learn to act when nobody tells it the right answer? Lesson 59 builds reinforcement learning from the ground up.</video:description>
      <video:player_loc>https://www.youtube.com/embed/EmuVFna7xsw</video:player_loc>
      <video:duration>892</video:duration>
      <video:publication_date>2026-10-22T06:14:52.269Z</video:publication_date>
      <video:view_count>21</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>reinforcement learning</video:tag>
      <video:tag>markov decision process</video:tag>
      <video:tag>MDP</video:tag>
      <video:tag>bellman equation</video:tag>
      <video:tag>dynamic programming</video:tag>
      <video:tag>policy iteration</video:tag>
      <video:tag>value iteration</video:tag>
      <video:tag>monte carlo methods</video:tag>
      <video:tag>epsilon greedy</video:tag>
      <video:tag>on-policy off-policy</video:tag>
      <video:tag>value function</video:tag>
      <video:tag>discount factor</video:tag>
      <video:tag>gridworld</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>RL tutorial</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/5-IcrmTgoro</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/5-IcrmTgoro/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/5-IcrmTgoro/hqdefault.jpg</video:thumbnail_loc>
      <video:title>How LLMs Actually Run: Decoding, KV Cache, Latency and Limits</video:title>
      <video:description>Training gets the headlines, but inference is where language models meet reality: memory, speed, cost and mistakes.</video:description>
      <video:player_loc>https://www.youtube.com/embed/5-IcrmTgoro</video:player_loc>
      <video:duration>820</video:duration>
      <video:publication_date>2026-10-22T06:14:37.519Z</video:publication_date>
      <video:view_count>19</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LLM inference</video:tag>
      <video:tag>KV cache</video:tag>
      <video:tag>temperature softmax</video:tag>
      <video:tag>top-p sampling</video:tag>
      <video:tag>top-k sampling</video:tag>
      <video:tag>beam search</video:tag>
      <video:tag>quantization</video:tag>
      <video:tag>distillation</video:tag>
      <video:tag>batching</video:tag>
      <video:tag>latency vs throughput</video:tag>
      <video:tag>context window</video:tag>
      <video:tag>quadratic attention</video:tag>
      <video:tag>hallucination</video:tag>
      <video:tag>retrieval augmented generation</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>transformers explained</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/YDtcMzyMsI8</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/YDtcMzyMsI8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/YDtcMzyMsI8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Pretraining, Fine-Tuning and LoRA Explained With Real Numbers</video:title>
      <video:description>How does a model that only predicts the next word become a helpful assistant, and how can you adapt a huge model on one GPU?</video:description>
      <video:player_loc>https://www.youtube.com/embed/YDtcMzyMsI8</video:player_loc>
      <video:duration>950</video:duration>
      <video:publication_date>2026-10-22T06:14:23.106Z</video:publication_date>
      <video:view_count>15</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>pretraining</video:tag>
      <video:tag>fine-tuning</video:tag>
      <video:tag>LoRA</video:tag>
      <video:tag>QLoRA</video:tag>
      <video:tag>PEFT</video:tag>
      <video:tag>perplexity</video:tag>
      <video:tag>masked language modeling</video:tag>
      <video:tag>next token prediction</video:tag>
      <video:tag>RLHF</video:tag>
      <video:tag>DPO</video:tag>
      <video:tag>instruction tuning</video:tag>
      <video:tag>scaling laws</video:tag>
      <video:tag>Hugging Face</video:tag>
      <video:tag>catastrophic forgetting</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>transformers</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/Zp_WLVXYeGA</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/Zp_WLVXYeGA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/Zp_WLVXYeGA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Full Transformer Block: Residuals, LayerNorm, GPT vs BERT vs T5</video:title>
      <video:description>Every large language model is one small block stacked over and over. In this lesson we assemble that block piece by piece and run it ourselves.</video:description>
      <video:player_loc>https://www.youtube.com/embed/Zp_WLVXYeGA</video:player_loc>
      <video:duration>948</video:duration>
      <video:publication_date>2026-10-22T06:14:05.400Z</video:publication_date>
      <video:view_count>28</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>transformer block</video:tag>
      <video:tag>layer normalization</video:tag>
      <video:tag>residual connections</video:tag>
      <video:tag>feed-forward network</video:tag>
      <video:tag>GELU</video:tag>
      <video:tag>pre-LN vs post-LN</video:tag>
      <video:tag>causal mask</video:tag>
      <video:tag>cross-attention</video:tag>
      <video:tag>GPT architecture</video:tag>
      <video:tag>BERT</video:tag>
      <video:tag>T5</video:tag>
      <video:tag>encoder decoder</video:tag>
      <video:tag>decoder-only</video:tag>
      <video:tag>PyTorch transformer</video:tag>
      <video:tag>parameter count</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning tutorial</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ENqhiW4D0qg</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ENqhiW4D0qg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ENqhiW4D0qg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Attention Explained With Real Numbers: Scaled Dot-Product and Multi-Head</video:title>
      <video:description>Attention is the engine of every transformer, but most explanations stop at a diagram. In this lesson we compute it by hand, number by number.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ENqhiW4D0qg</video:player_loc>
      <video:duration>806</video:duration>
      <video:publication_date>2026-10-22T06:13:49.032Z</video:publication_date>
      <video:view_count>30</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>attention mechanism</video:tag>
      <video:tag>scaled dot-product attention</video:tag>
      <video:tag>multi-head attention</video:tag>
      <video:tag>transformer</video:tag>
      <video:tag>self-attention</video:tag>
      <video:tag>queries keys values</video:tag>
      <video:tag>softmax</video:tag>
      <video:tag>causal mask</video:tag>
      <video:tag>attention explained</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>NumPy attention</video:tag>
      <video:tag>PyTorch attention</video:tag>
      <video:tag>attention heatmap</video:tag>
      <video:tag>why divide by sqrt d_k</video:tag>
      <video:tag>LLM fundamentals</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/Iy_B-XHWHMI</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/Iy_B-XHWHMI/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/Iy_B-XHWHMI/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Tokenization and Embeddings: How Text Becomes Numbers (BPE by Hand)</video:title>
      <video:description>A language model has never read a word. It only sees integers. Here is exactly how text becomes numbers, worked out by hand.</video:description>
      <video:player_loc>https://www.youtube.com/embed/Iy_B-XHWHMI</video:player_loc>
      <video:duration>962</video:duration>
      <video:publication_date>2026-10-22T06:13:34.352Z</video:publication_date>
      <video:view_count>11</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>tokenization</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>byte pair encoding</video:tag>
      <video:tag>BPE</video:tag>
      <video:tag>word2vec</video:tag>
      <video:tag>skip-gram</video:tag>
      <video:tag>negative sampling</video:tag>
      <video:tag>cosine similarity</video:tag>
      <video:tag>positional encoding</video:tag>
      <video:tag>sinusoidal encoding</video:tag>
      <video:tag>rotary embeddings</video:tag>
      <video:tag>WordPiece</video:tag>
      <video:tag>SentencePiece</video:tag>
      <video:tag>Hugging Face tokenizer</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>NLP for beginners</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/3ZM-ZKsSBRI</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/3ZM-ZKsSBRI/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/3ZM-ZKsSBRI/hqdefault.jpg</video:thumbnail_loc>
      <video:title>LSTM, GRU and Backpropagation Through Time Explained With Numbers</video:title>
      <video:description>Why can a simple RNN read ten words but forget a hundred? This lesson unrolls the RNN, derives backpropagation through time, and shows the product of Jacobians behind vanishing and exploding gradients.</video:description>
      <video:player_loc>https://www.youtube.com/embed/3ZM-ZKsSBRI</video:player_loc>
      <video:duration>912</video:duration>
      <video:publication_date>2026-10-22T06:13:20.104Z</video:publication_date>
      <video:view_count>18</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>LSTM</video:tag>
      <video:tag>GRU</video:tag>
      <video:tag>backpropagation through time</video:tag>
      <video:tag>BPTT</video:tag>
      <video:tag>vanishing gradient</video:tag>
      <video:tag>exploding gradient</video:tag>
      <video:tag>RNN</video:tag>
      <video:tag>recurrent neural network</video:tag>
      <video:tag>gradient clipping</video:tag>
      <video:tag>teacher forcing</video:tag>
      <video:tag>character level language model</video:tag>
      <video:tag>PyTorch nn.LSTM</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning tutorial</video:tag>
      <video:tag>NumPy LSTM</video:tag>
      <video:tag>cell state</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/lI17nJKRu_Q</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/lI17nJKRu_Q/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/lI17nJKRu_Q/hqdefault.jpg</video:thumbnail_loc>
      <video:title>CNN Architectures: LeNet, ResNet, Transfer Learning and Grad-CAM Explained</video:title>
      <video:description>What if you could train a great image classifier with a few hundred photos and a few minutes of compute? In this lesson we build a small CNN in PyTorch, follow the architecture story from LeNet to VGG to ResNet, and see why skip connections save gradients.</video:description>
      <video:player_loc>https://www.youtube.com/embed/lI17nJKRu_Q</video:player_loc>
      <video:duration>881</video:duration>
      <video:publication_date>2026-10-22T06:13:05.873Z</video:publication_date>
      <video:view_count>4</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>cnn architectures</video:tag>
      <video:tag>resnet explained</video:tag>
      <video:tag>transfer learning</video:tag>
      <video:tag>pytorch cnn tutorial</video:tag>
      <video:tag>grad-cam</video:tag>
      <video:tag>skip connections</video:tag>
      <video:tag>vgg</video:tag>
      <video:tag>lenet</video:tag>
      <video:tag>data augmentation</video:tag>
      <video:tag>fine-tuning</video:tag>
      <video:tag>feature extraction</video:tag>
      <video:tag>confusion matrix</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning for beginners</video:tag>
      <video:tag>visualizing cnn features</video:tag>
      <video:tag>vanishing gradients</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/JcH2-HBVRyk</loc>
    <lastmod>2026-10-22</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/JcH2-HBVRyk/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/JcH2-HBVRyk/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Convolution Explained: Kernels, Stride, Padding and Pooling by Hand</video:title>
      <video:description>A 150 million weight layer or 1,792 weights? Learn why convolution is the right tool for images.</video:description>
      <video:player_loc>https://www.youtube.com/embed/JcH2-HBVRyk</video:player_loc>
      <video:duration>839</video:duration>
      <video:publication_date>2026-10-22T06:12:51.203Z</video:publication_date>
      <video:view_count>17</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>convolution</video:tag>
      <video:tag>convolutional neural network</video:tag>
      <video:tag>CNN explained</video:tag>
      <video:tag>kernel</video:tag>
      <video:tag>stride</video:tag>
      <video:tag>padding</video:tag>
      <video:tag>pooling</video:tag>
      <video:tag>max pooling</video:tag>
      <video:tag>receptive field</video:tag>
      <video:tag>1x1 convolution</video:tag>
      <video:tag>conv2d from scratch</video:tag>
      <video:tag>NumPy</video:tag>
      <video:tag>PyTorch</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>cross-correlation</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/VY9uxf-iL24</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/VY9uxf-iL24/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/VY9uxf-iL24/hqdefault.jpg</video:thumbnail_loc>
      <video:title>PyTorch Training Loops, DataLoaders, GPUs and Debugging Explained</video:title>
      <video:description>Your model trains, but is it trained correctly? Learn the full PyTorch workflow, from Dataset and DataLoader to a clean training loop, GPU use and a practical debugging checklist.</video:description>
      <video:player_loc>https://www.youtube.com/embed/VY9uxf-iL24</video:player_loc>
      <video:duration>774</video:duration>
      <video:publication_date>2026-10-21T05:15:01.697Z</video:publication_date>
      <video:view_count>12</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>pytorch</video:tag>
      <video:tag>pytorch tutorial</video:tag>
      <video:tag>training loop</video:tag>
      <video:tag>dataloader</video:tag>
      <video:tag>dataset</video:tag>
      <video:tag>nn.Module</video:tag>
      <video:tag>torch.optim</video:tag>
      <video:tag>gpu training</video:tag>
      <video:tag>mixed precision</video:tag>
      <video:tag>autocast</video:tag>
      <video:tag>early stopping</video:tag>
      <video:tag>checkpointing</video:tag>
      <video:tag>debugging neural networks</video:tag>
      <video:tag>overfit one batch</video:tag>
      <video:tag>reproducibility</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/bFJjj6ImHj4</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/bFJjj6ImHj4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/bFJjj6ImHj4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>PyTorch Tensors and Autograd: Gradients You Can Verify by Hand</video:title>
      <video:description>What if you never had to differentiate by hand again, but could still prove the answer is right?</video:description>
      <video:player_loc>https://www.youtube.com/embed/bFJjj6ImHj4</video:player_loc>
      <video:duration>873</video:duration>
      <video:publication_date>2026-10-21T05:14:44.004Z</video:publication_date>
      <video:view_count>7</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>pytorch</video:tag>
      <video:tag>pytorch tutorial</video:tag>
      <video:tag>autograd</video:tag>
      <video:tag>pytorch tensors</video:tag>
      <video:tag>backpropagation</video:tag>
      <video:tag>computational graph</video:tag>
      <video:tag>requires_grad</video:tag>
      <video:tag>zero_grad</video:tag>
      <video:tag>torch.no_grad</video:tag>
      <video:tag>detach</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>linear regression pytorch</video:tag>
      <video:tag>finite difference gradient check</video:tag>
      <video:tag>custom autograd function</video:tag>
      <video:tag>numpy vs pytorch</video:tag>
      <video:tag>broadcasting</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/gognHqfQcWs</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/gognHqfQcWs/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/gognHqfQcWs/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Dropout and Batch Normalization Explained With Numbers and NumPy Code</video:title>
      <video:description>Why does randomly deleting neurons make a network better? And how does normalizing activations make training faster? We derive dropout and batch normalization step by step with concrete numbers, including the full backward pass.</video:description>
      <video:player_loc>https://www.youtube.com/embed/gognHqfQcWs</video:player_loc>
      <video:duration>971</video:duration>
      <video:publication_date>2026-10-21T05:14:28.363Z</video:publication_date>
      <video:view_count>61</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>dropout</video:tag>
      <video:tag>batch normalization</video:tag>
      <video:tag>batchnorm</video:tag>
      <video:tag>regularization</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>neural networks</video:tag>
      <video:tag>inverted dropout</video:tag>
      <video:tag>layer normalization</video:tag>
      <video:tag>AdamW</video:tag>
      <video:tag>weight decay</video:tag>
      <video:tag>early stopping</video:tag>
      <video:tag>data augmentation</video:tag>
      <video:tag>backpropagation</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>NumPy from scratch</video:tag>
      <video:tag>gradient check</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/TSo1n2doPzE</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/TSo1n2doPzE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/TSo1n2doPzE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Weight Initialization, Vanishing Gradients and Optimizers: Why Deep Nets Train</video:title>
      <video:description>Why does a deep network sometimes refuse to learn at all? Often the answer is decided before the first training step.</video:description>
      <video:player_loc>https://www.youtube.com/embed/TSo1n2doPzE</video:player_loc>
      <video:duration>895</video:duration>
      <video:publication_date>2026-10-21T05:14:13.081Z</video:publication_date>
      <video:view_count>6</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>weight initialization</video:tag>
      <video:tag>xavier initialization</video:tag>
      <video:tag>glorot initialization</video:tag>
      <video:tag>he initialization</video:tag>
      <video:tag>vanishing gradients</video:tag>
      <video:tag>exploding gradients</video:tag>
      <video:tag>gradient clipping</video:tag>
      <video:tag>adam optimizer</video:tag>
      <video:tag>momentum</video:tag>
      <video:tag>nesterov</video:tag>
      <video:tag>rmsprop</video:tag>
      <video:tag>learning rate schedule</video:tag>
      <video:tag>learning rate warmup</video:tag>
      <video:tag>deep learning tutorial</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>optimizers explained</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/SWAlHphGh8E</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/SWAlHphGh8E/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/SWAlHphGh8E/hqdefault.jpg</video:thumbnail_loc>
      <video:title>ARIMA and Exponential Smoothing Explained With Real Numbers</video:title>
      <video:description>Two classic forecasting families, ARIMA and exponential smoothing, built from the ground up with hand-worked numbers.</video:description>
      <video:player_loc>https://www.youtube.com/embed/SWAlHphGh8E</video:player_loc>
      <video:duration>948</video:duration>
      <video:publication_date>2026-10-21T05:13:58.861Z</video:publication_date>
      <video:view_count>19</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>ARIMA</video:tag>
      <video:tag>exponential smoothing</video:tag>
      <video:tag>time series forecasting</video:tag>
      <video:tag>Holt-Winters</video:tag>
      <video:tag>SARIMA</video:tag>
      <video:tag>ACF PACF</video:tag>
      <video:tag>ADF test</video:tag>
      <video:tag>Yule-Walker</video:tag>
      <video:tag>Ljung-Box</video:tag>
      <video:tag>statsmodels</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>stationarity</video:tag>
      <video:tag>differencing</video:tag>
      <video:tag>lag operator</video:tag>
      <video:tag>rolling origin evaluation</video:tag>
      <video:tag>forecast intervals</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/ZOVWaRW4rOU</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/ZOVWaRW4rOU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ZOVWaRW4rOU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Hyperparameter Search and Bayesian Optimization Explained With Numbers</video:title>
      <video:description>Stop guessing learning rates. Learn how to tune models with a plan: random search, nested cross-validation, Hyperband, and Bayesian optimization.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ZOVWaRW4rOU</video:player_loc>
      <video:duration>866</video:duration>
      <video:publication_date>2026-10-21T05:13:45.494Z</video:publication_date>
      <video:view_count>9</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>hyperparameter tuning</video:tag>
      <video:tag>hyperparameter search</video:tag>
      <video:tag>bayesian optimization</video:tag>
      <video:tag>random search vs grid search</video:tag>
      <video:tag>expected improvement</video:tag>
      <video:tag>optuna tutorial</video:tag>
      <video:tag>nested cross validation</video:tag>
      <video:tag>successive halving</video:tag>
      <video:tag>hyperband</video:tag>
      <video:tag>gaussian process surrogate</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>machine learning from scratch</video:tag>
      <video:tag>acquisition function</video:tag>
      <video:tag>validation overfitting</video:tag>
      <video:tag>learning rate log scale</video:tag>
      <video:tag>python machine learning</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/brnKyvuAj1s</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/brnKyvuAj1s/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/brnKyvuAj1s/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Expectation-Maximization for Gaussian Mixtures: The Full Math and Code</video:title>
      <video:description>What do you do when the cluster label of every data point is hidden? Expectation-Maximization is the elegant answer, and in this lesson we build it from the ground up.</video:description>
      <video:player_loc>https://www.youtube.com/embed/brnKyvuAj1s</video:player_loc>
      <video:duration>970</video:duration>
      <video:publication_date>2026-10-21T05:13:30.982Z</video:publication_date>
      <video:view_count>11</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>expectation maximization</video:tag>
      <video:tag>EM algorithm</video:tag>
      <video:tag>gaussian mixture model</video:tag>
      <video:tag>GMM</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>responsibilities</video:tag>
      <video:tag>ELBO</video:tag>
      <video:tag>Jensen inequality</video:tag>
      <video:tag>k-means</video:tag>
      <video:tag>BIC AIC</video:tag>
      <video:tag>latent variable</video:tag>
      <video:tag>NumPy from scratch</video:tag>
      <video:tag>scikit-learn GaussianMixture</video:tag>
      <video:tag>unsupervised learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>soft clustering</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/b45BFw0izZI</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/b45BFw0izZI/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/b45BFw0izZI/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The SVM Dual and the Kernel Trick: The Math Explained Step by Step</video:title>
      <video:description>How can a machine learning model work in infinite dimensions without ever computing a single coordinate? The answer is the SVM dual and the kernel trick.</video:description>
      <video:player_loc>https://www.youtube.com/embed/b45BFw0izZI</video:player_loc>
      <video:duration>942</video:duration>
      <video:publication_date>2026-10-21T05:13:14.914Z</video:publication_date>
      <video:view_count>34</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>svm dual</video:tag>
      <video:tag>kernel trick</video:tag>
      <video:tag>support vector machine</video:tag>
      <video:tag>lagrangian</video:tag>
      <video:tag>KKT conditions</video:tag>
      <video:tag>complementary slackness</video:tag>
      <video:tag>soft margin svm</video:tag>
      <video:tag>hinge loss</video:tag>
      <video:tag>polynomial kernel</video:tag>
      <video:tag>rbf kernel</video:tag>
      <video:tag>mercer condition</video:tag>
      <video:tag>support vector regression</video:tag>
      <video:tag>epsilon tube</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>sklearn SVC</video:tag>
      <video:tag>dual problem</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/69WmnK-_Zlk</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/69WmnK-_Zlk/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/69WmnK-_Zlk/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Gradient Boosting and XGBoost: The Math, Derived Step by Step</video:title>
      <video:description>Why do boosted trees win so many tabular data problems? Because they are gradient descent, performed on functions instead of numbers.</video:description>
      <video:player_loc>https://www.youtube.com/embed/69WmnK-_Zlk</video:player_loc>
      <video:duration>892</video:duration>
      <video:publication_date>2026-10-21T05:13:01.366Z</video:publication_date>
      <video:view_count>13</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>gradient boosting</video:tag>
      <video:tag>xgboost</video:tag>
      <video:tag>xgboost math</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>pseudo-residuals</video:tag>
      <video:tag>gradient descent in function space</video:tag>
      <video:tag>lightgbm</video:tag>
      <video:tag>catboost</video:tag>
      <video:tag>decision trees</video:tag>
      <video:tag>boosting explained</video:tag>
      <video:tag>taylor expansion</video:tag>
      <video:tag>hessian</video:tag>
      <video:tag>early stopping</video:tag>
      <video:tag>hyperparameter tuning</video:tag>
      <video:tag>tabular data</video:tag>
      <video:tag>ml from scratch</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/3aumzTBOzbQ</loc>
    <lastmod>2026-10-21</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/3aumzTBOzbQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/3aumzTBOzbQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Logistic Regression Gradient Derived From Scratch (Full Math + NumPy)</video:title>
      <video:description>One line of algebra hides inside every classifier you have ever trained: gradient equals X transpose times prediction minus label. In this lesson we derive it from scratch.</video:description>
      <video:player_loc>https://www.youtube.com/embed/3aumzTBOzbQ</video:player_loc>
      <video:duration>896</video:duration>
      <video:publication_date>2026-10-21T05:12:44.061Z</video:publication_date>
      <video:view_count>17</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>logistic regression</video:tag>
      <video:tag>logistic regression gradient</video:tag>
      <video:tag>binary cross entropy</video:tag>
      <video:tag>sigmoid derivative</video:tag>
      <video:tag>softmax gradient</video:tag>
      <video:tag>newton method</video:tag>
      <video:tag>IRLS</video:tag>
      <video:tag>hessian</video:tag>
      <video:tag>perfect separation</video:tag>
      <video:tag>log-sum-exp</video:tag>
      <video:tag>machine learning from scratch</video:tag>
      <video:tag>numpy tutorial</video:tag>
      <video:tag>maximum likelihood</video:tag>
      <video:tag>chain rule</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>machine learning math</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/J9tqB8iGkP8</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/J9tqB8iGkP8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/J9tqB8iGkP8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Linear Regression From Scratch in NumPy: Assumptions and Residual Analysis</video:title>
      <video:description>Your linear regression runs and gives numbers. But can you trust them?</video:description>
      <video:player_loc>https://www.youtube.com/embed/J9tqB8iGkP8</video:player_loc>
      <video:duration>781</video:duration>
      <video:publication_date>2026-10-20T06:20:07.196Z</video:publication_date>
      <video:view_count>10</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>linear regression</video:tag>
      <video:tag>linear regression from scratch</video:tag>
      <video:tag>numpy</video:tag>
      <video:tag>residual analysis</video:tag>
      <video:tag>regression assumptions</video:tag>
      <video:tag>homoscedasticity</video:tag>
      <video:tag>Q-Q plot</video:tag>
      <video:tag>Cook&apos;s distance</video:tag>
      <video:tag>leverage</video:tag>
      <video:tag>R squared</video:tag>
      <video:tag>adjusted R squared</video:tag>
      <video:tag>standard errors</video:tag>
      <video:tag>multicollinearity</video:tag>
      <video:tag>normal equation</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>QR decomposition</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/gz8iIMTJDqY</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/gz8iIMTJDqY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/gz8iIMTJDqY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Confidence Intervals and Hypothesis Tests for ML: Is Your Model Really Better?</video:title>
      <video:description>Your new model scores 90 percent and the old one scores 88. Is that a real improvement, or just luck?</video:description>
      <video:player_loc>https://www.youtube.com/embed/gz8iIMTJDqY</video:player_loc>
      <video:duration>797</video:duration>
      <video:publication_date>2026-10-20T06:19:51.183Z</video:publication_date>
      <video:view_count>15</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>statistics for machine learning</video:tag>
      <video:tag>confidence interval</video:tag>
      <video:tag>hypothesis testing</video:tag>
      <video:tag>p-value</video:tag>
      <video:tag>standard error</video:tag>
      <video:tag>bootstrap</video:tag>
      <video:tag>t-test</video:tag>
      <video:tag>chi-square test</video:tag>
      <video:tag>A/B testing</video:tag>
      <video:tag>type I error</video:tag>
      <video:tag>statistical power</video:tag>
      <video:tag>p-hacking</video:tag>
      <video:tag>multiple comparisons</video:tag>
      <video:tag>sampling distribution</video:tag>
      <video:tag>central limit theorem</video:tag>
      <video:tag>model evaluation</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/dHQit23qfN0</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/dHQit23qfN0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/dHQit23qfN0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Covariance, Correlation and the Multivariate Gaussian Explained</video:title>
      <video:description>Two numbers can move together, yet a correlation of zero can still hide a perfect relationship. Here is how to read covariance, correlation and the Gaussian properly.</video:description>
      <video:player_loc>https://www.youtube.com/embed/dHQit23qfN0</video:player_loc>
      <video:duration>937</video:duration>
      <video:publication_date>2026-10-20T06:19:33.774Z</video:publication_date>
      <video:view_count>33</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>covariance</video:tag>
      <video:tag>correlation</video:tag>
      <video:tag>multivariate gaussian</video:tag>
      <video:tag>multivariate normal</video:tag>
      <video:tag>mahalanobis distance</video:tag>
      <video:tag>covariance matrix</video:tag>
      <video:tag>pearson correlation</video:tag>
      <video:tag>spearman correlation</video:tag>
      <video:tag>simpson&apos;s paradox</video:tag>
      <video:tag>correlation vs causation</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>positive semi-definite</video:tag>
      <video:tag>covariance ellipse</video:tag>
      <video:tag>statistics for machine learning</video:tag>
      <video:tag>PCA prerequisites</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/LdScZx8zULU</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/LdScZx8zULU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/LdScZx8zULU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Convexity and Lagrange Multipliers: Optimization With Rules (ML Lesson 37)</video:title>
      <video:description>What if the best answer is not allowed? Learn why convex functions have no bad valleys, and how Lagrange multipliers and KKT conditions solve optimization problems with constraints.</video:description>
      <video:player_loc>https://www.youtube.com/embed/LdScZx8zULU</video:player_loc>
      <video:duration>842</video:duration>
      <video:publication_date>2026-10-20T06:19:16.784Z</video:publication_date>
      <video:view_count>28</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>convexity</video:tag>
      <video:tag>convex optimization</video:tag>
      <video:tag>lagrange multipliers</video:tag>
      <video:tag>KKT conditions</video:tag>
      <video:tag>constrained optimization</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>hessian</video:tag>
      <video:tag>positive definite</video:tag>
      <video:tag>complementary slackness</video:tag>
      <video:tag>lagrangian duality</video:tag>
      <video:tag>SVM</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>gradient descent</video:tag>
      <video:tag>local minimum global minimum</video:tag>
      <video:tag>MSE convex</video:tag>
      <video:tag>logistic loss convex</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/78jRUEZ09uQ</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/78jRUEZ09uQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/78jRUEZ09uQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>The Chain Rule and Computational Graphs: How Gradients Really Flow</video:title>
      <video:description>Every neural network trains because of one idea from calculus: the chain rule. In this lesson we derive it from first principles, check it with real numbers, and then turn it into a machine.</video:description>
      <video:player_loc>https://www.youtube.com/embed/78jRUEZ09uQ</video:player_loc>
      <video:duration>1021</video:duration>
      <video:publication_date>2026-10-20T06:18:59.396Z</video:publication_date>
      <video:view_count>35</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>chain rule</video:tag>
      <video:tag>computational graph</video:tag>
      <video:tag>backpropagation</video:tag>
      <video:tag>autograd</video:tag>
      <video:tag>reverse mode differentiation</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>calculus for machine learning</video:tag>
      <video:tag>gradient</video:tag>
      <video:tag>Jacobian</video:tag>
      <video:tag>vector-Jacobian product</video:tag>
      <video:tag>finite difference gradient check</video:tag>
      <video:tag>micrograd</video:tag>
      <video:tag>deep learning basics</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>derivative</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/5LFFz4UvfYc</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/5LFFz4UvfYc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/5LFFz4UvfYc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Your 99% Model Is a Lie: Leakage-Safe Splits and Pipelines</video:title>
      <video:description>Your model scores 99 percent in testing and fails in production. The cause is almost always data leakage.</video:description>
      <video:player_loc>https://www.youtube.com/embed/5LFFz4UvfYc</video:player_loc>
      <video:duration>751</video:duration>
      <video:publication_date>2026-10-20T06:18:41.662Z</video:publication_date>
      <video:view_count>48</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>data leakage</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>train test split</video:tag>
      <video:tag>scikit-learn pipeline</video:tag>
      <video:tag>ColumnTransformer</video:tag>
      <video:tag>stratified split</video:tag>
      <video:tag>validation set</video:tag>
      <video:tag>test set</video:tag>
      <video:tag>target leakage</video:tag>
      <video:tag>preprocessing leakage</video:tag>
      <video:tag>group leakage</video:tag>
      <video:tag>temporal leakage</video:tag>
      <video:tag>cross validation</video:tag>
      <video:tag>python machine learning</video:tag>
      <video:tag>ML course</video:tag>
      <video:tag>leakage audit</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/FXraVViHNMg</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/FXraVViHNMg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/FXraVViHNMg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Data Cleaning for ML: Missing Values, Outliers and Feature Types</video:title>
      <video:description>Your model is only as good as the data you feed it. Here is how to clean that data without fooling yourself.</video:description>
      <video:player_loc>https://www.youtube.com/embed/FXraVViHNMg</video:player_loc>
      <video:duration>821</video:duration>
      <video:publication_date>2026-10-20T06:18:25.249Z</video:publication_date>
      <video:view_count>67</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>data cleaning</video:tag>
      <video:tag>missing values</video:tag>
      <video:tag>outliers</video:tag>
      <video:tag>imputation</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>SimpleImputer</video:tag>
      <video:tag>KNNImputer</video:tag>
      <video:tag>MCAR MAR MNAR</video:tag>
      <video:tag>IQR rule</video:tag>
      <video:tag>z-score</video:tag>
      <video:tag>winsorizing</video:tag>
      <video:tag>feature types</video:tag>
      <video:tag>data preprocessing</video:tag>
      <video:tag>machine learning from zero to advanced</video:tag>
      <video:tag>python data science</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/0QpZwWO2OVc</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/0QpZwWO2OVc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/0QpZwWO2OVc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Plotting and EDA: Look at Your Data Before You Model It</video:title>
      <video:description>Four datasets can share the same summary numbers and look completely different. Learn why you must plot your data before training any model.</video:description>
      <video:player_loc>https://www.youtube.com/embed/0QpZwWO2OVc</video:player_loc>
      <video:duration>792</video:duration>
      <video:publication_date>2026-10-20T06:18:08.192Z</video:publication_date>
      <video:view_count>41</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>exploratory data analysis</video:tag>
      <video:tag>EDA</video:tag>
      <video:tag>matplotlib tutorial</video:tag>
      <video:tag>seaborn tutorial</video:tag>
      <video:tag>data visualization python</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>pair plot</video:tag>
      <video:tag>correlation heatmap</video:tag>
      <video:tag>histogram vs KDE</video:tag>
      <video:tag>box plot violin plot</video:tag>
      <video:tag>Simpson&apos;s paradox</video:tag>
      <video:tag>penguins dataset</video:tag>
      <video:tag>overplotting</video:tag>
      <video:tag>misleading charts</video:tag>
      <video:tag>python for machine learning</video:tag>
      <video:tag>data science for beginners</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/BeFK-uDJq04</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/BeFK-uDJq04/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/BeFK-uDJq04/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Pandas Essentials for Machine Learning Data (Lesson 32)</video:title>
      <video:description>Most machine learning time is spent on tables, not models. This lesson teaches the pandas skills you need, checked by hand on a tiny toy table.</video:description>
      <video:player_loc>https://www.youtube.com/embed/BeFK-uDJq04</video:player_loc>
      <video:duration>758</video:duration>
      <video:publication_date>2026-10-20T06:17:53.168Z</video:publication_date>
      <video:view_count>20</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>pandas tutorial</video:tag>
      <video:tag>pandas for machine learning</video:tag>
      <video:tag>DataFrame</video:tag>
      <video:tag>groupby</video:tag>
      <video:tag>merge join pandas</video:tag>
      <video:tag>loc vs iloc</video:tag>
      <video:tag>SettingWithCopyWarning</video:tag>
      <video:tag>pivot table pandas</video:tag>
      <video:tag>design matrix</video:tag>
      <video:tag>numpy to pandas</video:tag>
      <video:tag>python data science</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>read_csv</video:tag>
      <video:tag>vectorization</video:tag>
      <video:tag>pandas memory optimization</video:tag>
      <video:tag>ML from scratch</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/c06DC_PeDyM</loc>
    <lastmod>2026-10-20</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/c06DC_PeDyM/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/c06DC_PeDyM/hqdefault.jpg</video:thumbnail_loc>
      <video:title>NumPy Arrays, Shapes and Broadcasting Explained Visually (ML Lesson 31)</video:title>
      <video:description>One million numbers, one slow Python loop, one fast NumPy line. Why is the gap so big, and how do you think in arrays?</video:description>
      <video:player_loc>https://www.youtube.com/embed/c06DC_PeDyM</video:player_loc>
      <video:duration>770</video:duration>
      <video:publication_date>2026-10-20T06:17:36.978Z</video:publication_date>
      <video:view_count>18</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>numpy tutorial</video:tag>
      <video:tag>numpy broadcasting</video:tag>
      <video:tag>numpy arrays</video:tag>
      <video:tag>numpy shapes</video:tag>
      <video:tag>numpy axis</video:tag>
      <video:tag>numpy reshape</video:tag>
      <video:tag>numpy views vs copies</video:tag>
      <video:tag>numpy einsum</video:tag>
      <video:tag>vectorization python</video:tag>
      <video:tag>python for machine learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>machine learning from scratch</video:tag>
      <video:tag>boolean masking numpy</video:tag>
      <video:tag>numpy for beginners</video:tag>
      <video:tag>ndarray dtype</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/I1EFRANihEc</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/I1EFRANihEc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/I1EFRANihEc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>How AI Decides Which Words Matter: Attention Explained</video:title>
      <video:description>How does a model know which word in a sentence to focus on? Attention turns word similarity into weights.</video:description>
      <video:player_loc>https://www.youtube.com/embed/I1EFRANihEc</video:player_loc>
      <video:duration>43</video:duration>
      <video:publication_date>2026-10-19T05:13:25.139Z</video:publication_date>
      <video:view_count>22</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>attention mechanism</video:tag>
      <video:tag>self attention</video:tag>
      <video:tag>transformers</video:tag>
      <video:tag>softmax</video:tag>
      <video:tag>query key value</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>neural networks</video:tag>
      <video:tag>how attention works</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>NLP</video:tag>
      <video:tag>tokens</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>attention heatmap</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/OwqzX5FV5HE</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/OwqzX5FV5HE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/OwqzX5FV5HE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why 99% Accuracy Can Be Totally Useless</video:title>
      <video:description>A model with 99 percent accuracy that catches zero fraud? Here is how accuracy fools you on imbalanced data, and how a confusion matrix exposes it.</video:description>
      <video:player_loc>https://www.youtube.com/embed/OwqzX5FV5HE</video:player_loc>
      <video:duration>56</video:duration>
      <video:publication_date>2026-10-19T05:13:20.373Z</video:publication_date>
      <video:view_count>23</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>accuracy</video:tag>
      <video:tag>imbalanced data</video:tag>
      <video:tag>fraud detection</video:tag>
      <video:tag>confusion matrix</video:tag>
      <video:tag>recall</video:tag>
      <video:tag>precision</video:tag>
      <video:tag>F1 score</video:tag>
      <video:tag>class imbalance</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>ML for beginners</video:tag>
      <video:tag>model evaluation</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>Shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/-vV2IRSPwRo</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/-vV2IRSPwRo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/-vV2IRSPwRo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Lasso Sets Weights Exactly to Zero (Diamond vs Circle)</video:title>
      <video:description>Why does Lasso zero out coefficients while Ridge only shrinks them? One picture explains it: a diamond has corners, a circle does not.</video:description>
      <video:player_loc>https://www.youtube.com/embed/-vV2IRSPwRo</video:player_loc>
      <video:duration>48</video:duration>
      <video:publication_date>2026-10-19T05:13:15.438Z</video:publication_date>
      <video:view_count>39</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>lasso regression</video:tag>
      <video:tag>l1 regularization</video:tag>
      <video:tag>ridge regression</video:tag>
      <video:tag>l2 regularization</video:tag>
      <video:tag>sparsity</video:tag>
      <video:tag>feature selection</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>regularization geometry</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>machine learning for beginners</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>shorts</video:tag>
      <video:tag>l1 vs l2</video:tag>
      <video:tag>constraint region</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/4QkCeP4uOtw</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/4QkCeP4uOtw/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/4QkCeP4uOtw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Learning Rate: Too Small, Just Right, Too Big</video:title>
      <video:description>One number decides whether your model learns or explodes. Watch three balls roll down the same loss landscape with three different learning rates.</video:description>
      <video:player_loc>https://www.youtube.com/embed/4QkCeP4uOtw</video:player_loc>
      <video:duration>52</video:duration>
      <video:publication_date>2026-10-19T05:13:09.771Z</video:publication_date>
      <video:view_count>36</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>learning rate</video:tag>
      <video:tag>gradient descent</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>machine learning for beginners</video:tag>
      <video:tag>optimization</video:tag>
      <video:tag>loss function</video:tag>
      <video:tag>contour plot</video:tag>
      <video:tag>divergence</video:tag>
      <video:tag>convergence</video:tag>
      <video:tag>hyperparameters</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>neural networks</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>shorts</video:tag>
      <video:tag>ML explained</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/aV-k2NoEZ1s</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/aV-k2NoEZ1s/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/aV-k2NoEZ1s/hqdefault.jpg</video:thumbnail_loc>
      <video:title>99% Accurate Test, Positive Result: Only 50% Sick?</video:title>
      <video:description>A 99% accurate test says you&apos;re positive. So you&apos;re 99% likely sick, right? Wrong. Here&apos;s the base-rate trap in Bayes&apos; theorem, shown by counting 10,000 people.</video:description>
      <video:player_loc>https://www.youtube.com/embed/aV-k2NoEZ1s</video:player_loc>
      <video:duration>49</video:duration>
      <video:publication_date>2026-10-19T05:13:03.237Z</video:publication_date>
      <video:view_count>17</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>bayes theorem</video:tag>
      <video:tag>base rate fallacy</video:tag>
      <video:tag>base rate trap</video:tag>
      <video:tag>conditional probability</video:tag>
      <video:tag>probability</video:tag>
      <video:tag>medical test accuracy</video:tag>
      <video:tag>false positive</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>statistics</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>math shorts</video:tag>
      <video:tag>bayesian reasoning</video:tag>
      <video:tag>precision and recall</video:tag>
      <video:tag>data science</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/KQrOHLLq3T8</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/KQrOHLLq3T8/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/KQrOHLLq3T8/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Eigenvectors: The One Direction a Shear Can&apos;t Turn</video:title>
      <video:description>Almost every arrow turns when you transform space. Eigenvectors are the exception.</video:description>
      <video:player_loc>https://www.youtube.com/embed/KQrOHLLq3T8</video:player_loc>
      <video:duration>49</video:duration>
      <video:publication_date>2026-10-19T05:12:58.613Z</video:publication_date>
      <video:view_count>1477</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>eigenvectors</video:tag>
      <video:tag>eigenvalues</video:tag>
      <video:tag>linear algebra</video:tag>
      <video:tag>shear transform</video:tag>
      <video:tag>PCA</video:tag>
      <video:tag>principal component analysis</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>matrix transformation</video:tag>
      <video:tag>covariance matrix</video:tag>
      <video:tag>math for machine learning</video:tag>
      <video:tag>linear algebra visualized</video:tag>
      <video:tag>shorts</video:tag>
      <video:tag>learn machine learning</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/r5CCKbBHODg</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/r5CCKbBHODg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/r5CCKbBHODg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>A Dot Product Is Just Alignment, Explained Visually</video:title>
      <video:description>The dot product isn&apos;t just multiply and add. It measures how much two arrows point the same way.</video:description>
      <video:player_loc>https://www.youtube.com/embed/r5CCKbBHODg</video:player_loc>
      <video:duration>40</video:duration>
      <video:publication_date>2026-10-19T05:12:52.715Z</video:publication_date>
      <video:view_count>1625</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>dot product</video:tag>
      <video:tag>dot product explained</video:tag>
      <video:tag>linear algebra</video:tag>
      <video:tag>linear algebra for machine learning</video:tag>
      <video:tag>cosine similarity</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>vector projection</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>vector alignment</video:tag>
      <video:tag>semantic search</video:tag>
      <video:tag>math shorts</video:tag>
      <video:tag>ML for beginners</video:tag>
      <video:tag>orthogonal vectors</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/sOnTTY1zmAw</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/sOnTTY1zmAw/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/sOnTTY1zmAw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why Machine Learning Squares Its Mistakes (MSE by Hand)</video:title>
      <video:description>Why does machine learning square its errors? Work out mean squared error by hand with just three data points.</video:description>
      <video:player_loc>https://www.youtube.com/embed/sOnTTY1zmAw</video:player_loc>
      <video:duration>53</video:duration>
      <video:publication_date>2026-10-19T05:12:47.240Z</video:publication_date>
      <video:view_count>748</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>mean squared error</video:tag>
      <video:tag>MSE</video:tag>
      <video:tag>loss function</video:tag>
      <video:tag>squared error</video:tag>
      <video:tag>gradient descent</video:tag>
      <video:tag>ML for beginners</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>regression</video:tag>
      <video:tag>math for machine learning</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>AI explained</video:tag>
      <video:tag>linear regression</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/GQSqL3a3tOU</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/GQSqL3a3tOU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/GQSqL3a3tOU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Reinforcement Learning, Causal Inference and MLOps: The ML Capstone</video:title>
      <video:description>What happens when a model has to learn by acting, and then survive in the real world? This final episode ties the whole course together.</video:description>
      <video:player_loc>https://www.youtube.com/embed/GQSqL3a3tOU</video:player_loc>
      <video:duration>984</video:duration>
      <video:publication_date>2026-10-19T05:12:42.604Z</video:publication_date>
      <video:view_count>29</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>reinforcement learning</video:tag>
      <video:tag>q-learning</video:tag>
      <video:tag>bellman equation</video:tag>
      <video:tag>markov decision process</video:tag>
      <video:tag>policy gradient</video:tag>
      <video:tag>DQN</video:tag>
      <video:tag>gaussian process</video:tag>
      <video:tag>conformal prediction</video:tag>
      <video:tag>causal inference</video:tag>
      <video:tag>distribution shift</video:tag>
      <video:tag>anomaly detection</video:tag>
      <video:tag>ML fairness</video:tag>
      <video:tag>MLOps</video:tag>
      <video:tag>model drift</video:tag>
      <video:tag>ML capstone projects</video:tag>
      <video:tag>machine learning roadmap</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/5RTu_dLI92Q</loc>
    <lastmod>2026-10-19</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/5RTu_dLI92Q/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/5RTu_dLI92Q/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Transformers Explained: Attention, Math and How LLMs Really Work</video:title>
      <video:description>Every modern language model is built from one idea: attention. In this episode we build a transformer from the ground up, with real numbers and visuals.</video:description>
      <video:player_loc>https://www.youtube.com/embed/5RTu_dLI92Q</video:player_loc>
      <video:duration>1019</video:duration>
      <video:publication_date>2026-10-19T05:12:27.571Z</video:publication_date>
      <video:view_count>100</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>transformers</video:tag>
      <video:tag>attention is all you need</video:tag>
      <video:tag>self attention</video:tag>
      <video:tag>large language models</video:tag>
      <video:tag>LLM explained</video:tag>
      <video:tag>scaled dot product attention</video:tag>
      <video:tag>multi-head attention</video:tag>
      <video:tag>positional encoding</video:tag>
      <video:tag>tokenization</video:tag>
      <video:tag>byte pair encoding</video:tag>
      <video:tag>embeddings</video:tag>
      <video:tag>LoRA</video:tag>
      <video:tag>fine-tuning</video:tag>
      <video:tag>KV cache</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>GPT</video:tag>
      <video:tag>BERT</video:tag>
      <video:tag>layer normalization</video:tag>
      <video:tag>causal mask</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/YZg2ugwLMaQ</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/YZg2ugwLMaQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/YZg2ugwLMaQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>RNNs, LSTMs and Attention Explained With Real Numbers</video:title>
      <video:description>How does a neural network read a sentence one word at a time and still remember the beginning? In this episode we build recurrent networks from scratch, with real numbers at every step.</video:description>
      <video:player_loc>https://www.youtube.com/embed/YZg2ugwLMaQ</video:player_loc>
      <video:duration>1017</video:duration>
      <video:publication_date>2026-10-13T18:29:45.181Z</video:publication_date>
      <video:view_count>23</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>rnn</video:tag>
      <video:tag>lstm</video:tag>
      <video:tag>gru</video:tag>
      <video:tag>attention mechanism</video:tag>
      <video:tag>sequence models</video:tag>
      <video:tag>recurrent neural network</video:tag>
      <video:tag>backpropagation through time</video:tag>
      <video:tag>vanishing gradient</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>language modeling</video:tag>
      <video:tag>teacher forcing</video:tag>
      <video:tag>padding and masking</video:tag>
      <video:tag>seq2seq</video:tag>
      <video:tag>machine learning from zero</video:tag>
      <video:tag>neural networks explained</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/RXIt1OF8dYs</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/RXIt1OF8dYs/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/RXIt1OF8dYs/hqdefault.jpg</video:thumbnail_loc>
      <video:title>PyTorch and Convolutional Neural Networks: Tensors to Transfer Learning</video:title>
      <video:description>Ever wondered how a computer actually sees an image, and how a few lines of PyTorch can teach it to recognize one? In this episode we go from tensors and autograd to convolution computed by hand, then build, train and improve a real CNN.</video:description>
      <video:player_loc>https://www.youtube.com/embed/RXIt1OF8dYs</video:player_loc>
      <video:duration>1182</video:duration>
      <video:publication_date>2026-10-13T18:29:28.233Z</video:publication_date>
      <video:view_count>100</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>PyTorch</video:tag>
      <video:tag>PyTorch tutorial</video:tag>
      <video:tag>convolutional neural network</video:tag>
      <video:tag>CNN explained</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>autograd</video:tag>
      <video:tag>DataLoader</video:tag>
      <video:tag>training loop</video:tag>
      <video:tag>convolution by hand</video:tag>
      <video:tag>stride and padding</video:tag>
      <video:tag>pooling</video:tag>
      <video:tag>receptive field</video:tag>
      <video:tag>transfer learning</video:tag>
      <video:tag>data augmentation</video:tag>
      <video:tag>computer vision</video:tag>
      <video:tag>visualizing filters</video:tag>
      <video:tag>learn machine learning</video:tag>
      <video:tag>neural networks</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/6nbA8-8SlrQ</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/6nbA8-8SlrQ/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/6nbA8-8SlrQ/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Neural Networks From Scratch: Backpropagation Derived Step by Step</video:title>
      <video:description>Build a neural network from scratch in NumPy and derive backpropagation layer by layer, with real numbers at every step.</video:description>
      <video:player_loc>https://www.youtube.com/embed/6nbA8-8SlrQ</video:player_loc>
      <video:duration>1074</video:duration>
      <video:publication_date>2026-10-13T18:29:12.108Z</video:publication_date>
      <video:view_count>28</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>neural networks from scratch</video:tag>
      <video:tag>backpropagation explained</video:tag>
      <video:tag>backpropagation derivation</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>deep learning for beginners</video:tag>
      <video:tag>numpy neural network</video:tag>
      <video:tag>perceptron</video:tag>
      <video:tag>activation functions</video:tag>
      <video:tag>relu sigmoid tanh</video:tag>
      <video:tag>vanishing gradient</video:tag>
      <video:tag>exploding gradients</video:tag>
      <video:tag>he initialization</video:tag>
      <video:tag>xavier initialization</video:tag>
      <video:tag>adam optimizer</video:tag>
      <video:tag>dropout</video:tag>
      <video:tag>batch normalization</video:tag>
      <video:tag>gradient check</video:tag>
      <video:tag>chain rule neural network</video:tag>
      <video:tag>mini-batch gradient descent</video:tag>
      <video:tag>forward propagation</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/IOQ8selTgqc</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/IOQ8selTgqc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/IOQ8selTgqc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Time Series and Forecasting: ARIMA, Smoothing and Leakage Explained</video:title>
      <video:description>Why does shuffling your data ruin a forecast? Learn how time series really work, step by step, with numbers you can check by hand.</video:description>
      <video:player_loc>https://www.youtube.com/embed/IOQ8selTgqc</video:player_loc>
      <video:duration>1179</video:duration>
      <video:publication_date>2026-10-13T18:28:53.163Z</video:publication_date>
      <video:view_count>24</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>time series</video:tag>
      <video:tag>forecasting</video:tag>
      <video:tag>ARIMA</video:tag>
      <video:tag>autocorrelation</video:tag>
      <video:tag>stationarity</video:tag>
      <video:tag>differencing</video:tag>
      <video:tag>exponential smoothing</video:tag>
      <video:tag>moving average</video:tag>
      <video:tag>seasonality</video:tag>
      <video:tag>trend decomposition</video:tag>
      <video:tag>lag features</video:tag>
      <video:tag>time series cross validation</video:tag>
      <video:tag>MAPE</video:tag>
      <video:tag>MAE</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>Holt-Winters</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/QtrXGxCCndg</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/QtrXGxCCndg/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/QtrXGxCCndg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Model Evaluation and Selection Done Right: CV, Tuning, Leakage</video:title>
      <video:description>Your model scored 95 percent. Can you trust it? Probably not yet.</video:description>
      <video:player_loc>https://www.youtube.com/embed/QtrXGxCCndg</video:player_loc>
      <video:duration>826</video:duration>
      <video:publication_date>2026-10-13T18:28:37.796Z</video:publication_date>
      <video:view_count>10</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>model evaluation</video:tag>
      <video:tag>model selection</video:tag>
      <video:tag>cross-validation</video:tag>
      <video:tag>k-fold</video:tag>
      <video:tag>stratified k-fold</video:tag>
      <video:tag>group k-fold</video:tag>
      <video:tag>time series split</video:tag>
      <video:tag>hyperparameter tuning</video:tag>
      <video:tag>grid search</video:tag>
      <video:tag>random search</video:tag>
      <video:tag>bayesian optimization</video:tag>
      <video:tag>learning curve</video:tag>
      <video:tag>validation curve</video:tag>
      <video:tag>bootstrap confidence interval</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>nested cross-validation</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>machine learning course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/jFOKSPLdYCc</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/jFOKSPLdYCc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/jFOKSPLdYCc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>PCA, SVD, t-SNE and UMAP: Dimensionality Reduction Explained Visually</video:title>
      <video:description>How do you squeeze a thousand features into two without losing what matters? This video builds PCA from first principles, derives it with a Lagrange multiplier, connects it to SVD, then explains t-SNE and UMAP and how not to misread their pictures.</video:description>
      <video:player_loc>https://www.youtube.com/embed/jFOKSPLdYCc</video:player_loc>
      <video:duration>989</video:duration>
      <video:publication_date>2026-10-13T18:28:22.075Z</video:publication_date>
      <video:view_count>45</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>PCA</video:tag>
      <video:tag>principal component analysis</video:tag>
      <video:tag>SVD</video:tag>
      <video:tag>singular value decomposition</video:tag>
      <video:tag>t-SNE</video:tag>
      <video:tag>UMAP</video:tag>
      <video:tag>dimensionality reduction</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>explained variance</video:tag>
      <video:tag>whitening</video:tag>
      <video:tag>covariance matrix</video:tag>
      <video:tag>eigenvectors</video:tag>
      <video:tag>Lagrange multiplier</video:tag>
      <video:tag>curse of dimensionality</video:tag>
      <video:tag>data visualization</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>NumPy PCA from scratch</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/2tFni5w6xbY</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/2tFni5w6xbY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/2tFni5w6xbY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Clustering Explained: k-Means, Hierarchical, DBSCAN and GMM</video:title>
      <video:description>How do you find groups in data when nobody tells you the answer? In this episode we build clustering from the ground up, with math, worked numbers and animation.</video:description>
      <video:player_loc>https://www.youtube.com/embed/2tFni5w6xbY</video:player_loc>
      <video:duration>1112</video:duration>
      <video:publication_date>2026-10-13T18:28:07.772Z</video:publication_date>
      <video:view_count>19</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>clustering</video:tag>
      <video:tag>k-means</video:tag>
      <video:tag>k-means++</video:tag>
      <video:tag>hierarchical clustering</video:tag>
      <video:tag>dendrogram</video:tag>
      <video:tag>DBSCAN</video:tag>
      <video:tag>gaussian mixture model</video:tag>
      <video:tag>expectation maximization</video:tag>
      <video:tag>silhouette score</video:tag>
      <video:tag>elbow method</video:tag>
      <video:tag>unsupervised learning</video:tag>
      <video:tag>machine learning tutorial</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>Lloyd&apos;s algorithm</video:tag>
      <video:tag>cluster evaluation</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/N7cNfErHgS0</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/N7cNfErHgS0/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/N7cNfErHgS0/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Support Vector Machines and Kernels Explained: Margins, Duals, RBF</video:title>
      <video:description>What if the best classifier is the one that stays as far from the data as possible? In this episode we build Support Vector Machines from the ground up.</video:description>
      <video:player_loc>https://www.youtube.com/embed/N7cNfErHgS0</video:player_loc>
      <video:duration>1091</video:duration>
      <video:publication_date>2026-10-13T18:27:49.963Z</video:publication_date>
      <video:view_count>30</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>support vector machine</video:tag>
      <video:tag>SVM</video:tag>
      <video:tag>kernel trick</video:tag>
      <video:tag>RBF kernel</video:tag>
      <video:tag>polynomial kernel</video:tag>
      <video:tag>hinge loss</video:tag>
      <video:tag>soft margin</video:tag>
      <video:tag>hard margin</video:tag>
      <video:tag>Lagrange multipliers</video:tag>
      <video:tag>dual form</video:tag>
      <video:tag>SVR</video:tag>
      <video:tag>support vector regression</video:tag>
      <video:tag>scikit-learn SVC</video:tag>
      <video:tag>C and gamma tuning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>maximum margin classifier</video:tag>
      <video:tag>KKT conditions</video:tag>
      <video:tag>machine learning from scratch</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/5EvGJ8-1NHY</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/5EvGJ8-1NHY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/5EvGJ8-1NHY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Random Forests, Boosting and SHAP Explained With Real Numbers</video:title>
      <video:description>Why does a crowd of weak decision trees beat one clever model? This episode builds bagging, random forests, AdaBoost, gradient boosting, XGBoost, stacking and SHAP from the ground up, with hand-worked numbers.</video:description>
      <video:player_loc>https://www.youtube.com/embed/5EvGJ8-1NHY</video:player_loc>
      <video:duration>980</video:duration>
      <video:publication_date>2026-10-13T18:27:32.601Z</video:publication_date>
      <video:view_count>24</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>random forest</video:tag>
      <video:tag>gradient boosting</video:tag>
      <video:tag>adaboost</video:tag>
      <video:tag>xgboost</video:tag>
      <video:tag>lightgbm</video:tag>
      <video:tag>catboost</video:tag>
      <video:tag>shap</video:tag>
      <video:tag>shapley values</video:tag>
      <video:tag>bagging</video:tag>
      <video:tag>bootstrap</video:tag>
      <video:tag>ensemble learning</video:tag>
      <video:tag>stacking</video:tag>
      <video:tag>out-of-bag</video:tag>
      <video:tag>feature importance</video:tag>
      <video:tag>machine learning tutorial</video:tag>
      <video:tag>machine learning course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/k-ZNVu4GNMs</loc>
    <lastmod>2026-10-13</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/k-ZNVu4GNMs/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/k-ZNVu4GNMs/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Decision Trees Explained: Entropy, Gini, Pruning and Code From Scratch</video:title>
      <video:description>How does a machine learn a flowchart from data? In this episode we build a decision tree by hand, with real numbers, from the very first split to the final leaf.</video:description>
      <video:player_loc>https://www.youtube.com/embed/k-ZNVu4GNMs</video:player_loc>
      <video:duration>927</video:duration>
      <video:publication_date>2026-10-13T18:27:18.334Z</video:publication_date>
      <video:view_count>36</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>decision trees</video:tag>
      <video:tag>decision tree machine learning</video:tag>
      <video:tag>entropy</video:tag>
      <video:tag>information gain</video:tag>
      <video:tag>gini impurity</video:tag>
      <video:tag>regression trees</video:tag>
      <video:tag>variance reduction</video:tag>
      <video:tag>pruning</video:tag>
      <video:tag>overfitting</video:tag>
      <video:tag>feature importance</video:tag>
      <video:tag>scikit-learn decision tree</video:tag>
      <video:tag>decision tree from scratch</video:tag>
      <video:tag>machine learning tutorial</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>CART algorithm</video:tag>
      <video:tag>recursive partitioning</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/H7-1wi9Nh8A</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/H7-1wi9Nh8A/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/H7-1wi9Nh8A/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Classification Metrics, Thresholds and Calibration Explained Visually</video:title>
      <video:description>A model with 98 percent accuracy can be completely useless. In this episode we build classification metrics from scratch and learn when to trust each one.</video:description>
      <video:player_loc>https://www.youtube.com/embed/H7-1wi9Nh8A</video:player_loc>
      <video:duration>1036</video:duration>
      <video:publication_date>2026-10-12T11:20:56.000Z</video:publication_date>
      <video:view_count>75</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>classification metrics</video:tag>
      <video:tag>confusion matrix</video:tag>
      <video:tag>precision and recall</video:tag>
      <video:tag>F1 score</video:tag>
      <video:tag>ROC curve</video:tag>
      <video:tag>AUC</video:tag>
      <video:tag>precision recall curve</video:tag>
      <video:tag>class imbalance</video:tag>
      <video:tag>threshold selection</video:tag>
      <video:tag>calibration</video:tag>
      <video:tag>calibration curve</video:tag>
      <video:tag>Brier score</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>logistic regression</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>data science</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/_e4mvvr9lkc</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/_e4mvvr9lkc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/_e4mvvr9lkc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Logistic Regression and Softmax: Derived from Scratch, Step by Step</video:title>
      <video:description>How does a model turn a straight line into a probability? In this episode we derive logistic regression and softmax from first principles, with every step worked out in numbers.</video:description>
      <video:player_loc>https://www.youtube.com/embed/_e4mvvr9lkc</video:player_loc>
      <video:duration>1163</video:duration>
      <video:publication_date>2026-10-12T11:20:44.000Z</video:publication_date>
      <video:view_count>41</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>logistic regression</video:tag>
      <video:tag>softmax</video:tag>
      <video:tag>sigmoid function</video:tag>
      <video:tag>binary cross-entropy</video:tag>
      <video:tag>log odds</video:tag>
      <video:tag>maximum likelihood</video:tag>
      <video:tag>gradient descent</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>multiclass classification</video:tag>
      <video:tag>one vs rest</video:tag>
      <video:tag>decision boundary</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>numpy from scratch</video:tag>
      <video:tag>machine learning for beginners</video:tag>
      <video:tag>classification</video:tag>
      <video:tag>cross entropy loss</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/Jy5lkk6zkiA</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/Jy5lkk6zkiA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/Jy5lkk6zkiA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Distributions, Expectation and the Central Limit Theorem Explained Visually</video:title>
      <video:description>Why does the bell curve show up everywhere, even when the data itself is not bell shaped? In this episode we build the answer from the ground up.</video:description>
      <video:player_loc>https://www.youtube.com/embed/Jy5lkk6zkiA</video:player_loc>
      <video:duration>1165</video:duration>
      <video:publication_date>2026-10-12T11:20:33.000Z</video:publication_date>
      <video:view_count>73</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>probability distributions</video:tag>
      <video:tag>central limit theorem</video:tag>
      <video:tag>expectation and variance</video:tag>
      <video:tag>normal distribution</video:tag>
      <video:tag>binomial distribution</video:tag>
      <video:tag>poisson distribution</video:tag>
      <video:tag>law of large numbers</video:tag>
      <video:tag>confidence intervals</video:tag>
      <video:tag>hypothesis testing</video:tag>
      <video:tag>p-value</video:tag>
      <video:tag>random variables</video:tag>
      <video:tag>PDF CDF PMF</video:tag>
      <video:tag>statistics for machine learning</video:tag>
      <video:tag>math for machine learning</video:tag>
      <video:tag>joint distribution</video:tag>
      <video:tag>manim</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/g3J4jvnm8Bk</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/g3J4jvnm8Bk/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/g3J4jvnm8Bk/hqdefault.jpg</video:thumbnail_loc>
      <video:title>k-Nearest Neighbors and Naive Bayes Explained: Distance, Bayes, Spam Filters</video:title>
      <video:description>What if the best classifier were just a lookup, and the other one a clever use of counting?</video:description>
      <video:player_loc>https://www.youtube.com/embed/g3J4jvnm8Bk</video:player_loc>
      <video:duration>1005</video:duration>
      <video:publication_date>2026-10-12T11:20:16.000Z</video:publication_date>
      <video:view_count>42</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>k-nearest neighbors</video:tag>
      <video:tag>knn</video:tag>
      <video:tag>naive bayes</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>bayes theorem</video:tag>
      <video:tag>spam filter</video:tag>
      <video:tag>laplace smoothing</video:tag>
      <video:tag>curse of dimensionality</video:tag>
      <video:tag>euclidean distance</video:tag>
      <video:tag>manhattan distance</video:tag>
      <video:tag>minkowski distance</video:tag>
      <video:tag>gaussian naive bayes</video:tag>
      <video:tag>multinomial naive bayes</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>python machine learning</video:tag>
      <video:tag>classification algorithms</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/CkyQHRN9-Q4</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/CkyQHRN9-Q4/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/CkyQHRN9-Q4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Linear Regression Explained: Normal Equation to Gradient Descent</video:title>
      <video:description>Two ways to fit the same line: solve it in one shot with the normal equation, or walk downhill with gradient descent. Which one should you trust?</video:description>
      <video:player_loc>https://www.youtube.com/embed/CkyQHRN9-Q4</video:player_loc>
      <video:duration>1002</video:duration>
      <video:publication_date>2026-10-12T10:50:56.000Z</video:publication_date>
      <video:view_count>19</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>linear regression</video:tag>
      <video:tag>normal equation</video:tag>
      <video:tag>gradient descent</video:tag>
      <video:tag>machine learning tutorial</video:tag>
      <video:tag>least squares</video:tag>
      <video:tag>MSE</video:tag>
      <video:tag>MAE</video:tag>
      <video:tag>RMSE</video:tag>
      <video:tag>matrix calculus</video:tag>
      <video:tag>numpy from scratch</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>feature scaling</video:tag>
      <video:tag>polynomial regression</video:tag>
      <video:tag>residual analysis</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>multiple linear regression</video:tag>
      <video:tag>ordinary least squares</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/8ayFobAlFks</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/8ayFobAlFks/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/8ayFobAlFks/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Overfitting and the Bias-Variance Trade-off, Derived Step by Step</video:title>
      <video:description>Why does a model that scores perfectly on training data fail on new data? In this episode we build the answer from scratch: polynomial fits, training versus validation curves, and a full step-by-step derivation of the bias-variance decomposition.</video:description>
      <video:player_loc>https://www.youtube.com/embed/8ayFobAlFks</video:player_loc>
      <video:duration>988</video:duration>
      <video:publication_date>2026-10-12T10:50:38.000Z</video:publication_date>
      <video:view_count>15</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>overfitting</video:tag>
      <video:tag>underfitting</video:tag>
      <video:tag>bias variance tradeoff</video:tag>
      <video:tag>generalization</video:tag>
      <video:tag>model complexity</video:tag>
      <video:tag>polynomial regression</video:tag>
      <video:tag>validation error</video:tag>
      <video:tag>training error</video:tag>
      <video:tag>bias variance decomposition</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>baseline model</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>machine learning tutorial</video:tag>
      <video:tag>python simulation</video:tag>
      <video:tag>expected squared error</video:tag>
      <video:tag>train test split</video:tag>
      <video:tag>cross validation</video:tag>
      <video:tag>ML for beginners</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/lxQokWFy5Qc</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/lxQokWFy5Qc/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/lxQokWFy5Qc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Python and Data Foundations for ML: NumPy, Pandas, EDA and Data Leakage</video:title>
      <video:description>Most machine learning bugs hide in the data code, not the algorithm. In this episode you learn the Python, NumPy, Pandas and plotting skills every ML project relies on, and how to avoid data leakage.</video:description>
      <video:player_loc>https://www.youtube.com/embed/lxQokWFy5Qc</video:player_loc>
      <video:duration>1013</video:duration>
      <video:publication_date>2026-10-12T10:50:27.000Z</video:publication_date>
      <video:view_count>13</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>python for machine learning</video:tag>
      <video:tag>numpy tutorial</video:tag>
      <video:tag>pandas tutorial</video:tag>
      <video:tag>broadcasting numpy</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>train test split</video:tag>
      <video:tag>exploratory data analysis</video:tag>
      <video:tag>matplotlib</video:tag>
      <video:tag>seaborn</video:tag>
      <video:tag>jupyter notebook</video:tag>
      <video:tag>scikit-learn</video:tag>
      <video:tag>missing values</video:tag>
      <video:tag>outliers</video:tag>
      <video:tag>feature types</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>data science foundations</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/bbq41oFCMUw</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/bbq41oFCMUw/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/bbq41oFCMUw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Loss Functions and Gradient Descent Explained Visually, With Numbers</video:title>
      <video:description>How does a machine actually learn? It rolls downhill. In this video we build loss functions and gradient descent from scratch, with every number worked out by hand.</video:description>
      <video:player_loc>https://www.youtube.com/embed/bbq41oFCMUw</video:player_loc>
      <video:duration>1044</video:duration>
      <video:publication_date>2026-10-12T10:50:10.000Z</video:publication_date>
      <video:view_count>126</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>gradient descent</video:tag>
      <video:tag>loss function</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>MSE vs MAE</video:tag>
      <video:tag>learning rate</video:tag>
      <video:tag>stochastic gradient descent</video:tag>
      <video:tag>mini-batch</video:tag>
      <video:tag>momentum</video:tag>
      <video:tag>Adam optimizer</video:tag>
      <video:tag>convex optimization</video:tag>
      <video:tag>saddle point</video:tag>
      <video:tag>local minimum</video:tag>
      <video:tag>NumPy gradient descent</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>optimization for machine learning</video:tag>
      <video:tag>cost function</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/0eev3TzfMMU</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/0eev3TzfMMU/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/0eev3TzfMMU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Maximum Likelihood, Entropy and Cross-Entropy Explained From Scratch</video:title>
      <video:description>Why does almost every classifier in machine learning minimize cross-entropy? Because it is secretly maximum likelihood in disguise.</video:description>
      <video:player_loc>https://www.youtube.com/embed/0eev3TzfMMU</video:player_loc>
      <video:duration>951</video:duration>
      <video:publication_date>2026-10-12T10:49:52.000Z</video:publication_date>
      <video:view_count>69</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>maximum likelihood</video:tag>
      <video:tag>maximum likelihood estimation</video:tag>
      <video:tag>MLE</video:tag>
      <video:tag>entropy</video:tag>
      <video:tag>cross-entropy</video:tag>
      <video:tag>cross entropy loss</video:tag>
      <video:tag>KL divergence</video:tag>
      <video:tag>log-likelihood</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>information theory</video:tag>
      <video:tag>MAP estimation</video:tag>
      <video:tag>numerical stability</video:tag>
      <video:tag>underflow</video:tag>
      <video:tag>probability for machine learning</video:tag>
      <video:tag>negative log likelihood</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/IpjebaPURYo</loc>
    <lastmod>2026-10-12</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/IpjebaPURYo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/IpjebaPURYo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Regularization and Feature Engineering: Ridge, Lasso and Leak-Free Pipelines</video:title>
      <video:description>Why do models with more features often get worse on new data, and how do you fix it? In this episode we build the full toolkit: polynomial features, categorical encoding, scaling, multicollinearity, ridge regression with a full derivation of its closed form, lasso, elastic net, and the geometry that explains why L1 creates sparsity.</video:description>
      <video:player_loc>https://www.youtube.com/embed/IpjebaPURYo</video:player_loc>
      <video:duration>1134</video:duration>
      <video:publication_date>2026-10-12T10:49:36.000Z</video:publication_date>
      <video:view_count>17</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>regularization</video:tag>
      <video:tag>feature engineering</video:tag>
      <video:tag>ridge regression</video:tag>
      <video:tag>lasso regression</video:tag>
      <video:tag>elastic net</video:tag>
      <video:tag>L1 vs L2</video:tag>
      <video:tag>multicollinearity</video:tag>
      <video:tag>polynomial features</video:tag>
      <video:tag>one-hot encoding</video:tag>
      <video:tag>standardization</video:tag>
      <video:tag>feature selection</video:tag>
      <video:tag>scikit-learn pipeline</video:tag>
      <video:tag>data leakage</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>overfitting</video:tag>
      <video:tag>normal equation</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/w8eFAvJn69c</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/w8eFAvJn69c/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/w8eFAvJn69c/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Probability Basics and Bayes&apos; Theorem: Why a 90% Accurate Test Can Be Wrong</video:title>
      <video:description>A positive result on a 90 percent accurate medical test does not mean you are 90 percent likely to be sick. In this episode we find out why, using probability and Bayes&apos; theorem.</video:description>
      <video:player_loc>https://www.youtube.com/embed/w8eFAvJn69c</video:player_loc>
      <video:duration>353</video:duration>
      <video:publication_date>2026-10-11T14:30:29.000Z</video:publication_date>
      <video:view_count>13</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>bayes theorem</video:tag>
      <video:tag>probability basics</video:tag>
      <video:tag>conditional probability</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>statistics for machine learning</video:tag>
      <video:tag>variance and standard deviation</video:tag>
      <video:tag>covariance and correlation</video:tag>
      <video:tag>correlation vs causation</video:tag>
      <video:tag>base rate fallacy</video:tag>
      <video:tag>medical test probability</video:tag>
      <video:tag>bayesian updating</video:tag>
      <video:tag>independence probability</video:tag>
      <video:tag>mean median mode</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>python simulation probability</video:tag>
      <video:tag>manim</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/molE_I8OPeY</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/molE_I8OPeY/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/molE_I8OPeY/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Partial Derivatives, Gradients, Jacobians and Hessians Explained Visually</video:title>
      <video:description>What happens when a function has many inputs? Machine learning models have millions of them, and calculus still works.</video:description>
      <video:player_loc>https://www.youtube.com/embed/molE_I8OPeY</video:player_loc>
      <video:duration>384</video:duration>
      <video:publication_date>2026-10-11T14:21:08.000Z</video:publication_date>
      <video:view_count>70</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>partial derivatives</video:tag>
      <video:tag>gradient</video:tag>
      <video:tag>jacobian</video:tag>
      <video:tag>hessian</video:tag>
      <video:tag>multivariable calculus</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>calculus for machine learning</video:tag>
      <video:tag>directional derivative</video:tag>
      <video:tag>computational graph</video:tag>
      <video:tag>chain rule</video:tag>
      <video:tag>backpropagation basics</video:tag>
      <video:tag>finite differences</video:tag>
      <video:tag>contour plot</video:tag>
      <video:tag>positive definite matrix</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>manim</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/IvwdUuBQQGo</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/IvwdUuBQQGo/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/IvwdUuBQQGo/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Derivatives From First Principles: Slopes, Rules and Why ML Needs Them</video:title>
      <video:description>What does it mean for a curve to have a slope at a single point? In this episode we build the derivative from scratch, using nothing but a moving secant line and a limit.</video:description>
      <video:player_loc>https://www.youtube.com/embed/IvwdUuBQQGo</video:player_loc>
      <video:duration>314</video:duration>
      <video:publication_date>2026-10-11T14:08:53.000Z</video:publication_date>
      <video:view_count>88</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>derivatives</video:tag>
      <video:tag>calculus for machine learning</video:tag>
      <video:tag>derivative from first principles</video:tag>
      <video:tag>limit definition of derivative</video:tag>
      <video:tag>power rule</video:tag>
      <video:tag>product rule</video:tag>
      <video:tag>chain rule</video:tag>
      <video:tag>quotient rule</video:tag>
      <video:tag>derivative of e^x</video:tag>
      <video:tag>derivative of ln x</video:tag>
      <video:tag>numerical derivative python</video:tag>
      <video:tag>sympy</video:tag>
      <video:tag>integration area under curve</video:tag>
      <video:tag>math for machine learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>gradient descent intuition</video:tag>
      <video:tag>secant and tangent line</video:tag>
      <video:tag>calculus visualization</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/-AbdWaQPATs</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/-AbdWaQPATs/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/-AbdWaQPATs/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Eigenvectors, SVD and Positive-Definite Matrices Explained Visually</video:title>
      <video:description>Most vectors get knocked off course by a matrix. A few special ones don&apos;t. Learn why eigenvectors matter, how to find them by hand, and how SVD can compress an image.</video:description>
      <video:player_loc>https://www.youtube.com/embed/-AbdWaQPATs</video:player_loc>
      <video:duration>403</video:duration>
      <video:publication_date>2026-10-11T13:58:04.000Z</video:publication_date>
      <video:view_count>188</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>eigenvectors</video:tag>
      <video:tag>eigenvalues</video:tag>
      <video:tag>singular value decomposition</video:tag>
      <video:tag>SVD</video:tag>
      <video:tag>positive definite matrix</video:tag>
      <video:tag>linear algebra for machine learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>characteristic equation</video:tag>
      <video:tag>low rank approximation</video:tag>
      <video:tag>image compression SVD</video:tag>
      <video:tag>PCA</video:tag>
      <video:tag>NumPy linalg</video:tag>
      <video:tag>3Blue1Brown style</video:tag>
      <video:tag>math for ML</video:tag>
      <video:tag>machine learning from zero to advanced</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/FHu18ys-mhA</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/FHu18ys-mhA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/FHu18ys-mhA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Matrices as Transformations: See Linear Algebra Move</video:title>
      <video:description>What if a matrix isn&apos;t a table of numbers, but a machine that bends space itself?</video:description>
      <video:player_loc>https://www.youtube.com/embed/FHu18ys-mhA</video:player_loc>
      <video:duration>347</video:duration>
      <video:publication_date>2026-10-11T13:40:43.000Z</video:publication_date>
      <video:view_count>95</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>matrices</video:tag>
      <video:tag>linear algebra</video:tag>
      <video:tag>matrix transformations</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>matrix multiplication</video:tag>
      <video:tag>determinant</video:tag>
      <video:tag>inverse matrix</video:tag>
      <video:tag>rank of a matrix</video:tag>
      <video:tag>span and basis</video:tag>
      <video:tag>linear independence</video:tag>
      <video:tag>numpy tutorial</video:tag>
      <video:tag>matrix vector multiplication</video:tag>
      <video:tag>linear algebra for machine learning</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>machine learning course</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/Ax-Uu4PxPbA</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/Ax-Uu4PxPbA/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/Ax-Uu4PxPbA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Vectors and Dot Products: The Geometry Behind Every ML Prediction</video:title>
      <video:description>Every machine learning prediction starts with one tiny operation: the dot product. In this episode we build vectors from scratch and see them as arrows and as rows of data.</video:description>
      <video:player_loc>https://www.youtube.com/embed/Ax-Uu4PxPbA</video:player_loc>
      <video:duration>243</video:duration>
      <video:publication_date>2026-10-11T13:31:11.000Z</video:publication_date>
      <video:view_count>58</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>vectors</video:tag>
      <video:tag>dot product</video:tag>
      <video:tag>linear algebra for machine learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>cosine similarity</video:tag>
      <video:tag>euclidean distance</video:tag>
      <video:tag>vector norm</video:tag>
      <video:tag>orthogonal vectors</video:tag>
      <video:tag>vector projection</video:tag>
      <video:tag>numpy dot product</video:tag>
      <video:tag>feature vector</video:tag>
      <video:tag>tensors</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>linear algebra beginners</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/yMwfees6Z6Y</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/yMwfees6Z6Y/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/yMwfees6Z6Y/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Algebra Essentials for Machine Learning: Functions, Exponents, Logs and Sigma</video:title>
      <video:description>Every machine learning formula is built from a few algebra ideas. In this episode you learn them from zero and then read a real loss formula symbol by symbol.</video:description>
      <video:player_loc>https://www.youtube.com/embed/yMwfees6Z6Y</video:player_loc>
      <video:duration>399</video:duration>
      <video:publication_date>2026-10-11T13:25:38.000Z</video:publication_date>
      <video:view_count>131</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>machine learning math</video:tag>
      <video:tag>algebra for machine learning</video:tag>
      <video:tag>functions</video:tag>
      <video:tag>exponents</video:tag>
      <video:tag>logarithms</video:tag>
      <video:tag>sigma notation</video:tag>
      <video:tag>summation notation</video:tag>
      <video:tag>mean squared error</video:tag>
      <video:tag>slope intercept form</video:tag>
      <video:tag>exponent laws</video:tag>
      <video:tag>product notation</video:tag>
      <video:tag>math for AI</video:tag>
      <video:tag>ML for beginners</video:tag>
      <video:tag>loss function</video:tag>
      <video:tag>manim</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/aXu7_PC4vgE</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/aXu7_PC4vgE/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/aXu7_PC4vgE/hqdefault.jpg</video:thumbnail_loc>
      <video:title>What Is Machine Learning? A Visual Introduction for Beginners</video:title>
      <video:description>How does your email know which messages are spam without anyone writing every rule? This video is a visual, math-light introduction to machine learning.</video:description>
      <video:player_loc>https://www.youtube.com/embed/aXu7_PC4vgE</video:player_loc>
      <video:duration>332</video:duration>
      <video:publication_date>2026-10-11T13:16:36.000Z</video:publication_date>
      <video:view_count>95</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>machine learning</video:tag>
      <video:tag>what is machine learning</video:tag>
      <video:tag>machine learning for beginners</video:tag>
      <video:tag>ml introduction</video:tag>
      <video:tag>AI vs machine learning</video:tag>
      <video:tag>deep learning</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>supervised learning</video:tag>
      <video:tag>unsupervised learning</video:tag>
      <video:tag>reinforcement learning</video:tag>
      <video:tag>self-supervised learning</video:tag>
      <video:tag>machine learning course</video:tag>
      <video:tag>ml workflow</video:tag>
      <video:tag>visual explanation</video:tag>
      <video:tag>python machine learning</video:tag>
      <video:tag>loss function</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/y8Zrg_3_p7A</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/y8Zrg_3_p7A/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/y8Zrg_3_p7A/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Why the Pythagorean Theorem Actually Works (Visual Proof)</video:title>
      <video:description>You&apos;ve memorized a squared plus b squared equals c squared, but do you know why it&apos;s true?</video:description>
      <video:player_loc>https://www.youtube.com/embed/y8Zrg_3_p7A</video:player_loc>
      <video:duration>51</video:duration>
      <video:publication_date>2026-10-11T08:48:22.000Z</video:publication_date>
      <video:view_count>1735</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>pythagorean theorem</video:tag>
      <video:tag>why pythagorean theorem works</video:tag>
      <video:tag>pythagorean theorem proof</video:tag>
      <video:tag>visual proof</video:tag>
      <video:tag>math shorts</video:tag>
      <video:tag>geometry</video:tag>
      <video:tag>right triangle</video:tag>
      <video:tag>a squared plus b squared</video:tag>
      <video:tag>rearrangement proof</video:tag>
      <video:tag>math explained</video:tag>
      <video:tag>proof without words</video:tag>
      <video:tag>learn math</video:tag>
      <video:tag>mathematics</video:tag>
      <video:tag>3blue1brown style</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
  <url>
    <loc>https://easy-explain-app.vercel.app/lesson/iB_zMCG3CMM</loc>
    <lastmod>2026-10-11</lastmod>
    <priority>0.7</priority>
    <image:image><image:loc>https://i.ytimg.com/vi/iB_zMCG3CMM/hqdefault.jpg</image:loc></image:image>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/iB_zMCG3CMM/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Correlation vs Covariance: What&apos;s the Difference?</video:title>
      <video:description>Do two things move together? Covariance and correlation answer that, but only one is easy to compare.</video:description>
      <video:player_loc>https://www.youtube.com/embed/iB_zMCG3CMM</video:player_loc>
      <video:duration>63</video:duration>
      <video:publication_date>2026-10-11T08:45:31.000Z</video:publication_date>
      <video:view_count>929</video:view_count>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>correlation</video:tag>
      <video:tag>covariance</video:tag>
      <video:tag>statistics</video:tag>
      <video:tag>data science</video:tag>
      <video:tag>correlation vs covariance</video:tag>
      <video:tag>pearson correlation</video:tag>
      <video:tag>machine learning</video:tag>
      <video:tag>math explained</video:tag>
      <video:tag>manim</video:tag>
      <video:tag>statistics for beginners</video:tag>
      <video:tag>scatter plot</video:tag>
      <video:tag>portfolio diversification</video:tag>
      <video:tag>feature selection</video:tag>
      <video:tag>correlation is not causation</video:tag>
      <video:tag>shorts</video:tag>
    </video:video>
  </url>
</urlset>
