Теоретические вопросы интервью

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Контролируемое машинное обучение

Что такое контролируемое машинное обучение? ?

Случай, когда у нас есть как объекты (матрица X), так и метки (вектор y)

Линейная регрессия

Что такое регрессия? Какие модели можно использовать для решения задачи регрессии? ?

Регрессионные модели исследуют взаимосвязь между зависимой (целевой) и независимой переменной (АМИ) (предиктором). Вот некоторые распространенные регрессионные модели

  • Линейная регрессия устанавливает линейную зависимость между целью и предиктором (АМИ). Он предсказывает числовое значение и имеет форму прямой линии.
  • Полиномиальная регрессия имеет уравнение регрессии со степенью независимой переменной больше 1. Это кривая, которая вписывается в точки данных.
  • Гребневая регрессия помогает, когда предикторы сильно коррелированы (проблема мультиколлинеарности). Он штрафует квадраты коэффициентов регрессии, но не позволяет коэффициентам достигать нулей (использует регуляризацию L2).
  • Регрессия лассо штрафует абсолютные значения коэффициентов регрессии и позволяет некоторым коэффициентам достигать абсолютного нуля (тем самым позволяя выбирать признаки).

Что такое линейная регрессия? Когда мы его используем? ?

Линейная регрессия-это модель, которая предполагает линейную зависимость между входными переменными (X) и единственной выходной переменной (y).

С помощью простого уравнения:

y = B0 + B1*x1 + ... + Bn * xN 

B-коэффициенты регрессии, значения x-независимые (объясняющие) переменные, а y-зависимая переменная.

Случай с одной объясняющей переменной называется простой линейной регрессией. Для более чем одной объясняющей переменной этот процесс называется множественной линейной регрессией.

Простая линейная регрессия:

y = B0 + B1*x1 

Множественная линейная регрессия:

y = B0 + B1*x1 + ... + Bn * xN 

Каковы основные допущения линейной регрессии? ?

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

  1. Линейная связь между объектами и целевой переменной.
  2. Аддитивность означает, что влияние изменений одного из признаков на целевую переменную не зависит от значений других признаков. Например, модель для прогнозирования выручки компании имеет два признака-количество проданных товаров а и количество проданных товаров Б. Когда компания продает больше товаров a, выручка увеличивается, и это не зависит от количества проданных товаров B. Но, если клиенты, которые покупают a, перестают покупать b, предположение аддитивности нарушается.
  3. Признаки не коррелируются (нет коллинеарности) , поскольку бывает трудно отделить отдельные эффекты коллинеарных признаков от целевой переменной.
  4. Ошибки независимо и одинаково нормально распределены (yi = B0 + B1*x1i + ... + ошибкаi):
    1. Отсутствие корреляции между ошибками (последовательные ошибки в случае данных временных рядов).
    2. Постоянная дисперсия ошибок - гомоскедастичность. Например, в случае временных рядов сезонные паттерны могут увеличивать ошибки в сезонах с более высокой активностью.
    3. Ошибки обычно распределяются, иначе некоторые функции будут иметь большее влияние на целевую переменную, чем на другие. Если распределение ошибок существенно отличается от нормального, доверительные интервалы могут быть слишком широкими или слишком узкими.

Каково нормальное распределение? Почему нас это волнует? ?

Нормальное распределение-это непрерывное распределение вероятностей, функция плотности вероятности которого принимает следующую формулу:

формула

где ?-среднее а ?-стандартное отклонение распределения.

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

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

Как мы проверяем, следует ли переменная за нормальным распределением? ??

  1. Построить гистограмму из отобранных данных. Если вы можете подогнать колоколообразную "нормальную" кривую к гистограмме, то гипотеза о том, что лежащая в основе случайная величина следует нормальному распределению, не может быть отвергнута.
  2. Проверьте асимметрию и эксцесс выборочных данных. Асимметрия = 0 и эксцесс = 3 типичны для нормального распределения, поэтому чем дальше они находятся от этих значений, тем более ненормальным является распределение.
  3. Используйте тесты Колмогорова-Смирнова или/и Шапиро-Уилка на нормальность. Они учитывают как асимметрию, так и эксцесс одновременно.
  4. Проверьте наличие квантиль-Квантильного графика. Это диаграмма рассеяния, созданная путем построения двух наборов квантилей друг против друга. Нормальный график Q-Q поместите точки данных в примерно прямую линию.

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

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

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

Какие методы решения линейной регрессии вы знаете? ??

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

Метод матричных алгебр: Допустим , у вас есть Xматрица признаков и yвектор со значениями, которые вы хотите предсказать. Пройдя через матричную алгебру и задачу минимизации, вы получите следующее решение: .

Но для решения этой задачи требуется найти обратную величину, что может занять много времени, если вообще возможно. К счастью, существуют такие методы, как сингулярная декомпозиция (SVD) или QR-декомпозиция, которые могут надежно вычислить эту часть (называемую псевдоинверсной) без фактической необходимости находить обратную. Популярная библиотека python ML sklearnиспользует SVD для решения задач наименьших квадратов.

Альтернативный метод: градиентный спуск. Смотрите объяснение ниже.

Что такое градиентный спуск? Как это работает? ??

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

Что такое нормальное уравнение? ??

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

Что такое SGD — стохастический градиентный спуск? В чем разница с обычным градиентным спуском? ??

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

В то время как в GD вы должны выполнить все выборки в вашем обучающем наборе, чтобы сделать одно обновление для параметра в конкретной итерации, в SGD, с другой стороны, вы используете только одну или подмножество обучающей выборки из вашего обучающего набора, чтобы сделать обновление для параметра в конкретной итерации. Если вы используете подмножество, то оно называется Минибатч-стохастическим градиентным спуском.

