Проблемы создания ИИ - взгляд дилетанта.
В чём основная проблема создания ИИ?
В том, что неизвестно откуда и с чего начинать. Но мы всё же попробуем что-нибудь придумать.
Давайте за основу возьмём новорождённого ребёнка.
Как дети, не имеющие элементарных понятий о реальности начинают аккумулировать информационные потоки извне?
Я считаю, что происходит глобальное строение ассоциативных связей между всеми обнаруженными объектами.
Например, ребёнок видит какой либо объект и у него в памяти откладывается вся доступная ему информация об объекте - размер, форма, цвет, запах, звук и подобные ярко выраженные черты (поэтому, кстати, до того как научиться говорить, дети мыслят картинками). Далее же, когда в поле зрения ребёнка попадает другой объект имеющий похожие или отличные от первоначального объекта особенности, образуется такая цепочка - все похожие и различные характеристики раскладываются по "полочкам" и между ними образуется ассоциативная связь. То есть, если он увидит что-то такого же цвета, как уже виданный прежде объект, он сразу вспомнит все прошлые объекты имеющий такой цвет и тут уже начнётся классификация нового объекта - соответствует ли он по всем параметрам или же только по некоторым (только цвет, например). Если же новый объект соответствует только по цвету, то у ребёнка в уме зародится новое знание - не все объекты имеющие одинаковый цвет идентичны друг другу.
Исходя из выше перечисленного можно сделать вывод, что если написать программу, которая просто будет строить связи между замеченными ею объектами, то это будет уже зачаток искусственного интеллекта (и тут многие вспоминают Гугл, создавший программу по вычислению и отделению от фона котят на роликах в youtube), который можно развивать.
Вообразим себе такую ситуацию - нам нужно узнать у программы где компьютер. Для этого надо объяснить программе, что такое "где" и "компьютер". Тут есть два варианта - понимание вопросов можно объяснить программе программно (грубо говоря - вшить основные механизмы), чтобы при вопрошающем где активировалась функция поиска. Или же вручную, что в разы геморойнее (намного дольше).
Как я себе это представляю - перед сообщением программе местонахождения какого-либо объекта задавать вопрос "Где нужный нам объект ?" и самим же на него отвечать.
Например: "Где стул? Стул здесь/там". Таким образом, вопрошающее "Где" станет как бы вступлением, означающем последующее определение местонахождения объекта, и когда программа распознает это вступление, у неё тут же подключатся все ассоциации с этим вступлением. Соответственно и связь "вопрос-ответ". Потом, когда будет подключена связь "вопрос-ответ", подключатся все варианты ответов (на данный момент это "здесь" и "там" (к этому моменту в программе уже должна быть проведена ассоциация своего местонахождения с понятием "здесь")). Далее, когда последует наименование объекта, в программе подключится вся информация связанная с этим объектом. После этого произойдёт поиск совпадений по всем результатам ассоциативного поиска ("вопрос-ответ" --> "здесь-там" --> объект). Таким образом программа выдаст только ту информацию, которая содержит все эти метки.
Если же ограничить ввод информации в программу только графическими и звуковыми данными и сделать поиск информации в программе мультимедийным (чтобы, когда программа будет сканировать свою память на наличие какого либо видеофайла, содержащего объект (дружно вспоминаем Гугл с котятами) и последующем его обнаружении она воспроизводила этот файл). В этом случае, задав программе вопрос, мы получим соответствующий графический ответ.
Но всё это были лишь элементарные понятия. Чтобы такая программа смогла хоть как-то имитировать адекватную реакцию разумного существа на внешние раздражители, её надо будет обучать годами (хотя, принимая во внимания возможности современной вычислительной техники, я, скорее всего, сильно утрирую), как настоящего ребёнка. А ввиду того, что любая наша вычислительная технология уступает мозгу любого не примитивного живого существа, обучать такую программу будет намного труднее (возможно, просто дольше) чем обычного ребёнка, но есть и один мизерный плюсик - за этой программой не надо будет ухаживать и заботиться как о живом существе потому, что не смотря на всё, это будет всё тот же файл, с расширением ".exe" (в случае написания программы под Windows).
Всем спасибо за внимание. Прошу не забывать, что это всего лишь IMHO дилетанта.
В том, что неизвестно откуда и с чего начинать. Но мы всё же попробуем что-нибудь придумать.
Давайте за основу возьмём новорождённого ребёнка.
Как дети, не имеющие элементарных понятий о реальности начинают аккумулировать информационные потоки извне?
Я считаю, что происходит глобальное строение ассоциативных связей между всеми обнаруженными объектами.
Например, ребёнок видит какой либо объект и у него в памяти откладывается вся доступная ему информация об объекте - размер, форма, цвет, запах, звук и подобные ярко выраженные черты (поэтому, кстати, до того как научиться говорить, дети мыслят картинками). Далее же, когда в поле зрения ребёнка попадает другой объект имеющий похожие или отличные от первоначального объекта особенности, образуется такая цепочка - все похожие и различные характеристики раскладываются по "полочкам" и между ними образуется ассоциативная связь. То есть, если он увидит что-то такого же цвета, как уже виданный прежде объект, он сразу вспомнит все прошлые объекты имеющий такой цвет и тут уже начнётся классификация нового объекта - соответствует ли он по всем параметрам или же только по некоторым (только цвет, например). Если же новый объект соответствует только по цвету, то у ребёнка в уме зародится новое знание - не все объекты имеющие одинаковый цвет идентичны друг другу.
Исходя из выше перечисленного можно сделать вывод, что если написать программу, которая просто будет строить связи между замеченными ею объектами, то это будет уже зачаток искусственного интеллекта (и тут многие вспоминают Гугл, создавший программу по вычислению и отделению от фона котят на роликах в youtube), который можно развивать.
Вообразим себе такую ситуацию - нам нужно узнать у программы где компьютер. Для этого надо объяснить программе, что такое "где" и "компьютер". Тут есть два варианта - понимание вопросов можно объяснить программе программно (грубо говоря - вшить основные механизмы), чтобы при вопрошающем где активировалась функция поиска. Или же вручную, что в разы геморойнее (намного дольше).
Как я себе это представляю - перед сообщением программе местонахождения какого-либо объекта задавать вопрос "Где нужный нам объект ?" и самим же на него отвечать.
Например: "Где стул? Стул здесь/там". Таким образом, вопрошающее "Где" станет как бы вступлением, означающем последующее определение местонахождения объекта, и когда программа распознает это вступление, у неё тут же подключатся все ассоциации с этим вступлением. Соответственно и связь "вопрос-ответ". Потом, когда будет подключена связь "вопрос-ответ", подключатся все варианты ответов (на данный момент это "здесь" и "там" (к этому моменту в программе уже должна быть проведена ассоциация своего местонахождения с понятием "здесь")). Далее, когда последует наименование объекта, в программе подключится вся информация связанная с этим объектом. После этого произойдёт поиск совпадений по всем результатам ассоциативного поиска ("вопрос-ответ" --> "здесь-там" --> объект). Таким образом программа выдаст только ту информацию, которая содержит все эти метки.
Если же ограничить ввод информации в программу только графическими и звуковыми данными и сделать поиск информации в программе мультимедийным (чтобы, когда программа будет сканировать свою память на наличие какого либо видеофайла, содержащего объект (дружно вспоминаем Гугл с котятами) и последующем его обнаружении она воспроизводила этот файл). В этом случае, задав программе вопрос, мы получим соответствующий графический ответ.
Но всё это были лишь элементарные понятия. Чтобы такая программа смогла хоть как-то имитировать адекватную реакцию разумного существа на внешние раздражители, её надо будет обучать годами (хотя, принимая во внимания возможности современной вычислительной техники, я, скорее всего, сильно утрирую), как настоящего ребёнка. А ввиду того, что любая наша вычислительная технология уступает мозгу любого не примитивного живого существа, обучать такую программу будет намного труднее (возможно, просто дольше) чем обычного ребёнка, но есть и один мизерный плюсик - за этой программой не надо будет ухаживать и заботиться как о живом существе потому, что не смотря на всё, это будет всё тот же файл, с расширением ".exe" (в случае написания программы под Windows).
Всем спасибо за внимание. Прошу не забывать, что это всего лишь IMHO дилетанта.
Я был поражен тому, что жил он безумное количество лет назад, но ему в голову пришла мысль классификации понятий, о которых вы пишете. Это что то вроде начал алгоритмизации, первых шагов к программированию, он довольно однозначно формализовал все понятия, буквально инструкция к описанию ИИ.
UPD: Но за то что затронул эту тему +.