Почему сравнение «ведет себя как робот» по смыслу означает «ведет себя как дурак»?

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

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

Алгоритмы можно поделить на две большие группы: целестремительные и слепые алгоритмы.
— Целестремительный алгоритм имеет явную цель, которую старается достичь.
— Слепой алгоритм себе явно цель не ставит, но в результате применения алгоритма цель всё равно достигается.


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

Большая часть ПО сейчас строится на слепых алгоритм, человек же достаточно активно применяет целестремительные алгоритмы.

Целестремительный алгоритм в своей основе имеет управляющий контур с обратной связью:
1. собирается текущее состояние окружающего мира,
2. на основе текущего состояния и ранее поставленной цели вычисляется рассогласование,
3. выбирается и выполняется действие, для которого ожидается, что оно лучше всего уменьшит рассогласование.
Слепые алгоритмы такого управляющего контура не имеют, а строятся на выполнении исходно заданной последовательности шагов.

Обе группы имеют свои плюсы и минусы:
1. слепые алгоритмы
"+": более экономичны, обеспечивают максимальную производительность.
"-": перестают достигать цели даже при небольшом изменении внешних условий.
2. Целестремительный алгоритм
"-": высокозатратные из-за необходимости сбора данных об окружающей среде и их анализе
"+": достигают цели на широком диапазоне меняющихся внешних условий

Реальные сложные алгоритмы имеют элементы и того, и другого.

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

В целестремительном рефлексивном алгоритме появляется 4-ый пункт:
1. собирается текущее состояние окружающего мира,
2. на основе текущего состояния и ранее поставленной цели вычисляется рассогласование,
3. выбирается и выполняется действие, для которого ожидается, что оно лучше всего уменьшит рассогласование.
4. мониторинг результатов выполнения действия, сравнение результата с ожидаемым эффектом; принятие решения об эффективности выполняемых действий и поиск причины для случая, если действие не возымело эффекта.

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

Целестремительный рефлексивный алгоритм можно представить как композицию двух целестремительный алгоритмов:
— основной целестремительный алгоритм — направленный на достижение цели,
— дополнительный целестремительный алгоритм — отслеживающий, что каждый выполненный шаг приводит к тому, что ожидалось.

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

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

