Курс
ИИ за 10. клас: Дълбоко обучение и мултимодален ИИ
Създай и обучи невронни мрежи в PyTorch за изображения, текст и звук.
Мини уроците по ред. Накрая можеш да сметнеш изхода на неврон, да сравниш активациите ReLU, сигмоид и softmax и да напишеш правия ход на малка мрежа с NumPy. Можеш да избереш загуба, да обясниш градиентното спускане и обратното разпространение и да напишеш скрипт с пълния цикъл за обучение и тест в PyTorch. Можеш да обучиш класификатор на изображения с CNN, да обучиш класификатор на настроение, който отличава положителни от отрицателни отзиви, да обясниш как вниманието претегля другите токени и да класифицираш кратки звукови клипове. Можеш да намалиш преобучението, да донастроиш предварително обучен модел към нови класове, да групираш грешките и да намериш причината им и да представиш интелигентен монитор на дивата природа, тестван върху невиждани изображения.
Как да ползваш тези уроци
- Започни от урока, на който пише Направи това. Мини нататък, когато можеш сам да направиш реда под заглавието.
- Първо играй Игри. После направи Тест. 8 от 10 верни, за да минеш. Работни листове са на хартия. Отговорите са отдолу.
- Всеки урок стъпва на предишния. Записвай всяко обучение: настройките, кривата на загубата и резултата от теста.
- Уроците с код използват Python и PyTorch в безплатен онлайн бележник с GPU. Малки модели и малки набори от данни стигат. Ползвай само отворени набори, които имаш право да ползваш, и никога не обучавай върху снимки на хора без тяхно разрешение.
Всеки урок има игри, тест и работни листове.
0 от 36
Основи на невронните мрежи
- 1НеврониСметни изхода на неврон от входове, тегла и отклонение.
- Напиши претеглената сума плюс отклонението.
- Сметни я на ръка за три входа.
- Сметни я в код със скаларно произведение.
- 2АктивацииСравни активациите ReLU, сигмоид и 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ТокенизацияНаправи токенизация: превърни текст в токени и идентификатори.
- Сравни токени от думи и от части на думи.
- Построй речник.
- Допълни редиците до еднаква дължина.
- 18ЕмбедингиОбясни как ембедингите слагат сходни думи близо.
- Ползвай слой за ембединг.
- Намери най-близките думи до една дума.
- Начертай ембединги в две измерения.
- 19Текстови моделиПострой текстов модел, който чете редица от токени.
- Осредни ембедингите в един вектор.
- Ползвай прост рекурентен слой.
- Сравни двата.
- 20Класификатор на настроениеОбучи класификатор на настроение, който отличава положителни от отрицателни отзиви.
- Обучи върху набор от отзиви.
- Съобщи точност, прецизност и пълнота.
- Намери отзиви, които го лъжат, като сарказъм.
Трансформър модели
- 21ВниманиеОбясни как вниманието претегля другите токени.
- Обясни заявки, ключове и стойности.
- Сметни теглата на вниманието за кратко изречение.
- Кажи защо вниманието помага за смисъл на голямо разстояние.
- 22Блокове на трансформърНазови частите на блок на трансформър.
- Назови многоглавото внимание, слоя feed-forward и слоевете за нормализация.
- Обясни остатъчните връзки.
- Обясни позиционните кодирания.
- 23Предварително обучени моделиИзползвай предварително обучен модел трансформър за задача.
- Зареди предварително обучен модел и токенизатор.
- Класифицирай текст с него.
- Сравни го със своя модел за настроение.
- 24Карти на вниманиетоПрочети карта на вниманието.
- Начертай теглата на вниманието като топлинна карта.
- Намери към кои думи гледа един токен.
- Кажи защо вниманието не е пълно обяснение.
Аудио и мултимодален ИИ
- 25Звукът като данниПревърни звука във форма на вълната и спектрограма.
- Зареди аудио и начертай формата на вълната.
- Обясни честотата на дискретизация.
- Направи спектрограма.
- 26Класификатор на аудиоКласифицирай кратки звукови клипове с класификатор на аудио.
- Третирай спектрограмите като изображения.
- Обучи CNN върху тях.
- Тествай с фонов шум.
- 27Мултимодални входовеОбясни как модел съчетава мултимодални входове от изображения и текст.
- Обясни отделни енкодери за всеки вход.
- Обясни споделено пространство на ембединги.
- Назови три мултимодални приложения.
- 28Изображение и текстСвържи изображение и текст: съчетай изображения с надписи с предварително обучен модел.
- Направи ембединги на изображения и надписи.
- Подреждай надписите за всяко изображение.
- Търси изображения с текстова заявка.
Подобряване на модела
- 29РегуляризацияНамали преобучението с регуляризация: dropout и затихване на теглата.
- Добави dropout.
- Добави затихване на теглата.
- Сравни кривите на проверката.
- 30Увеличаване на даннитеНаправи увеличаване на данните: добави обърнати и изрязани изображения към обучителното множество.
- Приложи обръщане, изрязване и промяна на цвета.
- Увеличавай само обучителното множество.
- Измери промяната в точността на теста.
- 31Трансферно обучениеИзползвай трансферно обучение, за да донастроиш предварително обучен модел към нови класове.
- Замрази предварително обучените слоеве.
- Смени главата и я обучи.
- Размрази и донастрой с малка скорост на учене.
- 32Анализ на грешкитеНаправи анализ на грешките: групирай грешките и намери причината им.
- Прочети матрица на объркване за много класове.
- Подреди грешките в групи.
- Избери поправката за най-голямата група.
Проект по дълбоко обучение
- 33Данни за дивата природаИзбери и раздели отворено множество от изображения на дива природа.
- Избери отворен набор от фотокапани или дива природа.
- Избери от пет до десет вида.
- Раздели по място, за да е тестът честен.
- 34Донастрой моделаДонастрой модела класификатор на изображения към класове диви животни.
- Донастрой предварително обучен модел.
- Следи точността при проверка.
- Запази най-добрия запис.
- 35Демонстрационен интерфейсПострой демонстрационен интерфейс, който показва прогнози за качени изображения.
- Приеми качено изображение.
- Покажи първите три вида и точките им.
- Покажи „не съм сигурен“, когато увереността е ниска.
- 36Интелигентен монитор на дивата природаПредстави интелигентен монитор на дивата природа: точността върху невиждани изображения и главните грешки.
- Съобщи точността върху невиждани изображения.
- Покажи главните грешки и причините им.
- Кажи какво би променил после.