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

Крестики-нолики, хотя и имеют всего 9 ячеек, имеют ровно 255 168 различных вариантов игры. Однако, чтобы упростить и уменьшить это число, нам нужно будет сосредоточиться только на различных возможных позициях. Это составляет чуть менее 6000 человек. Так что неважно, как вы играете, позиция на доске всегда будет одна из 6000. Но если вы примете во внимание вращение и симметрию доски, вы можете уменьшить это число до 304 (все приведенные ниже шаблоны будут считаться как 1 вместо 8).

Итак, теперь, когда у нас есть 304 возможных позиции в крестики-нолики, что дальше? Здесь на помощь приходит Обучаемый механизм крестиков-ноликов из спичечных коробок (MENACE). MENACE - это компьютер из спичечных коробок (да, вы все правильно прочитали), который был создан Дональдом Мичи в 1960-х годах, чтобы попытаться создать машину. это всегда будет выигрыш в крестики-нолики - или, по крайней мере, ничья, когда выиграть невозможно. Поскольку в 60-е годы сложных моделей обучения не было, все приходилось делать механически. Итак, MENACE был компьютером, буквально сделанным из спичечных коробок.

Это будет работать довольно просто. Сбоку каждой коробки Дональд Мичи поместил наклейку с одной из 304 комбинаций - так, чтобы каждая позиция соответствовала одной коробке. Внутри этих коробок он поместил бусинки разного цвета, причем бусинки каждого цвета представляли возможное движение, которое MENACE может сделать в этой конкретной позиции. MENACE делает ход, случайным образом выбирая бусину из этого ящика. Таким образом, во время хода MENACE он достигнет коробки, которая отражает текущую позицию на доске, и возьмет случайную бусинку изнутри коробки. Затем MENACE сделает движение, указанное бусиной. В исходном положении в каждой коробке присутствует только одна бусинка каждого цвета, но в зависимости от результата игры количество бусинок будет меняться. Если MENACE выигрывает, MENACE просматривает все позиции, которые он играл, и добавляет 3 бусинки, которые он использовал, в каждую коробку. При завязке добавляет одну бусину, а в случае проигрыша - убирает 1 (при условии, что в коробке остается как минимум 1 бусинка каждого цвета).

Таким образом, если зеленая бусина помогла выиграть позицию в поле 7, в ячейку 7 будут добавлены еще три зеленых бусинки. Это гарантирует, что в следующий раз зеленая бусинка будет выбрана с большей вероятностью, что приведет к тому, что MENACE сыграет зеленый ход. - что в прошлом было продуктивным. В конечном итоге происходит то, что первая игра, в которую играет MENACE, будет играть случайным образом, но чем больше игр он играет, тем больше добавляется бусинок правильного цвета, тем лучше он обычно играет. Таким образом, после настройки MENACE (с 1 бусинкой каждого цвета в каждой коробке) первая игра будет полностью случайной (потому что во всех коробках одинаковое количество всех бусинок), но чем больше она будет играть, тем лучше она станет.

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

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

Против случайного кликера он прижился примерно после 70 игр и перестал проигрывать и почти никогда не делал ничью (чтобы поиграть с MENACE, нажмите здесь). Так что же такое обучение MENACE и как оно используется в современном машинном обучении?

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

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