
Без «литературных негров» и чатГПТ — личный рассказ об инструментах, технологиях и приёмах, которые помогли мне не вылететь из аспирантуры и догнать коллег. Открытые данные, Python, R, RMarkdown, Quarto, git и немного ИИ в помощь исследователю.
Язык для статистической обработки данных
Без «литературных негров» и чатГПТ — личный рассказ об инструментах, технологиях и приёмах, которые помогли мне не вылететь из аспирантуры и догнать коллег. Открытые данные, Python, R, RMarkdown, Quarto, git и немного ИИ в помощь исследователю.
Обучение с подкреплением – это одна из ключевых концепций ИИ. Пришло время подкрепить коммивояжера и его задачу поиска кратчайшего пути Q-обучением. Табличный вариант Q-обучения является сравнительно простой и эффективной реализацией обучения с подкреплением.
Двухфакторная аппроксимация и ее реализация на платформе .net при помощи open source приложения RefressionFromExel.
Если читатель был достаточно внимателен, то, наверное, заметил, что в предыдущей заметке я обошел стороной непосредственно блок механизма внимания, точнее сказать, описание было дано методом черного ящика: вот тут такие-то входы, там такие-то выходы. Теперь, внимание, вопрос знатокам: Что лежит в черном ящике? В действительности, крайне важно понимать, что там внутри и логично посвятить данной теме отдельный текст. Понимание механизма внимания определяет ход дальнейших размышлений вплоть до самых передовых архитектур ИИ и поэтому сложно переоценить важность этой темы.
С тех пор, как мне исполнилось девять лет, в моей жизни было лишь два занятия, которые меня по-настоящему интересовали. К ним относились мой любимый спорт и учёба. Я совмещала игру в гольф за сборную команду России с учёбой на отличные оценки в инженерном классе Московской школы. По окончанию школы, моим следующим шагом было поступление в университет США, где программа student-athlete очень сильно развита. Тебе дают возможность получать высшее образование, а также быть частью спортивной команды, которая соревнуется с командами других университетов в течении всего учебного года. И вот, прошло уже три с половиной года с тех пор, как я стала частью этой команды, а значит, остался один семестр до того, как я надену мантию. И по случаю завершения моей карьеры, в моей голове возник вопрос, а есть ли что-то, что связывает студенческий гольф и знания, которые я приобрела.
Вся информация о нас закодирована в ДНК. Но как она реализуется? Как при помощи анализа данных секвенирования ученые находят количественные соотношения между группами генов? Что такое транскриптомика? Давайте разберемся, как находят закономерности в экспрессии генов и построим красочные визуализации.
Заголовок отсылает к знаменитой работе Attention Is All You Need, которая фактически перевернула мир ИИ, сделав его другим, не таким, как прежде. В этой научной публикации описаны принципы реализации архитектуры трансформеров, но в ее названии упоминается именно механизм внимания. Долгое время я пытался ответить себе на один простой вопрос: где все-таки заканчивается ML и начинается AI для задачи коммивояжера и вообще? Мне кажется, ответ пролегает где-то рядом с проростанием механизма внимания, который в 2014 году был предложен Dzmitry Bahdanau (извиняюсь, не знаю, как правильно писать по-русски его фамилию). Безусловно, были работы Хопфилда, получившего в 2024 Нобелевскую премию по физике, в том числе, за свою архитектуру нейронной сети, которая способна решать задачу коммивояжера. Были и другие работы, но, в случае разбора еще одного алгоритма из прошлого века, боюсь, нарваться на обратную связь в стиле: “дядь, не мороси, давай уже там про свой ИИ пиши, а не вот эти свои нафталиновые алгоритмы описывай”, поэтому про нейронную сеть Хопфилда готов написать, но только если будет ощутимая обратная связь.
Механизм внимания был предложен как способ улучшить seq-to-seq модели, применяемых для перевода текста с одного языка на другой. Кто бы мог подумать, но токены слов можно заменить координатами городов и попробовать решить задачу TSP той же моделью. В конце концов человек тоже использует одно и тоже серое вещество для решения разных задач. Первые попытки реализации этой идеи подразумевали наличие оптимального эталонного маршрута в виде, например, посчитанного решения Concorde. Но позже появилась идея использования техники обучения с подкреплением или Reinforcement learning. Таким образом, появилась нейронная сеть Pointer Networks, о которой собственно я и хотел сегодня поговорить.
Как разработчик я ежедневно сталкиваюсь с большим количеством данных, которые нужны для принятия каких‑либо решений. Логи, конфиги, данные профилирования, аналитические выгрузки из БД и даже сведения о том, когда был написан данный код — это всё данные. Иногда бывает достаточно посмотреть глазами, и картина станет ясной. Но чем больше данных, тем меньше помогает «метод пристального взгляда», и тем нужнее какие‑то инструменты анализа.
Иногда можно собрать нужную информацию, просто скомбинировав несколько линуксовых команд пайпом (cat data.log | grep … | awk … | sort | uniq -c | sort -r | head
), иногда пригодятся электронные таблицы, иногда проще написать небольшую программку для анализа данных. Но когда я освоился с языком R и его экосистемой, то всё это стало ненужным.
В прошлой заметке я коснулся принципа работы некоторых популярных алгоритмов неточного решения задачи коммивояжера (TSP). Материал получился объемным и сунуть туда еще одно описание алгоритма было бы чрезмерностью. Тем не менее, считаю важным рассказать еще об одном решении, которое носит название - Алгоритм Кристофидеса-Сердюкова. Причины, по которым мне хочется об этом поговорить следующие:
1. Речь идет про алгоритм, который часто используется в качестве бенчмарка при оценке эффективности поиска решений сетками с использованием трансформеров, например в работе TranSPormer: A Transformer Network for the Travelling Salesman Problem и не только
2. Несмотря на то, что алгоритм назван в честь русского математика в русскоязычном сегменте интернета не так много публикаций на эту тему, можно отметить статью Сердюкова от 1978 и упоминание в Википедии
3. Наконец, алгоритм просто красив. Понимаю, что математическая эстетика – это нечто скрытое в глубине вещей и недоступное суетливому взору, но верю, что и такая категория красоты найдет своего читателя.
Случается, что мои знакомые и друзья внезапно возбуждаются на тему ИИ и начинают тревожно звонить с вопросами: ну что там с ИИ? Уже случилась революция? Пора всех увольнять и срочно заменять чат-ботами?
Уволить конечно можно, особенно бездельников и когда на заводах/пароходах работать некому, но касаемо реальных бизнес-кейсов с ИИ все не то чтобы прям заладилось. Бизнес конечно по-прежнему возбуждается и визионирует на конференциях, но реальные проекты пока драйвово буксуют, а ванильный AI-вайб начинает попахивать болотной тиной.
Надо с этим что-то делать и срочно насыпать каких-нибудь корповых бизнес-кейсов и потом к этим кейсам прикрутить какую-нибудь новую ИИ-штуку чтобы вернуть радугу приунывшим единорогам.
Это любительский перевод статьи «Running your R Script in Docker», опубликованной на сайте STATWORX. Оригинал статьи объясняет, как настроить и запустить R-скрипт внутри Docker-контейнера, делая код воспроизводимым, изолированным и готовым к автоматическому выполнению.
Перевод предназначен для тех, кто интересуется интеграцией R и Docker. В статье освещаются основные этапы создания Docker-образа с R-скриптом, его настройка и запуск.
Привет, Хабр!
В этой статье я расскажу вам о том, как можно анализировать текстовые данные в R, используя библиотеки quanteda и tm.
В прошлой заметке я поднял тему ванильно-радужных перспектив использования искусственного интеллекта для решения оптимизационных задач, в частности, для решения хорошо изученной задачи коммивояжера, она же TSP (Travelling Salesman Problem). Там же был дан старт разбору некоторых классических алгоритмов для решения этой задачи в рамках чего я представил подход, основанный на MIP (Mixed Integer Programming). Считаю важным завершить такой разбор для лучшего понимания отличий в работе нейронных сетей.
Способны ли имеющиеся архитекутры нейронных сетей составить конкуренцию классическим методам оптимизации в решении хорошо изученных задач таких как проблема коммивояжера? Я решил попробовать ответить на этот вопрос и опубликовать свои наработки.
Разбираемся в устройстве Dash и Shiny и почему оба фреймворка отлично подходят для решения единственной задачи — создать функциональный и красивый дашборд
Разработка R-пакетов - отличный способ улучшить навыки программирования на R и глубже погрузиться в изучение языка. Этот курс шаг за шагом проведет вас через процесс создания собственных пакетов. Первый урок позволит вам написать свой первый пакет. Более того, вы сможете внести свой вклад в развитие языка, делясь своими наработками в виде R-пакетов.
Прошло 2 месяца с окончания чемпионата Европы по футболу, а значит самое время подвести итоги.
Краткий дискурс в начало.
Перед стартом ЧЕ, мне стало интересно проверить точность машинного обучения при прогнозе на столь непрогнозируемую сферу как футбол, а заодно узнать можно ли обыграть букмекера, написав пару строчек кода.
Был проанализирован датасет из 3000 релевантных матчей, не проанализировано все остальное (рейтинг, форма и т. п.).
Условия с "букмекером": 51 матч сыгран турнире, на каждый совершена условная ставка в размере 100 долларов на основании прогноза машины + 2 раза по 100 долларов мы поставили на чемпиона - до начала турнира и после окончания групповой стадии. Оба раза триумфатором была выбрана Испания.
Виртуальный банк составил 5 300 долларов, в конце посмотрим как он изменился
Итак, с помощью чата GPT 4.0 я перебрал несколько вариантов базового алгоритма Random forest на питоне и на R. Результаты оказались выше на R, поэтому его и принял за основу. Код с прогнозом описан в прошлых статьях, здесь я подвожу итоги.
Идея: в медицинском учреждении выписные эпикризы (информация из истории болезни) пациентов хранятся в общегоспитальной локальной сети.
Необходимо сформировать базу данных пациентов с перенесенным заболеванием COVID-19 (один выписной эпикриз ДО заболевания COVID-19, один выписной эпикриз во время заболевания и один ПОСЛЕ заболевания).
Атрибуция — определение авторства — имеет много применений как в науке, так и в приземленных задачах, например, в судебной практике. Ниже мы будем говорить о текстовой атрибуции, и иногда от того, кто автор текста, зависит судьба крупной суммы денег, иногда — карьера или свобода человека, а иногда людям просто интересно, кто же написал то или иное произведение. Так, с точки зрения науки о литературе, строго говоря, всё равно, является автором «Тихого Дона» Михаил Шолохов или Фёдор Крюков, но общественность этот вопрос волновать не перестанет, наверное, уже никогда.
Атрибуция может выглядеть по-разному. Надежнее всего такая, которая основана на документах. Если бухгалтерия в своей строгой отчетности зафиксировала выплату денег за определенный текст некоторому лицу, очень высока вероятность, что получатель денег и есть автор этого текста. Вероятность этого выше, чем при любом другом способе выяснить, кто автор.
Но у нас не всегда есть надежные документы. И даже чаще их нет. Тогда единственным способом докопаться до истины будет сам текст, и люди верят, что, опираясь только на содержащиеся в нем косвенные свидетельства, можно установить, кто его написал. Хотя вообще-то это не более чем самонадеянная гипотеза, но мифы эпохи модерна слишком сильны.