Какие метрики для оценки регрессионных моделей вы знаете? ?

  1. Среднеквадратичная ошибка(MSE)
  2. Среднеквадратичная ошибка корня(RMSE)
  3. Средняя абсолютная ошибка(MAE)
  4. R2 или коэффициент детерминации
  5. Скорректированный R2

Что такое MSE и RMSE? ?

MSE означает Mean Square Error, а RMSE-Root Mean Square Error. Это метрики, с помощью которых мы можем оценивать модели.

Каков компромисс между смещением и дисперсией? ?

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

Компромисс между смещением и дисперсией-это отношение между ожидаемой ошибкой теста и дисперсией и смещением - оба они вносят свой вклад в уровень ошибки теста и в идеале должны быть как можно меньше:

ExpectedTestError = Variance + Bias? + IrreducibleError 

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

Утверждение

Что такое переобучение? ?

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

Как проверить правильность ваших моделей? ?

Одним из наиболее распространенных подходов является разделение данных на обучающую, проверочную и тестовую части. Модели обучаются на данных поезда, гиперпараметры (например, ранняя остановка) выбираются на основе данных валидации, окончательное измерение производится на тестовом наборе данных. Другой подход-перекрестная валидация: разбить набор данных на K сгибов и каждый раз обучать модели на обучающих сгибах и измерять производительность на сгибах валидации. Кроме того, вы можете комбинировать эти подходы: создать тестовый/несогласованный набор данных и выполнить перекрестную проверку остальных данных. Конечное качество измеряется на тестовом наборе данных.

Почему нам нужно разделить наши данные на три части: обучение, валидация и тестирование? ?

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

Можете ли вы объяснить, как работает перекрестная проверка? ?

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

Что такое K-кратная перекрестная проверка? ?

K fold cross validation-это метод перекрестной проверки, при котором мы выбираем гиперпараметр k. Набор данных теперь разделен на k частей. Теперь мы берем 1-ю часть в качестве проверочного набора, а оставшуюся k-1-в качестве обучающего набора. Затем мы берем 2-ю часть в качестве проверочного набора, а остальные части k-1-в качестве обучающего набора. Таким образом, каждая часть используется в качестве проверочного набора один раз, а остальные части k-1 собираются вместе и используются в качестве обучающего набора. Он не должен использоваться в данных временных рядов.

Как мы выбираем K в K-кратной перекрестной проверке? Какая твоя любимая буква К? ?

Есть две вещи, которые следует учитывать при принятии решения о K: количество моделей, которые мы получаем, и размер набора валидации. Мы не хотим, чтобы количество моделей было слишком меньше, например, 2 или 3. По крайней мере 4 модели дают менее предвзятое решение по метрикам. С другой стороны, мы хотели бы, чтобы набор данных составлял не менее 20-25% от всех данных. Так что, по крайней мере, соотношение 3:1 между обучающим и проверочным набором сохраняется.
Я склонен использовать 4 для небольших наборов данных и 5 для больших, как К.

Классификация

Что такое классификация? Какие модели вы бы использовали для решения задачи классификации? ?

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

Что такое логистическая регрессия? Когда нам нужно его использовать? ?

Логистическая регрессия - это алгоритм машинного обучения, который используется для бинарной классификации. Вы должны использовать логистическую регрессию, когда ваша переменная Y принимает только два значения, например True и False, "спам" и "не спам", "отток" и "не отток" и так далее. Переменная называется "двоичной" или "дихотомической".

Является ли логистическая регрессия линейной моделью? Почему? ?

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

Что такое сигмовидная мышца? Что же он делает? ?

Сигмовидная функция-это тип активационной функции, более конкретно определяемый как функция сдавливания. Функции сжатия ограничивают выход в диапазоне от 0 до 1, что делает эти функции полезными для предсказания вероятностей.

Sigmod(x) = 1/(1+e^{-x})

Как мы оцениваем классификационные модели? ?

В зависимости от задачи классификации мы можем использовать следующие оценочные метрики:

  1. Точность
  2. Точность
  3. Отзыв
  4. Оценка F1
  5. Логистические потери (также известные как кросс-энтропийные потери)
  6. Оценка коэффициента сходства жаккарда

Что такое точность? ?

Точность-это показатель для оценки классификационных моделей. Он рассчитывается путем деления числа правильных предсказаний на общее число предсказаний.

Всегда ли точность является хорошей метрикой? ?

Точность не является хорошим показателем производительности при наличии дисбаланса в наборе данных. Например, в бинарной классификации с 95% Класса А и 5% класса в постоянное предсказание класса будет иметь точность 95%. В случае набора данных дисбаланса нам нужно выбрать точность, отзыв или оценку F1 в зависимости от проблемы, которую мы пытаемся решить.

Что такое таблица путаницы? Что такое ячейки в этой таблице? ?

Таблица путаницы (или матрица путаницы) показывает, сколько истинных положительных (TP), истинно отрицательных (TN), ложноположительных (FP) и ложноотрицательных (FN) моделей было сделано.



ФактическийФактический


Позитив (1)Отрицательный (0)
ПредсказанныйПозитив (1)ТПFP
ПредсказанныйОтрицательный (0)FNTN
  • Истинные положительные значения (TP): когда фактический класс наблюдения равен 1 (True), а прогноз-1 (True)
  • True Negative (TN): когда фактический класс наблюдения равен 0 (False), а прогноз равен 0 (False)
  • False Positive( FP): когда фактический класс наблюдения равен 0 (False) , а прогноз-1 (True)
  • False Negative( FN): когда фактический класс наблюдения равен 1 (True) , а прогноз-0 (False)

Большинство показателей производительности для моделей классификации основаны на значениях матрицы путаницы.

