"Машинное обучение"

Временная и пространственная сложность моделей машинного обучения

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

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

«Предполагая, что данные обучения содержат n точек с d измерениями»

1) K-Ближайшие соседи:

Учитывая точку запроса (xq), K-NN выполняет следующие шаги, чтобы предсказать результат (yq). Для каждого xi в обучающем наборе вычислите расстояние для xi и xq.

Вычисление расстояния для одной точки занимает o (d) времени, так как мы вычисляем для каждого xi при обучении, это занимает o (nd)

Затем сохраните наименьшие k расстояний в списке и проголосуйте большинством за K очков, что потребовало o (1). Поскольку нам нужны данные всего поезда во время выполнения, сложность пространства будет окончательно отключена для KNN.

Сложность выполнения = O (nd)

Сложность пространства = O (nd)

Для KNN нет временной сложности поездов

2) Наивный байесовский:

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

Итак, на этапе обучения Наивного Байеса он вычисляет все вероятности правдоподобия и априорную вероятность, для чего требуется временная сложность O (ndc), где c = количество классов, а пространственная сложность = O (dc)

Сложность времени обучения = O (n * d * c)

Сложность выполнения = O (d * c)

Сложность пространства = O (d * c)

3) Логистическая регрессия:

Для точки запроса (xq) логистической регрессии нужен только весовой вектор d-измерения (W).

yq = сигмоид (W.xq), что занимает O (d) времени, а необходимое пространство - O (d)

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

Логистическая регрессия применима к приложениям с малой задержкой и эффективным использованием памяти во время выполнения.

Сложность времени обучения = O (n * d)

Сложность выполнения = O (d)

Сложность пространства = O (d)

4) Дерево решений:

Сложность времени обучения = O (n * log (n) * d)

Сложность пространства = O (p), где p = количество узлов в дереве

Сложность времени выполнения = O (k), где k = глубина дерева

почему O (n * log (n) * d)?

Допустим, в наборе данных есть n точек d объектов, и все функции являются числовыми.

  • Поскольку числовой объект необходимо отсортировать, для сортировки одного объекта требуется O (n * lgn)
  • Тогда сортировка всех d объектов займет O (n * lgn * d)
  • Теперь нам нужно рассчитать информационный прирост на каждом пороге. Для одной функции требуется O (n), а для d функций - O (n * d).
  • Сложность времени O (n * lgn * d) + O (nd)
  • Из-за нотации Big O O (nlogn * d) + O (n * d) будет почти равно O (nlogn * d).

Сложность рабочего пространства = o (кол-во узлов).
Во время выполнения для DT для принятия решения требуются только условия if-else
, поэтому сложность пространства является разумной.

5) Агрегация начальной загрузки с деревьями решений (или) случайным лесом:

Поскольку случайный лес формируется из k базовых учащихся (деревья решений) для точки запроса xq для прогнозирования yq, мы получаем k выходов, а затем путем агрегирования (основной вес или среднее / медианное значение) применяется к выходам k базовых учащихся (DT) для генерировать yq.

для случайного леса с m деревьями решений

Сложность времени обучения = O (n * log (n) * d * m)

Сложность пространства = O (p * m)

Сложность выполнения = O (k * m)

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

6) Дерево принятия решений по градиентному усилению:

Сложность времени обучения = O (n * log (n) * d * m)

Сложность пространства = O (p * m + gamma), которую необходимо умножить на m моделей.

Сложность выполнения = O (k * m)

7) SVM:

Сложность времени обучения = O (n²)

Сложность пространства = О

Сложность времени выполнения = O (s * d)
s = количество поддерживающих векторов, d = размерность данных

8) Ссылки:

Www.appliedaicourse.com

Https://www.hackerearth.com/practice/basic-programming/complexity-analysis/time-and-space-complexity/tutorial/#:~:text=Time%20complexity%20of%20an%20algorithm,the%20length % 20of% 20the% 20input. & Text = Пусть% 20each% 20operation% 20 занимает% 20time .

Дальнейшее чтение: