Telegram Web Link
Объясните, как работает Transformer?

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

Его архитектура состоит из двух основных блоков:

▪️Энкодер (Encoder) (слева).
Этот блок получает входные данные (инпут) и создаёт их представления в векторном пространстве.
▪️Декодер (Decoder) (справа). 
Этот блок использует представления, полученные от энкодера, а также другие входные данные, чтобы сгенерировать последовательность. 

Основная фишка архитектуры Transformer заключается в наличии специального слоя — attention. Этот слой как бы указывает модели обращать особое внимание на определённые слова в последовательности. Это позволяет более эффективно обрабатывать контекст и улавливать сложные зависимости в тексте.

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

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

#глубокое_обучение
#NLP
Что такое бутстреп (bootstrap) в контексте Data Science?

Это метод для оценки стандартных отклонений и нахождения доверительных интервалов статистических функционалов. Он основан на многократной выборке с возвращением из исходного набора данных. Так создаются «псевдовыборки».

Допустим, у нас есть выборка из неизвестного распределения: [7,2,4]. Мы хотим построить доверительный интервал для среднего.

▪️Начнём с того, что по имеющейся выборке построим много псевдовыборок. Для этого три раза подряд берём случайный элемент из выборки, допуская повторения. Повторяя эту процедуру много раз, мы получим много новых псевдовыборок такого же размера.
▪️У каждой из получившихся псевдовыборок посчитаем среднее. Так мы получим n чисел (по количеству псевдовыборок). Мы предполагаем, что каждое такое число что-то говорит нам об истинном математическом ожидании изначальной выборки.
▪️Мы упорядочиваем эти n чисел по возрастанию, и берём 0.95 интервал из середины. То есть выкидываем 2.5% самых маленьких чисел и 2.5% самых больших чисел. Из оставшихся чисел берём самое маленькое и самое большое — это будут границы нашего доверительного интервала для среднего.

#анализ_данных
#статистика
🧠🤖 Как создать память для вашего чат-бота на Python с
помощью графов знаний


Хотите, чтобы ваш чат-бот давал более точные и релевантные ответы, избегая «галлюцинаций»? Графы знаний в помощь!

В статье и туториале разбираем, что такое графы и как создать память на примере данных из Википедии.

🔗 Читать статью
🔗 Зеркало
Утверждение на картинке выше истинное или ложное?
Anonymous Quiz
60%
Истина
40%
Ложь
Утверждение на картинке выше истинное или ложное?
Anonymous Quiz
83%
Истина
17%
Ложь
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Как бороться с переобучением на примере линейной регрессии?

Есть три основных способа:

✔️Увеличить размер обучающей выборки.
Маленькая выборка снижает обобщающую способность модели, а значит повышает разброс.

✔️Уменьшить количество признаков.
Можно сделать это вручную или через специальный алгоритм. Однако есть риск выбросить нужные признаки.

✔️ Использовать регуляризацию.
Регуляризация позволяет снижать параметр (вес, коэффициент) признака и, таким образом, снижать его значимость.

Для регуляризации линейной регрессии есть несколько вариантов:
▪️Ridge (L2)
Штрафует за слишком большие коэффициенты. Этот штраф представляет собой сумму коэффициентов, возведённых в квадрат.
▪️Lasso (L1)
Для штрафа использует сумму коэффициентов по модулю.
▪️Elastic Net
Использует как L1, так и L2 регуляризацию.

#машинное_обучение
👍 Итоги недели в мире ИИ и обзоры новых сервисов

У нас вышла новая статья на 📰 по мотивам еженедельной рассылки про последние новости и тенденции в мире ИИ.

Ниже — небольшая выдержка из статьи, а целиком читайте здесь 👈

💬 Новости

▫️NVIDIA продемонстрировала впечатляющие достижения в робототехнике на конференции GDC 2024. Посмотрите на гуманоидных роботов здесь.
▫️Компания DeepMind совместно с клубом Liverpool представила TacticAI — систему, которая может давать тактические советы футбольным тренерам.
▫️Stability AI выпустила модель Stable Video 3D, способную превращать изображения в 3D-видео.

🛠 Инструменты

▫️Arcads — генерирует маркетинговые видео с ИИ-актерами.
▫️Instanice — преобразует фото в любой нужный стиль, сохраняя внешность.
▫️PNGMaker — генерирует любые изображения на прозрачном фоне.

⚙️ Сделай сам

▫️Devika — опенсорсная альтернатива нашумевшему автономному агенту Devin от Cognition AI. Это ИИ-помощник, способный создавать сложные программные проекты с минимальным участием разработчика.
▫️GPT Prompt Engineer — агент для создания эффективных промптов. Поддерживает все модели OpenAI и Claude 3.

Вы можете подписаться на email-рассылку здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
Какое влияние выбросы могут оказать на решающие деревья?

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

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

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

#машинное_обучение
35% на самый хардкорный курс по вышмату!

🌟 «Математика для Data Science» 🌟

19 490 рублей 29 990 рублей до 1 апреля

Полугодовая программа от преподавателей МГУ, которая включает в себя все необходимые знания по математике для работы в Data Science.

Вас ждет развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.

У вас не будет шансов не усвоить какие-то темы курса👌

🔥 Переходите и активируйте вводные занятия курсаhttps://proglib.io/w/4b21349b
В каких случаях вы будете применять ROC-кривую для оценки модели?

ROC-кривая (receiver operating characteristics curve) базируется на следующих метриках:
TPR (true positive rate) — доля положительных объектов, правильно предсказанных положительными;
▪️FPR (false positive rate) — доля отрицательных объектов, неправильно предсказанных положительными.

Именно в осях TPR/FPR и строится кривая. Эти метрики зависят от порога. Порогом мы называем значение, при котором по выходу модели решаем, к какому классу отнести объект. Так, выбор порога позволяет нам регулировать ошибки на объектах обоих классов. Его изменение позволяет увидеть, как меняются значения TPR и FPR, что и отражается на ROC-кривой.

Известно, что чем лучше модель разделяет два класса, тем больше площадь (area under curve) под ROC-кривой. Мы можем использовать эту площадь в качестве метрики и называть её AUC.

В каких случаях лучше отдать предпочтение этой метрике? Допустим, у нас есть клиент — сотовый оператор, который хочет знать, будет ли клиент пользоваться его услугами через месяц. При этом компании интересно упорядочить клиентов по вероятности прекращения обслуживания. Именно в таких задачах, где нам важна не метка сама по себе, а правильный порядок на объектах, имеет смысл применять AUC. Кроме того, метрика полезна в условиях несбалансированных классов или когда стоимость разных типов ошибок различна.

#машинноe_обучение
⚡️Proglib запускает каналы про нейросети

По каждому направлению отдельно! А именно:

Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей

И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.

Подписывайтесь!
Что такое сериализация и десериализация? Как используется в машинном обучении?

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

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

Для этой задачи подойдёт, например, модуль pickle в Python. Вот как можно его использовать:
# сериализуем 
with open('model.pickle', 'wb') as wf:
pickle.dump(model, wf)
# десериализуем модель
with open('model.pickle', 'rb') as rf:
model_out = pickle.load(rf)


#машинное_обучение
Объясните смысл бэггинга?

Бэггинг (bagging) можно расшифровать как bootstrap aggregating. Он предполагает три основных шага:
✔️Bootstrapping
На этом этапе мы создаём подвыборки из данных. Таким образом мы получаем несколько датасетов, на которых далее будем обучать разные копии модели.
✔️Parallel training
На этом этапе копии модели (их называют базовыми моделями) обучаются параллельно и независимо друг от друга.
✔️Aggregation
В конце концов мы берём обученные базовые модели и на их основе рассчитываем, в зависимости от типа задачи, среднее значение или класс, предсказанный большинством.

Бэггинг помогает уменьшить переобучение в моделях. Основная его цель — снизить вариативность (или дисперсию) предсказаний. Метод используется, например, на деревьях решений — в данном случае его называют случайный лес (Random Forest).

#машинное_обучение
Расскажите про систематическую ошибку отбора (Selection bias)

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

Систематическая ошибка отбора может возникать по разным причинам:
▫️Если тренировочный датасет собирается из источников, которые не охватывают всё многообразие генеральной совокупности, то данные могут быть смещены в сторону определённых значений или классов.
▫️Если в обучающем наборе отсутствуют данные по определённым категориям, то модель может совершать ошибки.

#статистика
Что вы можете сказать про вычислительную устойчивость сигмоиды? Могут ли возникать какие-нибудь проблемы?

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

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

Если же мы имеем дело с очень большими значениями x, то у нас и вовсе может возникнуть переполнение памяти (overflow). Так, в Python мы можем получить предупреждение о переполнении (RuntimeWarning: overflow encountered in exp). Это указывает на то, что результат вычисления экспоненциальной функции слишком велик для представления в типе данных с плавающей запятой.

#машинное_обучение
👾 Карточки по мотивам наших вопросов с собеседований DS

Наш подписчик сделал колоду карточек ANKI из пар вопрос-ответ, опубликованных в канале Библиотека собеса по Data Science. Всего в наборе 203 карточки.

Чтобы смотреть их в удобной форме, нужно:
▪️Завести аккаунт на AnkiWeb;
▪️Скачать десктопное приложение ANKI;
▪️Скачать карточки;
▪️Открыть их в приложении.

❤️ Если вы тоже делали карточки, шпаргалки или инструкции по нашим материалам, то обязательно присылайте нашему боту
2024/09/30 04:21:17
Back to Top
HTML Embed Code: