Створення високопродуктивних рішень машинного навчання (ML) базується на дослідженні та оптимізації параметрів навчання, також відомих як гіперпараметри. Гіперпараметри — це ручки та важелі, які ми використовуємо для регулювання процесу навчання, наприклад швидкість навчання, розмір партії, сила регулярізації та інші, залежно від конкретної моделі та завдання. Дослідження гіперпараметрів передбачає систематичне змінення значень кожного параметра та спостереження за впливом на продуктивність моделі. Хоча цей процес вимагає додаткових зусиль, переваги значні. Гіперпараметрична оптимізація (HPO) може призвести до швидшого навчання, підвищення точності моделі та кращого узагальнення нових даних.
Продовжуємо мандрівку від поста Оптимізуйте гіперпараметри за допомогою автоматичного налаштування моделі Amazon SageMaker. Раніше ми досліджували оптимізацію окремого завдання, візуалізували результати для вбудованого алгоритму SageMaker і дізналися про вплив окремих значень гіперпараметрів. Окрім використання HPO як одноразової оптимізації наприкінці циклу створення моделі, ми також можемо використовувати його на кількох етапах у розмовній манері. Кожне завдання налаштування допомагає нам наблизитися до хорошої продуктивності, але крім того, ми також дізнаємося, наскільки модель чутлива до певних гіперпараметрів, і можемо використовувати це розуміння для інформування про наступне завдання налаштування. Ми можемо переглянути гіперпараметри та їхні діапазони значень на основі того, що ми дізналися, і тому перетворити цю оптимізаційну роботу на розмову. І так само, як ми, практики ML, накопичуємо знання під час цих прогонів, Автоматичне налаштування моделі Amazon SageMaker (AMT) з теплим запуском можна зберегти ці знання, отримані під час попередніх робіт з налаштування, також для наступної роботи з налаштування.
У цій публікації ми запускаємо кілька завдань HPO із спеціальним алгоритмом навчання та різними стратегіями HPO, такими як байєсовська оптимізація та випадковий пошук. Ми також використовуємо гарячі старти та візуально порівнюємо наші випробування, щоб удосконалити гіперпараметричне дослідження космосу.
Розширені концепції SageMaker AMT
У наступних розділах ми докладніше розглянемо кожну з наступних тем і покажемо, як SageMaker AMT може допомогти вам реалізувати їх у ваших проектах ML:
- Використовуйте спеціальний навчальний код і популярну структуру ML Scikit-learn у SageMaker Training
- Визначте спеціальні показники оцінки на основі журналів для оцінки та оптимізації
- Виконайте HPO, використовуючи відповідну стратегію
- Використовуйте гарячі запуски, щоб перетворити пошук одного гіперпараметра в діалогове вікно з нашою моделлю
- Використовуйте передові методи візуалізації за допомогою нашої бібліотеки рішень, щоб порівняти дві стратегії HPO та результати налаштування завдань
Незалежно від того, використовуєте ви вбудовані алгоритми, використані в нашій першій публікації, чи власний навчальний код, SageMaker AMT пропонує безперебійну роботу користувача для оптимізації моделей ML. Він надає ключову функціональність, яка дозволяє зосередитися на поточній проблемі машинного навчання, автоматично відстежуючи випробування та результати. У той же час він автоматично керує основною інфраструктурою за вас.
У цій публікації ми відходимо від вбудованого алгоритму SageMaker і використовуємо спеціальний код. Ми використовуємо випадковий ліс із SkLearn. Але ми дотримуємося тих самих завдань ML і набору даних, що й у нашому перший пост, який виявляє рукописні цифри. Висвітлюємо зміст блокнота Юпітера 2_advanced_tuning_with_custom_training_and_visualizing.ipynb і пропонуємо вам викликати код поруч, щоб читати далі.
Давайте зануримося глибше та дізнаємося, як ми можемо використовувати спеціальний навчальний код, розгортати його та запускати, одночасно досліджуючи простір пошуку гіперпараметрів для оптимізації наших результатів.
Як побудувати модель ML і виконати оптимізацію гіперпараметрів
Як виглядає типовий процес створення рішення ML? Хоча існує багато можливих варіантів використання та велика різноманітність завдань ML, ми пропонуємо наступну розумову модель для поетапного підходу:
- Зрозумійте свій поточний сценарій ML і виберіть алгоритм на основі вимог. Наприклад, ви можете вирішити завдання з розпізнавання зображень за допомогою алгоритму навчання під наглядом. У цій публікації ми продовжуємо використовувати сценарій розпізнавання рукописного зображення та той самий набір даних, що й у першій публікації.
- Вирішіть, яку реалізацію алгоритму в SageMaker Training ви хочете використовувати. Існують різні варіанти, як всередині SageMaker, так і зовнішні. Крім того, вам потрібно визначити, який базовий показник найкраще підходить для вашого завдання та для якого ви хочете оптимізувати (наприклад, точність, показник F1 або ROC). SageMaker підтримує чотири варіанти залежно від ваших потреб і ресурсів:
- Використовуйте попередньо навчену модель через Amazon SageMaker JumpStart, який можна використовувати з коробки або просто налаштувати.
- Використовуйте один із вбудованих алгоритмів для навчання та налаштування, як-от XGBoost, як ми робили в попередній публікації.
- Навчіть і налаштуйте спеціальну модель на основі одного з основних фреймворків, таких як Scikit-learn, TensorFlow або PyTorch. AWS надає для цієї мети вибір готових образів Docker. У цій публікації ми використовуємо цю опцію, яка дозволяє швидко експериментувати, запускаючи власний код поверх готового зображення контейнера.
- Принесіть свій власний образ Docker на випадок, якщо ви хочете використовувати фреймворк або програмне забезпечення, яке іншим чином не підтримується. Цей варіант вимагає найбільших зусиль, але також забезпечує найвищий ступінь гнучкості та контролю.
- Навчіть модель за допомогою ваших даних. Залежно від реалізації алгоритму з попереднього кроку, це може бути таким же простим, як посилання на ваші навчальні дані та запуск навчального завдання або додаткове надання спеціального коду для навчання. У нашому випадку ми використовуємо спеціальний навчальний код на Python на основі Scikit-learn.
- Застосуйте оптимізацію гіперпараметрів (як «розмова» з вашою моделлю ML). Після навчання ви зазвичай хочете оптимізувати продуктивність своєї моделі, знайшовши найбільш перспективну комбінацію значень для гіперпараметрів вашого алгоритму.
Залежно від вашого алгоритму ML і розміру моделі, останній крок оптимізації гіперпараметрів може виявитися більш складним, ніж очікувалося. Наступні запитання є типовими для практиків ML на цьому етапі та можуть здатися вам знайомими:
- Які гіперпараметри впливають на мою проблему ML?
- Як я можу ефективно здійснювати пошук у величезному просторі гіперпараметрів, щоб знайти найефективніші значення?
- Як поєднання певних значень гіперпараметрів впливає на показник ефективності?
- Витрати мають значення; як я можу використовувати свої ресурси ефективним чином?
- Які експерименти з налаштуванням варті уваги і як їх порівняти?
Відповісти на ці запитання нелегко, але є хороші новини. SageMaker AMT знімає з вас важку роботу та дозволяє зосередитися на виборі правильної стратегії HPO та діапазону значень, які ви хочете дослідити. Крім того, наше рішення для візуалізації полегшує процес ітераційного аналізу та експериментування, щоб ефективно знаходити ефективні значення гіперпараметрів.
У наступних розділах ми створюємо модель розпізнавання цифр з нуля за допомогою Scikit-learn і показуємо всі ці концепції в дії.
Огляд рішення
SageMaker пропонує кілька дуже зручних функцій для навчання, оцінки та налаштування нашої моделі. Він охоплює всі функції наскрізного життєвого циклу машинного навчання, тому нам навіть не потрібно залишати свій блокнот Jupyter.
У нашому першому дописі ми використовували вбудований алгоритм SageMaker XGBoost. З метою демонстрації цього разу ми перейдемо до класифікатора Random Forest, оскільки тоді ми можемо показати, як надати власний навчальний код. Ми вирішили надати власний сценарій Python і використовувати Scikit-learn як нашу структуру. Тепер, як ми виражаємо, що ми хочемо використовувати певну структуру ML? Як ми побачимо, SageMaker використовує іншу службу AWS у фоновому режимі, щоб отримати попередньо зібраний образ контейнера Docker для навчання.Реєстр контейнерів Amazon Elastic (Amazon ECR).
Ми докладно розглядаємо наступні кроки, включаючи фрагменти коду та діаграми, щоб з’єднати точки. Як згадувалося раніше, якщо у вас є можливість, відкрийте блокнот і крок за кроком запустіть комірки коду, щоб створити артефакти у вашому середовищі AWS. Немає кращого способу активного навчання.
- Спочатку завантажте та підготуйте дані. Ми використовуємо Служба простого зберігання Amazon (Amazon S3), щоб завантажити файл, що містить дані наших рукописних цифр.
- Далі підготуйте сценарій навчання та залежності фреймворку. Ми надаємо спеціальний навчальний код на Python, посилаємося на деякі залежні бібліотеки та виконуємо тестовий запуск.
- Щоб визначити власну цільову метрику, SageMaker дозволяє нам визначити регулярний вираз, щоб отримати потрібні метрики з файлів журналу контейнера.
- Навчіть модель за допомогою фреймворку scikit-learn. Посилаючись на попередньо створене зображення контейнера, ми створюємо відповідний об’єкт Estimator і передаємо наш спеціальний сценарій навчання.
- AMT дозволяє нам випробувати різні стратегії HPO. У цьому дописі ми зосередимося на двох із них: випадковий пошук і байєсівський пошук.
- Виберіть між стратегіями SageMaker HPO.
- Візуалізуйте, аналізуйте та порівнюйте результати налаштування. Наш пакет візуалізації дозволяє нам виявити, яка стратегія ефективніша та які значення гіперпараметрів забезпечують найкращу ефективність на основі наших показників.
- Продовжуйте дослідження простору гіперпараметрів і робочих місць HPO з теплим запуском.
AMT піклується про масштабування та керування основною обчислювальною інфраструктурою для виконання різноманітних завдань налаштування на Обчислювальна хмара Amazon Elastic (Amazon EC2). Таким чином, вам не потрібно обтяжувати себе підготовкою екземплярів, вирішувати будь-які проблеми з операційною системою та апаратним забезпеченням або самостійно збирати файли журналів. Зображення ML framework отримується з Amazon ECR, а артефакти моделі, включаючи результати налаштування, зберігаються в Amazon S3. Усі журнали та показники зібрані в Amazon CloudWatch для зручного доступу та подальшого аналізу, якщо це необхідно.
Передумови
Оскільки це продовження серії, його рекомендується, але не обов’язково, читати наша перша публікація про SageMaker AMT і HPO. Крім того, корисним є базове знайомство з концепціями ML і програмуванням на Python. Ми також рекомендуємо виконувати кожен крок у супровідний зошит з нашого репозиторію GitHub під час читання цієї публікації. Блокнот можна запускати незалежно від першого, але потребує коду з підпапок. Обов’язково клонуйте повний репозиторій у вашому середовищі, як описано у файлі README.
Експерименти з кодом і використання інтерактивних опцій візуалізації значно покращують ваш досвід навчання. Тож перевірте, будь ласка.
Завантажте та підготуйте дані
Як перший крок, ми переконаємося, що завантажено дані цифр який нам потрібен для навчання, доступний для SageMaker. Amazon S3 дозволяє нам робити це безпечно та з можливістю масштабування. Зверніться до блокнота, щоб отримати повний вихідний код, і не соромтеся адаптувати його за допомогою власних даних.
Команда digits.csv
файл містить дані об’єктів і мітки. Кожна цифра представлена значеннями пікселів на зображенні 8×8, як показано на наступному зображенні для цифри 4.
Підготуйте сценарій навчання та залежності фреймворку
Тепер, коли дані зберігаються в нашому сегменті S3, ми можемо визначити наш спеціальний сценарій навчання на основі Scikit-Learn в Python. SageMaker дає нам можливість просто посилатися на файл Python пізніше для навчання. Будь-які залежності, такі як бібліотеки Scikit-learn або pandas, можна надати двома способами:
- Їх можна вказати явно в a
requirements.txt
файл - Вони попередньо встановлені в базовому образі контейнера ML, який надається SageMaker або створюється на замовлення
Обидва варіанти зазвичай вважаються стандартними способами керування залежностями, тож ви, можливо, вже знайомі з ними. SageMaker підтримує різні фреймворки ML у готовому до використання керованому середовищі. Це включає в себе багато найпопулярніших фреймворків обробки даних і машинного навчання, таких як PyTorch, TensorFlow або Scikit-learn, як у нашому випадку. Ми не використовуємо доп requirements.txt
файл, але можете додати деякі бібліотеки, щоб спробувати його.
Код нашої реалізації містить метод під назвою fit()
, який створює новий класифікатор для завдання розпізнавання цифр і навчає його. На відміну від нашої першої публікації, де ми використовували вбудований алгоритм SageMaker XGBoost, тепер ми використовуємо RandomForestClassifier
надається бібліотекою ML sklearn. Виклик в fit()
метод на об’єкті класифікатора починає процес навчання, використовуючи підмножину (80%) наших даних CSV:
Дивіться повний сценарій у нашому блокноті Jupyter на GitHub.
Чи намагалися ви запустити сценарій безпосередньо перед тим, як розгорнути ресурси контейнера для повного процесу навчання? Це хороша практика, щоб швидко переконатися, що в коді немає синтаксичних помилок, перевірити відповідність розмірів ваших структур даних і деякі інші помилки на ранній стадії.
Є два способи запустити код локально. По-перше, ви можете запустити його відразу в блокноті, що також дозволяє використовувати налагоджувач Python pdb
:
Крім того, запустіть сценарій поїзда з командного рядка так само, як ви можете використовувати його в контейнері. Це також підтримує налаштування різних параметрів і перезапис значень за замовчуванням за потреби, наприклад:
Як вихідні дані ви можете побачити перші результати продуктивності моделі на основі об’єктивних показників точності, запам’ятовування та оцінки F1. Наприклад, pre: 0.970 rec: 0.969 f1: 0.969
.
Непогано для такого швидкого навчання. Але звідки взялися ці цифри і що з ними робити?
Визначте власну цільову метрику
Пам’ятайте, наша мета — повністю навчити та налаштувати нашу модель на основі об’єктивних показників, які ми вважаємо відповідними для нашого завдання. Оскільки ми використовуємо спеціальний сценарій навчання, нам потрібно чітко визначити ці показники для SageMaker.
Наш сценарій випромінює показники точності, запам’ятовування та оцінки F1 під час тренування, просто використовуючи print
функція:
Стандартний вихід фіксується SageMaker і надсилається до CloudWatch як потік журналу. Щоб отримати значення метрик і працювати з ними пізніше в SageMaker AMT, нам потрібно надати деяку інформацію про те, як аналізувати цей вихід. Ми можемо досягти цього, визначивши оператори регулярних виразів (для отримання додаткової інформації зверніться до Відстежуйте й аналізуйте навчальні завдання за допомогою показників Amazon CloudWatch):
Давайте разом пройдемося по першому визначенню метрики в попередньому коді. SageMaker шукатиме вихід у журналі, який починається з pre:
і слідують один або кілька пробілів, а потім число, яке ми хочемо витягти, тому ми використовуємо круглі дужки. Щоразу, коли SageMaker знаходить таке значення, він перетворює його на метрику CloudWatch із назвою valid-precision
.
Навчіть модель за допомогою фреймворку Scikit-learn
Після того, як ми створимо наш навчальний сценарій train.py
і інструктувати SageMaker про те, як контролювати показники в CloudWatch, ми визначаємо a Оцінювач SageMaker об'єкт. Він ініціює завдання навчання та використовує тип екземпляра, який ми вказуємо. Але чим цей тип екземпляра може відрізнятися від того, який ви запускаєте Студія Amazon SageMaker зошит на, а чому? SageMaker Studio запускає ваші навчальні (і висновки) завдання на окремих обчислювальних екземплярах, ніж ваш блокнот. Це дозволяє продовжувати працювати в блокноті, поки завдання виконуються у фоновому режимі.
Параметр framework_version
відноситься до версії Scikit-learn, яку ми використовуємо для навчання. Як варіант, ми можемо пройти image_uri
до estimator
. Ви можете перевірити, чи ваш улюблений фреймворк або бібліотека ML доступні як попередньо створений образ Docker SageMaker і використовувати його як є або з розширеннями.
Крім того, ми можемо запускати навчальні завдання SageMaker на спотових екземплярах EC2 за допомогою налаштування use_spot_instances
до True
. Це екземпляри резервної ємності, які можуть заощадити до 90% витрат. Ці екземпляри забезпечують гнучкість під час виконання навчальних завдань.
Після налаштування об’єкта Estimator ми починаємо навчання, викликавши fit()
функція, що забезпечує шлях до навчального набору даних на Amazon S3. Ми можемо використовувати цей самий метод для надання даних перевірки та тестування. Ми встановили wait
параметр до True
щоб ми могли використовувати навчену модель у наступних клітинках коду.
estimator.fit({'train': s3_data_url}, wait=True)
Визначте гіперпараметри та запустіть завдання налаштування
Наразі ми навчили модель з одним набором значень гіперпараметрів. Але чи були ці цінності хорошими? Або ми могли б шукати кращих? Давайте використовувати Клас HyperparameterTuner щоб запустити систематичний пошук у просторі гіперпараметрів. Як ми шукаємо цей простір за допомогою тюнера? Необхідними параметрами є назва цільової метрики та тип цілі, які керуватимуть оптимізацією. Стратегія оптимізації є ще одним ключовим аргументом для тюнера, оскільки вона додатково визначає простір пошуку. Нижче наведено чотири різні стратегії на вибір:
- Пошук у сітці
- Випадковий пошук
- Байєсовська оптимізація (за замовчуванням)
- Гіперсмуга
Далі ми опишемо ці стратегії та дамо вам деякі вказівки, щоб вибрати одну з них далі в цій публікації.
Перш ніж ми визначимо та запустимо наш об’єкт налаштування, давайте підсумуємо наше розуміння з точки зору архітектури. Ми розглянули огляд архітектури SageMaker AMT у наш останній допис і відтворіть його уривок тут для зручності.
Ми можемо вибрати, які гіперпараметри ми хочемо налаштувати або залишити статичними. Для динамічних гіперпараметрів ми надаємо hyperparameter_ranges
який можна використовувати для оптимізації гіперпараметрів, які можна налаштувати. Оскільки ми використовуємо класифікатор Random Forest, ми використали гіперпараметри з Документація Scikit-learn Random Forest.
Ми також обмежуємо ресурси максимальною кількістю навчальних завдань і паралельних навчальних завдань, які може використовувати тюнер. Ми побачимо, як ці обмеження допомагають нам порівнювати результати різних стратегій між собою.
Подібно до оцінювача fit
ми запускаємо роботу з налаштування, яка викликає тюнер fit
:
Це все, що нам потрібно зробити, щоб дозволити SageMaker виконувати навчальні завдання (n=50
) у фоновому режимі, кожен з яких використовує інший набір гіперпараметрів. Ми досліджуємо результати пізніше в цій публікації. Але перед цим давайте почнемо іншу роботу з налаштування, цього разу застосувавши байєсовську стратегію оптимізації. Ми візуально порівняємо обидві стратегії після їх завершення.
Зауважте, що обидва завдання налаштування можуть виконуватися паралельно, оскільки SageMaker організовує необхідні екземпляри обчислень незалежно один від одного. Це дуже корисно для практиків, які експериментують із різними підходами одночасно, як ми тут.
Виберіть між стратегіями SageMaker HPO
Що стосується стратегій налаштування, у вас є кілька варіантів із SageMaker AMT: пошук у сітці, випадковий пошук, байєсовська оптимізація та гіпердіапазон. Ці стратегії визначають, як алгоритми автоматичного налаштування досліджують задані діапазони гіперпараметрів.
Випадковий пошук досить простий. Він випадковим чином вибирає комбінації значень із заданих діапазонів і може запускатися послідовним або паралельним способом. Це все одно, що метати дротики із зав’язаними очима, сподіваючись потрапити в ціль. Ми почали з цієї стратегії, але чи покращаться результати з іншою?
Байєсовська оптимізація використовує інший підхід, ніж випадковий пошук. Він розглядає історію попередніх виборів і вибирає значення, які, ймовірно, дадуть найкращі результати. Якщо ви хочете отримати знання з попередніх досліджень, ви можете досягти цього, лише запустивши нове завдання налаштування після попередніх. Має сенс, правда? Таким чином, байєсовська оптимізація залежить від попередніх прогонів. Але чи бачите ви, яка стратегія HPO дозволяє вищий рівень паралелізації?
Гіперсмуга є цікавим! Він використовує стратегію мультивірності, що означає, що він динамічно розподіляє ресурси на найперспективніші навчальні завдання та зупиняє ті, які є неефективними. Таким чином, Hyperband є обчислювально ефективним із ресурсами, навчаючись на попередніх навчальних роботах. Після зупинки конфігурацій із недостатньою продуктивністю запускається нова конфігурація, значення якої вибираються випадковим чином.
Залежно від ваших потреб і характеру вашої моделі ви можете вибрати між випадковим пошуком, байєсовською оптимізацією або гіперсмугою як стратегію налаштування. Кожен із них має свій власний підхід і переваги, тому важливо розглянути, який з них найкраще підходить для вашого дослідження машинного навчання. Хороша новина для практиків ML полягає в тому, що ви можете вибрати найкращу стратегію HPO, візуально порівнюючи вплив кожного випробування на об’єктивний показник. У наступному розділі ми побачимо, як візуально визначити вплив різних стратегій.
Візуалізуйте, аналізуйте та порівнюйте результати налаштування
Коли наша робота з налаштування завершена, це стає захоплююче. Які результати вони дають? Якого приросту наших показників ви можете очікувати порівняно з вашою базовою моделлю? Які гіперпараметри є найкращими для нашого випадку використання?
Швидкий і простий спосіб переглянути результати HPO – відвідати консоль SageMaker. Під Роботи з налаштування гіперпараметрів, ми можемо бачити (для завдання налаштування) комбінацію значень гіперпараметрів, які були перевірені та забезпечили найкращу продуктивність, як виміряно нашою об’єктивною метрикою (valid-f1
).
Це все, що вам потрібно? Як фахівець з машинного навчання, ви можете бути не лише зацікавлені в цих цінностях, але, безумовно, бажаєте дізнатися більше про внутрішню роботу вашої моделі, щоб дослідити її повний потенціал і зміцнити свою інтуїцію за допомогою емпіричного зворотного зв’язку.
Хороший інструмент візуалізації може значно допомогти вам зрозуміти вдосконалення HPO з часом і отримати емпіричні відгуки щодо проектних рішень вашої моделі ML. Він показує вплив кожного окремого гіперпараметра на вашу цільову метрику та надає вказівки для подальшої оптимізації результатів налаштування.
Ми використовуємо amtviz
спеціальний пакет візуалізації для візуалізації та аналізу завдань налаштування. Він простий у використанні та надає корисні функції. Ми демонструємо його переваги, інтерпретуючи окремі діаграми та, нарешті, порівнюючи випадковий пошук поруч із байєсовською оптимізацією.
Спочатку давайте створимо візуалізацію для випадкового пошуку. Ми можемо це зробити, зателефонувавши visualize_tuning_job()
від amtviz
і передаючи наш перший об’єкт налаштування як аргумент:
Ви побачите пару діаграм, але давайте розглянемо це крок за кроком. Перша діаграма розсіювання результату виглядає так, як показано нижче, і вже дає нам деякі візуальні підказки, які ми б не розпізнали в жодній таблиці.
Кожна крапка позначає ефективність окремої навчальної роботи (наша мета valid-f1
на осі y) на основі часу його початку (вісь x), створеного певним набором гіперпараметрів. Тому ми дивимося на продуктивність нашої моделі в міру її прогресу протягом тривалості роботи з налаштування.
Пунктирною лінією виділено найкращий результат, знайдений на даний момент, і вказує на покращення з часом. Дві найкращі навчальні роботи отримали оцінку F1 приблизно 0.91.
Окрім пунктирної лінії, що показує сукупний прогрес, чи бачите ви тенденцію на діаграмі?
Напевно ні. І це очікувано, оскільки ми переглядаємо результати випадкової стратегії HPO. Кожне навчальне завдання було запущено з використанням іншого, але випадково вибраного набору гіперпараметрів. Якби ми продовжили нашу роботу з налаштування (або запустили іншу з тими самими налаштуваннями), ми, ймовірно, побачили б кращі результати з часом, але ми не можемо бути впевнені. Випадковість – складна річ.
Наступні діаграми допоможуть вам оцінити вплив гіперпараметрів на загальну продуктивність. Візуалізуються всі гіперпараметри, але для стислості зупинимося на двох з них: n-estimators
та max-depth
.
Наші дві найкращі тренінгові роботи використовували n-estimators
близько 20 і 80 і max-depth
приблизно 10 і 18 відповідно. Точні значення гіперпараметрів відображаються у підказці для кожної крапки (навчальне завдання). Вони навіть динамічно підсвічуються на всіх діаграмах і дають вам багатовимірне подання! Ти це бачив? Кожен гіперпараметр наноситься на графік відносно цільової метрики як окрема діаграма.
А тепер, яку інформацію ми отримуємо n-estimators
?
На лівій діаграмі здається, що дуже низькі діапазони значень (нижче 10) частіше дають погані результати порівняно з вищими значеннями. Тому вищі значення можуть допомогти вашій моделі працювати краще — цікаво.
Навпаки, співвідношення в max-depth
гіперпараметр для нашої об’єктивної метрики досить низький. Ми не можемо чітко визначити, які діапазони значень ефективніші із загальної точки зору.
Таким чином, довільний пошук може допомогти вам знайти ефективний набір гіперпараметрів навіть за відносно короткий проміжок часу. Крім того, він не спрямований на хороше рішення, але дає збалансоване уявлення про простір пошуку. Проте використання ваших ресурсів може бути не дуже ефективним. Він продовжує виконувати навчальні завдання з гіперпараметрами в діапазонах значень, які, як відомо, дають погані результати.
Давайте розглянемо результати нашої другої роботи з налаштування за допомогою байєсівської оптимізації. Ми можемо використовувати amtviz
щоб візуалізувати результати так само, як ми це робили досі для тюнера випадкового пошуку. Або, ще краще, ми можемо використати можливість функції для порівняння обох завдань налаштування в одному наборі діаграм. Дуже зручно!
Тепер крапок більше, оскільки ми візуалізуємо результати всіх навчальних завдань як для випадкового пошуку (помаранчеві крапки), так і для байєсівської оптимізації (сині крапки). Праворуч ви можете побачити діаграму щільності, яка візуалізує розподіл усіх показників F1. Більшість навчальних завдань досягли результатів у верхній частині шкали F1 (понад 0.6) — це добре!
Який тут ключовий висновок? Діаграма розсіювання чітко демонструє переваги байєсівської оптимізації. Він забезпечує кращі результати з часом, оскільки може навчатися на попередніх запусках. Ось чому ми досягли значно кращих результатів, використовуючи байєсівський метод порівняно з випадковим (0.967 проти 0.919) з такою ж кількістю навчальних завдань.
Ви можете зробити ще більше amtviz
. Давайте вникнемо.
Якщо ви дасте SageMaker AMT вказівку виконати більшу кількість завдань для налаштування, перегляд багатьох випробувань одночасно може стати безладним. Це одна з причин, чому ми зробили ці діаграми інтерактивними. Ви можете клацнути та перетягнути кожну діаграму розсіювання гіперпараметрів, щоб збільшити певні діапазони значень і уточнити візуальну інтерпретацію результатів. Усі інші діаграми оновлюються автоматично. Це дуже корисно, чи не так? Подивіться наступні діаграми як приклад і спробуйте самі в своєму зошиті!
Як максималіст налаштування, ви також можете вирішити, що виконання іншої роботи з налаштування гіперпараметрів може ще більше покращити продуктивність вашої моделі. Але цього разу можна вивчити більш конкретний діапазон значень гіперпараметрів, оскільки ви вже знаєте (приблизно), де очікувати кращих результатів. Наприклад, ви можете зосередитися на значеннях від 100 до 200 фор n-estimators
, як показано на діаграмі. Це дозволяє AMT зосередитися на найперспективніших навчальних роботах і підвищує ефективність налаштування.
Підсумовуючи це, amtviz
надає вам багатий набір можливостей візуалізації, які дозволяють краще зрозуміти вплив гіперпараметрів вашої моделі на продуктивність і дозволяють приймати розумніші рішення під час налаштування.
Продовжуйте дослідження простору гіперпараметрів і робочих місць HPO з теплим запуском
Ми побачили, що AMT допомагає нам ефективно досліджувати простір пошуку гіперпараметрів. Але що, якщо нам потрібно кілька раундів налаштування, щоб ітеративно покращити наші результати? Як згадувалося на початку, ми хочемо встановити цикл оптимізації зворотного зв’язку — нашу «розмову» з моделлю. Чи потрібно щоразу починати з нуля?
Давайте розглянемо концепцію запуску a завдання налаштування гіперпараметрів гарячого запуску. Він не запускає нові завдання налаштування з нуля, він повторно використовує те, що було вивчено під час попередніх запусків HPO. Це допомагає нам ефективніше використовувати час налаштування та обчислювальні ресурси. Ми можемо продовжувати повторювати наші попередні результати. Щоб використовувати теплий запуск, ми створюємо a WarmStartConfig
і вкажіть warm_start_type
as IDENTICAL_DATA_AND_ALGORITHM
. Це означає, що ми змінюємо значення гіперпараметрів, але не змінюємо дані чи алгоритм. Ми кажемо AMT перенести попередні знання на нашу нову роботу з налаштування.
Посилаючись на наші попередні роботи з оптимізації Байєса та налаштування випадкового пошуку parents
, ми можемо використовувати їх обидва для гарячого старту:
Щоб побачити переваги використання теплого запуску, зверніться до наступних таблиць. Вони генеруються amtviz
подібним чином, як ми це робили раніше, але цього разу ми додали іншу роботу з налаштування на основі гарячого запуску.
На лівій діаграмі ми можемо спостерігати, що нові роботи з налаштування здебільшого лежать у верхньому правому куті графіка показників продуктивності (див. крапки, позначені помаранчевим кольором). Теплий старт справді повторно використав попередні результати, тому ці точки даних знаходяться в найкращих результатах для оцінки F1. Це покращення також відображається на діаграмі щільності праворуч.
Іншими словами, AMT автоматично вибирає перспективні набори значень гіперпараметрів на основі своїх знань з попередніх випробувань. Це показано на наступній діаграмі. Наприклад, алгоритм перевірить низьке значення для n-estimators
рідше, оскільки відомо, що вони дають погані оцінки F1. Ми не витрачаємо на це ресурси, завдяки теплим стартам.
Прибирати
Щоб уникнути небажаних витрат після того, як ви закінчите експериментувати з HPO, ви повинні видалити всі файли у вашому сегменті S3 із префіксом amt-visualize-demo
а також вимкніть ресурси SageMaker Studio.
Запустіть наступний код у своєму блокноті, щоб видалити всі файли S3 із цієї публікації:
Якщо ви бажаєте зберегти набори даних або артефакти моделі, ви можете змінити префікс у коді на amt-visualize-demo/data
лише видалити дані або amt-visualize-demo/output
щоб видалити лише артефакти моделі.
Висновок
Ми дізналися, як мистецтво створення рішень ML передбачає дослідження та оптимізацію гіперпараметрів. Регулювання цих ручок і важелів є складним, але корисним процесом, який призводить до швидшого часу навчання, покращення точності моделі та кращих рішень для машинного навчання. Функціональність SageMaker AMT допомагає нам запускати кілька завдань налаштування та запускати їх у теплий режим, а також надає точки даних для подальшого перегляду, візуального порівняння та аналізу.
У цій публікації ми розглянули стратегії HPO, які ми використовуємо з SageMaker AMT. Ми почали з випадкового пошуку, простої, але ефективної стратегії, де гіперпараметри випадково вибираються з простору пошуку. Далі ми порівняли результати з байєсівською оптимізацією, яка використовує імовірнісні моделі для керування пошуком оптимальних гіперпараметрів. Після того, як ми визначили відповідну стратегію HPO та хороші діапазони значень гіперпараметрів під час початкових випробувань, ми показали, як використовувати теплий запуск для оптимізації майбутніх робіт HPO.
Ви можете досліджувати простір пошуку гіперпараметрів, порівнюючи кількісні результати. Ми запропонували паралельне візуальне порівняння та надали необхідний пакет для інтерактивного дослідження. Розкажіть нам у коментарях, наскільки це було корисно для вас у вашій подорожі налаштування гіперпараметрів!
Про авторів
Уміт Йолдас є старшим архітектором рішень Amazon Web Services. Він працює з корпоративними клієнтами в різних галузях Німеччини. Він прагне втілити концепції штучного інтелекту в реальні рішення. Поза роботою він насолоджується часом із родиною, смакуючи смачну їжу та займаючись фітнесом.
Еліна Лесик є архітектором рішень у Мюнхені. Вона зосереджена на корпоративних клієнтах із галузі фінансових послуг. У вільний час ви можете знайти Еліну, яка розробляє додатки за допомогою генеративного штучного інтелекту на деяких ІТ-зустрічах, висуває нову ідею щодо швидкого вирішення проблеми зміни клімату або біжить у лісі, щоб підготуватися до напівмарафону з типовим відхиленням від запланованого графіка.
Маріано Камп є головним архітектором рішень Amazon Web Services. Він працює з банками та страховими компаніями Німеччини над машинним навчанням. У вільний час Маріано любить піші прогулянки з дружиною.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/explore-advanced-techniques-for-hyperparameter-optimization-with-amazon-sagemaker-automatic-model-tuning/
- : має
- :є
- : ні
- :де
- $UP
- 01
- 1
- 10
- 100
- 11
- 12
- 13
- 14
- 17
- 179
- 20
- 200
- 24
- 33
- 50
- 60
- 7
- 80
- 9
- 91
- 970
- a
- МЕНЮ
- доступ
- доступною
- Накопичуватися
- точність
- Achieve
- досягнутий
- придбаний
- через
- дію
- активний
- діяльності
- пристосовувати
- додавати
- доданий
- Додатковий
- Додатково
- просунутий
- Переваги
- після
- проти
- сукупність
- AI
- алгоритм
- алгоритми
- ВСІ
- виділяє
- дозволяти
- дозволяє
- по
- вже
- Також
- хоча
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- кількість
- an
- аналіз
- аналізувати
- та
- Інший
- відповідь
- будь-який
- крім
- застосування
- Застосування
- підхід
- підходи
- відповідний
- архітектурний
- архітектура
- ЕСТЬ
- аргумент
- навколо
- Art
- AS
- At
- автоматичний
- автоматичний
- автоматично
- доступний
- уникнути
- геть
- AWS
- фон
- поганий
- Банки
- база
- заснований
- основний
- Байєсівський
- BE
- оскільки
- було
- перед тим
- початок
- нижче
- користь
- Переваги
- КРАЩЕ
- Краще
- між
- упереджений
- більший
- синій
- підвищення
- обидва
- Box
- будувати
- Створюємо
- вбудований
- тягар
- але
- by
- call
- званий
- покликання
- CAN
- Може отримати
- можливості
- можливості
- потужність
- захоплений
- який
- випадок
- випадків
- Клітини
- певний
- звичайно
- виклик
- шанс
- зміна
- Графік
- Чарти
- перевірка
- Вибирати
- Вибираючи
- вибраний
- очевидно
- клацання
- клімат
- Зміна клімату
- ближче
- код
- поєднання
- комбінації
- Приходити
- приходить
- коментарі
- Компанії
- порівняти
- порівняний
- порівняння
- порівняння
- повний
- завершення
- обчислення
- сконцентрувати
- концепція
- поняття
- конфігурація
- З'єднуватися
- Вважати
- вважається
- вважає
- Консоль
- Контейнер
- містить
- зміст
- продовження
- продовжувати
- триває
- триває
- контрастність
- контроль
- зручність
- Зручний
- Розмова
- діалоговий
- Кут
- Кореляція
- Відповідний
- витрати
- може
- Пара
- обкладинка
- покритий
- Обкладинки
- створювати
- створює
- створення
- виготовлений на замовлення
- Клієнти
- цикл
- дані
- точки даних
- наука про дані
- набори даних
- вирішувати
- рішення
- глибше
- дефолт
- визначати
- Визначає
- визначаючи
- визначення
- Ступінь
- доставляти
- поставляється
- постачає
- вимогливий
- демонструвати
- залежно
- Залежність
- залежний
- Залежно
- розгортання
- описувати
- описаний
- дизайн
- деталь
- деталі
- Визначати
- відхилення
- діаграми
- Діалог
- DID
- різний
- цифр
- розміри
- безпосередньо
- відкрити
- displayed
- розподіл
- занурення
- do
- Docker
- робить
- Ні
- зроблений
- Не знаю
- DOT
- вниз
- керований
- водіння
- тривалість
- під час
- динамічний
- динамічно
- кожен
- Раніше
- Рано
- легко
- фактично
- ефективність
- ефективний
- продуктивно
- зусилля
- зусилля
- або
- включіть
- дозволяє
- кінець
- кінець в кінець
- Підсилює
- забезпечувати
- підприємство
- Навколишнє середовище
- помилки
- встановити
- оцінювати
- оцінка
- Навіть
- Кожен
- досліджувати
- приклад
- захоплюючий
- очікувати
- очікуваний
- досвід
- експеримент
- Експерименти
- явно
- дослідження
- дослідити
- Розвіданий
- Дослідження
- експрес
- вираз
- зовнішній
- витяг
- f1
- полегшує
- знайомий
- Знайомство
- сім'я
- далеко
- ШВИДКО
- швидше
- Улюблений
- особливість
- риси
- зворотний зв'язок
- почувати
- кілька
- філе
- Файли
- в кінці кінців
- фінансовий
- фінансові послуги
- знайти
- виявлення
- знахідки
- Перший
- відповідати
- фітнес
- Гнучкість
- Сфокусувати
- фокусування
- потім
- після
- харчування
- для
- ліс
- знайдений
- чотири
- Рамки
- каркаси
- Безкоштовна
- від
- Повний
- повністю
- функція
- функціональність
- далі
- майбутнє
- калібр
- Загальне
- в цілому
- генерується
- генеративний
- Генеративний ШІ
- Німеччина
- отримати
- GitHub
- Давати
- дає
- мета
- добре
- графік
- значно
- сітка
- керівництво
- керівництво
- рука
- обробляти
- мобільний
- апаратні засоби
- Мати
- he
- важкий
- важкий підйом
- допомога
- корисний
- допомагає
- її
- тут
- висока продуктивність
- вище
- найвищий
- вищий ступінь
- Виділено
- основний момент
- його
- історія
- хіт
- сподіваючись
- Як
- How To
- Однак
- HTML
- HTTP
- HTTPS
- величезний
- Оптимізація гіперпараметрів
- Налаштування гіперпараметрів
- i
- ідея
- ідентифікований
- ідентифікувати
- if
- зображення
- Розпізнавання зображень
- зображень
- Impact
- вражаючий
- здійснювати
- реалізація
- імпорт
- важливо
- удосконалювати
- поліпшений
- поліпшення
- in
- includes
- У тому числі
- Збільшує
- дійсно
- самостійно
- вказує
- індивідуальний
- промисловості
- промисловість
- вплив
- повідомити
- інформація
- Інфраструктура
- початковий
- ініціювати
- Посвячені
- всередині
- розуміння
- екземпляр
- страхування
- інтерактивний
- зацікавлений
- цікавий
- інтерпретація
- в
- запрошувати
- питання
- IT
- ЙОГО
- робота
- Джобс
- подорож
- просто
- тримати
- зберігання
- ключ
- Дитина
- Знати
- знання
- відомий
- етикетки
- великий
- більше
- останній
- пізніше
- вести
- Веде за собою
- УЧИТЬСЯ
- вчений
- вивчення
- Залишати
- залишити
- менше
- дозволяти
- дозволяє
- libraries
- бібліотека
- брехня
- Життєвий цикл
- підйомний
- як
- Ймовірно
- МЕЖА
- рамки
- Лінія
- ліній
- загрузка
- локально
- розташований
- журнал
- подивитися
- виглядає як
- подивився
- ВИГЛЯДИ
- низький
- машина
- навчання за допомогою машини
- made
- підтримувати
- основний
- Більшість
- зробити
- РОБОТИ
- вдалося
- управління
- управляє
- управління
- манера
- багато
- позначено
- узгодження
- Матерія
- максималістичний
- Максимізувати
- максимальний
- Може..
- засоби
- Зустрічі
- психічний
- згаданий
- метод
- метрика
- Метрика
- може бути
- ML
- модель
- Моделі
- змінювати
- монітор
- більше
- більш ефективний
- найбільш
- Найбільш популярний
- в основному
- рухатися
- множинний
- повинен
- my
- ім'я
- природа
- обов'язково
- необхідно
- Необхідність
- необхідний
- потреби
- Нові
- новини
- наступний
- немає
- ноутбук
- зараз
- номер
- номера
- об'єкт
- мета
- спостерігати
- of
- Пропозиції
- часто
- on
- один раз
- ONE
- ті,
- тільки
- відкрити
- операційний
- операційна система
- оптимальний
- оптимізація
- Оптимізувати
- оптимізуючий
- варіант
- Опції
- or
- помаранчевий
- Інше
- інші
- інакше
- наші
- з
- Результати
- вихід
- поза
- над
- загальний
- огляд
- власний
- пакет
- панди
- Паралельні
- параметр
- параметри
- частина
- приватність
- проходити
- Проходження
- шлях
- для
- Виконувати
- продуктивність
- виконанні
- виступає
- перспектива
- піксель
- запланований
- plato
- Інформація про дані Платона
- PlatoData
- будь ласка
- точок
- бідні
- популярний
- це можливо
- пошта
- потенціал
- практика
- попередньо
- Точність
- передвіщений
- Готувати
- досить
- попередній
- раніше
- Головний
- ймовірно
- Проблема
- процес
- виробляти
- Вироблений
- Програмування
- прогрес
- проектів
- перспективний
- забезпечувати
- за умови
- забезпечує
- забезпечення
- забезпечення
- мета
- цілей
- put
- Python
- піторх
- кількісний
- питань
- Швидко
- швидко
- досить
- R
- випадковий
- випадковість
- діапазон
- діапазони
- ставка
- швидше
- Читати
- читання
- Реальний світ
- Причини
- Короткий огляд
- визнання
- визнавати
- рекомендувати
- рекомендований
- послатися
- посилання
- посилання
- відноситься
- удосконалювати
- відображено
- regex
- регулярний
- щодо
- доречний
- видаляти
- Сховище
- представлений
- представляє
- вимагається
- Вимога
- Вимагається
- ресурс
- ресурси
- відповідно
- результат
- результати
- повертати
- огляд
- переглядати
- нагородження
- Багаті
- право
- грубо
- круглий
- турів
- прогін
- біг
- пробіжки
- сейф
- мудрець
- Автоматичне налаштування моделі SageMaker
- користь
- то ж
- масштабовані
- шкала
- Масштабування
- сценарій
- розклад
- наука
- scikit-вчитися
- рахунок
- подряпати
- сценарій
- безшовні
- Пошук
- другий
- розділ
- розділам
- побачити
- бачачи
- Здається,
- бачив
- обраний
- вибір
- старший
- сенс
- чутливий
- посланий
- окремий
- Серія
- обслуговування
- Послуги
- Сесія
- комплект
- набори
- установка
- вона
- Короткий
- Показувати
- показав
- показаний
- Шоу
- сторона
- значний
- істотно
- аналогічний
- простий
- просто
- один
- Розмір
- розумнішими
- So
- так далеко
- Софтвер
- рішення
- Рішення
- ВИРІШИТИ
- деякі
- Звучати
- Source
- вихідні
- Простір
- конкретний
- зазначений
- Спін
- Spot
- Стажування
- standard
- старт
- почалася
- починається
- заяви
- статичний
- Крок
- заходи
- зупинка
- Зупиняє
- зберігання
- зберігати
- просто
- стратегії
- Стратегія
- потік
- раціоналізувати
- сила
- Зміцнювати
- структур
- студія
- наступні
- такі
- пропонувати
- підходящий
- РЕЗЮМЕ
- поставки
- Підтриманий
- Опори
- Переконайтеся
- перемикач
- синтаксис
- система
- таблиця
- Приймати
- приймає
- Мета
- Завдання
- завдання
- методи
- сказати
- тензорний потік
- тест
- перевірений
- ніж
- Дякую
- Що
- Команда
- їх
- Їх
- потім
- Там.
- отже
- Ці
- вони
- річ
- це
- ті
- три
- через
- Кидання
- час
- times
- до
- разом
- інструмент
- топ
- теми
- до
- трек
- поїзд
- навчений
- Навчання
- поїзда
- переклад
- переводити
- Trend
- суд
- випробування
- правда
- намагатися
- мелодія
- настройка
- ПЕРЕГЛЯД
- повороти
- два
- тип
- типовий
- типово
- при
- що лежить в основі
- розуміти
- розуміння
- небажаний
- оновлений
- us
- використання
- використання випадку
- використовуваний
- користувач
- User Experience
- використовує
- використання
- використовувати
- перевірка достовірності
- значення
- Цінності
- різноманітність
- різний
- різний
- версія
- дуже
- через
- вид
- перегляд
- візуалізації
- візуалізувати
- візуально
- vs
- ходити
- хотіти
- теплий
- було
- Відходи
- шлях..
- способи
- we
- Web
- веб-сервіси
- ДОБРЕ
- були
- Що
- коли
- Чи
- який
- в той час як
- ВООЗ
- чому
- дружина
- волі
- бажання
- з
- в
- слова
- Work
- робочий
- виробки
- працює
- варто
- б
- XGBoost
- ще
- вихід
- Ти
- вашу
- себе
- зефірнет
- зум