Всички уроци

Курс

ИИ за 10. клас: Дълбоко обучение и мултимодален ИИ

Създай и обучи невронни мрежи в PyTorch за изображения, текст и звук.

Мини уроците по ред. Накрая можеш да сметнеш изхода на неврон, да сравниш активациите ReLU, сигмоид и softmax и да напишеш правия ход на малка мрежа с NumPy. Можеш да избереш загуба, да обясниш градиентното спускане и обратното разпространение и да напишеш скрипт с пълния цикъл за обучение и тест в PyTorch. Можеш да обучиш класификатор на изображения с CNN, да обучиш класификатор на настроение, който отличава положителни от отрицателни отзиви, да обясниш как вниманието претегля другите токени и да класифицираш кратки звукови клипове. Можеш да намалиш преобучението, да донастроиш предварително обучен модел към нови класове, да групираш грешките и да намериш причината им и да представиш интелигентен монитор на дивата природа, тестван върху невиждани изображения.

Как да ползваш тези уроци

  • Започни от урока, на който пише Направи това. Мини нататък, когато можеш сам да направиш реда под заглавието.
  • Първо играй Игри. После направи Тест. 8 от 10 верни, за да минеш. Работни листове са на хартия. Отговорите са отдолу.
  • Всеки урок стъпва на предишния. Записвай всяко обучение: настройките, кривата на загубата и резултата от теста.
  • Уроците с код използват Python и PyTorch в безплатен онлайн бележник с GPU. Малки модели и малки набори от данни стигат. Ползвай само отворени набори, които имаш право да ползваш, и никога не обучавай върху снимки на хора без тяхно разрешение.

Всеки урок има игри, тест и работни листове.

0 от 36

Основи на невронните мрежи

  1. 1НеврониСметни изхода на неврон от входове, тегла и отклонение.
    • Напиши претеглената сума плюс отклонението.
    • Сметни я на ръка за три входа.
    • Сметни я в код със скаларно произведение.
  2. 2АктивацииСравни активациите ReLU, сигмоид и 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ТокенизацияНаправи токенизация: превърни текст в токени и идентификатори.
    • Сравни токени от думи и от части на думи.
    • Построй речник.
    • Допълни редиците до еднаква дължина.
  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Данни за дивата природаИзбери и раздели отворено множество от изображения на дива природа.
    • Избери отворен набор от фотокапани или дива природа.
    • Избери от пет до десет вида.
    • Раздели по място, за да е тестът честен.
  2. 34Донастрой моделаДонастрой модела класификатор на изображения към класове диви животни.
    • Донастрой предварително обучен модел.
    • Следи точността при проверка.
    • Запази най-добрия запис.
  3. 35Демонстрационен интерфейсПострой демонстрационен интерфейс, който показва прогнози за качени изображения.
    • Приеми качено изображение.
    • Покажи първите три вида и точките им.
    • Покажи „не съм сигурен“, когато увереността е ниска.
  4. 36Интелигентен монитор на дивата природаПредстави интелигентен монитор на дивата природа: точността върху невиждани изображения и главните грешки.
    • Съобщи точността върху невиждани изображения.
    • Покажи главните грешки и причините им.
    • Кажи какво би променил после.