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