Понимание магии нейронных сетей

Все “нейронное” — это (опять же) последнее увлечение в машинном обучении и искусственном интеллекте. Итак, в чем же заключается магия искусственных нейронных сетей (ANNS)?

Давайте погрузимся непосредственно в пример (предположительно, немного глупый): у нас есть три главных героя в сказке «Красная шапочка»: волк, бабушка и дровосек. Все они обладают определенными качествами, и красная шапочка реагирует на них определенным образом. Например, у бабушки большие глаза, она добрая и морщинистая – красная шапочка подойдет к ней, заговорит с ней и предложит ей еду (пример основан на Jones, W. & Hoskins, J.: Back-Propagation, Byte, 1987). Мы построим и обучим искусственную нейронную сеть, которая получает качества в качестве входных данных и поведение красной шапочки в качестве выходных данных, то есть мы обучим ее обучению адекватному поведению для каждого качества.

Сначала качества и действия кодируются как двоичные переменные во фрейме данных. После этого нейронная сеть обучается, используя качества в качестве входных данных и результирующее поведение в качестве выходных данных (используя стандартный синтаксис формулы). В neuralnet функции задано несколько дополнительных технических аргументов, детали которых нас здесь касаться не будут, они просто упрощают процесс в данном контексте). Затем мы строим обученную сеть и тестируем ее, наделяя соответствующими качествами: во всех трех случаях она обучалась правильным действиям. Как она этого достигла?

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

Возможно, вы заметили, что, хотя сеть ничего не знала о трех главных героях нашей маленькой истории, она, тем не менее, правильно построила их представление: ‘H1’ (для скрытого 1) представляет волка, потому что его отличительным качеством являются ‘большие зубы’, что приводит к ‘убегай’, ‘кричи’ и ‘ищи дровосека’, по той же логике ‘H2’ — это дровосек, а ‘H3’ — бабушка. Итак, сеть буквально научилась связывать качества с соответствующими действиями красной шапочки, создавая представление о трех главных героях!

Итак, искусственная нейронная сеть, очевидно, представляет собой сеть нейронов… итак, давайте взглянем на эти нейроны! По сути, это математические абстракции реальных нейронов вашего мозга. Они состоят из входных данных и выходных данных. Биологически вдохновленная идея заключается в том, что, когда активация входных данных превышает определенный порог, нейрон срабатывает. Чтобы иметь возможность учиться, нейрон должен, прежде чем суммировать входные данные, настроить входные данные так, чтобы выходные данные были не просто произвольными, а соответствовали некоторому разумному результату. Что такое ‘разумный’, спросите вы? В биологической среде ответ не всегда столь однозначен, но в нашем простом примере здесь нейрон должен просто соответствовать тому результату, который мы ему предоставляем (= контролируемое обучение).