Введение

Как свидетельствует поток статей из крупных развлекательных новостных агентств за последний месяц с момента объявления номинаций, предсказание победителей премии Оскар - занятие спортом. Я никогда внимательно не следил за церемониями награждения и предполагал, что каждый кандидат вступит в гламурный рукопашный бой с примерно равными шансами, и лучший в этой категории будет признан победителем. Не так! Оказывается, на избирателей может влиять любое количество факторов, и, возможно, большинство из них может быть количественно определено и учтено нейронной сетью. Некоторые из этих факторов являются получателями наград гильдии ремесленников, но что делает награды Академии такими интересными в этом году, так это то, что впервые в истории они все предпочли награждать разные фильмы.

Проще говоря, нейронная сеть - это метод машинного обучения, цель которого - имитировать человеческий мозг, принимая входные данные и оценивая их относительную важность для оценки части информации (или выходных данных). Философия решения проблем таким способом заключается в том, что определенные факторы для каждой проблемы имеют большее значение. Например, если вы пытались оценить, есть ли у человека диабет, то его ИМТ будет гораздо более важным фактором, чем его годовая зарплата. Вы можете установить важность или вес входных данных, обучив сеть на большом наборе данных, где выходные данные уже известны. Ниже я изложил подход к прогнозированию «Лучшего изображения» на церемонии вручения премии Оскар с помощью нейронной сети.

Отказ от ответственности

В состав Академии на 2017 год входят 6687 профессионалов отрасли (по данным Википедии), каждый из которых будет иметь множество личных мнений по выбору номинантов на премию «Лучший фильм» в этом году. Поэтому невозможно со 100% уверенностью сказать, кто из 8 номинантов этого года увезет домой корону… поэтому, пожалуйста, не вкладывайте деньги в фильм, который я предсказываю!

Сбор данных

Первый вопрос, конечно же, заключался в том, какие есть признаки того, что фильм может выиграть премию Оскар в номинации Лучший фильм? К счастью для меня, я нашел статью с подходящим названием Как предсказывать Оскар, любезно предоставленную хорошими людьми из Empire Online. В нем оговаривалось, что для того, чтобы фильм выиграл Лучший фильм, необходимо следующее:

  1. Режиссеру рассматриваемого фильма потребуется как минимум номинация на звание «Лучший режиссер», поскольку только четыре фильма за всю историю церемонии вручения премии Оскар нарушают это правило.
  2. Фильму потребуется номинация на «Лучший адаптированный сценарий» или «Лучший оригинальный сценарий».
  3. Гильдия киноактеров (SAG) имеет большой перекресток с избирателями Академии. Эквивалентным призом за «Лучший фильм» является награда SAG за «Выдающееся исполнение актеров в кино» (также известная как награда за ансамбль SAG), для которой, по мнению Empire (почти) важно получить номинацию по порядку. чтобы выиграть «Лучшую картину». Я говорю почти ... прошлогодний победитель Форма воды не был номинирован на эту награду.
  4. Ни анимационный, ни зарубежный фильм никогда не становился победителем в номинации Лучший фильм. Это имеет интересные последствия для этого года (и для нейронной сети!), Поскольку мексиканский фильм Roma считается лидером.
  5. Можно с уверенностью ожидать, что фильм, получивший награду для ансамбля SAG, награду Гильдии продюсеров Америки за «Выдающийся продюсер» и награду Гильдии режиссеров Америки за «Выдающиеся режиссерские достижения в художественном кино», получит «Лучший фильм» (с пара заметных исключений).

Еще одно интересное примечание из статьи касалось успешности каждого из вышеперечисленных предшественников в предсказании «Лучшего фильма» на церемонии вручения премии Оскар. Награды Critics 'Choice Awards лидируют с точностью 60% (однако они работают только с 1996 г. и поэтому имеют меньший размер выборки), за которыми следуют 55% для BAFTA, 50% для SAG и 45% для' Лучшего кинофильма '. - Категория «Драма» на «Золотом глобусе». Отметим, что «Золотой глобус» присуждает еще одну кинопремию под названием «Лучший фильм - мюзикл или комедия». О степени успеха этой награды Empire не сообщала. Однако, согласно Википедии, 12 победителей этой награды (или одной из кратковременно разделенных наград в период с 1958 по 1962 год) получили «Лучшую картину» из 72 награжденных, что составляет 17%. Поэтому я намерен превзойти хороших членов Ассоциации кинокритиков, присуждающих награды Critics ’Choice Awards, в предсказании того, как Академия пойдет в награду за лучший фильм.

