Search
Write a publication
Pull to refresh

Общий алгоритм саморазвития системы

Level of difficultyMedium
Reading time18 min
Views633

Статья ориентирована на тех, кому интересно мыслить о создании сильного ИИ. Рассказал общую идею алгоритма через свою призму понимания того, как должна работать система. Этот алгоритм отражает как адаптацию, так и развитие системы. В начале рассказал о понятиях, которые я использовал для описания алгоритма, потом сам алгоритм, некоторые детали и немного про клетки.

Это лишь гипотеза и сам алгоритм может быть не полным. Для подтверждения и развития этого алгоритма необходимо реализовать не только сам алгоритм, но и систему, которая будет совместима с этим алгоритмом (либо подогнать алгоритм под систему).

Терминология

Следует учитывать, что я здесь всё обобщаю, говорю об идеях или понятиях обобщённо, и они могут быть на разных масштабах или уровнях иерархии, объединяю процессы, которые могут происходить в живых организмах и процессы, которые могут происходить в цифровых системах. Нужно рассматривать это всё одновременно с разных точек зрения: алгоритмов; программирования; машинного обучения; биологии; вычислительной техники; того, как работает операционная система ЭВМ и тому подобное, что связано с вычислительными системами.

Я обобщаю различные представления под одну общую идею о том, что в разных системах присутствуют одни и те же идеи, разные системы обладают одними и теми же свойствами с идейной точки зрения. На мой взгляд обретать понимание того, как должна работать система, способная саморазвиваться, чисто через алгоритмы будет очень сложно. Ниже я привёл некоторые свои догадки насчёт работы нейронных клеток, чтобы показать глубину мысли и сложность идеи. Также для лучшего понимания этого алгоритма можно ознакомиться с моими предыдущими статьями.

Программирование — это процесс создания логики, инструкций хода выполнения программы. Логику можно создавать в виде объектов программы (экземпляров классов или переменных), не только в виде кода (сам код и файлы — это тоже объекты). При наличии определённых условий (при наличии определённой логики в системе и определённого строения системы) система может программировать себя сама, создавать логику — саморазвиваться.

Логика — это определённый способ обработки информации, ход выполнения процессов (выполнение программы или процессов в организмах), инструкции (соответствия), подпрограммы, условия и т. д. Логику можно изменять или создавать на основе индикаторов (на основе наличия или отсутствия информации в системе).

Знания — информация о чём-либо, которая хранится в системе в виде неких элементов памяти (объекты, совокупности объектов). Логика или информация являются знаниями, сама логика тоже является информацией.

Индикатор — это информация о наличии или отсутствии чего-то, например, сигнал на рецепторе, булево значение или сигнал на выходном слое (классификация). Но, говоря о булевом значении, имеется в виду, исключительно наличие сигнала, который отвечает за «1» или наличие сигнала, который отвечает за «0». Отсутствие значения (или сигнала) — это тоже сигнал. Понятие индикатора является более общим, чем просто переменная (бинарное значение). Он может быть более обобщённым, например, в виде образа, состояния, совокупности переменных, комбинации, в виде молекул или физических явлений.

Индикаторы представляют собой информацию. У любой информации в системе могут быть ассоциативные связи с другой информацией (объектами информации), по которым можно что-то искать. Каждый индикатор привязывается к определённой логике, которая выполняется при активации индикатора (при его наличии). Составные индикаторы представляют собой комбинацию индикаторов, каждый из элементов комбинации может быть привязан к определённой логике, на основе которой будет оцениваться вклад этого индикатора в общую комбинацию (что-то типа веса).

В мозгу в качестве индикаторов и логики выступают сами нейроны и их взаимодействия.

Параметр — это некое основание в виде информации (переменной, объекта) для работы любых механизмов или процессов, это переменная, которая отвечает за какую-либо задачу, которую нужно выполнить. Параметры могут быть любыми. Их можно рассматривать как условие для процесса, который работает по принципу «цикл с условием».

По сути параметр — это тоже индикатор, только это другой уровень абстракции. Индикаторы привязываются к логике, которая будет выполнена или которая уже выполнена. Т. е. с правой или с левой стороны соответствия: индикатор_1 → логика → индикатор_2.

