Кафедра комп’ютерних технологій
Індивідуальне завдання
з дисципліни: "Нейронні мережі та еволюційні технології"
Тема: "Зв'язок нейронних мереж з штучним інтелектом"
Коломия 2009
Зміст
3. Представлення за допомогою символів
5. Символьні зв'язки нейронних мереж
Вступ
Нейронні мережі можуть застосовуватися при вирішенні різних технічних проблем. Архітектура штучних нейронних мереж не може порівнятися з людським мозком по складності і розмірах, але саме такі мережі складають абстрактні моделі мозку. Тому відразу ж виникає питання: чи можна за допомогою штучних мереж реалізувати "штучний інтелект"? Штучний інтелект є однією з найважливіших дисциплін в області інформатики, що має глибокі зв'язки з математикою, психологією і навіть філософією. Ця дисципліна була визнана самостійною в 1950-х, і з тих пір на дослідження побудови інтелектуальних машин було витрачено немало часу і грошей. Мета вивчення штучного інтелекту в широкому сенсі може бути описана як створення машин, що виконують завдання, з якими добре справляється людина, але які нелегко запрограмувати з використанням традиційного підходу до обчислень. Завдання, які добре виконують люди, але які важко для запрограмувати, часто виявляються цілком поєднаними. Наприклад, ходіння по кімнаті або підтримка розмови не вимагає таких розумових зусиль, як складання чисел. Але створення машин, що виконують подібні завдання, виявилося для інженерів проблемою великої складності. Той факт, що відносно просто побудувати машину, здатну скласти університетський іспит, але не машину, здатну виконати прибирання будинку, робить виклик нашим традиційним уявленням про те, що означає бути інтелектуалом.
Дослідники штучного інтелекту зосередилися головним чином на тому, що зазвичай називають символьною парадигмою, а також "традиційним штучним інтелектом" або "класичним штучним інтелектом" (а іноді і "старомодним штучним інтелектом"). Тепер існує нова форма штучного інтелекту, заснована на коннекціях (тобто нейронних мережах) і еволюційних моделях (тобто системах, що існують в деякому середовищі і адаптуються до неї на основі природного відбору). Новий штучний інтелект не заперечує традиційний штучний інтелект, і вчені вважають, що не заперечуватиме ніколи. Насправді для створення справді інтелектуальних машин може бути потрібний радикальний переворот в наших уявленнях про них. Можна заперечити, що новий штучний інтелект є тільки новою формою традиційного штучного інтелекту, і підставою для такого заперечення є той факт, що до цих пір на нижчому рівні ми використовуємо все ті ж обчислювальні пристрої (символьні системи насправді реалізуються на послідовних машинах, так як і більшість моделей нейронних мереж). Штучний інтелект все ще обіцяє те, що обіцялося ще в початку його розвитку, але поки що про важливість штучного інтелекту ми повинні говорити з оптимізмом. Врешті-решт, наші запити до якості роботи технічних пристроїв весь час ростуть, тому на будь-якому етапі розробки таких пристроїв завжди ставиться завдання створення машини з вищим рівнем інтелекту. Поза сумнівом, створюватимуться більш інтелектуальні машини, але ми завжди цікавитимемося можливістю створення андроїда, здатного вести з нами справжній діалог. І навіть коли такий андроїд буде побудований, філософи все одно не перестануть сперечатися про те, чи володіє цей андроїд інтелектом, який можна порівняти з нашим. Щоб розвивати новий штучний інтелект, нам потрібно зрозуміти дещо з традиційного штучного інтелекту і, можливо, звести обидві ці парадигми разом "під прапором" загального штучного інтелекту. У цій роботі ми обговоримо природу інтелекту і розробки в області традиційного штучного інтелекту.
1. Природа інтелекту
Інтелект є концепцією, яка не піддається строгому визначенню. Людський інтелект складається з безлічі компонентів, серед яких здібність до навчання, органи чуття (наприклад, зір і дотик), що дозволяють взаємодіяти із зовнішнім середовищем, і об'єм знань, який взагалі не піддається оцінці. Навіть наші домашні тварини можуть вважатися інтелектуальними: вони мають складні системи обробки інформації, які дають їм можливість розпізнавати людей і виконувати завдання, що вимагають чималої майстерності.
Інтелектуальна поведінка не є винятковою прерогативою центрального процесора (людського мозку), що діє в ізоляції, - робота центрального процесора залежить від додаткових приладів, що сприймають, заздалегідь оброблюючи і таких, які структурують дані, що поступають. Інтелектуальні агенти можуть бути побудовані таким чином, що їм доведеться діяти на повністю віртуальному світі, але цим агентам необхідно буде вказувати і розвивати бажання і цілі, щоб проявляти себе інтелектуально. Дослідження зазвичай концентруються на якомусь окремому і вузькому аспекті інтелекту, і з практичних міркувань сенсорні канали і первинна обробка даних часто замінюються припущенням про наявність відповідної структури даних. Традиційний штучний інтелект примушував нас вірити, що теоретично можливо (але практично все ще немає) створити мозок - втілення штучного інтелекту - слід лише створити правильний алгоритм, і мозок тут як тут. В рамках традиційного штучного інтелекту вивчення інтелектуальних, систем концентрувалося навколо декількох ключових питань - це представлення даних, здатність міркувати і здатність системи автоматично адаптуватися до зміни умов (іншими словами, здатність навчатися).
1.1 Знання і уявлення
Інтелектуальна система втілює знання. Коли ми говоримо про знання, це можуть бути фактичні знання, необхідні наприклад, для участі у вікторині, або практичні знання, потрібні при заміні автомобільного колеса. Це можуть бути знання, названі навиками, необхідні, наприклад, при їзді на велосипеді, або ж це можуть бути мільйони бітів інформації, яку ми називаємо здоровим глуздом, що дозволяє, наприклад, не пролити воду з чашки при питті. Представлення знання може бути явним або неявним.
Явне знання може бути встановлене і інспектоване, наприклад, у формі фактів.
Яблуко є плід. Кіт є тварина.
Це можуть бути також і правила.
Якщо акумулятор розрядився, то автомобіль не заведеться.
Якщо процентні ставки ростуть, то ціна кредиту піднімається.
Неявне знання передати непросто. Наприклад, дитині можна роз'яснити загальні принципи їзди на велосипеді, включаючи необхідність обертати педалі і направляти переднє колесо у бік руху, але процедура не може бути записана так, щоб дитина могла її прочитати, а потім використовувати для того, щоб поїхати на велосипеді. Насправді знання того, як їхати на велосипеді, отримується в результаті проб і помилок.
Традиційний штучний інтелект складається з обробки символів, а знання представляються за допомогою символьних структур. Представлення знання має декілька форм і різних рівнів.
Ось приклади уявлень: знання, виражені у вигляді правил; графік зміни зростання дитини; карта лондонського метро. Рівень уявлення залежить від рівня деталізації інформації, яку необхідно передати. Наприклад, карта лондонського метро є абстрактним зображенням дійсної мережі зв'язаних станцій. Для цілей планування переїздів між станціями карта виявляється цілком відповідною, оскільки показує всі з'єднання і взаємне розташування станцій. Зображені на карті лінії не відображають реальної відстані і кривизни дійсних ліній, що зв'язують станції, оскільки ця інформація до справи не відноситься, а тільки заважає зоровому сприйняттю.
Дослідники штучного інтелекту використовують знання про мозок як керівництво для того, щоб будувати штучний інтелект, але теорію того, як людина представляє знання, формалізувати дуже важко. Як люди сприймають торці книг - як канцелярське приладдя, прикраси або елементи обстановки? Як можна представити любов, якщо машина не випробовує таких емоцій? Чи можна змусити машину випробувати любов і, якщо це можливо, то чи буде її розуміння любові відрізнятися від нашого? Існують когнітивні теорії того, як представляє знання мозок людини, і саме такі теорії служать основою для символьних уявлень.
1.2 Міркування
Людина знає, як поводитися в нових ситуаціях, оскільки вона може аналізувати свої знання і ухвалювати адекватні рішення, засновані на минулому досвіді і на прогнозуванні можливих наслідків таких рішень. Символьна парадигма намагається частково імітувати таку поведінку за допомогою програм, що включають набір правил представлення відповідних висновків.
Правило. Якщо акумулятор розрядився, то автомобіль не заведеться.
Конкретні дані.
Акумулятор в автомобілі Сюзен розрядився.
Нове виведене знання. Автомобіль Сюзен не заведеться.
Зовсім не складно запрограмувати систему, що працює відповідно до основних правил логічних висновків, але перш, ніж машина зможе демонструвати щось подібне реальному інтелекту, доведеться знайти відповіді на деякі важливі питання. Правила утілюють знання, а тому і питання виявляються пов'язаними із знаннями. Які правила потрібні і є достатніми для того, щоб виконати завдання інтелектуально? Розглянемо спеціальне завдання, що вимагає тільки знання пристрою автомобіля. Експертна система (система, заснована на використанні знань, необхідних для виведення висновків у вузькій області) залучається в наступному діалозі:
Клієнт: Навіщо на автомобілях встановлюються ручні гальма?
Експертна система: Щоб зупинити рух автомобіля.
Клієнт: Адже автомобіль не завжди рухається, коли ручне гальмо вимкнене?
Експертна система: Це залежить від горизонтальності поверхні.
Клієнт: Що дає енергію, що примушує колеса автомобіля обертатися?
Експертна система: Двигун.
Клієнт: Таким чином, якщо двигун працює, то колеса обертатимуться?
Експертна система: Якщо зчеплення включене.
Клієнт: Що трапиться, якщо двигун працюватиме з включеним ручним гальмом і включеним зчепленням?
Експертна система: Передбачається, що ви спочатку повинні відключити ручне гальмо"
Клієнт: Так, але припустимо, що я цього не зробив.
Експертна система:???
Відповідь "Не знаю" на останнє питання є прийнятним, якщо ви не експерт по автомобілях, але виглядає смішним, якщо уявити, що ви експерт. Той, хто ніколи не водив автомобіль, але маючи добре знання фізики і механічних пристроїв, може дати цілком розумну відповідь. Але знання фізики вимагає виходу експертної системи з вузької області автомобілів і веде до необхідності об’єднання ширшої області знань. Розуміння того, скільки потрібно знань для адекватного виконання відповідного завдання, являється проблемою розробника експертної системи: достатньо важко гарантувати правильну роботу комп'ютерної програми, що допускає обмежене число типів введення, але тяжкість перевірки правильності роботи зростає багато разів, коли на етапі проектування потенційне введення не може бути передбачене взагалі. Існують вражаючі експертні системи, що виконують величезну роботу і, як повідомляється, значно зменшують витрати компаній. Але зажадайте від експертної системи дуже багато - і вона незабаром виявиться слабкою, оскільки знання її обмежені.
У фахівців, що створюють експертні системи, виникають і інші труднощі. Розглянемо твердження, подібне наступному:
Відчуття було просто жахливим, це щастя залишитися після такого в живих, адже всі чоловіки в літаку загинули.
Чи є розповідач жінкою? Чи знаходилася вона в літаку?
Я не сумніваюся, що вони покладуть всю провину на жінку-пілота.
Тепер здається розумним припущення, що розповідачем є жінка-пілот і що вона була єдиною жінкою на борту літака, який попав в аварію.
Ми зіткнулися на підході до аеродрому. Я була в одномісному літаку, і я катапультувалася.
Остання інформація примушує нас переглянути попередні виводи. Побудова інтелектуального агента, здатного робити серію висновків, є тільки однією з безлічі проблем, що стоять перед розробниками інтелектуальних систем.
1.3 Навчання
Виживання будь-якої тварини залежить від здатності адаптуватися до зміни ситуації на основі наявного досвіду. Ми покладаємося на те, що наші домашні тварини здібні до навчання такою мірою, що ми зможемо навчити їх поводитися соціально прийнятним чином.
Більшість комп'ютерів програмуються для виконання певних завдань. Інженер-програміст представляє опис проблеми у вигляді алгоритму, а потім реалізує цей алгоритм на якій-небудь мові програмування високого рівня. Зв'язок проблеми з реалізацією опирається на знання і уявлення.
Наприклад, можна заявити, що площа круга рівна πrІ де π є числовою константою, а r - радіусом. Розуміння цього опису спирається на знання того, що радіусом є довжина відрізка прямої, що сполучає центр круга з крапкою на колі, що таке коло і так далі. Запропонована вище формула виражає знання, але використання цієї формули теж вимагає знань: наприклад, користувач повинен знати, що площа виражатиметься в одиницях, що є квадратом одиниць, що використовуються для вимірювання радіусу.
Ось приклад програми на мові С для обчислення площі круга за вказаною формулою:
float areaOfCircle (float radius)
{
float pi = 3.1415927;
return (pi*radius*radius);
}
Внутрішньо комп'ютер представляє число π в двійковому форматі, але це не має ніякого значення для програміста, так само як і реалізація саме на мові С не має ніякого значення для користувача програми, оскільки розуміння даного алгоритму залежить тільки від достатньо хорошого знання англійської мови і деяких математичних результатів.
Ключем до програмування є здатність виразити проблему у вигляді алгоритму і вибрати відповідне уявлення. Але що можна сказати про знання, яке не може бути виражене явно? Неможливість явно виразити рішення означає, що програма не може бути отримана традиційними методами. Але можна створити програму автоматично в результаті процесу навчання. Машини можуть програмуватися так само, як відбувається навчання собаки виконанню команди. Команда служить введенням, правильна відповідь винагороджується, і сигнал повторюється до тих пір, поки собака не адаптує свою поведінку відповідно до виконання необхідного завдання.
2. Гіпотеза символьних систем
Традиційний штучний інтелект спирається на гіпотезу символьних систем. Ця гіпотеза в спрощеному формулюванні стверджує, що реалізувавши величезну структуру взаємозв'язаних символів, що представляють реальні знання, і складний набір символьних процесів, які дозволяють оперувати структурами з метою створення нових структур, можна створити машину, що працюватиме так само добре, як людина. Коротко кажучи, гіпотеза стверджує, що комп'ютер можна запрограмувати так, що він буде думати.
Ми розглянемо декілька простих модельних завдань, що дозволяють зрозуміти, що таке символьна обробка. Ми не обговорюватимемо тут правильність вказаної гіпотези, оскільки хотіли б тільки з'ясувати, що таке символьні процеси. Необхідно також мати на увазі, що якщо на базі цієї гіпотези може бути побудована мисляча машина, то така машина повинна концентрувати колосальні об'єми знань, об'єднаних у величезний масив складних процесів. В цьому розділі ми розглянемо природу обчислень. По практичних навиках майже всі експерименти з штучним інтелектом мали малі масштаби, але якщо створення машини, подібної до людини, можливо, масштаби цих експериментів повинні істотно змінитися. Рух в цьому напрямі вже почався.
2.1 Пошук
Вирішення головоломок, побудова планів, діагностика захворювань і так далі - все це проблеми, які можна вирішити в результаті процесу пошуку. Розглянемо планування автобусної подорожі по Англії з півдня на північ. У вашому розпорядженні є розклад руху автобусів, а завданням є знаходження послідовності стикуючих маршрутів, які дозволять вам добратися з Саутгемптона до Ноттінгема (передбачається, що прямого сполучення між цими містами немає). Можна почати з Саутгемптона, як пункту відправлення, проглянути список пунктів призначення маршрутів, вибрати деякий пункт призначення і перейти на ту сторінку розкладу руху, яка відповідає вибраному пункту призначення. Пункт призначення тепер стає вашим уявним пунктом відправлення, і ви вибираєте інший пункт призначення. Ви продовжуєте цю процедуру доти, поки не побачите назва пункту відправлення, для якого пунктом призначення буде вказаний Ноттінгем. Немає нічого простішого! На практиці, проте, ви скористаєтеся знаннями географії, і розглядатимете тільки ті проміжні пункти призначення, які лежать в напрямі, що наближає вас до кінцевого пункту призначення, Ноттінгему. Ви можете також використовувати декілька закладок, щоб, знайшовши деякий маршрут з Саутгемптона в пункт А, перейти до відповідної сторінки розкладу Ноттінгему і подивитися, чи є маршрут з Ноттінгема в пункт А. І ви продовжуватимете перескакувати так з однієї сторінки на іншу в надії знайти пункт, де ваш маршрут вперед і зворотний маршрут перетнуться.
Були розроблені комп'ютерні алгоритми, що імітують такий тип пошуку. Давайте розглянемо одну просту головоломку, подібну до "гри в п'ятнадцять", але з восьми елементів. Головоломка є ґратами з дев'ятьма осередками, де вісім осередків зайнято пронумерованими плитками. Незайнятий осередок можна інтерпретувати як порожню плитку: відповідної плитки немає, але це виявляється корисною ідеєю, що дозволяє спростити опис проблеми. Плитки розміщуються випадковим чином, а метою є розміщення плиток в порядку номерів зліва направо і зверху вниз. Завдання ставиться нудне і трохи трудомістке: ви зав'язуєте другу очі і даєте йому головоломку для того, щоб він пересував плитки. Ваш друг пересуває одну плитку, а ви перевіряєте результат. Плитки не розміщуються в потрібному порядку, тому ви просите друга пересунути ще одну плитку. Яку плитку рухати, вирішує ваш друг, а не ви. Після чергового пересування ви виконуєте чергову перевірку, і цей процес продовжується до тих пір, поки плитки не будуть розміщені в належному порядку.
Плитки перемішуються знову у випадковому порядку. Цього разу ви ведете запис виконаних переміщень, щоб ваш друг не повторював одні і ті ж послідовності переміщень з одних і тих же комбінацій плиток. Ваш друг виконує пошук всліпу.
На кожній стадії пошуку для переміщення існує певне число можливостей. Щоб спростити опис, уявимо собі, що пересувається порожня плитка і що вона може рухатися вгору, вниз, управо або вліво, залежно від того, в якому місці ґрат вона знаходиться. Єдиною формою допомоги, яку вам дозволяється надати вашому другу, є сигнал завершення виконання завдання і недопущення повторення послідовності переміщень. Кожна комбінація плиток називається станом, так що завданням є знаходження цільового стану - того, в якому всі плитки виявляються в потрібному порядку. Можна розглянути випадковий початковий стан і з'ясувати, які нові багатства можуть бути з нього отримані за допомогою переміщення тієї плитки. З кожного нового стану процес можна продовжувати далі. Відповідна ідея представлена на мал.1. Показані не всі, а тільки деякі стани. Від кожного стану відходить декілька ліній, кожна з яких відповідає певному переміщенню порожньої плитки. В результаті такого переміщення виникає новий стан ґрат. Якщо продовжити побудову ілюстрації далі, ми побачимо, що в декількох місцях ілюстрації будуть розміщені стани, відповідні кінцевій меті. В результаті руху по маршруту переміщень від початкового стану (кореня) до будь-якого з цільових станів виявляється послідовність переміщень, що дає рішення. Одні послідовності можуть при цьому бути коротшими за інші.
Мал.1. Деякі із станів пошуку, що генеруються при спробах вирішити головоломку з восьми плиток. Цільовий стан знаходиться в нижньому ряду зліва. Для початкового стану переміщення порожнього квадрата вгору еквівалентно переміщенню "двійки" вниз, але опис головоломки в термінах руху порожнього квадрата виявляється зручнішим
Алгоритми пошуку усліпу легко реалізуються на комп'ютері. Труднощі зазвичай полягають в з'ясуванні того, від чого залежать стани і як краще ці стани представити. Для головоломки з восьми плиток представлення станів виявляється простим, але для реальних завдань знайти відповідне уявлення буває досить непросто.
Якщо ви самі вирішуєте головоломку з восьми плиток, то, ймовірно, знайдете рішення швидше, ніж це зробив би ваш друг із зав'язаними очима. Ви робитимете для себе виводи про те, чи наближає кожне конкретне переміщення вас до кінцевої цілі. Цей інформований варіант гри називається евристичним пошуком. Пошук відповідного маршруту за розкладом з використанням знання географії є евристичним: для напряму пошуку використовуються відповідні знання. Розробка алгоритмів для здійснення евристичного пошуку є не складнішим ніж програмування пошуку усліпу. Найскладнішим моментом тут є визначення евристик, тобто правил пошуку.
Пошук є основою штучного інтелекту. Як зразок пошуку може бути представлена діагностика стану здоров'я пацієнта за допомогою застосування правил, і деякі аспекти проблеми розуміння мови.
2.2 Продукційні системи
Продукційна система несе в собі фундаментальні ідеї, на яких "виросли" експертні системи і мови типу Рrоlog. "Серцем" продукційної системи є процедура управління, що залишається незмінною у всіх застосуваннях. Обчислення, які виконує продукційна система, управляються набором продукційних правил і конкретними даними. Продукційні правила утворюють безліч пар "умова-дія", що визначають умови, які повинні бути виконані для того, щоб правило виявилося дозволеним до застосування, і дію, яка повинна бути виконана, якщо це правило застосувати. Робоча пам'ять зберігає поточний стан, і саме від поточного стану залежить, чи виконуватиметься умова конкретного правила. Продукційний цикл виключно простий: за станом робочої пам'яті слід спочатку перевірити, які правила можуть бути задоволені, зробити дозволеними до застосування всі задоволені правила, з більшості дозволених до застосування правив вибрати правило, яке слід застосувати, і відновити стан робочої пам'яті відповідно до дії застосованого правила.
Більшість дозволених до застосування правил називається безліччю суперечностей, а стратегія вибору з цієї множини правила, яке слід застосувати, називається стратегією вирішення протиріч.
Весь процес вибору правила для застосування повторюється до тих пір, поки не буде задоволено деяку умову зупинки. Простий приклад такого процесу показаний на мал.2. В даному прикладі, стратегія вирішення протиріч є стратегією новизни, що означає простий вибір правила, умова якого раніше ще не була задоволена, а у разі декількох таких правил - довільний вибір будь-якого з них. Визначення стратегії вирішення протиріч виявляється завданням розробника. Існує декілька стандартних стратегій, наприклад вже згадувана стратегія новизни або стратегія конкретності (коли перевагу має правило, що має більше число умов), але читач повинен зрозуміти, що деталі конструкції будь-якої системи створюються на розсуд її розробника: продукційна система являється загальною обчислювальною процедурою, яку можна налаштовувати так, як цього вимагає конкретне завдання. Приклад послідовності дій продукційної системи, показаний в таблиці.
Продукційна множина:
Цикл | Робоча пам'ять | Множина суперечностей | Вибране правило |
0 | Т, W, Р | 3,4 | 3 |
1 | Т, W, Р, Q | 3,4 | 4 |
2 | Т, W, Р, Q, S | 2, 3,4 | 2 |
3 | Т,W, Р, Q, S, R | 1,2,3,4 | 1 |
4 | Т,W, Р,Q, S, R мета | 1,2,3,4 | Зупинка |
3. Представлення за допомогою символів
Щоб будувати інтелектуальні системи, мова представлень повинна відповідати наступним вимогам.
Бути досить виразною, щоб дозволяти представлення всіх реальних станів.
Бути стислою настільки, щоб обчислення піддавались управлінню.
Мати форму, відповідну для міркувань, щоб модель реальності могла міняти свій стан.
Мал.2. Цикл продукційної системи
Логіка використовується математиками для того, щоб доводити правильність, або неправильність тверджень. Всі головні умови представлень, включаючи Rules, Semantic nets і Frames, можуть бути переведені у форму логіки, відому як числення предикатів першого порядку. Коротке обговорення числення предикатів першого порядку дається відразу після розгляду більш простої форми логіки, названої пропозиційним численням або численням висловів.
3.1 Числення висловів
Висловом є пропозиція, якій може бути привласнене значення ІСТИНА або ХИБНІСТЬ. Наприклад, "Сьогодні йде дощ" або "Мідь є метал" є або правильними, або помилковими твердженнями. В рамках числення висловів можна представляти пропозиції в символьному вигляді, створювати складні пропозиції з інших пропозицій, використовуючи зв'язки, і виводити висновки, щоб знайти значення пропозиції. Синтаксис числення висловів описує те, як створюються пропозиції (включаючи складні вирази), граматика визначає правила, по яких з'ясовується синтаксична коректність пропозиції. Семантика числення висловів визначає те, як визначити співвідношення між пропозицією і значеннями ІСТИНА або ХИБНІСТЬ.
Елементарною пропозицією є простий вислів типу "Сьогодні йде дощ", і такі пропозиції часто представляються прописними буквами, наприклад Р або Q. Складна пропозиція створюється за допомогою зв'язку, що сполучає два або декілька елементарних пропозицій. Круглі дужки використовуються для того, щоб вказати пріоритет операцій при комбінуванні елементарних пропозицій за допомогою зв'язків. У табл.1 дано пояснення зв'язку, а в табл.2 приведені правила граматики для логіки висловів. Граматика може використовуватися для аналізу речення і перевірки того, що воно синтаксично правильне. Наприклад, неформальний опис перевірки синтаксичної правильності виразу ( (P/\Q) \/R) =>S пропонується в табл.3.
Таблиця 1. Логічні зв'язки
Зв'язка | Приклад |
/\ (І) Звана кон'юнкцією |
Сьогодні йде дощ І я промок Р/\Q, де Р позначає кон'юнкт "Сьогодні йде дощ”; а Q - кон'юнкт "Я промок" |
\/ (АБО), Звана диз'юнкцією |
Салі пішла в магазин АБО Том пішов в магазин Р\/Q, де Р позначає диз'юнкт "Салі пішла в магазин", а Q - диз'юнкт "Том пішов в магазин" |
¬ (НЕ) Звана запереченням |
Слон НЕ розовий. ¬ Р, де Р позначає "Слон розовий" |
=> (ВАБИТЬ) Звана імплікацією або твердженням "якщо..., то... " | ЯКЩО я на вулиці І йде дощ, ТО я промокну (P/\Q) =>R, де Р позначає "Я на вулиці",Q позначає "Йде дощ", а R - "Я промокну" |
<=> (ЕКВІВАЛЕНТ) Еквівалентністю або подвійною імплікацією | Вирази по обидві сторони цього зв'язку повинні бути логічно еквівалентними |
Таблиця 2. Правила граматики для логіки висловів
Привило граматики | Пояснення |
Пропозиція→Елементарна- пропозиція | Складна - пропозиція | Пропозиція є або елементарною або складною |
Елементарна - пропозиція → Р | Q | R |... |
Елементарна пропозиція позначається прописною буквою, як правило з останньої третини алфавіту |
Елементарна - пропозиція Істина | Брехня | Елементарна пропозиція може представлятися також значеннями ІСТИНА або БРЕХНЯ |
Складна - пропозиція Пропозиція Зв'язок Пропозиція ¬ Пропозиція | (Пропозиція) |
Складна пропозиція будується з двох інших пропозицій і зв'язку. Заперечення пропозиції теж є пропозицією, і поміщення пропозиції в дужки теж в результаті дає пропозицію |
Зв'язок →/\ | \/ | ¬ | => | <=> |
Зв'язком є будь-який з логічних символів, представлених в табл.1 |
Таблиця 3. Приклад синтаксичного аналізу
Кроки | Пояснення |
( (Р/\Q) /\R) =>S | Відповідно до першого правила пропозиція є або елементарною, або складною. Очевидно, що цей вираз не є елементарною пропозицією, тому ми повинні перевірити, чи воно є складною пропозицією |
( (Р/\Q) /\R) =>S |
Правою стороною виразу є S, а S є елементарною пропозицією відповідно до другого правила |
( (Р/\Q) /\R) | Ми повинні показати, що (P/\Q) /\R є складною пропозицією |
(Р/\Q) /\R | Порівнюючи з правилом "Пропозиція Зв'язок Пропозиція" робимо вивід, що R є пропозицією, оскільки воно є елементарним |
(Р/\Q) | Ми повинні показати, що Р/\Q є складною пропозицією |
Р/\Q | Знову порівнюючи з правилом "Пропозиція Зв'язок Пропозиція" робимо вивід, що і Р, і Q є пропозиціями |
Семантика числення висловів визначається за допомогою таблиці істинності. Всі зв'язки, за винятком заперечення, є бінарними відносинами, тому у визначеннях потрібно використовувати два символи. Пропозиція може приймати значення ІСТИНА або ХИБНІСТЬ, тому для бінарних зв'язків є чотири можливі комбінації, як показано в табл.4.
Таблиця 4. Таблиця істинності
p | q | -р | р/\q | рvq | р=>q | p<=>q |
істина | істина | хибність | істина | істина | істина | істина |
істина | хибність | хибність | хибність | істина | хибність | хибність |
хибність | істина | істина | хибність | істина | істина | хибність |
хибність | хибність | істина | хибність | хибність | істина | істина |
Здебільшого визначення зв'язків інтуїтивно зрозумілі. Наприклад, "Сьогодні йде дощ" І "Сьогодні НЕ йде дощ", очевидно, ХИБНІСТЬ, що підтверджується таблицею істинності, якщо знайти в ній можливі значення ІСТИНА /\ ХИБНІСТЬ або ХИБНІСТЬ /\ ІСТИНА. Знаходження імплікації часто викликає питання, оскільки ми інтуїтивно намагаємося застосувати інтерпретацію, засновану на нашому загальному розумінні мови. Наприклад, можна заявити, що пропозиція типу "Якщо число 5 парно, то мій автомобіль рожевий" (що має форму Р => С2) є брехнею, оскільки воно не має сенсу. Проте, відповідно до визначення імплікації, цей вираз виявляється істинним, незалежно від того, чи є ваш автомобіль рожевим чи ні: ми знаємо, "число 5 парно" є брехнею, так що відповідною комбінацією повинна бути або ХИБНІСТЬ => ІСТИНА (автомобіль рожевий) або ХИБНІСТЬ => ХИБНІСТЬ (автомобіль не рожевий). Ми прагнемо інтерпретувати вираз типу "якщо то..." як причинно-наслідкове, і тому пропозиція "Якщо число 5 парне, то мій автомобіль рожевий" виглядає безглуздим, оскільки визначення числа 5 не робить ніякого впливу на колір вашого автомобіля. Тут слід зрозуміти, що імплікація в численні виразів не вимагає, щоб був хоч якийсь смисловий зв'язок між пропозиціями по обидві сторони імплікації, що зв'язує їх. Знання того, що Р є ХИБНІСТЬ, не дає ніякої можливості зробити вивід про істинність Р. Наприклад, пропозиція "Якщо акумулятор розрядився, то автомобіль не заведеться" дає нам можливість припустити, що істиною є "автомобіль не заведеться", якщо істиною також є "акумулятор розрядився", але правило не говорить нам нічого про здатність автомобіля завестися, якщо ми не знаємо, що "акумулятор не розрядився" - автомобіль може не завестися з цілого ряду причин абсолютно іншого роду. Якщо цих пояснень вам все ще недостатньо, краще всього інтерпретувати Р ==> Q просто як пропозиція, що дозволяє зробити вивід про те, що Q є ІСТИНА, якщо ми знаємо, що Р є ІСТИНА.
Існує цілий ряд правил виведення логіки висловів, і вони представлені в табл.5.
Таблиця 5. Правила виведення логіки висказаного
Правило Пояснення
Приклад 1
Є наступна інформація.
Якщо акумулятор машини розряджений, то машина не заводиться. Якщо машина Джона не заводиться і поточний час виявляється пізнішим 8 годин ранку, то Джон запізниться на потяг. Одного разу вранці після 8 годин ранку акумулятор машини Джона виявився розрядженим.
Використовуючи логічні правила виводу, покажіть, що Джон запізнився на потяг.
Розв’язання 1
У символьному вигляді інформація може бути представлена таким чином.
Р: акумулятор машини розряджений.
Q: машина не заводиться.
R: час після 8 ранку.
S: Джон запізнився на потяг.
Правило 1. Р => Q.
Правило 2. Q ^ R =>S
Відомо, що Р і R є ІСТИНА. Завданням є доказ S. Доказ будується таким чином.
1 Р Дано.
2 R Дано.
3 Q Виходить з кроку 1 і правила 1 за правилом modus ponens.
4 Q ^ R Виходить з кроків 3 і 2 за правилом інтродукції 1.
5 S Виходить з кроку 4 і правила 2 за правилом modus ponens.
3.2 Числення предикатів
Числення висловів припускає, що світ можна моделювати за допомогою фактів. Але для реальних застосувань числення висловів не підходить. Розглянемо, наприклад, число пропозицій, які будуть потрібні для моделювання запізнення на роботу, скажімо, 50 чоловік. Для цього потрібно допускати узагальнені вирази. Числення предикатів (або, точніше, числення предикатів першого порядку) розширює числення висловів так, що світ виявляється таким, що складається з об'єктів, відносин і властивостей. Ця метод допускає узагальнені твердження, вводячи в розгляд змінні, а також квантори, що дозволяють визначати властивості сукупності об'єктів. Розглянемо твердження "Якщо конем володіє Джон, то кінь є чистокровним". Це твердження посилається на сукупність об'єктів, а саме, на всіх коней, якими володіє Джон, у наслідок чого відпадає необхідність посилатися на кожен екземпляр (тобто на кожного з коней Джона) окремо. Це твердження є узагальненим і позбавляє від необхідності формулювання відповідного твердження для кожного з коней Джона. Можна перефразовувати твердження і сказати "Всі коні, якими володіє Джон, є чистокровними". Тут для вказівки того, що властивість "чистокровний" застосовується до всієї сукупності коней Джона, використовується квантор (всі). Слово "володіти" є бінарним предикатом, що описує відношення між Джоном і конем, а слово "чистокровний" є унарним предикатом, що описує властивість коня. В термінах числення предикатів твердження "Всі коні, якими володіє Джон, є чистокровними" в символьному вигляді записується так:
х (Кінь (х) ^ Володіти (Джон, х)) => Чистокровний (х).
Символ називається квантором спільності і читається як "для всіх" або "кожен". У численні предикатів визначається і інший символ, а саме, символ , так званий квантор існування, який читається як "існує". Наприклад, коли ми говоримо "Джон має чистокровного коня", це означає, що існує принаймні один кінь (а можливо і більше) в колекції Джона, що є чистокровним. На мові предикатів це твердження виглядає таким чином:
х Кінь (х) ^ Володіти (Джон, х) ^ Чистокровний (х).
Числення предикатів пропонує запис який є більш стислим, ніж звичайна розмовна мова. У системі числення предикатів одна пропозиція відповідатиме безлічі пропозицій звичайної розмовної мови. Числення предикатів зменшує і неоднозначність. Наприклад, "Всі коні не є чистокровними" можна сплутати з "Не всі коні є чистокровними", і плутанина вирішується за допомогою знання того, що існують інші породи коней. Уявлення кожної з пропозицій в термінах предикатів показує їх різницю:
коні ¬ Чистокровний (кінь) і ¬ коні Чистокровний (кінь).
Перша пропозиція дійсно стверджує, що всі чистокровні вимерли (жодного екземпляра не існує), а друга пропозиція стверджує, що "то, що кожен кінь є чистокровним, невірно".
3.3 Інші символьні мови
Є багато мов уявлень, але вони мають багато спільного. Популярні мови типу FOPC, Frames або Semantic nets по суті еквівалентні і мають цілий ряд загальних ключових елементів:
об'єкти, такі як, наприклад, м'яч, персона, човен, велосипед або філософ;
відносини між об'єктами, такі як, наприклад, Джон є батьком Кім, або паровоз тягне склад;
властивості, такі як, наприклад, моя машина зеленого кольору, Девід має зріст шість футів.
Ці мови насправді відрізняються тільки синтаксисом. Синтаксис є важливим, оскільки для виразу інформації один формалізм може виявитися більш відповідним, ніж інший. Наприклад, легко знайти маршрут між двома станціями лондонського метро, використовуючи графічну схему мережі, чим описані з'єднання між її станціями у вигляді тексту. Вибрана нами мова повинна бути настільки виразною, щоб ми могли виразити всі необхідні знання, але достатньо стисло, щоб можна було ефективно організувати необхідні обчислення. Крім того, мова повинна дозволити виводити нові знання.
3.4 Мова Ргоlog
Мова Рrоlog формально не є мовою уявлень, але її синтаксис використовується в наступному розділі, тому ми приведемо її опис.
Мова Ргоlog є мовою програмування штучного інтелекту, в якому дані представляються як безліч відносин між об'єктами. Програма на мові Ргоlog складається із списку фактів і правил, і ця мова є важливою завдяки тому, що вона має вбудований механізм виведення висновків, який дає можливість отримати відповіді на питання про запрограмовані знання. Синтаксис мови Рrоlog опирається на обчисленні предикатів. Відношення типу "Джон любить Мері" записується так:
любить (джон, мері).
Предикат (тобто відношення) і об'єкти відношення повинні починатися з букви нижнього регістру. Вказане вище відношення трактується як факт, іншими прикладами фактів є:
метал (мідь) - мідь є метал;
грають (джон, мері, теніс) - Джон і Мері грають в теніс.
Змінна повинна починатися з символу верхнього регістра. Коли змінна посилається на константу (тобто на конкретний екземпляр, такий як Джон), говорять, що змінна конкретизована. Змінна може бути конкретизована в результаті порівняння виразів. Наприклад, припустимо, що база даних містить любить (Джон, Мері). Тоді можуть бути поставлені наступні питання.
Хто любить мері?
любить (Х, мері)
відповідь X = джон
X конкретизована значенням Джон
Хто є тим, кого любить джон?
любить (джон, X)
відповідь X = мері
Хто кого любить?
любить (Х, V)
відповідь X = джон, У = мері
Правила виражаються за допомогою зворотної нотації у формі "умова якщо умова", в протилежність прямій нотації "якщо умова, то умова". Наприклад
дядько (Х, У): - батько (Z. У), брат (Z, X).
Символ ": - " використовується замість ЯКЩО, а символ ","замість І. Таким чином вказане правило стверджує, що
X є дядько У, якщо Z є батько У і брат є X.
Приклад конкретизації цього правила показаний на мал.3.
Брат Джон
Девід
Дядько
Батько
Малкольм
дядько (джон, малкольм): - батько (девід, малкольм), брат (девід, джон).
Мал.3. Правило мови Prolog, конкретизоване семантичним уявленням, показаним у вигляді діаграми
Змінна є локальною по відношенню до виразу (тобто факту або правила): змінна з одним і тим же ім'ям, що з'являється в двох різних правилах, інтерпретуватиметься в мові Prolog якщо має різні імена.
Робота Prolog побудована на уніфікації. Коли Prolog намагається довести твердження, шукається перший вираз, що дає збіг. Для збігу двох виразів вони повинні:
мати одне і те ж відношення;
мати однакове число аргументів;
давати збіг по кожному аргументу.
Порівняння аргументів визначається таким чином.
1. Константи: дві константи дають збіг, якщо вони є ідентичними рядками.
2. Константа і змінна: якщо змінна не конкретизована, то вона даватиме збіг з будь-якою константою і буде конкретизована цією константою; конкретизована змінна даватиме збіг з константою у відповідності с п.1.
3. Змінні: дві довільні змінні (не конкретизовані) завжди дають збіг, а якщо надалі одна змінна стає конкретизованою деякою константою, то інша змінна також буде конкретизована тією ж константою.
Приклади збігів показані в табл.6
Таблиця 6. Порівняння зразків в мові Prolog | ||
Вираз 1 | Вираз 2 | Збіг |
любить (Х, Мері) | любить (Джон, Мері) | так |
любить (Джон, X) | любить (Джон, Мері) | X = Мері |
любить (Джон, Мері) | подобається (Джон, Мері) | Немає |
любить (Х, У) | любить (Джон, Мері) | X = Джон У = Мері |
любить (Джон, Мері) | любить (Х, X) | Немає |
любить (Х, Мері) і X = Джон |
любить (У, Мері) | У = X = Джон |
штовхає (Джон, Кріс) | штовхає (Джон, Кріс, рука) | Немає |
Приклад 2.
Нижче приведена програма на мові Prolog. Поясніть, як відповість Prolog на запит
? - дядько (джон, X)
де "? - " є запрошенням Prolog. Лістинг програми наступний.
1 батько (девід, малкольм).
2 дядько (грехим, малкольм).
3 брат (девід, джон).
4 дядько (Х, Y): - батько (г, Y), брат (Z, X).
Номери рядків показані для зручності.
Розв’язання 2.
Prolog шукатиме вираз з предикатом "дядько" і двома аргументами. Перший такий вираз знаходиться в рядку 2, але збігу не спостерігається, оскільки перший аргумент "Грехим" не відповідає аргументу "Джон". Другий вираз, що містить "дядько", знаходиться в рядку 4, але для того, щоб Prolog "досяг успіху" в досягненні мети (метою є показати, що Джон є чийсь дядько), повинна досягнути задоволена права сторона виразу: повинна збігатися з виразом - батько (Z, Y) і брат (Z, X). X в запиті і X в правилі вважаються різними, так що ми маємо наступне:
Запит: дядько (джон, X1) повинен порівнюватися з дядько (Х2, Y), що є лівою частиною правила в рядку 4. Збіг виходить для Х2 = Джон і Y = Х1 (або Х1=Y). Тепер завдання є доказом батько (Z, X1) і брат (Z, Джон). Батько (Z, X1) співпадає з рядком 1 при Z = Девід і X1 = Малкольм. Тепер завдання є виконане і задовольняє рядок 3.
Prolog відповість що X = Малкольм.
4. Розуміння мови
Для людей спілкування за допомогою звичайної розмовної мови є, очевидно, нескладним завданням, а ось всі комп'ютерні системи, що моделюють цей процес, до цих пір мають можливості, істотно поступливі можливостям звичайного першокласника. Створені системи (тобто машинні моделі) розуміння мови, що довели свою виняткову практичну користь. Наприклад, можна побудувати комп'ютеризовану систему замовлення авіаквитків, яка буде вести діалог з користувачем на звичайній мові, така система правильно відповідатиме на більшість питань користувача. Необхідність в наявності систем розуміння мови стає очевидною, якщо пригадати про можливості, що виникають у зв'язку з прискоренням розвитку засобів телекомунікацій. Все більш звичними стають електронні банківські розрахунки в інтерактивному режимі, і постійно росте інтерес до розробки автоматизованих агентів, здатних здійснювати пошук і аналізувати величезні об'єми даних в Інтернеті. Проте всі такі застосування мають досить вузькі області застосування. Обмеження області застосування дозволяє понизити рівень складності розробки за рахунок скорочення розміру словника і спрощення завдання розуміння сенсу запиту. І хоча число вузькоспеціальних застосувань для розпізнання розмовної мови за останні декілька років помітно виросло, ми все ще не можемо сказати, коли ж машинні можливості розуміння мови наблизяться до того рівня розуміння, на якому знаходиться людина. Розмовна мова є дуже виразною формою комунікації, що ставить перед ученими і програмістами масу проблем. Декілька прикладів представлено в табл.7.
Давайте трохи поговоримо про те, як з'ясувати значення пропозиції або вирішити неоднозначність твердження, щоб підкреслити, що система розуміння мови сильно залежить від наявності в її розпорядженні великої бази даних реальних знань. Багатоваріантність виникає там, де ми не можемо бути упевнені, що наша інтерпретація ситуації виявляється правильною, але загальні знання дають нам певний ступінь упевненості, а також дають можливість міняти інтерпретацію в світлі інформації, що поступає надалі.
Таблиця 7. Деякі труднощі обробки розмовної мови
Тип проблеми | Приклад | Пояснення |
Передача однакового сенсу за допомогою різних форм висловлювань |
1. Стюарт розбив вазу 2. Ваза була розбита Стюартом |
(1) виражено в активній формі (2) є пасивною формою (1) |
Роль приводу "с" |
1. Незнайомка штовхнула хлопчика з дівчинкою 2. Незнайомка штовхнула хлопчика з собакою |
У (1) привід "с" означає об'єднання тих що постраждали, тоді як в (2) привід "с" додає опис хлопчика |
Багато слів мають декілька значень |
1. Догляд за дитиною 2. Відхід з сцени |
У (1)"відхід" позначає постійний нагляд і турботу, тоді як в (2)"відхід" позначає одноразову конкретну дію |
Смислове узгодження слів |
1. Викрадення автомобіля є небезпекою 2. Викрадення автомобіля є небезпечним |
У (1) мається на увазі небезпека для власника, тоді як в (2) мається на увазі небезпека для злочинця |
Порядок слів |
1. Музей зберіг дохід 2. Дохід зберіг музей |
У (1) може матися на увазі, що був збережений дохід, а в (2) - що був збережений музей |
Як і у разі більшості інших складних завдань, завдання реалізації системи розуміння мови на комп'ютері розбивається на декілька рівнів. Трьома рівнями, що розглядаються в дискусіях, присвячених системам розуміння мови, є синтаксичний рівень, семантичний рівень і прагматичний рівень. Синтаксичний рівень стосується того, як слова об'єднуються в структури, які називаються виразами, і як вирази об'єднуються в структури, які звуться пропозиціями. Для перевірки того, чи є деяка пропозиція допустимою (тобто граматично правильним) і для розбиття пропозиції на складові частини, зазвичай використовуються правила граматики. Семантичний і прагматичний рівні стосуються значення пропозицій. На семантичному рівні виділяється зміст (суть пропозиції), і для виразу змісту часто використовуються певні логічні форми. Наприклад, пропозиції
Джон ударив по м'ячу.
Чи ударив Джон по м'ячу?
мають один і той же зміст, який в мові Prolog може бути представлене у вигляді:
ударив (Джон, м'яч).
Маючи можливість автоматизувати синтаксичний і семантичний аналіз, ми можемо затверджувати:
Джон ударив по м'ячу. ударив (Джон, м'яч)
Потім ми можемо запитати:
Хто ударив по м'ячу? ударив (Х, м'яч)
По чому ударив Джон? ударив (Джон, X)
Хто по чому ударив? ударив (Х, Y)
Прагматичний аналіз стосується інтерпретації пропозиції в контексті. Так, питання про інтерпретацію займенника "Він" в пропозиції він забив гол може бути вирішений тільки в контексті (тобто з використанням сусідніх пропозицій). Щоб відповісти на питання "Хто забив гол?", ми повинні вирішити, на кого саме указує займенник "Він".
Пропозиція.
Чи можете ви приготувати чай?
Часто означає прохання приготувати чай, але може мати і буквальний сенс: "Чи умієте ви готувати чай?". Контекст також використовується для того, щоб обмежити сенс певних слів. Слово "любити" в буденному використанні має сенс, що виражається у формі
любить (людина, об'єкт).
Цей сенс також мають такі подібні вирази як: "Джон любить Мері", "Джон любить роботу" і "Джон любить шоколад".
У контексті відносин між людьми "любить" може бути обмежено формою любить (людина, людина),і в цьому сенсі ми можемо припускати, що "Венера" в виразі - любить (джон, венера) є ім'ям жінки, а не назвою планети. В даному випадку обмеження вирішує потенційну неоднозначність тим часом, що може позначати "Венера" - ім'я людини або назва планети. Давайте тепер коротко розглянемо сам процес синтаксичного і семантичного аналізу.
4.1. Синтаксичний аналіз
Фрагмент тексту складається з пропозицій, а кожна пропозиція компонується з виразів, які можуть містити під вирази і, кінець кінцем, складаються із слів. Граматику визначає спосіб, відповідно до якого слова і вирази можуть об'єднуватися в пропозиції. Граматика може бути представлена з допомогою багатьох будь-яких мов уявлень, але найчастіше для цього використовують формат правил виводу. На мал.4 показана структура пропозиції “ The dog ran across the road ” англійської мови (у перекладі воно означає "собака біг через дорогу").
Мал.4. Приклад граматики, вираженої правилами виводу. S - означає пропозицію, N - іменник, А - прикметник, Р - привід, D - визначник (артикль), V - дієслово, ІР - іменна група, VР - дієслівна група, АР - група прикметника, РР - прийменникова група.
Мал.5. Дерево синтаксичного аналізу для пропозиції “ The dog ran across the road".
Речення аналізується з метою виділення вхідних в його структуру виразів і з метою його перевірки відповідно граматиці. Для аналізу речення потрібний також словник. Словник визначає категорії слів (N, V, Р, А, D). Такий аналіз може бути інтерпретований як пошук, при якому підтримується стек дублювання для резервного копіювання станів, щоб була можливість повернутися з тупикового стану.
Приклад 3. Ілюструйте те, як можна у вигляді пошуку провести синтаксичний аналіз пропозиції " The dog ran across the road ". Використовуйте наступну граматику:
S → NP VP
NP→ D AP ID N
PP → P NP
VP→ V PP
AP→ AN
і наступний словник:
D→ the N→ dog I road V →ran P→ across
Розв’язання 3. Процес показаний в табл.8, а стани, що генеруються при цьому, - на мал.6.
Таблиця 8. Синтаксичний аналіз пропозиції " The dog ran across the road ", то розглядається як пошук
Поточна спроба | Стек слів | Стек відвідування | Стек дублювання | |
S→NPVP | the dog ran across the road | NP VP | ||
NP→ D АР | the dog ran across the road | DAP VP | NP→DN | |
D → the | dog ran across the road | APVP | NP→DN | |
AP→AN | dog ran across the road | VP | NP→DN | |
dog не відноситься до категорії А, тому повернення |
||||
NP→DN | the dog ran across the road | DN VP | ||
D → the | dog ran across the road | NVP | ||
N →dog | ran across the road | VP | ||
VP →v PP | ran across the road | VPP | ||
V → run | across the road | PP | ||
PP → PNP | across the road | PNP | ||
P → across | the road | NP | ||
NP → D AP | the road | DAP | NP→DN | |
D → the | road | AP | NP→DN | |
AP→AN | road | AN | NP→DN | |
road не відноситься до категорії А, тому повернення | ||||
NP→DN | the road | DN | ||
D → the | road | N | ||
N road |
Алгоритми синтаксичного аналізу вивчалися достатньо інтенсивно, оскільки синтаксичний аналіз є основою багатьох обчислювальних систем, тобто компіляція програм або перевірка синтаксису запиту до бази даних. Запропонований тут приклад пропозиції виглядає тривіальним, але будь-яка реальна система розуміння мови використовує складнішу граматику, що дозволяє розуміти, наприклад, узгодження множини і часів.
4.2. Семантичний аналіз
Семантичний аналіз часто реалізується як етап синтаксичного аналізу в результаті додавання до правил граматики відповідних властивостей і використання порівняння зразків. Тут ми маємо можливість сказати тільки декілька слів про те, як виділяється суть пропозиції у формі мови Ргоlog. Граматика
SN→PVP
NP→N
N →name
VP → V NP
name → мери | джон
verb →любить
S
NP VP
DAP DN V PP
D AN D N P NP
(the) Повернення the dog across
до “dog”
DAP DN
D AN D N
(the) Повернення the road
Мал.6. Стани, що генеруються при синтаксичному аналізі пропозиції " The dog ran across the road "
Запис "Джон любить Мері". У мові Ргоlog воно має наступну форму.
любить (Джон, Мері)
Щоб виділити цю форму в процесі синтаксичного аналізу, граматика доповнюється наступними властивостями.
S (sem-vp sem-np) →NP (sem-np) VP (sem-vp)
NP (sem-np) → N (sem-np)
N (sem-n) → (sem-n)
VP (sem-v sem-np) → V (sem-v) NP (sem-np)
name (sem-n) →Mepi ("Mepi")
name (sem-n) → Джон ("Джон")
verb (sem-v) → любить (λу. λ. х любить (х. у))
Вказаний тут дієслівний елемент (verb) містить вираз, зване λ-числення. Воно використовується для того, щоб виконати просту операцію, яка називається λ - зведена, і спростити вираз.
Наприклад, вираз у формі ( (λ х Рх) а)
може бути зведеним до "Ра". Тому вираз λу. λ х. любить (х, у), сформульований у вигляді (λ у. λ х. любить (х, у))"мері"), зводиться до λx. любить (х, мері), а ( (λ, х. любить (х, мері))"джон") зводиться до любить (джон, мері).
Така λ-зведена виконується в порядку зліва направо, і її метою є приведення виразу до легшого читання (або розпізнавання) форми.
У разі нашого простого прикладу можна представити порівняння властивостей як серію викликів функцій. Ліва сторона правила розглядається як функція, а права сторона виконує серію викликів інших функцій. Ці операції продовжаться рекурсивно до тих пір, поки слову не буде знайдено відповідність і не буде повернений рядок.
Пропозицію "Джон любить Мері" буде проаналізоване з використанням "псевдо-С" нотації і із застосуванням λ-зведенням там, де це необхідно. Врахуйте те, що деякі дужки в граматичних виразах були опущені з метою збереження простоти запису.
Виклик S з аргументом "джон любить мері"
повертає (λ х. любить (х, мері) джон) = любить (джон, мері)
S (sem-vр sem-nр)
{
NP (sem-nр) - в результаті виклику NР в кінці повертається джон
VР (sem-vр) - в результаті виклику VР повертається (λу λх. любить (х, у) мері) = (λ, х. любить (х, мері))
}
NP (sem-nр) {
N (sem-np)
}
N (sem-n) {
name (sem-n)
}
name (sem-n) { if "джон"
return sem-n= "джон" if "мері"
return sem-n= "мері"
}
VP (sem-v sem-np) {
V (sem-v) - в результаті виклику V повертається (λу. λ х. любить (х, у))
NP (sem-np) - повертається мері
}
V (sem-v) {
sem-v = (λу. λ х. любить (х, у))
5. Символьні зв'язки нейронних мереж
Ідея використання нейронних мереж для виконання завдань, символьних систем штучного інтелекту, що традиційно відносяться до області, апелює до інтуїції інженерів і не тільки тому, що абстрактна архітектура штучного мозку може видавати нестандартні рішення, але також і тому, що нейронні мережі мають цілий ряд інших привабливих властивостей. Нейронні мережі навчаються виконанню завдання за допомогою адаптації до пропонованих мереж. Система, заснована на навчанні, має можливість виводити знання автоматично, а також виявляти знання, які є специфічними для конкретного завдання і які важко представити у вигляді набору правил (наприклад, як їхати на велосипеді). Мережа рідко пропонує однозначну відповідь, вона зазвичай забезпечує відповідь у вигляді оцінки, але для вирішення практичних завдань оцінені відповіді виявляються більш відповідними. Нейронні мережі можуть також демонструвати плавне зниження своєї ефективності, зберігаючи здатність виконувати завдання (хоча і на гіршому рівні), якщо частина структури мережі виявляється пошкодженою. Нейронні мережі можуть іноді зберігати свою працездатність, навіть якщо якась частина архітектури мережі перестає функціонувати взагалі. Нарешті, нейронні мережі можуть бути реалізовані у вигляді масових паралельних структур, які потенційно можуть запропонувати ефективнішу продуктивність в порівнянні з машинами, що використовують послідовну архітектуру.
Символьні системи мають свої переваги. Засобом комунікації є символи, і в процесі комунікації відбувається передача великого об'єму знань. Наприклад, якщо комусь скажуть, що він загине, якщо торкнеться рейок, по яких йдуть поїзди метро, то, за рідкісним виключенням, людина серйозно віднесеться до такого попередження. Знання, виражене у вигляді правил, може зберегти життя в ситуаціях, які раніше не були випробувані на практиці. Пілот літака, що ненавмисно вводить літак в штопор, стикається з ситуацією, що несе загрозу життю, і хоча практика виходу з штопора може допомогти справитися з ситуацією досвідченому пілотові, молодому пілотові може допомогти знання відповідних правил. Знання, що повідомляється в символьній формі, може також прискорити навчання. Важким етапом підготовки будь-якого пілота є навчання посадки літака. Добрий інструктор може запропонувати емпіричні правила, здатні допомогти пілотові-новачкові і може повторити або підкоригувати інструкції, виявивши неправильне або погане їх виконання.
Отже, і символьна парадигма, і парадигма нейронних мереж мають свої переваги з погляду побудови інтелектуальних систем. Тому недивним є той факт, що проводилося (і проводиться сьогодні) немало досліджень, присвячених можливості налагодження зв'язків між традиційним або символьним штучним інтелектом і нейронними мережами. Ці зв'язки дуже різноманітні, але головним питанням для багатьох прихильників нейронних мереж є, мабуть, питання про те, чи можуть бути створені нейронні мережі, здатні вирішувати когнітивні завдання найвищого рівня, якими є, наприклад, розуміння мови і планування.
Перші додатки нейронних мереж, що послідували за відродженням інтересу до нейронних мереж в 1980-х роках, стосувалися проблем розпізнавання, що відносяться до низького рівня, і виконували, по суті, побудову відображення безлічі початкових даних в безліч відповідних відповідей. А оскільки велися жваві дискусії відносно нейронних мереж як когнітивних моделей, недивно і те, що деякі філософи і когнітивні психологи почали цікавитися можливостями мереж першої генерації. Було з'ясовано, що частина критичних зауважень була заснована на незнанні того, як добитися від нейронної мережі необхідної якості виконання завдання. Слід відмітити, що критичні питання все ще чекають своїх відповідей, але ми сподіваємося, що з цим не буде проблем у міру розширення наших знань в області нейронних мереж.
Трьома характерними особливостями, що відповідають за успіх символьної парадигми, є композиційні структури, сенситивна обробка структур і узагальнення. Всі ці три властивості виявляються тісно пов'язаними.
Композиційні структури можуть бути визначені як ієрархічні структури, в яких вся структура складається з окремих частин. Типовим прикладом таких структур є дерева, а також спадкові і агреговані моделі, які використовують інженери. Композиція структур є основою будь-якої форми розробки конструкцій: при спробах рішення будь-якої складної задачі таке завдання зазвичай розбивається на частини. Ми вже бачили в розділі 5, що композиційний аналіз грає велику роль в системах розуміння мови. Структура виразів пропозиції представлялася у вигляді ієрархії його частин, і семантичний аналіз припускав, що сенс всієї пропозиції може бути знайдений як комбінація змісту частин.
Трансформація ¬ (P /\ Q) в його логічний еквівалент (¬ P \/ ¬ Q) є прикладом операції, яка сенситивно залежить від структури. Якщо Р і Q замінити на R і S, то операція залишається достовірною, оскільки: ¬ (R /\ S) трансформується в логічний еквівалент (¬ R \/ ¬ S). Дана операція може бути також представлена у вигляді складніших виразів, оскільки весь вираз може бути розбитий на частини. Наприклад, ¬ ( (Р v R) /\ Q) все одно має форму: ¬ (A /\ Q), тому йото логічним еквівалентом є (¬ (Р v R) /\ Q).
Абстракція узагальнених виразів теж є природною частиною символьної парадигми. Аргументи у виразі любить (одушевлений, об'єкт) допускають будь-яку комбінацію об'єктів, відповідних для даного відношення. Це дозволяє системі демонструвати регулярну поведінку. Якщо система регулярна, вона повинна допускати семантичне (і синтаксичне) узагальнення. Регулярна система, яка розуміє "джон любить мері", зрозуміє також і "мері любить джона".
Висновок
В області традиційного штучного інтелекту значні зусилля витрачаються на дослідження уявлень. Ключовим компонентом будь-якої інтелектуальної системи є здатність адаптуватися до змін середовища, тобто здатність навчатися. Традиційні системи штучного інтелекту для представлення знань використовують символьні структури, так що обчислення можуть розглядатися як послідовність операцій, вживаних до цих структур в процесі пошуку рішення. Нижче перераховані деякі ключові моменти, на які спирається традиційний штучний інтелект.
Знання представляються в явному вигляді.
Структурні компоненти можуть об'єднуватися для того, щоб будувати ще складніші структури. Це означає, що великі структури можуть бути скомпонованими з малих структур, і, навпаки, великі структури можуть бути розділені на менші.
Символьні уявлення дозволяють узагальнений і абстрактний опис знань.
Вправи
1. Покажіть, що вираз ( (P=>Q) /\ R) =>S буде проаналізовано як допустиме відповідно до граматики, представленої в табл. 2.
2. Використовуючи таблицю істинності, покажіть, що ¬ ( (Р \/ R) /\ Q) еквівалентно (¬ (Р v R) v ¬ Q).
3. В таблиці показаний приклад використання продукційної системи для доказу мети при наступних правилах і за умови, що: Т, W і Р є ІСТИНА.
Цикл | Робоча пам'ять | Множина суперечностей | Вибране правило |
0 | Т, W, Р | 3,4 |
3 |
1 | Т, W, Р, Q | 3,4 | 4 |
2 | Т, W, Р, Q, S | 2, 3,4 | 2 |
3 | Т,W, Р, Q, S, R | 1,2,3,4 | 1 |
4 | Т,W, Р,Q, S, R мета | 1,2,3,4 | Зупинка |
Р /\ Q /\ R => мета
S=>R
T/\W=>Q
T=>S
Використовуйте правила виведення логіки висловів, щоб довести мету.
4.
S → NP VP|NPV
NP→D AP|D N|NP PP
PP→ P NP
VP→VNP|V PP
AP→A AP|A N
Використовуючи цю граматику, побудуйте дерево синтаксичного аналізу для:
(а)"The little dog barked" (маленький собака загавкав);
(б)"The horse jumped over the fence" (кінь перестрибнув через огорожу).
5. Випишіть стани пошуку, що генеруються в ході синтаксичного аналізу пропозицій з вправи 4.
6. Як потрібно змінити граматику з вправи 4, щоб пропозиція "John found the book" (Джон знайшов книгу) виявилася допустимою?
7. Є база даних Prolog:
Я частина (закрилок, крило) частина (елерон, крило) частина (крило, літак)
Перефразовуйте наступні питання і покажіть, як Prolog відповість на них.
(а) частина (закрилок. крило).
(б) частина (крило, X).
(в) частина (Х, крило).
8. Припустимо, що до коду Prolog з вправи 7 додається частина
(Х. Y): - частина (Z, Y), частина (X, Z)
(а) Як програма відповість на частину (закрилок, літак)? Трасуйте відповідний процес порівняння.
(б) Чи не бачите ви яких-небудь потенційних проблем, які можуть виникнути з вказаним вище правилом?
Література
1. Роберт Каллан - "Основные концепции нейронных сетей". “Вильямс", 2003. - 288с.