Обучение с подкреплением успешно применяется в робототехнике и компьютерных играх. Его использование в сетевой области было обнадеживающим для решения проблемы распределения ресурсов в сетях беспроводного радиодоступа (Comsa et al.), Для оптимизации ресурсов WAN и DC (Xiu et al.), Для оптимизации маршрутизации в SDN (Stampa et al.) И список постоянно растет. В этой статье я попытался изучить идею экспериментов с обучением с подкреплением для решения очень актуальной проблемы в сетях SD-WAN, а именно выбора ссылки. Выбор канала связи является важным компонентом решения SD-WAN, который является его ядром. Перед применением обучения с подкреплением требуется моделирование среды SD-WAN, чтобы алгоритм RL изучал оптимальное поведение методом проб и ошибок. Традиционно эти симуляции назывались тренажерным залом - термин, придуманный openAI (gym.openai.com). В этой статье я представляю идею создания тренажерного зала для решения эксперимента по выбору канала SD-WAN. Результат применения различных алгоритмов RL в этом тренажерном зале будет описан в следующих статьях.

Что такое SD-WAN

Программно-определяемая глобальная сеть, или SD-WAN, предоставляет программную оверлейную архитектуру, которая основана на технологии программно-определяемых сетей (SDN) по сравнению с традиционным оборудованием WAN. Это упрощает управление сетью, перемещая уровень управления в облако и обеспечивая виртуализацию сети. (Ссылка: sdxcentral)

SD-WAN предоставляет два или более альтернативных пути между сайтом филиала и корпоративным центром обработки данных, как показано ниже. Динамическая оптимизация затрат достигается за счет переключения трафика с частного облака MPLS на более дешевый общедоступный интернет-сервис. Как принимается это решение о том, когда производить переключение каналов и как часто все зависит от сети SD-WAN. Чтобы прийти к этому решению, проводятся непрерывные измерения параметров QOS. (Ссылка: JuniperNetworks)

Что такое обучение с подкреплением и оно применимо к SD-WAN

Обучение с подкреплением - это тип машинного обучения, при котором агент учится максимально эффективно использовать окружающую среду, экспериментируя с различными вариантами, которые предлагает среда. Пробуя различные действия, агент учится оптимизировать вознаграждение, которое он получает от окружающей среды. (reinforcementlearning.ai-depot.com)

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

Актуальность этого обучения с подкреплением для SD-WAN может быть рассмотрено в эксперименте, в котором агент переключает каналы WAN и пытается максимально использовать пропускную способность. Это делается путем переключения на интернет-облако, когда доступна достаточная пропускная способность, а затем возврата к MPLS, когда количество QOS начинает падать. Как сделать такое переключение каналов так, чтобы оптимальная пропускная способность достигалась с минимальным использованием канала MPLS, является целью.

Тренажерный зал с открытым искусственным интеллектом

Тренажерный зал - это набор инструментов, который предлагает агентам игровую площадку, где они могут попытаться научиться оптимальному поведению в индивидуальной среде. Есть такие детские площадки, как Cartpole, Pendulum, Mountain-car и т. Д.

Типичное взаимодействие с тренажерным залом выглядит следующим образом -

import gym env = gym.make('CartPole-v0')

env.reset()

for _ in range(1000):

env.render()

env.step(env.action_space.sample()) # take a random action

Каждый шаг выше возвращает четыре значения. Эти

1) «Наблюдение» - по сути, фиксирует состояние окружающей среды.

2) «Награда» - вознаграждение за масштабирование, получаемое за выполнение «действия».

3) «Готово» - завершена ли серия.

4) «Информация» - разная информация.