Логика — это соответствия индикаторов к инструкциям, какие инструкции будут выполняться в зависимости от индикаторов. Это внутреннее проявление того, что происходит внутри системы. Действие — это более общее определение понятия логики, это проявление того, что происходит внутри системы, проявление того, какая выполняется логика, это совокупность логики.

Идентификатор — некий уникальный токен, который уникальным образом обозначает определённое знание какой-либо информации в системе (например, как id переменной в python). Например, элементарное действие в виде конкретной процедуры в программе может быть только одно, это уникальная ссылка на объект. Если действие содержится в нескольких других действиях, то на это действие будут ссылаться те, другие действия. У одного и того же индикатора, логики или информации в целом в системе могут быть разные экземпляры объектов, но их можно привязать к одному общему объекту, который будет идентифицировать их тип или принадлежность. Это похоже на класс в задаче классификации или кластеризации.

Идентификация — процесс поиска или создания в системе идентификатора какой-то информации, например, идентификация набора признаков. Грубо говоря, это похоже на задачу классификации. Идентификация информации, логики или индикаторов, идентификация того, к чему относится данная информация, например, к какому параметру относится данная информация или к какому классу логики (классу действий).

На основе идентификации можно однозначно определять какие процессы запускать, какую логику выполнять и т. д. Можно идентифицировать информацию, генерировать логику или информацию на основе идентификации. После идентификации включаются какие-то индикаторы, которые сигнализируют о том, что должна запуститься какая-то логика. Например, можно идентифицировать, какое наиболее лучшее действие нужно сделать, какой процесс нужно совершить следующим. Это как распознавание, но распознавание — это менее общее понятие и более высокоуровневое.

Алгоритм

Алгоритм описан в виде нескольких основных шагов. Под словом «общий» в названии этого алгоритма имеется в виду, что здесь обозначены лишь общие аспекты.

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

Определение задачи. Определение и постановка целей. Параметр — это объект в системе, который отвечает за определённую задачу. Для каждого параметра происходит определение задачи, которую нужно решить, чтобы удовлетворить параметр. Чтобы определить задачу, нужно провести анализ и выявить какие метрики, индикаторы или информация в целом относятся к данному параметру. Сбор информации, которая может помочь решить задачу.

На основе метрик и индикаторов нужно определить какую задачу нужно решить. Нужно определить какие метрики связаны с данным параметром (задачей). Это происходит опытным путём. Параметр привязывается к индикаторам или метрикам. То, что нужно сделать — удовлетворить индикаторы, чтобы параметр пришёл в норму.

Анализ. Анализ информации о задаче, которую нужно решить, определение информации, которая поможет при синтезе решения. Анализ информации, которая связана с задачей (индикаторы, метрики), чтобы на её основе произвести синтез решения.

Синтез. Синтез логики (действия). Синтез решения: создание, поиск или выбор логики для выполнения на основе анализа. Создание или подбор логики, которая будет выполняться для выполнения данного параметра (задачи). Добавить новую логику, функции или улучшить существующие для выполнения задачи или повышения универсальности (обобщение логики или информации).

Метрики. Метрики (ожидаемый результат), которые должны измениться при выполнении данной логики (при выполнении действия). Метрики, которые должны достичь определённых значений после выполнения логики. Определить какой результат ожидается, какие значения метрик и индикаторов должны быть достигнуты.

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

Происходит сбор метрик, либо просто запоминаются значения, а потом сравниваются после исполнения.

Исполнение. Выполнение логики (действия). Выполнение логики, тестирование логики или какой-то информации. Через тестирование можно определять (или уточнять) какую задачу нужно решить, какие нужны метрики или индикаторы, какую логику нужно выполнять.

Логика тестируется чтобы измерить результативность, производительность, полезность (оценить работу логики). Также можно моделировать или генерировать логику, которая потом будет тестироваться. Например, тестирование новых алгоритмов, параметров или проверка информации.

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

Оценка. Оценка выполненной или скорректированной логики, собранной информации, любой информации в целом (сама логика тоже является информацией). Подкрепление — это информация, которая помогает в оценке.

Сравнение обратной связи с вычисленными метриками. Решена задача или нет. Помогла ли данная логика (коррекция логики, кусочек логики) для улучшения чего-то или продвижения в решении задачи. Положительная коррекция или отрицательная.

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

