Курс
ШІ 10 класу: глибоке навчання і мультимодальний ШІ
Збирай і навчай нейромережі в PyTorch для зображень, тексту і звуку.
Іди уроками по порядку. Наприкінці ти вмієш обчислити вихід нейрона, порівняти активації ReLU, sigmoid і softmax і написати прямий прохід маленької мережі на NumPy. Ти вмієш вибрати втрати, пояснити градієнтний спуск і зворотне поширення і написати скрипт із повним циклом навчання і тесту в PyTorch. Ти вмієш навчити класифікатор зображень на CNN, навчити класифікатор тональності відрізняти позитивні відгуки від негативних, пояснити, як увага зважує інші токени, і класифікувати короткі звукові кліпи. Ти вмієш зменшувати перенавчання, донавчити попередньо навчену модель на нових класах, групувати помилки і знаходити їхню причину та представити розумний монітор дикої природи, перевірений на небачених зображеннях.
Як користуватися цими уроками
- Почни з уроку, де написано Зроби це. Іди далі, коли сам робиш рядок під назвою.
- Спочатку грай: Ігри. Потім зроби: Перевірка. 8 із 10 правильно для заліку. Аркуші на папері. Відповіді внизу.
- Кожен урок спирається на попередній. Записуй кожен запуск навчання: налаштування, криву втрат і бал тесту.
- Уроки з кодом ідуть на Python і PyTorch у безкоштовному онлайн-зошиті з GPU. Вистачить маленьких моделей і маленьких наборів даних. Бери лише відкриті набори, які тобі можна використовувати. Ніколи не навчай на фото людей без їхнього дозволу.
У кожному уроці є ігри, перевірка та аркуші.
0 із 36
Основи нейромереж
- 1НейрониОбчисли вихід нейрона з входів, ваг і зміщення.
- Запиши зважену суму плюс зміщення.
- Порахуй її вручну для трьох входів.
- Порахуй її в коді скалярним добутком.
- 2АктиваціїПорівняй активації ReLU, sigmoid і softmax.
- Побудуй графік кожної активації.
- Поясни, навіщо мережі потрібна нелінійна активація.
- Використай softmax, щоб перетворити оцінки на ймовірності.
- 3Шари і мережіСкладай шари в мережу.
- Запиши шар як множення матриць.
- Стеж за формою даних у кожному шарі.
- Порахуй параметри мережі.
- 4Маленька мережаНапиши прямий прохід маленької мережі на NumPy.
- Збери мережу з двох шарів на NumPy.
- Прожени крізь неї батч входів.
- Перевір форму виходу.
Навчання нейромереж
- 5ВтратиВибери втрати для задачі і порахуй їх.
- Використай середньоквадратичну похибку для регресії.
- Використай перехресну ентропію для класифікації.
- Скажи, що означає, коли втрати падають.
- 6Градієнтний спускПоясни, як градієнтний спуск рухає ваги вниз.
- Знайди нахил кривої втрат.
- Роби кроки зі швидкістю навчання.
- Подивись, що буде, якщо швидкість завелика або замала.
- 7Зворотне поширенняПростеж зворотне поширення помилки назад по мережі.
- Застосуй ланцюгове правило до крихітної мережі.
- Порахуй один градієнт вручну.
- Звір його з автоматичним диференціюванням.
- 8Навчи мережуНавчи маленьку мережу і побудуй графік втрат.
- Навчай міні-батчами.
- Побудуй графік втрат навчання і валідації.
- Зупинись, коли втрати валідації перестають поліпшуватися.
Фреймворки глибокого навчання
- 9ТензориСтворюй тензори PyTorch і змінюй їхню форму.
- Створи тензори і перевір форму і тип.
- Змінюй форму, складай і нарізай їх.
- Перенеси тензори на GPU.
- 10МодуліЗбери модель модулями torch.nn.
- Зроби підклас nn.Module.
- Використай шари Linear і активації.
- Виведи модель і кількість її параметрів.
- 11ОптимізаториНавчай оптимізаторами SGD і Adam.
- Використай zero_grad, backward і step.
- Порівняй SGD і Adam на одній задачі.
- Використай розклад швидкості навчання.
- 12Скрипт навчанняНапиши скрипт із повним циклом навчання і тесту.
- Завантаж дані через DataLoader.
- Навчи, перевір на валідації і протестуй.
- Збережи найкращу модель.
Комп’ютерний зір
- 13Зображення як тензориЗавантажуй зображення як тензори і нормалізуй їх.
- Завантаж зображення як канали, висоту і ширину.
- Зміни розмір і нормалізуй його.
- Покажи батч сіткою.
- 14ЗгорткиПоясни, як фільтр згортки знаходить краї.
- Проведи фільтр 3×3 по зображенню вручну.
- Застосуй фільтри країв у коді.
- Поясни stride, padding і pooling.
- 15CNNЗбери згорткову нейромережу, CNN.
- Склади шари згортки, активації і pooling.
- Розгорни і додай голову класифікатора.
- Стеж за формами по мережі.
- 16Класифікатор зображеньНавчи класифікатор зображень на CNN.
- Навчи на маленькому наборі зображень.
- Повідом точність на тесті.
- Покажи зображення, які він класифікував неправильно.
Обробка природної мови
- 17ТокенізаціяЗроби токенізацію: перетвори текст на токени і ID.
- Порівняй токени слів і підслів.
- Збери словник.
- Доповни послідовності до однієї довжини.
- 18ЕмбедингиПоясни, як ембединги ставлять схожі слова поруч.
- Використай шар ембедингів.
- Знайди найближчі слова до слова.
- Побудуй графік ембедингів у двох вимірах.
- 19Моделі текстуЗбери модель тексту, яка читає послідовність токенів.
- Усередни ембединги в один вектор.
- Використай простий рекурентний шар.
- Порівняй обидва способи.
- 20Класифікатор тональностіНавчи класифікатор тональності відрізняти позитивні відгуки від негативних.
- Навчи на наборі відгуків.
- Повідом частку правильних, влучність і повноту.
- Знайди відгуки, які його дурять, наприклад сарказм.
Трансформери
- 21УвагаПоясни, як увага зважує інші токени.
- Поясни запити, ключі і значення.
- Порахуй ваги уваги для короткого речення.
- Скажи, чому увага допомагає сенсу на великій відстані.
- 22Блоки трансформераНазви частини блока трансформера.
- Назви багатоголову увагу, шар feed-forward і шари нормалізації.
- Поясни залишкові зв’язки.
- Поясни позиційні кодування.
- 23Попередньо навчені моделіВикористай попередньо навчену модель-трансформер для задачі.
- Завантаж попередньо навчену модель і токенізатор.
- Класифікуй нею текст.
- Порівняй її зі своєю моделлю тональності.
- 24Карти увагиЧитай карту уваги.
- Побудуй ваги уваги як теплову карту.
- Знайди, на які слова дивиться токен.
- Скажи, чому увага — не повне пояснення.
Звук і мультимодальний ШІ
- 25Звук як даніПеретворюй звук як дані на хвилю і спектрограму.
- Завантаж звук і побудуй графік хвилі.
- Поясни частоту дискретизації.
- Зроби спектрограму.
- 26Класифікатор звукуКласифікуй короткі звукові кліпи класифікатором звуку.
- Дивись на спектрограми як на зображення.
- Навчи на них CNN.
- Перевір із фоновим шумом.
- 27Мультимодальні входиПоясни, як модель поєднує мультимодальні входи: зображення і текст.
- Поясни окремі енкодери для кожного входу.
- Поясни спільний простір ембедингів.
- Назви три мультимодальні застосунки.
- 28Зображення і текстЗістав зображення і текст: зв’яжи зображення з підписами попередньо навченою моделлю.
- Зроби ембединги зображень і підписів.
- Ранжуй підписи для кожного зображення.
- Шукай зображення текстовим запитом.
Поліпшення моделі
- 29РегуляризаціяЗменшуй перенавчання регуляризацією: dropout і загасання ваг.
- Додай dropout.
- Додай загасання ваг.
- Порівняй криві валідації.
- 30Аугментація данихЗроби аугментацію даних: додай віддзеркалені й обрізані зображення до навчального набору.
- Застосовуй віддзеркалення, обрізання і зміну кольору.
- Аугментуй лише навчальний набір.
- Виміряй зміну точності на тесті.
- 31Перенесення навчанняПеренесенням навчання донавчи попередньо навчену модель на нових класах.
- Заморозь попередньо навчені шари.
- Заміни голову і навчи її.
- Розморозь і донавчи з маленькою швидкістю навчання.
- 32Розбір помилокЗроби розбір помилок: згрупуй помилки і знайди їхню причину.
- Прочитай матрицю помилок для багатьох класів.
- Розклади помилки на групи.
- Вибери виправлення для найбільшої групи.
Проєкт із глибокого навчання
- 33Дані про дику природуВибери і розділи відкриті дані зображень дикої природи.
- Вибери відкритий набір фотопасток або дикої природи.
- Вибери від 5 до 10 видів.
- Діли за місцем, щоб тест був чесним.
- 34Донавчи модельДонавчи модель-класифікатор зображень на класах дикої природи.
- Донавчи попередньо навчену модель.
- Стеж за точністю на валідації.
- Збережи найкращий чекпойнт.
- 35Демо-інтерфейсЗбери демо-інтерфейс, який показує передбачення для завантажених зображень.
- Прийми завантажене зображення.
- Покажи три найкращі види і їхні оцінки.
- Покажи «не впевнений», коли впевненість низька.
- 36Розумний монітор дикої природиПредстав розумний монітор дикої природи: точність на небачених зображеннях і головні помилки.
- Повідом точність на небачених зображеннях.
- Покажи головні помилки і їхні причини.
- Скажи, що зміниш далі.