О нейросетях в наше время не слышали разве что изрядно выпивающие люмпены, завсегдатаи привокзальных ларьков. Да и то среди них найдётся умелец, который использует тот или иной самообучающийся алгоритм для установления концентрации этанола в "фурике".
Однако не каждый задаётся вопросом, откуда вообще ноги растут, как, а главное, когда появился некий инструмент, способный с той или иной точностью описывать работу настоящего нейрона. Кто-то при этом вспоминает всем известную модель Ижикевича, кто-то, углубившись в данный вопрос, приводит в качестве примера модель Ходжкина-Хаксли, некоторые (небезосновательно!!!) полагают, что первым был персептрон Розенблатта, появившийся ещё в 60-е годы прошлого столетия.
Но оказывается, что первая валидная (более-менее совпадающая с реальностью) математическая модель нейрона появилась ещё в 1943 году. Да, да, ещё когда шестая армия Паулюса в Сталинграде только начинала думать о возможной капитуляции, а к лету "заквашивалось" масштабное танковое сражение, уже шли работы над созданием первого искусственного нейрона.
Речь, конечно же, идёт о модели Маккалока-Питтса. Однако, для того, чтобы понять, как она работает, для начала нужно сказать пару слов о том, как же "общаются" между собой живые, настоящие нейроны. Хоть это и тема для отдельной статьи, вкратце можно сказать так: есть 3 способа передачи информации от нейрона к нейрону -
- количеством потенциалов действия (ПД),
- частотой этих самых ПД,
- фазой, в которой приходят посылаемые импульсы.
То есть, нейрон, получив информацию с чувствительных рецепторов (про схему рефлекторной дуги поговорим позже), передаёт её дальше по сети другому нейрону. Если переданная информация не превышает некий порог (например, пришёл всего один ПД), второй нейрон не активируется и данная информация не идёт дальше, аннулируется. Если же порог удалось превысить (предположим, на второй нейрон пришло 3 ПД в определённой фазе), то данная информация распознаётся вторым нейроном, как "правда" и идёт уже дальше по цепочке "на обработку".
Так работает любой живой анализатор. Примерно это же и предложили Маккалок и Питтс в своей модели. В интернете гуляет очень много мало понятных картинок на эту тему, где нейрон на выходе выдает "n-арную Булеву функцию". Мы же n-арную Булеву функцию расписывать не будем, а представим всё максимально просто.
Представим, что кружочки - это внешние факторы, к примеру, температурное воздействие. Термический ожог распространяется всё дальше, охватывая первый, второй и третий участок кожи. Конечно, это условность, в жизни на такой ожог сразу тысячи нейронов реагировать будут. Каждый фактор имеет некий вес. Пусть ВЕС1 = ВЕС2 = ВЕС3 = "терпимо", руку отдёргивать не стоит, даже приятно (в модели значения весов устанавливаются человеком, вручную).
Тогда как ВЕС1+ВЕС2 = "горячо", а ВЕС1 + ВЕС2 + ВЕС3 = "очень горячо". Функция активации как раз и определяет, насколько велик вес раздражающих факторов. Она отвечает на вопрос, стоит ли передавать информацию дальше, другому нейрону? Генерировать ответный ПД или нет? Например, это может быть двигательный нейрон, если мы говорим об ожоге.
Вот так и устроена простейшая модель нервной клетки, появившаяся ещё 1943 году. Конечно, это не нейронная сеть, ведь в этой модели задействован всего один элемент. Но для получения сети нужно было лишь "размножить" элементы, разработчики стояли в шаге от этого, но дело до конца не довели.
Этим и воспользовался Розенблатт, создавая в 1960-х гг. свой ПЕРСЕПТРОН.