Об эмоциях, программах и искусственном интеллекте

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

Если верить тому, что пишут хабровчане, любая программа, это алгоритм – то есть определенный порядок действий, обладающий причинно-следственной логикой. Если еще упростить – то это набор «если-то» и вычислительных действий между ними. Основной порок любой программы — это принципиальное отсутствие внутри алгоритма ответа на вопрос «зачем?». Логика «если-то» — это логика «потому, что», но никак не логика «зачем». Смысл любой программы находится снаружи ее и закладывается программистом в момент создания. Отсюда, на уровне игр разума, следует, что программа испытывает всегда одну и ту же эмоцию – эмоцию самореализации. То есть все, что надо программе – это выполнить саму себя. При этом никакое усложнение самой программы не меняет сути постулата. Программа может вести себя по разному, она может обыграть Каспарова в шахматы или обслужить вас в МакДональдсе – но единственное, чего она при этом будет «хотеть», в чем будет смысл ее существования – это выполнить саму себя.


Если же мы посмотрим на определение эмоций – то они, как раз и определяют оценочное отношение к миру. Эмоции, как элемент мотивационно-волевой сферы человека сами в себе несут ответ на вопрос «зачем». Собственно, они и есть это самое «зачем». Присмотритесь к деятельности людей – люди действуют, для того, чтобы чувствовать. Чувствовать радость за детей, гордость побед, гнев к врагам, интерес к работе и т.д. Не потому, что они чувствуют, а для того, чтобы чувствовать. Рационально-логическая сфера человека построена как адаптационный механизм, помогающий больше, чаще и сильнее испытывать чувства.

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

Как выглядит упрощенная модель эмоций? В целом это не сложно, достаточно иметь:
1. Субъект
2. Внешнюю среду
3. Внутренний алгоритм оценки «ценности» факторов внешней среды для субъекта

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

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

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

    +1
    Отличное начало! Но ответа, как же программа начнет думать «зачем?», не нашел. Если смотреть со стороны программы, то первый ее ответ на «зачем?» будет " не зачем" и ни одна программа не будет выполняться. В живом организме есть еще набор стимулов (поесть), инстинктов (предопределенное поведение) и особенно у молодых сложных организмов — любопытство, которое влечет сложное развитие.

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

        «Эмоциональная китайская комната» (с) :)
      0
      единственное, чего она при этом будет «хотеть», в чем будет смысл ее существования – это выполнить саму себя
      Программе было совершенно все равно, выиграет он или нет, а победа или поражение не представляло для нее (программы) никакой ценности.

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

          А вот как вы себе представляется «задавание философским вопросом» на уровне алгоритма, для меня загадка.
          +2
          Упрощаете.

          Условно говоря, представим себе программу, работающую на java или другом языке с асинхронным GC.

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

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

          Если самодиагностика системы в порядке, то можно вполне себе представить стрессовую реакцию с её визуальным проявлением: не хватило памяти, начали свопиться, своп привёл к затенению sas-канала, что заставило рейд посчитать, что диск вышел из строя, он начал срочно ребилдиться… Чем не реакция организма на дырку в левом боку, или там, резкую нехватку воздуха?

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

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

            Поэтому при разработке программы на мой взгляд самое лучшее это не в даваясь в подробности просто описать все возможные ситуации. Человек невольно будет одушевлять её видя какие-либо сходства с живым существом.
              0
              Способность человека одушевлять все подряд весьма и весьма велика :) Поэтому удачная эмуляция эмоционального поведения, конечно, возможна и будет восприниматься как прогресс в создании ИИ.

              Если же говорит про разум у живых существ, то разум абсолютно не отделим от этого самого существа. То есть разум это свойство живого организма целиком, а отнюдь не совокупности электронных импульсов в нейронах.
              –4
              Чего только не придумают быдлокодеры, лишь бы просто не решить поставленную задачу. Без свистелок, без перделок, без жоповытиралок и прочих анимаций и глянцевых закруглённых уголков.
                0
                Вы что-то путаете.
                +2
                Не надо мистики. Эмоции — это всего лишь индикаторы. Положительные эмоции означают правильное выполнение программы, отрицательные — неправильное. Причем эти правльность и неправильность весьма условны. Технически эмоция — всего лишь уровень определенных гормонов. То есть эмулируется эмоция попросту переменной-счетчиком или функцией от каких-либо важных параметров. Именно так работают генетические алгоритмы — ключевой параметр мотивирует выбирать наиболее подходящий вариант.

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

                По сути, все «зачем» человека сводятся к тому же «желанию» заложенной в ДНК программы выполниться.
                  0
                  Не забывайте, что верно одновременно два высказывания:
                  «Гормоны управляют эмоциями»
                  «Эмоции управляют гормонами»
                  0
                  Не пойму. Какое отношение эмоции имеют к интеллекту, тем более искусственному? Эмоции — чисто животное явление, на 100% обусловленное нуждами тела, а не разума.
                  Будет «тело» — будут и эмоции. Нет «тела» — нет эмоций, хотя интеллект вполне может присутствовать.
                    0
                    А как вы себе представляете интеллект без мотивационно-волевой и эмоционально-чувственной сферы? Как совершенно верно написал vics001 — как только такая программа задумается о том, «зачем она существует» — она поймет, что «незачем» — и прекратит свое выполнение.
                    0
                    Не обязательно упираться в персональный интеллект, эмоции — элемент социального.

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

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

                      Так что не надо фантазировать на счет того, что должна знать программа по поводу причин пользователей. Пользователь делает с программой то, что она позволяет. Как задумал программист. Вне этого ничего и не должно быть. Никаких больше догадок выносить за пределы логики программы нельзя.
                        0
                        Было бы неплохо эти самые эмоции перечислить: любовь-ненависть, гнев-уверенность-страх, вина-справедливость-обида, удовлетворение-комфорт-страдание, удивление-знание-разочарование…
                          0
                          Как любая классификация она не будет описывать все варианты, но если говорить про базовые эмоции, то это: гнев, горе, страх, отвращение, восторг, блаженство, интерес и гордость. Иногда блаженство и восторг объединяют в радость, иногда вместо интереса дают удивление, но это скорее методические сложности. Предполагается, что остальные эмоции являются или оттенками базовых (напр. Ярость, бешенство, злость, раздражение — это гнев разной силы и активности) или же смесью в разной пропорции нескольких базовых (напр. Восхищение — это смесь восторга и интереса). Каждая эмоция н только сопровождается коктейлем гормонов и ферментов, но и приводит к серьезным изменениям в работе всей нервной системы — изменению восприятия, мышления и поведения. Тот же гнев, например, приводит к резкой недооценки рисков, и то поведение которое раньше было невозможным — реализуется.
                            0
                            Значит, есть базовые и высокоуровневые. Осталось только описать последние в терминах первых.
                          +1
                          Мир вам, программы!
                          Уж больно тема навеяла сюжет из TRON.

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

                          Самое читаемое