Как стать автором
Обновить

Комментарии 145

НЛО прилетело и опубликовало эту надпись здесь
Все это хорошо, но главный вопроса КАК это сделать? Вот вы говорите

Например, интуиция — прямое получение знания о будущем состоянии реальности без постройки детальной модели

Ну и как сделать это прямое получение знаний? Опишите этот процесс в виде формул, структуры данных для знаний, алгоритмов. Ведь все это придется программировать. Нельзя компьютеру сказать: «получи прямым образом знания из базы!» Это так не работает.
НЛО прилетело и опубликовало эту надпись здесь
В том-то и дело, что это никак не сделать…


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

На вскидку — логично предположить что сознание — некий фокус на текущем моменте, а построение и анализ модели может происходить и за пределами этого фокуса…
НЛО прилетело и опубликовало эту надпись здесь
Я вполне непротив поговорить на не вполне материалистические темы… ;) Согласен, что это слегка офф (хотя кто знает), так что можно в личку!
В том-то и дело, что это никак не сделать…

Это сделано в мозге, значит это можно повторить.
НЛО прилетело и опубликовало эту надпись здесь
Механистический подход к жизни не единственный

Кто бы спорил…

Мне тоже близка концепция в стиле «органы чувств не столько источник информации о мире, сколько фильтр», но…

Что-то мне говорит, что одно другому не мешает. Иметь чисто механистическую парадигму, хотя бы для того, что бы допустим на практике доказать, то она не работает — уже не плохо! ;)
А насекомые?

Пока склоняюсь к мысли, что насекомые просто реагируют. Так, как заложено природой. У них просто нет такого количества нейронов, что бы строить модель.

Есть мнение, что обучением, построением прогнозов и абстракциями занимается неокортекс — сравнительно позднее нововведение. В таком случае проблемы не только у насекомых, но и у рептилий, например.
Одна из функций сознания — осознание, т.е. обработка данных с рецепторов…

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

Мне нужно время, что бы подумать над этим.
НЛО прилетело и опубликовало эту надпись здесь
Муравейник это сложнейшее техническое сооружение, а не куча мусора, в которой живут муравьи…

Вы же понимаете, что техническая сложность и интеллектуальная деятельность коррелируют весьма относительно? Например: фракталы…
Но с моей точки зрения это глупость, потому что тогда можно сколь угодно сложное поведение объяснять не разумом, а инстинктом.

Да в принципе — можно. Вопрос — нужно ли? Есть же принцип Окама и здравый смысл… У муравьев просто нет нужного количества нейронов… да и некоторые факты, вроде хороводов смерти говорят о достаточно простой, хоть и весьма занятной организации этих насекомых.
Вот например, я прямо сейчас чисто инстинктивно прочитал ваш ответ и аналогичным образом написал свой.

Если так — то Тест Тьюринга вы прошли, т.к. я не смог отличить имитацию разума от настоящего! ;)
Тогда вопрос поставлю так — чем восприятие вообще отличается от сознания?

Восприятие может быть сознательным и бессознательным. Значит как минимум это не одно и то же.
Вы берете объекты разума и жонглируете ими не отходя от кассы — на таком классном эмуляторе можно жонглировать макаронами и создать бога.

Хорошо, что вы обьяснили. Плохо, что я не понял… (

Имеется ввиду, что все(!) существующие определения сознания использует термины, которые в свою очередь не определены. Например, возьмем такое определение: Сознание — это способность понимать. А что такое «понимать»? Понимать — это адекватно воспринимать окружающую действительно. А что значит «воспринимать», что значит «адекватно»?

Так можно продолжать до бесконечности, жонглируя не определенными философскими терминами. На данный момент невозможно дать нормального определения сознанию. Да и разуму тоже. Лучший вариант: «выглядит как утка и крякает как утка», т.е. действует похоже на человеческий разум. А что значит «похоже»? Насколько похоже, в каких единицах измерять эту похожесть — тоже не определено.
Вот так гораздо понятнее, спасибо.

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

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

Просто ряд соображений:

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

И мне кажется, что это не какой-то волшебный механизм, подобранный эволюцией! просто в рамках любой конкретной ситуации полнота модели и процессное восприятие обеспечивают довольно ограниченный набор подходящих решений… Блин, сложно объяснить, нужен пример.

Это как с нейронной сетью — она же не ищет (перебором), правильно? Она просто автоматически по весам нейронов получает нужный выход, по входным данным. Правильно? Так и здесь — выходом будет классификация ситуации определенным образом, до тех пор, пока не будет одной подходящей стратегии для развития в нужном направлении.
Ну допустим у меня есть определение.
Понимание это построение правильной модели. Правильная — это когда информационные элементы модели соответствуют элементам реальной системы. Чем больше соответствий, тем более правильная модель.
Можно сделать робота с несколькими сенсорами и камерой. И через вариационный автоенкодер (VAE) обучать его, чтобы получая на вход текущую картинку и показания сенсоров, на выходе VAE выдавалась картинка следующего кадра. В латентном слое этого VAE будет содержаться модель реального мира. Полная, непротиворечивая, правильная. Используя только эту модель (только внутренний слой) и не используя больше входные данные, можно переобучить нейронную сеть выдавать картинку не на 1 кадр вперед, а на 2 кадра. Или выделять цветом людей на картинке. Это называется Transfer Learning и это доказывает, что там действительно содержится модель реальности, а не просто математическое преобразование одной картинки в другую.

Но это не делает такого робота разумным.

Во-первых, как он должен двигаться, чтобы набрать статистку для построения этой внутренней модели мира? Случайно и как-то иначе?

Во-вторых, как на базе этой модели мира (полной, адекватной, правильной), ему теперь действовать, чтобы он по команде человека отправился мыть посуду?
Ваше модель прекрасна. Я серьезно.

Но это немного не то. Это скорее ближе к концепции Джеффа Хоккинга «память-предсказание», которую он изложил в книге «ОБ интеллекте».

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

Нет, там будет модель кадров. Ассоциативный массив jpg -> jpg. Модель мира — это наличие для каждого реального объекта, их взаимодействия или взаимного расположения соответствующего элемента модели. Если сеть не может представить человека отдельно на произвольном фоне без предъявления фотографии, значит у нее нет модели этого человека. Если сеть не может выделить общее движение у двух шагающих людей и потом его узнать, значит у нее нет понятия "шагать". Нет элементов, к которым можно привязать слово или словосочетание, поэтому правильной модели нет, поэтому и команды он не поймет, тем более с собирательным понятием "посуда". Кстати, мысль "меня просят помыть посуду" это тоже модель того, что происходит в реальности.

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

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

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

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

Обучение для этого делается инвертированным: робот совершает какие-нибудь действия и смотрит, к чему это привело. А потом делает финт ушами: на вход нейросети кроме текущих наблюдений подает также награду (goal), которую он получил. А на выходе ставит последовательность действий, приведших к этой награде. И обучается так на всем опыте, даже на плохих наградах. А потом просто подает на вход явно завышенную высокую награду, которую хочет получить, а обученная нейросеть выдает действия, которые нужно предпринять для ее достижения.

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

Блин, вот это было бы интересно… Расскажите! Можно в общих чертах — что пробовали, почему не получилось.
Интересная концепция, хоть в чистом виде и не работает (только в отдельных частных случаях, с подбором гиперпараметров).

Может ее надо просто немного развить/поменять? ;)
Ничего необычного, просто модель человечка на физическом движке Bullet (вроде MuCoCo в OpenAI, только бесплатный). Пробовал разные архитектуры нейросетей — MLP, CNN и RNN в разных сочетаниях, и плюс все выходящие необычные новинки вроде Transformer или WaveNet, так как у каждой из них есть свои сильные и слабые стороны. Где-то емкость сети выше, где-то более длинные последовательности обрабатываются лучше, где-то локальные фичи лучше выявляются. Пытался найти, какая архитектура лучше подходит в качестве «мозгов» виртуальному персонажу для жизни.

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

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

Берем первый нейрон внутреннего слоя. Какому объекту или явлению в реальности соответствует сигнал с него равный 1? Можно группу взять, неважно. Если мы не можем это сказать, если там это распределено по весам и срабатывает только всё вместе, то это не модель.
Суть в том, чтобы у нас срабатывали одни и те же информационные элементы для каждого знакомого понятия, и чтобы каждым понятием можно было оперировать отдельно без его предъявления.


и линейной регрессией получаете из него контур человека на любой фотографии.

Ага. Берем фотографию другого человека и той же регрессией получаем контур. Значит сеть не отличает одного человека от другого. Убираем фотографию, и никак не можем получить контур человека. А если и можем, то усредненный, а не конкретного Васи или Пети.
Это не модель. Модель это четко заданное соответствие между реальными объектами и информационными.


Если обучалась по видео, то выделит концепцию «шагать».

Как определить, что она выделила именно концепцию "шагать"?

Если мы не можем это сказать, если там это распределено по весам и срабатывает только всё вместе, то это не модель.
Я так понимаю идея такая: прогоняем через подобную систему 100500 фоток или что там еще. Потом даем «чистое» (т.е. выделенное) изображение человека… Или несколько разных людей. То, что будет на выходе — это «сигнал», соответствующий понятию. Насколько он будет постоянным (будет ли в нем хоть что-то постоянное, без специального натаскивания именно на людей) — как раз и показывает, насколько сеть смогла выделить в своей модели понятие «люди».
Как определить, что она выделила именно концепцию «шагать»
Так же. Дать ряд примеров, где шагают и извлечь постоянную составляющую — это и будет понятие «шагать»…

Как я понимаю — это сферическая концепция в вакууме, которая в лоб работает не очень хорошо. Ее можно и нужно иметь ввиду, но с разумной степенью осторожности.
Так проблема нейросетей в том, что обычно нельзя выделить эту составляющую. Даже отдельное направление есть для разработки сетей, которые могут объяснять свой вывод. «Чистое изображение человека» тоже не нужно, это классы, а сначала нужны конкретные объекты, которые потом будут объединяться в классы на основе сходства признаков. Тогда сеть сможет принимать решения в нестандартных ситуациях, потому что в реальности существуют только конкретные объекты.
Так проблема нейросетей в том, что обычно нельзя выделить эту составляющую. Даже отдельное направление есть для разработки сетей, которые могут объяснять свой вывод.
Не, не, не… ;)

Это разные задачи: Выделить составляющую и объяснить свой вывод. Объяснить свой вывод сеть не может — это просто подобранные веса во внутренних слоях.

А вот выделить некую корреляцию — вполне реально.

«Чистое изображение человека» тоже не нужно, это классы, а сначала нужны конкретные объекты, которые потом будут объединяться в классы на основе сходства признаков.
Я немного общее представление имею, но DesertFlow поправит, если что: то, о чем вы говорите, так примерно работают сверточные сети. В случае с анализом изображений, сначала работает сеть, обученная извлекать графические примитивы (линии, углы, контуры и тп) — результат ее работы подается на вход следующей сети, которая умеет находить элементы, типа глаза/уха/крыла/хвоста (а так же колеса/окна и прочего). Из них собираются объекты и в теории можно продолжать дальше. Могу ошибаться.
Это разные задачи

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

Берем первый нейрон внутреннего слоя. Какому объекту или явлению в реальности соответствует сигнал с него равный 1?

А у человека где хранится сигнал, соответствующий концепциям? В нейросети так же. Это уже доказанный факт, что там формируются аналогичные структуры, как у людей.

Пруфы:

1) в сверточных сетях по слоям формируются такие же паттерны, как у животных в биологическом мозге.

image

2) в нейросетях, как и у людей, формируются «нейроны места» (нейроны, отвечающие за позиционировании в пространстве): https://habr.com/ru/post/438526/

3) Недавняя работа GANpaint , показавшая что в нейросетях формируются концепции, аналогичные как в биологическом мозге. Как раз то, о чем вы говорите: в этой программе искусственно активируют нейроны, ответственные например за концепцию «трава», и она добавляет траву на картинку. Фокус в том, что это именно концепция травы, а не просто рисование травы где угодно. Так, на фоне неба она траву не добавит, потому что на облаках трава не растет.

image

Ну и тому подобное, все это уже довольно хорошо изучено и экспериментально доказано.

Если мы не можем это сказать, если там это распределено по весам и срабатывает только всё вместе, то это не модель.

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

Это не модель. Модель это четко заданное соответствие между реальными объектами и информационными.

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

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


Про пруфы.


1)
В статье с этой картинкой есть такая фраза:
"this is only an example: real life convolution filters may detect objects that have no meaning to humans"


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


В работе, на которую там ссылаются, конкретно такой картинки нет. Но написано, что сеть тренировали на конкретных классах изображений — лица, машины и т.д. Там есть фраза "The images were unlabeled in that the position of the object is unspecified", что как я понимаю означает, что правильная категория, к которой надо отнести изображение, все-таки задавалась извне. То есть это классификация, а не выделение конкретных объектов.
Также я не нашел информации про устойчивость к сдвигу и повороту. Если сеть при небольшом сдвиге перестает определять объект как "тот же самый", то это тоже не та модель, о которой я говорю.


2) Я согласен, что есть движение в правильном направлении, как и картинка из предыдущего пункта, особенно "Layer 1". Просто этого мало, и это еще не такая модель, которая нужна.


3) Да, это уже ближе к истине. Если они смогут приделать к этим концепциям слова и генерировать картинку по текстовому описанию, будет круто. Практически настоящее воображение. А там и до переводов текста недалеко. Только они почему-то решили ограничиться рисованием.


Ха, ну тогда и человек не строит модель мира, раз не можем указать конкретные нейроны, да?

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


Вы говорите о математической модели с четкими формулами.

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


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

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

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

Можем, нейроны «бабушки» / «Дженнифер Энистон».
Модель внешнего мира в разуме создают ученые, модель разума во внешнем мире — программисты, а вы создаете модели разума человека в разуме человека — так тоже бывает, но при чем здесь ИИ? Он же не у вас в голове будет запускаться.
ИИ при том, что программисты создают модель, не имея модели (хотя это конечно не так — все имеют модель… Хоть плохонькую, но имеют). А я, будучи так же программистом, хочу понять модель в голове, что бы создать ее во внешнем мире… Ведь я же ее создаю без привязки к голове! Вроде бы…

Черт, я ведь искал же, что есть на хабре на эту тему, но вашу статью почему-то не увидел...


Если бы увидел — заранее изучил бы комментарии и возможно внес бы коррективы в текст...


Добавлю ссылку на вас в шапку статьи, как буду у компа.

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

Вот представьте, что у вас есть полная модель мира (база знаний), а дальше что? Как в ней ориентироваться, как искать нужные ответы? Модель мира не может дать ответа на вопрос «Какую ногу надо поднять, чтобы сделать шаг?». Она, как и любая база знаний, может отвечать только на конкретные вопросы по динамике мира. Например: «На сколько градусов поднимется нога, если я буду развивать мышцами усилие 40 Н в течении 2 секунд?».

