Всем привет, сегодня я хочу поговорить с вами о повседневной жизни инженера-алгоритма на рабочем месте——опрокидывание модели.
Мы все знаем, что основное внимание инженеров-алгоритмов уделяется обучению моделей, а повседневная работа многих людей состоит в том, чтобы создавать функции, настраивать параметры и затем обучать модели. Поэтому для инженеров-алгоритмистов наиболее распространенной проблемой является то, что модель переворачивается, а результаты модели, обученной после больших усилий, все еще плохие. Многие белые новички, которые только начинают, будут в растерянности, когда столкнутся с такой ситуацией, и не знают, в чем проблема.
Итак, сегодня я кратко поделюсь с вами небольшим простым опытом, который я подытожил, и что нам делать, когда мы сталкиваемся с этой ситуацией.
Проверьте образец
Процесс устранения неполадок всех результатов обучения модели не очень хорош, вы можете следоватьОт большого к маленькому, от мелкого к глубокомупорядок. То есть мы сначала проводим общее и макроисследование, а потом проверяем какие-то детали.
Многие Xiaobai могут быть немного ошеломлены и подойти, чтобы проверить детали функций, игнорируя общий осмотр. В результате требовалось много времени, чтобы выяснить, что пропорция выборок была неправильной или количество выборок было неправильным, что было легко найти. Это не только пустая трата времени, но и выглядит плохо для босса и других.
Итак, начнем со всего, сначала проверимСоотношение положительных и отрицательных образцов,чекколичество обучающих выборок. Есть ли какие-либо изменения по сравнению с обычными экспериментами, этот вид проверки часто относительно прост, и результат может быть доступен через несколько минут. Если проблема найдена, то лучше всего, и это не проигрыш, если проблема не найдена, хотя бы часть причины исключена.
После проверки пропорции и количества образцов мы можем проверитьраспределение функций, чтобы увидеть, есть ли проблемы с новыми функциями. Здесь может возникнуть множество проблем, например, если большая часть фич пуста, возможны две ситуации. Во-первых, есть проблема с кодом, который выполняет эту функцию, и могут быть ошибки. Другой заключается в том, что сама функция очень разрежена, и только небольшое количество выборок имеет значение. По моему опыту, если фичей слишком мало, то эффект на самом деле очень плохой, а может быть и обратный эффект, лучше их не добавлять.
Другая возможная проблема заключается в том, что распределение диапазона значений характеристик очень неравномерно, например, 80% характеристик меньше 10, а оставшиеся 20% могут быть до 100w. такЭлементы с чрезвычайно несбалансированным распределением также будут тянуть эффект модели промежности., лучший способ сегментировать его и создать функцию сегмента. Проблемы с характеристиками вообще легко исследовать, глядя на распределение.
Просмотр тренировочных кривых
Многие новички судят о модели по конечному результату, такому как AUC или точность, игнорируя при этом изменения в модели на протяжении всего процесса обучения. На самом деле это не очень хорошая привычка, вы потеряете много информации и проигнорируете множество ситуаций.
Рекомендуется привыкнуть к использованию tensorboard для наблюдения за процессом обучения модели, в tensorboard в основном есть все основные фреймворки глубокого обучения. Через него мы можем видеть некоторыеИзменения ключевых показателей во время обучения, его основная функция — помочь нам найти переоснащение или недообучение.
Ситуация, с которой мы часто сталкиваемся, заключается в том, что в исходном наборе функций у модели нет проблем, но как только мы добавляем некоторые новые функции, эффект начинает тянуть промежность. Мы проверили журнал и обнаружили, что AUC или другие показатели все еще росли в течение периода, предшествующего окончанию обучения модели, и мы ошибочно полагали, что проблемы нет. На самом деле, очень вероятно, что модель попала в переобучение в середине, но это было проигнорировано из-за длительного времени обучения.
Многие люди часто страдают от этой потери, особенно новички. Было потрачено много времени, но проблема не была найдена.На самом деле, когда вы открываете тензорную доску, вы можете видеть, что модель переоснащена или недообучена, поэтому мы можем принять некоторые целенаправленные меры для ее исправления.
проверка параметров
Помимо двух вышеперечисленных, еще одной контрольной точкой является параметр.
Параметры здесь не ограничиваются параметрами обучения модели, такими как скорость обучения, количество итераций, размер партии и т. д. также содержит некоторыепараметры самой модели, такие как дисперсия инициализации внедрения, размер внедрения и так далее.
В качестве простого примера, многие люди реализуют инициализацию встраивания, используя инициализацию по умолчанию, а дисперсия метода по умолчанию равна 1. Эта дисперсия на самом деле слишком велика для многих сценариев, особенно для некоторых нейронных сетей с относительно большой глубиной, которые склонны к градиентному взрыву.Много раз после того, как мы настроим его на 0,001, эффект часто улучшается.
Хотя и сказано, что структура модели является основным телом, а параметры лишь вспомогательными, это не означает, что параметры не будут влиять на эффект модели. Наоборот, иногда влияние не маленькое и мы не можем его игнорировать. Конечно, для этого нужно не только знать соответствующее значение каждого параметра, но и понимать структуру модели и принцип работы модели, чтобы можно было строить догадки о влиянии и значении параметры. В противном случае просто скопировать его явно недостаточно.
Сценарное мышление
Три пункта, упомянутых выше, относительно очевидны, далее я расскажу вам о скрытых, которые также являются самой большой проверкой навыков инженера-алгоритма.
Во многих случаях модель, которая хорошо работает в одной сцене, не будет работать в другой сцене, или некоторые очень полезные функции внезапно перестанут работать. Это может быть не из-за скрытых багов, а из-за того, что модель просто не подходит для текущей сцены.
В качестве примера возьмем рекомендательный сценарий, например, в рекомендации на главной странице, поскольку у нас нет дополнительной входной информации, мы можем только давать рекомендации на основе исторических поведенческих предпочтений пользователя. В настоящее время мы уделим особое внимание перекрывающимся и перекрывающимся частям исторического поведения пользователя и текущей информации о продукте и сосредоточимся на превращении этой информации в функции. Но если та же функция перенесена в функцию «Угадай, что вам нравится» в нижней части страницы сведений о продукте, она может оказаться не очень подходящей.
Причина также очень проста: продукты в нижней части страницы сведений — это в основном те, которые вы хотите вспомнить.Та же категория или даже тот же товар, что означает, что большая часть информации о самих продуктах одинакова или очень похожа. Поскольку эта информация очень похожа, модели трудно извлечь ключевую информацию из этих функций с небольшими различиями, поэтому, естественно, трудно получить тот же эффект. Дело не в том, что с функцией или моделью что-то не так, может быть просто сцена не подходит.
Понимание и мышление между сценами, функциями и моделями — это та часть, которая проверяет способности и опыт инженера-алгоритма.Новички часто не обращают внимания на этот аспект и больше ограничиваются самими функциями и моделями. Иногда наше мышление не может беспрепятственно двигаться по линии, и нам нужно часто останавливаться и размышлять.Я думаю да, не упустил ли я какие-то проблемы.
Вот и все, что касается сегодняшней статьи, и я искренне желаю вам удачи каждый день. Если вам все еще нравится сегодняшний контент, пожалуйста, зайдите на одинТройная поддержкабар~(Нравится, подписывайтесь, делайте репост)