Розробка та навчання успішних моделей шахрайства машинного навчання (ML) вимагає доступу до великих обсягів високоякісних даних. Отримання цих даних є складним, оскільки доступні набори даних іноді недостатньо великі або достатньо неупереджені для корисного навчання моделі ML, і це може потребувати значних витрат і часу. Вимоги щодо регулювання та конфіденційності також перешкоджають використанню або обміну даними навіть у межах корпоративної організації. Процес авторизації використання конфіденційних даних і доступу до них часто затримує або зриває проекти ML. Крім того, ми можемо вирішити ці проблеми, генеруючи та використовуючи синтетичні дані.
Синтетичні дані описують штучно створені набори даних, які імітують вміст і шаблони в оригінальному наборі даних, щоб урахувати нормативний ризик і відповідність вимогам, час і витрати на пошук. Генератори синтетичних даних використовують реальні дані для вивчення відповідних функцій, кореляцій і закономірностей, щоб створити необхідну кількість синтетичних даних, які відповідають статистичним якостям початково отриманого набору даних.
Синтетичні дані використовуються в лабораторних умовах протягом двох десятиліть; ринок має докази корисності, що прискорює впровадження в комерційному та державному секторах. Gartner прогнозує що до 2024 року 60 відсотків даних, які використовуються для розробки ML та аналітичних рішень, будуть згенеровані синтетичним шляхом і що використання синтетичних даних продовжить суттєво зростати.
The Financial Conduct Authority, регулюючий орган Великобританії, визнає що «доступ до даних є каталізатором інновацій, а синтетичні фінансові дані можуть зіграти певну роль у підтримці інновацій і дозволити новим учасникам розробляти, тестувати та демонструвати цінність нових рішень».
Amazon SageMaker GroundTruth в даний час підтримує генерація синтетичних даних мічених даних синтетичного зображення. Ця публікація в блозі досліджує створення табличних синтетичних даних. Структуровані дані, такі як окремі та реляційні таблиці, а також дані часових рядів є типами, які найчастіше зустрічаються в корпоративній аналітиці.
Це повідомлення в блозі з двох частин; ми створюємо синтетичні дані в першій частині та оцінюємо їх якість друга частина.
У цій публікації блогу ви дізнаєтесь, як користуватися бібліотекою з відкритим кодом ydata-синтетичний та Ноутбуки AWS SageMaker для синтезу табличних даних для випадку використання шахрайства, коли ми не маємо достатньо шахрайських транзакцій для навчання високоточної моделі шахрайства. Тут описано загальний процес навчання моделі шахрайства після.
Огляд рішення
Мета цього підручника полягає в тому, щоб синтезувати менший клас надзвичайно незбалансованого набору даних про шахрайство з кредитними картками за допомогою оптимізованого генеративна змагальна мережа (GAN) званий WGAN-GP вивчати закономірності та статистичні властивості вихідних даних, а потім створювати нескінченні зразки синтетичних даних, які нагадують вихідні дані. Цей процес також можна використовувати для покращення вихідних даних шляхом підвищення вибірки рідкісних подій, як-от шахрайство, або для генерації крайніх випадків, яких немає в оригіналі.
Ми використовуємо набір даних про шахрайство з кредитними картками, опублікований ULB, яку можна завантажити з Згорнути. Створення синтетичних даних для класу меншості допомагає вирішити проблеми, пов’язані з незбалансованими наборами даних, що може допомогти в розробці більш точних моделей.
Ми використовуємо сервіси AWS, зокрема Amazon SageMaker і Amazon S3, використання хмарних ресурсів яких вимагає витрат.
Налаштуйте середовище розробки
SageMaker надає керований екземпляр блокнота Jupyter для створення моделей, навчання та розгортання.
Необхідні умови:
Щоб запустити SageMaker, потрібно мати обліковий запис AWS. Ви можете отримати почалася за допомогою SageMaker і спробуйте практичні посібники.
Інструкції щодо налаштування робочого середовища Jupyter Notebook див Почніть роботу з екземплярами ноутбуків Amazon SageMaker.
Крок 1. Налаштуйте екземпляр Amazon SageMaker
- Увійдіть у консоль AWS і знайдіть «SageMaker».
- Select Studio.
- Select Екземпляри ноутбуків на лівій панелі та виберіть Створіть екземпляр блокнота.
- На наступній сторінці (як показано на наступному зображенні) виберіть конфігурації віртуальної машини (VM) відповідно до ваших потреб і виберіть Створіть екземпляр блокнота. Зауважте, що ми використовували оптимізовану для ML віртуальну машину без GPU та 5 ГБ даних, ml.t3.medium під керуванням Amazon Linux 2 і ядра Jupyter Lab 3.
- Екземпляр ноутбука буде готовий до використання протягом кількох хвилин.
- Select Відкрийте JupyterLab Для запуску.
- Тепер, коли у нас є JupyterLab з необхідними специфікаціями, ми встановимо синтетичну бібліотеку.
Крок 2. Завантажте або витягніть справжній набір даних, щоб створити синтетичні дані
Завантажте довідкові дані з Kaggle або вручну, як ми робимо тут, або програмно через Kaggle API, якщо у вас є обліковий запис Kaggle. Якщо ви дослідите цей набір даних, то помітите, що клас «шахрайство» містить набагато менше даних, ніж клас «не шахрайство».
Якщо ви використовуєте ці дані безпосередньо для прогнозів машинного навчання, моделі завжди можуть навчатися прогнозувати «не шахрайство». Модель легко матиме вищу точність у випадках, не пов’язаних із шахрайством, оскільки випадки шахрайства трапляються рідко. Однак, оскільки виявлення випадків шахрайства є нашою метою в цій вправі, ми підвищимо класи шахрайства за допомогою синтетичних даних, змодельованих на основі реальних даних.
Створіть папку даних у JupyterLab і завантажте в неї файл даних Kaggle. Це дозволить вам використовувати дані в блокноті, починаючи з SageMaker поставляється зі сховищем який ви вказали під час створення екземпляра блокнота.
Цей набір даних становить 144 МБ
Потім ви можете прочитати дані за допомогою стандартного коду через бібліотеку pandas:
Дані виявлення шахрайства мають певні характеристики, а саме:
- Великі дисбаланси класів (зазвичай у бік нешахрайських точок даних).
- Занепокоєння щодо конфіденційності (через наявність конфіденційних даних).
- Ступінь динамізму полягає в тому, що зловмисний користувач завжди намагається уникнути виявлення шахрайських транзакцій системами моніторингу.
- Доступні набори даних дуже великі і часто не позначені.
Тепер, коли ви перевірили набір даних, давайте відфільтруємо клас меншості (клас «шахрайства» з набору даних кредитної картки) і виконаємо необхідні перетворення. Ви можете перевірити перетворення даних з цього ноутбук.
Коли цей набір даних класу меншості синтезується та додається назад до вихідного набору даних, це дозволяє створити більший синтезований набір даних, який усуває дисбаланс у даних. Ми можемо досягти більшої точності передбачення за допомогою навчання моделі виявлення шахрайства використовуючи новий набір даних.
Давайте синтезуємо новий набір даних про шахрайство.
Крок 3: Навчіть синтезатори та створіть модель
Оскільки у вас є дані, доступні в SageMaker, настав час запустити наші синтетичні моделі GAN.
Генеруюча змагальна мережа (GAN) складається з двох частин:
Команда generator вчиться генерувати правдоподібні дані. Згенеровані екземпляри стають негативними навчальними прикладами для дискримінатора.
Команда дискримінатор вчиться відрізняти фальшиві дані генератора від реальних даних. Дискримінатор карає генератор за отримання неправдоподібних результатів.
Коли починається навчання, генератор видає явно підроблені дані, а дискримінатор швидко вчиться розпізнавати, що це підробка. У міру навчання генератор наближається до виходу, який може обдурити дискримінатора. Нарешті, якщо навчання генератора пройшло добре, дискримінатор гірше розрізняє справжність від підробки. Він починає класифікувати підроблені дані як справжні, і їх точність знижується.
І генератор, і дискримінатор є нейронними мережами. Вихід генератора підключається безпосередньо до входу дискримінатора. Через зворотне поширення, класифікація дискримінатора надає сигнал, який генератор використовує для оновлення своїх ваг.
Крок 4: вибірка синтетичних даних із синтезатора
Тепер, коли ви створили та навчили свою модель, настав час відібрати необхідні дані, подавши шум до моделі. Це дає змогу генерувати стільки синтетичних даних, скільки забажаєте.
У цьому випадку ви створюєте кількість синтетичних даних, що дорівнює кількості фактичних даних, оскільки це полегшує порівняння аналогічних розмірів вибірки на кроці 5.
У нас є можливість відібрати рядки, що містять шахрайські транзакції, що в поєднанні з несинтетичними даними про шахрайство призведе до рівномірного розподілу класів «шахрайство» та «не шахрайство». Оригінальний Набір даних Kaggle містить 492 випадки шахрайства з 284,807 XNUMX транзакцій, тому ми створюємо таку саму вибірку з синтезатора.
У нас є можливість збільшувати вибірку рядків, що містять шахрайські транзакції, у процесі, який називається доповненням даних, який у поєднанні з несинтетичними даними шахрайства призведе до рівномірного розподілу класів «шахрайство» та «не шахрайство».
Крок 5: Порівняйте та оцініть синтетичні дані з реальними даними
Хоча цей крок необов’язковий, ви можете якісно візуалізувати та оцінити згенеровані синтетичні дані порівняно з фактичними даними за допомогою діаграми розсіювання.
Це допомагає нам ітерувати нашу модель, налаштовуючи параметри, змінюючи розмір вибірки та роблячи інші перетворення для створення найточніших синтетичних даних. Така природа точності завжди залежить від мети синтезу
На зображенні нижче показано, наскільки схожі дані фактичного шахрайства та синтетичного шахрайства на етапах навчання. Це дає хорошу якісну перевірку подібності між синтетичними та фактичними даними, а також те, як це покращується, коли ми запускаємо його через кілька епох (передача всього навчального набору даних через алгоритм). Зауважте, що коли ми запускаємо більше епох, набір шаблонів синтетичних даних наближається до вихідних даних.
Крок 6: Очистіть
Нарешті, зупиніть свій екземпляр блокнота, коли завершите синтез, щоб уникнути неочікуваних витрат.
Висновок
Як алгоритми машинного навчання та структури кодування швидко розвиватися, високоякісні дані в масштабі є найбільш дефіцитним ресурсом у ML. Якісні синтетичні набори даних можна використовувати в різних завданнях.
У цій публікації в блозі ви дізналися про важливість синтезу набору даних за допомогою бібліотеки з відкритим кодом, яка використовує WGAN-GP. Це активна дослідницька сфера з тисячами опублікованих статей про GAN і багатьма сотнями іменованих GAN, доступних для експериментів. Існують варіанти, оптимізовані для конкретних випадків використання, як-от реляційні таблиці та дані часових рядів.
Ви можете знайти весь код, використаний для цієї статті, тут ноутбук, і, звісно, інші навчальні посібники доступні на SageMaker офіційна сторінка документації.
У другій У цій серії публікацій у блозі, що складається з двох частин, ми детально зануримося в те, як оцінити якість синтетичних даних з точки зору вірності, корисності та конфіденційності.
Про автора
Фаріс Хаддад є провідним спеціалістом із обробки даних та аналізу в команді стратегічних пошуків AABG. Він допомагає підприємствам успішно стати керованими даними.
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Amazon SageMaker
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- середній (200)
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- Технічні інструкції
- зефірнет