Чувствуете разницу? Чтобы получить ответы, характерные для разума, нужно эти ответы как-то искать в имеющейся модели мира (или базе данных). И никто не знает, как разум это делает в таком огромном разнообразии возможностей (пространстве решений). Надо что, спрашивать у модели мира про все возможные усилия с шагом 1 Н и временем 0.1 сек (а почему не с меньшим или большим?), чтобы потом выбрать вариант, который поднимает ногу выше всего? А если нужно сделать длинную последовательность действий, как ходьба?

Поэтому голый Model-Based подход не работает. Даже если у нас есть идеальная модель мира и мы будем перебирать в ней все возможные варианты, проклятие размерности быстро сводит такие попытки на нет.

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

Я поясню насчет эволюции. Как сейчас обучают нейронные сети? Сравнив выход сети с тем, который должен быть (в случае обучения с покреплением — награда оказалась выше или ниже), мы всегда знаем, нужно увеличить или уменьшить конкретную связь между двумя конкретными нейронами. Но насколько именно ее нужно изменить — неизвестно. Надо умножить текущую ошибку на 0.001, 0.1, на 0.0000001? Сейчас условно берут скорость обучения (learning rate), скажем, 0.0001. На это число умножают ошибку и прибавляют к текущему весу нейрона.


Это число 0.0001 применяется ко всей сети и подобрано экспериментально, потому что так заработало. Но из-за того что это число везде одинаково, где-то связи слишком сильно меняются, а где-то слишком мало. Обычно делают это число очень маленьким, чтобы изменения были небольшие, но из-за этого требуется показывать нейронной сети миллионы примеров, чтобы связи между нейронами доросли с такой скоростью обучения до нужного размера. Но главное — в задачах с нестабильными градиентами, где они прыгают и бывают направлены в разные стороны (как это происходит в большинстве задач reinforcement learning), таким образом нейросеть вообще не может обучиться!


В живом мозге это число подобрала эволюция. Если взять обычную нейронную сеть, где learning rate у каждого нейрона или у кластеров нейронов будет свой, и сделать его динамическим, как-то привязав к получению награды. То получится очень похоже на то, что происходит в живом мозге. Будет возможность обучаться на единичных примерах, обучаться в течении всей жизни и т.д… Но ни как сформировать такие кластеры (и как их соединять с другими кластерами), ни как подобрать правила изменения learning rate для отдельных нейронов или кластеров — на данном этапе неизвестно.


В живом мозге все это сделала эволюция.

Это очень хороший комментарий. Я практически полностью с ним согласен.

Я просто хочу пояснить.

Я не говорю о том, что знаю, как работает мозг и как реализовать его подобие на уровне, так сказать, аппаратном. Речь на данном этапе о концепции. Если мы принимаем (а у меня складывается ощущение, что принимаем — так или иначе) концепцию, то дальше перед нами большой ряд вопросов технических. А там — море нюансов! Например в случае с нейронной сетью вопрос может быть в настройке веса, а может быть в том (в отношении изображений), что мы пытаемся (пытались) анализировать статичную картинку целиком а в реальности присутствуют саккады и динамика. Как только это поняли — сверточные сети и вобщем-то прорыв в распознавании. Т.е. технические проблемы преодолимы. Можно пытаться реализовать все, как в природе, а можно использовать гибридный подход… Ну собственно все так и делают — ничего нового я не написал.
Они строят модель мира именно как у вас описано — полную, непротиворечивую и так далее.


Нет, но это не принципиально. Они строят модель того, с чем не взаимодействуют непосредственно. Т.е. это все еще китайская комната.
Вот представьте, что у вас есть полная модель мира (база знаний)

А на каком основании вы вывели тождество база знаний=модель мира? Это далеко не одно и то же.
а дальше что? Как в ней ориентироваться, как искать нужные ответы?

А как вы это делаете в реальной жизни? Вот я у вас спрошу: какую ногу надо поднять, что бы сделать шаг? Вы соотнесете вопрос с моделью: что такое шаг, как вы его делаете… Это совершенно конкретное ощущение вашего организма. Ответ: любую.

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

А вы твердо уверены, что разнообразие огромно? Ваш пример про ногу некорректен: организм почти случайным образом учится управлять телом и не занимается такой ерундой, как что бы решать какие мышцы в каком порядке напрягать: у него было около двух лет в начале жизни на то, что бы выбрать оптимальную схему и ей следовать.
Ну и вообще по жизни — приведите пример анализа «огромного разнообразия и пространства возможностей»? В каждом конкретном случае работает правило прецедента: в прошлый раз в такой же (на определенном уровне обобщения) ситуации действие было такое-то, результат — такой-то. Оценочная функция определяет считать ли опыт успешным, или, как вариант — попробовать что-то новое…

Проблема создания разума не в модели, а в том как реализовать этот поиск.

Давайте наберем пару-тройку примеров, что бы можно было понять в чем проблема поиска… В глобальности модели? Но она хорошо «индексирована» и связана ассоциациями. Я пока не вижу серьезной проблемы поиска, хотя вполне вероятно, что она есть.

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

Китайская комната — это мнимый философский парадокс. На самом деле его не существует.


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


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


image


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


p.s. Модель мира в автоэнкодере будет вполне адекватной. Можно вместо картинок взять видео, и тогда модель будет содержать динамику. Можно камеру поставить на робота, и тогда модель будет включать взаимодействия с миром.


Давайте наберем пару-тройку примеров, что бы можно было понять в чем проблема поиска… В глобальности модели? Но она хорошо «индексирована» и связана ассоциациями. Я пока не вижу серьезной проблемы поиска, хотя вполне вероятно, что она есть.

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


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

Китайская комната — это мнимый философский парадокс. На самом деле его не существует.

Как я понимаю, существуют как минимум две категории людей: тех, для которых это вполне реальный пример, иллюстрирующий несостоятельность теста Тьюринга, и их противников, имеющих обратное мнение. ;) Причем автор парадокса Сёрл был таки из первых!
Насчет взаимодействия — а как же роботы, которые обучаются в виртуальных физических симуляторах?
Симуляторы как раз — замечательно! Я думаю так и нужно делать — создавать симуляцию реального мира (упрощенную) и симуляцию взаимодействия. Об этом я хотел написать во второй части. Но симуляция мира и база знаний с фактами не имеющими воплощения хотя бы в симуляции — не одно и то же.

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

Проблема создания разума как раз в том, что дальше делать с этой моделью мира.
в приведенной мной концепции модель мира включает развертку модели во времени, с вариантом некоего «светлого будущего», для достижения которого необходимо предпринимать некие активные действия. Более развернуто об этом — во второй части… Т.е. модель должна включать в себя действие.
Не существует никаких индексированных и хорошо связанных ассоциациями баз, отражающих всю сложность реального мира. Делать такие еще не научились.

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

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

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

Но на само деле нужно наоборот — не детализировать без необходимости. Пока для тебя нет разницы — красный куб или зеленый шар — и то и то физический объект. они становятся разными, только при наличии разных кейсов использования.

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

Понимаете, с парадоксом китайской комнаты вот какая штука получается… Ее приверженцы заявляют, что два состояния отличаются: 1) человек внутри понимает(осознает) что делает, и 2) не осознает, а просто действует по правилам.


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


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


Китайская комната это не парадокс, а иллюзия мышления. Слова, которые на первый взгляд звучат как логичные, но на самом деле являются бессмысленной чушью. Как "небо, слон, паровоз". Все слова знакомые, но фраза не имеет смысла. Только бессмысленность этой фразы сразу ясна, а с китайской комнатой разобраться сложнее. Так же, как сложно разобраться с какой-нибудь оптической иллюзий.

Это проблема людей с гуманитарным складом ума


Зря вы так. ;) С той же википедии: Только с 2010 по 2014 год было выпущено более 750 статей в научных журналах, где обсуждается мысленный эксперимент Сёрла. Все прям гуманитарии?

Вы впадаете в ошибку того же Тьюринга. Он долго размышлял о природе интеллекта и не смог вывести критериев проверки ДЛЯ НЕСПЕЦИАЛИСТОВ. Т.е. чтоб любому гуманитарию было понятно, что вот эта вот штуковина не просто так тут гудит, а МЫСЛИТ! Поэтому он пошел по традиционному пути утиной типизации: «если крякает, как утка, плавает как утка, то...». Т.е. если не можем отличить от человека — значит думает.

И это ввергло отрасль в пучину чат-ботов! ;) Хотя вот мне кажется очевидным, что если есть машина, известны принципы ее построения и есть прямое проявление разумного поведения (в самых разных его проявлениях) то, даже если ее мышление не похоже на человеческое, а разговаривать она не может совсем, или только на своем особом языке, то оценить степень ее разумности вполне возможно. А чат-бот, он чат-бот и есть.

Что касается китайской комнаты — вы не совсем правы. Дело не в том, что раз невозможно разделить понимает или нет ПО ВНЕШНИМ ПРОЯВЛЕНИЯМ, то значит и нет разницы — вы правы. Нет. Просто нельзя судить о разумности по внешним проявлениям. Тут недавно было — мол людям же в голову не влезешь, откуда мы знаем, что они разумны? Может половина сплошь чат-боты! Так а я и не спорю! Может быть. Я знаю за себя — ибо осознаю. Буду знать за машину, если она будет по моим принципам построена. А за людей — не знаю! Наверняка — не знаю. Над более корректной проверкой, чем тест Тьюринга я еще не размышлял…

Кстати, я почти уверен, что довольно значительная часть людей не пройдет тест Тьюринга.

Так что для меня по комнате ответ простой — человек внутри комнаты не понимает иероглифов. И комната вместе с человеком не понимает. Это просто чат-бот, каким бы умным он не казался. И если он проходит тест Тьюринга, то или экзаминатор слабоват, или тест ни к черту! ;)

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


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


А то получается забавно — говорят о двух отличающихся вещах, но чем они отличаются, сказать не могут.

А то получается забавно — говорят о двух отличающихся вещах, но чем они отличаются, сказать не могут.
Вот! Именно так оно и работает… Если не отличается — то суть одно. Это правильно.
А изнутри их можно отличить?
Можно! Можно посмотреть устройство, алгоритм, принцип действия и тп. ;)

Вот, скажем, нейронная сеть, распознающая символы. Самое первое, что реализовали — OCR. Если провести определенный реверс, то можно выделить/подобрать определенные изображения, которые абсолютно, никак не похожи на буквы/символы, но опознаются сетью как определенный символ с высокой (выше 90%) степенью вероятности (не могу что-то пруф найти, но точно встречал такое).
Получается, что если глянуть (пристально) в исходники чат-бота, который смог меня обмануть и пройти тест Тьюринга — весьма вероятно не только понять, что он таки «китайская комната», но и найти «те самые» вопросы, на которых он спалится!

Я не спорю — во многих отношениях вы правы. НО есть и обратные аргументы — нельзя возводить принцип подобия в абсолют! Думаю истина где-то посередине…

Т.е. в модели мира допустимо использовать два понятия как одно, если между ними нет различий, но… Здесь они есть. Я же вижу, что я думаю не как китайская комната! НЕ смотря, на возможное формально неотличимое поведение.
Нет, человек изнутри китайской комнаты тоже никак не может различить, есть у него сознание или нет. Философы говорят: ну вот я в своей голове прекрасно понимаю, что у меня есть сознание! Значит оно есть. Но как я уже говорил выше, они не хотят дальше вдаваться в технические детали, черти.

Как бы вы доказали сами себе, что у вас есть Сознание? Физическими материальным способами, а не словами. Ведь если «сознание» существует в нашем мире, то есть может своим существованием оказывать влияние на физический мир, то значит оно должно так или иначе оставлять физические следы! Закон сохранения энергии и все такое.

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

P.S. Сознание конечно же существует, не может быть такого, чтобы «слово есть, а ж… пы нету». Просто это более широкое понятие, появившееся исторически с развитием языка. Когда потребовались местоимения, то вот они с сопутствующими эффектами и стали называться осознаванием себя в мире. Физически сознания (в философском смысле, а не медицинском) не существует, а значит и идеи вроде китайской комнаты — это когнитивное искажение, не более. Физически наиболее близкое к сознанию это активность групп нейронов, вызванная различными соответствующими факторами, например всплывающими ассоциациями после слов «я», «мир», «чем я отличаюсь от остальных» и т.д… Как-то так. Сознание это больше медицинская тема, чем проблема, касающаяся разума.
Вы все правильно говорите. Но несколько более абстрактно, чем хотелось бы! ;)
Нет, человек изнутри китайской комнаты тоже никак не может различить, есть у него сознание или нет.
Зачем мне человек внутри китайской комнаты! ;) Мне он не нужен. Это, вы правы, философия. Я говорю о порочности «утиной типизации» относительно вещей, которые мы можем разложить на составляющие и понять устройство. Я полагаю, что именно это внутреннее устройство нужно оценивать и исходя из этого определять разумность, а не по внешнему проявлению. По крайней мере не только по нему. Скорее всего — и так и так.

Как бы вы доказали сами себе, что у вас есть Сознание?
Вся эта статья — мое описание моего сознания. Проблема ведь не доказать, что оно у меня есть (себе — нет смысла, я это и так знаю, вам -невозможно, для вас я — китайская комната). Проблема так изложить что именно у меня есть (и что мы называем сознанием), что бы это можно было воспроизвести! Я не описываю сознание через «что он делает», по крайней мере — вовне. Я описываю, как оно устроено (в моем понимании). И если я встречу устройство, которое работает по тем же принципам, то я много чего пойму:
  • или оно будет работать так и будет демонстрировать разумное поведение и это лучший из вариантов,
  • или оно будет не будет работать, либо будет, но не будет демонстрировать ничего путного и тогда нужно дорабатывать теорию
  • или оно будет работать так и будет демонстрировать поведение, условно разумное, но не человеческое, например. Это тоже интересный опыт.

Вот, скажем, нейронная сеть, распознающая символы. Самое первое, что реализовали — OCR. Если провести определенный реверс, то можно выделить/подобрать определенные изображения, которые абсолютно, никак не похожи на буквы/символы, но опознаются сетью как определенный символ с высокой (выше 90%) степенью вероятности

Это называется Adversarial Attacks. Классический пример: добавление специального шума к картинке заставляет нейросеть думать, что там нарисован гиббон вместо панды.

image

Но опять, дьявол кроется в технических деталях. Такое возможно из-за того, что с нейросетью можно быстро экспериментировать. Она дает ответ с некоторой вероятность, скажем, 97% что это панда. Теперь случайно чуть изменяем пиксели и смотрим, что покажет сеть. Если она покажет чуть меньше, скажем 96.999%, то продолжаем изменять пиксели в этом же направлении (по этому же градиенту). В итоге найдем картинку, где сеть будет думать, что это не панда. Проценты упадут, скажем, до 10%.

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

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

Теперь, зная технические детали как это сделано, должно стать понятно, что такие атаки говорит совсем о другом, а не о том, что им тут приписывают. У человека тоже есть такие глюки — оптические иллюзии.

