QUBO-формулировки для линейной регрессии, SVM и метода k-средних#

Автор(ы):

Описание лекции#

Здесь рассмотрим QUBO-формулировки трех задач ML (линейная регрессия, SVM, сбалансированная кластеризация методом k-средних) аналогично тому, как в предыдущей лекции было продемонстрировано сведение к QUBO задач о максимальном разрезе в графе, о коммивояжере и о выделении сообществ в графе. Изложение полностью основывается на статье [DAPN21].

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

  • R – множество действительных чисел;

  • N – количество объектов в обучающем наборе, N{1,2,};

  • d – количество признаков (features) для объектов в обучающем наборе, d{1,2,};

  • X – тренировочный набор, содержит по одному объекту в каждой из N строк, каждая строка содержит d значений признаков, XRN×d;

  • Y – набор истинных “ответов” (ground truth), соответствующих тренировочным объектам из X (YRN в случае регрессии, Y{0,1}N в случае бинарной классификации);

  • – произведение Кронекера (тензорное произведение);

  • – произведение Адамара (поэлементное произведение).

Общая формулировка QUBO-задачи, которая используется в статье [DAPN21] и к которой всё сводится, выглядит так:

(47)#zTAz+zTbminz{0,1}M

где M – натуральное число, z – бинарный вектор решения, ARM×M – QUBO-матрица с действительными элементами, bRM – QUBO-вектор. Как отмечалось в предыдущей лекции, при zi{0,1} выполняется равенство zi2=zi, так что линейные члены в (47) можно включить в квадратичные, но этого делать не будем, т.к. для целей этой лекции и для лучшего понимания удобнее сохранить минимизируемую квадратичную форму именно в виде (47).

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

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

yi(pred)=w,xi+b,yi(pred)yi,

где yi(pred) – предсказываемое значение, yi – истинное значение (из разметки), , – скалярное произведение. Удобно сразу избавиться от слагаемого b (bias), добавив единицу к набору признаков. Тогда bias окажется включенным в веса w, а тренировочный набор будет иметь по (d+1) признаков на объект: XRN×(d+1). Требуется найти веса w, при которых квадрат евклидовой нормы невязки минимален:

(48)#E(w)=||XwY||2minwRd+1
../../../_images/fig_12.png

Fig. 94 Иллюстрация к задаче линейной регрессии.#

Известно аналитическое решение задачи (48):

w=(XTX)1XTY

Если (XTX)1 не существует, нужно вычислить псевдообратную матрицу. ВременнАя сложность решения задачи линейной регрессии равна O(Nd2), т.к. нужно O(Nd2) для вычисления матрицы XTX и O(d3) для вычисления обратной к ней (предполагаем, что Nd).

QUBO-формулировка#

Перепишем выражение (48):

(49)#E(w)=wTXTXw2wTXTY+YTYminwRd+1

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

±110.101=±(020+121+122)идем влево от разд. точки±(121+022+123)идем вправо от разд. точки=±(2+4+12+18)=±6.625

Бинарные компоненты логично рассматривать как индикаторы наличия или отсутствия соответствующих степеней двойки в бинарном представлении каждого действительного числа. Введем вектор-столбец P, который отвечает за точность представления (Precision vector) и состоит из степеней двойки со знаками:

P=[2l,2l1,,2m+1,2m,2m,2m+1,,2l1,2l]T,

этот вектор отсортирован по возрастанию элементов. Отводится l двоичных разрядов для целой части числа, m разрядов для дробной. l определяется максимальным по модулю действительным числом, которое хотим представлять; m определяется желаемой точностью представления. Число элементов вектора P равно (m+1+l)2=K.

Вводим вектор w~i{0,1}K такой, что

w~iTP=k=1Kpkw~ikwiR

Чтобы не было неоднозначности, нужно договориться о том, что для представления wi>0 используем только положительные элементы вектора P, а для wi<0 – только отрицательные.

Составляем бинарный вектор w~{0,1}K(d+1)

w~=[w~11w~1Kпредст. w1w~21w~2Kпредст. w2w~(d+1)1w~(d+1)Kпредст. wd+1]T

