Итоговое решение при противоречивых мнениях

Andrey68

вопрос такой
есть системы, которые развиваются, используя обратную связь от пользователей-экспертов
например, гугл-переводчик спрашивает пользователя, устраивает ли его машинный перевод или он может предложить перевод получше
или урбан-словарь просит проголосовать, оставить такое-то слово в словаре или нет
наверняка еще много подобного существует, просто я не знаю
где почитать/по каким словам искать, по каким алгоритмам такие системы принимают решение?
с практической точки зрения меня интересует решение задачи следующего вида:
есть довольно сложное изображение некоторого биологического объекта
нужно понять, соответствует ли это изображение определенному состоянию этого объекта (в частности, развитию заболевания Х, Y, Z и т.д., градаций состояния довольно много и их очень сложно описать математически четко, чтобы потом автоматически "выставлять диагноз")
есть некоторое количество экспертов (реально единицы, максимум десятки которые могут в силу свого опыта определить, это Х, Y или Z
эксперты могут между собой соглашаться или не соглашаться
по какому алгоритму принимать итоговое решение, если эксперты не пришли к 100% согласию?

kravecnata

crowd labeling

Andrey68

похоже на то, что нужно, спасибо!
единственное, мне непонятно, можно ли использовать такие подходы при очень малом количестве тех, кто ставит метку, или должна быть принципиально иная имитация "врачебного консилиума"

Sander

с практической точки зрения меня интересует решение задачи следующего вида:
есть довольно сложное изображение некоторого биологического объекта
нужно понять, соответствует ли это изображение определенному состоянию этого объекта (в частности, развитию заболевания Х, Y, Z и т.д., градаций состояния довольно много и их очень сложно описать математически четко, чтобы потом автоматически "выставлять диагноз")
есть некоторое количество экспертов (реально единицы, максимум десятки которые могут в силу свого опыта определить, это Х, Y или Z
эксперты могут между собой соглашаться или не соглашаться
по какому алгоритму принимать итоговое решение, если эксперты не пришли к 100% согласию?
А Image Recognition - не подходит?
Только обычно люди обучаются на огромном количестве примеров (с вашим количеством экспертов так не получится).
Что будет эффективней - строить модель каждого эксперта, а потом сливать вместе (видимо придется делать еще и свои оценки в качестве taarget) или сразу обучать на как-то объединенную оценку - на это нет универсального ответа. Тут скорее должна рулить ваша интуиция.
Может я неправильно тебя понял со своей колокольни, но если речь о машинном обучении, то это всё не делается в пол пинка обычно. Предполагаю, что для медицинских целей вы ожидаете большую точность.

Andrey68

я боюсь сейчас напутать мб в каких-то технических вещах, но мне сейчас в голову пришла аналогия с распознаванием капчи
т.е. человек это делает довольно просто, а компьютеру сложно
бывают, условно, капчи, где три человека видят шестерку, а один восьмерку
что там на самом деле - неизвестно, но они как-то договариваются и решают, что это шестерка
в нашем случае обучить компьютер автоматически распознавать "капчи" - задача практически не выполнимая (учитывая еще и разное качество этих "капч")
реально посадить десяток человек и сказать "распознавайте, кто во что горазд"
вопрос: что делать, если один считает так, а двое эдак

Sander

реально посадить десяток человек и сказать "распознавайте, кто во что горазд"
вопрос: что делать, если один считает так, а двое эдак
Каких-то особых теорий про это не знаю.
Раз речь о нескольких человеках, вряд ли тут может быть какой-то рокетсаенс, выходящий за пределы интуитивных методов.
Можно делать, например, так:
делаешь эталонную разметку, в которой уверена на 100%
каждого чувака прогоняешь по эталонной
проставляешь каждому веса (вероятность, с которой чувак лажает)
далее решение по каждому новому событию принимаются голосованием с проставленными весами
Если фактор лажи не один, а их много, можно по каждому фактору строить такую модель голосования.
Ну или мутить машинное обучение. Всё зависит от того, как формализована задача.

kravecnata

Для малого числа экспертов методы crowd labeling'а вполне применимы, и обычно чем меньше экспертов, тем лучше. Важнее, чтобы примеров было много (хотя если есть всего-то пять примеров и три эксперта, то проще их посадить договариваться, чем алгоритм городить). Но самое важное — правильно поставить задачу; я попытаюсь описать имеющиеся варианты.
Во-первых, чего мы можем достичь, "согласовывая" мнения экспертов? Один вариант, что про экспертов мы ничего не предполагаем, и тогда мы хотим, чтобы наши решения (так я буду называть результат согласования мнений экспертов) были не хуже, чем у лучшего из экспертов (нам неизвестно, кто из них объективно лучший, но он существует). Другой вариант, что мы предполагаем экспертов "независимыми" друг от друга (например, один эксперт диагностирует по форме ложноножек, а другой — по цвету псевдоглазок тогда можно добиться того, что наши решения будут лучше, чем у каждого отдельного эксперта (ключевое слово — boosting). Кстати, отдельный вопрос, что значит "лучше/хуже" для набора решений — общее число ошибок? "вероятность" ошибиться в каждом случае? какая-то ещё функция?
Во-вторых, что мы узнаём о правильном диагнозе? Если ничего кроме мнений экспертов мы никогда не получаем, то это crowd labeling. Для него нужно что-то хорошее предположить об экспертах, например, что многие из них часто правы. Если со временем мы всё же что-то узнаём, то это может быть prediction with expert advice (если становится известен правильный диагноз) либо online bandits (если про наше решение становится известно, было ли оно верным, а правильного нам не говорят — именно так обычно работает капча).
Далее, в какой форме мы выдаём решения: один из конечного множества диагнозов (это очень плохой вариант для теории распределение вероятностей на них? Предполагаем ли мы, что за время наблюдений качество наших экспертов неизменно либо же оно может меняться (поначалу надо было соглашаться с профессором, но потом он впал в маразм, а молодая практикантка приобрёла опыт, и надо переключиться на неё — задача tracking'а). Все ли примеры одинаково подходят всем экспертам или у них есть неизвестная нам специализация (задача multitasking'а).
И тому подобное. Почти для каждого варианта есть некоторая литература. Собственно, базовый алгоритм более-менее один и уже описан выше: надо экспертам придать веса и взять взвешенное среднее их диагнозов (либо согласиться с экспертом с наибольшим текущим весом). Различается формула взвешивания и стратегия пересчёта весов в процессе работы.

Andrey68

спасибо большое за разъяснения!

stm7543347

аналогия с распознаванием капчи
т.е. человек это делает довольно просто, а компьютеру сложно
Наоборот же!

Andrey68

объясни

stm7543347

Ну например, тысячи их.

geki-li

нужно понять, соответствует ли это изображение определенному состоянию этого объекта (в частности, развитию заболевания Х, Y, Z и т.д., градаций состояния довольно много и их очень сложно описать математически четко, чтобы потом автоматически "выставлять диагноз")
есть некоторое количество экспертов (реально единицы, максимум десятки которые могут в силу свого опыта определить, это Х, Y или Z
эксперты могут между собой соглашаться или не соглашаться
по какому алгоритму принимать итоговое решение, если эксперты не пришли к 100% согласию?
Если уже есть размеченная выборка (т.е. для элементов которой доподлинно известен диагноз то можно сначала прогнать по ней экспертов и, в зависимости от числа правильных ответов, приписать экспертам некий вес.
Потом можно использовать эти веса, если показания разошлись.

stm2903440

Скопировала вопрос одному знакомому математику/мат.модельеру, занимающемуся биомедицинскими приложениями, и вот что он ответил
Таких алгоритмов может быть много разных, и среди их нет какого-то одного "в целом наилучшего". Выбор между алгоритмами зависит от постановки задачи, т.е. от того, как мы определяем понятие "наилучшести", какие мы вводим правила игры (например, разрешаем ли мы алгоритму отвечать "не знаю" или требуем всегда выдавать какой-то из вариантов X, Y, Z какую мы назначем "цену ошибки" (например, если цена ошибки - это потерянная жизнь пациента, то их нельзя допускать вообще) и т.д.
К тому же, если у нас есть только оценки экспертов (и эксперты ошибаются, раз между ними есть несогласования и нет никакой проверочно-обучающей выборки (т.е. набора случаев, в которых "некие биологические объекты" были не только оценены экспертами, но еще и как-то надежно-лабораторно то фундаментально невозможен не только алгоритм, который по несогласованным оценкам экспертов давал бы 100%-но правильный результат, но и вообще невозможен алгоритм, который _гарантировал_ бы какие-нибудь N% вероятности правильности, ибо в такой ситуации никто не знает, что есть "правильно"; никто не знает, на что надо калиброваться.
Что касается гуглопереводчика и иже с ним, то там практически наверняка используется философия "Больших Данных" (aka "миллион мух не может ошибаться" т.е. всё стоит на том, что на один и тот же вопрос отвечают тысячи и миллионы человек и "самым правильным" ответом тупо считается самый популярный (ну или "правильность" ответа пропорциональна доле проголосовавших за него). И если у нас целевая функция состоит максимально удовлетворить желания этих миллионов пользователей (т.е. чтобы им всё казалось "как надо" то это правильная модель. Если же мы пытаемся угадать "вселенски правильный" ответ, который потенциально удовлетворил бы высоколобое сообщество теор.лингвистов, то считать правильным ответ, проголосованный большинством из миллионов "школоло" - это уже не такая уж оптимальная стратегия.
Мораль:
Если нет обучающей выборки, то можно нагипотетизировать несколько разных "правдоподобных" вариантов алгоритмов и, введя кучу опять же "правдоподобных" предположений о том, как статистически устроен механизм "ошибания" эксперта, можно попытаться оценить (и оптимизировать) вероятность выдачи алгоритмом "правильного" ответа. Но это не будет доказательством и доказательной медициной, т.к. всё будет опираться на большое количество ничем не доказанных предположений и допущений, но не на данные.
Если обучающая выборка есть, то тут уже можно говорить о сколько-нибудь доказательных статистических моделях. Но всё равно универсального ответа-алгоритма не будет, т.к. надо предметно смотреть, как ведут себя эксперты относительно надежно-лабораторного диагноза (т.е. всё опять сводится к построению стат.модели "ошибания" эксперта, но уже на данных, а не на гипотезах).
Мораль морали: в любом случае лучше обратиться к специалисту по мат.моделированию.

Если хочешь, могу дать тебе его контакты, поговорите с ним предметней.

stm2903440

И еще
Чуть позже (и после прочтения ответа про image recognition) пришел в голову один возможный достаточно конструктивный ход: даже если нормальной обучающей выборки не предвидится, то можно попробовать те случаи, по которым у экспертов нет расхождения мнений, объявить "референсными" и "правильными" (что тоже есть допущение а затем методами image recognition искать сходства у картинок, по которым есть расхождение мнений экспертов, с "референсными". В результате можно "неоднозначные" случаи решать и чисто по результатам автоматического анализа картинки, и совместно по "автомату" и по экспертам, и вообще можно посмотреть, как мнение экспертов коррелирует с результатами технического анализа.
Правда, проблемы с доказательностью всё равно останутся, т.к. процесс будет строиться на ряде допущений (наиболее серьезным из которых будет внутренняя логика image recognition).

Sander

перечитал тредик и вспомнилась картинка
Оставить комментарий
Имя или ник:
Комментарий: