HeadlinesBriefing favicon HeadlinesBriefing.com

Крошечная сеть сжимает данные, привлекает Пентагон

Towards Data Science •
×

Я не ожидал, что появится геометрия. Я воспроизводил небольшую часть статьи Anthropic 2022 года по интерпретируемости, "Игрушечные модели суперпозиции" [1], в основном потому, что центральное утверждение звучало достаточно неправдоподобно, чтобы я захотел проверить его сам, а не принимать на веру. Утверждение: нейронная сеть может представлять больше признаков, чем у нее есть измерений для работы, упаковывая их под углами друг к другу и допуская небольшие помехи. Попросите ее сжать пять вещей в два измерения при правильных условиях, и она не выберет двух победителей и не откажется от остальных. Она располагает все пять в идеальный пятиугольник. У меня не было PyTorch или какой-либо библиотеки autograd, и не было доступа в Интернет, чтобы установить ее, поэтому все ниже — это чистый NumPy, и я вывел обратный проход вручную. Это оказалось правильным видом раздражения. Вывод градиентов самостоятельно заставляет вас действительно понимать, что модель делает с данными, а не доверять вызову .backward(), о котором вам никогда не приходилось думать. Если у вас математическое образование и вы никогда не выводили обратное распространение вручную даже через крошечную сеть, я искренне рекомендую это как упражнение. Это десять минут цепного правила, которые заставляют все последующее щелкнуть. Все данные в этом посте синтетические. Я генерирую их сам в коде, никакого внешнего набора данных нет, что также делает оригинальная статья. Все изображения, если не указано иное, принадлежат автору. Проблема, которую это пытается объяснить: Вот мотивирующая загадка, и она реальна в исследованиях интерпретируемости. Если вы заглянете внутрь обученной нейронной сети, надеясь найти отдельные нейроны, которые четко представляют отдельные концепции, один нейрон для "это собака", один для "это красный", вы в основном этого не находите. Вместо этого вы находите нейроны, которые, кажется, реагируют на несколько несвязанных вещей одновременно, нейрон, который срабатывает и для кошачьих морд, и для передних частей автомобилей, скажем. Это называется полисемантичностью, и это делает интерпретируемость гораздо сложнее, потому что вы не можете просто прочитать, во что сеть "верит", исследуя отдельные единицы. Предложение статьи состоит в том, что полисемантичность — это не шум или сбой. Это реальная стратегия, которую сеть использует намеренно, потому что у нее больше концепций для представления, чем нейронов для их представления, и большинство этих концепций редко активны одновременно. Если два признака почти никогда не "включены" одновременно, сеть может позволить им разделять направление в пространстве активации, поскольку помехи стоят только в редких случаях, когда оба срабатывают вместе. Эта стратегия упаковки — то, что статья называет суперпозицией, и ее игрушечная модель предназначена для максимально простой настройки, где вы можете наблюдать, как это происходит, и реально измерить это. Модель и математика, которую мне пришлось решить, чтобы обучить ее: Настройка намеренно мала. У вас есть n синтетических признаков, каждый из которых является числом от 0 до 1, которое большую часть времени равно нулю (это разреженность) и не равно нулю в остальное время. Вы сжимаете их через узкое место из m скрытых измерений, где m меньше n, а затем пытаетесь восстановить исходные признаки на выходе через ReLU. Конкретно, с одной матрицей весов W формы (m, n), используемой как для сжатия, так и для восстановления: h=W⋅x, x̂=ReLU(W⊤⋅h+b). Обучение минимизирует взвешенную квадратичную ошибку между x и x̂, где каждый признак i получает вес важности Ii, поэтому сети сообщается, что некоторые признаки важнее для правильного определения, чем другие: L=∑i Ii⋅(xi−x̂i)²\m...