(Подробнее см. Https://gym.openai.com/docs/)

Среда для SD-WAN

Любой тренажерный зал - это смоделированная среда, в которой агент может попробовать разные действия и получить вознаграждение. Для SD-WAN нам необходимо смоделировать сеть WAN между так называемым «филиалом» и «головным офисом». В этой упрощенной сети существует два альтернативных пути: один через выделенный канал MPLS, а другой через общедоступный Интернет. Для моделирования сети существуют различные технологии, такие как NS3, mininet и т. Д. Я выбрал mininet как выбор из-за его простоты и пригодности для приложений SDN. (Дополнительную информацию см. На mininet.org).

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

Базовый маршрутизатор C1 представляет путь MPLS, а C2 представляет общедоступный Интернет. Цель состоит в том, чтобы отправить трафик с хоста H1 в филиале на хост H2 в головном офисе. Мы также отправляем дополнительный трафик с хоста N1 на N2, и это имитирует другой трафик по пути только в Интернете.

Наблюдение (или состояние) окружающей среды

Я выбрал отслеживание в качестве состояния эксперимента в любой момент времени («галочка»). Обратите внимание, что они измеряются в начале эксперимента и на любом «этапе», когда агент применяет какое-либо «действие».

1) Текущая полоса пропускания - количество пропускной способности, полученной любым путем, например MPLS или общедоступным Интернетом.

2) Доступная пропускная способность - это сколько пропускной способности доступно в интернет-облаке. Предполагается, что путь MPLS имеет достаточную полосу пропускания для удовлетворения любых требований.

3) Link Id - ссылка, по которой в любой момент идет трафик.

Несмотря на то, что параметры QOS, такие как «задержка» и «джиттер», играют большую роль в управлении SLA, я не рассматривал их здесь для начала. Они будут добавлены позже, чтобы расширить модель для более практического использования.

Действие

Действие этого агента будет заключаться в выборе между MPLS и Интернетом. Есть два отдельных действия - Ссылка 0 (Интернет) и Ссылка 1 (MPLS). Никакая стохастичность не связана с каким-либо действием и его переходом между состояниями. Переключение одной ссылки на другую детерминировано.

Дизайн награды

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

1) SLA должно поддерживаться любой ценой, поэтому текущая полоса пропускания всегда должна превышать предписанный предел SLA. Вознаграждение должно предусматривать строгое наказание за такие упущения, когда пропускная способность падает ниже предела SLA.

2) Схема MPLS нерентабельна, поэтому вознаграждение должно препятствовать ее использованию.

3) Обратной стороной вышесказанного является то, что интернет-канал следует использовать чаще.

4) Независимо от того, какой выбор сделан, целью является поддержание транспортного потока. Так что каждый раз «галочка» должна приносить минимум положительного вознаграждения.

Эпизод

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

Эпизод может закончиться по-другому - по ошибке. Каждый раз, когда пропускная способность SLA не достигается в течение двух последовательных «тиков», принимается решение, что эпизод закончился, и агент должен начать все сначала.

Реализация

Тренажерный зал SD_WAN был реализован с использованием рекомендаций, предоставленных OpenAI (вот информация о том, как реализовать индивидуальный тренажерный зал - https://github.com/openai/gym/tree/master/gym/envs#how-to-create -новые-среды-для-спортзала )

Код для тренажерного зала SD-WAN проверен на github (https://github.com/amitnilams/sdwan-gym)

В тренажерном зале было проведено несколько простых экспериментов, чтобы установить базовый уровень. В отношении этих базовых показателей следует применять передовые алгоритмы, такие как «Deep Q Learning» или «Actor Critic». Одним из ограничений этого тренажерного зала является то, что это все еще среда с одним агентом. Его нельзя использовать для алгоритма A3C, который является многоагентным алгоритмом.

Детерминированный эксперимент

Для детерминированного случая нам нужно выбирать схему MPLS всякий раз, когда текущая полоса пропускания падает ниже предела SLA. Ограничение SLA является частью среды, а не «наблюдением» или состоянием. Другими словами, этот эксперимент знает все о модели и о том, как рассчитывается вознаграждение и т. Д. В его алгоритме нет случайности при выборе действия. Вот некоторые результаты эпизода (MAX-TICKS = 30) -

2018-12-06 11:28:40,296 - root - INFO - SdwanEnv - Version 0.1.0

('Initial State:', (0, '11.0', 0.0))

2018-12-06 11:29:11,627 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 1, 'Action:', 1, 'Ob:', (1, 10.0, 5.09), 'R:', -1, 'Total Reward:', -1)

2018-12-06 11:29:26,655 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 2, 'Action:', 1, 'Ob:', (1, 10.0, 3.3899999999999997), 'R:', -1, 'Total Reward:', -2)