Обучение. Закрепление и фиксация полученной информации. Занести в память сопоставления выполненной логики и полученных метрик. Улучшить поведение системы на основе собранных данных и поставленных целей. Закрепить результаты, как созданной логики, так и последствия её выполнения. Система обновляет свои параметры (например, веса) или базу знаний (базу логики), используя новую информацию.

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

Адаптация и развитие не являются частью алгоритма, а являются следствием работы этого алгоритма. Во время работы алгоритма происходит изменение системы в лучшую сторону — это и есть адаптация или развитие.

Пример работы алгоритма:

  • Активируются индикаторы, срабатывает логика (индикаторы могут включаться постоянно или периодически).

  • Анализ того, что нужно сделать (идентификация). Происходит сбор информации для определения задачи. Система идентифицирует информацию, идентифицирует что нужно сделать, анализирует, собирает информацию. Идентификация параметра (а потом установление того, что нужно делать для такого параметра, установление метрик, которые нужно выполнить).

  • Сбор и анализ информации, необходимой для создания или выбора логики на основе метрик и индикаторов, привязанных к данной задаче (параметру).

  • Создание и определение логики (синтез). На основе информации после анализа происходит подбор имеющейся логики, создание новой логики с нуля или создание новой логики на основе имеющейся логики.

  • Выполнение логики. Пробует, экспериментирует, моделирует, делает гипотезы.

  • Сбор информации о результатах выполнения логики (обратная связь, подкрепление).

  • Оценка результатов выполнения логики. Анализирует, насколько хорошо она справилась с ответом, решением задачи, коррекции логики (на основе метрик, обратной связи, самоподкрепления).

  • Закрепление информации и логики (знаний).

  • Следующая итерация или коррекция.

Этот алгоритм, возможно, может работать иерархически, параллельно, асинхронно и исполнять разные альтернативные варианты выполнения логики (разные траектории, разные ветви). Каждый шаг может выполняться не обязательно строго по последовательности, и шаги внутри каждого шага — тоже, они могут выполняться даже во время выполнения основного (выше по уровню) алгоритма (основной задачи). Задачи могут решаться не обязательно строго последовательно и конкретно в данный момент, они могут планироваться, выполняться постепенно и т. п.

Могут пропускаться какие-то шаги из-за их ненадобности — например, при автоматических действиях не нужен анализ или при определении задачи в основном нужен анализ — зависит от задачи.

Если говорить про человека, то это может выглядеть как большое число всяких мелочей, которые выполняются автоматически и сохраняются в памяти, о них человек даже не задумывается, т. к. они выполняются полностью неосознанно. Многое, что происходит во время решения задачи или при любой другой деятельности, происходит автоматически и неосознанно. Вы можете порефлексировать о том, как вы принимаете решения и как анализируете результаты своих действий и сравнить то, что вы увидели в своём поведении с тем, что описано в этом алгоритме.

Вы можете наблюдать за собой, какие у вас появляются мысли, почему они появляются, что вы делаете, почему вы это делаете, как вы решаете задачу, какие мысли появляются во время выполнения действия и т. д. Чем больше вы будете это делать, тем больше вы начнёте замечать логику, которая осуществляется неосознанно. На основе этой информации можно выводить алгоритмы. Также можно придумывать логику вручную, думать о том, что должно происходить для осуществления тех или иных действий, таким образом выводить алгоритмы.

Программисты не могут придумывать систему, которая сможет саморазвиваться потому, что они понятия не имеют как они делают это сами. Например, придумать операционную систему для ЭВМ было относительно не сложно, т. к. там всё достаточно понятно: есть данные, которые процессор перегоняет «туда-сюда» и за счёт различных функций процессора данные изменяются. Но придумать то, что происходит неосознанно — это немыслимо. Придумать какие процессы должны выполняться в программе, чтобы она развивалась, это немыслимо с точки зрения текущих представлении о ИИ. Нужно вычислять то, что может происходить при работе системы, вручную, в уме, точно так же, как это происходить при изучении программирования: представлять в уме то, что происходит на каждой строчке кода и при работе каждого оператора, чтобы затем даже не задумываться об этом при создании больших программ и высокоуровневых абстракций.