Что такое точность, отзыв и оценка F1? ?

  • Точность и отзыв являются метриками оценки классификации:
  • P = TP / (TP + FP) и R = TP / (TP + FN).
  • Где TP-истинные положительные значения, FP-ложные положительные значения и FN-ложные отрицательные значения
  • В обоих случаях оценка 1 является лучшей: мы не получаем никаких ложных положительных или ложных отрицательных результатов и только истинные положительные результаты.
  • F1-это комбинация точности и отзыва в одном балле (среднее гармоническое значение):
  • F1 = 2 * PR / (P + R).
  • Максимальный счет F равен 1, а минимальный-0, причем 1 является лучшим.

Точность-вспомните компромисс ?

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

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

Что такое кривая ROC? Когда им пользоваться? ??

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

Что такое AUC (AU ROC)? Когда им пользоваться? ??

AUC означает площадь под кривой ROC. ROC - это кривая вероятности, а AUC представляет собой степень или меру отделимости. Он используется, когда нам нужно оценить, насколько модель способна различать классы. Значение находится между 0 и 1, Чем выше, тем лучше.

Как интерпретировать счет AU ROC? ??

Оценка AUC - это значение площади под кривой ROC.

Если предположить, что Roc кривая состоит из точек, то

Отличная модель имеет AUC около 1, Что означает, что она имеет хорошую меру отделимости. Плохая модель имеет AUC около 0, что означает, что она имеет худшую меру отделимости. Когда счет AUC равен 0,5, это означает, что модель не имеет возможности разделения классов вообще.

Что такое кривая PR (precision-recall)? ??

Кривая точноговозврата (или кривая PR) представляет собой график точности (ось y) и отзыва (ось x) для различных порогов вероятности. Кривые точного возврата (кривые PR) рекомендуются для сильно перекошенных областей, где кривые ROC могут обеспечить чрезмерно оптимистичный взгляд на производительность.

Какова площадь под кривой PR? Является ли это полезной метрикой? ?I я

Прецизионный AUC отзыва точно так же, как ROC AUC, в том, что он суммирует кривую с диапазоном пороговых значений в виде одного балла.

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

В каких случаях AU PR лучше, чем AU ROC?

Однако разница заключается в том, что AU ROC смотрит на истинно положительную ставку TPR и ложноположительную ставку FPR, в то время как AU PR смотрит на положительную прогностическую ценность PPV и истинно положительную ставку TPR.

Как правило, если истинные отрицательные значения не имеют значения для проблемы или вы больше заботитесь о положительном классе, AU PR обычно будет более полезным; в противном случае, если вы одинаково заботитесь о положительном и отрицательном классе или ваш набор данных достаточно сбалансирован, то переход с AU ROC-хорошая идея.

Что мы делаем с категориальными переменными? ??

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

  • Одноразовое горячее кодирование
  • Кодировка меток
  • Порядковое кодирование
  • Целевое кодирование

Зачем нам нужна одна-горячая кодировка? ??

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

Регуляризация

Что произойдет с нашей моделью линейной регрессии, если в наших данных будет три столбца: x, y, z — и z будет суммой x и y?

Мы не смогли бы выполнить рессгрессию. Поскольку z линейно зависит от x и y, то при выполнении регрессии будет получена сингулярная (не обратимая) матрица.

Что происходит с нашей моделью линейной регрессии, если столбец z в данных представляет собой сумму столбцов x и y и некоторого случайного шума? ??

Ответьте здесь

Что такое регуляризация? Зачем нам это нужно? ?

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

Какие методы регуляризации вам известны? ??

Существует в основном два типа регуляризации,

  1. Регуляризация L1 (регуляризация лассо) - добавляет сумму абсолютных значений коэффициентов к функции затрат.
  2. Регуляризация L2 (Ridge regularization) - добавляет сумму квадратов коэффициентов к функции затрат.
  • Где определяется величина регуляризации.

Какие методы регуляризации применимы к линейным моделям? ??

AIC/BIC, регрессия хребта, лассо, эластичная сетка, базисная погоня за шумом, модель Рудина-Ошера-Фатеми (ТВ), модель Поттса, RLAD, селектор Данцига, наклон

Как выглядит регуляризация L2 в линейной модели? ??

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

Как выбрать правильные параметры регуляризации? ?

Параметры регуляризации можно выбрать, например, с помощью поиска по сетке https://scikit-learn.org/stable/modules/linear_model.html имеет одну формулу для реализации регуляризации, Альфа в упомянутой формуле может быть найдена путем выполнения RandomSearch или GridSearch на наборе значений и выбора Альфа, которая дает наименьшую перекрестную проверку или ошибку проверки.

Каково влияние регуляризации L2 на веса линейной модели? ??

Регуляризация L2 более строго наказывает большие веса (из-за квадратного штрафного термина), что побуждает значения веса распадаться к нулю.

Как выглядит регуляризация L1 в линейной модели? ??

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

В чем разница между регуляризацией L2 и L1? ??

  • Штрафные условия: регуляризация L1 использует сумму абсолютных значений весов, в то время как регуляризация L2 использует сумму квадратов весов.
  • Выбор признаков: L1 выполняет выбор признаков, уменьшая коэффициенты некоторых предикторов до 0, в то время как L2 этого не делает.
  • Вычислительная эффективность: L2 имеет аналитическое решение, а L1-нет.
  • Мультиколлинеарность: L2 обращается к мультиколлинеарности путем ограничения нормы коэффициента.

Можем ли мы иметь обе компоненты регуляризации L1 и L2 в линейной модели? ??

Да, эластичная сетчатая регуляризация сочетает регуляризацию L1 и L2.

Какова интерпретация термина смещения в линейных моделях? ??

Смещение-это просто разница между прогнозируемым значением и фактическим/истинным значением. Его можно интерпретировать как расстояние от среднего предсказания и истинного значения, то есть истинное значение минус среднее(предсказания). Но не путайте точность и предвзятость.

Как мы интерпретируем веса в линейных моделях? ??

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

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

Если вес для одной переменной выше, чем для другой — можем ли мы сказать, что эта переменная более важна? ??

Да - если ваши предикторные переменные нормализованы.

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

