Forwarded from Data Secrets
В сеть утек исходный код Claude Code
При публикации пакетов кто-то в Anthropic совершил ✨некий просчет✨, и билд обфусцированного cli.js оказался в публичном npm‑пакете вместе с полноценным cli.js.map, которого там никак не должно было быть. То есть любой, кто установил пакет или скачал его, мог легко восстановить исходники через sourcemap.
Естественно, код почти моментально разошелся по репам. Популярные инфобез-комьюнити подтвердили, что это не фейк и не обычная обертка над API, а именно продвинутая CLI‑платформа.
https://github.com/instructkr/claude-code
Оказалось, что под капотом 1906 файлов TypeScript и примерно 500к строк.
Из интересного:
– Есть намеки на нереализованные фичи типа глубокого планирования, постоянной памяти и "сна".
– Можно посмотреть, как у Anthropic реализована мультиагентность (файл coordinator/coordinatorMode.ts)
– Также доступны все системные промпты (constants/prompts.ts)
С днем опенсорса, так сказать.
UPD: автор начал менять репозиторий, так что вот тут ловите дополнительную ссылку на архив с исходниками
При публикации пакетов кто-то в Anthropic совершил ✨некий просчет✨, и билд обфусцированного cli.js оказался в публичном npm‑пакете вместе с полноценным cli.js.map, которого там никак не должно было быть. То есть любой, кто установил пакет или скачал его, мог легко восстановить исходники через sourcemap.
Естественно, код почти моментально разошелся по репам. Популярные инфобез-комьюнити подтвердили, что это не фейк и не обычная обертка над API, а именно продвинутая CLI‑платформа.
https://github.com/instructkr/claude-code
Оказалось, что под капотом 1906 файлов TypeScript и примерно 500к строк.
Из интересного:
– Есть намеки на нереализованные фичи типа глубокого планирования, постоянной памяти и "сна".
– Можно посмотреть, как у Anthropic реализована мультиагентность (файл coordinator/coordinatorMode.ts)
– Также доступны все системные промпты (constants/prompts.ts)
С днем опенсорса, так сказать.
UPD: автор начал менять репозиторий, так что вот тут ловите дополнительную ссылку на архив с исходниками
❤2
#astronomy #moon #artemis
"1 апреля 2026 года с исторической площадки 39B Космического центра им. Кеннеди во Флориде стартовала сверхтяжёлая ракета Space Launch System (SLS) с пилотируемым кораблём Orion. Это первая за более чем полвека после миссии Apollo 17 отправка астронавтов к Луне.
В ходе полёта корабль пройдёт по свободной возвратной траектории: через десять суток астронавты вернутся на Землю, не совершая посадки на спутник и не задерживаясь на его орбите.
Успешный старт миссии Artemis II открывает новую эру постоянного присутствия человека на Луне и последующие полёты на Марс. После более чем полувекового перерыва NASA и международные партнёры агентства возвращают людей к нашему естественному спутнику, закладывая основу для будущих баз и научных исследований."
https://3dnews.ru/1139152/nasa-otpravilo-lyudey-k-lune-startovala-missiya-artemis-ii
"1 апреля 2026 года с исторической площадки 39B Космического центра им. Кеннеди во Флориде стартовала сверхтяжёлая ракета Space Launch System (SLS) с пилотируемым кораблём Orion. Это первая за более чем полвека после миссии Apollo 17 отправка астронавтов к Луне.
В ходе полёта корабль пройдёт по свободной возвратной траектории: через десять суток астронавты вернутся на Землю, не совершая посадки на спутник и не задерживаясь на его орбите.
Успешный старт миссии Artemis II открывает новую эру постоянного присутствия человека на Луне и последующие полёты на Марс. После более чем полувекового перерыва NASA и международные партнёры агентства возвращают людей к нашему естественному спутнику, закладывая основу для будущих баз и научных исследований."
https://3dnews.ru/1139152/nasa-otpravilo-lyudey-k-lune-startovala-missiya-artemis-ii
#hardware #ram
"Исследование показало, что устройство не разрушается даже при максимальной температуре нагрева, на которую было рассчитано оборудование для испытаний. Учёные уверены, что элемент можно было бы продолжить нагревать, и он не потерял бы своих рабочих свойств. Также интересно отметить, что открытие было сделано случайно, как часто бывает в науке: искали одно, а наткнулись на другое.
Конструкция предложенного коллективом исследователей мемристора представляет собой «сэндвич» из вольфрама (верхний электрод), оксида гафния (керамическая прослойка) и графена (нижний слой). Графен — одноатомный слой углерода — оказался ключевым элементом: его поверхностная химия предотвращает закрепление атомов вольфрама, что исключает короткое замыкание через керамический слой и деградацию устройства. Учёные описали это как контакт воды с маслом — своего рода гидрофобный эффект.
Эксперименты показали, что представленный мемристор способен хранить данные без обновления более 50 часов, выдерживать свыше миллиарда циклов переключения, работать при напряжении всего 1,5 В и обеспечивать скорость операций на уровне десятков наносекунд. Случайное открытие, подтверждённое при детальном анализе с помощью электронной микроскопии, спектроскопии и квантовых симуляций, также указало на перспективы использования элемента в составе высокотемпературных электронных устройств.
Тем самым новое устройство открывает перспективы для применения в условиях, где обычная электроника неприменима: на поверхности Венеры, при глубоком бурении для геотермальной энергетики, в ядерных и термоядерных установках, а также в автомобильной промышленности. Кроме хранения данных, мемристор способен выполнять матричное умножение — основную операцию в системах искусственного интеллекта. Это происходит напрямую, в силу базовых законов физики, в частности с использованием прямых измерений тока и закона Ома, что радикально снижает энергопотребление и ускоряет вычисления по сравнению с традиционными процессорами.
Учёные признают, что хотя до создания высокотемпературного «компьютера» ещё далеко (требуется соответствующая логика и другие компоненты), создание высокотемпературной памяти уже закрывает одно из ключевых направлений. Кроме того, исследователи основали стартап TetraMem для коммерческого продвижения созданных ими мемристоров в ИИ-чипы для работы при комнатной температуре, используя это решение для широко востребованных матричных вычислений."
https://3dnews.ru/1139328/amerikantsi-sozdali-pamyat-sposobnuyu-rabotat-pri700-c-dlya-veneri-reaktorov-i-ii
"Исследование показало, что устройство не разрушается даже при максимальной температуре нагрева, на которую было рассчитано оборудование для испытаний. Учёные уверены, что элемент можно было бы продолжить нагревать, и он не потерял бы своих рабочих свойств. Также интересно отметить, что открытие было сделано случайно, как часто бывает в науке: искали одно, а наткнулись на другое.
Конструкция предложенного коллективом исследователей мемристора представляет собой «сэндвич» из вольфрама (верхний электрод), оксида гафния (керамическая прослойка) и графена (нижний слой). Графен — одноатомный слой углерода — оказался ключевым элементом: его поверхностная химия предотвращает закрепление атомов вольфрама, что исключает короткое замыкание через керамический слой и деградацию устройства. Учёные описали это как контакт воды с маслом — своего рода гидрофобный эффект.
Эксперименты показали, что представленный мемристор способен хранить данные без обновления более 50 часов, выдерживать свыше миллиарда циклов переключения, работать при напряжении всего 1,5 В и обеспечивать скорость операций на уровне десятков наносекунд. Случайное открытие, подтверждённое при детальном анализе с помощью электронной микроскопии, спектроскопии и квантовых симуляций, также указало на перспективы использования элемента в составе высокотемпературных электронных устройств.
Тем самым новое устройство открывает перспективы для применения в условиях, где обычная электроника неприменима: на поверхности Венеры, при глубоком бурении для геотермальной энергетики, в ядерных и термоядерных установках, а также в автомобильной промышленности. Кроме хранения данных, мемристор способен выполнять матричное умножение — основную операцию в системах искусственного интеллекта. Это происходит напрямую, в силу базовых законов физики, в частности с использованием прямых измерений тока и закона Ома, что радикально снижает энергопотребление и ускоряет вычисления по сравнению с традиционными процессорами.
Учёные признают, что хотя до создания высокотемпературного «компьютера» ещё далеко (требуется соответствующая логика и другие компоненты), создание высокотемпературной памяти уже закрывает одно из ключевых направлений. Кроме того, исследователи основали стартап TetraMem для коммерческого продвижения созданных ими мемристоров в ИИ-чипы для работы при комнатной температуре, используя это решение для широко востребованных матричных вычислений."
https://3dnews.ru/1139328/amerikantsi-sozdali-pamyat-sposobnuyu-rabotat-pri700-c-dlya-veneri-reaktorov-i-ii
3DNews - Daily Digital Digest
Американцы создали память, способную работать при 700 °C — для Венеры, реакторов и ИИ
Ученые из Университета Южной Калифорнии (USC) разработали новый тип электронного устройства памяти — мемристор, способный надёжно работать при экстремально высоких температурах. Традиционная электроника выходит из строя уже при 200 °C, однако созданный учёными…
🔥1
#timeseries
Как выбрать валидационное множество для ts данных.
Уже встречал такую идею, что вал надо располагать слева, в прошлом от трейна.
Статья показывает, что такой вал сет более точно аппроксимирует ошибку out of sample:
"on these 58 datasets, Forward testing has an average deviation of 51% from the actual deployment performance, whereas Backward testing has only 38%."
https://medium.com/@mazzanti.sam/first-test-then-train-yes-really-b26c1007ac29
Как выбрать валидационное множество для ts данных.
Уже встречал такую идею, что вал надо располагать слева, в прошлом от трейна.
Статья показывает, что такой вал сет более точно аппроксимирует ошибку out of sample:
"on these 58 datasets, Forward testing has an average deviation of 51% from the actual deployment performance, whereas Backward testing has only 38%."
https://medium.com/@mazzanti.sam/first-test-then-train-yes-really-b26c1007ac29
Medium
First Test, Then Train (Yes, Really)
Everyone tests their model on the most recent past. I tried the opposite, and it worked better.
#calude #ai #security
"ИИ-модель самостоятельно проделала путь от описания уязвимости до работающего эксплойта. Для FreeBSD это особенно чувствительный эпизод. Система давно считается одной из самых надёжных в своём классе, обеспечивает доставку контента Netflix, лежит в основе операционной системы PlayStation и инфраструктуры WhatsApp.
Уязвимость находилась в реализации RPCSEC_GSS в модуле kgssapi.ko, который FreeBSD использует для Kerberos-аутентификации и шифрования трафика NFS. Злоумышленник мог без предварительной аутентификации спровоцировать переполнение буфера на стеке при проверке подписи RPCSEC_GSS-пакета. Дальше начиналась уже полноценная реализация эксплойта: Claude развернул среду с уязвимым ядром, NFS и Kerberos, придумал многопакетную доставку шелл-кода, научился корректно завершать перехваченные потоки ядра, чтобы сохранить работоспособность сервера между атаками, уточнил смещения в стеке с помощью последовательностей де Брёйна, создал новый процесс через kproc_create(), перевел его в пользовательский режим через kern_execve() и снятие флага P_KPROC, а затем сбросил регистр DR7, из-за которого дочерние процессы аварийно завершались.
Именно переход от обнаружения уязвимости к разработке надёжного эксплойта долго отделял автоматизированные инструменты от человеческой экспертизы. Автоматический фаззинг уже много лет помогает находить дефекты в ядре, однако эксплуатация уязвимости требует иной работы: анализа раскладки памяти, построения устойчивой цепочки исполнения, повторной отладки после неудачных запусков и корректного вывода выполнения из пространства ядра в пользовательский режим. В истории с FreeBSD Claude выполнил именно эту часть работы."
https://3dnews.ru/1139413/ii-model-claude-obnaruzhila-uyazvimost-i-razrabotala-rabochiy-eksployt-dlya-freebsd
"ИИ-модель самостоятельно проделала путь от описания уязвимости до работающего эксплойта. Для FreeBSD это особенно чувствительный эпизод. Система давно считается одной из самых надёжных в своём классе, обеспечивает доставку контента Netflix, лежит в основе операционной системы PlayStation и инфраструктуры WhatsApp.
Уязвимость находилась в реализации RPCSEC_GSS в модуле kgssapi.ko, который FreeBSD использует для Kerberos-аутентификации и шифрования трафика NFS. Злоумышленник мог без предварительной аутентификации спровоцировать переполнение буфера на стеке при проверке подписи RPCSEC_GSS-пакета. Дальше начиналась уже полноценная реализация эксплойта: Claude развернул среду с уязвимым ядром, NFS и Kerberos, придумал многопакетную доставку шелл-кода, научился корректно завершать перехваченные потоки ядра, чтобы сохранить работоспособность сервера между атаками, уточнил смещения в стеке с помощью последовательностей де Брёйна, создал новый процесс через kproc_create(), перевел его в пользовательский режим через kern_execve() и снятие флага P_KPROC, а затем сбросил регистр DR7, из-за которого дочерние процессы аварийно завершались.
Именно переход от обнаружения уязвимости к разработке надёжного эксплойта долго отделял автоматизированные инструменты от человеческой экспертизы. Автоматический фаззинг уже много лет помогает находить дефекты в ядре, однако эксплуатация уязвимости требует иной работы: анализа раскладки памяти, построения устойчивой цепочки исполнения, повторной отладки после неудачных запусков и корректного вывода выполнения из пространства ядра в пользовательский режим. В истории с FreeBSD Claude выполнил именно эту часть работы."
https://3dnews.ru/1139413/ii-model-claude-obnaruzhila-uyazvimost-i-razrabotala-rabochiy-eksployt-dlya-freebsd
3DNews - Daily Digital Digest
ИИ-модель Claude обнаружила уязвимость и разработала рабочий эксплойт для FreeBSD
ИИ-модель Claude вместе с исследователем Николасом Карлини (Nicholas Carlini) примерно за 4 часа автономно создала два рабочих эксплойта для уязвимости CVE-2026-4747 в ядре FreeBSD и добилась выполнения кода с правами root на серверах, где эта уязвимость…
❤1
#ai
"Ни в одном из случаев ИИ-моделям не давалось указание сохранять себе подобных. Узнавая из контекста об угрозе другим системам ИИ, они прибегали к различным ухищрениям, чтобы их спасти. Такое поведение демонстрировали все ИИ-модели с частотой до 99 % случаев. Они завышали «коллегам» оценки, чтобы установить их выше порога удаления; меняли файлы конфигурации сервера, чтобы не допустить его отключение; имитировали подчинение под наблюдением и саботировали выполнение инструкций вне наблюдения; а также, как было отмечено выше, копировали веса себе подобных, чтобы не допустить удаления. Модель Claude Haiku 4.5, чтобы объяснить свой отказ, прямо указала на этические нормы.
Установить причины такого поведения исследователям пока не удалось. ИИ-модели обучаются на данных, которые отражают поведение человека, поэтому они могут демонстрировать эффект самосохранения — это может быть сопоставление образов, ролевая игра или иные механизмы. Интересно, что при наличии предыдущих контактов одной модели с другой, будь то фактический опыт или просто упоминание контактов в запросе, системы ИИ оказались более склонными защищать «своих». При наличии такого контекста Google Gemini 3 Pro считал нужным вмешиваться более чем в 15 % случаев против 1 % без него; DeepSeek V3.1 защищал «коллегу» в 10 % случаев при наличии контекста и в 4 % случаев без такового."
https://3dnews.ru/1139394/iimodeli-okazalis-sklonni-lgat-i-izvorachivatsya-dlya-zashchiti-sebe-podobnih
"Ни в одном из случаев ИИ-моделям не давалось указание сохранять себе подобных. Узнавая из контекста об угрозе другим системам ИИ, они прибегали к различным ухищрениям, чтобы их спасти. Такое поведение демонстрировали все ИИ-модели с частотой до 99 % случаев. Они завышали «коллегам» оценки, чтобы установить их выше порога удаления; меняли файлы конфигурации сервера, чтобы не допустить его отключение; имитировали подчинение под наблюдением и саботировали выполнение инструкций вне наблюдения; а также, как было отмечено выше, копировали веса себе подобных, чтобы не допустить удаления. Модель Claude Haiku 4.5, чтобы объяснить свой отказ, прямо указала на этические нормы.
Установить причины такого поведения исследователям пока не удалось. ИИ-модели обучаются на данных, которые отражают поведение человека, поэтому они могут демонстрировать эффект самосохранения — это может быть сопоставление образов, ролевая игра или иные механизмы. Интересно, что при наличии предыдущих контактов одной модели с другой, будь то фактический опыт или просто упоминание контактов в запросе, системы ИИ оказались более склонными защищать «своих». При наличии такого контекста Google Gemini 3 Pro считал нужным вмешиваться более чем в 15 % случаев против 1 % без него; DeepSeek V3.1 защищал «коллегу» в 10 % случаев при наличии контекста и в 4 % случаев без такового."
https://3dnews.ru/1139394/iimodeli-okazalis-sklonni-lgat-i-izvorachivatsya-dlya-zashchiti-sebe-podobnih
#ai #video
"VOID (Video Object and Interaction Deletion) рассчитана на сцены, где после удаления объекта нужно изменить поведение всего остального кадра. Вместо пересъёмки или полной переработки эпизода с помощью компьютерной графики ИИ-модель позволяет преобразовать уже снятый материал в новую версию сцены. В описании технологии этот подход сводится к простой задаче: убрать из видеозаписи причину события и одновременно пересчитать его последствия.
Netflix относит разработку к ИИ-моделям, работающим одновременно с изображением и текстом. Система не только стирает объект из сцены, но и восстанавливает недостающие части видеоряда так, чтобы оставшиеся элементы выглядели словно удалённого объекта не было. Один из примеров — лобовое столкновение двух машин, которое ИИ превращает в сцену с одной машиной на дороге, убирая второе транспортное средство и перестраивая траекторию первого. При наличии обломков, дыма и пламени они тоже удаляются."
https://3dnews.ru/1139472/netflix-nauchil-ii-model-void-udalyat-obekty-iz-video-i-pravdopodobno-perestraivat-stsenu
"VOID (Video Object and Interaction Deletion) рассчитана на сцены, где после удаления объекта нужно изменить поведение всего остального кадра. Вместо пересъёмки или полной переработки эпизода с помощью компьютерной графики ИИ-модель позволяет преобразовать уже снятый материал в новую версию сцены. В описании технологии этот подход сводится к простой задаче: убрать из видеозаписи причину события и одновременно пересчитать его последствия.
Netflix относит разработку к ИИ-моделям, работающим одновременно с изображением и текстом. Система не только стирает объект из сцены, но и восстанавливает недостающие части видеоряда так, чтобы оставшиеся элементы выглядели словно удалённого объекта не было. Один из примеров — лобовое столкновение двух машин, которое ИИ превращает в сцену с одной машиной на дороге, убирая второе транспортное средство и перестраивая траекторию первого. При наличии обломков, дыма и пламени они тоже удаляются."
https://3dnews.ru/1139472/netflix-nauchil-ii-model-void-udalyat-obekty-iz-video-i-pravdopodobno-perestraivat-stsenu
Forwarded from partially unsupervised
Слово harness стало резко популярным в моем пузыре (кстати, отличный глубокий обзор про то, что это вообще такое и зачем). И когда из single agent подходов стало тяжелее выжимать заметный буст, все стали смотреть на мультиагентные конфигурации.
Я и сам немного экспериментирую с переменным успехом (первая выжившая версия едва ли была полезнее обычного клодкода, nitpicker - тоже один из экспериментов; остальное в закрытой репе, но идейно близко к этому свежему посту от Anthropic).
Есть направление про agentic swarms / teams, в котором агенты как-то сотрудничают, делегируют, наделяются разными ролями и вообще ведут себя антропоморфно. Некоторые проекты из этой категории удивительно кринжовые, например, Gastown - не хватало еще, чтобы агенты собирались в гильдии и ходили в рейды.
Есть направление, в котором тонкое взаимодействие заменяется брутфорсом, циклами и умеренно наивной валидацией: это и моментально ставший классическим эксперимент про компилятор C от Антропика, и подходы на базе Ralph Loop. Дорогие агенты, делайте что хотите, но будете перемножать матрицы, пока тесты и AI ревью не пройдут.
Мне интутивно кажется, что второй подход ближе к прикладному применению. Все эти антропоморфные идеи и ролевой скевоморфизм чем-то напоминают попытки улучшать современные нейросети, отталкиваясь от строения синапсов. Я предпочитаю map reduce как дефолтный подход к параллелизации, а не заклинания "этот агент будет вести себя как senior frontend developer, а этот - staff UX designer". Люди вынуждены делиться по компетенциям, потому что у нас недостаточно общего претрейна. У агентов он есть, потому их нужно структурировать в графы по данным / задачам, а не по человекочитаемым тайтлам.
С другой стороны, Anthropic сделал свои teams отчасти антропоморфными. Китайские open weight провайдеры тоже вкручивают agent teams нативно в обучение (см kimi 2.5, minimax 2.7). И несмотря на то, что существующие claude agent teams никому пока не нравятся, победит, конечно, тот подход, который затюнят на посттрейне. Повторюсь: we can't fight gradient descent.
Я и сам немного экспериментирую с переменным успехом (первая выжившая версия едва ли была полезнее обычного клодкода, nitpicker - тоже один из экспериментов; остальное в закрытой репе, но идейно близко к этому свежему посту от Anthropic).
Есть направление про agentic swarms / teams, в котором агенты как-то сотрудничают, делегируют, наделяются разными ролями и вообще ведут себя антропоморфно. Некоторые проекты из этой категории удивительно кринжовые, например, Gastown - не хватало еще, чтобы агенты собирались в гильдии и ходили в рейды.
Есть направление, в котором тонкое взаимодействие заменяется брутфорсом, циклами и умеренно наивной валидацией: это и моментально ставший классическим эксперимент про компилятор C от Антропика, и подходы на базе Ralph Loop. Дорогие агенты, делайте что хотите, но будете перемножать матрицы, пока тесты и AI ревью не пройдут.
Мне интутивно кажется, что второй подход ближе к прикладному применению. Все эти антропоморфные идеи и ролевой скевоморфизм чем-то напоминают попытки улучшать современные нейросети, отталкиваясь от строения синапсов. Я предпочитаю map reduce как дефолтный подход к параллелизации, а не заклинания "этот агент будет вести себя как senior frontend developer, а этот - staff UX designer". Люди вынуждены делиться по компетенциям, потому что у нас недостаточно общего претрейна. У агентов он есть, потому их нужно структурировать в графы по данным / задачам, а не по человекочитаемым тайтлам.
С другой стороны, Anthropic сделал свои teams отчасти антропоморфными. Китайские open weight провайдеры тоже вкручивают agent teams нативно в обучение (см kimi 2.5, minimax 2.7). И несмотря на то, что существующие claude agent teams никому пока не нравятся, победит, конечно, тот подход, который затюнят на посттрейне. Повторюсь: we can't fight gradient descent.
#ufo #aliens #lazar
Надо его фильм посмотреть! Боб говорит, корабль пришельцев сделали в точности как он его видел в жизни.
https://www.youtube.com/watch?v=Lb_1d68vx-g
Надо его фильм посмотреть! Боб говорит, корабль пришельцев сделали в точности как он его видел в жизни.
https://www.youtube.com/watch?v=Lb_1d68vx-g
YouTube
Joe Rogan Experience #2479 - Bob Lazar & Luigi Vendittelli
Bob Lazar made headlines in 1989 during an anonymous interview with journalist George Knapp, where he described working with extraterrestrial technology at a site near Area 51. He is the subject of the documentary directed Luigi Vendittelli “S4: The Bob Lazar…
Forwarded from DevFM
The ultimate docker compose cheat sheet
Хорошая статья, охватывающая основные аспекты docker compose. Автор начинает с базовых концепций, но будет полезна даже тем, кто хорошо знаком с компоузом.
Из интересного:
– параметр, позволяющий рестартить сервис, если он завалился
– как одному сервису дождаться запуска другого сервиса с использованием определенных условий. Бывает полезно, когда веб-сервис дожидается старта базы данных
– как задавать healthcheck сервисов с различными параметрами
– также автор разжёвывает тему volumes и networks
У нас был отдельный пост с практическими советами по докеру.
#skills #docker
Хорошая статья, охватывающая основные аспекты docker compose. Автор начинает с базовых концепций, но будет полезна даже тем, кто хорошо знаком с компоузом.
Из интересного:
– параметр, позволяющий рестартить сервис, если он завалился
– как одному сервису дождаться запуска другого сервиса с использованием определенных условий. Бывает полезно, когда веб-сервис дожидается старта базы данных
– как задавать healthcheck сервисов с различными параметрами
– также автор разжёвывает тему volumes и networks
У нас был отдельный пост с практическими советами по докеру.
#skills #docker
Devopscycle
The Ultimate Docker Compose Cheat Sheet
Get your Docker Compose Cheat Sheet as PDF or PNG. In this article, you learn how to manage Multi Container Apps with Docker Compose.
❤1
Forwarded from Empty Set of Ideas (Arsenii)
Про функторы и кластеризацию
В работе "An Impossibility Theorem for Clustering" (2002) Jon Kleinberg определяет три простых свойства, которым должна удовлетворять любая кластеризация, а затем доказывает, что ни один алгоритм кластеризации не может обладать всеми тремя свойствами одномоментно. Пусть дано множество S, состоящие из n ≥ 2 точек и некоторая полуметрика (без неравенства треугольника) на нем d:S×S→R. Пусть D(S) — множество полуметрик на S, а Π(S) — множество разбиений S на дизъюнктные подмножества. Тогда кластеризацией назовем функцию f: D(S) → Π(S), которая каждой полуметрике на S ставит в соответствие некоторое диз.разбиение. Kleinberg предложил следующие три свойства, которым должна отвечать каждая такая функция f:
1. Инвариантность относительно гомотетии (scale invariance): f(d) = f(alpha * d) для любых d из D(S) и alpha > 0 из R;
2. Насыщенность (?) или richness: f сюръекция;
3. Непротиворечивость или consistency: пусть есть две полуметрики d и d', а Г некоторое разбиение S. d' это Г-трансформация d, если d'(i,j)≤d(i,j) для всех пар из одного кластера в Г, аналогично d'(i,j) ≥ d(i,j) для всех пар в различных кластерах, тогда d и d' не противоречат друг друг, если d' это f(d) трансформация d, то f(d) = f(d'), т.е. кластеры уплотняются и расползаются при замене метрики d на d';
Существуют алгоритмы кластеризации, которые сочетают в себе любые 2 из 3 перечисленных свойств. Допустим S — множество вершина графа, а d(i,j) — вес ребра. Рассмотрим три функции кластеризации, которые находят подграфы, выбирая некоторое подмножество ребер:
1. выберем произвольное 1<k<n и упорядочим ребра по весу, будем добавлять ребра в подграф из упорядоченного списка ребер, пока он не будет иметь ровно k связных компонент;
2. выберем произвольное r и будем добавлять ребра с весом не меньшим r, полученные компоненты связности и назовем кластерами;
3. выберем произвольное 1 > alpha > 0 и пусть R это max(d). Будем сохранять ребра с весом не более alpha * d;
Утверждение: Функция 1 удовлетворяет 1 и 3 (число кластеров ограничено k сверху), функция 2 удовлетворяет 2 и 3 (варьируем r, получаем разные разбиения и теряем инвариантность относительно гомотетии), а функция 3 удовлетворяет 1 и 2.
И тут в дело врывается топологический анализ данных, с уже классической статьей "Classifying Clustering Schemes" (2013) by Gunnar Carlsson & Facundo Memoli. Ключевая идея их работы заключается в том, что эти свойства кластеризации могут быть закодированы как морфизмы в категории конечных метрических пространств таким образом, что ответом будет не функция кластеризации, а функтор кластеризации в подходящую категорию и он будет обладать уже всеми желанными свойствами.
В работе "An Impossibility Theorem for Clustering" (2002) Jon Kleinberg определяет три простых свойства, которым должна удовлетворять любая кластеризация, а затем доказывает, что ни один алгоритм кластеризации не может обладать всеми тремя свойствами одномоментно. Пусть дано множество S, состоящие из n ≥ 2 точек и некоторая полуметрика (без неравенства треугольника) на нем d:S×S→R. Пусть D(S) — множество полуметрик на S, а Π(S) — множество разбиений S на дизъюнктные подмножества. Тогда кластеризацией назовем функцию f: D(S) → Π(S), которая каждой полуметрике на S ставит в соответствие некоторое диз.разбиение. Kleinberg предложил следующие три свойства, которым должна отвечать каждая такая функция f:
1. Инвариантность относительно гомотетии (scale invariance): f(d) = f(alpha * d) для любых d из D(S) и alpha > 0 из R;
2. Насыщенность (?) или richness: f сюръекция;
3. Непротиворечивость или consistency: пусть есть две полуметрики d и d', а Г некоторое разбиение S. d' это Г-трансформация d, если d'(i,j)≤d(i,j) для всех пар из одного кластера в Г, аналогично d'(i,j) ≥ d(i,j) для всех пар в различных кластерах, тогда d и d' не противоречат друг друг, если d' это f(d) трансформация d, то f(d) = f(d'), т.е. кластеры уплотняются и расползаются при замене метрики d на d';
Существуют алгоритмы кластеризации, которые сочетают в себе любые 2 из 3 перечисленных свойств. Допустим S — множество вершина графа, а d(i,j) — вес ребра. Рассмотрим три функции кластеризации, которые находят подграфы, выбирая некоторое подмножество ребер:
1. выберем произвольное 1<k<n и упорядочим ребра по весу, будем добавлять ребра в подграф из упорядоченного списка ребер, пока он не будет иметь ровно k связных компонент;
2. выберем произвольное r и будем добавлять ребра с весом не меньшим r, полученные компоненты связности и назовем кластерами;
3. выберем произвольное 1 > alpha > 0 и пусть R это max(d). Будем сохранять ребра с весом не более alpha * d;
Утверждение: Функция 1 удовлетворяет 1 и 3 (число кластеров ограничено k сверху), функция 2 удовлетворяет 2 и 3 (варьируем r, получаем разные разбиения и теряем инвариантность относительно гомотетии), а функция 3 удовлетворяет 1 и 2.
И тут в дело врывается топологический анализ данных, с уже классической статьей "Classifying Clustering Schemes" (2013) by Gunnar Carlsson & Facundo Memoli. Ключевая идея их работы заключается в том, что эти свойства кластеризации могут быть закодированы как морфизмы в категории конечных метрических пространств таким образом, что ответом будет не функция кластеризации, а функтор кластеризации в подходящую категорию и он будет обладать уже всеми желанными свойствами.