Салам!
Здесь я, в поисках идей для искуственного интеллекта, постараюсь провести параллель между человеческим интеллектом и машинным.
Нас с ЭВМ обьединяет то, что мы реагируем на события. Человек и животное реагирует на раздражители, ЭВМ - на сигналы от периферии. В ЭВМ или МК эффект человекоподобного искусственного интеллекта даёт набор обработчиков различных ситуаций (прерываний, ошибок, исключений) - этаких машинных рефлеков. Но, как можно заметить, контекст выстраивается в машинном и человеческом интеллекте разными способами. Человек и ЭВМ сохраняют контекст по разному. В ЭВМ пришёл сигнал от периферии - выполнение предыдущей программы прерывается. Обработчик завершается - ЭВМ возвращается в прерванную программу. Человек контекст не сохраняет. Если человек возвращается к какой то прерванной задаче, то это потому что есть стойкий раздражитель. Вы читаете книгу, вам кто то звонит. А по завершении разговора, вы возвращаетесь к книге, если вы никуда не ушли, ведь книга лежит на том же месте.
Попробуем построить аналогии с ощущением голода и опасности. Вы ощущаете голод и ищете пропитание (идёте в магазин и начинаете готовить). Но по дороге из магазина вас настигает дождь и вы начинаете искать укрытие, так как до дома далеко добираться.
Ваша программа прерывает планы на поиск пропитания, она более приоритетна. Однако, голод не тётка и вы решаете перекусить в укрытии, так как исполнение планов в первозданном виде уже невозможно.
Обратите внимание на особенности. Ваше поведение строится асинхронно, т.е. вы его не планируете. Логика вашего поведения непредсказуема, но зато она адаптируется под актуальные потребности. Перекус не стоит выделять в отдельную подпрограмму, это изменённый, в ответ на изменившиеся условия, поиск пропитания. Хотя, если у вас плохая привычка всегда перекусывать вместо того, чтобы нормально пообедать, можете выделить, перекус будет иметь приоритет. Ключевое обстоятельство здесь то, что ваше поведение является ответом на что-то, а не появляется неизвестно откуда.
Вы обратили внимание на то, что я описал человеческое поведение лишь в общих чертах - на самом деле здесь много деталей? Меня интересуют лишь особенности, объявленные выше. Я не собираюсь вдаваться далеко в биологию?
А как бы всё выглядело в программном варианте? Выполнение обработчиков прерываний, аналогично вашему поведению, было бы асинхронно, но не предусматривало возврата. Контекст здесь выстраивается внешними факторами. Функция какого-нибудь интерфейса программирования возвращает значение вызывающей программе, но всегда синхронно. При этом программа сама изменяет своё поведение, если нужно, основываясь на возвращаемом значении. Мы же хотим, вызывая очередной обработчик прерывания Б, изменить поведение другого обработчика А, при этом мы не знаем в какой момент времени завершится обработчик Б и какому обработчику А будет передано управление. Как вариант, можно оставлять значение в регистре процессора, стандартное назначение которого мы знаем, так как значение регистров проверяется регулярно, в отличии от ячеек памяти.
Пример#define DEFAULT 0
#define PAGE_ERROR 1
volatile int parameter;
void page_error(void)
{
volatile int parameter;
// этот обработчик был вызван
//при ошибке страницы
parameter=PAGE_ERROR;
//но он не успел обработать ошибку
//b вызван повторно таймером
parameter=DEFAULT;
}
void a1(void)
{
parameter=2;
parameter=DEFAULT;
}
void b(void)
{
//этот обработчик был вызван
//
switch (parameter)
{
case PAGE_ERROR: //обработка в условиях ошибки страницы
case 2
case DEFAULT: //здесь сгенерирована ошибка отсутствия страницы
}
}
Но это я описываю готовые программы вашего поведения. Но они откуда то ещё должны взяться. В ЭВМ и у человека это происходит по разному. В ЭВМ программу набирает программист, а человек до неё доходит через опыт.
Отталкиваемся от факта, что человек имеет набор безусловных рефлексов. Уже на их базе сформируются условные. А на базе существующих условных рефлексов сформируются новые при наличии своевременной обратной связи. Это и будет памятью. Причём старые рефлекторные связи могут со временем разрушиться, например в условиях недостатка энергии.
Сейчас будет мясо пример формирования памяти человека. Реакцией человека на низкочастотный импульс может являться сердечный выброс, т.к. такой импульс механически воздействует на диафрагму грудной клетки. А сокращающаяся диафрагма заставляет сердечную мышцу работать в более стеснённых условиях и увеличивать частоту сокращения. Тем временем формируется условный рефлекс - реакция нервной системы на низкочастотный импульс. И впредь в ответ на импульс увеличивается частота сокращения сердечной мышцы, причём это происходит уже без участия диафрагмы. Т. е. диафрагму мы заколебали, однако реакция на импульс необходима. И не только с точки зрения природы, пожары, к примеру, сопровождаются низкочастотными звуками.
Человекоподобную память в ЭВМ можно создать, встраивая вызовы обработчиков прерываний (ошибок, исключений) . Если, допустим, при выполнении обработчика прерывания возникает исключение, мы до выполнения команды, которая вызвала исключение, вставляем вызов обработчика исключения.
Примерvoid page_error(void)
{
// это обработчик ошибки страницы
}
void interrupt(void)
{
//это обработчик прерывания
//
//здесь сгенерирована ошибка отсутствия страницы
}
//запоминаем ошибку
void interrupt_saferity(void)
{
//это обработчик прерывания
page_error(); //
//ошибки отсутствия страницы больше не будет
}
И всё же, цифровые устройства не позволят реализовать полный аналог человеческого интеллекта. А человеческий интеллект не подчиняется детерминированным алгоритмам. Что уж говорить про описание человеческого интеллекта на каком либо языке программирования. Для того, чтобы создать искусственный интеллект, нужно определиться, мы хотим создать полный аналог человеческого интеллекта? Или всего лишь самообучающуюся систему? Но первый вариант однозначно неосуществим.
Комментарии (14)
kryvichh
31.01.2022 09:26+2А человеческий интеллект не подчиняется детерминированным алгоритмам
Это аксиома или теорема? А вдруг действия человека в каждый момент времени полностью определяются 1) состоянием его биологического компьютера (структура нейросети + уровни заряда в каждом синапсе); и 2) набором сигналов от внешней среды, пришедших через органы чувств.
P.S. Столько лет прошло с универа, а вопросы у молодёжи всё те же.
kichrot
31.01.2022 14:18... И всё же, цифровые устройства не позволят реализовать полный аналог человеческого интеллекта. ...
Нет никаких объективных оснований для такого экстремального вывода.
... А человеческий интеллект не подчиняется детерминированным алгоритмам. ...
Совершенно необъективное суждение, так как абсолютно все в объективной реальности существует исключительно в рамках детерминизма.
NTDLL Автор
31.01.2022 14:41Но это ладно, можно было просто по русски написать, что - определённость. Определённое поведение есть, определённого алгоритма - нет.
kichrot
31.01.2022 18:00... определённого алгоритма - нет ...
Определенный алгоритм есть всегда и везде.
Другое дело, что человеческий интеллект реализует алгоритм, способный обрабатывать неопределенное число разнородных переменных.
MAI-kov
02.02.2022 17:36Определенный алгоритм есть всегда и везде.
В мозге нет.
Мозг - это открытая термодинамически неравновесная система. Например, каждое переключение внимания - это переход через точку бифуркации (неравновесный фазовый переход) и вообще работа мозга на всех уровнях связана с такими переходами - от морфогенеза до синхронизации изначально хаотической активности нейронов (в результате чего возникают ритмы мозга).
В свою очередь, бифуркация - это качественное изменение поведения нелинейной системы при бесконечно малом изменении её параметров. На уровне бесконечно малых подробностей природа непознаваема, поэтому этот переход в принципе невычислим, то есть принципиально непредсказуем, - но, как понятно, не случаен.
Из физики работы мозга вообще много чего следует в смысле перспектив сильного ИИ, изучения сознания или даже идеи свободы воли и т. д.: https://dronron.livejournal.com/
FinePeopleSpace
31.01.2022 22:17Планировщик приоритетов человека работает иначе. В компьютере это монопольный арбитр. А в мозгу человека сами задачи способны менять приоритеты друг друга. Например, задача "очень хочу кушать" может уменьшить приоритет задачи "будь осторожен". И наоборот, задача "будь осторожен" может занулить приоритет задачи "очень хочу кушать".
То есть подпрограмма мозга человека решает не только свои прямые задачи, а часть своего пула времени тратит на подъём-спуск приоритетов других задач.
Это можно сравнить с динамичной пузырьковой сортировкой:
Встречаются число "3" сверху и число "5" ниже по стеку. И если "3" банкует и успеет за свой слот времени уменьшить "5" на три пункта, то "5" превратится в
тыквув двойку. И задача с приоритетом "3" одержит верх. Аналогично с усилением дружественных задач.Как вариант, задачи могут "выпрашивать" друг у друга ключики для своего приоритета. Например, давай ты пока поголодаешь (отдашь несколько баллов своего приоритета), а когда я заработаю кучу билетов в кино, то возьму тебя с собой и угощу попкорном. Наешься до отвала самосвала. Своего рода биржевые торги всех со всеми, а не так как в компьютере — все решает монопольный арбитр.
ex_ineris
01.02.2022 03:22Статья неочем, сравнивать то что не является интектом с интеллектом, не совсем корректно в данный момент ибо машина не способна накапливать опыт знания навыки мыслить интуитивно логически эмоционально. Мозг это не нейросеть и не много нейпосетей.
Guelderrrose
02.02.2022 17:36Человеческий интеллект детерминирован, просто количество факторов и элементов в системе крайне велико
VladimirKryukov
02.02.2022 17:36Вы мыслите абсолютно правильно. Вы уловил суть системы управления Психики. Хотя знаний в реальной психологии у Вас явно недостаточно. Но из этого Вы смогли сделать точный вывод.
Я могу предоставить Вам все необходимые знания по психологии, которые подтвердят Вашу гипотезу. Если желаете сотрудничать, напишите мне на почту. Infomodelpsi@mail.ru
Удачи в творчестве!
napa3um
Современная наука (и философия) пока остановилась примерно на таком ответе (точнее, некой обширной области уточнения этого ответа): https://ru.wikipedia.org/wiki/Воплощённое_познание
Ну и помимо программирования для таких философских размышлений я бы порекомендовал погрузиться в чуть более абстрактные науки и дисциплины. Очень хорошо начинать с кибернетики.
Vernetti
Интеллектом я бы назвал уровень развития вашего сознания, так как мышление - это анализ данных поступающих с органов чувств, то есть окружающего мира и самого себя ( самосознание) , вывод определённых моделей на основе этих данных.
Человеческое мышление можно представить как стэк задач с разным приоритетом, приоритет которых может меняться, а задачи выполняться или появляться на основе поступающих из вне данных.
Лишите человека всех органов чувств и вскоре, в зависимости от его силы воли, его сознание начнёт деградировать, а значит развитость сознания прямо зависит от постоянного потока данных.
Так мы можем более ярко и понятно увидеть этот процесс у младенцев, когда их сознание развивается посредством их анализа окружающего мира. Да, их модель мира ещё далека от реальности, но они её уже строят.
napa3um
Главное, чтобы ваша терминология помогала вам решать ваши задачи (объективно различать явления и как-то предсказывать их свойства) и не мешала коммуникациям с коллегами. А так хоть святым духом можете это всё называть :).
NTDLL Автор
Ну с нашими мозгами такая же история, что с электросхемами, к примеру. В элетросхемах вряд ли происходит какой то анализ или вывод каких то моделей. Но тем не менее своё дело они делают. И не забывайте про эволюцию, хотя её творения и может описать математика.
Вначале было слово, а после было дело. В случае с эволюционно развивающейся системой получается наоборот.