Когда нам нужно выполнить нормализацию признаков для линейных моделей? Когда это нормально-не делать этого? ??

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

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

Выбор функции

Что такое выбор функций? Зачем нам это нужно? ?

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

Важен ли выбор признаков для линейных моделей? ??

Ответьте здесь

Какие методы отбора признаков вам известны? ??

Вот некоторые из выбранных функций:

  • Анализ Основных Компонентов
  • Анализ Компонентов Соседства
  • Алгоритм Облегчения

Можем ли мы использовать регуляризацию L1 для выбора признаков? ??

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

Можем ли мы использовать регуляризацию L2 для выбора признаков? ??

Ответьте здесь

Деревья решений

Что такое деревья решений? ?

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

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

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

Различные техники: например, Джини, получение информации, Хи-квадрат, энтропия.

Как мы тренируем деревья решений? ??

  1. Начните с корневого узла.
  2. Для каждой переменной X находим множество S_1, минимизирующее сумму примесей узла в двух дочерних узлах, и выбираем разбиение {X*, S*}, дающее минимум по всем X и S.
  3. Если критерий остановки достигнут, выйдите. В противном случае примените Шаг 2 к каждому дочернему узлу по очереди.

Каковы основные параметры модели дерева решений? ?

  • максимальная глубина дерева
  • минимальные образцы на листовой узел
  • критерий примесности

Как мы обрабатываем категориальные переменные в деревьях принятия решений? ??

Некоторые алгоритмы дерева решений могут обрабатывать категориальные переменные из коробки, другие-нет. Однако мы можем преобразовывать категориальные переменные, например, с помощью двоичного или однократного кодера.

Каковы преимущества одного дерева решений по сравнению с более сложными моделями? ??

  • простота реализации
  • быстрая тренировка
  • быстрый вывод
  • хорошая объяснимость

Как мы можем узнать, какие функции более важны для модели дерева решений? ??

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

Случайный лес

Что такое случайный лес? ?

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

Зачем нам нужна рандомизация в случайном лесу? ??

Случайный лес в расширении алгоритма bagging, который берет случайные выборки данных из обучающего набора данных (с заменой), обучает несколько моделей и средних прогнозов. Кроме того, каждый раз, когда рассматривается расщепление дерева, случайный лес берет случайную выборку из m признаков из полного набора n признаков (с заменой) и использует это подмножество признаков в качестве кандидатов на расщепление (например,m = sqrt(n)).

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

Каковы основные параметры модели случайного леса? ??

  • max_depth: Самый длинный путь между корневым узлом и листом
  • min_sample_split: Минимальное количество наблюдений, необходимых для разбиения данного узла.
  • max_leaf_nodes: Обусловливает расщепление дерева и, следовательно, ограничивает рост деревьев.
  • min_samples_leaf: минимальное количество выборок в листовом узле
  • n_estimators: Количество деревьев
  • max_sample: Доля исходного набора данных, заданного любому отдельному дереву в данной модели
  • max_features: Ограничивает максимальное количество объектов, предоставляемых деревьям в модели случайного леса

Как мы выбираем глубину деревьев в случайном лесу? ??

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

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

Откуда мы знаем, сколько деревьев нам нужно в случайном лесу? ??

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

Легко ли распараллелить обучение модели случайного леса? Как мы можем это сделать? ??

Да, R предоставляет простой способ распараллеливания обучения случайных лесов для крупномасштабных данных. Он использует параметр под названием multicombine, который может быть установлен в TRUE для распараллеливания вычислений случайных лесов.

rf < - foreach(ntree=rep(25000, 6),. combine=randomForest::combine, . multicombine=TRUE,. packages='randomForest') %dopar% {  randomForest(x, y, ntree=ntree) }

Каковы потенциальные проблемы со многими крупными деревьями? ??

Ответьте здесь

Что делать, если вместо того, чтобы найти лучший раскол, мы случайным образом выбираем несколько расколов и просто выбираем лучший из них. Сработает ли это? ?

Ответьте здесь

Что происходит, когда мы имеем коррелированные функции в наших данных? ??

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

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

Градиентный бустинг

Что такое деревья градиентного повышения? ??

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

В чем разница между случайным лесом и градиентным бустингом? ??

  1. Случайные леса строят каждое дерево независимо, в то время как градиентный бустинг строит по одному дереву за раз.
  2. Случайные леса объединяют результаты в конце процесса (путем усреднения или "правил большинства"), в то время как градиентный бустинг объединяет результаты по пути.

Можно ли распараллелить обучение модели градиентного бустинга? Как это сделать? ??

Да, различные фреймворки предоставляют различные возможности для ускорения обучения, используя графические процессоры для ускорения процесса, делая его очень распараллеливаемым.Например, для XGBoost tree_method = 'gpu_hist' опция делает обучение быстрее с помощью графических процессоров.

Важность признаков в деревьях повышения градиента — каковы возможные варианты? ??

Ответьте здесь

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

Ответьте здесь

Каковы основные параметры модели градиентного бустинга? ??

Существует множество параметров, но ниже приведены несколько ключевых значений по умолчанию.

  • learning_rate=0.1 (усадка).
  • n_estimators=100 (количество деревьев).
  • max_depth=3.
  • min_samples_split=2.
  • min_samples_leaf=1.
  • подвыборка=1,0.

Как вы подходите к настройке параметров в XGBoost или LightGBM? ?

В зависимости от набора данных настройка параметров может быть выполнена вручную или с помощью систем оптимизации гиперпараметров, таких как optuna и hyperopt. При ручной настройке параметров мы должны знать max-depth, min_samples_leaf и min_samples_split, чтобы наша модель не перекрывала данные, а пыталась предсказать обобщенные характеристики данных (в основном сохраняя дисперсию и смещение низкими для нашей модели).

Как вы выбираете количество деревьев в модели градиентного бустинга? ??

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

Настройка параметров

