DropPath
Зачем это нужно? Глубокие модели с огромным числом параметров легко запоминают обучающую выборку наизусть, теряя способность обобщать. DropPath не даёт сети слишком полагаться на конкретные слои и заставляет её дублировать знания по разным ветвям архитектуры. Это особенно важно для трансформеров и других гигантских моделей, где переобучение — главный враг.
Интуитивно это похоже на тренировку команды, где каждого игрока случайно сажают на скамейку запасных. Раз все знают, что любой может выйти из игры, они учатся подстраховывать друг друга. Сеть тоже учится решать задачу, даже если часть её архитектуры «заболела» и не вышла на работу. На каждом шаге обучения выбрасывается случайное подмножество блоков, поэтому модель вынуждена находить обходные пути и становиться устойчивее к повреждениям.
Прикладной пример: при обучении системы распознавания рака на медицинских снимках исследователи применяют DropPath в свёрточной сети. Сеть не может опереться только на один «магический» слой, который замечает опухоль. Вместо этого она учится извлекать признаки параллельно во многих местах, что снижает ложные диагнозы на новых пациентах.
Вывод: DropPath — это дешёвый и эффективный способ сделать нейросеть надёжнее, буквально отключая её части. Он не усложняет модель, но резко повышает её способность работать с реальными данными.
Поделиться