Участник:SSJ/ИИ
Введение
правитьЧтобы понять в чем заключается интеллект нужно поставить и попытаться решить достаточно сложную задачу.
Например задачу фолдинга белка, или её частность "Сворачивание РНК в пространстве". Это задача на данный момент в принципе не решена в науке.
У меня есть неплохие результаты с большой точностью могу сворачивать короткие РНК (около 20 нуклеотидов, односпиральные). Это происходит полуавтоматически, еще не все этапы полностью автоматизированы. с многоспиральными РНК не все так просто, но при ручном выборе грубого положения, то же не плохо.
Решая задачу сворачивания РНК я каждый этап следил за собой - как у меня появляются идеи, и что я делаю для достижения результата. В итоге можно сказать, что собственно интеллекта при такой решении задачи существенно прибавляется, и не в смысле профессиональных знаний, а в умении решать проблемы. А ведь именно это мы хотим от ИИ, и тогда можем согласиться что у него есть интеллект в собственном смысле. Т.е. если бы ИИ решил на данный момент еще не решенную задачу о сворачивании РНК, никто бы не сомневался в его разумности.
Стоит отметить, что формализация задач в ИИ - это путь в никуда. Точнее это путь к решению задачи. Но формализуя задачу мы перестаем заниматься собственно ИИ. Формализацию задач в ИИ образно можно представить как процесс, когда собака гоняется за своим хвостом, или же как хватая змею, она все время ускользает - как раз в тот момент когда ты формализовал задачу.
Далее мы будем различать два термина: "Постановка задача" и "Формализация задачи". Верно утверждение, что "Постановка задачи - это 80% решенной задачи", при этом формализация с учетом известности методологии ИИ займет порядка 2-5%, разработка более менее универсального метода 5%, и 10% оставим на наблюдение за ходом решения компьютером задачи.
"Постановка задача" и "Формализация задачи"
правитьПопробуем вначале не строго определить, что такое "Постановка задача" и "Формализация задачи".
Постановка задачи - это отбор человеком информации о специфике задачи, выбор для формализации задачи тех знаний, на основе которых будет решаться поставленная задача. При этом это многоитеративный процесс - результаты исследования позволяют уточнить постановку задачи и можно легче или точнее решать эту же задачу.
Формализация задачи (синоним математическая постановка задачи) - выбор такой общей системы понятий, в которую можно универсальным образом вкладывать данные о предметной области получаемые при постановке задачи. Например, как сворачивание РНК, так и игру в шахматы можно встроить в известную формализацию игр. Детали формализации могут незначительно варьироваться, завися от постановки задачи, но в целом одинаковы.
Так чтобы задать любую игру достаточно определить:
- Начальное состояние (исходное положение)
- Конечное состояние (выигрыш игры)
- Функцию переходов между состояниями
- Функцию полезности
Вот и все проблемы с формализацией. Отдельный момент с формулировкой методов решающих задачу по формализации, но это уже техника.
Процесс постановки задачи - это именно то, где устранив человека из описанной схемы мы получим ИИ. Если хотите я описал тест Яковлева (по аналогии с тестом Тьюринга) на интеллектуальность. Если при работе описанной схемы другой человек, не видя разработку - не видит отличий между человеком ставящим задачу, т.е. выборе для формализации задачи тех знаний, на основе которых будет решаться поставленная задача, и машиной - мы наделяем эту машину интеллектом.
Специально оговорим отсутствие "китайской комнаты" - человек ставящий задачу не получает ни какой целевой информации - даем ему выход в интернет и то, что он сам получает в результате своих исследований. Понижая степень умения, и косвенно интеллектуальности, (т.к. ребенок например, не умеет пользоваться интернетом, но вполне понимает сказанное по его просьбе) - можем неким образом упрощать процесс передачи требуемой информации.
Существует некая общая схема при постановке задачи, точнее существую некие условия действующие на человека при отборе знаний. И именно их мы попробуем описать ниже.
Понятие сложной системы
правитьВначале нам нужно определитель свойства присущие сложной системе (задачи)
Простая система отличается от сложной - нелинейностью, отсутствием симметрии и т.п. свойствами. А точнее процессы в ней происходят параллельно и под влиянием многих фактор, разложить на которые до конца не представляется возможным. Из-за этого сложная система представляется (математически) как дискретное энергетическое поле со сложным рельефом вершин и впадин. Такой сложный рельеф предполагает наличие множества локальных минимумов. А движение по этому полю (динамика сложной системы) не гладкое, т.е. требуется совместная корреляция нескольких атомарных действий для попадания в определенную точку. Это означает, что осуществляя те же действия по отдельности - точка попадания будет существенно другая.
Задачи решаемые человеком обладают такой сложностью в той или иной мере, а простые задачи не требуют затрат интеллекта и решаются практически автоматически.
Проблема понимания
правитьДалее требуется осветить еще один примыкающей вопрос. Это проблема понимания. Это проблема повсюду нас преследует. Её нельзя разрешить УЖЕ не имея ИИ. Именно поэтому получить ИИ как технологию невозможно последовательно. Нам нужно начать с постулата - "понимание у нас уже разработано". Что такое "понимание"? Например, чтобы решать задачу "Сворачивания РНК", невозможно это делать не зная что такое РНК. Так же многие хотят получить определение ИИ, чтобы разработать ИИ. Это снова путь в никуда: определение - это набор слов, за каждым из которых стоит следующие определение. Поэтому пока не изложишь через определения весь свой опыт, формально ИИ не определить, так как его еще нет. Определения даются только тому что уже есть - и тогда человек понимает что это.
("смысл (А) определяет смысл (В), но сам, в свою очередь, определяется через (В). И так по всем фрагментам текста" )
Природе все равно, какое представление мы имеем об РНК. Но нам нужно понимать это. Мы создаем себе модель этого РНК не в мозгу, а исходя из биологических экспериментов. Мы не можем (не хотим) учить ИИ делать все что умеет каждый из людей - это невозможная в принципе задача. Я например не умею осуществлять ЯМР, не говоря уже о том, чтобы разработать его принципы заново. Поэтому нам просто необходима абстракция, т.е. ставить точку - это делает ИИ, а это делает человек. Или что тоже самое это делает один человек, а вот это другой человек, но последнего мы можем заменить ИИ. Нам поэтому необходима коммуникация - получение информации от человека к человеку. И тут снова вопрос "понимания". Самый простой путь исключить естественный язык, и перейти к алгоритмическому: человек объясняет ИИ на языке программирования. Прямо встраивая исходные модели в ИИ. И тогда ИИ может продуцировать результирующие модели на том же алгоритмическом языке обратно. И желательно еще и второй протокол: результирующие таблицы, графики данных для понимания человеком. Итак ИИ обмениваются между собой .dll - ками, и выдают файлы для человека, которые визуализируются не ИИ-шными программами.
Таким образом, чтобы начать и обойти проблему "понимания", мы даем ИИ готовую модель РНК (мы выполнили свою роль биолога, и когда разработаем ИИ тогда сможем биолога заменить ИИ-биологом, а пока делаем это сами), а он строит нам модель "Сворачивания РНК" и на том же языке передает обратно.
Это позволит нам не отвлекаться на частности, которые не имеют принципиального значения когда собственно ИИ-технология будет готова.
Думать ИИ естественно будет не словами - оставь надежды любой входящий сюда лингвист
Условия для необходимые при постановке задачи
правитьТеперь формат протокола общения задается как раз выбранной формализацией. Выше мы описали одну из формализаций игр.
Начнем общаться человек-ИИ, пока заменяя человек-человек, по этой формализации.
Нам нужно задать начальную позицию и конечную. Как правило этому уделяют мало внимания. Но для сложных задач это не годится. Почему ? От стартовой начальной позиции существенно зависит выигрыш. В известных играх это не так, например, начальная позиция в шахматах, мы знаем что всегда может привести к выигрышу (конечной позиции). Но это потому, что мы выстроили как положено все фигуры. Но зададимся целью так их расставить вначале, чтобы никто ни когда играя по правилам шахмат не смог бы выиграть. Возможно ли такое ?
В сложных играх это сплошь и рядом, и исследователь первым делом пытается сопоставить начальную позицию с конечной. Тут проявляется его интеллектуальный выбор, он полностью свободен начать с какого-то начального положения, но ему нужно чтобы в принципе было бы возможно достичь конечного.
Многоитеративная задача постановки задачи в этом аспекте будет выполнена если станет возможно задать любую начальную позицию и любую конечную позицию, и алгоритму решения будет без разницы как из S_Start получить S_Final. Это не так просто, но именно и только такие алгоритмы решения устраиваю человека, только они дают понимание решаемой задачи, а пока это не до конца выполняется, задача КАЖЕТСЯ не решенной. Хотя природе это по барабану, а вот человеку, чтобы понимать природу нужно выполнять это условие.
Назовем это условие постановки задачи - инвариантность сходимости задачи.
Но если потребовать это условие сразу, например, приносить виноград из любого места в любое, то можно сразу же "запороть" все начинания. Поэтому слова "Многоитеративная задача" тут основополагающие. Я вот например, программист, и знаю простую истину - решить задачу руками, и только потом запрограммировать, не программировать общее, запрограммировал частный случай, затем далее ... так и здесь скажи ребенку "приноси виноград" - и вы увидите только 0% проявления интеллекта, хотя в потенциале он там есть на все 100%. Но если объяснить, что такое виноград, где он лежит, показать собственным примером как принести - и сказать сделай также - получишь результат.
Поэтому вначале можно выбрать любую начальную позицию, но конечная должна быть задана однозначно как выигрышная. Решение обязательно столкнется с невозможностью решить эту задачу, если задача сложная и не приводит с любого состояния к назначенному. Тогда начнется вторая итерация.
Но чтобы началось решения необходима функция переходов, т.е. понять как вообще можно менять состояние.
Итак, к формализации начальное, конечное состояния и функция переходов - можно свести любую реальную задачу. Мы определили, что при постановке задачи со временем нужно добиться инвариантности сходимости, но до этого действовать на основании частных примеров, набирая и отбирая знания для постановки задачи. Таким образом, условие инвариантности сходимости можно считать точкой выхода/окончанием постановки задачи.
Теперь как получить функцию переходов. Это тоже многоитеративный процесс. Вначале он появляется физически - организм самотестируется, каждый его механизм колибрируется. Для человека это первый год жизни, когда он учится ходить. Подробнее см . мой проект
Этот этап можно форсировать, скажем так поступили биологи, на работе которых я основывался (конечно, такую интерпретацию они даже не подозревали). Они взяли уже готовую свернутую рРНК и посмотрели какие углы в ее нуклеотидах существуют - и задали, да именно на комбинацию этих углов и может поворачивать РНК в процессе сворачивания. И это очень правильный и результативный подход. Моделирование на основе уже готовых элементов природы. Сравнительно бы наш математик пошел бы считать все комбинации 9 углов по 360 градусов в нуклеотиде, при наличии 20 нуклеотидов, потом учитывает запрещенные состояния - и все он в ауте и никак не может даже подступиться к решению. Вот вам и хваленная аналитика - бег на месте. А тут все 2700 уже готовых 9 угольных блоков - и грубое сворачивание уже начинается. комбинируя только это.
Еще хуже поступают физики, на основе энергии они рассчитывают то самое движение = функцию переходов, и чудовищная математика их снова загоняет в угол, что немогут даже решить задачу нескольких взаимодействующих атомов ...
Итак, функция переходов получается дискретизацией состояний природы. Мы подсознательно разбиваем природу на квадратики состояний, наблюдая за ней ... и затем превращаем статическое состояние в действие.
Этап идеализации природы
правитьКазалось бы, зачем строить идеальные модели - ведь их нету в природе, и это только трата времени. Но только через идеализацию мы начинаем понимать происходящий процесс и можем закончить постановку задачи, определив ту или иную функцию полезности.
Мы не моделируем то как на самом деле сворачивается РНК, какие силы вообще существуют и как это на неё влияет. Нам важно лишь какую и (желательно) как она приобретает форму, а все остальные вопросы нам не важны. Так действует наш мозг - мы устраняем не нужную информацию, мы не разрабатываем точные модели. Но на основе не точных моделей, можем сказать о реальном процессе больше, если имели бы точную модель. Казалось бы парадокс, но нет для понимания нам не нужна детальная модель - она у нас и так есть, но ее мы не понимаем (тоже самое и в отношении собственно ИИ). Но упрощая, основываясь только на такие предположения, каких даже нет в реальной природе - мы строим такую модель, которая дает нам понимание.
Мы выделяем какую-то особенность в процессе, например, при сворачивании о РНК мы максимально упростили и стали основываться на образование водородных связей. Взяли ряд конкретных примеров, где известно какие нуклеотиды образовывают между собой водородные связи. На этом основании и сформулировали функцию полезности.
Сравнительно как до этого поступали другие - они не разбивали задачу на части, и применяли всякие сложные энергетические оценки, затем случайность использовали для поворотов и отбирали состояния с более минимальными оценками энергии. И что ? При таком подходе до сих пор нету результата даже на малых РНК.
Так как статистический или стохастический подход - ни годится для сложных задач, а ведь подавляющие большинство методов ИИ работают исходя из таких посылов. Область применения случайности - это равномерно поле состояний, а если у нас сложное поле, тут мы будет равномерно получать все время не правильные результаты. А так как перебрать все невозможно, то мы никогда не приблизимся к получению нужных состояний.
А мозг в этом отношении работает совсем по другому принципу. Он должен найти целенаправленность и согласованность действий.
Он делает полный перебор, но специальным образом ограниченной части. Да, да полный перебор, но ключевым тут остается как выделить то, что нужно перебрать. Конечно же это делается на частном примере. И основываясь на уже имеющиеся природные элементы в качестве функции переходов.
Проблема у этого такова, что ориентируясь на функцию полезности, последовательный перебор по функции переходов часто попадает в локальный минимум - и все приплыли, улучшения не получаем, решения не находим и двигаться не можем ...
Существуют два пути выхода из этого. Можем начать искать корреляции нескольких переходов (действий), чтобы получить лучшие решение. Но тут проблематично т.к. число возможных вариантов существенно возрастает.
Другой вариант - нужно уточнять функцию переходов. И вот это как раз то, что ни один метод ИИ, после формализации сделать не может. Это делает сейчас человек и ему нужно добыть информацию об структуре РНК, используя которую, можно уточнить функцию переходов.
И пока этого не будет делать автомат - можно об ИИ забыть.
А делать это он должен стремясь к следующему условию - назовем его достижение гладкости переходов. По сути это близко к тому, чтобы не марковскую задачу свести к марковости.
Надо добиться, чтобы не было зацикленности алгоритма, чтобы он хоть по чуть чуть но двигался по функции полезности. Или что тоже самое устранить локальные минимум, точнее сгладить их.
Вот это и есть интеллектуальный труд.
И если в природе нет таких условий, которые это обеспечат - их надо придумать, даже во вред точности моделирования. Так как затем когда алгоритм начнет движение, результат можно будет подвергнуть обратной дискретизации, но уже достигнув окрестностей глобального минимума.
Итак первое условие: инвариантность сходимости задачи - обеспечивает нам повторяемость результатов в мысленном (и не только) эксперименте, приближает нас к такому решению которое не зависит от среды.
второе условие: достижение гладкости переходов - обеспечивает нам устранения сложности реальной природы, и ориентирование в ней путем её огрубления.
В целом это дает понимание происходящего процесса, и позволяет поставить задачу, решая которую уже можно делать выводы на сколько пригодна функция полезности (а сейчас ни один алгоритм ИИ ее не корректирует, т.к. не может - нету вливания человеческой интеллектуальности)
Натурное и виртуальное моделирование
правитьАвтор: NewPoisk.narod.ru
Пример: материальность мысли по своей сути является натурным моделированием реальности, в отличие от математического моделирования. Летающая модель самолета — типичный пример натурного моделирования. Во всех режимах полета она ведет себя неотличимо от настоящего самолета, автоматически учитывая тысячи неизвестных ее изготовителю свойств (причем не только фундаментального характера!). В то время как правдоподобие виртуальных моделей (хорошо всем известных по компьютерным играм жанра симуляторов) всегда ограничено знаниями их авторов.
Все верно. Но нужно рассматривать процесс между натурным моделированием и виртуальными моделями. Натурное моделирование НЕ ДАЕТ человеку собственно модели. Оно лишь дает некоторые отдельные знания/предположения (в некоторой степени проверенные экспериментом). И все. Целостной модели это не дает.
И наоборот эти знания (полученные при натурном моделировании) как раз используются ИНТЕЛЛЕКТОМ, чтобы построить виртуальную модель. Именно поэтому вы и говорите "виртуальные модели всегда ограничено знаниями их авторов", а в натурных моделях вообще нет знаний авторов (точнее натурная модель ограничена знаниями конструкторов, не обладающими пониманием того, что собственно они делают). А значит и понимания нету. А интеллект есть только там где возникает понимание.
Таким образом, это взаимодополняющие процессы человеческой деятельности, не от одного мы не можем отказаться ... и только вместе, на каждой итерации взаимодействия мы получаем все новые знания для более точной постановки задачи (не путать с формализацией)
А затем при создании виртуальной модели, все меняется местами: эта модель начинает предсказывать результаты натурной модели. И тем самым мы получили интеллектуальную функцию предсказания будущего. Что на бытовом уровне происходит видимо проще, но подсознательно происходят все те же психические процессы, просто на сложных задачах это хоть как-то отображается в сознание и мы можем зафиксировать.
Ссылки
править- обсуждение так же здесь [1]