Какие стратегии настройки гиперпараметров (в целом) вы знаете? ??

Существует несколько стратегий для гипернастройки, но я бы сказал, что три наиболее популярные в настоящее время следующие:

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

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

  • В совершенно другой структуре, Байесовской оптимизации считается более статистическим способом оптимизации и обычно используется при использовании нейронных сетей, особенно потому, что одна оценка нейронной сети может быть вычислительно дорогостоящей. В многочисленных исследовательских работах этот метод значительно превосходит поиск по сетке и случайный поиск и в настоящее время используется на облачной платформе Google, а также AWS. Поскольку глубокое объяснение требует тяжелого фона в байесовской статистике и гауссовых процессах (и, возможно, даже некоторой теории игр), "простое" объяснение состоит в том, что гораздо более простая/быстрая функция сбора данных разумно выбирает (используя суррогатная функция, такая как вероятность улучшения или GP-UCB), значения гиперпараметров которой нужно примерить на вычислительно дорогой, оригинальный алгоритм. Используя результат начальной комбинации значений на дорогостоящей/исходной функции, функция сбора принимает во внимание результат дорогостоящего/исходного алгоритма и использует его в качестве своего предварительного знания, чтобы снова придумать другой набор гиперпараметров для выбора во время следующей итерации. Этот процесс продолжается либо в течение заданного числа итераций, либо в течение заданного промежутка времени, и аналогично выбирается комбинация гиперпараметров, которая лучше всего работает на дорогостоящем/оригинальном алгоритме.

В чем разница между стратегией настройки параметров поиска сетки и случайным поиском? Когда использовать то или иное? ??

Для получения более подробной информации обратитесь к приведенному выше ответу.

Нейронные сети

Какие проблемы могут решать нейронные сети? ?

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

Как работает обычная полностью подключенная нейронная сеть обратной связи? ??

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

Зачем нам нужны функции активации? ?

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

Каковы проблемы с сигмовидной кишкой как функцией активации? ??

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

Что такое Релу? Чем она лучше сигмовидной или танх? ??

ReLU-это аббревиатура для выпрямленного линейного блока. Это функция активации, которая имеет значение 0 для всех отрицательных значений и значение f(x) = x для всех положительных значений. ReLU имеет простую функцию активации, которая позволяет быстро вычислять, и в то время как сигмоидные и танх-функции активации насыщаются при более высоких значениях, ReLU имеет потенциально бесконечную активацию, которая решает проблему исчезающих градиентов.

Как мы можем инициализировать веса нейронной сети? ??

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

  1. Инициализация Весов нулями. Установка нулевого веса делает вашу сеть не лучше, чем линейная модель. Важно отметить, что установка смещений на 0 не создаст никаких проблем, поскольку ненулевые веса заботятся о нарушении симметрии, и даже если смещение равно 0, значения в каждом нейроне все равно различны.
  2. Инициализация Весов случайным образом. Присвоение случайных значений Весам лучше, чем просто присвоение 0.
  • а) если веса инициализируются очень высокими значениями,то термин np.dot(W, X)+b становится значительно выше, а если применяется функция активации типа sigmoid (), то функция отображает свое значение вблизи 1, где наклон градиента изменяется медленно и обучение занимает много времени.
  • Б) если веса инициализируются с низкими значениями, то они сопоставляются с 0, Где случай тот же, что и выше. Эту проблему часто называют исчезающим градиентом.

А что, если мы установим все веса нейронной сети равными 0?

Если все веса нейронной сети равны нулю, то выход каждого соединения будет одинаковым (W*x = 0). Это означает, что градиенты, которые обратно распространяются на каждое соединение в слое, одинаковы. Это означает, что все связи/веса изучают одно и то же, и модель никогда не сходится.

Какие методы регуляризации нейронных сетей вы знаете? ??

  • Регуляризация L1 - определяется как сумма абсолютных значений отдельных параметров. Штраф L1 приводит к тому, что подмножество Весов становится равным нулю, предполагая, что соответствующие функции могут быть безопасно отброшены.
  • Регуляризация L2 - определяется как сумма квадратов отдельных параметров. Часто поддерживается регуляризация гиперпараметра Альфа. Это приводит к снижению веса.
  • Увеличение данных - это требует, чтобы некоторые поддельные данные были созданы как часть обучающего набора.
  • Выпадение : Это наиболее эффективный метод регуляризации для новых сетей. Несколько узлов randome в каждом слое деактивируются при прямом проходе. Это позволяет алгоритму обучаться на разных наборах узлов в каждой итерации.

Что такое отсев? Почему это полезно? Как это работает? ??

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

Оптимизация в нейронных сетях

Что такое обратное распространение? Как это работает? Зачем нам это нужно? ??

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

Нам нужна обратная связь, потому что,

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

Какие методы оптимизации для обучения нейронных сетей вы знаете? ??

  • Градиентный Спуск
  • Стохастический Градиентный Спуск
  • Мини-пакетный градиентный спуск(лучший среди градиентных спусков)
  • Нестеров Ускоренный Градиент
  • Импульс
  • Адаград
  • Ададельта
  • Адам(лучший из них. меньше времени, более эффективно)

Как мы используем SGD (стохастический градиентный спуск) для обучения нейронной сети? ??

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

Какова скорость обучения? ?

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

Что происходит, когда скорость обучения слишком велика? Слишком маленький? ?

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

Как установить скорость обучения? ??

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

Что такое Адам? В чем главная разница между Адамом и СГД? ??

Adam (Adaptive Moment Estimation) - это метод оптимизации для обучения нейронных сетей. в среднем это лучший оптимизатор .Он работает с моментами первого и второго порядка. Интуиция, стоящая за Адамом, заключается в том, что мы не хотим катиться так быстро только потому, что можем перепрыгнуть через минимум, мы хотим немного уменьшить скорость для тщательного поиска.

