Metode post-hoc pentru debiasarea retelelor neuronale
Yash Savani, Colin White, Naveen Sundar Govindarajulu.
arXiv: 2006.08564 .
Trei noi tehnici post-hoc
In aceasta lucrare, introducem trei noi tehnici de reglare fina pentru a reduce prejudecatile in retelele neuronale pre-antrenate: perturbatie aleatorie, optimizare stratificata si reglare fina contradictorie. Toate cele trei tehnici functioneaza pentru orice constrangere de echitate a grupului. Includem cod care compara cele trei metode propuse de noi cu trei metode populare de post-procesare, in trei seturi de date furnizate de aif360 si trei masuri populare de partinire.
Cerinte
- piyaml
- neclintit
- torta
- aif360 == 0.3.0rc0
- sklearn
- numba
- jupiter
Instalati cerintele folosind
Cum sa va debiasati propria retea neuronala
De ce ai nevoie:
- Arhitectura modelului (modulul PyTorch acceptat in prezent)
- Punct de verificare model (tip de fisier acceptat in prezent: .pt)
- Set de date de validare pe care aveti de gand sa faceti debiasuri pe baza
- Foarte simplu daca modelul dvs. foloseste unul dintre aceste 10 seturi de date https://pytorch.org/docs/stable/torchvision/datasets.html
- Pentru un set de date personalizat, creati o clasa rapida DataLoader folosind acest tutorial https://pytorch.org/tutorials/beginner/data_loading_tutorial.html
- Atribut protejat (de exemplu, „rasa”)
- Atribut de predictie (de exemplu, „zambind”)
- (optional) parametru de polarizare reglabil lambda
- lambda = 0,9 inseamna ca vreau ca modelul meu sa fie aproape complet debiasat
- lambda = 0,1 inseamna, imi pasa foarte mult de acuratete si minim de debiasing
- Va recomandam lambda intre 0,5 si 0,75
Pasi pentru a va debia modelul
Urmati exemplul dat in test_post_hoc_lib.py. Va trebui sa mosteniti din clasa DebiasModel in post_hoc_lib.py si sa suprascrieti urmatoarele metode cu cele adecvate pentru modelul dvs.:
- def get_valloader (auto):
- Aceasta ar trebui sa returneze un torch.utils.data.DataLoader care itereaza peste setul dvs. de validare. Fiecare iteratie ar trebui sa returneze un lot de intrare si un vector de lot binar de iesire care include atributul protejat si atributul de predictie de-a lungul unui anumit index.
- def get_testloader (auto):
- Aceasta ar trebui sa returneze un torch.utils.data.
españolas guarras abuelas porno españolas
viejas con jóvenes follando a mi compañera de piso
nenas follando vende a su novia por dinero
porno con argumento viejas anales
corrida en el culo me follo a mi madre
orgasmosxxx porno espania
porno gay violacion follando en el monte
laura marano nude mujeres maduras corriendose
compartiendo novia tetas amaters
maduras follando y corriendose follando con mi amante
madurafollando videos chicas gratis
vidio xxxx amas de casa infieles
tetas en publico le pilla masturbandose
me follo a intercambio amateur
chicas altas follando videos ponos
follando despues de la fiesta porno loco
monica hoyos porno jovencitas muy calientes
pilladas playa putasfollando
maduras follando en español porno libre
come pollas porno calienteDataLoader cu aceiasi parametri ca valloaderul, cu exceptia setului de testare. Acesta este utilizat pentru evaluarea modelelor
- Aceasta ar trebui sa returneze un torch.utils.data.
- def protected_index (self):
- Aceasta ar trebui sa returneze indexul pentru atributul dvs. protejat
- def prediction_index (auto):
- Aceasta ar trebui sa returneze indexul pentru atributul de predictie
- def get_model (self):
- Aceasta ar trebui sa returneze arhitectura modelului cu greutatile incarcate de la punctul de control
- def get_last_layer_name (self):
- Aceasta ar trebui sa returneze numele ultimului strat al modelului.
De asemenea, puteti suprascrie parametrul lambda si masurarea de prejudecata pe care doriti sa o utilizati pentru obiectivul din constructorul __init__ pentru clasa dvs. Pentru a suprascrie parametrul lambda, schimbati atributul self.lam, pentru a suprascrie masurarea partinire schimbati atributul self.bias_measure la unul dintre „spd”, „eod” sau „aod”.
Dupa ce ati suprascris metodele si parametrii, puteti executa urmatorul cod
Rulati experimentele noastre post-Hoc de debiasing
Pasul 1 – Creati configuratii
Creati un fisier de configurare yaml necesar pentru a rula experimentul ruland
De exemplu:
unde este unul dintre „adulti” (ACI), „banca” (BM) sau „compas” (COMPAS), este unul dintre „spd” (diferenta de paritate statistica), „eod” (diferenta de sanse egale) sau „aod „(diferenta medie de cote), este 1 sau 2 (descris mai jos) si reprezinta numarul de incercari care pot fi rulate, care poate fi orice numar intreg pozitiv. Aceasta va crea un director de configurare <set de date> _ <masurare de polarizare> _ <variabila protejata> (de exemplu adult_spd_1) care include toate fisierele de configurare corespunzatoare pentru experiment.
Un tabel care descrie relatia dintre indicele variabilei protejate si setul de date este dat mai jos.
set de date 1 2 cursa de sex pentru adulti compas sex race bank race race
Pentru a crea automat toate cele 12 experimente utilizate in hartie, rulati
Pasul 2 – Rulati Experimente
Rulati toate experimentele descrise de fisierele de configurare din directorul de configurare creat la Pasul 1 executand
De exemplu
Aceasta va rula un experiment posthoc.py pentru fiecare fisier de configurare din directorul de configurare. Toate modelele de retea neuronala prejudecate, pre-antrenate sunt salvate in directorul models /. Toate rezultatele din experimente sunt salvate in rezultatele / directorul in format JSON.
Posthoc.py include codul de referinta pentru cele 3 tehnici de debiasare post-procesare furnizate de cadrul aif360: clasificarea optiunilor de respingere, postprocesarea cotelor egalizate si postprocesarea cotelor egalizate calibrate. De asemenea, include cod pentru perturbarea aleatorie si algoritmi de reglare fina contradictorii. Pentru a obtine rezultate pentru tehnica de optimizare stratificata, urmati instructiunile din directorul deco.
Pasul 3 – Analizati rezultatele
Pentru a analiza rezultatele experimentelor si pentru a obtine graficele prezentate mai jos, puteti rula prin notebook-ul jupyter analyse_resultate.ipynb.
Pasul 4 – Curatarea configurarilor
Pentru a curata directoarele de configurare, rulati