Чтобы начать понимать, необходимо правильно поставить вопрос (и сделать детерминированное определение). Если вопрос изначально задан неверно (или вообще не задан), то и желаемого результата достичь не получится. Говоря о машинном обучении, может ли аппроксимируемая функция развиваться? - Вместо: «Создадим функцию, которая...». Подобные вопросы наводят на идеи о различных алгоритмах, на основе которых у системы были бы те или иные способности.

Некоторые детали

Любая информация является индикатором. Индикатор — это наличие или отсутствия чего-то, наличие информации о чём-то. Информация может восприниматься, храниться, обрабатываться, воспроизводиться в той или иной форме. Что же делает система с этой информацией во время развития? Она её связывает, связывает одно с другим или одно через другое. Создаёт логику, связывает её с информацией или наоборот.

Индикатор — это ситуация или её описание, один и тот же индикатор может быть у разных ситуаций, составные индикаторы могут состоять из разных ситуаций по отдельности или из разных ситуаций одновременно. Одни и те же знания или логику можно использовать в разных доменах (областях, модальностях, задачах).

В качестве информации для распознавания могут быть: молекулы, физические сигналы, текст, речь и т. д. Наличие или отсутствие такой информации — это наличие или отсутствия определённого индикатора.

Индикаторы могут быть составными, например, комбинация определённых переменных (признаков). Классификация или кластеризация: на входе — комбинация признаков, а на выходе — одно значение, т. е. индикатор или же переменная, которая принимает определённое значение. Получается связывание комбинации переменных (признаков) с определённой категорией на выходе.

Говоря о комбинации, нужно иметь в виду, что комбинацией может быть и последовательность, а не только единичный объект. Последовательность также может быть с чем-то связана. Самое главное, чтобы комбинация была индикатором, в ней не обязательно должны присутствовать одновременно все её элементы и не обязательно в тех же пропорциях.

Индикатор привязывается к определённой логике, которая выполняется при активации этого индикатора. Индикаторы и логика могут создаваться во время работы программы (системы), например, во время синтеза. После выполнения логики вновь активируются какие-то индикаторы, которые запускают выполнение другой логики. Таким образом, в системе должно постоянно происходить связывание одной информации с другой, связывание индикаторов и логики. Говоря о связывании через призму машинного обучения (или глубокого обучения), в качестве связывания понимается отображение: one to one, one to many и т. д. Но, я не рассматриваю именно такое связывание, т. к. оно ограничивает понимание того, как должна работать система (нужно задавать правильные вопросы). В программировании связывание есть в структуре данных «словарь», «дерево», в хеш-таблице и др., в математике связывание может выглядеть в виде функции (та же самая классификация — функция многих переменных).

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

Немного про подкрепление. Подкрепление — это форма оценки или фиксации информации в системе. Единственная задача подкрепления — это фиксация информации определённым образом. Оценка — это способ определить насколько хорошо или плохо подходит та или иная информация для какой-то конкретной задачи. Подкрепление задаёт «категорию» для информации, а выбор логики для исполнения происходит во время анализа и синтеза (вместо того, как выбор логики происходит автоматически в обучении с подкреплением, пропуская шаги анализа, синтеза, оценки, обратной связи, переходя сразу к исполнению).

Анализ. Анализ может происходить не только перед синтезом, но и во время сбора обратной связи (информации) или оценки. Это анализ разных аспектов информации, но, возможно, он работает по одним и тем же принципам. Для синтеза происходит анализ логики, которую нужно исполнить, после исполнения логики происходит анализ результатов исполнения. Анализ — это разложение на более простое, обобщение разных элементов в одну общую категорию или рассмотрение информации.

Синтез логики (решения) может осуществляться на основе случайного или не случайного блужданий.

Случайное блуждание — это выбор случайных элементов, случайные комбинации, случайные траектории и т. д. В мозге это выглядит, например, как появление или разрушение синапсов.

Не случайное блуждание происходит не случайно, а на основе информации в системе, на основе оценки, анализа и др. Оно происходит уже на основе имеющихся элементов системы, а не только на основе случайного появления новых.