2018-12-06 11:29:41,680 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 3, 'Action:', 1, 'Ob:', (1, 10.0, 6.34), 'R:', -1, 'Total Reward:', -3)

2018-12-06 11:29:56,719 - root - INFO - current bw:4.94, sla bw:6.0

2018-12-06 11:29:56,719 - root - INFO - BW is less than SLA

('Ticks:', 4, 'Action:', 0, 'Ob:', (0, '4.94', 4.19), 'R:', -4, 'Total Reward:', -7)

2018-12-06 11:30:11,768 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 5, 'Action:', 1, 'Ob:', (1, 10.0, 4.73), 'R:', -1, 'Total Reward:', -8)

2018-12-06 11:30:26,794 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 6, 'Action:', 1, 'Ob:', (1, 10.0, 5.34), 'R:', -1, 'Total Reward:', -9)

2018-12-06 11:30:41,820 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 7, 'Action:', 1, 'Ob:', (1, 10.0, 8.05), 'R:', -1, 'Total Reward:', -10)

2018-12-06 11:30:56,889 - root - INFO - current bw:7.76, sla bw:6.0

('Ticks:', 8, 'Action:', 0, 'Ob:', (0, '7.76', 6.2), 'R:', 2, 'Total Reward:', -8)

2018-12-06 11:31:11,915 - root - INFO - current bw:6.36, sla bw:6.0

('Ticks:', 9, 'Action:', 0, 'Ob:', (0, '6.36', 5.27), 'R:', 2, 'Total Reward:', -6)

2018-12-06 11:31:26,963 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 10, 'Action:', 1, 'Ob:', (1, 10.0, 6.77), 'R:', -1, 'Total Reward:', -7)

2018-12-06 11:31:42,018 - root - INFO - current bw:5.92, sla bw:6.0

2018-12-06 11:31:42,018 - root - INFO - BW is less than SLA

('Ticks:', 11, 'Action:', 0, 'Ob:', (0, '5.92', 4.89), 'R:', -4, 'Total Reward:', -11)

2018-12-06 11:31:57,045 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 12, 'Action:', 1, 'Ob:', (1, 10.0, 7.029999999999999), 'R:', -1, 'Total Reward:', -12)

2018-12-06 11:32:12,113 - root - INFO - current bw:4.80, sla bw:6.0

2018-12-06 11:32:12,114 - root - INFO - BW is less than SLA

('Ticks:', 13, 'Action:', 0, 'Ob:', (0, '4.80', 4.15), 'R:', -4, 'Total Reward:', -16)

2018-12-06 11:32:27,196 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 14, 'Action:', 1, 'Ob:', (1, 10.0, 4.4), 'R:', -1, 'Total Reward:', -17)

2018-12-06 11:32:42,219 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 15, 'Action:', 1, 'Ob:', (1, 10.0, 6.029999999999999), 'R:', -1, 'Total Reward:', -18)

2018-12-06 11:32:57,263 - root - INFO - current bw:7.21, sla bw:6.0

('Ticks:', 16, 'Action:', 0, 'Ob:', (0, '7.21', 6.91), 'R:', 2, 'Total Reward:', -16)

2018-12-06 11:33:12,279 - root - INFO - current bw:4.68, sla bw:6.0

2018-12-06 11:33:12,280 - root - INFO - BW is less than SLA

('Ticks:', 17, 'Action:', 0, 'Ob:', (0, '4.68', 3.7800000000000002), 'R:', -4, 'Total Reward:', -20)

2018-12-06 11:33:27,321 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 18, 'Action:', 1, 'Ob:', (1, 10.0, 6.720000000000001), 'R:', -1, 'Total Reward:', -21)

