Теперь вернемся к первому пункту. Основная задача, решаемая в данной заметке: нужно получить позиции в двух цепочках памяти, начиная с которых можно начать слать нисходящие сигналы и выделять общие элементы цепочек, как это описано в предыдущей записи. Цепочки памяти могут быть и одной цепочкой, тогда лишь нужно, чтобы искомые позиции располагались на достаточном удалении одна от другой. Исходно создается одна цепочка – «основная память». Но в ней могут возникать разрывы, в связи с забыванием или повреждениями. В качестве отдельных цепочек, в которых необходимо искать совпадения, выступают также и другие выделенные ранее обобщающие цепочки. Ведь может случиться, что можно выделить еще более мелкую закономерность (нейронную цепочку), которая скрыта в большой – провести дальнейшую детализацию и специализацию образов. Этот пункт возможен, если и гностические цепочки имеют архитектуру, похожую на архитектуру цепочки основной памяти.
Самое прямолинейное решение – попарно перебирать все позиции всех воспоминаний (всех цепочек памяти). (Что делать с перебираемыми позициями – рассмотрим чуть позже). На первый взгляд, это – квадратичный алгоритм, O(n^2). В ИНС понятие вычислительной сложности приобретает некоторые особенности. Рассмотрим эти особенности на примере рассматриваемой задачи. Попарный перебор нежелательно осуществлять так же, как это происходит в привычных компьютерных алгоритмах. Если перебор осуществляется «в стиле ИНС», то как можно большее число процессов должно быть сведено к пересылкам сигналов и другим стандартным изменениям ИНС, а не работе в стиле сортировки массива. Преимущества уже описывались – более легкое распараллеливание и биологическая правдоподобность. В ИНС с полным параллелизмом на уровне каждого нейрона, если с каким-то нейроном что-то происходит, то же самое время другие нейроны существуют и доступны к работе. Например, алгоритм можно было бы реализовать примерно так: если перебираемые позиции цепочек памяти выделяются активацией соответствующих нейронов, и нужно перебрать все попарные комбинации фрагментов памяти, каждая пара выделяется активацией за отдельный такт, то требуется O(n^2) тактов нейросети. При моделировании на последовательном компьютере, один такт – это перебор всех нейронов, то есть, еще одна степень к алгоритму – итого O(n^3). Вычислительную сложность приравнивают к временной сложности. Так и есть – что последовательный компьютер решит за O(n^3), то параллельный нейрокомпьютер решит за O(n^2). Единицы измерения у них будут существенно разные – машинная инструкция в одном случае, и такт работы нейрона в другом. Если на последовательном компьютере ИНС занимает всю оперативную памяти, то один такт прохода по всем нейронам будет занимать время, меньшее времени прохода по всей памяти, так как большая часть нейронов неактивна, а пересылки нужно осуществлять для сравнительно небольшого количества нейронов. С учетом этого, если пропускная способность памяти компьютера такова, что позволяет передать всю наличную физическую ОП за одну секунду, то средний нейротакт с небольшим количеством активных нейронов будет длиться доли секунды. Это эвристика, которая позволяет ожидать быстродействия прохождения нейротактов на персональных компьютерах, примерно соответствующую биологическим НС (с учетом всех тех способов оптимизации работы ИНС, что уже рассматривались).
Нельзя ли задействовать этот полный машинный такт перебора всех нейронов, чтобы снизить степень вычислительной сложности исходного алгоритма? Высокоуровневое описание следующее. Сигнал однократно проходит по фрагментам всей памяти – проход по нейронам/кластерам, предпочтительно, по межнейронным связям, а не программно. За каждый такой такт, во время активности некоторого кластера памяти, имеется возможность слать и суммировать сигналы на все остальные кластеры памяти. Для всех найденных потенциальных похожих цепочек, провести вторую стадию – выделение обобщений при помощи нисходящих посылок. Эти самые прохождения уже могут быть снова последовательные, O(n^2) для параллельного нейрокомпьютера и O(n^3) для последовательного. Но одна степень уходит потому, что: совпадения не бывают длинными; для каждой позиции совпадений не бывает много; совпадения сортируются по важности, и все стадии выделения совпадений отрабатываются лишь для небольшого количества совпадений. Благодаря сжатию информации и переходу со временем на все более высокоуровневые совпадения, большая часть малозначимых совпадений отсекаются.
В этом режиме выделения совпадений новая сенсорная информация не должна восприниматься. Иначе работа НС будет некорректной – распознанные закономерности будут с необоснованными примесями случайных поступающих стимулов, алгоритм будет работать некорректно. (Одна порция активации будет получена из «прозваниваемой» памяти, а другая – с поступающих стимулов, которые еще толком не обработаны, а уже приводят к выделению «совпадений»). Активные действия также невозможны. Логично относить этот алгоритм выделения совпадений к режиму сна. А точнее, к режиму медленного сна. Именно во время медленного сна наблюдается размеренная ритмичная активность по всему мозгу, в течении длительного времени, что очень похоже на описанный выше алгоритм.
Этот алгоритм тут называется алгоритмом выделения совпадений. Но он чаще всего выделяет не полностью совпадающие фрагменты памяти, а лишь похожие. Например, в два разных момента человек видел кошку. Кошка была в обоих фрагментах памяти, но этот образ кошки – лишь часть всех активных в тот момент образов. Но, тем не менее, люди в таких случаях и говорят – «совпадение», (которого достаточно, чтобы привыкнуть к тому, что похожих кошек может быть много). Сложным НС уровня человека практически невозможно добиться одинаковой ситуации с активациями образов даже в течении одного фрагмента памяти, на несколько миллисекунд. Поэтому для применения слова «совпадение» достаточно активации одного образа/признака/характеристики/кластера/нейрона. «Совпадают размеры», «совпадают цвета», «совпадают имена», а не все контексты полностью. Раз уж затронули тему терминологии, то интересно разобрать слово «совпадение». Со-в-падение. Мы не ищем аналогии в других языках, это – очевидное деление слова на стандартные приставки и слово в самом русском языке. Что и куда в этом случае падает? В случае НС – «падает» сигнал, на нейроны образа, который активируется, как совпадающий. Как раз, падает по нисходящей цепочке активации. «В-падение» – означает не просто падение с смысле быстрого движения вниз, а и попадание в конкретную цель и удержание этого состояния. Этой целью и является совпадающий образ. «Со» в начале слов указывает на некоторую совместность, множественность чего-либо. (Я не силен в языке, потому простите за возможно халтурные объяснения), например, со-действие (действие с кем-то и для кого-то еще), со-трудничество (труд вместе с кем-то еще), со-гласие (гласить – разговаривать, совместная речь с одинаковыми передаваемыми образами). В нейронных совпадениях множественность проявляется в том, один и тот же образ активируется (активировался) в разных контекстах, разными фрагментами памяти. Совпадение может быть при анализе память+память и при сопоставлении память+текущая информация. Подобный анализ выверенности значений слов русского языка вселяет уважение к такому точному, тщательному, продуманному и прочувствованному языку. Новосозданные молодежные и иные диалекты типа падонковского приводят к потере скрытых в словах значений. Еще хуже – если они приводят к пропаданию совпадающих в словах частей. Скажет кто-то «совпадаццо», а потом «падать» – и младенец, изучающий язык, уже имеет более короткую цепочку для выделения совпадений. Вместо «совпадать» и «падать» – шести печатных букв и скольких-то там фонем, выделяемое его нейросетью, общее в сленге будет сокращено до «пад». Еще несколько таких манипуляций с языком – и через несколько поколений дети уже с трудом будут находить общие части в словах. А запомнить новое слово на основе старого будет сложно или невозможно. (Сравните русское «пошел-ушел» с английским «went-gone» – вот к чему не нужно стремиться). А заодно – и в других образах. А это – задержка развития. Менее качественное понимание мира – ведь он кажется менее связным, что вырабатывает меньшую привычку к поиску закономерностей в окружающей среде. И бОльшие накладные расходы в течении всей жизни – когда и в школе приходится чаще заглядывать в словарь.