Адам имеет тенденцию сходиться быстрее, в то время как SGD часто сходится к более оптимальным решениям. Недостатки высокой дисперсии SGD исправляются Адамом (как преимущество для Адама).

Когда вы будете использовать Adam и когда SGD? ??

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

Хотим ли мы иметь постоянную скорость обучения или лучше менять ее на протяжении всего обучения? ??

Ответьте здесь

Как мы решаем, когда прекратить обучение нейронной сети? ?

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

Что такое модель checkpointing? ??

Сохранение Весов, полученных с помощью модели mid training для длительно выполняющихся процессов, называется моделью checkpointing, так что вы можете возобновить обучение с определенной контрольной точки.

Расскажите, как вы подходите к моделированию тренировочного процесса? ??

Ответьте здесь

Нейронные сети для компьютерного зрения

Как мы можем использовать нейронные сети для компьютерного зрения? ??

Нейронные сети, используемые в области компьютерного зрения, как правило, являются сверточными нейронными сетями (CNN). Вы можете узнать о свертках ниже. Похоже, что свертки довольно мощны, когда речь заходит о работе с изображениями и видео, благодаря их способности извлекать и изучать сложные функции. Таким образом, CNN-это метод go-to для любой проблемы в компьютерном зрении.

Что такое сверточный слой? ??

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

Зачем нам вообще нужны свертки? Разве мы не можем использовать для этого полностью связанные слои? ??

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

Что такое объединение в Си-эн-эн? Зачем нам это нужно? ??

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

Как работает максимальный пул? Существуют ли другие методы объединения? ??

Максимальное объединение-это метод, при котором максимальное значение рецептивного поля передается в следующую карту объектов. Наиболее часто используемым рецептивным полем является 2 x 2 с шагом 2, что означает, что карта признаков понижена с N x N до N/2 x N/2. Рецептивные поля размером более 3 х 3 используются редко, так как теряется слишком много информации.

Другие методы объединения включают в себя:

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

Являются ли CNNs устойчивыми к вращениям? Что происходит с предсказаниями CNN, если изображение поворачивается? ?

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

Что такое аугментации? Зачем они нам нужны? ?

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

А какие дополнения ты знаешь? ?

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

Как выбрать, какие дополнения использовать? ??

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

Какие архитектуры Си-эн-эн для классификации вы знаете? ?

Классификация Изображений

  • Начало v3
  • Xception
  • Денсенет
  • AlexNet
  • VGG16
  • ResNet
  • SqueezeNet
  • Эффективная сеть
  • MobileNet

Последние три разработаны таким образом, что они используют меньшее количество параметров, что полезно для edge AI.

Что такое трансфертное обучение? Как это работает? ??

Учитывая исходный домен D_S и учебную задачу T_S, целевой домен D_T и учебную задачу T_T, трансфертное обучение направлено на то, чтобы помочь улучшить обучение целевой прогностической функции f_T в D_T с использованием знаний в D_S и T_S, где D_S ? D_T или T_S ? T_T. Другими словами, трансферное обучение позволяет повторно использовать знания, полученные из других областей или учебных задач.

В контексте CNNs мы можем использовать сети, которые были предварительно обучены на популярных наборах данных, таких как ImageNet. Затем мы можем использовать веса слоев, которые учатся представлять объекты, и объединить их с новым набором слоев, который учится сопоставлять представления объектов с заданными классами. Две популярные стратегии-либо полностью заморозить слои, которые изучают представления объектов, либо дать им меньшую скорость обучения.

Что такое обнаружение объекта? Вы знаете какие-нибудь архитектуры для этого? ?

Ответьте здесь

Что такое сегментация объектов? Вы знаете какие-нибудь архитектуры для этого? ?

Ответьте здесь

Классификация текста

Как мы можем использовать машинное обучение для классификации текста? ??

Ответьте здесь

Что такое мешок слов? Как мы можем использовать его для классификации текста? ??

Пакет слов-это представление текста, которое описывает появление слов в документе. Порядок или структура слов не рассматривается. Для классификации текста мы смотрим на гистограмму слов в тексте и рассматриваем каждое количество слов как функцию.

Каковы преимущества и недостатки мешка слов? ??

Преимущества:

  1. Прост в понимании и реализации.

Недостатки:

  1. Словарь требует тщательного проектирования, особенно для того, чтобы управлять размером, который влияет на разреженность представлений документа.
  2. Разреженные представления труднее моделировать как по вычислительным причинам (пространственная и временная сложность), так и по информационным причинам
  3. Отбрасывание порядка слов игнорирует контекст и, в свою очередь, значение слов в документе. Контекст и значение могут многое предложить модели, что при моделировании можно было бы сказать о разнице между одними и теми же словами, расположенными по-разному (“это интересно” против “это интересно”), синонимами (“старый велосипед” против “подержанный велосипед”).

Что такое N-граммы? Как мы можем их использовать? ??

Функция токенизации в последовательные последовательности слов называется n-граммами. С его помощью можно узнать N наиболее часто встречающихся слов (как часто за словом X следует слово Y) в данном предложении.

Насколько большим должно быть N для нашего мешка слов при использовании N-граммов? ??

Ответьте здесь

Что такое TF-IDF? Как это полезно для классификации текста? ??

Термин частота (TF) - это оценка частоты слова в текущем документе. Обратная частота документов (IDF) - это оценка того, насколько редко это слово встречается в документах. Он используется в сценарии, где сильно повторяющиеся слова не могут содержать столько информационного контента, сколько доменные конкретные слова. Например, такие слова, как” the", которые часто встречаются во всех документах, поэтому должны быть менее взвешенными. Оценка TF-IDF выделяет слова, которые различны (содержат полезную информацию) в данном документе.

Какую модель вы бы использовали для классификации текста с помощью функции bag of words? ??

Ответьте здесь

Вы бы предпочли модель деревьев градиентного бустинга или логистическую регрессию при классификации текста с помощью мешка слов? ??

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

