Основи ШІ
Що таке перенесення навчання?

Що таке перенесення навчання?
Під час практики машинного навчання навчання моделі може зайняти багато часу. Створення архітектури моделі з нуля, навчання моделі та подальша настройка моделі вимагає величезної кількості часу та зусиль. Багато більш ефективний спосіб навчання моделі машинного навчання – використовувати архітектуру, яка вже була визначена, потенційно з вагами, які вже були обчислені. Це основна ідея за перенесенням навчання, яке полягає у використанні моделі, яка вже була використана, та перепрофілактиці її для нового завдання.
Перед тим, як зануритися у різні способи використання перенесення навчання, давайте розглянемо, чому перенесення навчання є такою потужною та корисною технікою.
Рішення задачі глибокого навчання
Коли ви намагаєтеся вирішити задачу глибокого навчання, наприклад, побудову класифікатора зображень, вам потрібно створити архітектуру моделі, а потім навчати модель на ваших даних. Навчання класифікатора моделі включає коригування ваг мережі, процес, який може зайняти години або навіть дні, залежно від складності як моделі, так і набору даних. Час навчання буде зростати відповідно до розміру набору даних та складності архітектури моделі.
Якщо модель не досягає необхідної точності для завдання, ймовірно, потрібно буде налаштувати модель, а потім знову навчати модель. Це означає ще більше годин навчання, поки не буде знайдена оптимальна архітектура, тривалість навчання та розділ даних. Коли ви розглядаєте, скільки змінних потрібно визначити для класифікатора, щоб він був корисним, зрозуміло, що інженери машинного навчання завжди шукають легші, більш ефективні способи навчання та реалізації моделей. Саме тому була створена техніка перенесення навчання.
Після створення та тестування моделі, якщо модель виявилася корисною, її можна зберегти та повторно використовувати пізніше для подібних завдань.
Типи перенесення навчання
Загалом існує два різних види перенесення навчання: розробка моделі з нуля та використання попередньо навченої моделі.
Коли ви розробляєте модель з нуля, вам потрібно створити архітектуру моделі, яка能够 інтерпретувати ваші дані навчання та витягувати з них закономірності. Після того, як модель буде навчена вперше, вам, ймовірно, потрібно буде зробити зміни в ній, щоб отримати оптимальну продуктивність моделі. Потім ви можете зберегти архітектуру моделі та використовувати її як початкову точку для моделі, яка буде використовуватися для подібного завдання.
У другому випадку – використанні попередньо навченої моделі – вам просто потрібно вибрати попередньо навчену модель для використання. Багато університетів та дослідницьких команд роблять специфікації своєї моделі доступними для загального використання. Архітектуру моделі можна завантажити разом із вагами.
Під час проведення перенесення навчання можна використовувати всю архітектуру моделі та ваги для завдання, або лише певні частини/шари моделі. Використання лише частини попередньо навченої моделі та навчання решти моделі називається тонкою настройкою.
Тонка настройка мережі
Тонка настройка мережі описує процес навчання лише деяких шарів мережі. Якщо новий набір даних навчання дуже схожий на набір даних, використаний для навчання оригінальної моделі, можна використовувати багато тих самих ваг.
Кількість шарів у мережі, які потрібно розморозити та повторно навчати, повинна зростати відповідно до розміру нового набору даних. Якщо набір даних, який використовується для навчання, малий, краще тримати більшість шарів такими, як вони є, та навчати лише останні кілька шарів. Це для того, щоб запобігти переобученню мережі. Альтернативно можна видалити останні шари попередньо навченої мережі та додати нові шари, які потім будуть навчені. Насправді, якщо набір даних великий, потенційно більший за оригінальний набір даних, всю мережу потрібно повторно навчати. Для використання мережі як фіксованого витягувача ознак більшість мережі можна використовувати для витягування ознак, а лише останній шар мережі можна розморозити та навчати.
Коли ви здійснюєте тонку настройку мережі, просто пам’ятайте, що ранні шари ConvNet містять інформацію, яка представляє більш загальні ознаки зображень. Це ознаки, такі як краї та кольори. Насправді пізніші шари ConvNet містять деталі, які є більш конкретними для окремих класів у наборі даних, на якому була навчена модель. Якщо ви навчаєте модель на наборі даних, який досить відрізняється від оригінального набору даних, вам, ймовірно, хочеться використовувати початкові шари моделі для витягування ознак та повторно навчати лише решту моделі.
Приклади перенесення навчання
Найпоширеніші застосування перенесення навчання, ймовірно, ті, які використовують дані зображень як вхідні дані. Це часто завдання передбачення/класифікації. Так, як Конволюційні нейронні мережі інтерпретують дані зображень, вони самі собою підходять для повторного використання аспектів моделей, оскільки конволюційні шари часто розрізняють дуже схожі ознаки. Одним із прикладів поширеної задачі перенесення навчання є завдання ImageNet 1000, величезний набір даних, який містить 1000 різних класів об’єктів. Компанії, які розробляють моделі, які досягають високої продуктивності на цьому наборі даних, часто випускають свої моделі під ліцензіями, які дозволяють іншим повторно використовувати їх. Деякі з моделей, які були отримані в результаті цього процесу, включають модель Microsoft ResNet, модель Google Inception та групу моделей Oxford VGG.












