|
Последний раз редактировалось Mihaylo 06.06.2026, 00:21, всего редактировалось 6 раз(а).
Очередные мои мысли вслух.
Тема типизации (натурализации) данных в ML обширна, расширяет кругозор ML-исследователя, я думаю. Но сейчас я хочу обсудить методы получения интерпретируемых данных внутри нейросети (в скрытых слоях). То есть были данные на входе полностью неинтерпретируемые (эмбеддинги какие-нибудь), а получили интерпретируемые. Как такое возможно?
Вообще выходной слой - самый яркий пример такого преобразования, мы из скрытых слоёв получаем ответ нейросети. Так как выходной слой находится непосредственно в контакте с метками (лейблами) учителя, то это самый простой случай - выход нейросети должен стремиться к меткам. Выход должен быть равен меткам, скажу проще. ML-тип выхода нейросети соответственно должен быть равен типу данных меток. Слишком просто. А как быть где-нибудь внутри нейросети?
Есть ещё softmax - трюк, который позволяет нам на выходе получить вероятности элементов класса. Все этот трюк видели сотни раз (достаточно популярное решение в ML), но ничего не поняли. Дело в том, что у софтмакса на входе неинтерпретируемые данные, а на выходе - понятные, поэтому этот слой очень подходит для рассмотрения в рамках сегодняшней пятничной темы. Софтмакс реализует идею нормировки вероятности (сумма чисел от 0 до 1 должна в сумме давать ровно 1), поэтому якобы работает. Софтмакс применяется также исключительно на выходе нейросети, мы это должны отметить и припомнить!
Как же всё-таки получить интерпретируемые данные в глубинах нейросети и зачем? Заметьте, я совершенно не интересуюсь темой объяснимого ИИ (explained AI), я считаю, что нейросеть должна хорошо работать, а как она там внутри себя рассуждает - это дело десятое. Ответ на поставленный вопрос кроется в следующем: я уверен, что мы знаем некоторые хорошие алгоритмы, которые работают в любых условиях, даже в случае каких-нибудь алиенских эмбеддингов. Это просто интересно.
Что это за чудо-алгоритмы? Пока известен такой список: 1. Уравниватели, минимизаторы разницы (MSE, MAE, CrossEntropyLoss и прочее множество) 2. Softmax
Давайте отметим, что данные алгоритмы относятся также к неадаптивным, то есть не содержат в себе каких-нибудь весов. Естественно, потому что иначе работа функции с весами становится непонятной (неинтерпретируемой).
Без весов и ближе к выходу. Интересно, почему ближе к выходу?..
Я придумал SoftBinning (бывший SoftOrdering) - необучаемый слой, который реализует функцию гистограммы. На практике этот слой неплохо работает где-нибудь в середине нейросети и выдаёт частоту попадания в корзину (бин). Фишка в том, что слой работает с данными типа list, array, unordered set. Это дополнительный признак универсальности и способности работать с alien-данными. На выходе тензор фиксированного размера - всё как завещал Сталин Розенблатт Уоррен Маккаллок и Уолтер Питтс. Также в процессе исследования выплыл SOHE (Soft One-Hot Encoding), оказывается это кодирование тоже является универсальным алгоритмом, который можно пробовать сувать куда угодно.
Я учился немного в Skillfactory на курсе Machine Learning. Надо отметить, за те деньги, которые отдал, не бросают на произвол судьбы - полоскают по полной программе, задания сложные. В процессе обучения я для себя выявил основные аналитические функции. Вот, тебе дали данные - посчитай value_counts() в pandas, потом в SQL посчитай счётчики разные... Это же одно и то же! Данные были разные, а методы не меняются.
Короче, есть ряд аналитических методов - отброс выбросов, агрегация данных, что там ещё... - они универсальны. Их надо делать дифференцируемыми для интеграции в нейросеть. Тут сразу вопрос для исследователя - только необучаемые слои? Только на выходе? (Вроде ответ - необязательно на выходе, но хорошо, когда ближе к выходу. Почему?)
|