Float areaOfCircle ( float radius )



Вступ

 

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

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


Природа інтелекту

 

Інтелект є концепцією, яка не піддається строгому визначенню. Людський інтелект складається з безлічі компонентів, серед яких здібність до навчання, органи чуття (наприклад, зір і дотик), що дозволяють взаємодіяти із зовнішнім середовищем, і об'єм знань, який взагалі не піддається оцінці. Навіть наші домашні тварини можуть вважатися інтелектуальними: вони мають складні системи обробки інформації, які дають їм можливість розпізнавати людей і виконувати завдання, що вимагають чималої майстерності.

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


Знання і уявлення

 

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

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

Яблуко є плід. Кіт є тварина.

Це можуть бути також і правила.

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

Якщо процентні ставки ростуть, то ціна кредиту піднімається.

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

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

Ось приклади уявлень: знання, виражені у вигляді правил; графік зміни зростання дитини; карта лондонського метро. Рівень уявлення залежить від рівня деталізації інформації, яку необхідно передати. Наприклад, карта лондонського метро є абстрактним зображенням дійсної мережі зв'язаних станцій. Для цілей планування переїздів між станціями карта виявляється цілком відповідною, оскільки показує всі з'єднання і взаємне розташування станцій. Зображені на карті лінії не відображають реальної відстані і кривизни дійсних ліній, що зв'язують станції, оскільки ця інформація до справи не відноситься, а тільки заважає зоровому сприйняттю.

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

Міркування

 

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

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

Конкретні дані.

Акумулятор в автомобілі Сюзен розрядився.

Нове виведене знання. Автомобіль Сюзен не заведеться.

Зовсім не складно запрограмувати систему, що працює відповідно до основних правил логічних висновків, але перш, ніж машина зможе демонструвати щось подібне реальному інтелекту, доведеться знайти відповіді на деякі важливі питання. Правила утілюють знання, а тому і питання виявляються пов'язаними із знаннями. Які правила потрібні і є достатніми для того, щоб виконати завдання інтелектуально? Розглянемо спеціальне завдання, що вимагає тільки знання пристрою автомобіля. Експертна система (система, заснована на використанні знань, необхідних для виведення висновків у вузькій області) залучається в наступному діалозі:

Клієнт: Навіщо на автомобілях встановлюються ручні гальма?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Навчання

 

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

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

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

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

 

float areaOfCircle ( float radius )

{

float pi = 3.1415927;

return ( pi * radius * radius );

}

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

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


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

 

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

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

Пошук

 

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

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

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

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


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

 

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

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

Пошук є основою штучного інтелекту. Як зразок пошуку може бути представлена діагностика стану здоров'я пацієнта за допомогою застосування правил, і деякі аспекти проблеми розуміння мови.

Продукційні системи

 

Продукційна система несе в собі фундаментальні ідеї, на яких "виросли" експертні системи і мови типу Рrоlog. "Серцем" продукційної системи є процедура управління, що залишається незмінною у всіх застосуваннях. Обчислення, які виконує продукційна система, управляються набором продукційних правил і конкретними даними. Продукційні правила утворюють безліч пар "умова-дія", що визначають умови, які повинні бути виконані для того, щоб правило виявилося дозволеним до застосування, і дію, яка повинна бути виконана, якщо це правило застосувати. Робоча пам'ять зберігаєпоточний стан, і саме від поточного стану залежить, чи виконуватиметься умова конкретного правила. Продукційний цикл виключно простий: за станом робочої пам'яті слід спочатку перевірити, які правила можуть бути задоволені, зробити дозволеними до застосування всі задоволені правила, з більшості дозволених до застосування правив вибрати правило, яке слід застосувати, і відновити стан робочої пам'яті відповідно до дії застосованого правила.

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

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

 

Продукційна множина:


Дата добавления: 2019-09-02; просмотров: 144; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!