back

by wiradikusuma·2y ago·view on hn ↗
Instead of trying to make the model "fair", can we do "model = models.getByRace(x)" so we have optimized model for each, instead of being "jack of all trades"?
6 comments
This paper covers many demographics, not just ethnicity. So you are wanting to really do "model = models.get(a, b, x, y, z)". It may be possible, but with medical data in such short supply, you would be lucky to get a large enough dataset.

You would also need to assume there no overlap in the distribution in the training data for each strata of training data. I would imagine that if you taught someone to detect cancer in x-rays, and only used images of people aged 80+, you might still have some success (>0.5) at detecting cancer in people aged 20-30.

This seems like a place where generative augmentation could help - generate an image of a person with demographic values x, y, z and an early stage lung cancer. Then you can generate images for more corners of the days, more evenly, and train the classifier on less biased data.
If your model already understand the distribution of the data (fundamentally this is what statistical models are trying to discover) well enough for generative models then they probably can do classification well enough.

The greater issue is that, for privacy and other reasons, there are many demographics that are not represented at all, or under represented, in medical image datasets.

Just in case you'd want to know, the singular of "strata" is "stratum".

(Although apparently that's sometimes debated [0].)

[0] https://www.dictionary.com/browse/stratum

Race doesn’t tell you much about a patient’s possible afflictions. While there may be some predispositions, there is also a lot more nuance than the color of their skin. Environmental factors play a much larger role (e.g “Chinese” Malaysians are much more likely to have joint issues due to high humidity and overuse of ACs)
Since when do humidity and AC cause joint issues?
You can just do one big model with static enrichment (effectively throw "race" into the model as a feature) and achieve the same thing. But the quality will always be worse for some sub-populations due to different amounts of available data. There's no easy way to fix that.
It seems like the problem is the entire premise.

Suppose that older people are more likely to get cancer, so older people with cancer are more represented in the training data. Then we discover that it has a 20% false negative rate for older people but a 35% false negative rate for younger people, i.e. it has a better handle on what cancer looks like in older people. This is fairly intrinsic, the only real way to fix it is to provide it with more samples of images of younger people with cancer, which may not be available.

But you can also "fix" it by raising the false negative rate for older people to 35%. Doing this is idiotic and should not be done, but it allows people to claim that the model is now "fair", and so they will have the incentive to do things like that as long as we continue to demand "fairness" above other considerations.

Moreover, you're likely to see similar effects with all kinds of other groups. Maybe farm workers are more likely to get skin cancer because they spend more time in the sun, and you could see the same kind of disparity in its ability to detect cancer in farm workers because the effects of doing farm work also have other long-term physical correlates that show up in the image. Probably nobody is studying this because farm workers are not a protected class, but it's just a thing that happens whenever you divide the population into distinct groups. That doesn't mean there is inherently anything to be done about it. It's a facet of what data is available.

> Probably nobody is studying this because farm workers are not a protected class

FYI a "protected class" is an attribute category, not an attribute value. In your example it would be something like "career" or "employment type", rather than "farmer".

I don't think that's right. For example, "veterans" are a protected class, but this is a category of past employment the same as "farmers" or "teachers".
Now I'm just confused. I found an article that might be trustworthy, [0], but even they seem to equivocate.

[0] https://content.next.westlaw.com/practical-law/document/Ibb0...

Is race really the biggest differentiator in model bias ? I would have imagined that environmental factors would have been the largest impact in most models bias.

I guess that these factors are harder to prove though.

That's not how this works. If the model does something like "this image is of race X, race X has more lung cancers, therefore this image is likely lung cancer", then it's not helpful to anyone. You need the model to evaluate based on the image itself, not based on correlations that it can infer from the image - fairness is just a happy byproduct of that.
I think what the parent comment meant was that you could force the model to divert its attention elsewhere if you removed race as a variable by making the training data uniform in terms of race. I think it's a smart thought, though I doubt it'd work due to the fuzziness of "race" as a construct. Even if you grouped people using some combination of their self-classified and/or observed racial identity, the model would probably start identifying (and thus start cheating using) even subtler "sub-racial" biomarkers.

If you ask me, it's probably more effective to compensate for the model's learned racial bias using weights derived from the model outputs via statistical analysis.