Метрики. Грубо говоря, метрики выглядят так: фиксация состояния X, в котором сейчас находится система → выполнение действия → фиксация состояния Y после выполнения действия → обучение, система запоминает, что из состояния X при таком-то действии происходит переход в состояние Y + различная дополнительная информация, которая со временем накапливается образуя опыт. В качестве X и Y могут быть отдельные части системы, какие-то отдельные переменные или какие-то аспекты задачи. В качестве действия выступает логика, само действие не может нести достаточно информации, т. к. это высокоуровневая абстракция, которая не отражает того, что происходит на низком уровне иерархий, необходимо оценивать каждый кусочек логики, из которых состоит действие.

Рассмотрим как работает алгоритм: индикатор → идентификатор → параметр → логика → выполнение → индикатор. И так по кругу, пока всё не дойдёт до самых низов или наоборот, от низших уровней к высшим. Внизу находятся процедуры (элементарные исходы), которые могут выполняться на основе активации индикаторов. На верху находятся сложные абстракции и образы, которые запускают высокоуровневые команды, которые выполняются через уменьшение абстракций до базовых структур ЯП. Также на основе индикаторов создаются знания системы, которые затем используются в процедурах для выполнения элементарных действий (элементарных исходов), для синтеза, оценки и др.

У человека есть чувства и эмоции. Чувство — это орган восприятия определённой информации, точно так же как и основные пять чувств (обоняние, осязание и др.), адреналин, дофамин, картизол и др., медиаторы воспринимаются определёнными чувствами. В общем, у человека есть очень много различных органов чувств, несколько десятков (они находятся на безусловном уровне, т. е. от рождения). На более высоких уровнях абстракций (условный уровень), со временем появляются новые регистраторы информации, когда человек начинает реагировать, например, на какие-то слова, звуки, прикосновения и т. д. Эмоция — это индикатор (медиатор или сигнал), подкрепление — это тоже эмоции (индикаторы). Сигналы извне могут преобразовываться в эмоции. Нейрон может работать не только с физическими индикаторами, но и с индикаторами в виде кодирования информации спайками.

Подкрепление — это эмоции (которые мозг генерирует автоматически на основе сформированных в нём, в течение эволюции, структур), следовательно, и индикатор, на основе которого можно изменять логику (поведение).

На более высоком уровне абстракций мозг, как единая система, может работать с более сложной информацией, которая не является физической напрямую (она как бы виртуальная, т. е. физически её нет, но она проявляется физически через более простые элементы, например, квалиа — физически её не существует, но физически она проявляется через активность мозга), она так же обрабатывается, как и физические индикаторы, вернее, принцип один и тот же (идея, алгоритм).

Немного про клетки

Я не говорю именно про глубокое обучение, а про развитие/адаптацию любой вычислительной системы в целом: отдельные клетки или одноклеточные организмы; многоклеточные организмы с нервной системой или без неё; интеллектуальная система в виде программы, написанная на языке программирования. В алгоритме описаны основные шаги, не все шаги могут быть достаточными и не все они присутствуют в различных системах. Это лишь абстрактный алгоритм, который сам по себе не имеет смысла. Для создания системы, обладающей интеллектом, необходимо наличие в ней определённого функционала, который в совокупности с данным алгоритмом смогли бы показать, чем должна обладать система, чтобы быть полностью самостоятельной.

Даже отдельные клетки имеют способности к адаптации или развитию (инфузория, нейрон), ведь они представляют собой целые сложные биохимические системы (биомашины). Они устроены намного сложнее, чем кажется. У них есть свои рецепторы в виде отдельных молекул или сложных белков, есть свои сложные комплексы команд, которые хранятся в ДНК и извлекаются из неё при необходимости на основе появления в клетке каких-то сигналов (активация сигналов от молекул, это некие индикаторы). Различные органеллы, молекулы, белки, сложные органические соединения работают слажено как единая сложная система на основе программы, хранящейся в ядре клетки.

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

Там, где есть электрический ток, есть и электромагнитное поле. Возможно, нейроны могут использовать появление поля в их зоне досягаемости как появление некой информации, т. е. это некие индикаторы. Это может выглядеть похожим образом, как и работа трансформатора напряжения: одна катушка создаёт электромагнитное поле, а вторая получает эту энергию и генерирует электрический ток. Только в случае нейронов (и клеток в целом) это один из возможных индикаторов.

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

