Изградете различни частни синтетични набори от данни в Python.

Какво са синтетични данни?
Въпреки че синтетичните данни могат да означават много неща, дефиницията на Gretel.ai за синтетични данни е изкуствени данни, създадени от обучение на модел за машинно обучение за повторно създаване на изходен набор от данни или подмножество от този набор от данни. Синтетичният модел извежда изкуствени данни, които съдържат много от прозренията и корелациите на оригиналните данни, без да запаметява никакви записи от оригиналните данни.

Как да започна?
Регистрирайте се за „безплатната бета версия“ на Gretel.ai и преминете през един от нашите предварително пакетирани примери или стартирайте със собствен набор от данни. Или разгледайте и допринесете за нашата библиотека с отворен код gretel-synthetics.

Как Gretel synthetics създава изкуствени данни?
Gretel-synthetics използва архитектура от последователност към последователност, за да тренира върху набор от текстови данни и да се научи да предсказва следващите знаци в последователността. Gretel-synthetics използва изкуствена невронна мрежа с дългосрочна памет (LSTM), за да учи и създава нови синтетични примери от всякакъв вид текст или структурирани данни.

Има ли архитектурна диаграма?
Тази диаграма на потока преминава през процеса на зареждане на изходни данни, обучение на генеративен модел за машинно обучение и използване на модела за създаване на синтетичен набор от данни с помощта на „gretel-synthetics“.

Какви видове данни мога да изпращам до Gretel-synthetics?
Можете да създавате синтетични данни от всякакъв вид текстови данни, независимо дали са структурирани или неструктурирани. Колкото по-прост е форматът на данните, толкова по-добре, препоръчваме CSV, Pandas DataFrames или неструктуриран текст, разделен с ред. Gretel-синтетиката процъфтява с шарките. Например, той се справя особено добре с набори от данни за машинно обучение, тъй като е в състояние да възпроизвежда както в рамките на полеви разпределения, така и между полеви корелации. Обратно, ако стойностите на полетата на всичките ви набори от данни са изключително уникални, моделът ще се затрудни да намери модели, които могат да се използват.

Какви са резултатите от Gretel-synthetics?
Резултатите включват модел на синтетични данни, който може да се използва за генериране на записи на синтетични данни, първоначален набор от записи на синтетични данни и налично първокласно отчитане модул, който оценява качеството и корелациите между синтетичните данни и оригиналния набор от данни.

Мога ли да стартирам gretel-synthetics на място?
Някои клиенти трябва да обучат синтетични модели на данни в среда, одобрена за съответствие. Gretel-synthetics е с отворен код и може да се внедри като пакет на Python или Docker контейнер. Някои премиум функции обаче изискват API ключ и връзка с API на Gretel.

Какво представляват премиум функциите на gretel-synthetics?
С Gretel API достъп разработчиците могат да получат достъп до премиум функции като автоматизирано валидиране на формат на данни, за да гарантират, че всички данни, генерирани от невронната мрежа, съответстват на структурата и дистрибуциите на изходните данни, корелация на полето и групиране за подобряване на прозренията, уловени от модела на синтетични данни, и модул за отчитане, който генерира HTML отчет, оценяващ качеството и корелациите между синтетичните данни и оригиналния набор от данни.

Трябва ли все пак да деидентифицирам чувствителни данни, когато използвам gretel-synthetics?
Gretel synthetics ще запомни и възпроизведе повтарящи се данни, които наблюдава в набора за обучение. Когато анонимизирате чувствителни идентифициращи типове данни в рамките на набор от данни, като например полета, съдържащи номера на социално осигуряване или кредитни карти, най-добре е да анонимизирате данните възможно най-добре, преди да обучите синтетичния модел. Gretel ви помага да автоматизирате този процес с нашите API за етикетиране на данни и SDK за трансформация.

