Pull to refresh
3
0

IT, statistics & guitars

Send message

Определение доминирующих цветов: Python и метод k-средних

Reading time2 min
Views38K

Assorium

На Хабре публиковалось несколько статей с алгоритмами и скриптами для выбора доминирующих цветов на изображении: 1, 2, 3. В комментариях к тем статьям можно найти ссылки ещё на десяток подобных программ и сервисов. Но нет предела совершенству — и почему бы не рассмотреть способ, который кажется самым оптимальным? Речь идёт об использовании кластеризации методом k-средних (k-means).
Читать дальше →
Total votes 59: ↑54 and ↓5+49
Comments17

LLMClone: как клонировать себя в Telegram

Reading time8 min
Views17K

У меня, как и у многих, довольно много чатов в телеграмме. Иногда просто нет времени (а иногда и не хочется) отвечать на некоторые сообщения. Именно так возникла идея создания виртуального клона. В статье рассматривается простая идея, состоящая в том, чтобы зафайнтюнить языковую модель на личных сообщениях, выгруженных из Telegram-чатов. Возможно, в дальнейшем такой клон сможет общаться за вас

Читать далее
Total votes 33: ↑32 and ↓1+31
Comments34

Краткий обзор техник векторизации в NLP

Level of difficultyEasy
Reading time21 min
Views9.3K

Как переводчик-редактор, я интересуюсь темой NLP и автоматизации рутины бюро переводов. Изучая вопрос того, как смысл слов превращается в векторы, наткнулся на эту обзорную статью. Статья мне показалась изложенной доступно, поэтому я перевел ее для удобства других коллег. Работоспособность большей части кода проверял, вроде работает (см. Jupiter Notebook). Надеюсь, будет полезно.

===

Технологии NLP — Natural Language Processing, обработки естественного языка — позволяют компьютерам обрабатывать человеческий язык, понимать его значение и контекст, а также связанные с ним эмоциональную окраску и намерения, и далее, использовать эти данные для создания чего-то нового.

Как сделать слова понятными для компьютеров? Используется векторизация. Рассмотрим несколько техник такой векторизации.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments1

Жирный гитарный дисторшн ProCo RAT

Level of difficultyEasy
Reading time8 min
Views6.6K