Логика нейронов, возможно, может образовываться на мембране в виде увеличения или уменьшения её объема и в виде синапсов и, возможно, на основе внутренней среды нейрона (например, из-за разной концентрации определённого вещества), и также на основе генов и их выраженности (в зависимости от выраженности генов внутри клетки будет активна только определённая логика). Подобная логика работы клеток справедлива не только для нейронных клеток.

Нейроны работают намного сложнее, чем это предписывает модель на основе спайков, которая учитывает только их. Мысль, которую я хочу передать — нужно пытаться понять не то, как должна быть устроена система, а то, на основе каких идей она должна работать. Если идея понятна, то можно её реализовать. А если понятно как устроена система, от этого не станут понятными идеи, на основе которых она работает, т. к. система может быть устроена слишком сложно. Знание устройства и работы нейронов и мозга не дадут понимания идей, которые нужно реализовать для создания сильного ИИ.

Логика может находиться не только в каждой отдельной клетке, но и в их совокупности. В качестве логики могут выступать совокупности нейронов. Сам мозг также является вычислительной системой, только более высокого уровня абстракций, чем отдельные клетки. От рождения в нём есть различные комплексы команд в виде инстинктов и рефлексов, которые обеспечивают жизнедеятельность и развитие «нулевого» организма (т. е. организм, который не имеет никаких знаний), а также различные способности к развитию, адаптации, обучению и т. д.

В начале я написал, что нужно рассматривать идею о индикаторах и логике (и этом алгоритме) одновременно с разных точек зрения. Нужно брать одинаковое из разного и на основе этого делать общее, выводить общие идеи. Например: нейрон может воспринимать информацию через спайки; информацию может воспринимать весь человек в целом через органы чувств; воспринимать информацию может цифровая (электронная) вычислительная система через датчики; программа получает информацию через ввод-вывод (через объекты, файлы, строка ввода); воспринимать информацию может одна единственная клетка через специальные рецепторные белки, которые находятся в мембране и выступают наружу клетки одним концом и внутрь — другим.

Также человек в целом может воспринимать сложные абстракции информации такие как речь, текст, изображения и др. Это всё можно обобщить просто сказав, что любая информация — это некие переменные, индикаторы, которые можно обработать определённым образом, создав для этого определённую логику, которая будет запускаться от этих индикаторов. И так с любым аспектом, не только с восприятием. Например, автоматические действия, рефлексы, инстинкты — это комплексы команд, которые мозг использует без использования мышления или анализа, это почти то же самое, что и исполнение искусственной нейросети — просто рефлекторная работа. А внутри клеток автоматически выполняются биохимические реакции на основе выраженности генов.

После подобного анализа становится видно, что на разных уровнях абстракций всё работает примерно одинаково — в виде одного общего алгоритма с какими-то поправками. Т. е. сложная или простая логика или информация создаются почти одинаково, обрабатываются почти одинаково с идейной точки зрения. Хотя идея о том, что информация любой абстракции обрабатывается почти одинаково, при раздумьях о создании сильного ИИ присутствует и без подобного анализа.

Эти все идеи о работе клеток я рассказал для того, чтобы показать общую идею алгоритма. То, как работают клетки на самом деле не особо важно, т. к. если идея понятна, то её можно реализовать.

Заключение

В этой статье я ввел свою терминологию, с помощью которой описал основные идеи алгоритма саморазвития системы. Рассказал про то, как можно выводить алгоритмы того, как система может развиваться и действовать самостоятельно — главное правильно поставить вопрос. Добавил некоторые детали, которые помогут лучше понять терминологию и идеи алгоритма. Описал некоторые догадки относительно клеток и обобщил некоторые общие аспекты для различных вычислительных систем.

Данный алгоритм похож на описание функциональной системы П. К. Анохина (это из нейрофизиологии) — это модель, которая описывает способность организма действовать не просто рефлекторно, но и делать какие-то целенаправленные действия. Основные элементы функциональной системы: полезный приспособительный результат; синтез решения; акцептор результата действия (предсказание результата); выполнение решения; обратная связь; сравнение и коррекция.

Tags:
Hubs:
+2
Comments9

Articles