С какви видове защита на поверителността може да помогне Gretel Synthetics?
Gretel-synthetics е проектиран да помага на разработчиците и специалистите по данни да създават безопасни, изкуствени набори от данни с много от същите прозрения като оригиналния набор от данни, но с по-големи гаранции за защита на лични данни или тайни в изходните данни. Внедряването на диференцирана поверителност на Gretel помага да се гарантира, че отделни тайни или малки групи от тайни, като номер на кредитна карта в структурирани и неструктурирани полета с данни, няма да бъдат запомнени или повторени в синтетичния набор от данни. Библиотеката със синтетични данни на Gretel също помага за защита срещу повторна идентификация и атаки за присъединяване, при които традиционно анонимизираните данни могат да бъдат обединени с друг набор от данни, дори такива, които все още не са създадени, за повторно идентифициране на потребителите.

По какво се различава диференциалната поверителност на Gretel-synthetics от традиционните имплементации?
Няколко компании, включително Uber, изградиха библиотеки, които помагат за прилагането на диференциална поверителност към SQL заявки, чрез инжектиране на шум в резултатите от агрегиране на заявки. Този подход е мощен, но изисква да знаете какви въпроси искате да зададете относно данните, без възможността да видите или инспектирате чувствителни данни директно. Gretel-synthetics е модел от последователност към последователност, който се обучава върху изходен набор от данни, инжектира шум по време на процеса на обучение, а не по време на заявка, и създава вторичен набор от данни, който може да бъде споделен и преглеждан директно от учени или разработчици на данни или запитван чрез всяка технология за бази данни.

По какво се различават синтетичните данни от първоначалните изходни данни, на които са били обучени?
Gretel-synthetics създава изкуствени данни, като обучава модел на машинно обучение да създава данни точно като входните данни, върху които е обучен . Например, ако тренирате върху набор от CSV данни, изходът ще бъде CSV.

Колко реда входни данни са ми необходими, за да обуча синтетичен модел?
Обикновено препоръчваме 5000+ примера. Ако имате по-малък набор от данни, който е само няколкостотин реда, опитайте да тренирате за 100+ епохи на обучение, за да научите структурата. Ако работите с многоразмерен набор от данни (напр. 15+ колони), препоръчваме 15000+ примера.

Колко колони с данни за обучение мога да имам?
Gretel работи най-добре върху модели за обучение за гъсто опаковани набори от данни с 50 или по-малко колони с данни. Въпреки това, няма ограничение за колоните (дименсионалността) на вашия набор от данни. Gretel-synthetics групира високо корелирани колони в партиди, за да се обучава независимо и след това обединява резултатите. Тествахме за набори от данни до 1500 колони с редки данни.

С колко епохи трябва да обуча модела си?
Правилният брой епохи зависи от присъщото объркване (или сложност) на вашия набор от данни. Добро правило е да започнете със стойност, която е 3 пъти броя на колоните във вашите данни. Ако установите, че моделът все още се подобрява след приключване на всички епохи, опитайте отново с по-висока стойност. Ако установите, че моделът е спрял да се подобрява много преди последната епоха, опитайте отново с по-ниска стойност, тъй като може да претренирате. Ако имате само малък брой записи във вашия набор от данни или имате голям брой записи, които не са преминали проверката, може да се наложи да увеличите значително броя на епохите, за да помогнете на невронната мрежа да научи структурата на данните.

Обучението на синтетичен модел изисква ли GPU?
GPU е силно препоръчително, тъй като не е задължително, за да започнете с gretel-synthetics. Като основно правило можете да очаквате обучението на синтетичния модел да бъде 10 пъти по-бързо или повече на GPU. Изводът обаче не е почти толкова успореден, колкото обучението, и ние препоръчваме процесори и наличната мултипроцесорна поддръжка на Gretel за генериране на текст.

Какво е диференциална поверителност?
Диференциалната поверителност е рамка за измерване на гаранциите за поверителност, предоставени от алгоритъм. През призмата на диференциалната поверителност можем да проектираме алгоритми за машинно обучение, които отговорно обучават модели на лични данни. Обучението с различна поверителност предоставя доказуеми гаранции за поверителност, намалявайки риска от излагане на чувствителни данни за обучение в синтетичния модел на данни или неговия изход. Интуитивно, модел, обучен с диференциална поверителност, не трябва да бъде повлиян от нито един пример за обучение или малък набор от примери за обучение в неговия набор от данни.