Более того, искусство, комедии, ужасы, политическое ораторство — все это тоже Adversarial Attacks, только на человека! Люди искусства, художники, сценаристы ищут такие уязвимости в нейронной сети нашего мозга, и используют их. Усиливая эти эффекты по направлению градиента. Все как и в нейросети в примере выше. Только мы не можем за несколько секунд провести миллионы таких экспериментов со своим мозгом, поэтому этот процесс занял столетия, начиная с античных театров.

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

Да нет же! Я ничего им не приписываю! Я именно об этом и говорю! Что, зная технические детали как это сделано, можно делать выводы о том чем оно является, а чем — не является! Бот может демонстрировать какие угодно чудеса, но когда вы влезете внутрь вы его раскроете. Или не раскроете, потому, что поймете, что это и правда работает!

Я не пытался сказать, что сеть плоха, потому, что «глючит»! Я полностью согласен, что человек глючит и похлеще! Я лишь о том, что понимание принципов дает сильно больше, чем анализ того, что на выходе. В случае с нейронной сетью Adversarial Attacks не демонстрация критических проблем, а скорее демонстрация нашего понимания, как оно работает — демонстрация, что это не черный ящик, а вполне понятная РАБОТАЮЩАЯ модель со своими ограничениями.
Тогда приношу свои извинения, неправильно понял. А ведь действительно — если понимаешь как работает устройство, если оно полностью предсказуемо и если оно не может измениться и адаптироваться, то вряд ли можно считать его разумным, каким бы сложным оно ни было! Это всегда будет тупой предсказумый чат-бот.

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

Не могу сказать, что я именно это имел ввиду, но…

Ведь вот нейронная сеть. Ее устройство, с точки зрения концепции — понятно. Однако, обученная нейронная сеть со всеми своими весами выдает результат, который крайне сложно объяснить исходя только лишь из устройства…

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

Мне просто не очень нравятся термины «не понятен» и «не предсказуем». ;) Больше «не предопределен» или что-то вроде.
Так что для меня по комнате ответ простой — человек внутри комнаты не понимает иероглифов. И комната вместе с человеком не понимает. Это просто чат-бот, каким бы умным он не казался.

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

Ну…

Тут уже идет некоторая нестыковка на уровне понятий…

Я не уверен, что можно поставить знак равенства между инструкциями/правилами, связями и моделью. Связи не равно инструкции. А модель — это не только связи.

Китайская комната работает по принципу «раздражитель»-«реакция». Это модель простейших насекомых.

Так же, как база знаний — граф высокой плотности в узлах которого понятия не есть модель реальности.

Но вы же сейчас спросите в чем разница, да? ;)

Китайская комната по определению работает неотличимо от человека со знанием китайского.


Данные и связи между ними — это карточки в шкафах. Инструкции — это правила обработки информации с карточек.

Комната вместе с человеком обладает тем же пониманием, что и человек со знанием китайского.

Вы это так с такой уверенностью утверждаете, что я вам даже немного завидую!

А что значит «понимание», которое вы так опрометчиво использовали в своем утверждении? Сможете привести любой объективный критерий (показания приборов, формулу, цифры), по которым вы отличите комнату, которая обладает пониманием и комнату, которая не обладает пониманием? То-то же…

С чего и началась эта ветка, что жонглируя такими терминами можно получить что угодно, хоть макароны, хоть бога.

Так я написал уже) Понимание это построение правильной модели. В китайской комнате информационные элементы это состояние карточек, которые перекладывает человек. К примеру, второй вопрос "А 2 и 2?". Если первый вопрос был "Сколько будет сложить 1 и 1?", то комната должна ответить "4", если "Сколько будет вычесть 1 и 1?", то "0". Вот этот характер предыдущего вопроса находится в состояниях карточек, так же как у человека в состояниях нейронов.
В Вики написано "However, the thought experiment is not intended to be a reductio ad absurdum, but rather an example that requires explanation". Вот я и даю объяснение. С этой точки зрения всё сходится, никаких парадоксов не возникает.

А, теперь ясно. Здесь действительно получается четкая, однозначная и интерпретируемая модель. Но как построить такой всеобъемлющий набор правил, по-прежнему непонятно… ;)
Дополню:
А что значит «понимание», которое вы так опрометчиво использовали в своем утверждении?
Согласен с michael_vostrikov — Понимание, размещение в модели… Мне вот сейчас начало казаться, что на карточках тоже можно замутить модель! ;) Но нет! Стоп. Есть непосредственное восприятие, которое собственно вероятно и отличает модель от базы знаний!

Кстати, я склонен соглашаться, что во многих отношениях нейронные сети как раз проявляют черты «разумности», причем не только по внешнему поведению, но именно и по внутреннему устройству…
Назовите цифру-критерий, которая покажет что в одном случае человек действует осознанно, а во втором бездумно по правилам. Не получается? То-то же...

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


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


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

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

Вот вы говорите, появляются информационные элементы модели. А как они появляются, какие именно? На входе мозга электрические сигналы от 100 млрд. нервных клеток. Как из них выделить эти информационные элементы? И раз вы утверждаете, что они выделяются, будьте любезны, поясните подробнее что это за элементы. В каких единицах они измеряются, какого они размера. Хоть что-то, поддающееся измерению в цифрах. Иначе как мы отличим, появляются эти информационные элементы или нет.
Иначе как мы отличим, появляются эти информационные элементы или нет.

По соответствию их реальным объектам и их взаимодействию. По предсказанию результата. Если модель правильная, то поведение реальных объектов будет соответствовать представляемому поведению информационных. Единицы измерения — штуки. Чем больше правильных объектов, тем точнее модель. Но так как у объекта могут быть детали, то у величины "соответствие" появляются дробные значения.


Как мозг это делает, это другой вопрос. Просто обычно все упирается в "мы не можем дать точное определение, потому что не знаем что это такое". Вот у меня есть такое определение, его можно применить к ИИ и определить, есть ли у него собственно интеллект и достаточно ли его для задачи. Или к китайской комнате. Также его можно косвенно применить к живым существам, даже представителям другой цивилизации.

Что-то мне кажется, что одного только подсчета как часто предсказания модели соответствуют реальности недостаточно для определения термина ИИ. Это позволяет только сравнить два ИИ, кто из них умнее.

Но это не является критерием определения разума как такового — после какого числа правильных предсказаний можно считать машину разумной?

Но можно сравнить это число со своими правильными предсказаниями! Если компьютер по любым произвольным темам будет делать прогнозы точнее (и действовать лучше), чем это делает человек, то определенно можно считать, что он стал разумным. По крайней мере, разумнее человека :).

В этом плане это можно использовать для определения момента, появился ИИ или нет. Только это напоминает обычный тест Тьюринга или утиное сравнение — мол, делает ли компьютер все не хуже человека. А у такого сравнения куча своих проблем — нужно определить некоего среднего разумного человека (5% населения, 90% населения?), с кем сравнивать. Нужно набирать большую статистику (насколько большую?), чтобы избежать разных частных случаев и так далее.
Знаете, чего я понять не могу… Вы ведь так хорошо в теме нейронных сетей, откуда вот это вот:
«а входе мозга электрические сигналы от 100 млрд. нервных клеток. Как из них выделить эти информационные элементы?»
Ведь именно этим занимается сверточная нейронная сеть — выделяет эти информационные элементы. В чем проблема то?

Вот смотрите — первый этап: берем растровую картинку — скармливаем сети. Пытаемся заставить находить котиков. Получается, но так себе.

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

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

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

Потому что существующие нейросети не универсальный инструмент, как многим представляется. А тонко настроенный на конкретные условия. К примеру, если вы пытаетесь распознавать котиков, но котик у вас попадается только на 1 из 20 картинок, то нейросеть никогда не обучится. Дисбаланс классов. Надо искусственно пересортировать картинки, чтобы коты и пустые картинки попадались примерно в равных пропорциях. И таких нюансов там сотни.

Или, к примеру, пусть персонаж в симуляторе совершает случайные движения. А как только случайно попадет по мячу, давайте обучим нейросеть повторять последние 2 сек действий. Казалось бы, она должна выявить общие признаки, и из любого положения с 2-х секундной доступностью мяча, бить по нему. Но нет, так нейросеть не обучится. Почему так происходит, есть объяснения лишь по факту, мол градиенты взаимнокомпенсируются, дисбаланс классов, переобучение, недостаточная емкость сети и т.д… А методики как сделать, чтобы она все же обучилась — нет.

С анализом процессов (то есть задач, связанных со временем) совсем беда… Ко всем этим сложностям добавляются еще и проблемы с временной корреляцией. Пока найдены удачные архитектуры только для отдельных случаев, например для работы со звуком. Есть нейросети, которые способные отличить единичный всплеск тысячи шагов назад (вроде каскадной 1D сверточной как WaveNet), но их принцип основан на хорошем анализе локальных признаков, а если применить ее к анализу например движений человека, она тупо не работает.

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

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

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

Нужно все, что приходит извне свернуть в модель. Модель, где не наборы пикселей и даже не объекты в кадре, а где иерархия процессов в континуме пространство-время. И их уже подавать на вход сети, принимающей решения. Цель которой — полная, непротиворечивая и т.д. ;)
Поэтому голый Model-Based подход не работает. Даже если у нас есть идеальная модель мира и мы будем перебирать в ней все возможные варианты, проклятие размерности быстро сводит такие попытки на нет.

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

Опять же — не будь возможности брать первое, что подвернется — буриданов осел сдох бы таки от голода! ;)
Ну не перебирает мозг все возможные варианты!

Совершенно верно! Вы уловили самую суть. Вопрос создания сильного ИИ как раз и заключается в вопросе — как бы нам так сделать, чтобы не перебирать все варианты? ) Мозгу удалось решить эту проблему, нам пока нет.
Да почему нет-то — вот чего я понять не могу! Т.е. я вам верю, но пока не понимаю. У меня ощущение, что мы просто не много о разном говорим. Взять хотя бы АльфаЗеро. Ведь он работает ровно, как человек. Он не перебирает все варианты — он в ситуации неопределенности делает случайный ход. И таким образом набивает шишки (т.е. набирает опыт). Чем больше опыт тем меньше случайных ходов. Но в любом случае охвачено далеко не все пространство вариантов и почти в любом случае остается место тому самому случайному ходу.

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


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


У вас жизнь уже как бы часть модели, а действия плавно вытекают из нее. Но на практике это не так — модель реальности отдельно, действия и принятия решений отдельно. И вот со вторым проблема.

Но на практике это не так — модель реальности отдельно, действия и принятия решений отдельно. И вот со вторым проблема.

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

Я просыпаюсь с утра и мне нужно на работу. В принципе я вижу всю последовательность действий, необходимых для того, что бы там оказаться, с достаточной степенью как подробности, так и определенной вариативности. Т.е. в моей модели мира я завтра проснусь в шесть и через полтора часа буду на работе… И так в общем-то достаточно далеко. У меня есть планы и на выходные и на лето. И почему все мои действия не могут быть просто отработкой этой модели для сохранения соответствия?

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


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


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


И почему все мои действия не могут быть просто отработкой этой модели для сохранения соответствия?

У вас (и у меня) могут, потому что они у нас уже есть. Вот вы говорите: "в моей модели мира я завтра проснусь в шесть и через полтора часа буду на работу". Это готовая последовательность слов, которую выдал ваш мозг. Но она совсем не очевидна, как она получена? Есть 500 тысяч слов (ну пусть 30 тыс. наиболее употребительных), которые можно использовать. И в этой фразе аж 16 последовательных слов. Представляете какое это число комбинаций из комбинаторики… А вы выдали эту фразу сразу. Это удивительно.


И вы правы, перебирать все варианты не нужно, да и невозможно. Разум оперирует ограниченным числом действий. Но как он их получает? У младенца еще нет никакой информации о мире. Его мозг на входе получает электрические сигналы от миллионов/миллиардов нервных клеток по всему организму. Аналогично компьютеру выше. Но на выходе выдает всего несколько главных действий: кричать, ползти, встать. Как он выбрал именно их? Как построил модель мира с настолько эффективными ассоциациями? Вот в чем вопрос… Поэтому обязательно пишите вторую часть, интересно читать. И может натолкнуть на какие-нибудь мысли.

Но она совсем не очевидна, как она получена? Есть 500 тысяч слов (ну пусть 30 тыс. наиболее употребительных), которые можно использовать. И в этой фразе аж 16 последовательных слов. Представляете какое это число комбинаций из комбинаторики… А вы выдали эту фразу сразу. Это удивительно.

Если подходить к ИИ, как к черному ящику у которого вход и выход — да, но… Давайте на примере!

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

Есть Три подхода к решению задачи.

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

Второй: нейронная сеть в ваших интерпретациях. Мы стараемся построить и обучить такую сеть, что бы, получая на вход данные с датчиков, она в том или ином виде решала задачу. Я не знаю, как вам, а мне кажется, что в данном случае предется применить гораздо большую изворотливость и нетривиальный подход, чем в первом случае! Я пока не представляю с ходу, как оно на сетях — будь они сверточные или рекурентные!

Вариант третий: построитель модели. Как я уже говорил (или только собирался?), мне кажется, что понятие пространства, как и идея перемещения в нем является фундаментальными. Т.е. в данном случае это то, что воспринимается непосредственно и не требует выражения через другие абстрактные понятия. Таким образом модель пространства может и должна быть заложена изначально. Движение, особенно собственное… Ну можно конечно сделать, как природа и дать возможность системе самой научится, но для простоты — предлагаю тоже захардкодить! Т.е. система знает, что значит перемещение и что нужно делать, что бы из точки А в пространстве, попасть в точку Б. Дальше — самое интересное! Нужно что бы система сама построила модель от «я в точке старта и не знаю что вокруг» до «мир вот такой, я имею полную модель, и нахожусь здесь». Для начала. Мне почему-то кажется, что на основе изначально практически хаотичных действий с рекурсивным применением полученного в результате опыта это сделать реально. С нейронными сетями или без… И после решения первой задачи (с картой) — дальше система должна уже проще решать проблему оптимального пути. Причем чем больше будет итераций — тем более вероятно оптимальное решение.

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

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

Как раз тут и кроется проблема, которую я пытаюсь объяснить. Вы подразумеваете, что построенная модель как-то автоматически даст ответ какой путь будет оптимальным. Но это не так.

Модель может спрогнозировать что будет дальше, но не более того! В случае робота-пылесоса, модель ответит «да» или «нет» на вопрос: «если я буду двигаться прямо, то упрусь в стену?». Модель мира не может ответить на вопрос «как оптимально двигаться, чтобы не врезаться в стены?». А разум, интеллект как раз решает эту задачу, ищет ответ на такие вопросы. Используя модель мира как базу знаний. Но как именно он это делает, мы пока не понимаем.

Смотрите, выше вы говорили что ваша модель мира говорит вам, что завтра утром вы пойдете на работу и т.д. И вы это воспринимаете, будто модель дала вам оптимальное поведение, нашла для вас оптимальный путь. Но это не так!

Это поведение по умолчанию, которое вы обычно делаете. То же самое, что ничего не делать. Ваша модель мира прекрасно отвечает на вопрос «если я ничего не буду делать, то что случится?». Она спрогнозирует, что проголодаетесь и т.д. Все нормально, это же модель мира, она и должна прогнозировать такие вещи.

