Курс валют приведенных к евро. Доллар США в одном кластере с саудовским реалом. Китайский юань, индийская рупия и австралийский доллар в другой группе. Турецкая лира, аргентинский песо и российский рубль в третьей. А вот британский фунт, как и бразильский реал или швейцарский франк ни попали ни в одну их трех групп.
❤1
Привет! Два месяца назад в MIT представили новую архитектуру нейронных сетей — Kolmogorov-Arnold Networks (KAN), которая является альтернативой классическому multilayer perceptron (MLP). Основой KAN является теорема Колмогорова-Арнольда, утверждающая, что любую многомерную функцию можно представить как вложенную комбинацию одномерных функций. Главное отличие от MLP состоит в том, что функции активации в KAN размещены на ребрах сети, а не в ее вершинах. В вершинах остается только суммирование входящих функций. Функции на ребрах задаются взвешенной суммой одномерных сплайнов (кусочных полиномов), именно коэффициенты перед сплайнами выучивает модель.
Плюсы KAN:
- Авторы обещают, что для обучения на одних и тех же данных KAN требует значительно меньше нейронов по сравнению с MLP.
- Не нужно переобучать с нуля для повышения точности при наличии новых данных. Достаточно добавить больше точек в сетку сплайнов и дообучить модель с новыми данными.
- Заявляется, что модели KAN лучше интерпретируемы. Но мне кажется это работает только для простых датасетов. Если бизнес спросит, почему модель в проде дала такой результат, а вы в ответ покажете большую формулу из вложенных кусочных полиномов, вас вряд ли поймут.
Минусы:
- KAN на порядок дольше обучается.
- По моим наблюдениям, модель довольно неустойчива. С фиксированными гиперпараметрами один seed может дать приемлемое качество, а другой взорвать кривую обучения (напоминает RNN).
- Главное пока нет примеров sota решений KAN для каких-либо серьезных задач.
- Авторы обещают, что для обучения на одних и тех же данных KAN требует значительно меньше нейронов по сравнению с MLP.
- Не нужно переобучать с нуля для повышения точности при наличии новых данных. Достаточно добавить больше точек в сетку сплайнов и дообучить модель с новыми данными.
- Заявляется, что модели KAN лучше интерпретируемы. Но мне кажется это работает только для простых датасетов. Если бизнес спросит, почему модель в проде дала такой результат, а вы в ответ покажете большую формулу из вложенных кусочных полиномов, вас вряд ли поймут.
Минусы:
- KAN на порядок дольше обучается.
- По моим наблюдениям, модель довольно неустойчива. С фиксированными гиперпараметрами один seed может дать приемлемое качество, а другой взорвать кривую обучения (напоминает RNN).
- Главное пока нет примеров sota решений KAN для каких-либо серьезных задач.
Я тоже обучил модель на игрушечном примере. По номеру строки и столбца картинки, c единственным скрытым слоем из 5 нейронов, предсказывается выход по трем цветовым каналам для аппроксимации картинки. Тут показана обученная модель с графиками функций на ребрах и ее предикт.
❤3
Всякий раз когда решается задачка с сильным перекосом классов в таргете, возникают разговоры — использовать ROCAUC или PRAUC. История тянется с 2006 года. Тогда на конференции в Питтсбурге представили работу, где указали, что ROC кривые дают слишком оптимистичную оценку при сильном дисбалансе классов. Ее также цитирует scikit-learn. Но недавно сотрудники института иммунологии из Калифорнии подлили масла в огонь и выпустили статью, в которой говорят что доклад от 2006 года какой-то не правильный, и вообще зря на ROCAUC наехали.
Оставим разборки в стороне. Вот что следует помнить. Обе метрики рассчитываются из матрицы ошибок, перебирая пороги отсечки. ROC кривая строится как TPR (доля истинно-положительных предсказаний == recall) vs FPR (доля ложно-положительных предсказаний), а PR кривая как precision vs recall. Т.к. recall - доля верно предсказанных элементов положительного класса, среди всех элементов этого класса, она не зависит от его размера. FPR то же самое, что 1 минус recall отрицательного класса. Это делает ROCAUC независимым от размера обоих классов, т.е. от дисбаланса и одновременно является проблемой когда не хотим считать классы равноценными при выборе лучшей модели. Расчет precision учитывает истинные ответы положительного класса и ложные отрицательного, и напрямую зависит от размеров обоих классов. Чем меньше положительных примеров в исходной выборке, тем меньше PRAUC. Вывод: улучшение ROCAUC != улучшению PRAUC. Если хотите, несмотря на дисбаланс, учитывать оба класса в равной степени, то выбирайте ROCAUC, а если важна чувствительность к размеру классов, лучше PRAUC.
🔥2👍1
Желание разложить что-угодно по группам на основе схожести - естественная черта человека, но задача кластеризации данных, почти всегда как плохое ТЗ для дизайнера - делай красиво, а не красиво не делай. Какой алгоритм кластеризации хороший, а какой плохой если сравнивать результат их работы не с чем? Джон Клейнберг из Корнеллского университета в 2002 году сформулировал три критерия хорошего алгоритма кластеризации:
- Масштабная инвариантность. Если все расстояния между точками умножить на положительное число, это не должно менять результат работы хорошего алгоритма.
- Насыщенность/разнообразие. Хороший алгоритм способен создать любую произвольную комбинацию разбиения входных данных.
- Согласованность. Если уменьшаем внутрикластерные расстояния и/или увеличиваем межкластерные, алгоритм должен возвращать то же разбиение на кластеры.
- Масштабная инвариантность. Если все расстояния между точками умножить на положительное число, это не должно менять результат работы хорошего алгоритма.
- Насыщенность/разнообразие. Хороший алгоритм способен создать любую произвольную комбинацию разбиения входных данных.
- Согласованность. Если уменьшаем внутрикластерные расстояния и/или увеличиваем межкластерные, алгоритм должен возвращать то же разбиение на кластеры.
🔥3
В своей работе "Теорема о невозможности кластеризации" Клейнберг доказывает что никакой алгоритм кластеризации не может удовлетворять одновременно трем названным условиям. Масштабная инвариантность нарушается когда для определения принадлежности точки к кластеру используются относительные расстояния с заданным порогом. Насыщенность нарушается, если заранее фиксируется количество кластеров. Согласованность нарушается когда для объединения точек в кластеры используются абсолютные расстояния не превышающие некоторый порог. С другой стороны указанные критерии это субъективное представление о красивом/полезном разбиении множества на группы, с которым необязательно соглашаться. Максимально понятно, без математики, теорема описана тут.
🔥3
Еще один пост о невозможности, на этот раз невозможности справедливости в ML. Справедливость - этическая, не статистическая концепция, но если используем ML для оценки рисков (вероятность рецидива преступника, оценка кандидата при приеме на работу, кредитоспособность и т.д.), важно убедиться, что модель не предвзята к какой-либо группе людей. Александра Чулдехова из Карнеги давно исследует справедливость в машинном обучении (ее цитирует Джон Клейнберг, о котором писал выше). В своей работе Александра указывает на требования к справедливой модели, в отношении групп A и B (пол/раса/география проживания и тд):
1. Паритет точности. Метрика Precision должна совпадать для обеих групп при равном пороге отсечки.
P(Y = 1 | score > threshold, A) = P(Y = 1 | score > threshold, B )
2. Баланс FPR - ложноположительных ошибок (FPR == 1 минус recall отрицательного класса).
P(score > threshold | Y = 0, A) = P(score > threshold | Y = 0, B )
3. Баланс FNR - ложноотрицательных ошибок (FNR == 1 минус recall положительного класса).
P(score <= threshold | Y = 1, A) = P(score <= threshold | Y = 1, B )
1. Паритет точности. Метрика Precision должна совпадать для обеих групп при равном пороге отсечки.
P(Y = 1 | score > threshold, A) = P(Y = 1 | score > threshold, B )
2. Баланс FPR - ложноположительных ошибок (FPR == 1 минус recall отрицательного класса).
P(score > threshold | Y = 0, A) = P(score > threshold | Y = 0, B )
3. Баланс FNR - ложноотрицательных ошибок (FNR == 1 минус recall положительного класса).
P(score <= threshold | Y = 1, A) = P(score <= threshold | Y = 1, B )
Паритет точности это слабое условие на калибровку модели по группам. В случае предсказания совершения повторного преступления, разница ложноположительных ошибок между A и B (FPR_A - FPR_B) определяет разницу в наказании для тех, кто не совершил рецидив, а (FNR_A - FNR_B)!=0 указывает на разницу в наказании для рецидивистов. Далее показывается, что если наблюдаемая p - вероятность повторного преступления в группах A и B различна (например в группе А рецидивы случаются в 50% случаев, а в группе B, только в 30%), то никакой классификатор не может удовлетворить одновременно трем названным условиям справедливости. Доказательство сводится к формуле связывающей Precision, FPR и FNR:
FRP = p/(1-p) * (1-Precision) / Precision * (1 - FNR)
Для системы из двух таких уравнений и p_A != p_B есть три варианта решения:
1. FRP_A != FRP_B, FNR_A = FNR_B, Precision_A = Precision_B,
2. FRP_A = FRP_B, FNR_A != FNR_B, Precision_A = Precision_B,
3. FRP_A = FRP_B, FNR_A = FNR_B, Precision_A != Precision_B.
В случае равноценного выбора, Александра предлагает жертвовать точностью ради сохранения баланса FRP и FNR (3 вариант).
FRP = p/(1-p) * (1-Precision) / Precision * (1 - FNR)
Для системы из двух таких уравнений и p_A != p_B есть три варианта решения:
1. FRP_A != FRP_B, FNR_A = FNR_B, Precision_A = Precision_B,
2. FRP_A = FRP_B, FNR_A != FNR_B, Precision_A = Precision_B,
3. FRP_A = FRP_B, FNR_A = FNR_B, Precision_A != Precision_B.
В случае равноценного выбора, Александра предлагает жертвовать точностью ради сохранения баланса FRP и FNR (3 вариант).
В 1906 Нобелевскую премию по физике получил Дж. Томсон за эксперименты, доказавшие, что электроны являются частицами. В 1937 Нобелевскую премию получил его сын за доказательство того, что электроны являются волнами. Возможность быть то волной, то частицей объясняется принципом неопределённости Гейзенберга: ΔxΔp≥ħ/2. Это фундаментальный кирпичик квантовой физики, но математический смысл неравенства просто в том, что любые две величины, связанные преобразованием Фурье не могут быть одновременно измерены с бесконечной точностью. Некоторые исследователи полагают что аналог принципа неопределённости существует и в ML. Тут считают что это, проявляется в балансе обобщения и интерпретируемости: чем лучше модель обобщает зависимости в данных, тем менее она интерпретируема. Но в статье 2022 года интересно показывается соответствие между терминами ML и квантовой физики на примере атаки на сети. Так нормированный по X лосс обученной модели становится волновой функцией (в квантовой физике волновая функция описывает все что происходит с системой), сам X - становится координатой, а градиент лосса по X - импульсом (по аналогии с квантовым оператором импульса). В атаке на сети мы просто обновляем X вдоль градиента лосса по X, но оказывается что между дисперсиями этих величин (X и dLoss(f(X),Y)/dX) возникает ограничение идентичное принципу неопределённости. Допускаю что если вместо X взять веса модели и градиент по ним, то принцип неопределённости также выполнится. Интересно, найдет ли кто-нибудь аналог кота Шредингера, запутанных частиц или квантового туннелирования в ML.
🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Свернул салфетку Серпинского. Базовую версию этого фрактала легко отрисовать с помощью клеточного автомата Правило 90 (он же просто XOR), а далее обычное преобразование в полярные координаты.
Градиентный спуск стоит в центре всего машинного обучения, но кроме взятия производной порядка 1,2,3,... можно взять производную любой не целой степени. Есть множество способов как это сделать, и каждый для целых порядков дает одинаковый результат, но для дробных может отличаться (я считал через преобразование Фурье). Как при этом меняется градиентный спуск?
Градиентный спуск нулевого порядка - это классический метод простой итерации, который ищет корень функции (производная нулевой степени оставляет саму функцию как есть). Градиентный спуск первого порядка ищет локальный минимум, а градиентный спуск дробного порядка должен сходиться где-то между ними (так и есть, но чаще он жутко не устойчив). Ниже показаны три итерационных процесса из одной точки, заданных производными степени 0, 1 и 1/2.
Регуляризация — верный способ борьбы с переобучением модели, и чаще всего используем L1, L2 или их комбинацию. Почему именно их, а не L0, L1.5 или L4? Если коротко, то L1 и L2 это превосходный баланс между простотой и результатом. L2-регуляризация добавляет к функции ошибки (лоссу) штраф, который зависит от суммы квадратов параметров модели. Это делает функцию выпуклой с линейными градиентами и простой в оптимизации. В случае с L4 градиенты для больших параметров очень велики, а около нуля почти затухают, что сильно замедляет градиентный спуск. L1-регуляризация штрафует за сумму модулей коэффициентов модели, которые обновляются довольно быстро с помощью покоординатного спуска, по пути зануляя "неважные" параметры. Вырожденные формы регуляризация вроде L0 или L∞ на практике мало полезны, так как L0 штрафует просто за количество ненулевых параметров, а L∞ — только за самый большой параметр модели. Что касается L1.5, то выигрыш от него примерно такой же, как просто от часто применяемой линейной комбинации L1 и L2.
А может быть степень регуляризации комплексной - L(p+j*q)? Да, но в общем случае это ведет к комплексным коэффициентам модели X*a = y. Что бы этого избежать и оставить коэффициенты и лосс только вещественными, можно их проквантовать: т.к. |a[i]|^(p+jq) = |a[i]|^p * (cos(q*log(|a[i]|)) + j*sin(q*log(|a[i]|)), то при q*log(|a[i]|) = 2*pi*n (n - целое число), получаем: |a[i]|^(p+j*q) = |a[i]|^p. С одной стороны можно также использовать градиентный спуск для указания направления уменьшения ошибки, с другой все коэффициенты модели квантуются и a∊{±exp(2*pi*n/q)}.
Я использовал датасет для предсказания популярности (измеряется от 0 до 100) англоязычных песен на spotify за последние 5 лет по их музыкальным характеристикам. Перебирая различные p и q для L(p+j*q) на графике показана ошибка линейной регрессии. Тут видно, что при должном усердии для любых p можно получить схожие результаты, но качество резко меняется при росте мнимой части - q, за счет того, что ±exp(2*pi*n/q) лежат чаще друг к другу при росте q.