#featureselection #diogenes
Придумал ещё несколько полезностей для Диогена:
1) мультитаргет. у меня уже и так можно использовать в качестве таргета многомерный вектор (что бы это ни значило), в таком случае влияние факторов будет оцениваться совместно на все указанные компоненты. но иногда есть много таргетов, для которых надо найти лучшие факторы (и потом построить модельки) по отдельности. В таком случае для энтропийных методов можно СИЛЬНО сэкономить время, меняя только часть слагаемых в формулах. Это, кстати, позволит эффективно просчитывать факторы для multilabel classification.
2) бюджет времени. у меня сейчас можно искать лучшие факторы с остановкой по 3 критериям:
пока ценность новых кандидатов не станет меньше порога;
пока самые перспективные кандидаты не "провалятся" при перестановочном тестировании более N раз подряд
пока не исчерпается лимит взаимодействий, которые хочется проверить (обычно от 1 до 3).
думается, неплохо бы сюда добавить и максимальное время выполнения. типа, "найди мне лучшие объясняющие факторы, какие сможешь за 5 минут". ну или час. итд.
3) GPU. Можно попробовать cuda-возможности numba. И/или заюзать cupy, я в бою ещё не пробовал это.
4) Dask. Пока ещё думаю, как реализовать многоядерность на CPU. Наверное, лучше сразу на joblib делать, чтобы было совместимо с Dask.
У меня несколько блоков, подлежащих параллельным вычислениям:
предварительная оценка всех кандидатов против уже отобранных - можно разбивать поровну на число воркеров, по завершении синхронизировать кэши
финальная оценка лучшего кандидата MCPT с большим количеством перестановок - можно разбивать повторения по воркерам, результаты суммировать
пост-анализ, когда все прошедшие отбор кандидаты пересчитываются против остальных финалистов:
а) еще раз по критерию Fleuret, на этот раз на полном множестве конкурентов, с возможным отсевом
б) на предмет коллинеарности по критерию взаимной информации, с возможностью учета 2-, 3-way связей
ну тут тоже параллелится весьма очевидно
5) Если ограничиться 1-way взаимодействиями, то можно применять и другие критерии вместо энтропийных. corcoeff, ftest, Kendall’s Tau, Spearman’s rho, etc. Избыточность оценивать можно ещё с помощью метода PLD, когда с уже выбранными факторами у кандидата считается информация не по таргету условная по фактору взаимная, а просто средняя взаимная кандидатов и фактора.
Придумал ещё несколько полезностей для Диогена:
1) мультитаргет. у меня уже и так можно использовать в качестве таргета многомерный вектор (что бы это ни значило), в таком случае влияние факторов будет оцениваться совместно на все указанные компоненты. но иногда есть много таргетов, для которых надо найти лучшие факторы (и потом построить модельки) по отдельности. В таком случае для энтропийных методов можно СИЛЬНО сэкономить время, меняя только часть слагаемых в формулах. Это, кстати, позволит эффективно просчитывать факторы для multilabel classification.
2) бюджет времени. у меня сейчас можно искать лучшие факторы с остановкой по 3 критериям:
пока ценность новых кандидатов не станет меньше порога;
пока самые перспективные кандидаты не "провалятся" при перестановочном тестировании более N раз подряд
пока не исчерпается лимит взаимодействий, которые хочется проверить (обычно от 1 до 3).
думается, неплохо бы сюда добавить и максимальное время выполнения. типа, "найди мне лучшие объясняющие факторы, какие сможешь за 5 минут". ну или час. итд.
3) GPU. Можно попробовать cuda-возможности numba. И/или заюзать cupy, я в бою ещё не пробовал это.
4) Dask. Пока ещё думаю, как реализовать многоядерность на CPU. Наверное, лучше сразу на joblib делать, чтобы было совместимо с Dask.
У меня несколько блоков, подлежащих параллельным вычислениям:
предварительная оценка всех кандидатов против уже отобранных - можно разбивать поровну на число воркеров, по завершении синхронизировать кэши
финальная оценка лучшего кандидата MCPT с большим количеством перестановок - можно разбивать повторения по воркерам, результаты суммировать
пост-анализ, когда все прошедшие отбор кандидаты пересчитываются против остальных финалистов:
а) еще раз по критерию Fleuret, на этот раз на полном множестве конкурентов, с возможным отсевом
б) на предмет коллинеарности по критерию взаимной информации, с возможностью учета 2-, 3-way связей
ну тут тоже параллелится весьма очевидно
5) Если ограничиться 1-way взаимодействиями, то можно применять и другие критерии вместо энтропийных. corcoeff, ftest, Kendall’s Tau, Spearman’s rho, etc. Избыточность оценивать можно ещё с помощью метода PLD, когда с уже выбранными факторами у кандидата считается информация не по таргету условная по фактору взаимная, а просто средняя взаимная кандидатов и фактора.
Тест на знание английского! Не заглядывайте в словарь ) Что означает слово trepidation?
Anonymous Quiz
13%
трепет
0%
репутация
16%
гнев
42%
воздержание
29%
такого слова в английском нет
👍1
#facebooks #ads
https://3dnews.ru/1091463/norvegiya-nachala-shtrafovat-meta-na-100-tis-v-den-za-narushenie-pravil-konfidentsialnosti-polzovateley
https://3dnews.ru/1091463/norvegiya-nachala-shtrafovat-meta-na-100-tis-v-den-za-narushenie-pravil-konfidentsialnosti-polzovateley
3DNews - Daily Digital Digest
Норвегия начала штрафовать Meta✴ на $100 тыс. каждый день за таргетинг рекламы
Управление по защите данных Норвегии начинает взимать штраф в размере 1 млн норвежских крон (около $100 тыс.
😁1
#postgres #db
А тем временим готовится к релизу Постгре 16.
Из интересного:
Allow parallelization of FULL and internal right OUTER hash joins (Melanie Plageman, Thomas Munro)
Allow optimization of always-increasing window functions ntile(), cume_dist() and percent_rank() (David Rowley)
Add system view pg_stat_io view to track IO statistics (Melanie Plageman)
Record statistics on the last sequential and index scans on tables (Dave Page) This information appears in pg_stat_all_tables and pg_stat_all_indexes.
Create a predefined role and grantable privilege with permission to perform maintenance operations (Nathan Bossart) The predefined role is is called pg_maintain.
Add predefined role pg_create_subnoscription with permission to create subnoscriptions (Robert Haas)
Add support for regular expression matching on database and role entries in pg_hba.conf (Bertrand Drouvot)
Allow NUMERIC to process hexadecimal, octal, and binary integers of any size (Dean Rasheed) Previously only unquoted eight-byte integers were supported with these non-decimal bases.
Allow underscores in integer and numeric constants (Peter Eisentraut, Dean Rasheed) This can improve readability for long strings of digits.
Accept the spelling "+infinity" in datetime input (Vik Fearing)
Allow parallel application of logical replication (Hou Zhijie, Wang Wei, Amit Kapila)
Allow the STORAGE type to be specified by CREATE TABLE (Teodor Sigaev, Aleksander Alekseev) Previously only ALTER TABLE could control this
Allow subqueries in the FROM clause to omit aliases (Dean Rasheed)
Change date_trunc(unit, timestamptz, time_zone) to be an immutable function (Przemyslaw Sztoch) This allows the creation of expression indexes using this function.
Add functions array_sample() and array_shuffle() (Martin Kalcher)
Add aggregate function ANY_VALUE() which returns any value from a set (Vik Fearing)
Add function random_normal() to supply normally-distributed random numbers (Paul Ramsey)
Add error function erf() and its complement erfc() (Dean Rasheed)
Add libpq option sslcertmode to control transmission of the client certificate (Jacob Champion) The option values are "disable", "allow", and "require".
Add LZ4 and Zstandard compression to pg_dump (Georgios Kokolatos, Justin Pryzby)
Allow pg_dump and pg_basebackup to use "long" mode for compression (Justin Pryzby)
Add support for SSE2 (Streaming SIMD Extensions 2) vector operations on x86-64 architectures (John Naylor) вот это странно, этой поддержки не было, чтоль?
Add support for Advanced SIMD (Single Instruction Multiple Data) (NEON) instructions on ARM architectures (Nathan Bossart)
Require Windows 10 or newer versions (Michael Paquier, Juan José Santamaría Flecha) Previously Windows Vista and Windows XP were supported. Вот это вряд ли можно считать улучшением.
https://www.postgresql.org/docs/16/release-16.html
А тем временим готовится к релизу Постгре 16.
Из интересного:
Allow parallelization of FULL and internal right OUTER hash joins (Melanie Plageman, Thomas Munro)
Allow optimization of always-increasing window functions ntile(), cume_dist() and percent_rank() (David Rowley)
Add system view pg_stat_io view to track IO statistics (Melanie Plageman)
Record statistics on the last sequential and index scans on tables (Dave Page) This information appears in pg_stat_all_tables and pg_stat_all_indexes.
Create a predefined role and grantable privilege with permission to perform maintenance operations (Nathan Bossart) The predefined role is is called pg_maintain.
Add predefined role pg_create_subnoscription with permission to create subnoscriptions (Robert Haas)
Add support for regular expression matching on database and role entries in pg_hba.conf (Bertrand Drouvot)
Allow NUMERIC to process hexadecimal, octal, and binary integers of any size (Dean Rasheed) Previously only unquoted eight-byte integers were supported with these non-decimal bases.
Allow underscores in integer and numeric constants (Peter Eisentraut, Dean Rasheed) This can improve readability for long strings of digits.
Accept the spelling "+infinity" in datetime input (Vik Fearing)
Allow parallel application of logical replication (Hou Zhijie, Wang Wei, Amit Kapila)
Allow the STORAGE type to be specified by CREATE TABLE (Teodor Sigaev, Aleksander Alekseev) Previously only ALTER TABLE could control this
Allow subqueries in the FROM clause to omit aliases (Dean Rasheed)
Change date_trunc(unit, timestamptz, time_zone) to be an immutable function (Przemyslaw Sztoch) This allows the creation of expression indexes using this function.
Add functions array_sample() and array_shuffle() (Martin Kalcher)
Add aggregate function ANY_VALUE() which returns any value from a set (Vik Fearing)
Add function random_normal() to supply normally-distributed random numbers (Paul Ramsey)
Add error function erf() and its complement erfc() (Dean Rasheed)
Add libpq option sslcertmode to control transmission of the client certificate (Jacob Champion) The option values are "disable", "allow", and "require".
Add LZ4 and Zstandard compression to pg_dump (Georgios Kokolatos, Justin Pryzby)
Allow pg_dump and pg_basebackup to use "long" mode for compression (Justin Pryzby)
Add support for SSE2 (Streaming SIMD Extensions 2) vector operations on x86-64 architectures (John Naylor) вот это странно, этой поддержки не было, чтоль?
Add support for Advanced SIMD (Single Instruction Multiple Data) (NEON) instructions on ARM architectures (Nathan Bossart)
Require Windows 10 or newer versions (Michael Paquier, Juan José Santamaría Flecha) Previously Windows Vista and Windows XP were supported. Вот это вряд ли можно считать улучшением.
https://www.postgresql.org/docs/16/release-16.html
PostgreSQL Documentation
E.12. Release 16
E.12. Release 16 # E.12.1. Overview E.12.2. Migration to Version 16 E.12.3. Changes E.12.4. Acknowledgments Release date: 2023-09-14 E.12.1. Overview # PostgreSQL 16 …
#poetry #music #mantus #deutsch #translation
An empty vessel by the shore's edge roams,
A forgotten orphan left to wither alone,
Tulips, decayed, on asphalt they lie,
The night wraps itself in a mute lullaby.
Birds circle and then take their flight,
From the sky descends the final rite,
The owl flees its forest domain,
Blood drips from trees like crimson rain.
Words that once echoed now faded away,
Legends of unity in disarray,
A darkened sea consumes dreams in decay,
Of us, not a trace, all led astray.
The deceased repose in their earthen bed,
A stranger's gaze, a fleeting shred,
Drawn into solitude, voices worn thin,
All that remains is the quiet within.
Elven fury scalds the pale moon's light,
The black plague reigns, a grievous blight,
In damp warmth, a sultry shimmering gloom,
And the stool falls silently in the room.
оригинал
"Ein leeres Boot, das am Ufer treibt
Ein Waisenkind, das vergessen bleibt
Die Tulpen modern auf dem Asphalt
Die Nacht hüllt sich in Schweigen
Die Vögel kreisen und ziehen fort
Vom Himmel tönet der Schlussakkord
Die Eule flüchtet aus ihrem Wald
Das Blut tropft von den Bäumen
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben
Der Tote sinkt ins Grab zurück
Den Fremden streift ein letzter Blick
Man schließt sich ein, man redet kaum
Von uns ist nichts geblieben
Ein kalter Abend zieht schnell heran
Ein Krieger rudert durch tiefen Schlamm
Der weiße Magier sucht das Exil
Ein Haus versinkt im Nebel
Der Zorn der Elfen verbrennt den Mond
Die schwarze Pest über allem thront
Und feuchte Wärme, sie flimmert schwül
Und lautlos fällt der Schemel
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben"
https://www.youtube.com/watch?v=Br1LgdnmQcQ
An empty vessel by the shore's edge roams,
A forgotten orphan left to wither alone,
Tulips, decayed, on asphalt they lie,
The night wraps itself in a mute lullaby.
Birds circle and then take their flight,
From the sky descends the final rite,
The owl flees its forest domain,
Blood drips from trees like crimson rain.
Words that once echoed now faded away,
Legends of unity in disarray,
A darkened sea consumes dreams in decay,
Of us, not a trace, all led astray.
The deceased repose in their earthen bed,
A stranger's gaze, a fleeting shred,
Drawn into solitude, voices worn thin,
All that remains is the quiet within.
Elven fury scalds the pale moon's light,
The black plague reigns, a grievous blight,
In damp warmth, a sultry shimmering gloom,
And the stool falls silently in the room.
оригинал
"Ein leeres Boot, das am Ufer treibt
Ein Waisenkind, das vergessen bleibt
Die Tulpen modern auf dem Asphalt
Die Nacht hüllt sich in Schweigen
Die Vögel kreisen und ziehen fort
Vom Himmel tönet der Schlussakkord
Die Eule flüchtet aus ihrem Wald
Das Blut tropft von den Bäumen
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben
Der Tote sinkt ins Grab zurück
Den Fremden streift ein letzter Blick
Man schließt sich ein, man redet kaum
Von uns ist nichts geblieben
Ein kalter Abend zieht schnell heran
Ein Krieger rudert durch tiefen Schlamm
Der weiße Magier sucht das Exil
Ein Haus versinkt im Nebel
Der Zorn der Elfen verbrennt den Mond
Die schwarze Pest über allem thront
Und feuchte Wärme, sie flimmert schwül
Und lautlos fällt der Schemel
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben"
https://www.youtube.com/watch?v=Br1LgdnmQcQ
YouTube
Legenden
Provided to YouTube by Trisol
Legenden · Mantus
Wölfe
℗ Trisol Music Group GmbH
Released on: 2012-11-16
Composer: Martin André Schindler
Lyricist: Martin André Schindler
Auto-generated by YouTube.
Legenden · Mantus
Wölfe
℗ Trisol Music Group GmbH
Released on: 2012-11-16
Composer: Martin André Schindler
Lyricist: Martin André Schindler
Auto-generated by YouTube.
#ml #applied #dyakonov #pzad #featureselection #permutationimportance #mid #pfi #boruta #ace
Artificial contrasts with ensembles - примечательный метод. Ещё интересна идея, что в обёрточных методах FS оценивать важность признаков надо не тем классом моделей, который будет в итоге обучаться для решения самой ML задачи.
https://www.youtube.com/watch?v=ZRa7-F5PvRk&list=PLaRUeIuewv8CMFox0oEjlyePUhUmo-x0h&index=28
Artificial contrasts with ensembles - примечательный метод. Ещё интересна идея, что в обёрточных методах FS оценивать важность признаков надо не тем классом моделей, который будет в итоге обучаться для решения самой ML задачи.
https://www.youtube.com/watch?v=ZRa7-F5PvRk&list=PLaRUeIuewv8CMFox0oEjlyePUhUmo-x0h&index=28
YouTube
ПЗАД2020. Лекция 25. Важность признаков в ансамблях деревьев
курс "Прикладные задачи анализа данных", ВМК МГУ, Дьяконов Александр (https://dyakonov.org/ag/)
страница курса: https://github.com/Dyakonov/PZAD/blob/master/README.md
страница курса: https://github.com/Dyakonov/PZAD/blob/master/README.md
#gpu #cupy #codegems
How to write CPU/GPU agnostic code
CuPy’s compatibility with NumPy makes it possible to write CPU/GPU agnostic code. For this purpose, CuPy implements the cupy.get_array_module() function that returns a reference to cupy if any of its arguments resides on a GPU and numpy otherwise. Here is an example of a CPU/GPU agnostic function that computes log1p:
How to write CPU/GPU agnostic code
CuPy’s compatibility with NumPy makes it possible to write CPU/GPU agnostic code. For this purpose, CuPy implements the cupy.get_array_module() function that returns a reference to cupy if any of its arguments resides on a GPU and numpy otherwise. Here is an example of a CPU/GPU agnostic function that computes log1p:
# Stable implementation of log(1 + exp(x))https://docs.cupy.dev/en/stable/user_guide/basic.html
def softplus(x):
xp = cp.get_array_module(x) # 'xp' is a standard usage in the community
print("Using:", xp.__name__)
return xp.maximum(0, x) + xp.log1p(xp.exp(-abs(x)))
#zuck #sport #martialarts
"Джиу-джитсу — не единственное увлечение Цукерберга. Недавно глава популярных соцсетей с состоянием 89,9 миллиарда долларов удивил подписчиков брутальными снимками с экстремальной тренировки. На фотографии, опубликованной 31 мая, изможденный бизнесмен с капельками пота на лице и рельефными бицепсами сделал селфи в бронежилете весом около девяти килограммов. Миллиардер рассказал, что прошел челлендж Мерфи, выполнив в этом самом бронежилете за неполные 40 минут 100 подтягиваний, 200 отжиманий и 300 приседаний, а после этого пробежал километр."
Про боевое кряхтение позабавило )
https://lenta.ru/news/2023/06/07/zucker/
"Джиу-джитсу — не единственное увлечение Цукерберга. Недавно глава популярных соцсетей с состоянием 89,9 миллиарда долларов удивил подписчиков брутальными снимками с экстремальной тренировки. На фотографии, опубликованной 31 мая, изможденный бизнесмен с капельками пота на лице и рельефными бицепсами сделал селфи в бронежилете весом около девяти килограммов. Миллиардер рассказал, что прошел челлендж Мерфи, выполнив в этом самом бронежилете за неполные 40 минут 100 подтягиваний, 200 отжиманий и 300 приседаний, а после этого пробежал километр."
Про боевое кряхтение позабавило )
https://lenta.ru/news/2023/06/07/zucker/
Lenta.RU
Марк Цукерберг бегает в бронежилете и дерется на ринге. Как миллиардер из гика превратился в Рэмбо?
Миллиардер с состоянием около 90 миллиардов долларов Марк Цукерберг уходит от образа домашнего интеллигентного парня и приобретает славу «дикого зверя» и опасного противника. Теперь основатель популярной социальной сети занимается спортивными единоборствами…
#cuda #gpu #architecture #programming
Напоминалка, как устроена программная модель Cuda. Что такое потоки, блоки, сетки.
https://developer.nvidia.com/blog/cuda-refresher-cuda-programming-model/
Напоминалка, как устроена программная модель Cuda. Что такое потоки, блоки, сетки.
https://developer.nvidia.com/blog/cuda-refresher-cuda-programming-model/
NVIDIA Technical Blog
CUDA Refresher: The CUDA Programming Model
This is the fourth post in the CUDA Refresher series, which has the goal of refreshing key concepts in CUDA, tools, and optimization for beginning or intermediate developers.
#featureselection #diogenes #optimisation #gpu #cuda #cupy
Докладываю новости о проекте Диоген. Вчера добавил бюджет времени, переписал функции покрасивее, потестировал все ветки. С указанием допустимого времени работает просто отлично.
Сегодня ещё добавил функциональность random seed. Выяснилось, что нумба не подтягивает его из нампай "обычного" режима, надо в njit-нутой функции его ещё раз выставлять.
Отпрофилировал код на глубинах 1-2 взаимодействий признаков. Оказалось, что 80% времени кушает оценка кандидатов, и 20% времени - расчёт надёжности для лучших кандидатов. Из этих 80% основные опять же ~80% тратятся в прямой оценке MI кандидата и таргета.
Дальше они распадаются так: 20% на слияние многомерного вектора, 70% на перемешивание таргета (np.random.shuffle), 10% на сам расчёт MI из совместного распределения.
Очевидно, выгоднее всего оптимизировать шаффл таргета. Решил попробовать cupy как замену numpy: просто перенести таргет в память gpu и шаффлить прямо там. Улучшения таймингов это не дало, т.к. перемешанный, пусть и быстро, массив 120k элементов всё равно надо было копировать обратно в RAM для подсчёта MI.
К счастью, подумал я, cupy позволяет писать и запускать произвольные ядра Cuda в C++ прямо из питона. Почему бы не выполнить расчёт гистограммы и MI прямо на GPU? Капец я с этим намучался ) Я же совсем забыл, что программирование для GPU - это сущий ад после "обычного", в поточной парадигме: ваша программа выполняется сразу на тысячах потоков, куча ограничений и условий, разделяемая память,синхронизация, атомики, блоки... Плюс я совсем забыл С++ (даже то немногое, что знал). Да ещё cupy иногда радовал перлами типа невозможности подсчитать сумму массива без Visual Studio 2019 (хотя максимум считался нормально).
В итоге всё же добил эту идею, и сейчас у меня есть реализация критической части на Cuda )
Что же по скорости?
%timeit показывает, что массив 120k элементов ноутбучная 1050Ti шаффлит в 4 раза быстрее, чем i7-7700HQ. То есть я могу ожидать, что 0.8*0.8*0.7=40% всего времени исполнения сократится в 4 раза. Если поиск на CPU идёт 15 минут, то можно ожидать, что на GPU это будет 15*0.6+15*0,4/4=11 минут.
Напрямую сравнить CPU и GPU не получается, т.к. у разных библ разные сиды и порядок выполнения операций, а длительность всего поиска зависит от случайных решений. Пара запусков дала новое время 12.5-13.0 минут вместо 15. Возможно, где-то налажал, буду ещё профилировать. Но timeit шаффла массива 1M элементов даёт выигрыш уже не в 4, а в 40 раз, т.е., по идее, GPU будет ещё выгоднее для больших датасетов.
Докладываю новости о проекте Диоген. Вчера добавил бюджет времени, переписал функции покрасивее, потестировал все ветки. С указанием допустимого времени работает просто отлично.
Сегодня ещё добавил функциональность random seed. Выяснилось, что нумба не подтягивает его из нампай "обычного" режима, надо в njit-нутой функции его ещё раз выставлять.
Отпрофилировал код на глубинах 1-2 взаимодействий признаков. Оказалось, что 80% времени кушает оценка кандидатов, и 20% времени - расчёт надёжности для лучших кандидатов. Из этих 80% основные опять же ~80% тратятся в прямой оценке MI кандидата и таргета.
Дальше они распадаются так: 20% на слияние многомерного вектора, 70% на перемешивание таргета (np.random.shuffle), 10% на сам расчёт MI из совместного распределения.
Очевидно, выгоднее всего оптимизировать шаффл таргета. Решил попробовать cupy как замену numpy: просто перенести таргет в память gpu и шаффлить прямо там. Улучшения таймингов это не дало, т.к. перемешанный, пусть и быстро, массив 120k элементов всё равно надо было копировать обратно в RAM для подсчёта MI.
К счастью, подумал я, cupy позволяет писать и запускать произвольные ядра Cuda в C++ прямо из питона. Почему бы не выполнить расчёт гистограммы и MI прямо на GPU? Капец я с этим намучался ) Я же совсем забыл, что программирование для GPU - это сущий ад после "обычного", в поточной парадигме: ваша программа выполняется сразу на тысячах потоков, куча ограничений и условий, разделяемая память,синхронизация, атомики, блоки... Плюс я совсем забыл С++ (даже то немногое, что знал). Да ещё cupy иногда радовал перлами типа невозможности подсчитать сумму массива без Visual Studio 2019 (хотя максимум считался нормально).
В итоге всё же добил эту идею, и сейчас у меня есть реализация критической части на Cuda )
Что же по скорости?
%timeit показывает, что массив 120k элементов ноутбучная 1050Ti шаффлит в 4 раза быстрее, чем i7-7700HQ. То есть я могу ожидать, что 0.8*0.8*0.7=40% всего времени исполнения сократится в 4 раза. Если поиск на CPU идёт 15 минут, то можно ожидать, что на GPU это будет 15*0.6+15*0,4/4=11 минут.
Напрямую сравнить CPU и GPU не получается, т.к. у разных библ разные сиды и порядок выполнения операций, а длительность всего поиска зависит от случайных решений. Пара запусков дала новое время 12.5-13.0 минут вместо 15. Возможно, где-то налажал, буду ещё профилировать. Но timeit шаффла массива 1M элементов даёт выигрыш уже не в 4, а в 40 раз, т.е., по идее, GPU будет ещё выгоднее для больших датасетов.
✍1
#nvidia
"В настоящий момент стоимость каждого ускорителя NVIDIA H100 в зависимости от региона продаж и поставщика в среднем составляет $25–30 тыс. При этом речь идёт о менее дорогой PCIe-версии указанного решения. По оценкам Raymond James, стоимость использующегося в этом ускорителе графического процессора, а также дополнительных материалов (печатной платы и других вспомогательных элементов) составляет $3320. К сожалению, Ким не уточняет глубину анализа расчёта стоимости и не поясняет, включены ли в этот показатель такие факторы, как затраты на разработку, зарплата инженеров, а также стоимость производства и логистики.
Разработка специализированных ускорителей требует значительного времени и ресурсов. По данным того же портала Glassdoor, средняя зарплата инженера по аппаратному обеспечению в NVIDIA составляет около $202 тыс. в год. Речь идёт только об одном инженере, но очевидно, что при разработке тех же H100 работала целая команда специалистов, а на саму разработку были затрачены тысячи рабочих часов. Всё это должно учитываться в конечной стоимости продукта.
И всё же очевидно, что сейчас NVIDIA в вопросе поставок аппаратных средств для ИИ-вычислений находится вне конкуренции. На специализированные ускорители «зелёных» сейчас такой спрос, что они распродаются ещё задолго до того, как попадают на условные полки магазинов. Поставщики говорят, что очередь за ними растянулась до второго квартала 2024 года. А с учётом последних оценок аналитиков, согласно которым к 2027 году рынок ИИ-вычислений вырастет до $150 млрд, ближайшее будущее NVIDIA видится точно безбедным.
С другой стороны, для рынка в целом высокий спрос на ускорители ИИ-вычислений имеет свои негативные последствия. В последних отчётах аналитиков говорится, что продажи традиционных серверов (HPC) в глобальном масштабе сокращаются. Основная причина падения спроса заключается в том, что гиперскейлеры и операторы ЦОД переключают внимание на системы, оптимизированные для ИИ, в которых используются решения вроде NVIDIA H100. По этой причине тем же производителям памяти DDR5 пришлось пересмотреть свои ожидания относительно распространения нового стандарта ОЗУ на рынок, поскольку операторы ЦОД сейчас активно инвестируют именно в ускорители ИИ, а не в новый стандарт оперативной памяти. На фоне это ожидается, что уровень внедрения DDR5 достигнет паритета с DDR4 только к третьему кварталу 2024 года."
https://3dnews.ru/1091667/nvidia-h100-1000-procentov-viruchki
"В настоящий момент стоимость каждого ускорителя NVIDIA H100 в зависимости от региона продаж и поставщика в среднем составляет $25–30 тыс. При этом речь идёт о менее дорогой PCIe-версии указанного решения. По оценкам Raymond James, стоимость использующегося в этом ускорителе графического процессора, а также дополнительных материалов (печатной платы и других вспомогательных элементов) составляет $3320. К сожалению, Ким не уточняет глубину анализа расчёта стоимости и не поясняет, включены ли в этот показатель такие факторы, как затраты на разработку, зарплата инженеров, а также стоимость производства и логистики.
Разработка специализированных ускорителей требует значительного времени и ресурсов. По данным того же портала Glassdoor, средняя зарплата инженера по аппаратному обеспечению в NVIDIA составляет около $202 тыс. в год. Речь идёт только об одном инженере, но очевидно, что при разработке тех же H100 работала целая команда специалистов, а на саму разработку были затрачены тысячи рабочих часов. Всё это должно учитываться в конечной стоимости продукта.
И всё же очевидно, что сейчас NVIDIA в вопросе поставок аппаратных средств для ИИ-вычислений находится вне конкуренции. На специализированные ускорители «зелёных» сейчас такой спрос, что они распродаются ещё задолго до того, как попадают на условные полки магазинов. Поставщики говорят, что очередь за ними растянулась до второго квартала 2024 года. А с учётом последних оценок аналитиков, согласно которым к 2027 году рынок ИИ-вычислений вырастет до $150 млрд, ближайшее будущее NVIDIA видится точно безбедным.
С другой стороны, для рынка в целом высокий спрос на ускорители ИИ-вычислений имеет свои негативные последствия. В последних отчётах аналитиков говорится, что продажи традиционных серверов (HPC) в глобальном масштабе сокращаются. Основная причина падения спроса заключается в том, что гиперскейлеры и операторы ЦОД переключают внимание на системы, оптимизированные для ИИ, в которых используются решения вроде NVIDIA H100. По этой причине тем же производителям памяти DDR5 пришлось пересмотреть свои ожидания относительно распространения нового стандарта ОЗУ на рынок, поскольку операторы ЦОД сейчас активно инвестируют именно в ускорители ИИ, а не в новый стандарт оперативной памяти. На фоне это ожидается, что уровень внедрения DDR5 достигнет паритета с DDR4 только к третьему кварталу 2024 года."
https://3dnews.ru/1091667/nvidia-h100-1000-procentov-viruchki
3DNews - Daily Digital Digest
NVIDIA продаёт ИИ-ускорители H100 с наценкой в 1000 %, но спрос на них только растёт
NVIDIA получает до 1000 % выручки с каждого проданного специализированного графического ускорителя H100, предназначенного для задач, связанных с искусственным интеллектом.
#astronomy
"Автоматическая межпланетная станция «Луна-25», которая несколько дней назад стартовала с космодрома Восточный, сделала первый снимок поверхности естественного спутника нашей планеты.В сообщении сказано, что межпланетная станция провела съёмку лунной поверхности телевизионными камерами комплекса СТС-Л. На снимке запечатлён южный полярный кратер Зееман, расположенный на обратной стороне Луны (координаты кратера соответствуют 75° южной широты и 135° градусам западной долготы). В дополнение к этому «Луна-25» провела наблюдение с помощью приборов АДРОН-ЛР и ПмЛ, АРИЕС-Л. Проведено измерение потоков гамма-лучей и нейтронов от поверхности Луны, а также получены параметры окололунной космической плазмы и газопылевой экзосферы на окололунной орбите.
Что касается кратера Зеемана, то он представляет собой уникальный объект на лунной поверхности, который не видно с поверхности Земли и который вызывает большой интерес у исследователей. Высота окружающего его вала достигается 8 км над поверхностью относительно ровного дна. Полученные изображения дополнят имеющиеся в настоящее время данные об этом кратере."
https://3dnews.ru/1091654/megplanetnaya-stantsiya-luna25-sdelala-perviy-snimok-poverhnosti-sputnika-zemli
"Автоматическая межпланетная станция «Луна-25», которая несколько дней назад стартовала с космодрома Восточный, сделала первый снимок поверхности естественного спутника нашей планеты.В сообщении сказано, что межпланетная станция провела съёмку лунной поверхности телевизионными камерами комплекса СТС-Л. На снимке запечатлён южный полярный кратер Зееман, расположенный на обратной стороне Луны (координаты кратера соответствуют 75° южной широты и 135° градусам западной долготы). В дополнение к этому «Луна-25» провела наблюдение с помощью приборов АДРОН-ЛР и ПмЛ, АРИЕС-Л. Проведено измерение потоков гамма-лучей и нейтронов от поверхности Луны, а также получены параметры окололунной космической плазмы и газопылевой экзосферы на окололунной орбите.
Что касается кратера Зеемана, то он представляет собой уникальный объект на лунной поверхности, который не видно с поверхности Земли и который вызывает большой интерес у исследователей. Высота окружающего его вала достигается 8 км над поверхностью относительно ровного дна. Полученные изображения дополнят имеющиеся в настоящее время данные об этом кратере."
https://3dnews.ru/1091654/megplanetnaya-stantsiya-luna25-sdelala-perviy-snimok-poverhnosti-sputnika-zemli
3DNews - Daily Digital Digest
«Луна-25» сделала первый снимок лунной поверхности — на фото попал кратер Зееман
Автоматическая межпланетная станция «Луна-25», которая несколько дней назад стартовала с космодрома Восточный, сделала первый снимок поверхности естественного спутника нашей планеты.
#featureselection
Lasso regularization path - примечательный метод.
https://www.youtube.com/watch?v=rxiORUw-nKs
Lasso regularization path - примечательный метод.
https://www.youtube.com/watch?v=rxiORUw-nKs
scikit-learn
Regularization path of L1- Logistic Regression
Train l1-penalized logistic regression models on a binary classification problem derived from the Iris dataset. The models are ordered from strongest regularized to least regularized. The 4 coeffic...
#fun #chess
Комментарий после того, как шахматный стример X отказался от матча:
"Чего вы пристали к X? Ну нет у него столько денег! Своих нет! Продать свои принципы за чужие 100к,-пожалуйста))а свои денежки не чужие))Владелец "заводов и пароходов", зарабатывающий от 500 к до 1 м в месяц, ушедший в бусти за прибылью, которая почему то не капает, продающий курс-как стать успешным,на который,может откликнуться только человек,котрому в палату дали Wi-Fi..."
Комментарий после того, как шахматный стример X отказался от матча:
"Чего вы пристали к X? Ну нет у него столько денег! Своих нет! Продать свои принципы за чужие 100к,-пожалуйста))а свои денежки не чужие))Владелец "заводов и пароходов", зарабатывающий от 500 к до 1 м в месяц, ушедший в бусти за прибылью, которая почему то не капает, продающий курс-как стать успешным,на который,может откликнуться только человек,котрому в палату дали Wi-Fi..."
#entropy #mutualinformation #prediction #finance #trading #causality
https://www.youtube.com/watch?v=tdWh7agQfTk
https://www.youtube.com/watch?v=tdWh7agQfTk
YouTube
Entropy, Mutual Information & Prediction
University of Illinois at Springfield Mathematics Colloquium page: https://www.uis.edu/math/colloquium
Title : Entropy, Mutual Information & Prediction
Speaker: Doug Hamilton
Date: April 13th, 2023
Location: University of Illinois Springfield (Mathematics…
Title : Entropy, Mutual Information & Prediction
Speaker: Doug Hamilton
Date: April 13th, 2023
Location: University of Illinois Springfield (Mathematics…
#featureselection #itmofs
Качественный и оригинальный материал. Впервые вижу оценку стабильности отборщиков признаков (с применением метрик Жаккара, Хэмминга), интерпретацию FS как задачи бинарной классификации (угадал FS признак, который был релевантным, или нет).
https://www.youtube.com/watch?v=fOjdGd-7o3s
Качественный и оригинальный материал. Впервые вижу оценку стабильности отборщиков признаков (с применением метрик Жаккара, Хэмминга), интерпретацию FS как задачи бинарной классификации (угадал FS признак, который был релевантным, или нет).
https://www.youtube.com/watch?v=fOjdGd-7o3s
YouTube
Вадим Глухов - Feature Selection
Вопросы и комментарии — в Telegram-чате сообщества NoML:
t.me/noml_community
Код и материалы всех мероприятий — в базе знаний:
noml.club
Анонсы новых мероприятий и другая полезная информация — в канале сообщества NoML:
t.me/noml_digest
t.me/noml_community
Код и материалы всех мероприятий — в базе знаний:
noml.club
Анонсы новых мероприятий и другая полезная информация — в канале сообщества NoML:
t.me/noml_digest
✍1
#featureselection
Хотелось бы свою либу потестить на этих датасетах.
Result Analysis of the NIPS 2003 Feature Selection Challenge
"The challenge demonstrated both that feature selection can be performed effectively and that eliminating meaningless features is not critical to
achieve good classification performance. By design, our datasets include many irrelevant “distracters” features, called “probes”. In contrast with redundant fea tures, which may not be needed to improve accuracy but carry information, those distracters are “pure noise”. It is surprising that some of the best entries use all the features. Still, there is always another entry close in performance, which uses only a small fraction of the original features.
The challenge outlined the power of filter methods. For many years, filter meth ods have dominated feature selection for computational reasons. It was understood that wrapper and embedded methods are more powerful, but too computationally expensive. Some of the top ranking entries use one or several filters as their only selection strategy. A filter as simple as the Pearson correlation coefficient proves to be very effective, even though it does not remove feature redundancy and there fore yields unnecessarily large feature subsets. Other entrants combined filters and embedded methods to further reduce the feature set and eliminate redundancies.
Another important outcome is that non-linear classifiers do not necessarily overfit. Several challenge datasets included a very large number of features (up to 100,000) and only a few hundred examples. Therefore, only methods that avoid overfitting can succeed in such adverse aspect ratios. Not surprisingly, the winning entries use as classifies either ensemble methods or strongly regularized classifiers. More surprisingly, non-linear classifiers often outperform linear classifiers. Hence, with adequate regularization, non-linear classifiers do not overfit the data, even when the number of features exceeds the number of examples by orders of magnitude.
The analysis of the challenge results revealed that hyperparameter selection may have played an important role in winning the challenge. Indeed, several groups were using the same classifier (e.g. an SVM) and reported significantly different results."
https://proceedings.neurips.cc/paper/2004/file/5e751896e527c862bf67251a474b3819-Paper.pdf
Хотелось бы свою либу потестить на этих датасетах.
Result Analysis of the NIPS 2003 Feature Selection Challenge
"The challenge demonstrated both that feature selection can be performed effectively and that eliminating meaningless features is not critical to
achieve good classification performance. By design, our datasets include many irrelevant “distracters” features, called “probes”. In contrast with redundant fea tures, which may not be needed to improve accuracy but carry information, those distracters are “pure noise”. It is surprising that some of the best entries use all the features. Still, there is always another entry close in performance, which uses only a small fraction of the original features.
The challenge outlined the power of filter methods. For many years, filter meth ods have dominated feature selection for computational reasons. It was understood that wrapper and embedded methods are more powerful, but too computationally expensive. Some of the top ranking entries use one or several filters as their only selection strategy. A filter as simple as the Pearson correlation coefficient proves to be very effective, even though it does not remove feature redundancy and there fore yields unnecessarily large feature subsets. Other entrants combined filters and embedded methods to further reduce the feature set and eliminate redundancies.
Another important outcome is that non-linear classifiers do not necessarily overfit. Several challenge datasets included a very large number of features (up to 100,000) and only a few hundred examples. Therefore, only methods that avoid overfitting can succeed in such adverse aspect ratios. Not surprisingly, the winning entries use as classifies either ensemble methods or strongly regularized classifiers. More surprisingly, non-linear classifiers often outperform linear classifiers. Hence, with adequate regularization, non-linear classifiers do not overfit the data, even when the number of features exceeds the number of examples by orders of magnitude.
The analysis of the challenge results revealed that hyperparameter selection may have played an important role in winning the challenge. Indeed, several groups were using the same classifier (e.g. an SVM) and reported significantly different results."
https://proceedings.neurips.cc/paper/2004/file/5e751896e527c862bf67251a474b3819-Paper.pdf