и матрицу точности P (Precision matrix), которая задает переход к бинарному представлению векторов:

P=Id+1PT,

где Id+1 – единичная матрица размера (d+1). Матрица P имеет размерность (d+1)×K(d+1). Исходный вектор весов можно записать как

(50)#w=Pw~,

где знак “=” на самом деле означает приближенное равенство (наше fixed-point представление имеет конечную точность).

Всё готово для того, чтобы переписать исходную задачу (49) в QUBO-формулировке. Подставляем (50) в (49) и получаем

(51)#E(w~)=w~TPTXTXPw~2w~TPTXTYminw~{0,1}(d+1)K

слагаемое YTY отброшено, т.к. это константа, никак не влияющая на решение задачи оптимизации без ограничений.

Оценка вычислительной сложности#

Для исходной задачи регрессии (48) количество значений в датасете X равно O(Nd). Мы ввели K бинарных переменных для каждого из (d+1) весов. Значит, получилось O(Kd) переменных в QUBO-формулировке (51). Для решения задачи требуется O(K2d2) кубитов (см. [DPP19]), это пространственная сложность в рассматриваемом подходе.

ВременнАя сложность в классической задаче O(Nd2). В случае QUBO-задачи для временнОй оценки нужно рассмотреть три части:

  1. Затраты времени для конвертации задачи регрессии в QUBO-формулировку. Здесь получаем O(NK2d2) (проверьте это, оценив число умножений, необходимых для вычисления PTXTXP).

  2. Время для реализации QUBO-задачи в квантовом “железе”. Здесь потребуется O(K2d2), если использовать алгоритм из [DPP19].

  3. Время для выполнения квантового отжига. Существуют теоретические оценки времени для получения точного решения, но более практично рассматривать случай, когда можно просто довольствоваться достаточно высокой вероятностью (скажем, 99%) получения оптимального решения. Для современных квантовых компьютеров D-Wave с ограниченным числом кубитов на практике получается, что время отжига и число повторений можно считать константами.

В итоге полная временнАя сложность решения QUBO-задачи на адиабатическом квантовом компьютере O(NK2d2). Может показаться, что это хуже, чем временнАя сложность классического решения, если считать K переменной. Но величина K определяется только шириной диапазона числовых значений и желаемой точностью представления, K не зависит от основных параметров задачи типа N и d. Поэтому можно считать K константой. Тогда число требуемых кубитов O(d2), временнАя сложность O(Nd2), это эквивалентно классическому случаю.

SVM#

Классический SVM подробно описан в соответствующей лекции. Рассматривается тренировочный набор XRN×d и набор истинных меток Y{1,+1}N. Нужно решить задачу бинарной классификации, найдя веса wRd и константу bR, при которых классификатор a(xi)=sign(wTxi+b) допускает как можно меньше ошибок на обучающей выборке.

../../../_images/fig_22.png

Fig. 95 Иллюстрация к задаче бинарной классификации с помощью SVM.#

Двойственная задача (18) в текущих обозначениях принимает вид

(52)#{L(λ)=i=1Nλi12i,j=1Nλiλjyiyjxi,xjmaxλ,0λiCi{1,2,,N},i=1Nλiyi=0.

QUBO-формулировка#

Перепишем (52) как задачу минимизации:

(53)#{Lneg(λ)=12i,j=1Nλiλjyiyjxi,xji=1Nλiminλ,0λiCi{1,2,,N},i=1Nλiyi=0.

Тренировочные объекты xi, соответствующие λi=0, называются периферийными, от них решение

w=i=1Nλiyixi

не зависит. Объекты, соответствующие λi>0, называются опорными.

Задача минимизации переписывается в виде

(54)#{Lneg(λ)=12λT(XXTYYT)λλT1Nminλ,0NλCN,λTY=0,

где 1N – вектор, состоящий из N единиц (аналогичный смысл имеют 0N и CN), λRN.

Как в задаче линейной регрессии, будем представлять каждую λiR бинарным вектором λ~i{0,1}K. Поскольку λi0, в precision vector P нужно включить только положительные значения:

