Усі уроки

Курс

ШІ 10 класу: глибоке навчання і мультимодальний ШІ

Збирай і навчай нейромережі в PyTorch для зображень, тексту і звуку.

Іди уроками по порядку. Наприкінці ти вмієш обчислити вихід нейрона, порівняти активації ReLU, sigmoid і softmax і написати прямий прохід маленької мережі на NumPy. Ти вмієш вибрати втрати, пояснити градієнтний спуск і зворотне поширення і написати скрипт із повним циклом навчання і тесту в PyTorch. Ти вмієш навчити класифікатор зображень на CNN, навчити класифікатор тональності відрізняти позитивні відгуки від негативних, пояснити, як увага зважує інші токени, і класифікувати короткі звукові кліпи. Ти вмієш зменшувати перенавчання, донавчити попередньо навчену модель на нових класах, групувати помилки і знаходити їхню причину та представити розумний монітор дикої природи, перевірений на небачених зображеннях.

Як користуватися цими уроками

  • Почни з уроку, де написано Зроби це. Іди далі, коли сам робиш рядок під назвою.
  • Спочатку грай: Ігри. Потім зроби: Перевірка. 8 із 10 правильно для заліку. Аркуші на папері. Відповіді внизу.
  • Кожен урок спирається на попередній. Записуй кожен запуск навчання: налаштування, криву втрат і бал тесту.
  • Уроки з кодом ідуть на Python і PyTorch у безкоштовному онлайн-зошиті з GPU. Вистачить маленьких моделей і маленьких наборів даних. Бери лише відкриті набори, які тобі можна використовувати. Ніколи не навчай на фото людей без їхнього дозволу.

У кожному уроці є ігри, перевірка та аркуші.

0 із 36

Основи нейромереж

  1. 1НейрониОбчисли вихід нейрона з входів, ваг і зміщення.
    • Запиши зважену суму плюс зміщення.
    • Порахуй її вручну для трьох входів.
    • Порахуй її в коді скалярним добутком.
  2. 2АктиваціїПорівняй активації ReLU, sigmoid і softmax.
    • Побудуй графік кожної активації.
    • Поясни, навіщо мережі потрібна нелінійна активація.
    • Використай softmax, щоб перетворити оцінки на ймовірності.
  3. 3Шари і мережіСкладай шари в мережу.
    • Запиши шар як множення матриць.
    • Стеж за формою даних у кожному шарі.
    • Порахуй параметри мережі.
  4. 4Маленька мережаНапиши прямий прохід маленької мережі на NumPy.
    • Збери мережу з двох шарів на NumPy.
    • Прожени крізь неї батч входів.
    • Перевір форму виходу.

Навчання нейромереж

  1. 5ВтратиВибери втрати для задачі і порахуй їх.
    • Використай середньоквадратичну похибку для регресії.
    • Використай перехресну ентропію для класифікації.
    • Скажи, що означає, коли втрати падають.
  2. 6Градієнтний спускПоясни, як градієнтний спуск рухає ваги вниз.
    • Знайди нахил кривої втрат.
    • Роби кроки зі швидкістю навчання.
    • Подивись, що буде, якщо швидкість завелика або замала.
  3. 7Зворотне поширенняПростеж зворотне поширення помилки назад по мережі.
    • Застосуй ланцюгове правило до крихітної мережі.
    • Порахуй один градієнт вручну.
    • Звір його з автоматичним диференціюванням.
  4. 8Навчи мережуНавчи маленьку мережу і побудуй графік втрат.
    • Навчай міні-батчами.
    • Побудуй графік втрат навчання і валідації.
    • Зупинись, коли втрати валідації перестають поліпшуватися.

Фреймворки глибокого навчання

  1. 9ТензориСтворюй тензори PyTorch і змінюй їхню форму.
    • Створи тензори і перевір форму і тип.
    • Змінюй форму, складай і нарізай їх.
    • Перенеси тензори на GPU.
  2. 10МодуліЗбери модель модулями torch.nn.
    • Зроби підклас nn.Module.
    • Використай шари Linear і активації.
    • Виведи модель і кількість її параметрів.
  3. 11ОптимізаториНавчай оптимізаторами SGD і Adam.
    • Використай zero_grad, backward і step.
    • Порівняй SGD і Adam на одній задачі.
    • Використай розклад швидкості навчання.
  4. 12Скрипт навчанняНапиши скрипт із повним циклом навчання і тесту.
    • Завантаж дані через DataLoader.
    • Навчи, перевір на валідації і протестуй.
    • Збережи найкращу модель.

Комп’ютерний зір

  1. 13Зображення як тензориЗавантажуй зображення як тензори і нормалізуй їх.
    • Завантаж зображення як канали, висоту і ширину.
    • Зміни розмір і нормалізуй його.
    • Покажи батч сіткою.
  2. 14ЗгорткиПоясни, як фільтр згортки знаходить краї.
    • Проведи фільтр 3×3 по зображенню вручну.
    • Застосуй фільтри країв у коді.
    • Поясни stride, padding і pooling.
  3. 15CNNЗбери згорткову нейромережу, CNN.
    • Склади шари згортки, активації і pooling.
    • Розгорни і додай голову класифікатора.
    • Стеж за формами по мережі.
  4. 16Класифікатор зображеньНавчи класифікатор зображень на CNN.
    • Навчи на маленькому наборі зображень.
    • Повідом точність на тесті.
    • Покажи зображення, які він класифікував неправильно.

