Смекни!
smekni.com

Зв'язок нейронних мереж з штучним інтелектом (стр. 2 из 7)

Експертна система: Щоб зупинити рух автомобіля.

Клієнт: Адже автомобіль не завжди рухається, коли ручне гальмо вимкнене?

Експертна система: Це залежить від горизонтальності поверхні.

Клієнт: Що дає енергію, що примушує колеса автомобіля обертатися?

Експертна система: Двигун.

Клієнт: Таким чином, якщо двигун працює, то колеса обертатимуться?

Експертна система: Якщо зчеплення включене.

Клієнт: Що трапиться, якщо двигун працюватиме з включеним ручним гальмом і включеним зчепленням?

Експертна система: Передбачається, що ви спочатку повинні відключити ручне гальмо"

Клієнт: Так, але припустимо, що я цього не зробив.

Експертна система:???

Відповідь "Не знаю" на останнє питання є прийнятним, якщо ви не експерт по автомобілях, але виглядає смішним, якщо уявити, що ви експерт. Той, хто ніколи не водив автомобіль, але маючи добре знання фізики і механічних пристроїв, може дати цілком розумну відповідь. Але знання фізики вимагає виходу експертної системи з вузької області автомобілів і веде до необхідності об’єднання ширшої області знань. Розуміння того, скільки потрібно знань для адекватного виконання відповідного завдання, являється проблемою розробника експертної системи: достатньо важко гарантувати правильну роботу комп'ютерної програми, що допускає обмежене число типів введення, але тяжкість перевірки правильності роботи зростає багато разів, коли на етапі проектування потенційне введення не може бути передбачене взагалі. Існують вражаючі експертні системи, що виконують величезну роботу і, як повідомляється, значно зменшують витрати компаній. Але зажадайте від експертної системи дуже багато - і вона незабаром виявиться слабкою, оскільки знання її обмежені.

У фахівців, що створюють експертні системи, виникають і інші труднощі. Розглянемо твердження, подібне наступному:

Відчуття було просто жахливим, це щастя залишитися після такого в живих, адже всі чоловіки в літаку загинули.

Чи є розповідач жінкою? Чи знаходилася вона в літаку?

Я не сумніваюся, що вони покладуть всю провину на жінку-пілота.

Тепер здається розумним припущення, що розповідачем є жінка-пілот і що вона була єдиною жінкою на борту літака, який попав в аварію.

Ми зіткнулися на підході до аеродрому. Я була в одномісному літаку, і я катапультувалася.

Остання інформація примушує нас переглянути попередні виводи. Побудова інтелектуального агента, здатного робити серію висновків, є тільки однією з безлічі проблем, що стоять перед розробниками інтелектуальних систем.

1.3 Навчання

Виживання будь-якої тварини залежить від здатності адаптуватися до зміни ситуації на основі наявного досвіду. Ми покладаємося на те, що наші домашні тварини здібні до навчання такою мірою, що ми зможемо навчити їх поводитися соціально прийнятним чином.

Більшість комп'ютерів програмуються для виконання певних завдань. Інженер-програміст представляє опис проблеми у вигляді алгоритму, а потім реалізує цей алгоритм на якій-небудь мові програмування високого рівня. Зв'язок проблеми з реалізацією опирається на знання і уявлення.

Наприклад, можна заявити, що площа круга рівна πrІ де πє числовою константою, а r - радіусом. Розуміння цього опису спирається на знання того, що радіусом є довжина відрізка прямої, що сполучає центр круга з крапкою на колі, що таке коло і так далі. Запропонована вище формула виражає знання, але використання цієї формули теж вимагає знань: наприклад, користувач повинен знати, що площа виражатиметься в одиницях, що є квадратом одиниць, що використовуються для вимірювання радіусу.

Ось приклад програми на мові С для обчислення площі круга за вказаною формулою:

floatareaOfCircle (floatradius)

{

float pi = 3.1415927;

return (pi*radius*radius);

}

Внутрішньо комп'ютер представляє число πв двійковому форматі, але це не має ніякого значення для програміста, так само як і реалізація саме на мові С не має ніякого значення для користувача програми, оскільки розуміння даного алгоритму залежить тільки від достатньо хорошого знання англійської мови і деяких математичних результатів.

Ключем до програмування є здатність виразити проблему у вигляді алгоритму і вибрати відповідне уявлення. Але що можна сказати про знання, яке не може бути виражене явно? Неможливість явно виразити рішення означає, що програма не може бути отримана традиційними методами. Але можна створити програму автоматично в результаті процесу навчання. Машини можуть програмуватися так само, як відбувається навчання собаки виконанню команди. Команда служить введенням, правильна відповідь винагороджується, і сигнал повторюється до тих пір, поки собака не адаптує свою поведінку відповідно довиконання необхідного завдання.

2. Гіпотеза символьних систем

Традиційний штучний інтелект спирається на гіпотезу символьних систем. Ця гіпотеза в спрощеному формулюванні стверджує, що реалізувавши величезну структуру взаємозв'язаних символів, що представляють реальні знання, і складний набір символьних процесів, які дозволяють оперувати структурами з метою створення нових структур, можна створити машину, що працюватиме так само добре, як людина. Коротко кажучи, гіпотеза стверджує, що комп'ютер можна запрограмувати так, що він буде думати.