Ваш пример с работой, это то же самое что спросить: «Что будет дальше, если я буду делать все как обычно?» Будучи моделью мира, она спрогнозирует: «Завтра утром вы встанете и пойдете на работу», ну и так далее, вплоть до планов на много лет вперед. Это тоже нормально, модель так и должна работать, по определению.

А теперь представьте ситуацию, вы задаете этот вопрос своей модели, а она отвечает: «Завтра вы пойдете на работу, и послезавтра, и после, и так всю жизнь, и ничего в итоге не добьетесь в жизни!». И вы вдруг понимаете, что такой вариант будущего вас совсем не устраивает!

И что же тогда делать?!

Ваша модель мира вообще никак, в принципе не может ответить, как поступить, чтобы изменить это спрогнозированное моделью будущее. Ну верно же?

Вы можете начать делать случайный поиск, перебирая возможные варианты. И спрашивая у своей модели, что будет в каждом из этих случаев. -«А может мне сменить работу? -Нет, это не поможет, ничего принципиально не изменится». -«А может мне уйти в монастырь? -Нет, это тоже не поможет, пустая трата времени». Ну и так далее.

Теперь понимаете, о чем я говорил, что модель мира отдельно, а принятие решений отдельно?

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

И вот это самое удивительное в разуме — как он из огромного жизненного опыта выделяет эти несколько наиболее подходящих вещей? Из всего того сенсомоторного опыта, который вы имели за всю жизнь, ваш мозг вдруг выдает единичное событие, которое было много лет назад: "-А вот в детстве я увидел картинку с самолетом и подумал, что хочу стать летчиком. Может мне пойти учиться на пилота?". И ваша модель мира отвечает: "-Да, то что надо! Это будет круто."

Как ваш мозг среди всех воспоминаний выбрал именно этот вариант? Наиболее подходящий к ситуации. Загадка… Никто не знает ни как мозг запомнил это событие среди миллионов других (как выделил его на фоне сенсомоторных входных данных), ни как определил что оно будет самым подходящим кандидатом на решение проблемы в этом случае.

Надеюсь, теперь понятнее что я имел ввиду, что модель мира сама по себе не ведет к разумному поведению. Нужно как-то принимать решения, какие действия лучше совершить для достижения цели. Модель мира просто прогнозирует что случится дальше при конкретных действиях. Но сами оптимальные действия не выдает.
Как раз тут и кроется проблема, которую я пытаюсь объяснить. Вы подразумеваете, что построенная модель как-то автоматически даст ответ какой путь будет оптимальным.
Не совсем. Она не даст ответ. Она вообще ответ не дает. Она просто есть. Она — строится. Просто сам по себе вопрос — это нестыковка в модели. Ее надо устранить. Скорее всего определенно комбинаторным путем, но сугубо из подходящих элементов.
Модель мира не может ответить на вопрос «как оптимально двигаться, чтобы не врезаться в стены?».
Чтобы не врезаться в стены — надо просто не двигаться. Это не так работает. В модели есть робот. Он находится в точке А. В модели есть карта пространства. В модели есть результат — обход карты за конечное время. Обход — это очевидно движение. Образ движения в модели тоже есть…

Хорошо, я понимаю о чем вы. Но вот скажите: есть механизм предположений? Есть же бэктрекинг, есть рекурентные сети… Я согласен, что это вероятно не нейронная сеть в чистом виде, но ведь по большому счету и сверточная сеть — сетью является только условно! Это по факту три «сети», т.к. каждый слой натаскивается на свои задачи…
И вот это самое удивительное в разуме — как он из огромного жизненного опыта выделяет эти несколько наиболее подходящих вещей?
Так-то да — это удивительно. Но механизмы поиска решений — это первое, что начали строить в ИИ! И тот факт, что это не нейронная сеть, еще не значит, что это не работает!
Как бы оно могло быть: «Огромный жизненный опыт» — это выходы «анализатора процессов». Используя сверточные сети весь опыт разложится на счетное число довольно сильно абстрактных кейсов, применимость которых с данной ситуации определяется поданными на вход «признаками процесса», которые в свою очередь извлекла другая сверточная сеть…
Не совсем. Она не даст ответ. Она вообще ответ не дает. Она просто есть. Она — строится. Просто сам по себе вопрос — это нестыковка в модели. Ее надо устранить.

То что ограниченный набор подходящих кандидатов будет встроен в саму модель, не значит что их не нужно выбирать и как-то ранжировать по полезности при построении этой модели. А это и есть процесс принятия решений ) (нерешенный на данном этапе развития).
Я сейчас попробую как-то свормулировать, а вы следите за руками за мыслью: обычная сверточная сеть на вход получает картинку а на выход несколько возможных паттернов (что бы это могло быть) с определенной вероятностью, так? Можно считать, что сеть делает выбор что изображено на картинке?

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

Я не знаю как это сделать, я знаю, куда мне было бы интересно, если бы развитие завернуло!

Это в обучении с подкреплением уже используется, такой вариант называется стохастическая политика (stochastic policy). Когда на выходе нейросети есть сразу несколько вариантов действий и для каждого указаны проценты, насколько нейросеть считает этот вариант удачным.


Но если использовать такую нейросеть как модель мира, то выбор все равно делает не нейросеть! Решение какой из предложенных сетью вариантов выбрать, приходится принимать разработчику. Например, можно всегда выбирать действие с максимальными процентами. Но чаще действия выбирают пропорционально их вероятности, т.к. они обычно уже нормированы по softmax. Например если для трех разных действий сеть выдает такие вероятности: 10%, 70%, 20%. Чем выше проценты, тем чаще выбираем это действие. Здесь второе будет выбрано в 70% случаев, третье в 20%, а первое лишь в 10% случаев.


Плюс стохастической политики в том, что она позволяет автоматически проводить исследование окружающей среды, так как иногда выбираются непопулярные действия. Но при этом остается довольно логичной — чем больше сеть уверена в правильном ответе, тем с большей вероятностью выберет его. А если нет предпочтительного варианта, например когда варианты: 33%, 33%, 33%, то будет выбрано случайное из них с равной вероятностью.


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


Вы можете подумать — вот есть у человека 700 мышц (а для виртуальной модели человека достаточно 17-25 "мышц", т.е. степеней свободы). Пусть нейросеть для каждой мышцы выдает такое вероятностное распределение сокращений. И это покроет все возможные действия человека. А значит будет включать оптимальное поведение, предсказанное и предлагаемое моделью мира.


Но нет, это так не работает. Это будет вероятностью для одного действия. Например, для действия "ходьба" в текущий момент времени нужно с вероятностью 70% сократить такую-то мышцу, и с вероятностью 45% сократить другую. Чтобы получить вероятности для разных действий, например чтобы сеть выдавала, что чтобы спастись от хищника нужно с 70% "бежать" и с 30% "идти", нужно эти действия как-то заранее выделить, кластеризовать. Чтобы можно было потом из них выбирать. Мозг это делает автоматически, потому что биология работы нейронов подобрана эволюционно. Но ни одна искусственная система (ни нейросети, ни любые другие) на данный момент не умеют выделять такие кластеры (понятия) из своего обычного повседневного жизненного опыта, сравнимого по сложности с жизненным опытом животного или человека.


P.S. Алгоритмы обучения с подкреплением (reinforcement learning) так устроены, что как раз кластеризуют и выдают эти новые действия, а не просто являются моделью мира. Они по-настоящему принимают решения и являются самым настоящим разумным ИИ. Только существующие алгоритмы RL работают на настолько удручающе низких размерностях (буквально единицы), что разглядеть там разумность очень сложно. За такое время расчета и на таких низких размерностях и случайный поиск выдает схожие результаты. Мне кажется, проблема в том, что все современные RL алгоритмы повторяют по сути одну и ту же архитектуру, которая похоже тупиковая. Нужен какой-то другой, кардинальный прорыв в архитектуре, как это произошло со сверточными сетями. Я попытался это описать в статье https://habr.com/ru/post/437020, но не знаю насколько понятно удалось выразить что хотел сказать (подозреваю, что не очень ;).

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

Первое, что приходит на ум — некоторое противоречие. Сначала вы сказали, что сеть не умеет делать выбор из большого числа возможных вариантов, теперь — что умеет, но варианты задает разработчик. Хотя признаете что то самое «ранжирование по полезности» таки возможно за счет обучения с подкреплением. ;)

Второе. Счас будет сложная мысль (сложная для меня — в плане сформулировать сложно): проблема не найти новый ответ. Проблема так классифицировать вопрос/ситуацию/проблему, что бы ответ оказался очевиден! ;) Т.е. вы говорите, что сеть не может найти ответ, которого не было (нечто новое). Ок — пусть не может. А я говорю — человек тоже не может! Что бы найти ответ ему нужно свести ситуацию/вопрос к чему-то, что ответ имеет. Т.е. классифицировать/опознать/найти место в модели. Этому помогает высокий уровень обобщения (читай свертки), когда ситуации не имеющие в первом приближении ничего общего с опытом, позволяют таки найти это общее при все большем и большем повышении абстракции. Есть такая задача про лампочки: есть три «лампочки Ильича» в подвале, есть три выключателя наверху. Спускаться в подвал и подниматься обратно более одного раза — лень. Как выяснить какой выключатель от какой лампочки за один раз? ;) Решение этой задачи не требует чего-то нового, но…

Третье. Да почему же вы не хотите применить логику сверточных сетей к другим областям той же науки! ;) Почему вы считаете, что должен быть прямой путь от «спастись от хищника» до прямого управления 700 мышцами? Вы же свернули чертову уйму сигналов в «спастись от хищника», так сверните 700 мышц в «бежать»! В моем понимании неокортекс не взаимодействует ни с зрительными нейронами (где-то мне попадалась информация, что непосредственно в глазу происходит довольно приличная часть свертки и на вход мозгу уже подается далеко не bitmap), ни с двигательными мышцами! Неокортекс дает команду бежать (а я бы пошел дальше и сказал, что он просто создает модель в которой «я бегу» — данность), а «старый мозг» уже занимается реализацией. И так оно с первых лет жизни:
  • неокортекс: вот в том направлении что-то интересное! Нам туда.
  • старый (как он там? Рептильный?): ок, идем/ползем/хаотично двигаем всем-чем-можем, авось получится (в зависимости от уровня развития).


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

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

В примере выше сеть не может сама сформулировать понятие «бежать», чтобы использовать его.

А вот нейросети из Reinforcement Learning как раз могут! Формулируют и используют. Но почему-то не масштабируются свыше размерности в единицы степеней свободы. А на такой низкой размерности и случайный поиск выдает такие же результаты за это время.

Т.е. классифицировать/опознать/найти место в модели.

Так опознать место в модели — это и есть система принятия решений. Алгоритм поиска. Подниматься вверх по дереву абстракций, если на текущем уровне нет решений это хорошая мысль. Все упирается в то, как создать такую модель и по какому алгоритму по ней подниматься/опускаться между уровнями абстракций.

Третье. Да почему же вы не хотите применить логику сверточных сетей к другим областям той же науки! ;)

Почему же не хочу? Это первое что я попробовал. И в RL это активно используется. Например, картинка с камеры с помощью сверточной сети преобразуется в вектор из 512 чисел (это последний слой сверточной сети, по сути снижение размерности до 512). А уже эти 512 чисел подаются на вход второй нейрости, обученной по Reinforcement Learning. Или вообще, каким-нибудь эволюционным алгоритмом, без всяких нейросетей. А выход с нее отправляется на третью систему — ПИД контроллер, которые уже управляет моторами. Все как вы описываете: здесь сверточная сеть — это зрительная кора, вторая RL нейросеть это неокортекс, выдающае общие команды, а ПИД контроллер (или моторная третья сеть) — двигательные мышцы.

Все это красиво в теории, но на практике не работает. Даже до уровня мухи не дотягивает, не то что мыши или человека. Поэтому искать какие-нибудь высокоуровневые решения как работает интеллект, по прежнему остается актуальным.
Все это красиво в теории, но на практике не работает.

Верю. Но пока не понимаю почему… Может мы немного о разном?

Я имею ввиду, что для движения гуманоида, будь там 17 или 67 степеней свободы переход от модели к движению должен проходить через понятия даже не идти/бежать прямо/налево/направо и уж тем более не через прямое управление отдельными мышцами, а через «мы здесь, надо — туда, чем быстрее, тем лучше!». Не должно быть прямой связи раздражитель-действие — это действительно слишком сложно. Раздражители должны актуализировать модель, которая должна достраивать действия (в весьма высоком уровне абстракции), как часть модели, а ДРУГАЯ система должна исполнять обратный переход — от абстракции к конкретным мышцам…

Эти системы не обязаны в первом приближении учится в виде единой системы по методу того же RL — вовсе нет. Они вполне могут быть предобучены отдельно или даже запрограммированы в лоб. Вполне вероятно, что использовать обучение нужно только там, где без этого никак… Хотя это сложная тема.
Есть книга английского нейрофизиолога Криса Фрита — «Мозг и душа. Как нервная деятельность формирует наш внутренний мир», там как раз все описанные выше моменты рассматриваются довольно подробно. Главное смысл там в том, что модель реальности, которую строит наш мозг, имеет весьма опосредованное отношение к разуму как таковому. Мозг бОльшую часть времени действует довольно самостоятельно, на подсознательном уровне, передавая управление сознанию лишь в случае необходимости. В принципе, есть бессознательные состояния, например, при сомнамбулизме, в которых человек способен совершать весьма сложные действия, например, водить машину.
Это показывает, что я действительно зря приравнял сознание и самоосознание. Что сознание несколько из другой области, и требует более глубокой проработки, но… НЕ отменяет концепции в целом! Ок, я согласен: большая часть процессов, в том числе и очевидно обработка модели, ее анализ и следование ей — могут проходить бессознательно. Можно сказать — в бекграунде, фоном.
Касательно способности разумных существ строить полную, адекватную и непротиворечивую модель реальности — тут тоже есть вопросы. Математикам хорошо известна теорема Гёделя о неполноте, согласно которой формальные математические системы могут быть либо полными, либо непротиворечивыми, но не одновременно. В связи с этим возникает вопрос — если наш разум не способен построить полную и непротиворечивую формальную систему, то способен ли этот разум построить эту полную и непротиворечивую модель реальности?
Разум, построивший полную и непротиворечивую модель вероятно просто остановится. ;)

Тут важен процесс!
Разум — это способность существа строить полную, адекватную и непротиворечивую модель реальности.