2018-12-06 11:33:42,360 - root - INFO - current bw:9.54, sla bw:6.0

('Ticks:', 19, 'Action:', 0, 'Ob:', (0, '9.54', 8.15), 'R:', 2, 'Total Reward:', -19)

2018-12-06 11:33:57,388 - root - INFO - current bw:4.12, sla bw:6.0

2018-12-06 11:33:57,388 - root - INFO - BW is less than SLA

('Ticks:', 20, 'Action:', 0, 'Ob:', (0, '4.12', 3.51), 'R:', -4, 'Total Reward:', -23)

2018-12-06 11:34:12,416 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 21, 'Action:', 1, 'Ob:', (1, 10.0, 2.5700000000000003), 'R:', -1, 'Total Reward:', -24)

2018-12-06 11:34:27,441 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 22, 'Action:', 1, 'Ob:', (1, 10.0, 6.33), 'R:', -1, 'Total Reward:', -25)

2018-12-06 11:34:42,478 - root - INFO - current bw:8.97, sla bw:6.0

('Ticks:', 23, 'Action:', 0, 'Ob:', (0, '8.97', 7.57), 'R:', 2, 'Total Reward:', -23)

2018-12-06 11:34:57,505 - root - INFO - current bw:6.57, sla bw:6.0

('Ticks:', 24, 'Action:', 0, 'Ob:', (0, '6.57', 5.42), 'R:', 2, 'Total Reward:', -21)

2018-12-06 11:35:12,538 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 25, 'Action:', 1, 'Ob:', (1, 10.0, 3.84), 'R:', -1, 'Total Reward:', -22)

2018-12-06 11:35:27,564 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 26, 'Action:', 1, 'Ob:', (1, 10.0, 4.27), 'R:', -1, 'Total Reward:', -23)

2018-12-06 11:35:42,582 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 27, 'Action:', 1, 'Ob:', (1, 10.0, 2.95), 'R:', -1, 'Total Reward:', -24)

2018-12-06 11:35:57,606 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 28, 'Action:', 1, 'Ob:', (1, 10.0, 6.49), 'R:', -1, 'Total Reward:', -25)

2018-12-06 11:36:12,646 - root - INFO - current bw:6.90, sla bw:6.0

('Ticks:', 29, 'Action:', 0, 'Ob:', (0, '6.90', 5.69), 'R:', 2, 'Total Reward:', -23)

2018-12-06 11:36:27,681 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 30, 'Action:', 1, 'Ob:', (1, 10.0, 5.34), 'R:', -1, 'Total Reward:', -24)

Episode finished after 30 timesteps

Случайный эксперимент

Этот эксперимент очень прост по своей логике. Он ничего не знает о том, как создаются награды, случайным образом пробует действие и надеется на лучшее. Вот некоторые результаты типичного эпизода (MAX-TICKS = 30) -

2018-12-06 11:38:11,893 - root - INFO - SdwanEnv - Version 0.1.0

('Initial State:', (0, '10.3', 0.0))

2018-12-06 11:38:43,886 - root - INFO - current bw:5.96, sla bw:6.0

2018-12-06 11:38:43,887 - root - INFO - BW is less than SLA

('Ticks:', 1, 'Action:', 0, 'Ob:', (0, '5.96', 5.09), 'R:', -4, 'Total Reward:', -4)

2018-12-06 11:38:58,917 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 2, 'Action:', 1, 'Ob:', (1, 10.0, 3.3899999999999997), 'R:', -1, 'Total Reward:', -5)

2018-12-06 11:39:13,947 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 3, 'Action:', 1, 'Ob:', (1, 10.0, 6.34), 'R:', -1, 'Total Reward:', -6)

2018-12-06 11:39:28,986 - root - INFO - current bw:5.08, sla bw:6.0

2018-12-06 11:39:28,987 - root - INFO - BW is less than SLA

('Ticks:', 4, 'Action:', 0, 'Ob:', (0, '5.08', 3.9299999999999997), 'R:', -4, 'Total Reward:', -10)