Ну. И что?
Реклама
Комментарии 26
    +1
    Хм, у меня есть подозрение, что предложенное деление на целеполагательные и слепые алгоритмы практически совпадает с принятым разделением на детерминированные и рандомизированные.
    1. слепые алгоритмы
    "+": более экономичны, обеспечивают максимальную производительность.
    "-": перестают достигать цели даже при небольшом изменении внешних условий.
    2. Целеполагательный алгоритм
    "-": высокозатратные из-за необходимости сбора данных об окружающей среде и их анализе
    "+": достигают цели на широком диапазоне меняющихся внешних условий

    Утвержение весьма спорно. Возьмем «итеративный целеполагательный» метод Рунге-Кутта четвертого порядка и «слепой» генетический алгоритм оптимизации. Первый достигает цели очень быстро, но перестает сходиться при нарушении гладкости. Второй работает почти всегда, но весьма медленно.
      0
      Исходно речь идет об экономичности (использовании минимального кол-ва ресурсов), а не о скорости достижения результата.
      Например, почему в роботе-пылесосе применяется слепой алгоритм по обходу комнаты? Просто потому что для этого достаточно минимальных вычислительных ресурсов, совсем не нужна память, нужен лишь один внешний датчик для контроля столкновений и небольшой объем кода.
      Если же эту задачу реализовывать через целеполагательный алгоритм, то сразу понадобятся сложные внешние датчики, значительный объем памяти для хранения модели помещения, значительные вычислительные ресурсы для распознавания объектов и перестроения модели помещения, а также большое кол-во кода для выполнения всего этого.
      0
      Деления на детерминированный/рандомизированный и слепой/целеполагательный — различны и независимы друг от друга.
      В статье была отсылка к алгоритму обхода комнаты для робота-пылесоса — это случайный слепой алгоритм: робот при столкновении с препятствием случайно выбирает направление следующего движения, а цель обхода всей комнаты достигается неявно.
      В тоже время при наличии камеры робот-пылесос может двигаться целенаправлено: на основе данных с камеры строить модель помещения, а затем последовательно обходить участки пола, выбирая каждый раз ближайший, где он еще не был — это будет целенаправленный детерминированный алгоритм.
      Можно также реализовать слепой детерминированный алгоритм: при каждом столкновении поворачиваться всегда на 37 градусов (в этом случае для некоторых комнат траектория может зациклиться и комната будет обойдена лишь частично). Реализацию случайного целенаправленного алгоритма также легко представить: как и во втором случае строим модель помещения, но выбор для посещения следующего нечищенного куска делать случайным образом.
        0
        Почитал внимательно эту ветку и хочу сказать, что ваша классификация всё же лажовая, т.к. она не формализована.
          0
          Формальный критерий вводится следующим образом:
          Алгоритм A называется целеполагательным по цели X, если алгоритм A содержит контур управления по достижения цели X.
          Алгоритм A называется слепым по цели X, если алгоритм A не содержит контура управления по достижению цели X.
          Алгоритм A называется целеполагательным, если алгоритм A содержит контур управления, направленный на достижения какой-либо цели.
          Aлгоритм A называется слепым, если алгоритм A не содержит ни одного контура управления.

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

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

                      При переносе этого определения в парадигму цифровых вычислений: словосочетание «сигнал воздействует» поменяется на «значение применяется».
                        0
                        Ну так все алгоритмы, которые вы привели, являются целеполагательными:
                        Пылесосные целеполагательны либо по цели «Вернуться на базу», либо по цели «Объездить всю комнату». А значит ваш пример детерминированного слепого алгоритма некорректен.
                          0
                          Данный алгоритм слепой по цели «Обойти всю комнату» (см. определение), о чем и говориться в примере.
                            0
                            Ну так он и не решает задачу «Обойти всю комнату»
                              0
                              в пользовательской документации на робот-пылесос написано, что такая задача ставится перед пылесосом
                                0
                                Мы сейчас говорим не об алгоритме, который в пылесосе.
                                Мы говорим о предложенном вами детерминированном «слепом» алгоритме для пылесоса. В рассмотрении его, как слепого по отношению к задаче «Обойти всю комнату» столько же смысла, сколько в рассмотрении алгоритма сортировки по свойству А по отношению к задаче сортировки по свойству Б. Либо эти свойства коррелируют плохо и тогда алгоритм просто бесполезен, либо они коррелируют и тогда благодаря корреляции можно оценивать отсортированность по Б по отсортированности по А и это будет контуром управления, что сделает алгоритм не слепым по вашему определению.
                                  0
                                  У тебя ошибочная посылка, что бывает только два варианта: нет, не коррелируют, да, коррелируют.

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

                                  Хорошесть обхода измеряется, как отклонение вероятности попадания в конкретную точку от средней вероятности.
                                    0
                                    > У тебя ошибочная посылка, что бывает только два варианта: нет, не коррелируют, да, коррелируют.
                                    Ты это только что сам придумал. В предыдущем комментарии были «хорошо» и «плохо». Степень корреляции — это непрерывная величина.

                                    > коррелирует, но не устойчиво (например, на часто используемых входных данных корреляция есть, а на более редких пропадает).
                                    Ты подменяешь понятия. Я говорил о корреляции на множестве всех входных данных.
                                    Если ты хочешь рассмотреть частные случаи, то у них будет та же проблема. Будет корреляция — алгоритм будет работать — на корреляции будет основан контур управления. Не будет корреляции — не будет работать алгоритм.

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

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


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

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

          Если стать на точку зрения объективного идеализма, то нужно признать, что в Мире есть некое объективное Сознание, этакое поле, приникающее всю наше реальность. И человеческий вид, в силу каких-то эволюционных особенностей, приобрел ценное для себя качество это поле воспринимать. Переживание, которое охватывает человека при таком чувствовании, люди называют «сознательностью». Но снова, здесь не совсем понятно, зачем машинам такая способность.
            0
            Под сознанием много чего понимается…
            В данной статье я предлагаю под сознанием понимать способность самостоятельно и осмысленно ставить перед собой задачи. По крайней мере, мы именно на основе этого критерия допускаем (или отметаем) наличие сознания у других. Другие определения менее удобные на практике, потому что имея на руках черный ящик (например, в виде инопланетянина неизвестной конструкции), сложно сказать есть ли переживания у этого черного ящика, и если есть, то какие?
            0
            Эм… Во-первых, в пылесосах применяется не «слепой» алгоритм, а «целепологающий». Цель — убрать НАИБОЛЬШУЮ площадь комнаты. при этом точно так же собирается и вся информация об окружающем мире. Да, в некоторых моделях действие на столкновение — случайный угол. В других — на ближайшее «грязное» пятно, до которого можно добраться.

            Во-вторых, эволюционно, сознание человека располагается на «запасной» части мозга. Именно поэтому инвалиды с ЧМТ в первую очередь слабеют разумом.
            ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C

            В-третьих, вы почему-то не упомянули целесоздающие алгоритмы. Когда есть глобальная цель и под нее выбираются остальные цели.
            к примеру, в стратегии, цель разгромить противника легко вызывает следующие цели:
            а)затормозить развитие противника
            а1) не дать закрыть все бреши в обороне
            а2) отрезать от важного ресурса
            а3) прервать сообщение между поселениями
            б)максимально ускорить свое развитие
            в)пробить брешь в обороне
            г)нанести сложно восстановимый урон

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

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

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