Что такое встраивание слов? Почему они полезны? Вы знаете Word2Vec? ?

Ответьте здесь

Знаете ли вы какие-нибудь другие способы получить вложения слов? ?

Ответьте здесь

Если у вас есть предложение с несколькими словами, вам, возможно, потребуется объединить несколько вложений слов в одно. Как бы вы это сделали? ??

Подходы ранжированы от простых до более сложных:

  1. Возьмите среднее значение по всем словам
  2. Возьмите средневзвешенное значение по всем словам. Утяжеление может быть сделано обратной частотой документа (частью ИДФ ТФ-ИДФ).
  3. Используйте модель ML как LSTM или трансформатор.

Вы бы предпочли градиентную модель повышающих деревьев или логистическую регрессию при выполнении классификации текста с вложениями? ??

Ответьте здесь

Как можно использовать нейронные сети для классификации текста? ?

Ответьте здесь

Как мы можем использовать CNN для классификации текста? ?

Ответьте здесь

Кластеризация

Что такое неконтролируемое обучение? ?

Неконтролируемое обучение направлено на обнаружение отцов в данных, где нет никаких меток.

Что такое кластеризация? Когда она нам понадобится? ?

Алгоритмы кластеризации группируют объекты таким образом, что сходные характерные точки помещаются в одни и те же группы (кластеры), а несходные характерные точки помещаются в разные кластеры.

Вы знаете, как работает K-means? ??

  1. Разбиение точек на k подмножеств.
  2. Вычислите начальные точки как новые центроиды кластеров текущего разбиения.
  3. Назначьте каждую точку кластеру с ближайшей начальной точкой.
  4. Вернитесь к Шагу 2 или остановитесь, когда задание не изменится.

Как выбрать K для K-средних? ??

  • Знание предметной области, то есть эксперт знает значение k
  • Метод локтя: вычислите кластеры для различных значений k, для каждого k вычислите общую внутрикластерную сумму квадрата, постройте сумму в соответствии с количеством кластеров и используйте полосу в качестве числа кластеров.
  • Метод среднего силуэта: вычислить кластеры для разных значений k, для каждого k вычислить средний силуэт наблюдений, построить силуэт в соответствии с количеством кластеров и выбрать максимальный в качестве числа кластеров.

Какие еще алгоритмы кластеризации вы знаете? ??

  • k-medoids: принимает самую центральную точку вместо среднего значения в качестве центра кластера. Это делает его более устойчивым к шуму.
  • Агломеративная иерархическая кластеризация (AHC): иерархические кластеры, объединяющие ближайшие кластеры, начинающиеся с каждой точки как свой собственный кластер.
  • Кластеризация дивизивного анализа (DIANA): иерархическая кластеризация, начинающаяся с одного кластера, содержащего все точки, и разбивающая кластеры до тех пор, пока каждая точка не опишет свой собственный кластер.
  • Пространственная кластеризация приложений с шумом на основе плотности (DBSCAN): Кластер определяется как максимальный набор точек, связанных плотностью.

Вы знаете, как работает DBScan? ??

  • Два входных параметра epsilon (радиус окрестности) и minPts (минимальное количество точек в Эпсилон-окрестности)
  • Кластер определяется как максимальный набор точек, связанных плотностью.
  • Точки p_j и p_i являются плотностно связанными w.r.t. epsilon и minPts, если существует точка o такая, что и i, и j являются плотностно достижимыми из o w.r.t. epsilon и minPts.
  • p_j-это плотность,достижимая из p_i w.r.t. epsilon, minPts, если существует цепочка точек p_i -> p_i+1 ->> p_i+x = p_j такая, что p_i+x непосредственно достижима по плотности из p_i+x-1.
  • p_j-это непосредственно достижимая по плотности точка окрестности p_i, если dist (p_i, p_j)

Когда бы вы выбрали K-means и когда DBScan? ?

  • DBScan более робастн к шуму.
  • DBScan лучше, когда количество кластеров трудно угадать.
  • K-means имеет меньшую сложность, т. е. он будет намного быстрее, особенно с большим количеством очков.

Уменьшение размерности

Что такое проклятие размерности? Почему нас это волнует? ??

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

Знаете ли вы какие-нибудь методы уменьшения размерности? ??

  • Сингулярная декомпозиция (SVD)
  • Анализ основных компонентов (PCA)
  • Линейный Дискриминантный анализ (LDA)
  • T-распределенное стохастическое соседнее вложение (t-SNE)
  • Автоэнкодеры
  • Фурье-и вейвлет-преобразования

Что такое сингулярная декомпозиция? Как он обычно используется для машинного обучения? ??

  • Сингулярная декомпозиция (SVD) - это общий метод матричного разложения, который делит матрицу X на три матрицы L (левые сингулярные значения), ? (диагональная матрица) и R^T (правые сингулярные значения).
  • Для машинного обучения обычно используется анализ главных компонентов (PCA). Это особый тип СВД, где сингулярные значения соответствуют собственным векторам, а значения диагональной матрицы являются квадратами собственных значений. Мы используем эти характеристики, поскольку они являются статистически описательными.
  • Вычислив собственные векторы и собственные значения, мы можем использовать критерий Кайзера-Гутмана, график осыпи или долю объясненной дисперсии для определения главных компонентов (то есть конечной размерности), которые полезны для уменьшения размерности.

Ранжирование и поиск

В чем заключается проблема ранжирования? Какие модели вы можете использовать для их решения? ??

Ответьте здесь

Каковы хорошие неконтролируемые исходные линии для поиска текстовой информации? ??

Ответьте здесь

Как бы вы оценили свои алгоритмы ранжирования? Какие офлайн-метрики вы бы использовали? ??

Ответьте здесь

Что такое точность и отзыв в k?