2018-12-06 11:39:44,027 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 5, 'Action:', 1, 'Ob:', (1, 10.0, 4.73), 'R:', -1, 'Total Reward:', -11)

2018-12-06 11:39:59,049 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 6, 'Action:', 1, 'Ob:', (1, 10.0, 5.34), 'R:', -1, 'Total Reward:', -12)

2018-12-06 11:40:14,080 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 7, 'Action:', 1, 'Ob:', (1, 10.0, 8.05), 'R:', -1, 'Total Reward:', -13)

2018-12-06 11:40:29,105 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 8, 'Action:', 1, 'Ob:', (1, 10.0, 6.2), 'R:', -1, 'Total Reward:', -14)

2018-12-06 11:40:44,134 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 9, 'Action:', 1, 'Ob:', (1, 10.0, 5.27), 'R:', -1, 'Total Reward:', -15)

2018-12-06 11:40:59,159 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 10, 'Action:', 1, 'Ob:', (1, 10.0, 6.77), 'R:', -1, 'Total Reward:', -16)

2018-12-06 11:41:14,184 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 11, 'Action:', 1, 'Ob:', (1, 10.0, 4.89), 'R:', -1, 'Total Reward:', -17)

2018-12-06 11:41:29,221 - root - INFO - current bw:7.94, sla bw:6.0

('Ticks:', 12, 'Action:', 0, 'Ob:', (0, '7.94', 7.029999999999999), 'R:', 2, 'Total Reward:', -15)

2018-12-06 11:41:44,247 - root - INFO - current bw:5.32, sla bw:6.0

2018-12-06 11:41:44,248 - root - INFO - BW is less than SLA

('Ticks:', 13, 'Action:', 0, 'Ob:', (0, '5.32', 4.11), 'R:', -4, 'Total Reward:', -19)

2018-12-06 11:41:59,285 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 14, 'Action:', 1, 'Ob:', (1, 10.0, 4.4), 'R:', -1, 'Total Reward:', -20)

2018-12-06 11:42:14,315 - root - INFO - current bw:7.70, sla bw:6.0

('Ticks:', 15, 'Action:', 0, 'Ob:', (0, '7.70', 6.02), 'R:', 2, 'Total Reward:', -18)

2018-12-06 11:42:29,341 - root - INFO - current bw:8.24, sla bw:6.0

('Ticks:', 16, 'Action:', 0, 'Ob:', (0, '8.24', 6.92), 'R:', 2, 'Total Reward:', -16)

2018-12-06 11:42:44,366 - root - INFO - current bw:5.00, sla bw:6.0

2018-12-06 11:42:44,367 - root - INFO - BW is less than SLA

('Ticks:', 17, 'Action:', 0, 'Ob:', (0, '5.00', 4.11), 'R:', -4, 'Total Reward:', -20)

2018-12-06 11:42:59,396 - root - INFO - current bw:8.18, sla bw:6.0

('Ticks:', 18, 'Action:', 0, 'Ob:', (0, '8.18', 6.720000000000001), 'R:', 2, 'Total Reward:', -18)

2018-12-06 11:43:14,427 - root - INFO - current bw:8.55, sla bw:6.0

('Ticks:', 19, 'Action:', 0, 'Ob:', (0, '8.55', 8.15), 'R:', 2, 'Total Reward:', -16)

2018-12-06 11:43:29,463 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 20, 'Action:', 1, 'Ob:', (1, 10.0, 2.41), 'R:', -1, 'Total Reward:', -17)

2018-12-06 11:43:44,517 - root - INFO - current bw:3.87, sla bw:6.0

2018-12-06 11:43:44,518 - root - INFO - BW is less than SLA

('Ticks:', 21, 'Action:', 0, 'Ob:', (0, '3.87', 3.83), 'R:', -4, 'Total Reward:', -21)

2018-12-06 11:43:59,554 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 22, 'Action:', 1, 'Ob:', (1, 10.0, 6.33), 'R:', -1, 'Total Reward:', -22)

2018-12-06 11:44:14,580 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 23, 'Action:', 1, 'Ob:', (1, 10.0, 7.57), 'R:', -1, 'Total Reward:', -23)

