Базовым элементом построения нейросетей, как мы знаем, является модель нейрона, а, соответственно, простейшей моделью нейрона, является перцептрон.
С математической точки зрения, перцептрон решает задачу разделения пространства признаков гиперплоскостью, на две части. То есть является простейшим линейным классификатором.
Обобщенная схема нейрона представляет собой функцию f(SUM Wi*xi - W0)
Здесь:
• x1,...,xn – компоненты вектора признаков x=(x1,x2,...,xn);
• SUM – сумматор;
• W1,W2,...,Wn – синоптические веса;
• f – функция активации; f(v)= { 0 при v < 0 и 1 при v>0 }
• W0 – порог.
Таким образом, нейрон представляет собой линейный классификатор с дискриминантной функцией g(X)=f(SUM Wi*Xi - W0).
И задача построения линейного классификатора для заданного множества прецедентов (Xk,Yk) сводится к задаче обучения нейрона, т.е. подбора соответствующих весов W1,W2,...,Wn и порога W0.
Классический подход обучения перцептрона хорошо известен
• Инициализируем W0,W1,W2,...Wn (обычно случайными значениями)
• Для обучающей выборки (Xk,Yk) пока для всех значений не будет выполняться f(SUM Wi*Xki - W0)==Yi повторяем последовательно для всех элементов
• W = W + r(Yk - f(SUM Wi*Xki - W0)) * Xk*, где 0 < r < 1 - коэффициент обучения
Для доказательства сходимости алгоритма применяется теорема Новикова, которая говорит, что если существует разделяющая гиперплоскость, то она может быть найдена указанным алгоритмом.
Что же нам может предложить модель квантовых вычислений для решения задачи обучения перцептрона - то есть для нахождения синоптических весов по заданной обучающей выборке?
Ответ - мы можем сразу опробовать все возможные значения весов и выбрать из них тот - который удовлетворяет нашим требованиям - то есть правильно разделяет обучающую выборку.
Для понимания данного туториала вам потребуются базовые знания по
• нейросетям
• квантовым вычислениям (кубиты и трансформации)
• программированию на Q-sharp