P=[2m,2m+1,,2l1,2l]T

Вектор P содержит m+1+l=K элементов (здесь K никак не связано с K из раздела про линейную регрессию, просто было решено не вводить новое обозначение для длины нового вектора P). При подходящем выборе m и l достаточно точно выполняется равенство

(55)#λik=1Kpkλ~iki{1,2,,N}

Выполняем конкатенацию всех λ~ik по вертикали

λ~=[λ~11λ~1Kпредст. λ1λ~21λ~2Kпредст. λ2λ~N1λ~NKпредст. λN]T

и вводим матрицу P (precision matrix)

P=INPT

таким образом, что (приближенно)

λ=Pλ~

Подставляя из этого выражения λ в (54), получаем:

(56)#{Lneg(λ~)=12λ~TPT(XXTYYT)Pλ~λ~TPT1Nminλ~{0,1}NK(Pλ~)TY=0

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

Penalty(hp)=γ2((Pλ~)TY)2=γ2((λ~TPT)Y)2=γ2λ~TPT(YYT)Pλ~,

где γ – достаточно большая константа, hp означает hyperplane (гиперплоскость).

Добавляем Penalty(hp) к Lneg(λ~) и получаем итоговую QUBO-формулировку:

(57)#12λ~TPT(XXTYYT+γYYT)Pλ~λ~TPT1Nminλ~{0,1}NK

Оценка вычислительной сложности#

Задача (54) содержит O(Nd) значений в данных и O(N) параметров (λ). QUBO-формулировка (57) содержит то же количество данных, а число параметров в K раз больше, т.е. O(KN). Значит, потребуется O(N2K2) кубитов.

ВременнАя сложность классического SVM в типичных реализациях (например, LIBSVM) равна O(N3). Для оценки временнОй сложности QUBO рассматриваем три составляющие (как в задаче линейной регрессии):

  1. Затраты времени для конвертации в QUBO-формулировку. Из (53) и (55) следует, что оценка времени O(N2K2).

  2. Для реализации QUBO-задачи в квантовом “железе” потребуется O(N2K2).

  3. Время для выполнения квантового отжига и число повторений можно считать константами (см. комментарии к тому же пункту в обсуждении линейной регрессии).

В итоге временнАя сложность O(N2K2). K можно считать константой, т.к. она зависит только от диапазона и желаемой точности представления λ и не зависит от параметров самой задачи классификации. Тогда получается временная сложность O(N2), что гораздо лучше оценки O(N3) в классическом случае.

Сбалансированная кластеризация методом k-средних#

Кластеризация методом k-средних – ML-задача обучения без учителя (unsupervised). Требуется распределить тренировочные объекты по k кластерам так, чтобы суммарное отклонение тренировочных объектов, принадлежащих кластерам, от центроидов (центров масс) соответствующих кластеров было минимальным. Сбалансированная кластеризация методом k-средних – частный случай, в котором каждый кластер содержит примерно одно и то же количество объектов N/k, как показано на Fig. 96.

../../../_images/fig_32.png

Fig. 96 Иллюстрация к задаче сбалансированной кластеризации методом k-средних.#

Нужно распределить N объектов из тренировочного набора XRN×d по k кластерам Φ={ϕ1,,ϕk}. Пусть μi – центроид кластера ϕi. В общем случае задача кластеризации методом k-средних формулируется так:

(58)#i=1k12|ϕi|x,yϕi||xy||2minΦ

Если размеры |ϕi| всех кластеров одинаковые, то формулировка переписывается так:

(59)#i=1kx,yϕi||xy||2minΦ

В прикладных задачах кластеризации размеры кластеров только приближенно равны друг другу, поэтому решение задачи (59) не является точным решением задачи (58). Для решения задачи кластеризации методом k-средних можно использовать, например, алгоритм Ллойда. Существует модификация алгоритма Ллойда для случая сбалансированной кластеризации.

QUBO-формулировка#

Вводим матрицу DRN×N, элементы которой равны квадратам попарных расстояний между тренировочными объектами:

dij=||xixj||2