Точность при k и отзыв при k-это оценочные метрики для алгоритмов ранжирования. Точность при k показывает долю релевантных элементов в первых k результатах алгоритма ранжирования. А Recall at k указывает на долю релевантных элементов, возвращенных в топе k результатов из всех правильных ответов на данный запрос.

Пример: для поискового запроса "автомобиль" в вашем магазине есть 3 релевантных товара. Ваш алгоритм поиска возвращает 2 из этих релевантных продуктов в первых 5 результатах поиска. Точность при 5 = # num релевантных продуктов в результате поиска / k = 2/5 = 40% отзыв при 5 = # num релевантных продуктов в результате поиска / # num всех релевантных продуктов = 2/3 = 66,6%

Что такое средняя средняя точность при k? ?

Ответьте здесь

Как мы можем использовать машинное обучение для поиска? ??

Ответьте здесь

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

Ответьте здесь

Можно ли сформулировать задачу поиска как задачу классификации? Но как? ??

Ответьте здесь

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

Ответьте здесь

Знаете ли вы, как использовать деревья градиентного бустинга для ранжирования? ?

Ответьте здесь

Как вы проводите онлайн-оценку нового алгоритма ранжирования? ??

Ответьте здесь

Рекомендательные системы

Что такое рекомендательная система? ?

Рекомендательные системы - это программные средства и методы, которые предоставляют рекомендации для элементов, которые, скорее всего, представляют интерес для конкретного пользователя.

Каковы хорошие исходные условия при построении рекомендательной системы? ??

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

Что такое коллаборативная фильтрация? ??

  • Коллаборативная фильтрация является наиболее заметным подходом для выработки рекомендаций.
  • Он использует мудрость толпы, то есть дает рекомендации, основанные на опыте других.
  • Рекомендация рассчитывается как среднее значение по другим видам опыта.
  • Скажем, мы хотим дать оценку, которая показывает, насколько пользователю u понравится предмет i. Затем мы можем вычислить его с опытом N других пользователей U как r_ui = 1/N * sum(v in U) r_vi.
  • Чтобы оценить сходные впечатления с более высоким весом, мы можем ввести сходство между пользователями, которое мы используем в качестве множителя для каждой оценки.
  • Кроме того, поскольку у пользователей есть индивидуальный профиль, один пользователь может иметь средний рейтинг намного больше, чем другой пользователь, поэтому мы используем методы нормализации (например, центрирование или нормализация Z-score), чтобы удалить предубеждения пользователей.
  • Коллаборативная фильтрация нуждается только в рейтинговой матрице в качестве входных данных и со временем улучшается. Однако он плохо работает на разреженных данных, не работает для холодных стартов (см. ниже) и обычно имеет тенденцию к переобучению.

Как мы можем включить неявную обратную связь (клики и т. д.) В наши рекомендательные системы? ??

В отличие от явной обратной связи, неявные наборы данных обратной связи не содержат негативных примеров. Например, явная обратная связь может быть положительной или отрицательной оценкой, но неявная обратная связь может быть количеством покупок или кликов. Один из популярных подходов к решению этой проблемы называется взвешенным чередованием наименьших квадратов (wALS) [Hu, Y., Koren, Y., & Volinsky, C. (2008, Декабрь). Коллаборативная фильтрация для неявных наборов данных обратной связи. В Области Интеллектуального Анализа Данных, 2008. ICDM ' 08. Восьмая международная конференция IEEE по (стр. 263-272). IEEE.]. вместо того, чтобы непосредственно моделировать рейтинговую матрицу, числа (например количество кликов) опишите силу в наблюдениях за действиями пользователя. Модель пытается найти скрытые факторы,которые могут быть использованы для прогнозирования ожидаемого предпочтения пользователя для элемента.

Что такое проблема холодного старта? ??

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

Возможные подходы к решению проблемы холодного пуска? ???

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

Временные ряды

Что такое временной ряд? ?

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

Чем временные ряды отличаются от обычной задачи регрессии? ?

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

Какие модели вы знаете для решения задач временных рядов? ??

  • Простое экспоненциальное сглаживание: аппроксимация временного ряда экспоненциальной функцией
  • Экспоненциальное сглаживание с поправкой на Тренд (метод Холта): экспоненциальное сглаживание, которое также моделирует тренд
  • Экспоненциальное сглаживание с поправкой на тренд и сезонность (метод Холта - Винтера): экспоненциальное сглаживание, которое также моделирует тренд и сезонность
  • Декомпозиция временного ряда: разложение временного ряда на четыре составляющие тренд, сезонная вариация, циклическая вариация и нерегулярная составляющая
  • Авторегрессионные модели: аналогичны множественной линейной регрессии, за исключением того, что зависимая переменная y_t зависит от своих собственных предыдущих значений, а не от других независимых переменных.
  • Подходы к глубокому обучению (RNN, LSTM и др.)

Если есть тенденция в нашей серии, как мы можем ее устранить? И зачем нам это делать? ??

Мы можем явно моделировать тренд (и/или сезонность) с помощью таких подходов, как метод Холта или метод Холта-Винтера. Мы хотим явно смоделировать тренд, чтобы достичь свойства стационарности для данных. Многие подходы к временным рядам требуют стационарности. Без стационарности интерпретация результатов этих анализов проблематична [Manuca, Radu & Savit, Robert. (1996). Стационарность и нестационарность в анализе временных рядов. Физика Д: Нелинейные Явления. 99. 134-161. 10.1016/S0167-2789(96)00139-X. ].

У вас есть ряд только с одной переменной “y”, измеренной в момент времени t. Как предсказать “y” в момент времени t+1? Какие подходы вы бы использовали? ??

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

У вас есть ряд с переменной " y” и набором признаков. Как вы предсказываете " y” при t+1? Какие подходы вы бы использовали? ??

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

Каковы проблемы с использованием деревьев для решения задач временных рядов? ??

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


Источник: github.com

Комментарии: