Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. А в прошлом я был профессиональным игроком в покер. Сейчас я решил сделать на Unity пример проекта с покером, который выложу в опенсорс, когда я его доделаю. А пока хочется посмотреть на интересную задачку с определением сильнейшей комбинации в техасском холдеме. Разберём хеш-функции, битовые операции, поиск подмножеств определённой длинны из множества, биномиальный коэффициент и другое. Если вам интересна эта тема, то добро пожаловать под кат!
Новости
К вопросу о математических способностях студентов или как учить переполненный мозг
Я люблю давать простые задачки студентам на лекции. Во-первых, понятно, скольких мы потеряли, во-вторых, это переключение из режима потребления информации в режим выдачи результатов, в третьих — возможность проявить себя для шустрых. Сплошные плюсы!
Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.
Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все).
Это было бы смешно, если бы от способности быстро в уме прикинуть результат не зависела способность быстрее создавать сложные алгоритмы.
И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека.
Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!
Прощай, Data Science
Это по большей мере личный пост, а не какое-то глубокое исследование. Если вам нужны какие-то выводы, то здесь вы их не найдёте. Откровенно говоря, я даже не знаю, кто его целевая аудитория (возможно «дата-саентисты, которые себя ненавидят»?).
Последние несколько лет я был дата-саентистом, но в 2022 году получил новую должность дата-инженера, и пока я ею вполне доволен.
Я по-прежнему работаю вместе с «дата-саентистами» и немного продолжаю заниматься этой сферой, но вся моя работа по «data science» заключается в руководстве и консультировании по чужой работе. Я в большей степени занимаюсь реализацией data science (MLOps) и дата-инжинирингом.
Основная причина разочарования в data science заключалась в том, что работа казалась несущественной, во многих смыслах этого слова «неважной»:
- Работа — это непрекращающийся поток разработки, продукта и офисной политики, поэтому часто так бывает, что работа хороша настолько, насколько хорошо самое слабое звено в цепи.
- Никто не знал, в чём заключается разница между плохой и хорошей работой в data science, да никого это и не волновало. Это значит, что вы можете быть абсолютным неудачником или гением в ней, но в любом случае получите примерно одинаковое признание.
- Работа часто приносила очень малую пользу бизнесу (часто компенсируя некомпетентность выше по цепочке управления).
- Когда польза от работы превышала затраты на оплату труда, часто это не давало внутренней отдачи (например, настройка параметра, чтобы бизнес зарабатывал больше денег).
Прогнозируем результаты Чемпионата мира 2022 FIFA простой моделью на Python
Многие люди (включая меня) называют футбол «непредсказуемой игрой», потому что в футбольном матче есть множество факторов, влияющих на окончательный счёт. И это верно… в определённой степени.
Сложно спрогнозировать окончательный счёт или победителя матча, однако при прогнозировании победителя в соревнованиях всё не так. За последние пять лет «Бавария» выиграла все Бундеслиги, а «Манчестер Сити» выиграл 4 Премьер-лиги.
Совпадение? Не думаю.
На самом деле, в середине сезона 20-21 годов я создал модель для прогнозирования победителя Премьер-лиги, Чемпионата Испании, Чемпионата Италии и Бундеслиги, и она успешно спрогнозировала всех победителей.
Прогноз сделать было не так сложно, потому что на тот момент было сыграно уже 19 матчей. Теперь я запущу ту же модель для прогнозирования результатов Чемпионата мира 2022.
Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?
Вы можете сказать, что один факт выбивается из этого ряда в заголовке, потому что он не так очевиден, как остальные. Еще лет 10-15 назад я бы никогда не подумал, что тут могут быть возражения, а сейчас уже и не удивляюсь, что приходится объяснять простые истины: дело в том, что планеты обладают очень большой массой, поэтому гравитация стремится придать им форму шара. Вот и все! Хотел бы на этом закончить статью и поблагодарить за внимание.
Игра Жизнь и Julia
В одной из своих прошлых статей по эволюции случайной конфигурации в игре жизнь я выдвинул гипотезу: Первая гипотеза касается окончания 'движухи' - в широком диапазоне изначальных плотностей p от 0.1 до 0.7, после окончания 'движухи' 'пепел' имеет одну и ту же плотность, около 0.27
Рассчитывая фрактал Римана, я был вынужден пересесть с Python на Julia из-за скорости, и не пожалел об этом. Однако теперь я мог на Julia быстро обрабатывать огромные конфигурации, например, 10k x 10k, и я решил повторить численные эксперименты на новом уровне. Как всегда, вас ждет и видео.
Задача про рыцарей и лжецов
Задачи про рыцарей и лжецов - это классические математические задачи на комбинаторику.
Жили-были на одном небольшом островке в океане два племени — рыцари и лжецы. Рыцари были настолько горды и благородны, что не могли говорить ничего, кроме правды, правды и только правды. А лжецы не различали истину и вымысел.
Проецирование вершин графа в векторное пространство. Часть 2. Марковская цепь и Word2Vec
И снова здравствуйте! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — вторая часть небольшого цикла, посвящённого алгоритмам вложений вершин графа в векторное пространство. Сегодня рассмотрим главную идею алгоритмов, основанных на случайных блужданиях. Перед прочтением рекомендуем прочитать первую часть.
Фракталы, порожденные zeta-функцией
В своей последней статье я попытался создать фрактал, порожденный простыми числами. Но он меня не очень устроил эстетически. Поэтому я решил воспользоваться zeta функцией Римана для создания фракталов.
Будет много картинок и мало формул!
Пушкин – это нейросеть? Учимся распознавать сгенерированный текст
С появлением в 2020 году нейронной сети GPT3 и других архитектур – трансформеров, генерируемые тексты стали невероятно правдоподобными. Такими правдоподобными, что отдельно взятый текст, не несущий большой смысловой нагрузки, стало сложно отличить от написанного человеком. В статье мы разберем подход к определению сгенерированных текстов. И заодно выясним, является ли, по мнению алгоритма, Пушкин (и другие деятели искусства) искусственной нейронной сетью.
Суть подхода
Почему умножение матриц такое
Наверное, каждый задавался вопросом, почему умножение матриц такое. В этой статье мы разберём из каких соображений оно вводится именно так.
Посчитайте сумму n-го ряда пирамиды нечетных чисел
Эта задача преследовала меня на двух интервью подряд, и я решил ее!
Логистическая регрессия на Python
Логистическая регрессия — это алгоритм классификации в машинном обучении для прогнозирования вероятности категориально зависимой переменной. В логистической регрессии зависимые переменные — это двоичные (бинарные) переменные, содержащие 1 (да, успех, и так далее) или 0 — нет, неудача, и так далее. Другими словами, логистическая регрессия прогнозирует P(Y=1) как функцию от X. Подробный и ясный пример — к старту нашего флагманского курса по Data Science.
Занимательная задачка по мотивам теоремы Гёделя о неполноте
Альберт Эйнштейн награждает Гёделя (второй справа) наградой, названной в честь него самого
В 1931 году австрийский логик, математик и философ математики Курт Гёдель опубликовал свою теорему о неполноте. Эта работа считается одним из величайших интеллектуальных достижений современности.
В теореме утверждается, что в любой разумной математической системе всегда будут существовать истинные утверждения, которые невозможно доказать. Это утверждение шокировало математическую общественность, в которой до того преобладал неистребимый оптимизм, касающийся мощи и всеобъемлющей природы математики. Предполагалось, что математика «полна» — то есть, любое утверждение можно доказать или опровергнуть. 25-летний Гёдель показал, что это не так, составив корректное утверждение, доказать которое невозможно. Таким образом он продемонстрировал ограничения математики.
Теорема о неполноте преобразовала исследования основ математики и стала важным фактором развития информатики, поскольку из неё следует, что у возможностей всех формализованных систем, в том числе и языков программирования, есть свои ограничения.
Истории
Проецирование вершин графа в векторное пространство. Часть 1. Разложение матрицы смежности
Привет, Хабр! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — первая часть небольшого цикла, посвящённого алгоритмам вложения вершин графа в векторное пространство. Сегодня расскажу об алгоритмах, основанных на матричных факторизациях. В качестве примера в статье используется занимательная задача поиска сообществ в графе. Что же, приступим!
Ambrosia – Open Source-библиотека для работы с A/B-тестами
Всем привет! На связи Аслан Байрамкулов и Артем Хакимов из Big Data МТС. Мы вывели в OpenSource первую версию библиотеки под названием Ambrosia. Ее назначение – работа с A/B тестами и экспериментами. В этой статье мы расскажем о функционале библиотеки и напомним о ключевых этапах А/Б-тестирования.
Гипотеза Эскобара
На прошлом витке чего-о?
Изобрёл плоскостные числа — у нас они называются комплексными. Выдвинул гипотезу о знаке, что числа могут быть не только положительными и отрицательными, но и ещё, подобно тому как можно двигаться на плоскости не только вперёд и назад, но и вправо и влево — числа тоже могут быть расположены в других направлениях. В конце своей жизни Эскобар разочаровался в математике, да и вообще во всём. И в нашем витке времени он стал музыкантом. И никто бы не узнал, что он в душе математик, если бы на одном из концертов у него не взяли интервью, где в ответ на предложение сравнить два варианта он категорически выдал свою гипотезу за аксиому: двух вариантов недостаточно.
Комплексные числа были открыты без участия Эскобара, но это не значит, что мы должны отказываться от его наследия. Все знают, что 2+2=4, 2×2=4, 2^2=4. Только, при возведении в степень существует разница в порядке аргументов. Что если применить гипотезу Эскобара на нашем убеждении, что у порядка при возведении в степень может быть только два варианта? Ну а вдруг — больше?
Об архитектуре математики и информатики
Некоторые научно-популярные статьи и книги интересны не столько тем, что из них узнаёшь что-то новое, а тем, что наводят на интересные размышления. К таким книгам относится, как мне кажется, книга «Архитектура математики. Мыслим структурами».
Об этой, интересной на мой взгляд, книге, а также о том, какое она имеет отношение к программированию и информатике, я хочу вам рассказать в этой статье.
Исследователи показывают, что кубиты могут быть такими же безопасными, как и биты
Новый результат показывает, что квантовая информация теоретически может быть защищена от ошибок точно так же, как и классическая информация.
О том, как алгоритм Дейкстры реализовывал и некоторых его применениях
Приветствую Вас, хабровчане!
В статье поговорим о всем известном алгоритме Дейкстры для поиска кратчайших путей между вершинами взвешенного графа, а также о том, как с помощью данного алгоритма найти оптимальный путь между двумя заданными точками на поверхности и обойти препятствия в лабиринте.
Вклад авторов
-
alizar 1716.0 -
MagisterLudi 1406.4 -
haqreu 1373.0 -
varagian 1161.0 -
Sirion 1085.0 -
Dmytro_Kikot 1019.0 -
mkot 980.0 -
maisvendoo 941.0 -
OsipovRoman 937.4 -
mephistopheies 812.0