Выпускная работа¶
Курс кончается не экзаменом, а работой. Вы берёте статью, вышедшую после того, как вы начали учиться, воспроизводите её центральное утверждение своими руками и пишете честный отчёт: что сошлось, что нет и почему. Это единственное доказательство, что курс сработал, потому что проверить утверждение можно только одним способом — проверив его самому.
Экзамен спрашивает, помните ли вы определения. Выпускная работа спрашивает другое: способны ли вы взять чужую заявку и выяснить, правда она или нет. Ровно это делает исследователь в первый месяц на новом месте, и ровно этому был весь курс — от доверительного интервала в модуле 1 до чтения фронтира в модуле 27.
Зачем она¶
Двадцать семь модулей учили одному навыку в разных обличьях: отличать сигнал от шума и не строить на шуме. Пока этот навык живёт в голове как набор правил, он ничего не стоит. Он становится вашим только тогда, когда вы один раз проходите весь путь целиком на живой, не придуманной задаче: выбрали статью, поняли её заявку, восстановили недостающее, сравнили с честной базой и вынесли вердикт.
Есть и вторая причина, приземлённая. Работа, которую вы сделаете, — это портфолио, которое говорит за вас лучше любого резюме. Не «прошёл курс», а «взял вот эту статью, воспроизвёл вот это, вот репозиторий, вот числа». Человек, читающий такой отчёт, видит не список пройденных тем, а доказательство: вы умеете то, что заявляете.
Какую статью брать¶
От выбора статьи зависит половина успеха, поэтому потратьте на него день, а не час.
Берите свежую работу — вышедшую после начала вашего обучения. Причина не в моде: у свежей статьи ещё нет чужих воспроизведений, блог-постов с разбором и подчищенного кода, за которые можно спрятаться. Пробел воспроизводимости из модуля 26 там настоящий, и закрывать его придётся вам, а не гуглу.
Берите небольшую работу с одним проверяемым утверждением. У большой статьи заявок много, и попытка воспроизвести все сразу — это способ не закончить ничего. Вам нужна одна центральная заявка, которую можно проверить на CPU за разумное время: «метод X даёт такой-то прирост над базой Y на данных Z». Если центральную заявку нельзя сформулировать одним предложением — это плохой выбор для первой работы, а не глубина.
Проверьте заранее три вещи: данные доступны, а не спрятаны за формой доступа на полгода; вычисления влезают в ваше железо; у заявки есть база, с которой честно сравнивать. Статья без базы не поддаётся проверке в принципе — сравнивать не с чем.
Как её делать¶
Дальше — весь курс, собранный в одну последовательность. Она короткая на словах и длинная в работе.
Прочитайте статью — как в модуле 24. Не сверху вниз, а от проверяемого к объясняющему: аннотация даёт заявку, главная таблица показывает размер эффекта, и только потом идёт метод. Ваша цель на этом шаге — не пересказать статью, а найти то самое число, которое всё держит.
Сформулируйте центральную заявку одним предложением. Это самый недооценённый шаг. Пока заявка размыта — «метод хорош» — проверять нечего. Как только она стала точной — «на таком-то наборе метод даёт +N над такой-то базой, и это переживает смену зерна», — у вас появился предмет проверки и критерий, по которому вы поймёте, что закончили.
Составьте список умолчаний. Между методом из статьи и работающим кодом всегда лежит пробел: гиперпараметры «подобраны на валидации», данные «предобработаны стандартно», оценка «по протоколу». Выпишите всё, что придётся додумывать. Этот список — карта вашей работы, и он же — то, о чём вы спросите авторов, если деталь найти нельзя.
Реализуйте минимальное ядро. Не всю статью, а тот кусок, который производит центральное число. Всё остальное — украшения, которые можно добавить потом или не добавлять вовсе. Минимальное ядро быстрее написать, легче отладить и честнее сравнивать.
Сравните с честной базой — на своих зёрнах. Здесь живёт вся суть, потому что прирост прячется в сравнении, а не в методе (модуль 7). Базу настраивайте так же тщательно, как метод. Запускайте несколько раз с разными зёрнами и смотрите не на одно число, а на разброс: перекрываются интервалы метода и базы или расходятся (модуль 1). Одно удачное зерно — это не результат.
Вынесите вердикт. Он бывает трёх видов, и все три — законные.
Воспроизвелось — прирост держится в полосе шума вокруг заявленного числа. Совпадать до последней цифры не нужно: ваши 88.5 против заявленных 89.0 — это успех, если разница меньше шума (модуль 26). Частично — заявка держится на одном наборе данных и рушится на другом, или прирост есть, но втрое меньше обещанного. Не воспроизвелось — против честной базы прироста нет. Последний исход не провал вашей работы: проверенное «нет» — это знание, которого до вас не было, и оно ценнее непроверенного «да».
Отчёт¶
Отчёт — не текст про то, как вы старались, а открытый репозиторий, который можно запустить. В нём три вещи: код, который производит числа сверху вниз без правок; сами числа, которые читатель может пересчитать у себя; и честный вывод — что сошлось, что нет и почему.
Пишите вывод так же прямо, как выносили вердикт. Если заявка воспроизвелась — покажите свои числа рядом с заявленными и свой разброс по зёрнам. Если нет — покажите, где именно разошлось: на честной базе прирост исчез, или эффект держался на одном зерне, или данные оказались не те. Читателю вашего отчёта нужна не ваша уверенность, а ваша сцепка с проверяемыми числами — ровно как в проверке цитат из модуля 22.
Чек-лист¶
Пройдитесь по нему перед тем, как считать работу законченной.
- Статья свежая, небольшая, с одной проверяемой центральной заявкой.
- Данные доступны, вычисления влезают в ваше железо, у заявки есть база.
- Центральная заявка сформулирована одним точным предложением.
- Выписан список умолчаний — того, что пришлось додумывать.
- Реализовано минимальное ядро, а не вся статья.
- База настроена так же тщательно, как метод.
- Прогонов несколько, с разными зёрнами; показан разброс, а не одно число.
- Вердикт вынесен честно: воспроизвелось, частично или нет.
- Репозиторий открыт, код запускается сверху вниз, числа пересчитываются.
- Вывод показывает, что сошлось и что нет, со ссылкой на числа.
Если все пункты закрыты — вы сделали то, ради чего писался курс. Не пересказали чужую работу, а проверили её; отличили результат от шума на живой задаче, где никто не подсказывал ответ. Это и есть выпускная работа: весь курс, сделанный один раз своими руками.
Принцип
Диплом подтверждает, что вы прослушали курс; выпускная работа подтверждает, что вы им владеете. Разница между ними — ровно та же, что между «прошло рецензию» и «я запустил и получил то же».