Ми розглянемо декілька простих модельних завдань, що дозволяють зрозуміти, що таке символьна обробка. Ми не обговорюватимемо тут правильність вказаної гіпотези, оскільки хотіли б тільки з'ясувати, що таке символьні процеси. Необхідно також мати на увазі, що якщо на базі цієї гіпотези може бути побудована мисляча машина, то така машина повинна концентрувати колосальні об'єми знань, об'єднаних у величезний масив складних процесів. В цьому розділі ми розглянемо природу обчислень. По практичних навиках майже всі експерименти з штучним інтелектом мали малі масштаби, але якщо створення машини, подібної до людини, можливо, масштаби цих експериментів повинні істотно змінитися. Рух в цьому напрямі вже почався.

2.1 Пошук

Вирішення головоломок, побудова планів, діагностика захворювань і так далі - все це проблеми, які можна вирішити в результаті процесу пошуку. Розглянемо планування автобусної подорожі по Англії з півдня на північ. У вашому розпорядженні є розклад руху автобусів, а завданням є знаходження послідовності стикуючих маршрутів, які дозволять вам добратися з Саутгемптона до Ноттінгема (передбачається, що прямого сполучення між цими містами немає). Можна почати з Саутгемптона, як пункту відправлення, проглянути список пунктів призначення маршрутів, вибрати деякий пункт призначення і перейти на ту сторінку розкладу руху, яка відповідає вибраному пункту призначення. Пункт призначення тепер стає вашим уявним пунктом відправлення, і ви вибираєте інший пункт призначення. Ви продовжуєте цю процедуру доти, поки не побачите назва пункту відправлення, для якого пунктом призначення буде вказаний Ноттінгем. Немає нічого простішого! На практиці, проте, ви скористаєтеся знаннями географії, і розглядатимете тільки ті проміжні пункти призначення, які лежать в напрямі, що наближає вас до кінцевого пункту призначення, Ноттінгему. Ви можете також використовувати декілька закладок, щоб, знайшовши деякий маршрут з Саутгемптона в пункт А, перейти до відповідної сторінки розкладу Ноттінгему і подивитися, чи є маршрут з Ноттінгема в пункт А. І ви продовжуватимете перескакувати так з однієї сторінки на іншу в надії знайти пункт, де ваш маршрут вперед і зворотний маршрут перетнуться.

Були розроблені комп'ютерні алгоритми, що імітують такий тип пошуку. Давайте розглянемо одну просту головоломку, подібну до "гри в п'ятнадцять", але з восьми елементів. Головоломка є ґратами з дев'ятьма осередками, де вісім осередків зайнято пронумерованими плитками. Незайнятий осередок можна інтерпретувати як порожню плитку: відповідної плитки немає, але це виявляється корисною ідеєю, що дозволяє спростити опис проблеми. Плитки розміщуються випадковим чином, а метою є розміщення плиток в порядку номерів зліва направо і зверху вниз. Завдання ставиться нудне і трохи трудомістке: ви зав'язуєте другу очі і даєте йому головоломку для того, щоб він пересував плитки. Ваш друг пересуває одну плитку, а ви перевіряєте результат. Плитки не розміщуються в потрібному порядку, тому ви просите друга пересунути ще одну плитку. Яку плитку рухати, вирішує ваш друг, а не ви. Після чергового пересування ви виконуєте чергову перевірку, і цей процес продовжується до тих пір, поки плитки не будуть розміщені в належному порядку.

Плитки перемішуються знову у випадковому порядку. Цього разу ви ведете запис виконаних переміщень, щоб ваш друг не повторював одні і ті ж послідовності переміщень з одних і тих же комбінацій плиток. Ваш друг виконує пошук всліпу.

На кожній стадії пошуку для переміщення існує певне число можливостей. Щоб спростити опис, уявимо собі, що пересувається порожня плитка і що вона може рухатися вгору, вниз, управо або вліво, залежно від того, в якому місці ґрат вона знаходиться. Єдиною формою допомоги, яку вам дозволяється надати вашому другу, є сигнал завершення виконання завдання і недопущення повторення послідовності переміщень. Кожна комбінація плиток називається станом, так що завданням є знаходження цільового стану - того, в якому всі плитки виявляються в потрібному порядку. Можна розглянути випадковий початковий стан і з'ясувати, які нові багатства можуть бути з нього отримані за допомогою переміщення тієї плитки. З кожного нового стану процес можна продовжувати далі. Відповідна ідея представлена на мал.1. Показані не всі, а тільки деякі стани. Від кожного стану відходить декілька ліній, кожна з яких відповідає певному переміщенню порожньої плитки. В результаті такого переміщення виникає новий стан ґрат. Якщо продовжити побудову ілюстрації далі, ми побачимо, що в декількох місцях ілюстрації будуть розміщені стани, відповідні кінцевій меті. В результаті руху по маршруту переміщень від початкового стану (кореня) до будь-якого з цільових станів виявляється послідовність переміщень, що дає рішення. Одні послідовності можуть при цьому бути коротшими за інші.