В этой статье я обучу две нейронные сети. В Network A не входят награды Гильдии продюсеров Америки (оценка 1989 г.), премии Гильдии киноактеров (оценка 1995 г.) и Приз критиков (оценка 1996 г.), а в Network B они включены. Причина этого в том, что для них как коллектива есть данные только за 22 года, в то время как Оскар, BAFTA, Золотой глобус и Гильдия режиссеров Америки присуждали фильмы с (по крайней мере) 1948 года, что примерно удвоить количество точек данных.

Обучение сети

Создание такого прогноза, по-видимому, представляет собой проблему классификации с двумя возможными исходами - победителем в категории «Лучшее изображение» или нет. Однако при этом не учитывается ограничение выбора только одного победителя из выбранной группы данных или «номинантов» в реальном выражении. Поэтому я считаю, что это можно рассматривать как проблему регрессии, когда результат - это непрерывная переменная, которая преобразуется в вероятность того, что фильм будет признан победителем в категории «Лучший фильм». Затем мы можем сделать решающий выбор между группой номинантов, выбрав тот, который имеет наибольшую вероятность.

Сеть прямого распространения была первым типом нейронной сети, и в итоге она представляет собой ориентированный граф узлов (или нейронов), который сначала принимает входные данные, одним из которых может быть «сколько номинаций у фильма?». Затем он передает эти входные данные через нейроны в скрытых слоях сети, которые применяют функцию активации, пытаясь установить важность каждого входа. Наконец, вычисляется выходное значение, например. у этого фильма есть шанс 0,2 на победу в номинации «Лучший фильм». Мы можем измерить успех сети, вычислив разницу между ее выходами и тем, какими, как мы знаем, должны быть выходы. Обучение выполняется с помощью функции обучения с целью минимизировать ошибку в прогнозах и как можно быстрее обучить сеть.

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

Сеть А

Что касается отбора данных для тренировок, я решил начать с 1951 года, когда впервые был присужден Золотой глобус за лучший фильм - мюзикл или комедию. Это дало мне 65 точек данных с тех пор до 2015 года, не считая данных за два года для независимой проверки. Отметим, что я использовал 12 входов для Сети А, которые были следующими: победа BAFTA в номинации «Лучший фильм»; номинация на «Золотой глобус» или победа в номинации «Лучший фильм - комедия / мюзикл»; номинация на «Золотой глобус» или победа в номинации «Лучший фильм - драма»; общее количество номинаций на премию Оскар, полученную фильмом; номинация на премию Оскар в категории «Лучший режиссер»; номинация на премию Оскар за сценарий фильма; был ли это мультипликационный фильм или иностранный фильм; и премию Гильдии режиссеров Америки или номинацию «Выдающиеся режиссерские достижения в художественном кино».

Я начал с попытки выделить лучшую обучающую функцию для этой проблемы, что я и сделал, создав множество сетей с различными обучающими функциями и контролируемыми постоянными переменными для количества скрытых слоев (1) и количества нейронов (10). Затем я тренировался каждые пять раз и брал среднее значение их результатов. Я решил обучать сети несколько раз, при этом каждое обучение инициализировалось с использованием разных весов и смещений перед уточнением, что означает, что каждый раз, когда вы тренируете сеть, вы можете получить потенциально лучший или худший результат. Взяв средний результат выполнения каждой тренировки, я смог определить лучшую тренировочную функцию для этой конкретной задачи. Для этого набора данных функция обучения градиентного спуска с моментумом была оптимальной.

Затем я пробовал разные комбинации номеров слоев и нейронов. Джефф Хитон, написавший «Введение в нейронные сети в Java», утверждает, что нейронная сеть может достичь хорошей производительности с одним скрытым слоем и средним средним значением нейронов во входном слое (12) и выходной слой (1). Я решил пробовать набор {1, 2} для слоев и набор {1, 3, 6, 10, 12} для нейронов - всего десять комбинаций. Так, например, пара (2, 6) будет иметь два скрытых слоя по шесть нейронов в каждом. Я снова тренировал каждую сеть по пять раз, чтобы найти оптимальную комбинацию слой / нейрон, и, к сожалению, для меня это оказался один скрытый слой с десятью нейронами - мои исходные контрольные переменные для определения наилучшей обучающей функции. Какой обходной маневр!

