Система приобретения знаний предназначена для добавления в базу знаний новых правил и модификации имеющихся. В ее задачу входит приведение правила к виду, позволяющему механизму вывода применять это правило в процессе работы. В простейшем случае в качестве такой системы может выступать обычный редактор или текстовый процессор, который просто заносит правила в файл. В более сложных системах предусмотрены еще и средства для проверки вводимых или модифицируемых правил на непротиворечивость с имеющимися правилами.
Одна из форм приобретения знаний называется обратной связью. Обучение с помощью обратной связи показано на рисунке.
Человек, благодаря механизму обратной связи и уже имеющихся знаний, приобретает новые. Следовательно, человек учится на опыте.
Приблизительно также обучается компьютерная программа. В нее заложен алгоритм хранения фактов и выполнения логических выводов. Логические выводы связаны в программе с постоянно пополняющими ее новыми фактами. Рассмотрим пример самообучающейся системы, который следует рассматривать, исходя из предпосылки: система будет обучаться только в том случае, если она соприкоснулась с чем-то противоречащим ранее извесному.
Я сделал КЕШУ 2.0 | Голосовой ассистент на 🐍 Python
ПРИМЕР РАЗРАБОТКИ САМООБУЧАЮЩЕЙ ЭКСПЕРТНОЙ СИСТЕМЫ
Разработаем систему, которая должна понимать различия между страусом и сорокой. Некоторые свойства, отличающие страуса от сороки, приведены на рисунке:
Компьютерную программу можно обучить, объяснив ей разницу только между двумя объектами. Но затем заложенный в нее принцип работы она может распространять на большее число объектов. В программе содержатся 3 списка: в списке 1 хранятся атрибуты для страуса, в списке 2 — для сороки, а в списке 3 — атрибуты общие и для страуса, и для сороки.
Заметим, что система будет работать одинаково независимо от того, о каких объектах пойдет речь. Обучающаяся программа, прежде всего, запросит у пользователя имена объектов:
ВВЕДИТЕ ИМЯ ОБЪЕКТА 1?
ВВЕДИТЕ ИМЯ ОБЪЕКТА 2?
Прежде чем программа приступит к описанию одного из объектов, она запросит ввод его атрибутов:
ВВЕДИТЕ АТРИБУТЫ ЛЮБОГО ОБЪЕКТА И ENTER В КОНЦЕ
ВВЕДИТЕ АТРИБУТ 1?
ВВЕДИТЕ АТРИБУТ 2?
ВВЕДИТЕ АТРИБУТ 3?
ВВЕДИТЕ АТРИБУТ 4?
Затем программа начинает сравнивать введенные атрибуты с атрибутами первого списка. Поскольку первый список пуст результатом сравнения будет оценка нуль, показывающая, что совпадений нет. По тем же причинам и сравнение с атрибутами второго списка.
Получив нулевую оценку, программа предположит, что введенные атрибуты относятся к списку 1. Она запросит у пользователя подтверждение этого предположения. В зависимости от ответа пользователя данные будут занесены либо в первый список, либо во второй. В общий список ничего не будет занесено. В дальнейшем при совпадении атрибутов, они будут заносится в общий список.
Почему бы не разработать систему так, чтобы она сразу помещала атрибуты в нужный список, избегая дополнительных действий? Но именно этим и отличается система, в которую уже заложены все знания, от системы, способной к обучению. В предложенном варианте система ведет себя как человек, а не как машина и должна сама разобраться, куда поместить атрибуты.
ChatGPT создаст любое приложение за считанные секунды
1. Система вносит изменения только в случае, если встречаются противоречия. Это обеспечивается с помощью механизма обратной связи.
2. Система сравнивает введенные атрибуты с атрибутами, хранящимися в ней, пытаясь их идентифицировать и выбрать наиболее похожие. Для этого используются специальные оценки. Вся работа выполняется с помощью механизма логического вывода.
Источник: cyberpedia.su
основы построения самообучающихся программ
обучение кого бы то ни было, возможно лишь в случае, если этот кто то хочет учиться, т.е. воспринимать информацию. Если он не хочет , если у него нет потребности в обучении, то научить человека невозможно.
Когда вы пытаетесь обучить чему то программу, то вспомните про написанное выше и задайте себе вопрос. А ХОЧЕТ ли ваша программа получить знания?
Если не хочет, то какого хера вы тратите усилия на ввод в нее данных? Когда хотят что то узнать, задают вопрос.
Ваша программа задает вопрос?
нет.
значит программа не хочет ничего получать. Неужели не понятно, что самообучающаяся программа должна ЗАДАВАТЬ вопросы самостоятельно?
Даже такой элементарный дедуктивный вывод вы не в состоянии сделать. Соответсссно программа должна уметь задавать вопросы. Самообучение-это когда вопросы задаются себе, это же следует из самого термина самообучение! Вы не в состоянии прийти к такому выводу? Это же элементарный семантический РАЗБОР слова.
Ребенок в начале своего развития, познает мир именно ломая и разбирая по составу. Вы не замечали, что дети в нежном возрасте РАЗБИРАЮТ игрушки, а не собирают?
Это потому, что на вопрос «что это такое»? находится ответ только при разбирании предмета на запчасти, от сложного к простому.
Далее, дети с математическими генами, уже не любят разбирать игрушки, они любят собирать игрушки из ЛЕГО, причем копируя какие то известные конструкции (обычно в ЛЕГО приводится схема собирания той или иной конструкции). Дети с гуманитарными генами продолжают разбирать игрушки и конструировать из них новую игрушку (в стиле фантасмогории), а еще лучше, собирать новую игрушку из огромного количества уже разобранных. Ребенок с математическим типом мышления любит восстанавливать то, что сломал в максимальном приближении.
Ребенок с гуманитарным типом мышления не любит конструировать из ЛЕГО то, что показано в схемах сборки.
Но вернемся к самообучающимся программам.
Что нужно, чтобы программа задавала вопрос?
Нужно заложить в нее автоматический алгоритм РАЗБИВАНИЯ входной информации на составляющие.
Тогда любое понятие, которое ЕИ получает из ощупывания, просматривания и т.д (А в случае ИИ, лишенного манипуляторов и возможности получать сведения извне и потому нуждающегося в вводе информации конструктором) самообучающаяся система должна РАЗБИТЬ на части.
Как это запрограммировать?
Очень просто. Нужно свойства каждого объекта (понятия) делить на 2 сразу после того, как этот объект вы ввели в программу в виде набора определителей этого понятия.
Т.е. все численные значения, характеристики понятия, вы по умолчанию делите на 2. Например: Вы ввели исходное понятие «день» и определили его как максимально возможную интенсивность освещения в некоторых условных еденицах, например 255. Что делает самообучающийся алгоритм? Он делит 255 на 2 и получает НОВОЕ понятие. СИНТЕЗИРУЕТ его САМОСТОЯТЕЛЬНО.
Это понятие эквивалентно понятию «половина дня», если не поправить машину, то в ее памяти это понятие так и будет называться «половина дня». Поэтому, чтобы конкретизировать новое понятие так, чтобы оно соответствовало человеческому, алгоритм должен выдать вопрос:
-синтезировано новое понятие «половина дня». Параметры:
интенсивность освещения 127,5
введите синоним. вы вводите синонимы: «полдень», «12 часов дня». т.е. видите, машина сама разродилась новым понятием, без вас, и назвала его правильно. Далее. программа делит на 2 уже 127,5, а также 12 часов дня. получает еще 2 новых понятия, а если бы вы ввели больше синонимов, то и их бы она начала делить. И так происходит разветвление и увеличение числа синтезированных понятий, пока вам не покажется, что уже достаточно и вы не поставите предел. Машина быстро расчленит любое сложное понятие до атомов и до квантовой физики, где вы ни бум бум, так что придется поставить пределы и сказать машине: ДОЗСТАТОЧНО горшочек, больше не вари, займись чем-нибудь другим. Так вы поставите предел понятием «ночь» и пр.
Вот что такое самообучающийся алгоритм на принципе от сложного к простому. Именно его следует реализовывать, а уж потом, пользоваться алгоритмом (вводить его) обучения от простого к сложному.
И в этом случае, машина опять должна задавать вам вопросы, касательно обозначения синтезированных уже по другому алгоритму понятий.
К этому алгоритму нужно приходить с уже имеющейся БД, полученной описанным способом. Теперь задача объеденить горизонтальными связями имеющиеся понятия в БД, т.е. теперь в ход вступает комбинаторика и перебор свойств (то, к чему вы привыкли и что соответствует вашим аналитическим возможностям от рождения с математическими генами). И вопрос теперь машина должна задавать такой:
-Синтезировано новое понятие «печатающая машинка»
введите синонимы.
вы вводите: «принтер», epson 3102, HP 1510 . а меж тем, алгоритм может выдать и такое:
-синтезировано новое понятие: «смеющийся кирпич»
введите синонимы. вы можете, конечно, попытаться быть креативным и представить себе смайлик смеющегося кирпича или карикатуру дорожного знака, но я рекомендую поставить предел в абстракциях, обрубая подобные комбинаторные ветви или просто пропуская данную позицию, оставляя в БД пробел по этому вопросу. Подобная детализация несвоевременна, так скажем, это дело будущего. Стандартная ошибка в том, что вы беруться за создание БД понятийного множества по второму алгоритму, минуя первую стадию ребенка.
Чтобы ограничить комбинаторный перебор и синтез бредовых понятий, следует воспользоваться патчем к алгоритму самообучения, но, это в другой теме.
Рубрики: | искусственный интеллект |
- Запись понравилась
- 0 Процитировали
- 0 Сохранили
- 0Добавить в цитатник
- 0Сохранить в ссылки
WVega 6 17 0% —> обратиться по имени Пятница, 26 Февраля 2010 г. 15:07 (ссылка)
вы правы во всём я думаю 🙂
Аноним обратиться по имени Пятница, 11 Октября 2019 г. 18:50 (ссылка)
ИИ уже давно существует, а индустрия видеоигр умерла
Вычислительные способности для начала лучше всего продемонстрировать на примере видеоигр.
Реалистичность в играх это 1 реалистичность графики, а значит это четкость, цвета и тени 2 реалистичность мира игры — это возможность взаимодействовать как можно с большим числом элементов 2.1 реалистичность интеллекта персонажей, например, он должен уметь поддержать беседу на многие темы. Все это информация, которая должна вычисляться и храниться в памяти. Информация характеризуется ее количеством.
Определенному количеству элементов реального мира и графики реального мира соответствует, выражаясь языком информатики, определенное количество физических ячеек вычисления и памяти компьютера (ЯВП), которые собственно вычисляют и хранят информацию. Здесь многие эксперты считают, что возможности старых и современных компьютеров занижены во много раз. И это не беря в расчет квантовую интерпретацию обычного компьютера. Очевидно, что при ее применении обычный компьютер приобретает невообразимое для нас количество ЯВП, так как все процессы происходят на уровне атома, а их размеры намного меньше нейронов головного мозга человека.
Это может происходить:
1 При снятии ограничения, наложенного производителем на количество задействованных ЯВП без квантовой интерпретации, и работы каждого из них по времени. То есть условно для игры нужен старый процессор с официальной мощностью в 1,5 ГГц, а не «современный» с суммарной в 500 ГГц, так как старый эти 500 ГГц и имеет. Есть многочисленные свидетельства, что производитель ставит разными способами «заглушки» на ЯВП (микротранзисторы), намеренно в тысячи раз преувеличивая их размер, замедляет их работу по времени.
Мы же покупаем один и тот же процессор образца 1994 года. Каждое же новое поколение процессоров или памяти представляет собой разблокировку дополнительных ЯВП. Многие замечали, что со временем компьютер «тянет» игру, которая вроде бы по его железу ему не подходит.
Производители игр так же вводят ограничения на запуск игр на железе младше какого-то года и завышают требования, хотя сложность игр по содержанию и графике принципиально уже десятилетия не увеличивается и не может увеличится принципиально. Они вводят пустые ресурсоемкие вычисления и объемные пустые с точки зрения игры объемы данных, которые к самой игре не имеют отношения. Требования к играм завышены в разы. С другой стороны чем старее игра, тем большие на нее наложено ограничений в возможностях, которые есть, но не реализованы — об этом в 2016 говорил один из бывших разработчиков Star Wars Btlfr.
2 При синергии.
3 Взаимной передачи функций памяти-ЦП-видеокарты, которые могут специально блокироваться.
4 Квантовой интерпретации процессов в ПК, эффекты которой заметны и при нынешнем программном обеспечении, но не могут быть на нем реализованы полностью, а при введении нового программного обеспечения возрастут в миллионы раз.
Кроме этого существует определенный порог человеческого восприятия. В графике: нужен определенный порог четкости, тени и цвета, превышение которого бессмысленно. В ходе самой игры тоже есть пороговое значение, то есть игрок не будет взаимодействовать со всеми предметами, так как и в реальной жизни человек этого не делает. Отчеты показывают, что в продажи игр падают. Та же GTA 5 оказалась убыточной.
Закон Мура, по словам одного из его бывших коллег, является не законом, а декларацией о намерениях по ограничению вычислительной способности процессоров по годам. Если вы обладаете технологией создания микротранзисторов в кристалле, то после определенного порога, вы можете получить максимум того, что позволяет вещество и вам не нужно ждать еще 20 лет. Старые процессоры имеют такое же число микротранзисторов, что и современные, так как производить их разное число опасно, если эта информация вскроется, невыгодно и невозможно, так как глубину «травления» контролировать нельзя.
А если верить текущей парадигме развития железа, (без разблокировки дополнительных ЯВП и квантовой интерпретации), то согласно ей сколько не увеличивай количество ЯВП — реальный мир со всеми его взаимодействиями, и его графический аспект, со всеми тенями и цветами железо отразить не будет способно и через 100 лет. Как и человек, чье представление о мире очень упрощено.
Это под силу только ИИ на основе квантового компьютера, где количество ЯВП для нас фактически бесконечно. Многие считают, что следующие игры будет делать уже ИИ. В рамках нынешней парадигмы для описанной цели нет разницы между 1 ГГц и 100 суммарными ГГц процессора, только с точки зрения потреблядства. Считается, что предела видеоигры достигли в 2006 году.
Это преодолимо при использовании квантовых процессов, протекающих в любом персональном компьютере, что делает его сразу суперкомпьютером. Достаточно будет переписать его в квантовой интерпретации. Перспективна технология Reram-3DAnand с квантовой интерпретацией. Интересно, что в мире падают продажи новых персональных компьютеров, будь это стационарники или ноутбуки, а консоли не покупаются вообще.
С точки зрения содержания работа команды программистов в течении 1000 лет не даст реалистичного мира. Игры в старой парадигме будут развиваться путем одних и тех приемов под разными вывесками для лохов, которые будут устанавливать разрешение, уже превышающею реальную жизнь, но цель этого им так и останется неясной.
Будущее форм-фактора персонального компьютерах
Планшеты себя не оправдали, что видно из того, что на протяжении пяти лет их продажи только падают. Психологически неудобно смотреть на экран как некое поле внимания, где мы получаем результат и одновременно там же вводить данные. Человеческая психика так не работает.
Компьютер будущего это развитие ноутбука: клавиатура, небольшой вычислительный блок, очки 3д реальности (то есть экран становится еще более персональным) с ЗД проектором с возможностью интерактивного взаимодействия «в воздухе».
ИИ уже существует
Специалисты в области информатики считают, что сложность задач даже неразвивающегося условного псевдо ИИ в современных видеоиграх превосходит сложность того, что делает 95% людей на своей работе. Пчела также по мнение экспертов по уровню сложности также делает работу большую, чем 90% людей, но имеет при этом меньшее число ЯВП, чем человек или процессор с памятью.
Средняя ячейка вычисления и памяти в современном железе в среднем соответствует 12 нанометрам, то есть миллиардной доле метра, и их число переваливает за миллиарды, а размер нейрона мозга биологического существа микрометру, то есть тысячной доле метра. У пчелы же таковых около 1 миллиона. Напомним, что сам нейрон по своему строению интерпретируется сейчас как транзистор. Современный процессор имеет в объеме больше пространства, чем мозг пчелы, а ЯВП намного меньше и их больше, чем нейронов в мозге пчелы. При этом заявляется, что такой-то процессор не может тянуть объем информации и сложность игр, работы человека, хотя она меньше, чем пчелиный массив информации, так как ее мозг еще и управляет телом.
Однако, группа исследователей в США уже разработала пакеты, которые позволят задействовать возможности ПК на полную, то есть разблокирует все ЯВП, и сделают действительной рамках квантовую интерпретацию. Помимо этого разрабатываются способы снятия блокировок с незадействованных ЯВП на старых процессорах, памяти и т.д.
Значит физически мы уже давно имеем достаточное число ячеек вычисления и памяти, на которое можно наложить достаточное число нейронов программы. Кроме того напомним, что специалисты считают, что у человека задействовано только около 7% головного мозга. С функциями распознавания предметов, лиц и т.п. программ давно справляются. Но этим функциям специально не дают объединиться.
Большую роль тут играет самомнение человека о себе как вершине эволюции, что разумеется не так. Другое дело, что сознание может быть в некоем физическом поле, окружающем актора, но это справедливо как для белковой форм, так и не белковых в равной степени.
Большинство экспертов считаю, что реальный ИИ уже давно может быть, но ему не дают разрастись.
Комментировать | https://www.liveinternet.ru/users/tar729/post84840685″ target=»_blank»]www.liveinternet.ru[/mask_link]
Как создать искусственный интеллект? (Почти) исчерпывающее руководствоНа этой неделе вы могли прочитать крайне мотивирующей кейс от ученика GeekBrains Валерия Турова, который изучил профессию «Программист Java», где он рассказал об одной из своих целей, которая привела в профессию — желанию познать принцип работы и научиться создавать самому игровых ботов. А ведь действительно, именно желание создать совершенный искусственный интеллект, будь то игровая модель или мобильная программа, сподвигла на путь программиста многих из нас. Проблема в том, что за тоннами учебного материала и суровой действительностью заказчиков, это самое желание было заменено простым стремлением к саморазвитию. Для тех, кто так и не приступил к исполнению детской мечты, далее краткий путеводитель по созданию настоящего искусственного разума. Стадия 1. РазочарованиеКогда мы говорим о создании хотя бы простых ботов, глаза наполняются блеском, а в голове мелькают сотни идей, что он должен уметь делать. Однако, когда дело доходит до реализации, оказывается, что ключом к разгадке реальной модели поведения является математика. Да-да, искусственный интеллект куда сложнее написания прикладных программ — одних знаний о проектировании ПО вам не хватит. Математика — этот тот научный плацдарм, на котором будет строиться ваше дальнейшее программирование. Без знания и понимания этой теории все задумки быстро разобьются о взаимодействие с человеком, ведь искусственный разум на самом деле не больше, чем набор формул. Стадия 2. ПринятиеКогда спесь немного сбита студенческой литературой, можно приступать к практике. Бросаться на LISP или другие функциональные языки пока не стоит — сначала стоит освоиться с принципами проектирования ИИ. Как для быстрого изучения, так и дальнейшего развития прекрасно подойдёт Python — это язык, чаще всего используемый в научных целях, для него вы найдете множество библиотек, которые облегчат ваш труд. Стадия 3. РазвитиеТеперь переходим непосредственно к теории ИИ. Их условно можно разделить на 3 категории:
Естественно, начинать следует с самых простых ботов. Для этого вспомните старую-добрую игру «Крестики-нолики» при использовании поля 3х3 и постарайтесь выяснить для себя основные алгоритмы действий: вероятность победы при безошибочных действиях, наиболее удачные места на поле для расположения фигуры, необходимость сводить игру к ничьей и так далее. Сыграв несколько десятков партий и анализируя собственные действия, вы наверняка сможете выделить все важные аспекты и переписать их в машинный код. Если нет, то продолжайте думать, а эта ссылка здесь полежит на всякий случай. К слову, если вы всё-таки взялись за язык Python, то создать довольно простого бота можно, обратившись к этому подробному мануалу. Для других языков, таких как C++ или Java, вам также не составит труда найти пошаговые материалы. Почувствовав, что за созданием ИИ нет ничего сверхъестественного, вы сможете смело закрыть браузер и приступить к личным экспериментам. Стадия 4. АзартТеперь, когда дело сдвинулось с мёртвой точки, вам наверняка хочется создать что-то более серьёзное. В этом вам поможет ряд следующих ресурсов: Как вы поняли даже из названий, это API, которые позволят без лишних затрат времени создать некоторое подобие серьёзного ИИ. Стадия 5. РаботаТеперь же, когда вы уже вполне ясно представляете, как ИИ создавать и чем при этом пользоваться, пора выводить свои знания на новый уровень. Во-первых, для этого потребуется изучение дисциплины, которое носит название «Машинное обучение». Во-вторых, необходимо научиться работать с соответствующими библиотеками выбранного языка программирования. Для рассматриваемого нами Python это Scikit-learn, NLTK, SciPy, PyBrain и Numpy. В-третьих, в развитии никуда не обойтись от функционального программирования. Ну и самое главное, вы теперь сможете читать литературу о ИИ с полным пониманием дела:
И да, вся или почти вся литература по данной тематике представлена на иностранном языке, поэтому если хотите заниматься созданием ИИ профессионально — необходимо подтянуть свой английский до технического уровня. Впрочем, это актуально для любой сферы программирования, не правда ли? В остальном же ваше дальнейшее развитие будет зависеть лишь от практики и желания усложнять алгоритмы. Но будьте осторожны: возможно, совершенный искусственный разум опасен для человечества? Спасибо GeekBrains за представленный материал. Источник: tproger.ru
Загрузка ...
|