Ваш постулат нужно ставить в начало книги о логике. Вы пытаетесь моделировать очередной компьютер, а не разум. Так сказать — профессиональная деформация. Дело в том, что разуму не нужна ни полнота, ни адекватность, ни непротиворечивость.
Просто вы хотите оперировать в рамках математической логики, но это абсолютно тупиковый путь развития. Вы сможете построить иллюзию разума, но не разум. Хорошим примером этой иллюзии является «парадокс китайской комнаты».
Ваши тезисы, кстати, легко опровергнуть конкретными примерами из биологии. Просто задам несколько простых вопросов:
1. Мыслит ли муравейник?
2. Разумен ли душевнобольной с неадекватной картиной мира?
3. Как соотносятся язык и мышление?
4. Как отличить разум от инстинкта?
Дело в том, что разуму не нужна ни полнота, ни адекватность, ни непротиворечивость.
тонкость в том, что по определению — разум стремится к этому, однако, как я уже писал раньше — это недостижимо. Т.е. закончивший строить модель разум вероятно остановится. ВАжен сам процесс построения, устранения противоречий и тп.

Просто вы хотите оперировать в рамках математической логики
да не совсем математической… Логика может быть любая, хоть женская! Вопрос модели. Там скорее уместно говорить о теории множеств, или даже категорий.
1. Мыслит ли муравейник?
полагаю, что нет. Просто реагирует. НО возможно у меня недостаточно данных о примерах разумного поведения муравейника, которые нельзя объяснить уровнем реакции.
2. Разумен ли душевнобольной с неадекватной картиной мира?
безусловно. ОН просто имеет картину мира, которая не признается адекватной большинством. Я по «адекватностью» имел ввиду скорее корреляцию с реальностью, которая впрочем вполне легко может быть некорректной. Это не имеет значения.
3. Как соотносятся язык и мышление?
ох… Сложная тема. Практически прямо. Язык собственно и отличает нас от животных, позволяя, как писал уважаемый DesertFlow «снизить размерность» модели.
4. Как отличить разум от инстинкта?
Инстинкт требует отдельного определения. Под этим словом понимают как «инстинкт» выживания у высших животных, так и инстинктивное реагирование плоского червя на раздражители. Первое — предзагруженная часть модели, т.е. часть разума. Второе — простая нервная связь от рецепторов к двигательным нейронам.
Разум — это способность существа строить полную, адекватную и непротиворечивую модель реальности.
Если идет речь о человеческом разуме, то такое определение слишком категорично и слишком недостаточно. Мало того, такое определение недостижимо ни для каких видов интеллекта, даже в далеком будущем, даже превосходящих человеческий. Полную, непротиворечивую модель невозможно построить даже для замкнутых искусственных логических построений. А для реальности этого нельзя сделать даже теоретически.
И снова если идет речь о человеческом разуме, то необходимо указать специфические способы построения моделей именно человеком. Т.к. некоторые виды моделей умеют строить даже бактерии. А уж животные и насекомые и просто живут в мире моделей.
Критически важным является полнота этой модели.
Не «полнота», а «достаточность» для целей выживания или для целей полезного использования модели в существующем мозге.
Включение себя в итоговую модель – есть самосознание, иначе — осознание себя.
Слово «итоговая» надо бы заменить на «текущую». И тогда согласен.
Полную, непротиворечивую модель невозможно построить даже для замкнутых искусственных логических построений.

Ну… Я вроде несколько раз упоминал, что «полную» — не значит детализированную. Любая модель имеет определенную степень приближения к оригиналу, и избыточность деталей во многих отношениях скорее минус, чем плюс.

Идея полноты введена в определение с целью показать, что при построении модели разум использует ВЕСЬ объем знаний, а не часть, соответствующую текущей задаче. Т.е. выражаясь витиевато, элементы модели, связанные с танцами могут быть использованы при разведении пчел! ;)

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

Кроме того, я еще раз подчеркиваю — способность строить, не означает перспективу наконец-то закончить! Важен процесс, а не результат. Стремление не равно достижению.

Слово «итоговая» надо бы заменить на «текущую». И тогда согласен.
Не вижу причин не заменить! ;) «итоговая» в данном случае использовалась как результат деятельности на любой момент времени, а не интерполированный экстремум. Т.е. опять таки процесс, а не результат.
Видел интересное определение, правда, не разума, а «интеллекта». Хотя, думаю, в англоязычной статье имелся ввиду, все-таки, именно «разум». Определение вот такое: «Интеллект поступает так, что-бы максимизировать в будущем количество возможных вариантов действия» (в моем упрощении).

В данном определении мне нравится то, что оно включает в себя и необходимость построения модели внешнего мира и необходимость наличия способности предсказывать результаты своих действий на основе этой модели. Т.к. считаю что только построение модели — это лишь половина дела. Важным моментом является именно способность просчитывать поведение этой модели в будущем. И на основе этого, строить свое поведение.
«Интеллект поступает так, что-бы максимизировать в будущем количество возможных вариантов действия»
Я подумаю над этим.
Т.к. считаю что только построение модели — это лишь половина дела. Важным моментом является именно способность просчитывать поведение этой модели в будущем. И на основе этого, строить свое поведение.
Мне кажется не все воспринимают идею построения модели не только в понятийном и пространственном, но и во временном аспекте… (( Может быть потому, что основной упор на это планировался во второй части статьи?

Или вы как раз воспринимаете и соглашаетесь? ;) Я не очень понял: когда вы пишите «в данном определении», вы имеете ввиду данное мной, или данное вами? )))
Мне кажется не все воспринимают идею построения модели не только в понятийном и пространственном, но и во временном аспекте… ((

Да — понятие «модель» тоже необходимо уточнить в этом плане.
Или вы как раз воспринимаете и соглашаетесь? ;)

Я воспринимаю и соглашаюсь. Но уверен что не все понимают что возможность прогнозирования «прилагается» к понятию модели. :)
Я не очень понял: когда вы пишите «в данном определении», вы имеете ввиду данное мной, или данное вами? )))

Я про приведенное мною определение. Оно включает в себя представление о модели и прогнозировании как часть. Но немного ее расширяет.
Вообще мысль про количество вариантов интересная, но полнотой определения похвастаться не может… Это стратегия проистекает напрямую из утверждения, что в противостоянии двух интеллектуальных систем побеждает та, что имеет больше вариантов действия (не ручаюсь за точность, и не помню кто сказал). Хотя, на мой взгляд это далеко не аксиома. В каких-то случаях, где важна оперативность принятия решений, число вариантов может стать проблемой (как уже говорилось где-то выше) и как раз разумное СНИЖЕНИЕ размерности выбора, без потери качества является одной из актуальных задач!

Еще пришло в голову, что это почти девиз клаустрофоба. ;) Ведь сем более замкнутое пространство тем меньше вариантов движения в нем.

«Интеллект поступает так, что-бы максимизировать в будущем количество возможных вариантов действия» (в моем упрощении).

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

Сейчас этот принцип даже используется в алгоритмах обучения с подкреплением через коэффициент энтропии. Например, в Soft-Acto-Critic этот принцип ставится во главу угла. Да в других, например в PPO, тоже иногда вводят энтропийные бонусы. Это улучшает стабильность обучения и устойчивость агента к случайностями. Т.к. он при обучении выбирает действия, дающие больше вариантов действия, то потом лучше выпутывается из неожиданных ситуаций.
Вот… Тут есть нюансы из-за которых все плохо. ;)

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

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

Вы же сами всегда говорите, что большое количество вариантов — проблема! ;) Но при этом ставите (ну или не вы ставите, а Soft-Acto-Critic) их «во главу угла».

Идея в том, что вариантов в идеале должно быть столько, что бы выбор из них был не сложен. Что бы задача отсеивания лишних не была проблемой.

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


Мозг как-то снижает эту размерность до всего нескольких лучших кандидатов.


Подозреваю, что небольшое число лучших кандидатов мозгу нужно для того, чтобы потом их тупо последовательно перебрать. Пропустить через Model-based реального мира. Что будет, если я сделаю вот так? А если вот так? А если так? И вот этих "если" всего несколько штук, для удобства их последовательного перебора (а точнее, видимо чтобы успеть их перебрать, пока тебя не съели).


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


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

Ну да, я понимаю… Собственно тут не т противоречия — я не говорю, что знаю как построить ИИ, я говорю лишь о своем понимании, что такое интеллект вообще. А вы не отрицаете этого понимания, но говорите, что пока не понятно, как его на практике реализовать… Но! Есть нюансы. ;)

В качестве примера — любая математическая теорема. Как она доказывается? Ну положим, есть несколько способов, но в принципе это последовательное сведение того, что дано к тому, что уже известно.

Т.е. если в ситуации миллиард возможных путей, значит вы недостаточно ее конкретизировали. В интеллектуальной системе бесполезные ходы/варианты не отбрасываются — их просто нет…

В случае с магазином. Ситуация для неокортекса не выглядит как «какой из 700 мышц мне шевельнуть в конкретный момент времени?»! Ситуация «мне нужно в магазин, их тут несколько, но по ряду показателей 76% за тот, что у дома, погнали!». Для двигательной системы вариантов нет вообще — задача(я бы даже сказал план действий) поставлена, опыт перемещения в пространстве наработан — активируем мышцы в нужной последовательности…

Еще раз: система не ищет ответ на вопрос. Система пытается классифицировать ситуацию таким образом, что бы ответ как минимум был! Ну или их было несколько и там возможны варианты с RL и SP.
Полностью согласен, так и есть. Здесь самая сложность — построить такую модель, чтобы в ней было мало вариантов, которые нужно классифицировать.

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

Мне в свое время очень понравился цикл статей про обучение шахматам детей. Понравилось тем, что подход был в отработке простых действий на все усложняющемся мире. Это, согласитесь контрастирует несколько с мыслью, что «чем больше вариантов, тем лучше». Там даже прямо сказано: "Бестолковый и бесцельный ход – приближает тебя к проигрышу.". И очевидно, что чем больше вариантов (с учетом того, что похоже мозг работает именно как вы описывали: при повышении степени свободы больше чем в единицы, он или безнадежно «лагает», или выбирает случайно), тем меньше шансов на то, что выбор будет правильным.
Существующие модели реальности (на базе нейросетей, в частности) так не делают

Потому, что они не совсем модели… Они отражают реальность — да. Но они не строятся целенаправленно, постепенно, иерархически. Скорее во многом — случайно (в том, что касается ИНС), или слишком подробно, но опять же довольно-таки хаотично (глобальные базы знаний).
У меня нет определения разума, однако я уверен в следующем:
Разум способен творить
На основе этого утверждения, все что на данный момент называется ИИ, для меня являются аналитическими приложениями.
Разум способен творить

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

Так что такое определение для разума не годится. На его основе нельзя написать алгоритм для ИИ.
Так я и написал что определения разума у меня нет, а способность творить — это свойство. Что же касается определения разума — то это вопрос скорее философский, чем алгоритмический. Много поколений философов пытаются дать определение разума.
На счет «творить» — тут я имел ввиду создание принципиально нового. Ни одна аналитическая программа принципиально нового создать не сможет.
Способность «творить» в данном определении — это способность воссоздавать элементы модели в физическом воплощении. Причем это могут быть не только и не столько существующие в природе в чистом виде… Ну скажем так — «формы», сколько… Вещи более абстрактные, выраженные через форму/цвет/звук/слово и тп.

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

Который показывал бы разницу между созданием и воссозданием.

Тогда и поспорим! ;)
Я смотрю кино, в котором я, как будто, участвую. Потому что сопереживаю. Сначала определитесь со свободой выбора субъекта.
Я не верю в свободу выбора! ;) Свобода от чего, в чем? Выбор определяется обстоятельствами и опытом.
А как же свобода от необходимости делать выбор определяющийся обстоятельствами и опытом?
И в итоге создавать то самое «новое», чего не было ни в опыте ни есть в обстоятельствах и его и выбирать.
Слишком сложно… Я не понимаю, что вы хотите этим сказать.
Вы можете доказать, что выпитый Вами утром кофе есть следствие Вашего ментального желания, изменяющего ход истории, а не скриптовый сценарий типичного Вас?
Доказать? ;) Да я даже спорить с этим не буду! Разве что мне не нравится понятие «скриптовый» применительно к разуму, да и то, только потому, что он работает иначе.

Я же сказал, что не верю в свободу выбора.
Пример создания — классификации звуков (ноты)
Пример воссоздания — Музыкальный ИИ Avia

В данном примере, в качестве создания, можно было привести и Моцарта (или любого другого великого композитора), однако пример с конкретным человеком или произведением можно оспорить. Ведь частично (только частично) их произведения есть результат анализа.
Что же касается АВИИ — то я прям слышу 50% от одного, 20% от другого, и по 10 еще от трех композиторов. В эту аналитическую программу загрузили все что было создано в классической музыке людьми, сами ноты, которые тоже были людьми классифицированы.
На мой взгляд это и есть разница между созданием и воссозданием. И вот когда некое приложение «создаст», а анализ является лишь малой частью творчества, тогда можно будет говорить об ИИ.
Avia мне не особенно интересна, т.к. здесь вы где-то правы — она обучалась на примере человеческого искусства и это не то.

Пример создания по вашему образцу: от мета языка google translate до стратегий игры в го, когда система не училась играть с людьми, а только сама с собой.

Мне не кажется, что «ноты» — что-то грандиозное. История создания их довольно занимательна и процесс этот проходил через несколько итераций с разного рода ограничениями (от особенностей человеческого слуха до возможностей звукоизвлечения) и продиктован необходимостью передачи информации о музыке. Это задача классификации, которая для ИИ как раз одна из самых типовых.
Кстати, это интересно! Прогнать человеческую музыку через нейронную сеть, с целью разработать для нее систему нотификации… И если на выходе получим те же ноты, то это не совсем будет значить, что изобретатели нот были гениями, а возможно, что наша музыка безнадежно застряла в прокрустовом ложе «нотной грамоты»…
Пример с гуглотранслейтом конечно интересен, и если система сама, без вмешательства программистов, создала для себя мета-язык — тут конечно я готов признать что это ИИ. Однако сложно поверить что тут обошлось без программистов, лингвистов и иже с ними.
Пример с стратегиями ГО — не думаю что можно отнести это к творчеству. Ограниченный мир, с четко прописанными правилами, все основано на бесконечном анализе партий. Вот создание игры ГО — это творчество.
Уж простите мне мой скепсис, но Авии и ИИ художника мне хватило :)
Что же по разработке системы нотификации — очень интересный эксперимент, который мог бы привнести в музыку что-то новое.
Ограниченный мир, с четко прописанными правилами, все основано на бесконечном анализе партий.


Только ограниченный мир можно описать полностью… Однако в ограниченном мире Го существуют определенные понятия, которые весьма сложно даже сформулировать! Люди играли в эту игру тысячелетиями, что бы выделить и сформулировать эти понятия. По заверениям опытных игроков — АльфаЗеро пришел к ним же, а так же похоже еще к нескольким, которые среди людей пока не имеют даже названий (с ходу не нашел пруфов — найду, кину).
Долго думал на счет АльфаЗеро.
Можно ли назвать творчеством то что приложение сделало в рамках правил. Однозначно да, это творчество
Можно ли назвать это приложение ИИ — да, с оговоркой на рамки игры. ИИ для игры ГО, как-то так.
Можно ли назвать это приложение полноценным и самодостаточным ИИ — на мой взгляд нет.
Отсюда я для себя сделал интересный вывод. Мы получим полноценный ИИ только когда сможем алгоритмами описать окружающий нас мир. К сожалению, с пониманием окружающего мира у нас и без алгоритмов не все гладко.
А еще ведь важно понимать что далеко не все можно описать алгоритмами.
Ну… Собственно об этом и статья. ;) Фактически я разделяю ваши выводы.

