Административна информация
Дял | Урок: Фундамент на дълбокото учене |
Продължителност | 180 мин (60 мин на урок) |
Модул | Б |
Вид на урока | Урок |
Фокус | Технически — задълбочено обучение |
Тема | Напред и обратно разпространение |
Ключови думи
разпространение напред, обратно размножаване, настройка на хиперпараметъра,
Учебни цели
- ученикът разбира концепцията за разпространение напред
- ученикът получава поглед върху това как да извлече обратно разпространение
- студентът може да приложи обратно разпространение
- ученикът научава начина на настройване на хиперпараметрите
Очаквана подготовка
Обучение на събития, които трябва да бъдат завършени преди
Задължително за студентите
- Джон Келър и Мозък Макнами. (2018 г.), Fundamentals of Machine Learning for Predictive Data Analytics, MIT Press.
- Майкъл Нилсън. (2015 г.), „Неврални мрежи и задълбочено обучение“, 1. Преса за решителност, Сан Франциско, САЩ.
- Чару С. Агарвал. (2018 г.), невронни мрежи и задълбочено обучение, 1. Спрингър
- Антонио Гули, Суджит Пал. Дълбоко обучение с Keras, Packt, [ISBN: 9781787128422].
Незадължително за студенти
- Умножение на матрици
- Да започнем с Numpy
- Познаване на линейната и логистичната регресия
Референции и фон за студенти
Няма.
Препоръчва се за учители
Няма.
Материали за уроци
Няма.
Инструкции за учители
Това Учебно събитие се състои от три набора от уроци, обхващащи основни теми за дълбоко обучение. Тази поредица от уроци се състои в предоставяне на преглед на напред пас, извличане на обратно размножаване и използването на код, за да се предостави общ преглед на учениците за това какво прави всеки параметър и как може да повлияе на ученето и конвергенцията на невронната мрежа:
- Разпространение напред: Примери за писалка и хартия, както и питонни примери, използващи Numpy (за основи) и Keras, показващи модул на високо ниво (който използва Tensorflow 2.X).
- Извличане и прилагане на обратно размножаване: Примери за писалка и хартия, както и питонни примери, използващи Numpy (за основи) и Keras, показващи модул на високо ниво (който използва Tensorflow 2.X).
- Настройка на хиперпараметъра: Примери от Keras, които подчертават примерни диагностични графики въз основа на ефектите за промяна на специфични хиперпараметри (като се използва примерен набор от данни за HCAIM за преподаване на етичен ИИ (набор от данни от преброяването).
Бележки за доставка (според лекциите)
- Използване на Sigmoid във външния слой и MSE като функция за загуба.
- С ограниченията на Tine беше избран единствен подход/топология/проблемен контекст. Обикновено човек започва с регресия за напред (с MSE като функция за загуба) и за извличане на обратно размножаване (като по този начин има линейна активационна функция в изходния слой, където това намалява сложността на извличането на функцията за обратно размножаване), След това обикновено се преминава към бинарна функция за класификация, със сигмоид в изходния слой и бинарна функция за загуба на ентропия. С ограничения във времето този набор от лекции ще използва три различни примерни скрити функции за активиране, но ще използва контекст на регресионен проблем. За да се добави сложността на функцията за сигмоидно активиране в изходния слой, проблемът с регресията, използван в първите две лекции от този набор, примерът на проблема се основава на нормализирана целева стойност (0—1 въз основа на проблем с процентна оценка 0—100 %), като по този начин сигмоидът се използва като функция за активиране в изходния слой. Този подход позволява на учениците лесно да мигрират между проблеми с регресията и двоичната класификация, като просто променят функцията за загуба, ако проблемът с двоичната класификация или ако се използва ненормализиран проблем с регресията, студентът просто премахва функцията за активиране на външния слой.
- Основните компоненти са приложението на, използвайки библиотека на високо ниво, в този случай KERAS чрез библиотеката TensorFlow 2.X.
- Писалката и хартията са незадължителни и се използват само за показване на изхода и приложението за напред и обратно размножаване (като се използват примерите от слайдовете на лекцията).
- Python код без използване на библиотеки от високо ниво, се използва, за да покаже колко проста невронна мрежа (използвайки примерите от лекция слайдове). Това също така дава възможност за обсъждане на бързото умножение на матрици/матрици и да се въведе защо използваме графични процесори/TPUs като незадължителен елемент.
- Keras и TensorFlow 2.X се използват и ще бъдат използвани за всички бъдещи примери.
Урок 1 — напред размножаване
Инструкции за учителя
- Този урок ще запознае студентите с основите на разпространението напред за изкуствена невронна мрежа. Този урок ще се състои от напред пас с помощта на писалка и хартия, използвайки Python само с библиотеката Numpy (за матрици матрици) и след това с помощта на KERAS.. Това ще се основава на фундаменталното разбиране на това, какви функции за активиране се прилагат за специфични проблемни контексти и как функциите за активиране се различават в изчислителната сложност и приложението от писалка и хартия, до код от нулата с помощта на Numpy и след това с помощта на модул от високо ниво -> Keras.
- Студентите ще бъдат изправени пред три проблема:
- Проблем 1: (Пример 1 от лекцията -> Изображение на RHS на този WIKI) и поиска да се проведе напред пропуск, като се използват следните параметри (20 минути за попълване):
- Функция за сигмоидно активиране за скрития слой
- Функция за активиране на сигмоид за външния слой
- Функция за загуба на ММП
- Проблем 2: (Пример 1 от лекцията), студентите ще бъдат помолени (с насоки в зависимост от предишния опит в кодирането) да разработят невронна мрежа от нулата, използвайки само модула Numpy, и тежестите и функциите за активиране от проблем 1 (които са същите като пример 1 от лекцията (20 минути до завършване).
- Проблем 3: (Пример 1 от лекцията и използвайки същия пример, но случайни тежести), студентите ще бъдат помолени (с насоки в зависимост от предишния опит в областта на кодирането) да разработят невронна мрежа, използвайки модула Tensorflow 2.X с вградения модул Keras и тежестите и функциите за активиране от проблем 1, а след това използвайки случайни тегла (които са същите като пример 1 от лекцията: 20 минути до приключване).
- Проблем 1: (Пример 1 от лекцията -> Изображение на RHS на този WIKI) и поиска да се проведе напред пропуск, като се използват следните параметри (20 минути за попълване):
- Подцелите за тези три проблема е учениците да свикнат със структурата и приложението на основните понятия (функции за активиране, топология и функции за загуба) за дълбоко обучение.
Време: 60 минути
Продължителност (минимум) | Описание |
---|---|
20 | Проблем 1: Прилагане на перо и хартия за напред (пример от лекцията) |
20 | Проблем 2: Разработване на невронна мрежа от нулата с помощта на Numpy (пример от лекцията) |
10 | Проблем 3: Разработване на невронна мрежа от използването на Keras (пример от лекцията с определени тежести и случайни тегла) |
10 | Обобщение на процеса на преминаване напред |
Урок 2 — Деривация и прилагане на обратно размножаване
Инструкции за учителя
- Този урок ще запознае студентите с основите на алгоритъма за обучение на обратно размножаване за изкуствена невронна мрежа. Този урок ще се състои от извличането на алгоритъма за обратно размножаване с помощта на писалка и хартия, след това прилагането на алгоритъма за обратно размножаване за три различни скрити функции за активиране на слоя (Sigmoid, Tan H и ReLu), използвайки Python само с библиотеката Numpy (за матрици матрици) и след това с помощта на KERAS. Това ще се основава на фундаменталното разбиране на различните функции за активиране, когато невронната мрежа научи и как функциите за активиране се различават в изчислителната сложност и приложението от писалка и хартия, до код от нулата с помощта на Numpy и след това с помощта на модул от високо ниво -> Keras.
- Бележка: Топологията е същата като Лекция 1/Туториален 1, но теглата и входовете са различни, разбира се, можете да използвате едни и същи тежести.
- Студентите ще бъдат представени с четири проблема (първият е по избор или като допълнителен материал):
- Проблем 1: Извличането на алгоритъма за обратно размножаване (използвайки функцията Sigmoid за вътрешните и външните функции за активиране и MSE като функция за загуба), учениците ще бъдат помолени да извлекат формулата за обратно размножаване (20 минути до завършване).
- Проблем 2: Студентите ще прилагат три функции за активиране за една актуализация на теглото (SGD обратно размножаване), като използват писалка и хартия за (20 минути):
- Сигмоид (скрит слой), сигмоид (външен слой) и MSE
- Tan H (скрит слой), Sigmoid (външен слой) и MSE
- ReLU (скрит слой), Sigmoid (външен слой) и MSE
- Проблем 3: Студентите ще бъдат помолени (с насоки в зависимост от предишния опит за кодиране) да разработят невронна мрежа от нулата, като използват само модула Numpy, и функциите за тежести и активиране, където е предвидена опцията за избор от която и да е скрита функция за активиране на слой, за да се актуализират тежестите с помощта на SGD (20 минути за завършване).
- Проблем 4: Студентите ще бъдат помолени (с насоки в зависимост от предишния опит за кодиране) да разработят невронна мрежа, използвайки модула Tensorflow 2.X с вградения модул Keras и тежестите и функциите за активиране, а след това да използват случайни тежести, за да завършат една или няколко актуализации на теглото. Моля, не тъй като Keras използва малко по-различна загуба на MSE, загубата намалява по-бързо в примера на Keras.
- Keras MSE = загуба = квадрат(y_true — y_pred)
- Урок MSE = загуба = (квадратна(y_true — y_pred))*0.5
- Подцелите за тези три проблема, е да накарат учениците да разберат алгоритъма за обратно размножаване, да го приложат така, че за настройка на хиперметъра учениците да могат по-добре да разберат ефектите на хиперпараметъра.
Време: 60 минути
Продължителност (минимум) | Описание |
---|---|
20 (незадължително) | Проблем 1: извличане на формулата за обратно размножаване, като се използва сигмоидната функция за вътрешните и външните функции за активиране и MSE като функция за загуба (по избор) |
20 | Проблем 2: Студентите ще прилагат три функции за активиране за една актуализация на теглото (SGD обратно размножаване), като използват писалка и хартия за (20 минути): |
20 | Проблем 3: Студентите ще разработят невронна мрежа от нулата, като използват само модула Numpy, където потребителят може да избере от някоя от трите скрити функции за активиране на слоя, където кодът може предварително да формира обратно размножаване |
10 | Проблем 4: Студентите ще използват модула Tensorflow 2.X с вградения модул Keras, предварително формиране на обратно размножаване с помощта на SGD. |
10 | Обобщение на процеса на преминаване напред |
Урок 3 — Хиперпараметър тунинг
Инструкции за учителя
- Този урок ще запознае студентите с основите на хиперпараметъра тунинг за изкуствена невронна мрежа. Този урок ще се състои от следене на множество хиперпараметри и след това оценка с помощта на същите конфигурации на модели като лекцията (Lecture 3). Този урок ще се съсредоточи върху системната модификация на хиперпараметрите и оценката на диагностичните парцели (като се използва загуба — но това може лесно да бъде променено за точност, тъй като това е проблем с класификацията) с помощта на набора от данни за преброяване. В края на този урок (примери стъпка по стъпка) от студентите ще се очаква да завършат Практически с допълнителна оценка за справедливост (въз основа на оценка на изпълнението на подгрупата).
- Бележки:
- Има предварителна обработка на набора от данни (включена в бележника), но това е минимумът, за да може наборът от данни да работи с ANN. Това не е изчерпателно и не включва оценка (отклонения/справедливост).
- Ще използваме диагностични парцели, за да оценим ефекта от тунинга на хиперпараметъра и по-специално фокуса върху загубата, където трябва да се отбележи, че модулът, който използваме за начертаване на загубата, е matplotlib.pyplot, като по този начин оста се мащабира. Това може да означава, че значителните разлики могат да изглеждат незначителни или обратно при сравняване на загубата на данните от обучението или теста.
- Представени са някои свободи за скелето, като например използването на Epochs на първо място (почти като техника за узаконяване), като същевременно се запазва постоянният размер на партидата.
- За да се дадат ясни примери (т.е. преоборудване), може да са включени някои допълнителни ощипвания към други хиперпараметри, за да се осигурят ясни диагностични графики за примери.
- След като се установи разумен капацитет и дълбочина, това, както и други хиперпараметри, са заключени за следване на примери, когато е възможно.
- И накрая, някои от клетките могат да отнемат известно време, за да тренират, дори и с достъп до GPU.
- Студентите ще бъдат представени с няколко стъпки за урока:
- Стъпка 1: Някои основни предварителни обработки за набора от данни за преброяването на възрастните
- Стъпка 2: Капацитет и дълбочинни тунинг (включително следните примери):
- Няма сближаване
- Недооборудване
- Преоборудване
- Конвергенция
- Стъпка 3: Епохи (над и в процес на обучение — без да се въвежда като формална техника за узаконяване)
- Стъпка 4: Функции за активиране (по отношение на изпълнението — време за обучение и в някои случаи загуба)
- Стъпка 5: Степен на обучение (включително следните примери):
- SGD Ванила
- SGD с упадък на скоростта на учене
- SGD с инерция
- Степен на адаптивно обучение:
- RMSProp
- АдаГрад
- Адам
- Подцелите за тези пет части е да предоставят на студентите примери и опит в тунинг хиперпараметрите и оценка на ефектите с помощта на диагностични парцели.
Време: 60 минути
Продължителност (минимум) | Описание |
---|---|
5 | Предварителна обработка на данните |
10 | Капацитет и дълбочина тунинг (под и над монтаж) |
10 | Епохи (под и над обучение) |
10 | Размери на партидите (за потискане на шума) |
10 | Функции за активиране (и тяхното въздействие върху производителността — време и точност) |
10 | Степен на обучение (ванилия, LR Decay, момент, адаптивен) |
5 | Прегледайте някои основни хиперпараметри (ReLu, Adam) и тунинга на други (капацитет и дълбочина). |
Потвърждения
Keith Quille (TU Dublin, Tallaght Campus) http://keithquille.com
Магистърската програма по ИИ, насочена към човека, беше съфинансирана от Механизма за свързване на Европа на Европейския съюз под формата на безвъзмездни средства № CEF-TC-2020—1 Digital Skills 2020-EU-IA-0068.