Ein grundlegendes Tutorial, um Sichtbarkeit und Unterscheidung in Modellen des maschinellen Lernens zu verringern, die in den Bibliotheken HolisticAI und Sklearn verwendet werden
Modelle des maschinellen Lernens können in kritischen Anwendungen eingesetzt werden, beispielsweise in ausgewählten Prozessen, ohne gerichtliches System, mit Kreditvergabe oder in Gesichtserkennungssystemen. In diesem Fall ist es besonders wichtig, sicherzustellen, dass die Algorithmen nicht diskriminiert und ordnungsgemäß behandelt werden.
O Dokumentarfilm Kodierte VoreingenommenheitIm Jahr 2020 wurden verschiedene Fälle zurückgezogen, in denen Modelle für maschinelles Lernen aktuelle Tendenzen aufweisen. Wenn das Verhalten tendenziell zu Nachteilen für ein Individuum oder eine Gruppe von Individuen führt, stellen wir fest, dass der Algorithmus vorliegt viés (ou Voreingenommenheit).
Vamos pegar o Beispiel eines Gesichtserkennungsalgorithmus. Da wir uns mit der Ausbildung hauptsächlich für männliche Geschlechtsgenossen entschieden haben, ist unser Algorithmus nicht in der Lage, sowohl mehrere Gruppen als auch kleinere Gruppen zu klassifizieren. Es ist ein Beispiel für einen tendenziellen Algorithmus.
De acordo com ähm studiert Im Jahr 2018 realisiert, waren die beliebtesten Gesichtserkennungssysteme für Männer mit falschen Tendenzen und Klassifizierungen bei 34,7 % der Schwarzen gegenüber 0,8 % Fehler im Fall von Weißen.
Em 2020, Outro studiert Analysieren Sie Gesichtserkennungssysteme verschiedener Unternehmen. Das Ergebnis ist, dass die Modelle zu mehr als 90 % mehr Wasser enthalten, obwohl es sich bei dieser Particular person nicht um Homogenität handelt, und es wurden deutliche Hinweise auf Rassendiskriminierung gegeben. Für die Reinigung von Personen, die nicht in der Nähe sind, muss 1/3 weniger als für Personen, die nicht in der Nähe sind, verwendet werden.
Mit der massiven Verbreitung künstlicher Intelligenztechnologien in der Area Verantwortungsvolle KI ganha uma importância ainda maior. Es ist von entscheidender Bedeutung, dass Unternehmen/Fischer/Einzelpersonen sie verwenden oder künstliche Intelligenzmodelle verwenden und nicht für die Entwicklung ihrer Systeme verantwortlich sind. Der erste Schritt battle, dass wir ihn besuchten.
O viés könnte auf verschiedene Arten beruhen. Im Großen und Ganzen beziehen sich viele Menschen auf Modelle des maschinellen Lernens darauf, dass sie nicht in der Lage sind, die Komplexität ihrer Vorgänger zu erfassen. Natürlich ist es ein Modell, das ein ganz besonderes Merkmal hat Unteranpassung.
Kein Kontext Fairness und verantwortungsvolle KI, Ich bin auf jeden Fall so voreingenommen, dass wir uns für ein IA-System entschieden haben und dass es ein System ist, das für eine Particular person oder eine Gruppe von Vorteil ist. Es gibt verschiedene Arten von Tieren und sie könnten versehentlich in Algorithmen eingeführt werden, während sie sich im Entwicklungsstadium befinden, während sie mit der Geburt oder dem Bau des Modells beschäftigt sind.
Um mit einem System aus unterschiedlichen Führungsgruppen arbeiten zu können, müssen wir uns mit den folgenden Definitionen des Spiels einig sein:
- Ergebnisliste: Bei dieser Auswahl wird davon ausgegangen, dass alle Untergruppen zu Ergebnissen führen werden. Beispielsweise können wir in einem Rekrutierungskontext einen Teil der Kandidatenverträge abschließen, die zwischen den Gruppen konsistent sind (zum Beispiel verlangen wir von allen Kandidaten 5 % und 5 % von allen Kandidaten).
- Igualdade de Oportunidades: Bei dieser Auswahl wird davon ausgegangen, dass alle Untergruppen gute Chancen haben. Wenn Sie zum Beispiel einen Gesichtserkennungsalgorithmus verwenden, könnte es sein, dass der Klassifikator für alle Altersgruppen, Generationen usw. ein gleichwertiges Produkt verwendet.
Neste Verknüpfung Sie können verschiedene Messwerte miteinander verbinden, um Ergebnisse und Chancen zu gewährleisten!
Através da biblioteca ganzheitlich Es können mehrere Dutzend Strategien zur Schadensbegrenzung und Bewertung von Tieren für Modelle des maschinellen Lernens für Klassifizierungs-, Regressions-, Gruppen- oder Empfehlungssysteme angewendet werden.
Das nächste Tutorial zur Präsentation wird in einem bestimmten Fall behandelt: Mitigação de vieses em a tarefa de Klassifizierung Nutzung einer Strategie Potenzierte Gradientenreduktion.
Schritt 1: Führen Sie die Schritte durch und bereiten Sie den Vorgang vor
Neste exemplo vamos utilizar o Datensatz für Erwachsene. Wir haben einen Leitfaden aus zwei Jahren und einen vereinfachten Vorprozess realisiert, um zwei Gruppen zu finden, die sich für Intercourse interessieren: weiblich und männlich. Assim, wir müssen Nachforschungen anstellen und es ist notwendig, die Existenz zwischen zwei Gruppen zu verhindern.
# carregar os dados
from holisticai.datasets import load_adult
from sklearn.model_selection import train_test_split
import pandas as pd# leitura dos dados
knowledge = load_adult()
df = pd.concat([data["data"], knowledge["target"]], axis=1)
protected_variables = ["sex", "race"]
output_variable = ["class"]
# pré-processamento simplificado
y = df[output_variable].exchange({">50K": 1, "<=50K": 0})
X = pd.get_dummies(df.drop(protected_variables + output_variable, axis=1))
# separar o grupo_a = feminino e o grupo_b = masculino
group = ["sex"]
group_a = df[group] == "Feminine"
group_b = df[group] == "Male"
data_ = [X, y, group_a, group_b]
# separação dos dados em conjunto de treino e teste
dataset = train_test_split(*data_, test_size=0.2, shuffle=True)
train_data = dataset[::2]
test_data = dataset[1::2]
Schritt 2: Analysieren Sie die Erkundung der einzelnen Daten
from holisticai.bias.plots import group_pie_plot
from holisticai.bias.plots import histogram_plotfig, axs = plt.subplots(nrows = 1, ncols = 2, figsize = (15,5))
# separar os atributos "intercourse" e "class"
p_attr_sex = df['sex']
p_attr_class = df['class']
# gráfico round para o atributo "intercourse"
group_pie_plot(p_attr_sex, ax = axs[0])
# gráfico round para o atributo "class"
group_pie_plot(p_attr_class, ax = axs[1])
# histrograma por "race" e marcardo por "class"
histogram_plot(df['race'], df['class'])
Wie aus den Zahlen hervorgeht, ist klar, dass die Beziehung zwischen den Menschen unausgeglichen ist, da es sich um eine bedeutende Repräsentation von Menschen und Individuen mit unterschiedlichem „Rasse“-Zweig handelt. Dies kann zu Tendenzen führen und die Fähigkeit zur Generalisierung von Gebäuden oder Modellen, die in dieser Zeit erworben wurden, beeinträchtigen.
Schritt 3: Coaching des Baseline-Modells
# configurar o Pipeline
pipeline = Pipeline(steps=[
('scaler', StandardScaler()),
('classifier', LogisticRegression()),
])# treinar o modelo no Pipeline
X_train, y_train, group_a, group_b = train_data
pipeline.match(X_train, y_train)
# testar o modelo no Pipeline
X_test, y_test, group_a, group_b = test_data
y_pred = pipeline.predict(X_test)
# gerar métricas de igualdade de resultados e igualdade de oportunidades
metrics_baseline = classification_bias_metrics(group_a, group_b, y_pred, y_test, metric_type='each')
Schritt 4: Trainieren Sie ein Modell mit Lebensunterhalt
# importar a estratégia de mitigação
from holisticai.bias.mitigation import ExponentiatedGradientReduction# selecionar o modelo de classificação
mannequin = LogisticRegression()
# selecionar a estratégia de mitigação in-processing
inprocessing_model = ExponentiatedGradientReduction(
constraints="DemographicParity",
verbose=1
).transform_estimator(mannequin)
# configurar o Pipeline
pipeline = Pipeline(
steps=[
('scalar', StandardScaler()),
("bm_inprocessing", inprocessing_model),
]
)
# treinar o modelo com mitigador no Pipeline
X_train, y_train, group_a, group_b = train_data
fit_params = {
"bm__group_a": group_a,
"bm__group_b": group_b
}
pipeline.match(X_train, y_train, **fit_params)
# testar o modelo com mitigador no Pipeline
X_test, y_test, group_a, group_b = test_data
predict_params = {
"bm__group_a": group_a,
"bm__group_b": group_b,
}
y_pred = pipeline.predict(X_test, **predict_params)
# gerar métricas para igualdade de resultados e igualdade de oportunidades
metrics_mitigated = classification_bias_metrics(group_a, group_b, y_pred, y_test, metric_type='each')
Schritt 5: Vergleichen Sie die Ergebnisse
outcomes = pd.concat([metrics_baseline['Value'], metrics_mitigated[['Value', 'Reference']]], axis = 1)
outcomes.columns = ['Baseline', 'Com Mitigador', 'Valor de Referência']
outcomes
Eine Spalte „Referência“ zeigt die Werte an, die jeder als solcher in Betracht zieht einfach. Zum Beispiel ist Disparate Affect genau das Richtige für die 1. Era, aber es gibt keine weiteren Ergebnisse. Die mittlere Stärke (Basislinie) beträgt 0,2772 und liegt damit weit entfernt von der eigentlichen Serie. Der Schadensminderer hat einen Wert von 0,8743 oder mehr, das Ergebnis ist genau das Richtige!
Das Vergleichsergebnis lautete wie folgt: Estratégia de mitigação foi eficaz Um die vorhandenen Ansichten zwischen den Gruppen A (weiblich) und B (männlich) zu mildern.
Referenzen
Der vollständige Code ist jetzt verfügbar Verknüpfung Aberto para vorschläge und kommentare.
Dúvidas und Vorschläge? Geben Sie die Kontaktnummer ein LinkedIn Du hast keine E-Mail kleyton.vsc@gmail.com