Привет, Хабр! Знаете, какую педаль перегруза использовали Джеймс Хетфилд и Кирк Хэмметт в дебютном альбоме Металлики «Kill `Em All»? Пользовались ею и Дэвид Гилмор, и Крист Новоселич из группы Нирвана, да и сам Курт Кобейн. И многие другие.

Сегодня мы изучим и соберём педаль, которая успешно продаётся в течение 46 лет. Не только по той причине, что через неё играли знаменитости, но и потому, что она действительно создаёт настоящий классический дисторшн.
И всё-таки, чем дистршн отличается от овердрайва?
Total votes 46: ↑45 and ↓1+44
Comments6

Как сделать вашего телеграм-бота лучше? Конечно, добавить ему аналитику

Level of difficultyEasy
Reading time25 min
Views12K

В наше время телеграм-боты стали незаменимыми инструментами для множества задач: от автоматизации рутиных операций до обеспечения высококачественного обслуживания клиентов. Успешное использование телеграм-ботов требует не только технической грамотности, но и понимания того, как пользователи взаимодействуют с вашим ботом и как можно улучшить этот процесс.

Аналитика для телеграм-ботов представляет собой ключевой инструмент для понимания того, как пользователи взаимодействуют с вашим ботом, какие запросы они делают, какие функции бота наиболее популярны, и какие моменты требуют оптимизации. Эти данные обеспечивают ценную информацию, которая позволяет вам принимать информированные решения и совершенствовать бота с течением времени.

В этой статье мы рассмотрим как реализовать аналитику для телеграм-бота.

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments2

9 архитектурных антипаттернов при разработке телеграм-ботов на Python

Level of difficultyEasy
Reading time17 min
Views15K

Привет, Хабр! Если вас заинтересовал заголовок этой статьи, значит, вас интересует созданием телеграм-ботов, и вы стремитесь к совершенству в этом. Разработка телеграм-ботов требует не только креативности, но и правильной архитектуры. В этой статье мы рассмотрим 9 архитектурных антипаттернов, которые могут стать серьезными преградами на вашем пути к созданию бота.

Для многих начинающих разработчиков создание Телеграм бота может показаться достаточно простой задачей. Однако опытные знают, что успех в этой области зависит от многих факторов, включая архитектуру вашего приложения. Архитектурные решения могут определить, насколько ваш бот будет масштабируемым, надежным и легко поддерживаемым в будущем.

Читать далее...
Total votes 21: ↑14 and ↓7+7
Comments6

Как погрешность превращается в грех

Reading time7 min
Views30K

Одна городская легенда гласит, что создатель сахарных пакетиков-палочек повесился, узнав, что потребители не разламывают их пополам над чашкой, а аккуратно отрывают кончик. Это, разумеется, не так, но если следовать такой логике, то один британский любитель пива "Гиннесс" по имени Уильям Госсет должен был не просто повеситься, но и своим вращением в гробу уже пробурить Землю до самого центра. А все потому, что его знаковое изобретение, опубликованное под псевдонимом Стьюдент, уже десятки лет используют катастрофически неправильно.


image


Рисунок выше приведен из книги С. Гланц. Медико-биологическая статистика. Пер. с англ. — М., Практика, 1998. — 459 с. Мне неизвестно, проверял ли кто-нибудь на статистические ошибки расчеты для этой диаграммы. Однако и ряд современных статей по теме, и мой собственный опыт говорят о том, что t-критерий Стьюдента остается самым известным, и оттого — самым популярным в применении, по поводу и без.

Читать дальше →
Total votes 78: ↑71 and ↓7+64
Comments33

Вход в любительскую астрономию

Reading time5 min
Views14K

После начала работы космической обсерватории «Джеймса Уэбба» астрофотографии вошли в тренды. Самое крутое что сейчас можно запечатлеть находится в космосе. История помнит только два случая, когда умные парни становились популярными. Первый - изобретение кубика Рубика в 1973 году сделало королями дискотеки знатоков теории групп. Второй - астрономы любители покоряют социальные сети прямо сейчас.

Но если вам в детстве не дарили телескопы на каждый день рождения, а заглянуть в тайны космоса хочется, придется выбрать стартовый набор астрофотографа с минимальным порогом вхождения. Рассмотрим четыре варианта начальных наборов юного (по уму) астронома.

Читать далее
Total votes 41: ↑39 and ↓2+37
Comments64

Алгоритм Ахо-Корасик

Reading time8 min
Views97K

Вступление


В посте я постарался избежать сложных дефиниций и строгих матетематических доказательств, а некоторые вещи вообще понятны интуитивно. Алгоритм удобно разбивается на взаимосвязные части, поэтому и уловить принцип его работы не должно составлять труда.

Начальное описание


Алгоритм Ахо-Корасик реализует эффективный поиск всех вхождений всех строк-образцов в заданную строку. Был разработан в 1975 году Альфредом Ахо и Маргарет Корасик.
Опишем формально условие задачи. На вход поступают несколько строк pattern[i] и строка s. Наша задача — найти все возможные вхождения строк pattern[i] в s.

Суть алгоритма заключена в использование структуры данных — бора и построения по нему конечного детерминированного автомата. Важно помнить, что задача поиска подстроки в строки тривиально реализуется за квадратичное время, поэтому для эффективной работы важно, чтоб все части Ахо-Корасика ассимптотически не превосходили линию относительно длинны строк. Мы вернемся к оценке сложности в конце, а пока поближе посмотрим на составляющие алгоритма.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments16

Мое первое серебро на Kaggle или как стабилизировать ML модель и подпрыгнуть на 700 мест вверх

Reading time6 min
Views9.5K

Привет, чемпион!

Летом прошел чемпионат на Kaggle - "American Express - Default Prediction", требовалось предсказывать - выйдет ли пользователь в дефолт или нет. Табличное соревнование в 5К участников с очень плотным лидербордом.

Вот ведь парадокс, все умеют решать табличные соревнования, все знают, что бустинги "стреляют" точнее всех, но почему-то все равно не все могут забраться в топ лидерборда. В чем проблема?! Мы с командой все-таки смогли забрать серебро🥈 и сейчас я расскажу, как можно было выиграть медаль в этом чемпионате.

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments5

Введение в библиотеку Transformers и платформу Hugging Face

Reading time17 min
Views48K

Библиотека Transformers предоставляет доступ к огромному кол-ву современных предобученных моделей глубокого обучения. В основном основаных на архитектуре трансформеров. Модели решают весьма разнообразный спектр задач: NLP, CV, Audio, Multimodal, Reinforcement Learning, Time Series.

В этой статье пройдемся по основным ее возможностям и попробуем их на практике.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments12

Методы обнаружения дрейфа данных. Часть 1: Многомерные методы обнаружения дрейфа табличных данных

Reading time6 min
Views1.6K

Это первая статья из серии, в которой мы исследуем задачу обнаружения дрейфа данных. Мы разбираем не только, почему это очень важная часть мониторинга моделей, но также обсуждаем методы и подходы, которые следует взять на заметку. В первой части этой серии мы обсуждаем дрейф в контексте табличных данных и описываем одномерные и многомерные методы решения этой задачи. В следующих постах мы рассмотрим неструктурированные данные, такие как изображения и документы, и обсудим, как мы можем построить системы обнаружения дрейфа в этих более сложных данных.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Регрессионный анализ в DataScience. Часть 2. Преобразование Бокса-Кокса. Проверка тренда и случайности

Reading time51 min
Views9.4K

Обзор построения и анализа линейной регрессионной модели с использованием преобразования Бокса-Кокса

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments4

Прогнозирование качества шампанского с помощью Machine Learning. Опыт Bollinger

Reading time6 min
Views1.9K

Привет! Предлагаем немного отвлечься от сложных актуальных тем и поговорить о... шампанском. Точнее, о том, как его совершенствуют с помощью Mashine Learning.

Французский производитель шампанских вин Bollinger использует модель машинного обучения, чтобы предсказать годы хорошего урожая и противостоять проблемам изменения климата.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments1

Генерация признаков из временных рядов

Reading time8 min
Views11K

Заглянуть в будущее

Когда мы хотим рассчитать количество звонков в колл-центр через час, поставить в пятничную смену достаточно курьеров или предсказать потребление электроэнергии небольшим городком через 5 лет, мы обращаемся к теме обработки временных рядов. На тему обработки timeseries (временной ряд, англ.) написано множество статей и создано несчетное количество часов видео. Но попробуйте задать поисковой системе вопрос: как работать с временными рядами. Уверен, вы закопаетесь в многообразии ссылок, похожих по смыслу и содержанию. Однако, ни одна из них не ответит на вопрос полностью. Авторы выдают два или три метода обработки как панацею от всех проблем в работе со временем.

Мы попробуем собрать в одной статье все классические и современные методы обработки даты и времени.

Разберем случай, когда в нашем распоряжении имеются только даты с количеством завершенных событий. В ежедневных задачах прогнозирования мы можем подгрузить дополнительные данные или иметь в своем распоряжении сразу несколько показателей для временного периода. Мы же будем извлекать максимум данных из даты и единичного значения целевого события.

TL:DR

Основная цель статьи – создание новых признаков из временных периодов для решения бизнес-задач. Информация будет полезна новичкам и специалистам, которые редко работают со временными рядами. К тексту прилагается заметка на kaggle. Вы можете изучать статью и одновременно выполнять код. Мы не будем строить графики и рассматривать особенности временных рядов.

Ничего личного – просто бизнес

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

Подбор гиперпараметров ML-модели с помощью HYPEROPT

Reading time5 min
Views20K

В машинном обучении гиперпараметрами называют параметры модели, значения которых устанавливаются перед запуском процесса её обучения. Ими могут быть, как параметры самого алгоритма, например, глубина дерева в random forest, число соседей в knn, веса нейронов в нейронный сетях, так и способы обработки признаков, пропусков и т.д. Они используются для управления процессом обучения, поэтому подбор оптимальных гиперпараметров – очень важный этап в построении ML-моделей, позволяющий повысить точность, а также бороться с переобучением. На сегодняшний день существуют несколько популярных подходов к решению задачи подбора, например:

1.Поиск по решётке. В этом способе значения гиперпараметров задаются вручную, затем выполняется их полный перебор. Популярной реализацией этого метода является Grid Search из sklearn. Несмотря на свою простоту этот метод имеет и серьёзные недостатки:

Очень медленный т.к. надо перебрать все комбинации всех параметров. Притом перебор будет продолжаться даже при заведомо неудачных комбинациях.

Часто в целях экономии времени приходится укрупнять шаг перебора, что может привести к тому, что оптимальное значение параметра не будет найдено. Например, если задан диапазон значений от 100 до 1000 с шагом 100 (примером такого параметра может быть количество деревьев в случайном лесе, или градиентном бустинге), а оптимум находится около 550, то GridSearch его не найдёт.

2.Случайный поиск. Здесь параметры берутся случайным образом из выборки с указанным распределением. В sklearn он этот метод реализован как Randomized Search. В большинстве случаев он быстрее GridSearch, к тому же значения параметров не ограничены сеткой. Однако, даже это не всегда позволяет найти оптимум и не защищает от перебора заведомо неудачных комбинаций.

3.Байесовская оптимизация. Здесь значения гиперпараметров в текущей итерации выбираются с учётом результатов на предыдущем шаге. Основная идея алгоритма заключается в следующем – на каждой итерации подбора находится компромисс между исследованием регионов с самыми удачными из найденных комбинаций гиперпараметров и исследованием регионов с большой неопределённостью (где могут находиться ещё более удачные комбинации). Это позволяет во многих случаях найти лучшие значения параметров модели за меньшее количество времени.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments6

Экзибит, прокачай мой трансформер или Основные идеи по улучшению модели трансформера с 2018 по 2020 год (часть 2)

Reading time10 min
Views2.6K

Представляю в блоге ЛАНИТ вторую часть моего пересказа статьи “A Survey of Transformers”, в которой приведены основные модификации архитектуры стандартного трансформера, придуманные за два года после ее появления. В первой части мы кратко вспомнили, из каких основных элементов и принципов состоит трансформер, и прошлись по различным схемам, меняющим или дополняющим механизм многоголового внимания. Целью большинства этих схем являлось преодоление квадратичной зависимости сложности вычислений от длины последовательности токенов, подающихся на вход. В этой части мы коснемся модификаций других элементов архитектуры, которые уже направлены или на улучшение способности сети извлекать больше информации из токенов, или применяются на большую длину последовательности, разделяя ее на сегменты. 

Читать далее
Total votes 31: ↑30 and ↓1+29
Comments3

Экзибит, прокачай мой трансформер или Основные идеи по улучшению модели трансформера с 2018 по 2020 год (часть 1)

Reading time14 min
Views2.6K

В июне 2021 года вышла статья “A Survey of Transformers” - обзор различных нововведений, сделанных с применением архитектуры “трансформер” после ее появления в материале “Attention is all you need”.

Этот материал особенно актуален сейчас. Приведенные подходы и архитектуры начинают использоваться сообществом с большим опозданием и понимание их работы становится востребованным лишь сейчас, когда все уже понимают сильные и слабые стороны обычного трансформера и хотят его улучшить. Многие архитектуры, которые появляются сейчас, используют наработки, родившееся в первые три года после появления трансформеров.

Представляю в блоге ЛАНИТ обзор статьи “A Survey of Transformers”.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments2

Как работает Stable Diffusion: объяснение в картинках

Reading time9 min
Views90K
Генерация изображений при помощи ИИ — одна из самых новых возможностей искусственного интеллекта, поражающая людей (в том числе и меня). Способность создания потрясающих изображений на основании текстовых описаний похожа на магию; компьютер стал ближе к тому, как творит искусство человек. Выпуск Stable Diffusion стал важной вехой в этом развитии, поскольку высокопроизводительная модель оказалась доступной широкой публике (производительная с точки зрения качества изображения, скорости и относительно низких требований к ресурсам и памяти).

Поэкспериментировав в генерацией изображений, вы можете задаться вопросом, как же она работает.

В этой статье я вкратце расскажу, как функционирует Stable Diffusion.

Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments12
1
23 ...

Information

Rating
Does not participate
Registered
Activity

Specialization

Specialist
Machine learning
Neural networks
Natural language processing
Computer Science