Нейронные сети простым языком. Часть 1. Введение.
Что такое нейронная сеть?
Нейронная сеть – это математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей – сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Нейронные сети представляет собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие по отдельности простые процессоры вместе способны выполнять довольно сложные задачи.
Что такое нейрон (процессор)?
Нейрон – это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной, скрытый и выходной. Также существует нейрон смещения, о котором вы узнаете в следующих статьях.
Что такое синапс (сигнал)?
Синапс – это связь между нейронами. У синапса имеется один параметр – весовой коэффициент, в зависимости от его значения происходит то или иное изменение информации, когда она передается от одного нейрона к другому. Именно благодаря этому входная информация обрабатывается и превращается в результат, а обучение нейронной сети основано на экспериментальном подборе такого весового коэффициента для каждого синапса, который и приводит к получению требуемого результата.
Для чего нужны нейронные сети?
Нейронные сети используются для решения сложных задач, которые требуют аналитических вычислений подобных тем, что делает человеческий мозг. Самыми распространенными применениями нейронных сетей является: прогнозирование, распознавание образов, классификация и др.
Какие бывают нейронные сети?
Существует 26 типов нейронных сетей. Одними из наиболее популярных являются:
Нейронные сети прямого распространения
Широко используются в прогнозировании, кластеризации и распознавании. Все связи направлены строго от входных нейронов к выходным.
Рекуррентные нейронные сети
Применимы в таких задачах, где нечто целостное разбито на части, например: распознавание рукописного текста или распознавание речи. Сигнал с выходных нейронов или нейронов скрытого слоя частично передается обратно на входы нейронов входного слоя.
Сверточные нейронные сети
Специальная архитектура нейронных сетей нацеленная на эффективное распознавание образов. Каждый фрагмент изображения умножается на матрицу свертки поэлементно, а результат суммируется и записывается в аналогичную позицию выходного изображения.
Немного истории
Термин "нейронная сеть" появился в середине XX века. Первые работы, в которых были получены основные результаты в данном направлении, были проделаны Мак-Каллоком и Питтсом. В 1943 году ими была разработана компьютерная модель нейронной сети на основе математических алгоритмов и теории деятельности головного мозга. Они выдвинули предположение, что нейроны можно упрощённо рассматривать как устройства, оперирующие двоичными числами, и назвали эту модель "пороговой логикой". Исследователи предложили конструкцию сети из электронных нейронов и показали, что подобная сеть может выполнять практически любые вообразимые числовые или логические операции. Мак-Каллок и Питтс предположили, что такая сеть в состоянии также обучаться, распознавать образы, обобщать, т. е. обладает всеми чертами интеллекта.
В 1949 году канадский физиолог и психолог Хебб высказал идеи о характере соединения нейронов мозга и их взаимодействии. Он первым предположил, что обучение заключается в первую очередь в изменениях силы синаптических связей. Теория Хебба считается типичным случаем самообучения, при котором испытуемая система спонтанно обучается выполнять поставленную задачу без вмешательства со стороны экспериментатора.
В 1954 году в Массачусетском технологическом институте с использованием компьютеров Фарли и Кларк разработали имитацию сети Хебба. Также исследования нейронных сетей с помощью компьютерного моделирования были проведены Рочестером, Холландом, Хебитом и Дудой в 1956 году.
В 1957 году Розенблаттом были разработаны математическая и компьютерная модели восприятия информации мозгом на основе двухслойной обучающейся нейронной сети. При обучении данная сеть использовала арифметические действия сложения и вычитания. Розенблатт описал также схему не только основного перцептрона, но и схему логического сложения.
В 1958 году им была предложена модель электронного устройства, которое должно было имитировать процессы человеческого мышления, а два года спустя была продемонстрирована первая действующая машина, которая могла научиться распознавать некоторые из букв, написанных на карточках, которые подносили к его "глазам", напоминающим кинокамеры.
Интерес к исследованию нейронных сетей угас после публикации работы по машинному обучению Минского и Пейперта в 1969 году. Ими были обнаружены основные вычислительные проблемы, возникающие при компьютерной реализации искусственных нейронных сетей. Первая проблема состояла в том, что однослойные нейронные сети не могли совершать "сложение по модулю 2", то есть реализовать функцию "Исключающее ИЛИ". Второй важной проблемой было то, что компьютеры не обладали достаточной вычислительной мощностью, чтобы эффективно обрабатывать огромный объём вычислений, необходимый для больших нейронных сетей.
Исследования нейронных сетей замедлились до того времени, когда компьютеры достигли больших вычислительных мощностей. Одним из важных шагов, стимулировавших дальнейшие исследования, стала разработка в 1975 году Вербосом метода обратного распространения ошибки, который позволил эффективно решать задачу обучения многослойных сетей и решить проблему со "сложением по модулю 2".
Недостатки нейронных сетей
У нейронных сетей есть ряд серьезных недостатков.
Ответ, выдаваемый нейронной сетью, всегда приблизительный
Нейронные сети не способны давать точные и однозначные ответы. Но задачи, в которых надо применять ИНС и одновременно получать точные ответы, встречаются довольно редко.
Неспособность принятия решений в несколько этапов
Нейронная сеть не может решать задачи, которые требуют последовательного выполнения нескольких шагов; она способна решать задачу только "в один заход". Поэтому нейросеть не может, например, доказать математическую теорему.
Неспособность решать вычислительные задачи
В ИНС нельзя загрузить, допустим, математическое уравнение и получить его решения для различных параметров. Но это и не является предназначением нейронных сетей.
Трудоемкость и длительность обучения
Для того чтобы нейронная сеть могла корректно решать поставленные задачи, требуется провести ее обучение на десятках миллионов наборов входных данных. Но уже разработаны различные технологии ускоренного обучения, современные видеокарты позволяют обучать нейросети в сотни раз быстрее, а недавно появились готовые, предобученные нейросети, в частности, распознающие образы. На основе таких нейросетей можно создавать приложения, не занимаясь длительным обучением.
В следующей статье рассмотрим как осуществляется предсказание сети.
Ссылки
https://ru.wikipedia.org/wiki/Нейронная_сеть
https://www.it.ua/ru/knowledge-base/technology-innovation/iskusstvennye-nejronnye-seti-ins