2018-12-06 11:44:29,622 - root - INFO - current bw:6.88, sla bw:6.0

('Ticks:', 24, 'Action:', 0, 'Ob:', (0, '6.88', 5.42), 'R:', 2, 'Total Reward:', -21)

2018-12-06 11:44:44,658 - root - INFO - current bw:4.89, sla bw:6.0

2018-12-06 11:44:44,659 - root - INFO - BW is less than SLA

('Ticks:', 25, 'Action:', 0, 'Ob:', (0, '4.89', 4.53), 'R:', -4, 'Total Reward:', -25)

2018-12-06 11:44:59,730 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 26, 'Action:', 1, 'Ob:', (1, 10.0, 4.27), 'R:', -1, 'Total Reward:', -26)

2018-12-06 11:45:14,755 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 27, 'Action:', 1, 'Ob:', (1, 10.0, 2.95), 'R:', -1, 'Total Reward:', -27)

2018-12-06 11:45:29,781 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 28, 'Action:', 1, 'Ob:', (1, 10.0, 6.49), 'R:', -1, 'Total Reward:', -28)

2018-12-06 11:45:44,806 - root - INFO - current bw:10.0, sla bw:6.0

('Ticks:', 29, 'Action:', 1, 'Ob:', (1, 10.0, 5.69), 'R:', -1, 'Total Reward:', -29)

2018-12-06 11:45:59,844 - root - INFO - current bw:6.76, sla bw:6.0

('Ticks:', 30, 'Action:', 0, 'Ob:', (0, '6.76', 5.34), 'R:', 2, 'Total Reward:', -27)

Episode Finished  after 30 timesteps

Сравнение графиков

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

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

Стоит пересмотреть эти графики с другими более продвинутыми алгоритмами, такими как «Deep Q Learning» или «A3C», и посмотреть, насколько они соответствуют этим базовым показателям. Это будет рассмотрено в следующих статьях.

Заключение

Программно-определяемая сеть имеет большой потенциал для использования различных алгоритмов машинного обучения, и обучение с подкреплением является наиболее многообещающим для решения некоторых из ее основных проблем. Здесь мы только начали решать очень актуальную проблему в SD-WAN, которую потенциально можно решить с помощью алгоритма машинного обучения и, в частности, обучения с подкреплением. Чтобы даже применить принцип RL, нам нужен тренажерный зал, и мы создали тренажерный зал SD-WAN. Следующая задача будет заключаться в применении продвинутого алгоритма, такого как «Deep Q Learning» или «A3C», для фактического решения актуальной проблемы выбора канала в SD-WAN.

использованная литература

Комса, И.С. (нет данных). Планирование на основе QoS в сетях радиодоступа 5G - IEEE Xplore. Получено с https://ieeexplore.ieee.org/document/8254926/

JuniperNetworks. (нет данных). Обзор профилей SLA и политик SD-WAN. Получено с https://www.juniper.net/documentation/en_US/cso3.2/topics/concept/ap-config-app-sla-profile-overview.html.

reinforcementlearning.ai-depot.com. (нет данных). Получено с http://reinforcementlearning.ai-depot.com/

sdxcentral. (нет данных). Основы архитектуры SD-WAN: преимущества и варианты. Получено с www.sdxcentral.com: https://www.sdxcentral.com/sd-wan/definitions/essentials-sd-wan-architecture/

Стампа, Г. (нет данных). Подход с углубленным обучением для оптимизации маршрутизации программной сети. Источник https://arxiv.org/pdf/1709.07080.pdf

Саттон, Р. (нет данных). Получено с http://incompleteideas.net/book/bookdraft2017nov5.pdf

Сю Р. (нет данных). Разработка рабочих нагрузок: оптимизация ресурсов WAN и DC посредством размещения рабочих нагрузок на основе RL. Получено с https://arxiv.org/pdf/1703.06967

Следующая статья:

Коммутатор SD-WAN Link как эксперимент по обучению с подкреплением с Deep Q-Learning