Библиотека собеса по Data Science | вопросы с собеседований
4.32K subscribers
422 photos
10 videos
1 file
405 links
Вопросы с собеседований по Data Science и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/7dfb7235

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что такое генераторы и итераторы в Python?

В Python генераторы и итераторы — это объекты, позволяющие работать с потенциально большими последовательностями данных без необходимости загружать всё в память одновременно. То есть и генераторы, и итераторы позволяют перебирать элементы коллекций.

🔹Итераторы реализуют методы __iter__() и __next__(). Метод __iter__() возвращает сам итератор, а __next__() — следующий элемент коллекции. Если элементы заканчиваются, __next__() должен вызвать исключение StopIteration.

🔹Генераторы представляют собой специальный способ реализации итераторов. Их можно реализовать двумя способами: как функцию с ключевым словом yield или как генераторное выражение. Главное отличие генератора от итератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям. Канонический пример — генератор, порождающий последовательность чисел Фибоначчи.

#программирование
#python
Какие типы слоёв есть в свёрточной нейронной сети?

🔹Слой свёртки
Именно в этом слое применяются фильтры, которые позволяют произвести операцию свёртки. Гиперпараметры здесь включают в себя размер фильтра и сдвиг (stride). Выходом данного слоя является карта признаков (feature map).

🔹Слой пулинга
Обычно применяется после свёрточного слоя. Пулинг позволяет выбрать из признаков, которые выделил свёрточный слой, самые важные. Обычно это делается с помощью двух методов: Max pooling и Average pooling. В первом случае карта признаков разбивается на небольшие блоки и из каждого берётся максимальное значение, а во втором случае — берётся среднее значение.

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

#глубокое_обучение
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Что вы знаете про метод независимых компонент (ICA)?

Это техника для выявления скрытых факторов из многомерных данных. С математической точки зрения, мы делаем предположение, что данные были порождены n-размерным исходным вектором, элементы которого — случайные независимые величины, через невырожденную матрицу смешивания. Тогда цель — найти обратную матрицу. Это позволит преобразовать смешанные данные обратно в исходные, независимые компоненты.

Для поиска существует алгоритм ICA, предложенный Беллом и Седжновски. Применение ICA особенно актуально в областях, где важно выделить скрытые компоненты из смешанных сигналов, например, в анализе медицинских изображений, финансовых данных или аудиосигналов.

#машинное_обучение
Что происходит со средним, модой и медианой, когда распределение данных скошенное?

Распределение скошено вправо, если оно имеет «хвост» в правой части распределения. И напротив, распределение скошено влево, если оно имеет «хвост» в левой части. Это также называют правосторонней и левосторонней симметриями, соответственно.

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

#статистика
Что вы знаете про критерий Шовене?

Он позволяет найти выбросы в данных. Согласно критерию Шовене, значение p i-ое является выбросом, если выполнено неравенство, указанное на картинке выше. p с чертой — это среднее. А в знаменателе стоит отклонение. n — это объём выборки. Функция erfc является дополнением к функции ошибок (её вид, впрочем, неважен). С возрастанием аргумента, значение функции erfc стремится к нулю. То есть чем меньше значение функции, тем сильнее p i-ое отстоит от среднего значения, а значит является выбросом.

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

#машинное_обучение
Почему мы не можем использовать линейную регрессию для задачи классификации?

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

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

Модификацией линейной регрессии под задачу классификации является логистическая регрессия, которая предсказывает логиты и способна давать выходные значения, ограниченные интервалом от 0 до 1. Таким образом, она предсказывает вероятности того, что конкретный объект принадлежит к какому-либо классу.

#машинное_обучение
Зачем нужно нормализация данных?

Цель нормализации — приведение различных данных, которые могут быть в самых разных единицах измерения и диапазонах значений, к единому виду. Это позволит сравнивать их между собой или использовать для расчёта схожести объектов.

Часто применяется MinMax нормализация, которая позволяет преобразовать исходный набор данных в диапазон [0, 1]. Чтобы вычислить новые значения, используем формулу: X_new = (X — X_min)/(X_max — X_min).

#машинное_обучение
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈
Что такое позиционное кодирование (Positional encoding) в архитектуре Transformer?

В общем случае Transformer обрабатывает входные последовательности токенов одновременно. Поэтому без дополнительной информации о позиции каждого токена сеть будет рассматривать вход как «мешок слов».

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

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

#глубокое_обучение
Чем интерпретируемость (Interpretability) отличается от объясняемости (Explainability) модели?

▫️Interpretability называют пассивную интерпретируемость устройства модели или её предсказания на объекте. Это значит, что сама модель никак не отвечает на вопросы касательно того, почему она «делает» те или иные выводы.