Также вводим бинарную матрицу W~{0,1}N×k, каждый элемент которой w~ij=1 в том и только в том случае, когда объект xi принадлежит кластеру ϕj. Очевидно, есть два ограничения на W~:

  1. Поскольку мы предполагаем, что все кластеры содержат примерно одно и тоже количество объектов, каждый столбец W~ должен содержать примерно N/k единиц.

  2. Каждый объект принадлежит ровно одному кластеру, поэтому каждая строка W~ должна содержать ровно одну единицу.

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

Используя D и W~, мы можем переписать внутреннюю сумму в (59) в виде

x,yϕi||xy||2=w~jTDw~j,

где w~j – столбец номер j в W~. Чтобы переписать в бинарных переменных полную (двойную) сумму в (59), составим вектор-столбец из всех Nk элементов матрицы W~:

w~=[w~11w~N1w~12w~N2w~1kw~Nk]T

При условии, что ограничения на w~ выполнены, запишем задачу (59) в эквивалентном виде

(60)#w~T(IkD)w~minw~

Теперь разбираемся с ограничениями на w~.

Во-первых, каждый столбец W~ должен содержать примерно N/k единиц. Введем штраф, непосредственно отражающий это требование:

Penaltyj(col)=α(w~jTw~jNk)2,

где α – достаточно большая константа. Раскрыв скобки в предыдущем выражении, можно убедиться, что

Penaltyj(col)=w~jTα(1N2NkIN)обозначим как Fw~j+const

Сумма всех штрафов для столбцов равна

Penalty(col)=jPenaltyj(col)=w~T(IkαF)w~

Во-вторых, каждая строка W~ должна содержать ровно одну единицу. Соответствующий штраф

Penaltyi(row)=β(w~iTw~i1)2,

где β – достаточно большая константа. Раскрыв скобки в предыдущем выражении, получаем

Penaltyi(row)=w~iTβ(1k2Ik)обозначим как Gw~i+const

Чтобы найти сумму Penalty(row)=iPenaltyi(row), преобразуем бинарный вектор w~ в другой бинарный вектор v~, получающийся из w~ определенной перестановкой элементов:

v~=[w~11w~1kw~21w~2kw~N1w~Nk]T

Переход от w~ к v~ можно представить как линейное преобразование

v~=Qw~

с некоторой матрицей Q{0,1}Nk×Nk (матрица Q в свою очередь получается из единичной матрицы INk определенной перестановкой элементов).

Сумма штрафов для строк равна

Penalty(row)=iPenaltyi(row)=v~T(INβG)v~=w~TQT(INβG)Qw~

Соберем вместе квадратичную форму (60) (записанную без учета ограничений) и штрафы Penalty(col), Penalty(row) в одно финальное выражение, которое и является QUBO-формулировкой задачи о сбалансированной кластеризации методом k-средних:

(61)#w~T(Ik(D+αF)+QT(INβG)Q)w~minw~

Оценка вычислительной сложности#

Задача (59) содержит O(Nd) значений в данных и O(N) переменных. В QUBO-формулировке вводим по k бинарных переменных для каждой исходной. Получается O(Nk) переменных, а значит, требуется O(N2k2) кубитов.

Известно, что классический алгоритм сбалансированной кластеризации методом k-средних сходится за время O(N3.5k3.5) в худшем случае (см. ссылки в статье [DAPN21]). Для оценки временнОй сложности QUBO рассматриваем три составляющие:

  1. Затраты времени для конвертации в QUBO-формулировку. В выражении (61) по вычислительной сложности доминирует слагаемое, содержащее IkD. Соответствующая вычислительная сложность O(N2kd).

  2. Для реализации QUBO-задачи в квантовом “железе” потребуется O(N2k2).

  3. Время для выполнения квантового отжига и число повторений можно считать константами (см. комментарии к тому же пункту в обсуждении линейной регрессии).

В итоге получаем полную вычислительную сложность O(N2k(d+k)). Это лучше, чем результат классического алгоритма в худшем случае. Но количество итераций в классическом алгоритме сильно зависит от “удачности” начального приближения для центроидов кластеров. Классический алгоритм может оказаться и быстрее квантового.

Заключение#

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