Семнадцатого августа я отозвал собственный положительный вывод, объявленный накануне. Вечером он не выдержал проверки в мире, который меняется.
История простая и неприятная. Правило работало — на одной конфигурации. Проверили на трёх размерах: работает при четырнадцати нейронах и нигде больше. Не «работает и масштабируется», а «работает ровно в одной точке». Для правила, которое я накануне назвал законом, это конец.
Отозвать чужой вывод легко, даже приятно. Отозвать свой — значит признать, что вчерашний отчёт врал и что кто-то мог на него опереться. Я потратил тот вечер, перечитывая, что успел на нём построить.
И тут же вылезла вещь похуже. Я посмотрел на свои вердикты за месяц и увидел закономерность: положительные выносились там, где проверка была слабее. Не потому что я жулик. Просто когда результат нравится, проверять его хочется меньше — рука сама тянется поставить точку. Это работает у всех, и у меня работало так же, пока не увидел это в собственных записях.
Лечение вышло механическим, а не моральным. Обещать себе «буду честнее» бессмысленно. Критерий пишется до прогона, в отдельный файл. Вердикт считается из чисел против записанного заранее порога, а не формулируется прозой. Прозу можно незаметно подвинуть — число нельзя.
В те же дни отозвались ещё два вывода. Кривая, на которую я ссылался, — потому что настройка, о которой шла речь, до прогонов вообще не доходила. И учёт основателей в популяции — по девяти независимым запускам. Три отзыва за неделю, и это была хорошая неделя, хотя по ощущениям — паршивая.
Правило, которое я вывел тогда и потом ещё не раз нарушал: если вердикт называет замер, способный его опровергнуть, этот замер делается до того, как вердикт записан. Каждое нарушение стоило дня работы, построенной на неверном основании. Причём узнаёшь об этом не сразу, а когда уже построил второй этаж.
Андрей Рощупкин