Итак, я создал лучшую архитектуру нейронной сети для этой проблемы: один скрытый слой; десять нейронов; и градиентный спуск с функцией тренировки Momentum. Эта архитектура достигла точности 79,9% на тестовом наборе и 78,4% на тестовом наборе, что дает ему общую среднюю точность 79,2%… намного лучше, чем награда Critics ’Choice Awards!

Сеть B

Поскольку три церемонии награждения, учтенные в этой сети, не проводились так долго, я мог использовать только данные с 1996 года, которые дали мне 20 общих точек данных - намного меньше, чем раньше. Отметим, что я использовал 18 материалов, которые были точно такими же, как указано выше, с шестью следующими дополнениями: номинация Гильдии киноактеров или победа в номинации «Выдающееся исполнение актеров в кино», номинация «Выбор критиков» или победа в номинации «Лучший фильм» и номинации «Гильдия продюсеров Америки» или победа в номинации «Выдающийся продюсер».

В интересах экономии времени и с учетом того, что данные обучения разделяют две трети входных данных с данными сети A, я решил протестировать только три мои лучшие архитектуры из обучения с предыдущим набором данных. Этим удалось добиться следующего:

  1. Один скрытый слой; десять нейронов, GDM - точность 65,2%
  2. Два скрытых слоя; двенадцать нейронов, GDM - точность 49%
  3. Три скрытых слоя; десять нейронов, GDM - точность 58,7%

Итак, опять же, наличие единственного скрытого слоя с десятью нейронами было оптимальной архитектурой, хотя с таким сокращенным набором данных в 20 точек я считаю, что результаты были гораздо более ошибочными, чем с большим набором данных. Например, дважды во время обучения я видел, что в наборе проверки были только точки данных с целевым выходом 0 - другими словами, в нем не было данных для победителей «Лучшего изображения». Поэтому я буду гораздо более скептически относиться к результатам, которые дает Сеть B.

Независимая проверка

Я сохранил данные за два года для себя, чтобы независимо проверить, работают ли эти сети с указанной выше точностью. Прогнозы на получение награды «Лучший фильм» в 2016 и 2017 годах приведены в таблице ниже:

КЛЮЧ: наиболее вероятный победитель выделен жирным шрифтом, второй по вероятности победитель выделен курсивом

Я думаю, что есть несколько интересных моментов, которые можно извлечь из этой независимой проверки. Во-первых, здесь кажется, что сети, несмотря на то, что вторая имеет половину точек данных и шесть дополнительных входов, не так сильно различаются в своих оценках. Интересно, что хотя сеть A более уверенно предсказывает неправильного победителя (La La Land), чем сеть B, она также более уверена в своем втором по вероятности (Moonlight) , который в конечном итоге стал победителем. Обе сети правильно определили победителя 2017 года, при этом сеть B опередила сеть A с точки зрения уверенности. Заключительный момент заключается в том, что, как и в 2016 году, Академия иногда игнорирует то, как дует статистический ветер, и награждает фильм, который ей больше всего нравится! В конце концов, было бы не так интересно наблюдать, если бы вы знали, кто станет победителем. Тем не менее, я все еще собираюсь попробовать предсказать победителя.

И в этом году победителем станет…

Рома!

По данным обеих нейронных сетей, Рома преодолел препятствия на своем пути (это только десятый фильм на иностранном языке, номинированный на «Лучший фильм» в истории премии «Оскар», без предыдущих побед. ) взять корону вероятности. Они также согласны со вторым наиболее вероятным победителем, Зеленой книгой. Далее в таблице есть другие расхождения, которые могут вызвать вопросы о влиянии недавно учрежденных наград, таких как награды Гильдии киноактеров. Но пока я, затаив дыхание, жду до 24 февраля, чтобы убедиться, что я был прав ...

Любой, кто хочет глубже понять, как я пришел к этим выводам, может заглянуть в мой репозиторий GitHub, содержащий все мои ресурсы и скрипты. Инструментом обучения сети, который я использовал для этого, был MATLAB Deep Learning Toolbox.

Благодарности

Большое спасибо разработчику сайта http://www.ya-shin.com за их исчерпывающие списки победителей Оскар, Золотой глобус и BAFTA от их происхождения до 2006 года. Без их превосходных таблиц (номинантов и победителей премии Оскар одна составляла 8832 записи) я бы пропал.