Как Gretel-synthetics използва диференциалната поверителност?
Gretel-synthetics използва диференциална поверителност, за да се защити от запаметяване, докато учи върху частен набор от данни. Неточно казано, изходът от синтетичен модел, обучен върху набор от данни D, който съдържа едно появяване на таен запис за обучение X спрямо друг синтетичен модел D1, който не съдържа X, трябва да бъде почти идентичен. Така имаме математически гаранции, че нашият модел не е запомнил тайната.

Как Gretel-synthetics прилага диференциална поверителност?
Екипът на TensorFlow пое голяма част от тежката работа по внедряването и пускането на TensorFlow Privacy, разширение на TensorFlow, което позволява диференцирано частно обучение. Gretel synthetics внедрява кода с отворен код на TensorFlow за DP-SGD в библиотеката Tensorflow-Privacy с леки модификации, за да го адаптира към повтарящи се невронни мрежи, и подобри базовата производителност, като замени обикновения оптимизатор SGD с оптимизатор RMSProp, тъй като често дава по-висока точност от vanilla SGD (Tijmen Tieleman и Geoffrey Hinton, COURSERA: Невронни мрежи за машинно обучение, 4(2):26–31, 2012).

Ако моделът ми е обучен на партиди, използвайки диференциална поверителност, какъв е крайният ми епсилон (гаранция за поверителност)?
Когато моделите за диференциална поверителност се обучават на несвързани подгрупи на частна база данни, комбинираното им използване има епсилон стойност, равна на максималната за всички модели.

Кои са добрите стойности на епсилон (ε) и делта (δ) в диференциалната поверителност?
Епсилон е вашата количествена гаранция за поверителност. Той дава таван за това колко може да се увеличи вероятността за конкретен изход, ако трябва да добавите или премахнете един пример за обучение. Стриктните нужди за поверителност обикновено изискват епсилон стойност по-малка от единица. В някои области обаче не е необичайно да се използват епсилони до 10. Delta е ограничение на външния риск, който няма да бъде ограничен от епсилон. Външният риск е този, който по своята същност съществува, независимо какво правите с вашия набор от данни. По подразбиране Гретел ще инициализира тази стойност да бъде 1/#обучителни проби. Делта стойности като e-05 или по-малко не трябва да компрометират полезността.

Как се модифицира стохастичното градиентно спускане (SGD), за да бъде диференцирано частно?
SGD работи чрез стохастично вземане на проби от набор от примери за обучение, изчисляване на загубата (разлика между прогнозирана стойност и реална стойност), изчисляване градиента на загубата, след това след модифициране на тези градиенти чрез скоростта на обучение, използва получените стойности за актуализиране на параметрите на модела. Итерацията на този процес е това, което се разбира под произход. Има няколко основни промени в този процес, за да го направят различен частен. Първо, градиентите се изрязват така, че нито един пример за обучение да не може да повлияе неоправдано на модела, и второ, произволен шум се добавя към изрязаните градиенти, за да стане невъзможно да се заключи кои примери са включени в обучението. Освен това, вместо да изрязват градиенти на ниво партида, те се изрязват в микропартиди. Колкото повече изрязване, добавяне на шум и микро-групиране имате, толкова по-различно частен ще бъде вашият модел. Тъй като често има компромис между поверителността и полезността, Gretel-synthetics излага всеки от тези елементи като модифицируеми параметри в обучението.

Какво означава ред на RDP?
Gretel използва вариант на диференциална поверителност, наричана диференциална поверителност на Rényi (RDP). RDP използва дивергенцията на Rényi за измерване на разстоянието между разпределенията. Дивергенцията на Рени е обобщение на дивергенцията на Кулбак-Лайблер, която работи в понятието параметър, наричан негов „ред“. В RDP идеята е да търсите реда, който оптимизира epsilon (напр. вашата гаранция за поверителност). Когато изпълнявате Gretel-synthetics, „оптималният RDP ред“ ще бъде отпечатан заедно с епсилон и делта, след като обучението завърши.

Забележка: Тази статия първоначално е публикувана на Gretel.ai.