Обробка природної мови

  1. 17ТокенізаціяЗроби токенізацію: перетвори текст на токени і ID.
    • Порівняй токени слів і підслів.
    • Збери словник.
    • Доповни послідовності до однієї довжини.
  2. 18ЕмбедингиПоясни, як ембединги ставлять схожі слова поруч.
    • Використай шар ембедингів.
    • Знайди найближчі слова до слова.
    • Побудуй графік ембедингів у двох вимірах.
  3. 19Моделі текстуЗбери модель тексту, яка читає послідовність токенів.
    • Усередни ембединги в один вектор.
    • Використай простий рекурентний шар.
    • Порівняй обидва способи.
  4. 20Класифікатор тональностіНавчи класифікатор тональності відрізняти позитивні відгуки від негативних.
    • Навчи на наборі відгуків.
    • Повідом частку правильних, влучність і повноту.
    • Знайди відгуки, які його дурять, наприклад сарказм.

Трансформери

  1. 21УвагаПоясни, як увага зважує інші токени.
    • Поясни запити, ключі і значення.
    • Порахуй ваги уваги для короткого речення.
    • Скажи, чому увага допомагає сенсу на великій відстані.
  2. 22Блоки трансформераНазви частини блока трансформера.
    • Назви багатоголову увагу, шар feed-forward і шари нормалізації.
    • Поясни залишкові зв’язки.
    • Поясни позиційні кодування.
  3. 23Попередньо навчені моделіВикористай попередньо навчену модель-трансформер для задачі.
    • Завантаж попередньо навчену модель і токенізатор.
    • Класифікуй нею текст.
    • Порівняй її зі своєю моделлю тональності.
  4. 24Карти увагиЧитай карту уваги.
    • Побудуй ваги уваги як теплову карту.
    • Знайди, на які слова дивиться токен.
    • Скажи, чому увага — не повне пояснення.

Звук і мультимодальний ШІ

  1. 25Звук як даніПеретворюй звук як дані на хвилю і спектрограму.
    • Завантаж звук і побудуй графік хвилі.
    • Поясни частоту дискретизації.
    • Зроби спектрограму.
  2. 26Класифікатор звукуКласифікуй короткі звукові кліпи класифікатором звуку.
    • Дивись на спектрограми як на зображення.
    • Навчи на них CNN.
    • Перевір із фоновим шумом.
  3. 27Мультимодальні входиПоясни, як модель поєднує мультимодальні входи: зображення і текст.
    • Поясни окремі енкодери для кожного входу.
    • Поясни спільний простір ембедингів.
    • Назви три мультимодальні застосунки.
  4. 28Зображення і текстЗістав зображення і текст: зв’яжи зображення з підписами попередньо навченою моделлю.
    • Зроби ембединги зображень і підписів.
    • Ранжуй підписи для кожного зображення.
    • Шукай зображення текстовим запитом.

Поліпшення моделі

  1. 29РегуляризаціяЗменшуй перенавчання регуляризацією: dropout і загасання ваг.
    • Додай dropout.
    • Додай загасання ваг.
    • Порівняй криві валідації.
  2. 30Аугментація данихЗроби аугментацію даних: додай віддзеркалені й обрізані зображення до навчального набору.
    • Застосовуй віддзеркалення, обрізання і зміну кольору.
    • Аугментуй лише навчальний набір.
    • Виміряй зміну точності на тесті.
  3. 31Перенесення навчанняПеренесенням навчання донавчи попередньо навчену модель на нових класах.
    • Заморозь попередньо навчені шари.
    • Заміни голову і навчи її.
    • Розморозь і донавчи з маленькою швидкістю навчання.
  4. 32Розбір помилокЗроби розбір помилок: згрупуй помилки і знайди їхню причину.
    • Прочитай матрицю помилок для багатьох класів.
    • Розклади помилки на групи.
    • Вибери виправлення для найбільшої групи.

Проєкт із глибокого навчання

  1. 33Дані про дику природуВибери і розділи відкриті дані зображень дикої природи.
    • Вибери відкритий набір фотопасток або дикої природи.
    • Вибери від 5 до 10 видів.
    • Діли за місцем, щоб тест був чесним.
  2. 34Донавчи модельДонавчи модель-класифікатор зображень на класах дикої природи.
    • Донавчи попередньо навчену модель.
    • Стеж за точністю на валідації.
    • Збережи найкращий чекпойнт.
  3. 35Демо-інтерфейсЗбери демо-інтерфейс, який показує передбачення для завантажених зображень.
    • Прийми завантажене зображення.
    • Покажи три найкращі види і їхні оцінки.
    • Покажи «не впевнений», коли впевненість низька.
  4. 36Розумний монітор дикої природиПредстав розумний монітор дикої природи: точність на небачених зображеннях і головні помилки.
    • Повідом точність на небачених зображеннях.
    • Покажи головні помилки і їхні причини.
    • Скажи, що зміниш далі.