algorithmic_bias_and_fairness

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
algorithmic_bias_and_fairness [2022/10/13 15:07] – [Kurzbeschreibung] josef_pelzalgorithmic_bias_and_fairness [2022/10/14 16:14] (aktuell) josef_pelz
Zeile 1: Zeile 1:
-=====Algorithmic Bias and Fairness=====+=====Algorithmic Fairness=====
  
 SS 22 SS 22
Zeile 17: Zeile 17:
 Um möglichst vielen Menschen die Auseinandersetzung mit der Thematik zu ermöglichen, haben wir uns für eine Website als Medium entschieden. Die potentielle Reichweite ist groß und die Verknüpfung mit anderen Webseiten via Hyperlinks ermöglicht es Nutzer:innen, je nach Vorwissen und Interesse, auf grundlegenderes oder tiefergehendes Wissen zuzugreifen. Zusätzlich können wir mittels JavaScript und WebGL eine interaktive Erfahrung kreieren, die eine spielerische Auseinandersetzung möglich macht und ein intuitives Verständnis vermitteln kann. Um möglichst vielen Menschen die Auseinandersetzung mit der Thematik zu ermöglichen, haben wir uns für eine Website als Medium entschieden. Die potentielle Reichweite ist groß und die Verknüpfung mit anderen Webseiten via Hyperlinks ermöglicht es Nutzer:innen, je nach Vorwissen und Interesse, auf grundlegenderes oder tiefergehendes Wissen zuzugreifen. Zusätzlich können wir mittels JavaScript und WebGL eine interaktive Erfahrung kreieren, die eine spielerische Auseinandersetzung möglich macht und ein intuitives Verständnis vermitteln kann.
  
-Der Einstieg in die Webseite ist ein Einstieg in die Thematik und bietet einen schnellen Überblick. Mehrere Links bieten Zugang zu Hintergrundwissen an. Beispiele von Anwendungsbereichen Neuronaler Netzwerke stellen deren Relevanz dar und verdeutlichen: Die von einem Algorithmus getroffenen Entscheidungen sollten so fair wie möglich sein. +Um den Zugang niedrigschwellig zu gestallten, schafft der Einstieg in die Webseite einen Überblick über die Thematik. Es werden grundlegende Begriffe wie Algorithmus, Ungerechtigkeit und Diskriminierung eingeführt. Mehrere Links bieten Zugang zu Hintergrundwissen an. Anschließend werden Kriterien für (Un)Gerechtigkeit von Algorithmen eingeführt und Ansätze präsentiert um diese zu einzuhalten. Beispiele von Anwendungsbereichen Neuronaler Netzwerke stellen deren Relevanz dar und verdeutlichen: Die von einem Algorithmus getroffenen Entscheidungen sollten so fair wie möglich sein. 
  
-Darauffolgend werden Kriterien für Fairness eingeführt und Ansätze präsentiert um diese zu einzuhalten. Um die grundlegende Funktionsweise Neuronaler Netzwerke zu erläutern und zu verdeutlichen, weshalb einige der Ansätze nicht geeignet sind, führen wir ein interaktives Beispiel heran. +Um die grundlegende Funktionsweise Neuronaler Netzwerke zu greifbar zu machen und zu verdeutlichen führen wir ein interaktives Beispiel heran
 +Auf einer zweidimensionalen Fläche sind Datenpunkte einer Datenbank abgebildet, angeordnet nach zwei Eigenschaften/Features. Jeder Datenpunkt ist entweder als Kreis (positiv) oder als Kreuz (negativ) markiert. Dies könnte beispielsweise die Kreditwürdigkeit darstellen. Nutzer:innen werden aufgefordert, eine Linie durch die Datenmenge zu ziehen, die so gut wie möglich Kreuze von Kreisen trennt. Aufgrund der Datenlage ist dies nicht fehlerfrei möglich. Das ist zwar zu erwarten, die Frage ist jedoch auf Kosten vom wem die Fehler gemacht werden. Im nächsten Schritt wird ein weiteres, soweit unbekanntes Feature durch Farbgebung sichtbar. Datenpunkte gehören nicht nur zur Klasse Kreuz oder Kreis, sondern zusätzlich auch entweder zu Gelb oder Blau. Es wird ersichtlich, dass die meisten Fehler bei Datenpunkten der Gruppe Gelb gemacht wurden. Es wird dadurch klar, dass wir unabsichtlich und unwissend diskriminieren können.
  
-Auf einer zweidimensionalen Fläche sind Datenpunkte einer Datenbank abgebildetangeordnet nach zwei Eigenschaften/FeaturesJeder Datenpunkt ist entweder als Kreuz oder als Kreis markiertDies stellt die Zugehörigkeit zu einer Gruppe oder Klasse daNutzer:innen werden aufgefordert, eine Linie durch die Datenmenge zu ziehen, die so gut wie möglich Kreuze von Kreisen trenntAufgrund der Datenlage ist dies nicht fehlerfrei möglichDas ist zwar zu erwarten, die Frage ist jedoch auf Kosten vom wem die Fehler gemacht werden. Im nächsten Schritt wird eine weitere, soweit unbekannte Klasse durch Farbgebung sichtbar. Datenpunkte gehören nicht nur zur Klasse Kreuz oder Kreis, sondern zusätzlich auch entweder zu Gelb oder Blau. Es wird ersichtlich, dass die meisten Fehler bei Datenpunkten der Gruppe Gelb gemacht wurden. Es wird dadurch klar, dass wir unabsichtlich und unwissend diskriminieren können.+Wir nutzen hierfür ausschließlich die [[https://www.khronos.org/webgl/| JavaScript WebGL API]]keine bestehenden Bibliotheken/FrameworksFür jeden Datenpunkt wird ein Punkt gerendert, der einem Quadrat aus mehreren Pixeln entsprichtInformationen über dessen Position, Zugehörigkeit zu verschiedenen Klassen etc.werden in einem JavaScript Array festgelegt und mithilfe von einem gl.ARRAY_BUFFER an den Vertex-Shader und von diesem an den Fragment-Shader übergebenDie Position und Größe des Datenpunktes werden im Vertex-Shader ausgelesen und angewendetwährend der Fragement-Shader die entsprechenden Pixel in Form eines Kreises oder eines Kreuzes einfärbt.
  
-====Aufbau==== 
  
-Die Webseite basiert auf einem [[https://www.w3schools.com/w3css/default.asp|W3.css]] Template. Auf der scroll-baren Startseite sind Blöcke vertikal angeordnet, die portionsweise Informationen beinhalten. So wird beispielsweise zuallererst grundlegendes Wissen zu den Themen Algorithmen, Ungerechtigkeit und Diskriminierung angeboten. Nutzer:innen können, je nach Wissensstand, Links folgen um sich weiter in die Thematik einzulesen, oder dem linearen Aufbau der Seite folgen. +===Resultat===
  
 +Das Ergebnis des Projektes "Algorithmic Fairness" ist hier erlebbar: [[https://algorithmicfairness.project-sci.com/| Webseite]]
  
-Der zentrale Teil der Seite ist ein WebGL Canvas. Dieser beinhaltet die oben beschriebene interaktive Komponente. Wir nutzen hierfür ausschließlich die [[https://www.khronos.org/webgl/| JavaScript WebGL API]], keine bestehenden Bibliotheken/Frameworks. Für jeden Datenpunkt wird ein Punkt gerendert, der einem Quadrat aus mehreren Pixeln entspricht. Informationen über dessen Position, Zugehörigkeit zu verschiedenen Klassen etc., werden in einem JavaScript Array festgelegt und mithilfe von einem gl.ARRAY_BUFFER an den Vertex-Shader und von diesem an den Fragment-Shader übergeben. Die Position und Größe des Datenpunktes werden im Vertex-Shader ausgelesen und angewendet, während der Fragement-Shader die entsprechenden Pixel in Form eines Kreises oder eines Kreuzes einfärbt. 
  • algorithmic_bias_and_fairness.1665666463.txt.gz
  • Zuletzt geändert: 2022/10/13 15:07
  • von josef_pelz