Но только это не совсем алгоритмы… Хотя — смотря что понимать под алгоритмами!
Ух, как много всего в комментах уже есть)
Для начала пару слов об AGI. Есть концепция Artifical General Intelligence — это некая система принятия решений, которая может достигать заданных целей в условиях, когда изначально она о мире не знает ничего, и которой безразлично, какой именно задачей заниматься — она любую осилит. Если искать аналоги из того, что уже реально есть, то мы натолкнёмся на Reinforcement Learning во всех его формах. Это тот же AGI, только обычно работающий на задачах малой размерности, с не очень большим горизонтом планирования и с отвратительно низкой скоростью обучения.

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

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

В ходе моих экспериментов с RL оказалось, что построить хорошую модель реальности — это уже проблема. Для начала надо делать модель такой, чтобы она могла предсказывать следующие состояния мира по прошлым… И учитывала всю историю. Чтобы ситуация «если я нажимаю красную кнопку и вижу помидор, и 1000 ходов назад я видел огурец, то я получу +10 профита, а если огурец не видел, то -100 профита» была хотя бы представима в модели. Свёрточные нейросети для распознавания картинок так не могут, например.
Значит, модель должна уметь учитывать историю (все статические модели тут же отпадают) и быть не очень склонной к переобучению. Хорошо бы, чтобы она могла эмулировать все возможные формулы — а то решающие деревья, например, довольно криво апроксимируют зависимости вида a=b-c.
Кроме того, модель должна как-то уметь в transfer learning. RL для игр Atari обучался адовые миллионы тактов, и умение играть в одну игру никак не помогало играть в другие. Человек научился бы явно быстрее — он может эффективно переносить опыт из одной игры в другую.
У автора есть соображение, что за модель могла бы соответствовать столь серьёзным требованиям?

Ещё я часто наблюдал у людей, не вовлечённых в тему ИИ, такое понимание человеческого принятия решений: человек имеет считанные единицы сенсоров и планирует на считанные единицы тактов вперёд.
Если же смотреть с точки зрения теории управления, то у человека каждая палочка/колбочка в глазу — это отдельный сенсор. И каждый температурный рецептор — это отдельный сенсор. Частота восприятия — это что-то типа 1/25 секунды. Горизонт планирования — это «расстояние», на котором человек вообще теряет любое понимание последствий своих решений. Если человек просто произносит одно предложение в течение 20 секунд, значит, у него есть что-то типа плана на 500 тактов вперёд. Модель должна неплохо прогнозировать на хотя бы такие расстояния. И с размерностями входных данных хотя бы в миллионы сенсоров.
В общем, требования к модели довольно жёсткие… Написать такую модель руками можно, но она будет заточена под какое-то конкретное окружение, она не сможет приспособиться к абсолютно любому миру, в какой бы ни попал ИИ.

Ещё наблюдаю, что люди мыслят в терминах объектов… А для ИИ объектов не будет существовать, пока он их сам не придумает. Для него будет существовать видеоряд с камер, множество кадров, каждый из которых состоит из пикселей.

Так что полагаю, главный вопрос в том, как конкретно сделать настолько мощную модель? Какая у неё будет структура, как обучать, как защитить от переобучения?
Ох… Много сразу вопросов/идей… ;) Если что пропущу — соориентируйте! )

>>> Есть концепция Artifical General Intelligence

Если я ничего не путаю, то AGL, это так называемый «Сильный» ИИ, или универсальный ИИ. Понятие введено, что бы не создавать путаницы: множество современных систем решает вполне себе интеллектуальные задачи (да и сам термин у англоговорящих товарищей AI — это Artificial intelligence — интеллектуальная деятельность), но при этом — узко специализированны. СМИ очень любят новости вида «Искусственный интеллект превзошел человека в области...», но не уточняют, что речь идет о хорошо обученной нейронной сети… AGL — это как раз ИИ в общепринятом непрофессиональном понимании — этакий мозг, который как наш, только искусственный. ;)

>>>Тот ИИ, что вы описали — это не RL. Это тот кусок RL

Я убежден, что сверточные, рекурентные и прочая сети — это безусловно нужные и важные вещи, но они не обладают… Не знаю — «архитектурой», или «идеологией» что ли. А «обучение с подкреплением» (reinforcement learning), как и любые другие формы обучения — так же очень нужные концепции, которые безусловно пригодятся, но не являются теорией именно интеллекта в целом. Были попытки доказать, что таки являются, но не увенчались успехом… У меня есть некоторые соображения почему именно и о них должна была быть вторая часть, но пока не созрела.

В ходе моих экспериментов с RL оказалось, что построить хорошую модель реальности — это уже проблема.

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

Но мне кажется, что нужно изменить подход. Что модель мира не обязательно сложна, но всегда всеобъемлюща. Ее сложность нарастает постепенно путем разделения уже известного на более детальное представление того-же самого. Слово «Все», «Сущее», «Мироздание» — является малоприменимой на практике, но тем не менее полной моделью мира (в начале было слово, да? ;) ). Если разделить его на два подмножества, например «я» и «не я» — то она уже будет практичнее и все равно останется полной. В системах типа карт Таро или скандинавских рун — конечное число элементов и их сочетаний описывает все мироздание. Впрочем наш родной алфавит на 33 буквы — тоже. )

>>>Значит, модель должна уметь учитывать историю

Она ее не учитывает — она из нее состоит. Модель имеет протяженность из прошлого в будущее. Она в любом случае развернута во времени — причем практически в бесконечность. В целом это не совокупность объектов, а совокупность процессов. ;) Об этом тоже должна быть вторая часть.

>>>Если же смотреть с точки зрения теории управления, то у человека каждая палочка/колбочка в глазу — это отдельный сенсор. И каждый температурный рецептор — это отдельный сенсор. Частота восприятия — это что-то типа 1/25 секунды.

Я могу ошибаться, но собственно сверточные сети этот вопрос более-менее проясняют. Человек не является системой раздражитель-реакция. Каждые единичные сенсоры ищут очень простые элементы, которые на следующем уровне собираются в контуры, которые… И так до тех пор, пока на выходе не будут абстракции уже довольно высокого уровня (в плоть до «нейронов бабушки», google, если что). В любом случае все эти данные являются лишь обновлением для модели, а не основанием реакции. Действия же обусловлены тем, что стратегия, о которой вы говорили, уже построена и действия в соответствии с ней включены в модель настоящего-будущего, как ее (модели) непосредственная часть.

>>>Горизонт планирования — это «расстояние», на котором человек вообще теряет любое понимание последствий своих решений.

Я бы так не сказал… Все зависит условно «от уровня детализации». В шахматах конечно человек планирует всего на несколько ходов, но это достаточно детально. Но на самом высокм уровне он планирует до конца: он собирается выиграть. ;) Иными словами — в его модели он уже выиграл и сделал все эти 3-7-12 ходов ближайших и более размыто — далее… Вплоть до победы.

>>>Написать такую модель руками можно, но

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

>>> Ещё наблюдаю, что люди мыслят в терминах объектов

НЕ совсем… Но это долгая тема. ;) Люди мыслят в терминах процессов.

>>> Для него будет существовать видеоряд с камер, множество кадров, каждый из которых состоит из пикселей.

Опять же — нет. Это УЖЕ не так. в терминах пикселей «мыслит» первый слой сверточной сети. После 4-5 слоя уже абстракции вполне серьезные — можно говорить об образах. Даже сейчас. НА текущем этапе развития.

Где-то попадалась информация, что первые несколько слоев свертки у нас внезапно — В ГЛАЗУ. ;) Т.е. по глазному нерву в зрительную кору идут уже не «пиксели», а возможно целые объекты!

>>>Так что полагаю, главный вопрос в том, как конкретно сделать настолько мощную модель? Какая у неё будет структура, как обучать, как защитить от переобучения?

Ох… Ну если бы я это знал — стал бы я писать на Хабр философские измышления? ;) Я надеюсь изменить своими словами подход. И может быть тогда сформируются какие-то прорывные подходы… Ну хотелось бы верить, что это возможно.

Но я точно знаю, что от переобучения она, например, должна быть защищена именно тем, что чем более детальна и полна модель, тем сложнее непротиворечиво встроить в нее новые элементы, и как следствие — с большой вероятностью новые данные «не зайдут».

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

Да — я действительно пока не могу наверное МАТЕМАТИЧЕСКИ сформулировать то, что подразумеваю под обучением. ( Я пока слабо понимаю, что такое на практике «построение модели», «включение в модель», «поиск противоречия». Ну вот именно в виде конкретной реализации. Собственно именно поэтому и пишу сюда. ;)
>>Если я ничего не путаю, то AGL, это так называемый «Сильный» ИИ, или универсальный ИИ — да, и я бы ещё добавил, что это ИИ в смысле «машина результатов». То есть если ИИ будет круто осознавать себя, что бы это ни значило, или здорово моделировать реальность, или болтать, как человек — он не будет AGI без некоторых доработок. Это просто определение, постановка задачи, я вижу, что исходно у вас задача поставлена несколько иная, и это «интеллект в другом смысле».
Да, и я работаю в основном не с нейросетями. В основном решающие деревья и алгоритмические регрессии — первые более быстрые, а вторые более выразительные, чем нейронки.

Потом, насчёт размерности =) Как вы верно заметили, в мозг приходит не сырой .bmp файл с сетчатки, а что-то порядком сжатое.
Но. Задача AGI не упоминает, в какой именно среде находится AGI. Скажем так, AGI, исходя из его определения, должен уметь сам изготовить эту свёрточную сеть. А то вдруг он окажется в 4-мерном пространстве, и там надо делать не 2-мерные фильтры, а 3-мерные? Те RL, которые тестировал я, вовсе не всегда имели дело именно с 2-мерной картинкой. Впрочем, это серьёзное усложнение задачи. Думаю, для начала можно дать нашему RL свёрточную нейронку в готовом виде.

>>Я бы так не сказал… Все зависит условно «от уровня детализации». В шахматах конечно человек планирует всего на несколько ходов, но это достаточно детально — ок, в значительной части RL систем надо более-менее явно задавать, насколько далеко вперёд думает ИИ. ИИ, созданные эволюцией, могут работать описанным вами способом, но у нас есть проблемы с тем, чтобы воспроизвести так много эволюции. Model-Based системы, судя по моему пониманию ситуации, мыслят именно на заданное число тактов вперёд.
Но да, уровень детализации — это важно. Человек похож на систему из многих Reinforcement learning, работающих на разных временных шкалах. Низкоуровневые обсчитывают, как эффективнее комаров прихлопывать, а высокоуровневые — какой вуз выбрать сейчас, чтобы через 10 лет быть богатым. Уровень абстрагирования разный. Как это воспроизводить на компе — хороший вопрос.

>>Не думаю… Но ее не нужно писать… Нужно все-таки придумать какие-то более менее универсальные принципы, по которой она могла бы уточнятся постоянно. — я когда тестирую RL, часто делаю бейзлайн — рукописную систему управления. Чтобы сравнивать качество. Рукописная система обычно включает в себя именно модель, то есть она от RL отличается в основном тем, что систему предсказания я написал руками из общих соображений. Ну то есть это чисто вспомогательная штука.

>>Я пока слабо понимаю, что такое на практике «построение модели», «включение в модель», «поиск противоречия»
Если не возражаете, я расскажу о том, что такое индукция Соломонова =) Я честно не очень понимаю, что вы понимаете под моделью, но давайте попробуем найти точку отсчёта.
Итак, индукция Соломонова, AIXI и алгоритмическая регрессия — близкие понятия, пусть более умные люди меня поправят, я их сейчас немного сложу в одну кучу. Ну и да, я буду описывать свою реализацию, потому что исходный AIXI как-то не очень удобно применять в качестве ИИ.
Агент, принимающий решения, каждый такт принимает на вход вектор S (sensor, это массив сенсорных данных, тип данных — float или double), переменную R (reward, это сигнал подкрепления, float/double) и выдаёт на выходе вектор A (action, это сигналы на исполнительные органы, вектор float/double).
Каждый такт агент получает какие-то S и R и выдаёт какие-то A. Мы все эти три штуки сводим в единую таблицу. Какое-то время ИИ принимает рандомные решения (выдаёт рандомные A). Затем происходит обучение. Происходит оно так.
Мы создаём некий рандомный алгоритм, который принимает на вход S,A,R и выдаёт на выходе вектор размерности S плюс 1. Мы скармливаем алгоритму таблицу SAR и получаем на выходе другую таблицу. Мы проверяем, насколько эта другая таблица похожа на таблицу SR, сдвинутую на 1. Ну то есть насколько хорошо наш рандомный алгоритм предсказывает вектор S и величину R на следующем такте. Так как алгоритм взят от балды, он будет плохо предсказывать… Так мы переберём… Все возможные алгоритмы. Их бесконечно много? Ок, переберём просто очень много алгоритмов. Одни будут давать прогноз получше (поточнее), другие — похуже.
Дальше… Мы говорим следующее. Каждый из этих алгоритмов — это гипотеза о том, как устроен мир. То есть гипотеза в том, что окружающая реальность выдаёт такие же данные, как алгоритм, но с погрешностью, которая выглядит как гауссов шум. Таким образом мы для каждого алгоритма-гипотезы можем рассчитать его правдоподобие (для каждой сроки таблицы рассчитать вероятность, что вот эта вот гауссиана алгоритма выдала вот эту вот фактическую точку). Затем мы рассчитываем для этого алгоритма «вероятность быть истинным», исходя из правдоподобия. Затем мы вероятность домножаем на 0.5^(длина алгоритма в битах). Это так работаем бритва Оккама. Затем мы берём несколько наилучших алгоритмов и нормируем их вероятности — так, чтобы в сумме было 1. Всё, у нас есть набор гипотез о том, как устроен окружающий мир. AIXI предполагает, что мы переберём всё бесконечное множество алгоритмов, но это нереально, поэтому берём не все, а просто много алгоритмов.
Это прогнозирующая модель. Мы можем зарядить в неё произвольный вектор A и получить S и R — какие они будут на следующем ходу, если Action будет такое, как мы зарядили. Каждая гипотеза выдаст свои значения S и R.
Мы можем в каждую гипотезу зарядить последовательность A: зарядить первое A, получить S и R, зарядить полученные S и R и второе A. И так далее. В результате каждая гипотеза опишет, как будет меняться мир, если мы осуществим такую-то последовательность A. И каждая гипотеза опишет, сколько reward получит ИИ. А дальше мы берём взвешенное среднее от суммарной награды по всем гипотезам. И получаем ответ: сколько профита будет, если мы последовательно сделаем A1, A2, A3, A4.
Мы перебираем различные планы действий (на модели, не в реале). В идеале все возможные — но на практике — просто много. И выбираем тот, где reward больше всего. Делаем самый первый action этого плана. Снова строим план. Можно после каждого хода пересчитывать вероятности гипотез — это довольно дёшево и эффективно.
Через несколько ходов строим модель заново — выкидываем старые алгоритмы, создаём новые, рассчитываем их вероятности.
Теория говорит, что если перебрать все алгоритмы, то среди них будет и тот, который идеально описывает внешний мир, и у него окажется наибольшая вероятность. А если перебрать все планы, то среди них будет оптимальное управление. Но это всё в пределе.