▫️Explainability в отличие от Interpretability представляет собой активную генерацию объяснений. Они идут как дополнительные выходные данные для объекта.

Помимо этого, есть такие термины как Comprehensibility и Understandability. Comprehensibility характеризует возможность модели представить выученные ею закономерности в виде понятного людям знания. Understandability же относится к тому, насколько понятно устроена модель, каковы её составные части и промежуточные результаты.

#машинное_обучение
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
Какие архитектуры свёрточных нейронных сетей вы знаете?

🔹LeNet
Одна из первых архитектур, предложенная Яном Лекуном в 1998 году для распознавания рукописных цифр.

🔹AlexNet
Победитель конкурса ImageNet 2012 года. Сеть значительно углубила и расширила возможности CNN, используя ReLU активации и dropout.

🔹VGGNet
Отличается простотой архитектуры, использует небольшие свёртки размера 3x3.

🔹GoogLeNet
В архитектуру ввели Inception module, который одновременно выполняет свёртки с размерами 1×1, 3×3 и 5×5. Эти операции выполняются параллельно для одного и того же входа, а их результаты объединяются, чтобы сформировать окончательный выход..

🔹ResNet
Использует residual blocks, что позволяет создавать сверхглубокие сети, избегая проблемы исчезающего градиента.

#глубокое_обучение
Что такое self-supervised learning?

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

Примеры задач в self-supervised learning включают предсказание скрытых частей данных, восстановление маскированных элементов в последовательностях, воссоздание правильного порядка последовательности перемешанных кусков одного изображения.

#машинное_обучение
Как можно справиться с проблемой холодного старта в рекомендательных системах?

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

Например, мы научились делать предсказания для существующих пользователей и товаров. Тогда возникает два вопроса: — «Как рекомендовать товар, который ещё никто не видел?» и «Что рекомендовать пользователю, у которого ещё нет ни одной оценки?». Для решения этой проблемы стараются извлечь информацию из других источников. Это могут быть данные о пользователе из других сервисов, опросник при регистрации и т.д.

Кроме того, существуют задачи, для которых состояние холодного старта является постоянным. Так, в Session Based Recommenders нужно успеть понять что-то о пользователе за то время, что он находится на сайте. В рекомендательных системах новостей тоже постоянно появляются новые единицы контента, а предыдущие быстро устаревают.

#машинное_обучение
Настройка каких гиперпараметров случайного леса может помочь избежать переобучения?

▪️Количество деревьев (n_estimators). Стоит понимать, что чем больше деревьев, тем лучше качество, однако время работы также пропорционально увеличивается. Часто при увеличении n_estimators качество на обучающей выборке может стать 100-процентным, что и свидетельствует о переобучении.

▪️Максимальная глубина дерева (max_depth). Чем меньше глубина, тем быстрее строится и работает случайный лес. При увеличении глубины возрастает риск переобучения.

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

▪️Минимальное количество образцов в листе (min_samples_leaf). Влияет так же, как min_samples_split.

▪️Максимальное количество признаков (max_features). Ограничение числа признаков, используемых при каждом разделении, уменьшает вероятность переобучения.

#машинное_обучение
Оцените, насколько вам сложно отвечать на вопросы типа «Как бы вы разработали систему рекомендаций товаров/услуг» (1 — легко, 5 — я вообще не смогу ответить на такой вопрос)
Anonymous Poll
7%
1
9%
2
38%
3
19%
4
27%
5
Коротко объясните метод максимального правдоподобия

Этот метод используется для оценки параметров модели. Вот краткий алгоритм:

▫️Сначала мы предполагаем, что данные распределены согласно некоторому вероятностному закону с функцией вероятности, которая включает в себя параметры модели.
▫️Затем мы составляет функцию правдоподобия, которая показывает вероятность наблюдения данных при этих заданных параметрах.
▫️Наша задача — найти такие значения параметров, которые максимизируют функцию правдоподобия. Это означает, что выбираются такие параметры, при которых вероятность наблюдать данные наиболее высока.

#теория_вероятностей
#машинное_обучение
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

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

Negative sampling появляется в контексте Word2Vec, метода обучения векторных представлений слов. Дело в том, что общий вид функции потерь для Word2Vec представляет собой сумму логарифмов с обратными знаками. Количество этих логарифмов равно объёму обучающей выборки. Внутри каждого логарифма стоит дробь, в знаменателе которой — сумма экспонент, и количество слагаемых совпадает с количеством слов в словаре.

В общем, это всё выглядит несколько ужасающе, особенно если держать в уме, что эту функцию потерь нужно минимизировать. Поэтому нужно как-то упрощать вычисления. Тут и приходит на помощь negative sampling.

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

#NLP
#глубокое_обучение