Skip to content

Latest commit

 

History

History
89 lines (48 loc) · 13.9 KB

Metrics.md

File metadata and controls

89 lines (48 loc) · 13.9 KB

Метрика качества

Подзадача 1 - Code2code Translation

CodeBLEU - метрика, предложенная в Ren et al., 2020 и призванная приспособить метрику BLEU, которая используется для оценки качества перевода на естественном языке, к оценке перевода исходного кода; это достигается благодаря тому, что сравнение n-граммов дополняется сравнением соответствующих деревьев абстрактного синтаксиса эталонного кода и переведенного (таким образом, учитывается информация на уровне синтаксиса кода), а также сопоставляются "потоки данных" (data-flow, информация на уровне семантики кода).

CodeBLEU представляет собой взвешенную комбинацию четырех компонент:

image

где BLEU - стандартная метрика BLEU Papineni et al., 2002, BLEUweight - взвешенное сопоставление n-грамм (токены различаются по важности - и совпадение определённых токенов переведенных и "золотых" функций имеет больший вес), Matchast – метрика соответствия деревьев абстрактного синтаксиса переведенного кода и эталонного, Matchdf отражает сходство "потоков данных" функций-гипотез и верных функций.

Остановимся подробнее на каждой из компонент метрики:

  • BLEU основана на подсчете n-грамм, которые встретились и в переводе, и в референсной последовательности; рассчитывается она следующим образом:

image

где BP - штраф за слишком короткие варианты перевода, который считается как отношение количества токенов в переводе, предложенном моделью, к количеству токенов в эталонной последовательности; вторая часть выражения – среднее геометрическое значений модифицированной точности n-грамм:

image

для n-грамм длиной от 1 до N, умноженных на соответствующие положительные веса wn, в сумме дающие 1.

  • В отличие от стандартной BLEU, в формулу расчета точности совпадения n-грамм для метрики BLEUweight включается весовой коэффициент (image), значение которого больше для ключевых слов языка программирования, чем для других токенов:

image

где C(i, i+n) - n-грамм, начинающийся в позиции i и заканчивающийся в позиции i+n; Countclip, как и в случае со стандартной BLEU, - максимальное количество n-грамм, встречающихся как в переведенном коде, так и в наборе эталонных решений. Список ключевых слов заранее определяется для конкретного языка программирования.

  • Синтаксическая структура исходного кода может быть представлена в виде дерева абстрактного синтаксиса (ДАС) - переведенные и эталонные функции, таким образом, можно сравнивать на уровне поддеревьев, полученных с помощью ДАС-парсера. Поскольку нас интересует синтаксическая информация, листья ДАС, в которых находятся переменные функции, не учитываются. Matchast рассчитывается по следующей формуле:

image

где Count(Tref) - общее количество поддеревьев референсного кода, Countclip(Tcand) - количество поддеревьев переведенного кода, совпавших с поддеревьями эталонных функций. Данная метрика позволяет оценить качество получившегося кода с точки зрения синтаксиса.

  • Сравнение переведенного кода и референсного на уровне семантики происходит с использованием "потоков данных" (data flow Guo et al., 2020) - представлений исходного кода в виде графа, вершины которого — переменные, а грани обозначают своего рода "генетические" отношения между вершинами (выражают информацию о том, откуда берется значение каждой переменной). Формула расчета метрики Matchdf имеет следующий вид:

image

где Count(DFref) - общее количество "потоков данных" референсного кода, Countclip(DFcand) - количество "потоков данных" переведенного кода, совпавших с эталонными.

Подзадача 2 - Handwritten Text Recognition

В качестве основной метрики для оценки решений участников используется метрика String Accuracy - отношение количества полностью совпавших транскрибаций строк к количеству всех строк в выборке. Считается она следующим образом:

image

Здесь n - размер тестовой выборки, predi – это строка из символов, которую распознала модель на i-ом изображении в выборке, а truei - это правильный перевод i-ого изображения, произведенный аннотатором, [•] - скобка Айверсона:

image

Метрика String Accuracy изменяется от 0 до 1, где 0 – наихудшее значение, 1 - наилучшее.

Подзадача 3 - Zero-shot Object Detection

Для оценки качества будет использоваться метрика F1-score:

image

F1-score вычисляется на основе значений Precision (точности) и Recall (полноты), которые, в свою очередь, зависят от набора статистик по прогнозам – true positive (TP, истинно-положительный результат), false positive (FP, ложно-положительный результат) и false negative (FN, ложно-отрицательный результат):

image

image

Правила, по которым прогноз модели относится к одному из типов, следующие:

  • Если данный класс из запроса отсутствует в правильной разметке (то есть является негативным примером), но модель участника сделала для него предсказание — предсказание оценивается как FP
  • Если данный класс из запроса присутствует в правильной разметке (то есть является положительным примером):
    • модель участника не сделала для него предсказание, то есть передала пустой список, или же количество предсказанных ограничивающих рамок меньше количества верных для данного класса, — непредсказанные ограничиващие рамки оцениваются как FN
    • для каждого bbox данного класса из предсказания (класс может иметь несколько соответствующих bbox на изображении):
      • пересечение предсказанного bbox хотя бы с одним из правильных bbox для данного класса по IoU > 0.5 – предсказание оценивается как TP
      • пересечение предсказанного bbox с каждым из правильных bbox для данного класса по IoU < 0.5 – предсказание оценивается как FP

IoU – это метрика, которая оценивает степень пересечения между двумя ограничивающими рамками. Она вычисляется как отношение площади пересечения к площади объединения этих двух bbox:

image

IoU для каждой пары (prediction/true) принимает значение от 0 до 1. В качестве порога отсечения по IoU используется значение 0.5, то есть все предсказанные bbox, значение IoU для которых меньше 0.5, считаются ложными прогнозами.

Метрика F1-score изменяется от 0 до 1, где 0 – наихудшее значение, 1 – наилучшее.

Подзадача 4 - Visual Question Answering

Для оценки качества предсказания будет использоваться метрика Accuracy. Эта метрика показывает долю точных совпадений среди пар предсказанных и истинных ответов, то есть отражает отношение числа совпавших ответов (когда модель участника предсказала такой же ответ, как истинный) к общему числу ответов. Эта метрика изменяется от 0 до 1, где 0 – наихудшее значение, 1 – наилучшее:

image