Так вот, при таком решении задачи у нас «построение модели» есть, «включение в модель» отсутствует, «поиск противоречия» присутствует в смысле расчёта правдоподобия моделей. Модель не может оказаться самопротиворечивой (как бывает у людей), потому что представляет из себя тупо кусок исполняемого кода, а не систему из аксиом и теорем. Модель всегда будет описывать весь мир — потому что ИИ подключён к миру через сенсоры, а она предсказывает сенсорный вход, то есть весь видимый мир. Модель не будет включать в себя сам AIXI (ну, я пока не знаю, как это сделать).

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

>>Но мне кажется, что нужно изменить подход. Что модель мира не обязательно сложна, но всегда всеобъемлюща. Ее сложность нарастает постепенно путем разделения уже известного на более детальное представление того-же самого. Слово «Все», «Сущее», «Мироздание» — является малоприменимой на практике, но тем не менее полной моделью мира (в начале было слово, да? ;) ). Если разделить его на два подмножества, например «я» и «не я» — то она уже будет практичнее и все равно останется полной. — то, что вы описываете, похоже на решающие деревья. Я строил что-то типа AIXI, но не на алгоритмах, а на решающих деревьях. Для того, чтобы сделать что-то полезное, приходится использовать высокую точность, а значит, большую глубину ветвления.
Если самолёт находится сейчас на координатах (10, 20), а его скорость (0,5), то где он будет в следующий такт? Дерево должно выдать (10, 25). А если скорость (0, 3), то (10, 22). Значит, дерево должно различать циферки вот аж с такой низкой погрешностью…
Впрочем, я наблюдаю, что вы пробовали применить иерархию не к сырым сенсорным данным, а к чему-то более высокоуровневому
>>>Задача AGI не упоминает, в какой именно среде находится AGI. Скажем так, AGI, исходя из его определения, должен уметь сам изготовить эту свёрточную сеть. А то вдруг он окажется в 4-мерном пространстве, и там надо делать не 2-мерные фильтры, а 3-мерные?

В своих изысканиях я проходил через несколько… Скажем так «этапов». ;) В статье вскользь упоминается о том, что «разум, это способность существа», т.е. не просто какой-то абстракции, а чего-то такого, что существует в исследуемом мире, как часть этого мира. Следовательно, можно предположить, что этот «мир» уже обладает некой размерностью и в самой нашей системе заложены начальные… механизмы, что-ли, которые и позволяют осуществлять «построение модели». В качестве иллюстрации собственно и написана история гипотетического робота: его мир заранее содержит представление о пространстве, он может строить его карту, локализовать в ней себя и другие объекты… все это является входом для его «решателя-принимателя-решений-разума», чем бы он в итоге не был: AGI/RL-сетью/деревом вариантов или чем-то еще. НЕ вход с сенсоров, а именно модель. Собственно и выходом тоже является модель, только развернутая в будущее и содержащая действия самое себя…
Я к тому, что на определенном этапе я отошел от мысли, что AGI должен быть абсолютно универсальным и будучи помещенным в любую среду уметь полностью самостоятельно постичь правила игры. По крайней мере на начальном этапе это в значительной мере выбивает почву из под ног: я считаю, что сначала было бы неплохо построить AGI, существующий в конкретном мире (вроде робота уборщика ;) ), а потом развивать универсальность. Это позиция на момент написания первой части статьи.
Вторая часть должна быть про процессное восприятие. Я пришел к тому, что в принципе лишь одно измерение есть всегда — это время. И основной квант модели — процесс. Это позволяет в принципе говорить об универсальности подхода, но не отменяет необходимости некоего начального «конфигурирования» системы под конкретные задачи.

>>>Уровень абстрагирования разный. Как это воспроизводить на компе — хороший вопрос.

Мне это видится как… Усовершенствованная теория множеств, или классов, когда нет строгого разделения на класс/экземпляр или множество/элемент, а все это равноправные элементы, имеющие неограниченную вложенность. В таком случае можно описать довольно обобщенные процессы… Нет, если вы захотите от меня больше конкретики — я скорее всего поплыву. ;) У меня есть идеи, но нет стройной завершенной теории. Собственно мое состояние в этом смысле является прекрасной иллюстрацией вопроса: очень размытое общее представление. ;) Собственно именно это свойство психики позволяет нам иметь полную модель реальности!

>>>Ну то есть это чисто вспомогательная штука.

А мне, наоборот, кажется, что существующие технологии без сомнения прекрасны (RL, сверточные сети, дерева решений и тп), но они лишь инструменты. Внутри же системы должна быть определенная архитектура. Нет, система вполне может состоять из множества RL-сетей и даже только из них! Но это не значит, что надо просто взять тысячу RL на все случаи жизни и они вместе дадут AGI — не дадут. Нужна идея! Концепт.

>>>Я честно не очень понимаю, что вы понимаете под моделью, но давайте попробуем найти точку отсчёта.

Последнее из относительно практического, что я давно хочу попробовать: есть движок unity, там есть PhysX. берем шагающего робота — не очень сложного, на серво-машинках, ставим на него гироскоп (или не один). Далее у нас есть информация о положении серв и данные с гироскопа… в юнити создаем максимально «такого же» робота, где оперативно обновляем информацию о положении серв и положении в пространстве. Т.е. в первом приближении у нас модель и реальность синхронизированы. Далее… Большое пространство для экспериментов. ;)

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

>>>Дальше… Мы говорим следующее. Каждый из этих алгоритмов — это гипотеза о том, как устроен мир.

Тут… Тонко. Я понимаю, что вы хотите сделать: мой, достаточно оторванный от реальность «полет мысли» (в плохом смысле слова) вы хотите вернуть на грешную землю к непосредственной практике. Это правильно — это очень нужно делать. И вы не первый, кто говорит о RL, способной предсказывать следующий кадр, как о модели мира… И я даже понимаю, что где-то это так и есть. Но несколько не в том понимании, о котором говорю я.

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

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

Мне это видится как… Усовершенствованная теория множеств, или классов, когда нет строгого разделения на класс/экземпляр или множество/элемент, а все это равноправные элементы, имеющие неограниченную вложенность. В таком случае можно описать довольно обобщенные процессы…
— а ещё эта штука должна как-то уметь интегрироваться с сенсорным входом =) Было бы круто увидеть в ваших дальнейших статьях идеи на эту тему)

Я попробую сформулировать в чем нюанс, но… Не с ходу. Мне нужно подумать.
— с интересом послушаю) А пока накину ещё одну проблему Model-Based подхода. Например, Model-Based не может эффективно работать, если в среде активно действует другой интеллектуальный агент. Соизмеримого уровня интеллекта. То есть для человека это нормально — попросить друга подвезти его до аэропорта. Человек не знает, что будет делать друг, но знает, что маршрут закончится в аэропорту. Model-based будет пытаться эмулировать действия другого человека напрямую, а если он сам не знает маршрут до аэропорта, то и справиться не сможет. То есть человек явно не только Model-Based использует
Можете немного пояснить, что из этого вы называете моделью?
Важная (как мне кажется) веха моих размышлений на этот счет — понимание того, что модель в обязательном порядке развернута во времени. Она не обязательно развернута в пространстве (звук, текст — одномерные каналы, но услышав первые ноты любимой композиции вы вспоминаете ее практически до конца), но обязательно — во времени. Одно из очевидных следствий — в этой модели есть будущее. Кажется — ничего такого, просто прогноз… Или нет?
В вашем примере «я попал в цель» — некое внешнее по отношению к модели «целевое состояние». а прогнозное (ожидаемое) — «я промажу». Но в моей model based системе целевое состояние — задано в самой модели. необходимость поиска стратегии для его достижения проистекает из единственного стремления системы: привести в соответствие реальность с моделью. Можно даже сказать что это то самое устранение противоречий: т.е. если все идет, как идет, то я промажу, а в моей модели я попал. Значит я что-то такое сделал! Нужно лишь понять что именно и… Сделать!

Таким образом, что именно должен делать ИИ вы определяете корректируя его модель (будущего). И не важно — это задача «попал из пушки», «через час был на работе» или «ни один человек не должен пострадать» — все это зафиксированные в будущем состояния мира и ИИ должен найти такой вариант развития событий, что бы мир к ним пришел. ;)

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

Там куча нюансов, я понимаю… Начиная от того, что хоть я и говорю о будущем, как константе, но все-таки есть некая вариативность (не то что бы совсем не попал… Просто не попал в шарик! Т.е. или изначально вариантов больше одного, или есть некая степень приближения к идеалу, т.е. допустимое несоответствие). Так же есть риск начать строить стратегию изменяя неподвластные тебе параметры… Ну так и люди бывает, «теряют связь с реальностью»! ;)
Кстати на счет «Сделать»…

Я где-то читал некую статью на тему неокортекса. И там высказывалась мысль… Или мне показалось, что она там высказывается… Что неокортекс подобен шлему виртуальной реальности надетому так сказать на древний рептильный мозг в том плане, что он не управляет непосредственно действием, но он как бы это действие представляет, а древний мозг в свою очередь банально выполняет то что ему транслируется… Как-то так. Т.е. фактически множество действия, которые мы бы могли назвать рефлекторными, автоматическими — это просто потому, что они действительно через неокортекс не проходят. Когда вам летит мяч — в своей реальности неокортекса вы его уже поймали, а древний ящер внутри вас делает так, чтоб это стало реальностью.

Этакий вот поток сознания… В порядке мозгового штурма. ;)
Ага, то есть вы представляете реальность как временную петлю, про которую известно, что она проходит через целевое состояние. Ну и пытаетесь решить это уравнение. Похоже на то, как задачки в физике решаются) Ещё похоже на решение дифференциального уравнения.

У вас, как я понял, модель — это картинка мира, при котором временная петля замкнулась, как надо, пройдя через целевое состояние.

Кстати, а как эта концепция отрабатывает ошибки? Допустим, в моей модели написано: я с первого выстрела попал в цель. Я всё сделал, как по модели… И не попал. Не учёл каких-то факторов или какие-то величины измерил неверно, или погрешность измерения вылезла, или выпал за границы применимости Ньютоновской физики.
Как ваша концепция отрабатывает такую ситуацию?

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

Насчёт неокортекса… Интересные мысли. Я это представлял так: у рептильного мозга есть API к неокортексу, и иногда рептильный мозг им пользуется. В остальное время он как-то сам справляется и нам, сознанию, вообще не докладывает
Кстати, а как эта концепция отрабатывает ошибки?

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

И вообще, есть идеи, как решать задачи в таком ключе?

Честно? очень расплывчато… Какие-то соображения иногда проскакивают вида «берем игровой движок с физикой, к нему реальную физическую систему — и на их взаимной корреляции что-то такое экспериментируем». Мне все кажется, что чем лучше я изложу кому-то вопрос, тем лучше пойму его сам и что-то нарисуется. Но пока к сожалению больше получается участвовать в философских диспутах на тему, чем реально практические вещи. Каюсь — грешен. ) Я все жду, что или у меня накопится критическая масса понимания современных технологий вроде тех же RL, что бы прикрутить в делу, или я кого-то «заражу» своими идеями, у кого эта критическая масса уже имеется. )) Поэтому и пишу на Хабр.

Я это представлял так: у рептильного мозга есть API к неокортексу, и иногда рептильный мозг им пользуется. В остальное время он как-то сам справляется и нам, сознанию, вообще не докладывает
— ну да. Большую часть времени сам справляется, но собственно мотивация к более сложной (чем раздражитель-реакция) деятельности — просмотр «кино» с собой в главной роли и повторение увиденного. ;) Ну идея в этом.
Есть соображение, как формализовать задачу с вашим вариантом модели.
Есть S (вектор данных с сенсора, приходит каждый такт), A (вектор сигналов на управляющие органы, аналогично, каждый такт). А Reward нет. Вместо него есть явно заданное Sцелевое — это некое описание цели. Причём такое описание, что его легко рассчитать по SA-таблице, хотя бы задним числом.
Например, Sцелевое — это флажок «было попадание снаряда в цель в течение 10 тактов после этой строки». Или вектор S для момента ближайшего попадания. Или просто S кадра через 10 тактов.
А дальше обучаем модель (нейронку, дерево, AIXI, KNN или что угодно другое). На вход она принимает последовательность из S (например, используем RNN или AIXI для последовательностей) и одно значение Sцелевого. На выходе A текущее.
Теоретически, должно построиться что-то типа модели «что надо сделать, чтобы достичь цели такой-то».
В чём трудности.
1) Сложную целевую метрику напрямую оптимизировать сложно. Допустим, я хочу, чтобы мой снаряд попал в цель, но меня не волнует всё остальное. В качестве цели задавать полноценный S с картинкой попадания… Ну не очень. А вдруг мы не можем достичь именно такого попадания? Но можем достичь другого? Тут надо сильно думать, как задавать цель)
2) В принципе, можно в качестве цели задать «сделай, чтобы было число попаданий=1». Но… Как показывает опыт, ML в таком случае обучается отвечать на вопрос «что мы делали перед прошлым попаданием?» и старательно игнорирует контекст. Перед прошлым случаем, когда мы заработали кучу денег, мы играли в лотерею! Потому что по-другому единомоментно много заработать нам не удавалось! Лотерея обычно ведёт к поражениям? Ну так нас же не спрашивают, что будет, если мы сыграем в лотерею. Кстати, вот и очевидное решение — использовать Action-ориентированную модель вместе с Model-Based (нет, это не A3C, но по смыслу похоже).
3) Разные действия могут вести к одному результату. Может выйти, что прицел=10 градусов и прицел=60 градусов приводят к попаданию. Настильно или навесом. Но если взять среднее от них (а ML так и сделает!), то мы промажем.
4) А что модель выдаст на вопрос «как мне получить Sцелевое», если Sцелевое выкручено в нереалистичные значения? Которых на истории не было даже близко. Решающее дерево дало бы ответ вида «надо сделать вот то, что мы делали, когда нам потом офигенно повезло». Но оно не умеет экстраполировать, а AIXI или что-то на базе линейной регрессии — умеет. Что будет там на выходе — остаётся только гадать.

Ну, самое очевидно опасное здесь — обучиться на выбросах, см пример с лотереей. Но вроде бы контрится хорошим Model-Based (а как Model-Based будет работать с стохастической среде? Да хреново он там работает...)

И… Судя по словам AIDeus, здесь есть проблема, аналогичная с той, что в QLearning. Функция, которую нам надо подобрать, сложная. Возможно, она требует эмулировать обычный перебор планов model-based прямо внутри модели. То есть у нас будет нейросетка. В ней будет model-based — в виде весов. И обвязка — переборщик вариантов в Model-Based. Всё внутри нейросетки. Ну или какая-то ещё функция, в которой необходим длинный цикл. Но тут вопрос к самому ML…

Это похоже на вашу постановку задачи?)
Чем-то похоже, наверное, но ряд упрощений делает такую постановку задачи не вполне пригодной…

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

Если опираться на предложенную терминология, я бы сказал, что есть W — как описание мира. Есть W', как срез в моменте, на основании которого можно сформировать S', на любой момент времени, включая текущий (здесь должна была бы быть запись объединяющая S, W, A и t (время), но я чот с ходу не придумал, как это правильно оформить). Наверно можно сказать, что W(n) =W(n-1)A, или что-то вроде (хотя мне не нравится такой подход за счет дискретности, но… Зато в него вполне неплохо вписывается AI игр, когда action вычисляется каждый тик! ;) ).И да наверное можно сказать, что есть определенные W' в будущем, которые являются заданными и система стремится к ним, путем итерационной подстройки A.

Таким образом текущее S (реальное с «сенсоров») сопоставляется с предполагаемым S', и в случае значимого отклонения — модель ребаллансируется. Причем, не только в сторону t>t'(текущее), но и t<t', потому, что непротиворечивость должна соблюдать на всей области (t), и это как раз один из способов познания, когда S не полностью перекрывает W': несовпадение расчетной картины мира с реальной, должна быть учтена не только для расчетного будущего, но и прошлое так же должно быть подвергнуто пересмотру, т.к. это самое несовпадение обусловлено ошибками либо неполной информацией, и этот пересмотр в свою очередь может повлечь значительно большие изменения в будущем… Работа над ошибками, короче! :).

Много букв, а еще ж надо о моделях сказать — на чем учим, что выделяем… Учим конечно же на полных W. Последовательности S — это очень похоже да, но вот только все современные, работающие со временем нейронки, типа RNN, мне кажутся неправильными — ну или я их не вполне понимаю. Мне кажется важным именно развернуть модель во времени — как-то подготовить ее в терминах ПРОЦЕССОВ, потому, что именно процессы по сути нам и нужно выделять. Только в развертке по времени мы можем выделить отдельные паттерны изменений, поймать причины/предпосылки/следствия и тп. любое А — это процесс. Наша система должна подобрать такие А, что бы «пасьянс сошелся».

В качестве цели задавать полноценный S с картинкой попадания… Ну не очень. А вдруг мы не можем достичь именно такого попадания? Но можем достичь другого? Тут надо сильно думать, как задавать цель)
Несколько оффтоп, но как-то ведь мы учим распознавать лица? ;) Не конкретное лицо, а лица вообще… Поэтому думаю и попадание может быть не именно такое, а попадание вообще. 100500 историй попаданий вообще (и непопаданий тоже) в полной развертке по времени и на мой взгляд вполне реально получить некие скоррелированые показатели огневой позиции, положения ствола, расстояния до цели, угла и тп. и тд. приводящие к попаданию. Причем, это вот хороший пример: картинка с сенсора (камеры) в данном случае должна соотносится с пространственной моделью положения стрелка/мишени и именно пространственная модель по-хорошему передается как на вход сети, так и в качестве цели, а не картинка попадания с сенсора!

Вообще, мне кажется, что это в целом камень преткновения! Достаточно хорошо идет прогресс в разработке систем AI для игр с полной информацией. Да и с неполной — тоже неплохо, когда вектор на вход представляет собой именно описание мира: скорости, взаимное расположение объектов, данные за последние 8 ходов (не рекурентно, а в этом конкретном векторе!) и тп. Но почему-то когда мы начинаем говорить о системах общего интеллекта, мы почему-то на вход считаем нужным подавать «картинку с камеры». (( Хотя понятно, что сначала эту самую картинку нужно преобразовать во все то-же самое: объекты, их положение в пространстве и дополнить информацией, полученной ранее — что бы получить полную картину, хотя бы в моменте. НЕ, возможно это я заблуждаюсь, и вы под S имеет ввиду не bmp/jpg/avi, а таки уже преобразованную в нужный вид реальность, но… Для меня это не очевидно. Несколько раз сталкивался с тем, что люди строят поведенческие модели ИИ именно от картинки камеры. Хотя примеров того, что современные вычислительные алгоритмы даже с одной камеры могут снимать уже вполне себе карту глубин (правда не в моменте, а в динамике), распознавать объекты, особенно движущиеся и тп. достаточно много, что бы на этом моменте не застревать…
Я под S подразумеваю картинку с камеры, либо картинку, предобработанную неким стандартным способом — например, выход со свёрточной нейросети, но единой для всех задач. Я не убеждён, что предобработанная картинка тянет на вектор W' во всех случаях. Но похоже, что по серии картинок можно такой вектор W' построить (лучше, чем по одной картинке), и предобработка стандартной свёрточной нейросетью в таком случае полезна, но недостаточна. Как именно строить такой вектор W из нескольких эмбеддингов кадров — это вопрос, и есть разные варианты ответа)
Да, я рассматриваю вариант, что никакой полной картины мира у нас нет, есть только сенсоры и статистика с них, то есть максимум, что можно — это сделать, как у человека, модель мира, неполную, пригодную для прогноза и обновляющуюся от наблюдений.

Сейчас, ещё раз схема) Есть массив наблюдений S… Ну пусть это результат некоторой предобработки.

Блин. Отправилось раньше времени.

Я под S подразумеваю картинку с камеры, либо картинку, предобработанную неким стандартным способом — например, выход со свёрточной нейросети, но единой для всех задач. Я не убеждён, что предобработанная картинка тянет на вектор W' во всех случаях. Но похоже, что по серии картинок можно такой вектор W' построить (лучше, чем по одной картинке), и предобработка стандартной свёрточной нейросетью в таком случае полезна, но недостаточна. Как именно строить такой вектор W из нескольких эмбеддингов кадров — это вопрос, и есть разные варианты ответа)
Да, я рассматриваю вариант, что никакой полной картины мира у нас нет, есть только сенсоры и статистика с них, то есть максимум, что можно — это сделать, как у человека, модель мира, неполную, пригодную для прогноза и обновляющуюся от наблюдений.

Сейчас, ещё раз схема) Есть массив наблюдений S… Ну пусть это результат некоторой предобработки, например, зрительной нейросетью. Есть массив W' — это результат другой предобработки, динамической. Там лежат всякие скрытые переменные, которые в будущем могут повлиять. W' строится из S некоторой динамической моделью W — это может быть нелюбимая нами обоими RNN, либо это что-то типа AIXI, либо ещё какой-то способ учесть прошлое. Если я переврал вашу терминологию, поправьте, пожалуйста)) Как построить W — точно неизвестно, но можно построить модель для прогноза будущих S по прошлым (на вход даём 50-100 S — на выходе одно, следующее), и в качестве W' использовать вектор внутренних переменных этой модели.

W будет откорректирована на прошлом, потому что она на нём обучалась. У меня в принципе есть что-то отдалённо напоминающее AIXi, могу скинуть код. Суть в том, что мы подбираем некую машину Тьюринга, которая, принимая на вход прошлые S, хорошо предиктит будущие. Подбираем — в смысле перебираем разные варианты программного кода и смотрим, у какого ошибка прогноза меньше. Ну и можно в качестве W' использовать дамп памяти этой машины Тьюринга. Сама машина Тьюринга будет при этом той самой W (и каждые несколько тактов мы её удаляем и ищем заново, с учётом немного расширившейся истории, так реализовано уточнение картины мира).
Либо для той же задачи можно применять что-то типа RNN

Таким образом текущее S (реальное с «сенсоров») сопоставляется с предполагаемым S', и в случае значимого отклонения — модель ребаллансируется. Причем, не только в сторону t>t'(текущее), но и t<t', потому, что непротиворечивость должна соблюдать на всей области (t), и это как раз один из способов познания, когда S не полностью перекрывает W': несовпадение расчетной картины мира с реальной, должна быть учтена не только для расчетного будущего, но и прошлое так же должно быть подвергнуто пересмотру, т.к. это самое несовпадение обусловлено ошибками либо неполной информацией, и этот пересмотр в свою очередь может повлечь значительно большие изменения в будущем… Работа над ошибками, короче! :).

— плохо себе представляю, как будет происходить изменение действий на прошлом. Можно уточнить примерно? Допустим, у нас таблица такая (S==W и это одно число).
SAR
100
201
110
210
310
201
Допустим, здесь истинная зависимость такая: следующий S рандомный, а вот по паре S и A можно однозначно предсказать R.
SARSA какая-нибудь тут же выловила бы зависимость: если S=2, A=1, то R=1, иначе 0.
Мой «типа-как-в-школьных-задачках» алгоритм выловил бы зависимость: если R=1, S=2, то A=1, для других пар R и S результат был бы неопределён.
Можно пояснить, как бы здесь шла работа надо ошибками? Или р/о касается лишь W?

В качестве цели задавать полноценный S с картинкой попадания… Ну не очень. А вдруг мы не можем достичь именно такого попадания? Но можем достичь другого? Тут надо сильно думать, как задавать цель)

Несколько оффтоп, но как-то ведь мы учим распознавать лица? ;) Не конкретное лицо, а лица вообще… Поэтому думаю и попадание может быть не именно такое, а попадание вообще.

Ну… Мы учим распознавать лица, но это задача, при которой у нас на входе лицо, на выходе класс. Если мы так же подойдём к стрельбе, то будет что-то типа:
«Снаряд в момент взрыва находился в точно в той точке, где цель, при этом у нас ещё один снаряд был по координатам (10, 100, 0.5), и ещё один по координатам (12, 200, 10), и цель была по координатам (20,30,10)»
При этом вообще-то не факт, что цель будет именно там, и что снаряды будут именно там. И не факт, что не будут. Поэтому возможно, стоит не всю картинку подавать в качестве цели, а что-то меньшее.
С другой стороны, можно попробовать разные будущие координаты цели и разные значения «неважных» переменных. С третьей стороны система ведёт себя неопределённым образом, если дать ей невозможную задачу (ну или такую, что ИИ не знает, как решать), и надо каким-то другим способом проверять, адекватно ли решение.

Разум — это способность существа строить полную, адекватную и непротиворечивую модель реальности.

Начните с определения в Википедии. Разум — это, упрощенно, способность мыслить. Поскольку любой разум — это замкнутая система, он в принципе не может построить непротиверечивую модель. Модель будет построена в терминах разума. Она может быть какой угодно :-)
А давно у нас Википедия — источник прописных/абсолютных истин? ;) Я же написал:«я действительно не нашел такой концепции, которая удовлетворила бы меня». В частности в вашей цитате определение Разума дано через синонимичный концепт «мыслить», который в свою очередь требует определения (А «мыслить» — способность разума, да? ;) ), а значит это не концепция, а… Ну вы поняли. Не имеет сие определение прикладного смысла.

По поводу остального — ничего не имею против. ;) Модель действительно будет построена в терминах разума и действительно будет какой угодно. Не вижу в этом проблемы. Даже с том, что «построить непротиворечивую модель разум не сможет в принципе» — я беды не вижу — мышление суть суть процесс построения модели, и это как раз тот самый случай, когда процесс важнее результата! )))
Я написал «начните», а не «абсолютно точное непогрешимое определение дано в Википедии». У мышления есть вполне четкое определение — это способность оперировать идеями, символами, источником которого является чувственное восприятие. Вы можете сколько угодно не удовлетворяться существующими определениями, но учитывая, сколько уже было потрачено на попытки понять суть мышления и разума, проблема не в существующих определениях ;-)

Вы не видите проблемы в том, что ваше первоначальное определение ничего не определяет, если не сказать, что оно ложно, что в свою очередь означает, что все ваши дальнейшие умозаключения не имеют смысла? Вы же претендуете на какую-то философию, но при этом вообще не следите за аккуратностью собственных логических цепочек.
На каком основании вы мне предлагаете «начать»? ;) «Начал» я уже очень давно, и с гораздо более существенных источников, чем Википедия. Если честно, я пока не вижу причин, с чего бы мне прислушиваться к вашим… Ну назовем их «советам» — вы пока не продемонстрировали глубокого знания предмета ни в одном из аспектов вопроса. Без обид.

>>>Вы можете сколько угодно не удовлетворяться существующими определениями, но учитывая, сколько уже было потрачено на попытки понять суть мышления и разума, проблема не в существующих определениях ;-)

Вы знаете, как раз тот факт, что «попытки» не прекращаются говорит о том, что среди них не было ни одной окончательно удачной, вам так не кажется?

>>> Вы не видите проблемы в том, что ваше первоначальное определение ничего не определяет, если не сказать, что оно ложно, что в свою очередь означает, что все ваши дальнейшие умозаключения не имеют смысла?

вам знакомы основы полемики? Если вы выносите на общественный суд некое суждение, да еще и в столь категоричном формате, то неплохо бы было его обосновать. Я имею ввиду по каждому конкретному пункту: «определение ничего не определяет», «оно ложно», «умозаключения не имеют смысла»… В противном случае это довольно-таки оскорбительное сотрясание воздуха, единственной целью которого является провокация. В принципе я отвечаю вам из вежливости, как автор статьи, но если вы продолжите в том же духе — добавить мне будет нечего.

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

Зато вы, как я погляжу, сама аккуратность! ;) Что ж, куда уж мне — это ведь не каждому дано…

По сути-то есть что сказать? Конструктивный диалог поддержу с удовольствием.
Вы знаете, как раз тот факт, что «попытки» не прекращаются говорит о том, что среди них не было ни одной окончательно удачной, вам так не кажется?

Боюсь, окончательно удачной и не будет. Это, увы, реальность нашего разума и познания как замкнутой системы.

По сути-то есть что сказать?

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

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

Конечно мое определение не точно. Это скорее не определение, как таковое, а… Подход, позволяющий взглянуть несколько с другой точки зрения на проблему.

>>>Построение непротиворечивой модели в принципе невозможно.

Я не только согласен с этим, но и ввожу данный постулат так сказать by design. ;) Потому, что процесс устранения противоречий — это и есть процесс мышления. Полностью непротиворечивая модель = остановка мышления.

>>>Даже с полнотой есть определенные проблемы, потому что не выходя за рамки модели невозможно доказать, является ли знание полным.

Опять же — категорически согласен! ;) Полнота в данном случае лишь говорит о том, что модель включает все, чем может в принципе оперировать разум… Т.е. как бы осознанная часть мира.

>>> Я бы сказал, что то что вы определяете — это определение цели…

Да! Конечно. именно так. стремление к этим весьма вероятно недостижимым целям (полноте, непротиворечивости, адекватности) и есть мышление! в этом суть.

>>> С этой целью, на самом деле, есть еще одна проблема. Она механистична

Не могу не согласится. Наверное это проблема. НО я пытаюсь с этой, абсолютно механистической точки зрения, объяснить и то, что обычно противопоставляют логике — творчество, чувство прекрасного, инсайты и озарения… Например, тут в комментариях. Плохо это? НЕ знаю.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории