В каких случаях вы будете применять 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_обучение
ROC-кривая
◽TPR (true positive rate) — доля положительных объектов, правильно предсказанных положительными;
▪️FPR (false positive rate) — доля отрицательных объектов, неправильно предсказанных положительными.
Именно в осях TPR/FPR и строится кривая. Эти метрики зависят от порога. Порогом мы называем значение, при котором по выходу модели решаем, к какому классу отнести объект. Так, выбор порога позволяет нам регулировать ошибки на объектах обоих классов. Его изменение позволяет увидеть, как меняются значения TPR и FPR, что и отражается на ROC-кривой.
Известно, что чем лучше модель разделяет два класса, тем больше площадь (area under curve) под ROC-кривой. Мы можем использовать эту площадь в качестве метрики и называть её AUC.
В каких случаях лучше отдать предпочтение этой метрике? Допустим, у нас есть клиент — сотовый оператор, который хочет знать, будет ли клиент пользоваться его услугами через месяц. При этом компании интересно упорядочить клиентов по вероятности прекращения обслуживания. Именно в таких задачах, где нам важна не метка сама по себе, а правильный порядок на объектах, имеет смысл применять AUC. Кроме того, метрика полезна в условиях несбалансированных классов или когда стоимость разных типов ошибок различна.
#машинноe_обучение
❤8
⚡️Proglib запускает каналы про нейросети
По каждому направлению отдельно! А именно:
⭐Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
⭐Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
⭐Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
⭐Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей
И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.
Подписывайтесь!
По каждому направлению отдельно! А именно:
⭐Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
⭐Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
⭐Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
⭐Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей
И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.
Подписывайтесь!
👍2
Что такое сериализация и десериализация? Как используется в машинном обучении?
В контексте хранения данных, сериализация — это процесс перевода структур данных в формат для их хранения и передачи. Десериализация — обратный процесс, восстановление данных из этого формата в исходный вид.
В машинном обучении можно сохранять обученные модели на диске или передавать их по сети, а затем использовать для прогнозирования на новых данных. Чтобы это проделать, пригодятся сериализация и десериализация.
Для этой задачи подойдёт, например, модуль pickle в Python. Вот как можно его использовать:
#машинное_обучение
В контексте хранения данных, сериализация — это процесс перевода структур данных в формат для их хранения и передачи. Десериализация — обратный процесс, восстановление данных из этого формата в исходный вид.
В машинном обучении можно сохранять обученные модели на диске или передавать их по сети, а затем использовать для прогнозирования на новых данных. Чтобы это проделать, пригодятся сериализация и десериализация.
Для этой задачи подойдёт, например, модуль 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)
#машинное_обучение
👍9❤3
Объясните смысл бэггинга?
Бэггинг (bagging) можно расшифровать как bootstrap aggregating. Он предполагает три основных шага:
✔️Bootstrapping
На этом этапе мы создаём подвыборки из данных. Таким образом мы получаем несколько датасетов, на которых далее будем обучать разные копии модели.
✔️Parallel training
На этом этапе копии модели (их называют базовыми моделями) обучаются параллельно и независимо друг от друга.
✔️Aggregation
В конце концов мы берём обученные базовые модели и на их основе рассчитываем, в зависимости от типа задачи, среднее значение или класс, предсказанный большинством.
Бэггинг помогает уменьшить переобучение в моделях. Основная его цель — снизить вариативность (или дисперсию) предсказаний. Метод используется, например, на деревьях решений — в данном случае его называют случайный лес (Random Forest).
#машинное_обучение
Бэггинг (bagging) можно расшифровать как bootstrap aggregating. Он предполагает три основных шага:
✔️Bootstrapping
На этом этапе мы создаём подвыборки из данных. Таким образом мы получаем несколько датасетов, на которых далее будем обучать разные копии модели.
✔️Parallel training
На этом этапе копии модели (их называют базовыми моделями) обучаются параллельно и независимо друг от друга.
✔️Aggregation
В конце концов мы берём обученные базовые модели и на их основе рассчитываем, в зависимости от типа задачи, среднее значение или класс, предсказанный большинством.
Бэггинг помогает уменьшить переобучение в моделях. Основная его цель — снизить вариативность (или дисперсию) предсказаний. Метод используется, например, на деревьях решений — в данном случае его называют случайный лес (Random Forest).
#машинное_обучение
👍13
Расскажите про систематическую ошибку отбора (Selection bias)
В общем, систематическая ошибка отбора говорит о том, что выводы, сделанные применительно к какой-либо группе, могут оказаться неточными из-за неправильного отбора в эту группу. В контексте машинного обучения о selection bias можно говорить, когда данные, используемые для обучения модели, не являются репрезентативными по отношению к целевой популяции, для которой предназначена модель. Это может привести к тому, что модель будет хорошо работать на тренировочных данных, но показывать плохие результаты на новых данных.
Систематическая ошибка отбора может возникать по разным причинам:
▫️Если тренировочный датасет собирается из источников, которые не охватывают всё многообразие генеральной совокупности, то данные могут быть смещены в сторону определённых значений или классов.
▫️Если в обучающем наборе отсутствуют данные по определённым категориям, то модель может совершать ошибки.
#статистика
В общем, систематическая ошибка отбора говорит о том, что выводы, сделанные применительно к какой-либо группе, могут оказаться неточными из-за неправильного отбора в эту группу. В контексте машинного обучения о selection bias можно говорить, когда данные, используемые для обучения модели, не являются репрезентативными по отношению к целевой популяции, для которой предназначена модель. Это может привести к тому, что модель будет хорошо работать на тренировочных данных, но показывать плохие результаты на новых данных.
Систематическая ошибка отбора может возникать по разным причинам:
▫️Если тренировочный датасет собирается из источников, которые не охватывают всё многообразие генеральной совокупности, то данные могут быть смещены в сторону определённых значений или классов.
▫️Если в обучающем наборе отсутствуют данные по определённым категориям, то модель может совершать ошибки.
#статистика
❤2
Что вы можете сказать про вычислительную устойчивость сигмоиды? Могут ли возникать какие-нибудь проблемы?
Формула сигмоиды выглядит так, как на картинке. При очень больших отрицательных или положительных значениях x у функции действительно могут возникнуть проблемы.
В общем, в такой ситуации производная сигмоидной функции будет стремиться к нулю. Это означает, что изменения весов будут незначительными в процессе обратного распространения ошибки, что может существенно замедлить обучение или даже остановить его.
Если же мы имеем дело с очень большими значениями x, то у нас и вовсе может возникнуть переполнение памяти (overflow). Так, в Python мы можем получить предупреждение о переполнении (RuntimeWarning: overflow encountered in exp). Это указывает на то, что результат вычисления экспоненциальной функции слишком велик для представления в типе данных с плавающей запятой.
#машинное_обучение
Формула сигмоиды выглядит так, как на картинке. При очень больших отрицательных или положительных значениях x у функции действительно могут возникнуть проблемы.
В общем, в такой ситуации производная сигмоидной функции будет стремиться к нулю. Это означает, что изменения весов будут незначительными в процессе обратного распространения ошибки, что может существенно замедлить обучение или даже остановить его.
Если же мы имеем дело с очень большими значениями x, то у нас и вовсе может возникнуть переполнение памяти (overflow). Так, в Python мы можем получить предупреждение о переполнении (RuntimeWarning: overflow encountered in exp). Это указывает на то, что результат вычисления экспоненциальной функции слишком велик для представления в типе данных с плавающей запятой.
#машинное_обучение
🔥5
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
👾 Карточки по мотивам наших вопросов с собеседований DS
Наш подписчик сделал колоду карточек ANKI из пар вопрос-ответ, опубликованных в канале Библиотека собеса по Data Science. Всего в наборе 203 карточки.
Чтобы смотреть их в удобной форме, нужно:
▪️Завести аккаунт на AnkiWeb;
▪️Скачать десктопное приложение ANKI;
▪️Скачать карточки;
▪️Открыть их в приложении.
❤️ Если вы тоже делали карточки, шпаргалки или инструкции по нашим материалам, то обязательно присылайте нашему боту
Наш подписчик сделал колоду карточек ANKI из пар вопрос-ответ, опубликованных в канале Библиотека собеса по Data Science. Всего в наборе 203 карточки.
Чтобы смотреть их в удобной форме, нужно:
▪️Завести аккаунт на AnkiWeb;
▪️Скачать десктопное приложение ANKI;
▪️Скачать карточки;
▪️Открыть их в приложении.
❤️ Если вы тоже делали карточки, шпаргалки или инструкции по нашим материалам, то обязательно присылайте нашему боту
❤7
Какие нелинейные преобразования данных вы знаете?
Нелинейные преобразования меняют структуру распределения. Это помогает улучшить модели, делая их способными улавливать сложные зависимости в данных.
Вот некоторые из наиболее распространённых нелинейных преобразований:
▪️Логарифмическое преобразование.
Оно позволяет увеличить расстояние между небольшими значениями и уменьшить между большими значениями. Преобразование делает скошенное распределение более симметричным и приближённым к нормальному.
▪️Преобразование с помощью квадратного корня.
Действует аналогично логарифмическому, однако менее агрессивно. Его без изменений можно применять к нулевым значениям.
▪️Преобразование Бокса-Кокса.
Обычно используется для трансформации зависимой переменной в случае, если у нас есть ненормальное распределение ошибок и/или нелинейность взаимосвязи, а также в случае гетероскедастичности.
▪️Преобразование Йео-Джонсона.
Позволяет работать с нулевыми и отрицательными значениями.
#машинное_обучение
#статистика
Нелинейные преобразования меняют структуру распределения. Это помогает улучшить модели, делая их способными улавливать сложные зависимости в данных.
Вот некоторые из наиболее распространённых нелинейных преобразований:
▪️Логарифмическое преобразование.
Оно позволяет увеличить расстояние между небольшими значениями и уменьшить между большими значениями. Преобразование делает скошенное распределение более симметричным и приближённым к нормальному.
▪️Преобразование с помощью квадратного корня.
Действует аналогично логарифмическому, однако менее агрессивно. Его без изменений можно применять к нулевым значениям.
▪️Преобразование Бокса-Кокса.
Обычно используется для трансформации зависимой переменной в случае, если у нас есть ненормальное распределение ошибок и/или нелинейность взаимосвязи, а также в случае гетероскедастичности.
▪️Преобразование Йео-Джонсона.
Позволяет работать с нулевыми и отрицательными значениями.
#машинное_обучение
#статистика
❤9
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🤖✍️ Как работают языковые модели (LLM): простое объяснение через аналогию с кулинарией
Языковые модели (LLM) — это сложные системы искусственного интеллекта, способные генерировать человекоподобные тексты. Но как именно они это делают? В этой статье мы объясним принципы работы LLM, используя простую и понятную аналогию с приготовлением еды.
🔗 Читать статью
🔗 Зеркало
Языковые модели (LLM) — это сложные системы искусственного интеллекта, способные генерировать человекоподобные тексты. Но как именно они это делают? В этой статье мы объясним принципы работы LLM, используя простую и понятную аналогию с приготовлением еды.
🔗 Читать статью
🔗 Зеркало
❤6👍1
В чём заключается разница между обычным k-средних (k-means) и k-средних++ (k-means++)?
Разница заключается в том, как инициализируются центроиды. Центроид — это, по сути, репрезентативная точка в каждом кластере. В обычном алгоритме k-means такие точки назначаются случайным образом. Это не самый оптимальный способ, ведь центроиды могут оказаться слишком рядом друг к другу и разделение по кластерам будет неверным.
Для улучшения алгоритма была придумана схема k-means++. По ней, сначала случайным образом выбирается первый центроид в данных. Следующие центроиды назначаются, исходя из сравнения с первым. Вероятность того, что некоторая точка будет выбрана как следующий центроид, пропорциональна квадратному расстоянию между этой точкой и ближайшим центроидом, который уже был выбран. Такой подход гарантирует более равномерное распределение репрезентативных точек по пространству данных.
#машинное_обучение
Разница заключается в том, как инициализируются центроиды. Центроид — это, по сути, репрезентативная точка в каждом кластере. В обычном алгоритме k-means такие точки назначаются случайным образом. Это не самый оптимальный способ, ведь центроиды могут оказаться слишком рядом друг к другу и разделение по кластерам будет неверным.
Для улучшения алгоритма была придумана схема k-means++. По ней, сначала случайным образом выбирается первый центроид в данных. Следующие центроиды назначаются, исходя из сравнения с первым. Вероятность того, что некоторая точка будет выбрана как следующий центроид, пропорциональна квадратному расстоянию между этой точкой и ближайшим центроидом, который уже был выбран. Такой подход гарантирует более равномерное распределение репрезентативных точек по пространству данных.
#машинное_обучение
❤13👍3
🤖👾 Как злоумышленники взламывают LLM: 7 ключевых стратегий
Чат-боты на основе ИИ все чаще становятся мишенью для хакеров. Какие уязвимости позволяют злоумышленникам взламывать ИИ-системы и как защитить свои приложения от атак? Рассказываем о 7 ключевых стратегиях.
👉 Читать статью
👉 Зеркало
Чат-боты на основе ИИ все чаще становятся мишенью для хакеров. Какие уязвимости позволяют злоумышленникам взламывать ИИ-системы и как защитить свои приложения от атак? Рассказываем о 7 ключевых стратегиях.
👉 Читать статью
👉 Зеркало
💯2
Расскажите про известные вам меры сходства, используемые в машинном обучении
Наиболее распространёнными мерами сходства являются:
▪️Косинусное сходство
Определяет сходство между двумя векторами по косинусу угла между ними. Значения меры находятся в диапазоне [-1, 1], где 1 означает, что два вектора очень похожи, а -1 — что два вектора полностью отличаются друг от друга.
▪️Евклидово расстояние
Представляет расстояние между двумя точками в n-мерной плоскости. По сути, это длина соединяющей их прямой линии. Можно рассчитать по формуле Пифагора.
▪️Манхэттенское расстояние
Похоже на Евклидова. Согласно этой метрике, расстояние между двумя точками равно сумме модулей разностей их координат.
▪️Индекс подобия Жаккара
Показатель сходства между двумя наборами данных. Если два набора данных имеют одни и те же элементы, их индекс сходства Жаккара будет равен 1. И если у них нет общих элементов, то сходство будет равно 0.
#машинное_обучение
Наиболее распространёнными мерами сходства являются:
▪️Косинусное сходство
Определяет сходство между двумя векторами по косинусу угла между ними. Значения меры находятся в диапазоне [-1, 1], где 1 означает, что два вектора очень похожи, а -1 — что два вектора полностью отличаются друг от друга.
▪️Евклидово расстояние
Представляет расстояние между двумя точками в n-мерной плоскости. По сути, это длина соединяющей их прямой линии. Можно рассчитать по формуле Пифагора.
▪️Манхэттенское расстояние
Похоже на Евклидова. Согласно этой метрике, расстояние между двумя точками равно сумме модулей разностей их координат.
▪️Индекс подобия Жаккара
Показатель сходства между двумя наборами данных. Если два набора данных имеют одни и те же элементы, их индекс сходства Жаккара будет равен 1. И если у них нет общих элементов, то сходство будет равно 0.
#машинное_обучение
❤5👍1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
Как выбор функции потерь влияет на процесс обучения модели?
Anonymous Quiz
2%
Функция потерь не оказывает влияния на обучение
78%
Функция потерь определяет цель для алгоритма оптимизации
5%
Функция потерь определяет архитектуру модели
15%
Выбор функции потерь влияет только на оценку модели
👍6🥱2
Какая из этих метрик — MAE or MSE или RMSE — более устойчива к выбросам?
▪️MAE (mean absolute error) можно перевести как средняя абсолютная ошибка. Измеряет среднюю абсолютную разницу между фактическими и прогнозируемыми значениями.
▪️MSE (mean square error) можно перевести как среднеквадратичная ошибка. Вычисляет среднее значение квадратов разностей между фактическими и прогнозируемыми значениями.
▪️RMSE (root mean square error) — это корень из среднеквадратичной ошибки.
Среди этих трёх метрик MAE наиболее устойчива к выбросам по сравнению с MSE или RMSE. Основная причина этого — возведение в квадрат значений ошибок. В случае выброса значение ошибки само по себе высокое, и его возведение в квадрат приводит к многократному увеличению значений ошибки, что может «ввести в заблуждение» алгоритм оптимизации.
#машинное_обучение
▪️MAE (mean absolute error) можно перевести как средняя абсолютная ошибка. Измеряет среднюю абсолютную разницу между фактическими и прогнозируемыми значениями.
▪️MSE (mean square error) можно перевести как среднеквадратичная ошибка. Вычисляет среднее значение квадратов разностей между фактическими и прогнозируемыми значениями.
▪️RMSE (root mean square error) — это корень из среднеквадратичной ошибки.
Среди этих трёх метрик MAE наиболее устойчива к выбросам по сравнению с MSE или RMSE. Основная причина этого — возведение в квадрат значений ошибок. В случае выброса значение ошибки само по себе высокое, и его возведение в квадрат приводит к многократному увеличению значений ошибки, что может «ввести в заблуждение» алгоритм оптимизации.
#машинное_обучение
🔥15💯3
Расскажите, что вы знаете про генеративно-состязательные сети (GAN)?
Так называют большой класс генеративных моделей, главная особенность которых — обучение одновременно с другой сетью, которая старается отличить сгенерированные объекты от настоящих.
👮♂️ Для объяснения принципа работы GAN нередко приводят аналогию с фальшивомонетчиком и полицейским. Так, задача фальшивомонетчика — научиться создавать купюры, которые полицейский не сможет отличить от реальных. Задача полицейского тем временем — научиться отличать купюры фальшивомонетчика от настоящих.
GAN состоят из двух частей: генератора (фальшивомонетчик) и дискриминатора (полицейский). Генератор учится создавать данные, похожие на те, что находятся в обучающем датасете. Дискриминатор выполняет функцию классификатора, пытаясь отличить настоящие данные от тех, что были сгенерированы генеративной сетью. То есть каждому реальному сэмплу и фейковому ставится в соответствие вероятность, которая оценивает степень принадлежности к реальным данным.
#глубокое_обучение
Так называют большой класс генеративных моделей, главная особенность которых — обучение одновременно с другой сетью, которая старается отличить сгенерированные объекты от настоящих.
👮♂️ Для объяснения принципа работы GAN нередко приводят аналогию с фальшивомонетчиком и полицейским. Так, задача фальшивомонетчика — научиться создавать купюры, которые полицейский не сможет отличить от реальных. Задача полицейского тем временем — научиться отличать купюры фальшивомонетчика от настоящих.
GAN состоят из двух частей: генератора (фальшивомонетчик) и дискриминатора (полицейский). Генератор учится создавать данные, похожие на те, что находятся в обучающем датасете. Дискриминатор выполняет функцию классификатора, пытаясь отличить настоящие данные от тех, что были сгенерированы генеративной сетью. То есть каждому реальному сэмплу и фейковому ставится в соответствие вероятность, которая оценивает степень принадлежности к реальным данным.
#глубокое_обучение
❤5👏2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🤖🛠️ 4 полезных инструмента для работы с ИИ: RAGFlow, The Pipe, UFO и SWE-agent
В новой статье рассматриваем 4 инструмента, которые расширяют возможности разработчика: от платформ для работы с документами до агентов, способных исправлять ошибки в коде.
🔗 Читать статью
🔗 Зеркало
В новой статье рассматриваем 4 инструмента, которые расширяют возможности разработчика: от платформ для работы с документами до агентов, способных исправлять ошибки в коде.
🔗 Читать статью
🔗 Зеркало