Bird
Raised Fist0
Computer Visionml~20 mins

Fairness in face recognition in Computer Vision - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Fairness Face Recognition Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Bias Sources in Face Recognition

Which of the following is the most common source of bias in face recognition systems?

AUsing a high learning rate during training
BApplying too many convolutional layers in the neural network
CUnequal representation of demographic groups in the training data
DUsing grayscale images instead of color images
Attempts:
2 left
💡 Hint

Think about what causes the model to perform differently on various groups.

Metrics
intermediate
2:00remaining
Evaluating Fairness Metrics

You have a face recognition model tested on two groups: Group A and Group B. The false positive rate (FPR) for Group A is 2%, and for Group B is 10%. What does this indicate about the model's fairness?

AThe model is biased against Group B because it has a higher false positive rate
BThe model is fair because both FPRs are below 15%
CThe model is biased against Group A because it has a lower false positive rate
DThe false positive rate does not relate to fairness
Attempts:
2 left
💡 Hint

Higher false positive rates mean more mistakes for that group.

Predict Output
advanced
2:00remaining
Output of Face Embedding Normalization

What is the output of the following Python code snippet that normalizes face embeddings?

Computer Vision
import numpy as np
embeddings = np.array([[3, 4], [0, 0], [1, 1]])
norms = np.linalg.norm(embeddings, axis=1, keepdims=True)
normalized = embeddings / norms
print(np.round(normalized, 2))
A
[[0.6 0.8]
 [0.  0. ]
 [0.71 0.71]]
B
[[0.6 0.8]
 [nan nan]
 [0.71 0.71]]
C
[[0.6 0.8]
 [0.  0. ]
 [0.5 0.5]]
D
[[0.6 0.8]
 [nan nan]
 [0.5 0.5]]
Attempts:
2 left
💡 Hint

Consider what happens when dividing by zero norm.

Model Choice
advanced
2:00remaining
Choosing a Model Architecture to Reduce Bias

Which model architecture choice is best to help reduce bias in face recognition across diverse populations?

AA simple logistic regression model trained on raw pixel values
BA deep CNN trained only on a large dataset from one ethnicity
CA deep CNN trained on unbalanced data without any fairness considerations
DA shallow CNN trained on a balanced dataset with demographic labels used for fairness constraints
Attempts:
2 left
💡 Hint

Think about dataset balance and fairness-aware training.

🔧 Debug
expert
3:00remaining
Debugging Disparate Impact in Face Recognition

A face recognition system shows 90% accuracy on Group X and 60% accuracy on Group Y. The training data is balanced. Which of the following is the most likely cause?

AThe model uses a loss function that does not penalize errors differently across groups
BThe model architecture is too complex for the task
CThe training data contains mislabeled images for Group X only
DThe model was trained with early stopping
Attempts:
2 left
💡 Hint

Consider how the loss function affects learning fairness.

Practice

(1/5)
1.

What does fairness in face recognition mainly aim to achieve?

easy
A. More complex model architecture
B. Faster processing speed
C. Higher resolution images
D. Equal accuracy for all demographic groups

Solution

  1. Step 1: Understand fairness goal

    Fairness means the model should work equally well for all groups, not just some.
  2. Step 2: Identify fairness metric

    Accuracy or error rates should be similar across different demographic groups.
  3. Final Answer:

    Equal accuracy for all demographic groups -> Option D
  4. Quick Check:

    Fairness = Equal accuracy [OK]
Hint: Fairness means equal results for everyone [OK]
Common Mistakes:
  • Thinking fairness means faster models
  • Confusing fairness with image quality
  • Assuming complex models are always fair
2.

Which of the following is the correct way to check fairness in a face recognition model?

metrics = {'group_A': 0.92, 'group_B': 0.85}
# What should we compare?
easy
A. Only check metrics['group_A']
B. Compare metrics['group_A'] and metrics['group_B'] for equality
C. Ignore metrics and check model size
D. Compare metrics['group_A'] with a random number

Solution

  1. Step 1: Identify fairness check

    Fairness requires comparing performance metrics across groups.
  2. Step 2: Apply comparison

    Compare accuracy or error rates between group_A and group_B to find bias.
  3. Final Answer:

    Compare metrics['group_A'] and metrics['group_B'] for equality -> Option B
  4. Quick Check:

    Fairness check = Compare group metrics [OK]
Hint: Compare group metrics to check fairness [OK]
Common Mistakes:
  • Checking only one group
  • Ignoring metrics and focusing on model size
  • Comparing to unrelated values
3.

Consider this Python code snippet evaluating fairness metrics:

group_accuracies = {'A': 0.90, 'B': 0.75, 'C': 0.88}
threshold = 0.80
biased_groups = [g for g, acc in group_accuracies.items() if acc < threshold]
print(biased_groups)

What is the output?

medium
A. ['B']
B. ['A', 'B']
C. ['C']
D. []

Solution

  1. Step 1: Understand the code logic

    The code collects groups with accuracy less than 0.80 into biased_groups.
  2. Step 2: Check each group's accuracy

    Group A: 0.90 > 0.80 (not biased), B: 0.75 < 0.80 (biased), C: 0.88 > 0.80 (not biased)
  3. Final Answer:

    ['B'] -> Option A
  4. Quick Check:

    Only group B accuracy < threshold [OK]
Hint: Filter groups with accuracy below threshold [OK]
Common Mistakes:
  • Including groups with accuracy above threshold
  • Misreading comparison operator
  • Confusing list comprehension output
4.

Find the error in this fairness evaluation code snippet:

metrics = {'group1': 0.85, 'group2': 0.80}
threshold = 0.82
biased = [g for g, v in metrics if v < threshold]
print(biased)
medium
A. Missing .items() when iterating over dictionary
B. Wrong comparison operator
C. Threshold value is too high
D. Print statement syntax error

Solution

  1. Step 1: Identify dictionary iteration error

    Iterating over a dictionary directly gives keys, not key-value pairs.
  2. Step 2: Fix iteration to use .items()

    Use metrics.items() to get (key, value) pairs for comparison.
  3. Final Answer:

    Missing .items() when iterating over dictionary -> Option A
  4. Quick Check:

    Dictionary iteration needs .items() [OK]
Hint: Use .items() to get key-value pairs from dict [OK]
Common Mistakes:
  • Iterating dict keys instead of items
  • Changing threshold unnecessarily
  • Assuming print syntax is wrong
5.

You have a face recognition model with accuracy 0.95 on group X and 0.70 on group Y. Which approach best improves fairness?

hard
A. Ignore group Y and focus on group X
B. Increase model complexity without changing data
C. Collect more balanced training data including group Y
D. Reduce accuracy on group X to match group Y

Solution

  1. Step 1: Identify fairness problem

    Model performs worse on group Y, showing bias.
  2. Step 2: Choose best fairness improvement

    Balanced data helps model learn features for all groups equally.
  3. Step 3: Evaluate other options

    Increasing complexity alone may not fix bias; ignoring group Y is unfair; reducing group X accuracy is not ideal.
  4. Final Answer:

    Collect more balanced training data including group Y -> Option C
  5. Quick Check:

    Balanced data improves fairness [OK]
Hint: Balance training data to reduce bias [OK]
Common Mistakes:
  • Thinking model complexity fixes bias alone
  • Ignoring underperforming groups
  • Lowering accuracy on better groups