Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
18.5K subscribers
2.36K photos
119 videos
64 files
4.81K links
Все самое полезное для дата сайентиста в одном канале.

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

Курс по ML: https://clc.to/4hNluQ

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

РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
Download Telegram
✍️ Опишите алгоритм обратного распространения ошибки

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

Алгоритм таков:

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

#вопросы_с_собеседований
👍10
✍️Что такое проблема «умирающего» ReLU?

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

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

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

#вопросы_с_собеседований
👍141
✍️ Что вы знаете про N-грамные языковые модели?

N-грам (n-gram) языковые модели — это статистические модели, которые предсказывают следующее слово после N-1 слов, основываясь на вероятности их сочетания. Сам по себе N-gram представляет собой последовательность из определённого количества слов. Например, если речь идёт о двух словах, то мы использует биграмы. В такой модели вероятность каждого слова зависит только от предыдущего слова.

Эти модели часто используются в задачах обработки естественного языка (NLP), в том числе в автозаполнении текста, проверке орфографии, машинном переводе. Чем больше значение N, тем точнее модель может предсказывать контекст, но при этом растут вычислительные затраты и требуется больше данных для обучения.

#вопросы_с_собеседований
👍101
Запустится ли этот код на Python 3? Если да, то что он выведет?

sys.allow_boolean_assignment разрешает создавать переменные с именами, зарезервированными под идентификаторы типа bool. Поэтому этот код запустится и выведет «True is False».

Эта настройка введена в известном первоапрельском коммите, который до сих пор остался в коде интерпретатора. Если кандидат об этом знает, можно с уверенностью сказать, что он общается в должных профессиональных кругах и любят углубляться в детали.
#вопросы_с_собеседований
🔥9
Как прочитать данные в DataFrame из файла CSV?

Мы можем создать фрейм данных из файла CSV — «Comma Separated Values (значения, разделенные запятыми)». Это можно сделать с помощью метода read_csv(), который принимает файл csv в качестве параметра:
pandas.read_csv(file_name)

Другой способ сделать это — использовать метод read_table(), который принимает CSV-файл и значение разделителя в качестве параметра:
pandas.read_table(file_name, delimiter)
#вопросы_с_собеседований
🥱10🌚3
Что такое дескрипторы?

Дескрипторы — это механизм в Python, который позволяет настраивать доступ к атрибутам объектов. Они используются для определения поведения при доступе, изменении или удалении атрибута объекта.

Дескрипторы реализуются через три метода:

— __get__(self, instance, owner) вызывается при доступе к атрибуту
— __set__(self, instance, value) вызывается при изменении атрибута
— __delete__(self, instance) вызывается при удалении атрибута

Дескрипторы могут быть определены как отдельный класс или внутри другого класса. Они могут быть использованы для создания свойств, которые имеют специальное поведение при доступе, изменении или удалении.
#вопросы_с_собеседований
👍11😁32
🌲Какие операции с деревьями как структурами данных вы знаете?

Дерево — это иерархическая структура данных, состоящая из узлов, соединённых рёбрами.

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

🔹Insert (вставка)
Если нет ограничений на размещение узла, вставка может быть простым добавлением нового потомка к существующему листу.

🔹Basic Search (обход дерева)
В самой простой форме обход дерева — это рекурсивная функция, которая вызывает саму себя для каждого потомка узла до тех пор, пока не будет найден целевой узел.

🔹Delete (удаление)
Если нужно удалить целое поддерево, это можно сделать, используя метод поиска узла. После того как целевой узел найден, его можно удалить из списка потомков его родителя.

#вопросы_с_собеседований
👍3
Чем различаются стандартное отклонение и стандартная ошибка?

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

▪️Стандартная ошибка (SE) показывает, насколько точно среднее значение выборки (sample mean) оценивает среднее значение генеральной совокупности (population mean). Она уменьшается с увеличением размера выборки, так как большее количество данных позволяет лучше оценить истинное среднее.

Так, если стандартное отклонение — это показатель изменчивости элементов в выборке, то стандартная ошибка — показатель изменчивости средних значений выборок.

#вопросы_с_собеседований
👏16👍42🥱1
Как извлечь отдельные значения из столбца в SQL?

Используя ключевое слово DISTINCT в сочетании с командой SELECT, мы можем извлекать различные значения из столбца в SQL. Ключевое слово DISTINCT используется для фильтрации дубликатов значений и возврата только уникальных значений из указанного столбца.
#вопросы_с_собеседований
👍5🥱5👏1
Что такое диффузионные модели?

Диффузионные модели используются для генерации новых данных (например, изображений), и в их основе лежит процесс «зашумления» и «расшумления».

✍️ Как это работает?

▪️К исходному объекту добавляется случайный шум. На каждом этапе этого процесса объект становится всё более «шумным», пока не превратится в почти случайный набор данных.
▪️Теперь задача модели — шаг за шагом «убирать» шум, чтобы восстановить что-то осмысленное, например, изображение.

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

#вопросы_с_собеседований
😁3🥱1
✍️ Как определить выбросы с помощью критерия Граббса?

Главное предположение критерия Граббса состоит в том, что выборка имеет нормальное распределение.

🔧 Алгоритм определения выбросов:

1️⃣ Возьмите данные и найдите самое удалённое значение.

2️⃣ Рассчитайте метрику отклонения.
Для этого нужно определить, насколько далеко это значение находится от среднего уровня остальных данных, учитывая их вариативность.

3️⃣ Сравните с критическим значением.
Критическое значение берётся из таблицы критерия Граббса (оно зависит от количества данных и уровня значимости). Если метрика превышает этот порог, значение считается выбросом.

#вопросы_с_собеседований
👍7