Штучний інтелект

Штучний інтелект штучного інтелекту

Терміни «штучний інтелект» і «машинне навчання» останнім часом набули неймовірну популярність. І це не тільки завдяки досягненням в науці і техніці, а тому, що інтелектуальні системи стали ближче до людей, і багато в чому це заслуга смартфонів. Уже сьогодні смартфони підказують нам дорогу по оптимальному маршруту з урахуванням пробок, радять фільм на основі наших переваг, вміють стилізувати наші фотографії під твори Ван Гога і багато іншого. Виробники смартфонів навіть почали встановлювати спеціальні «нейронні cопроцессори», які покликані прискорити ці операції. Таким процесором, наприклад, володіє новий Honor View 10 від Huawei. Але як ми прийшли до цього? Давайте розбиратися. Так що ж таке штучний інтелект?

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

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

Одним з логічних підходів у вирішенні цього завдання є спроба скопіювати розумову діяльність людини. Наприклад, ми звикли, що бачити і розпізнавати предмети – це легко. Наш мозок справляється з цим без особливих зусиль, тому що одного разу цього навчився. У 1966 році група вчених і студентів Массачусетського технологічного інституту вирішила влітку не їхати на канікули, а залишитися в кампусі і математично вирішити задачу розпізнавання об’єкта на картинці. Т. е. Вирішити одну з задач комп’ютерного зору – навчити машину по картинці визначати, що на ній зображено. Студенти назвали свою роботу The summer vision project, маючи на увазі, що це настільки просте завдання, що її можна вирішити лише за одне літо. Зараз, через більш чим 50 років, ми знаємо, що це складне завдання, у вирішенні якої вчені-дослідники і технічні гіганти все ще змагаються. Лише в 2015 році машини стали розпізнавати зображення так само добре, як люди (і навіть трохи краще). А тоді, в 1966 році фахівці з MIT не досягнули поставленої мети, але отримали результати, корисні для подальших досліджень.

Завдяки дослідженням нейробіологів зараз у нас є певне уявлення про те, як влаштований людський мозок. Це величезний набір мозкових клітин – нейронів, кожен з яких виконує одну дуже просту функцію – отримує сигнал від інших нейронів, і за певних умов комбінації цих сигналів відбувається так звана активація нейрона і він випускає сигнал далі. Незважаючи на всю простоту роботи одного нейрона, їх сукупність (а їх кількість в нашому мозку обчислюється мільярдами) дозволяє нам займати місце найрозумніших істот на цій планеті, або хоча б вважати себе такими. Коли ми чогось вчимося, будь то ходити, кататися на лижах, говорити або вважати, нейрони головного мозку змінюють свою функцію активації, т. Е. Умови, при яких вони пропускають сигнал далі. Ці знання про роботу головного мозку вчені і втілили в штучних нейронних мережах – одному з найбільш успішних методів штучного інтелекту.

Але от питання: якщо люди займаються цими завданнями з 40-х років минулого століття, найяскравіші фантастичні книги про ІІ були написані в 50-х, а комп’ютер увійшов в повсякденність ще в 90-х, то чому прорив стосовно систем штучного інтелекту ми спостерігаємо тільки зараз, в останні 5-10 років? Для відповіді на це питання потрібно подивитися на історію. Перцептрон і дві зими штучного інтелекту

Першою спробою змоделювати діяльність мозкового нейрона був запропонований в 1943 році штучний нейрон Маккалок – Питтса – математична модель природного, т. Е. Людського нейрона. Так само як в реальному нейроне, в штучний нейрон надходить сигнал (число 0 або 1), і після простих обчислень нейрон так само випускає сигнал (0 або 1). Мережа з таких нейронів могла вирішувати найпростіші логічні завдання – так було покладено початок методу нейронних мереж. Правда, для мережі нейронів Маккалок – Питтса ще не було придумано методів її навчання, і тому всі внутрішні обчислення в кожному нейроні вручну налаштовувалися людиною.

Перша модель нейрона, яка мала свій метод навчання на безлічі вхідних даних і бажані результати, був так званий перцептрон, описаний Френк Розенблат в 1958 році.

Обидві ці моделі нейрона як функції активації використовували найпростішу – лінійну функцію. Це сильно обмежувало їх здатності в рішенні складних задач.

У 1969 році в світ вийшла робота Мінського і Пейперта, в якій математично було доведено, що збільшення розмірів мережі, що складається з перцептронів, не веде до поліпшення її здібностей, т. Е. Не збільшує її інтелект. Незважаючи на те що цей висновок стосувався тільки конкретної моделі нейрона – перцептрона, це сильно вплинуло на інтерес наукової спільноти до нейронних мереж в цілому. Настала так звана «зима штучного інтелекту»: безліч лабораторій, які займалися нейронними мережами, втратили ентузіазм і позбулися фінансування. Нейронні мережі поступилися місцем іншим об’єктам дослідження.

Кінець першої зими штучного інтелекту прийшов, коли група канадських вчених (серед яких були Девід Румельхарт і, як зараз кажуть, дідусь нейронних мереж Джеффрі Хінтон) в 1986 році придумала універсальний метод навчання нейронних мереж для будь-яких, навіть найскладніших функцій активації нейронів. Якщо уявити нейронну мережу як послідовність шарів з нейронів, то надходить сигнал (наприклад, картинка або звуковий файл з промовою людини, якщо ми говоримо про розпізнавання) проходить крізь шари нейронів один за іншим, і на останньому шарі ми отримуємо відповідь (текстовий опис того, що зображено на картинці, або текст, який був сказаний людиною). Метод, придуманий Хінтон і Румельхартом, полягає в тому, щоб порівняти отриману відповідь з бажаним, зрозуміти, наскільки ми помилилися, а потім послідовно, в зворотному порядку пройти по верствам і перенавчити нейрони, щоб вони краще працювали на обраному прикладі картинки / звуку. Метод так і називали – метод зворотного поширення помилки, і він до цих пір є найпростішим і надійним методом навчання нейронних мереж і використовується повсюдно.

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

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

У той час нейромережі були витіснені методом опорних векторів, запропонованим ще в 1963 році радянськими вченими Олексієм Червоненкіса і Володимиром Вапніка. Суть методу легко зрозуміти, уявивши собі, що дві сестри святкують день народження в один день і їм дарують один торт на двох. З одного боку торта сині свічки для старшої, а з іншого боку червоні для молодшої. Завдання – розрізати торт на дві частини так, щоб кожній сестрі дістався шматок тільки з її свічками і щоб відстань від лінії розрізу до червоних і синіх свічок було максимальним. Метод опорних векторів дозволяє вирішити таке завдання математично, знаючи тільки координати свічок. У контексті завдань штучного інтелекту навчанням є вибір лінії розрізу, а дізнавшись один раз цю лінію, далі можна прогнозувати, якого кольору виявиться нова свічка на торті, знаючи її координати. У 1990 році Вапник емігрував в США, і в 1995 році він доопрацьовує цей метод для навчання більш складним (нелінійним) залежностям. Отриманий метод на рубежі 2000-х використовувався повсюдно, наприклад, для розпізнавання рукописного тексту, класифікації зображень і багатьох інших завдань штучного інтелекту. До речі, Володимир Вапник зараз викладає в Колумбійському університеті і працює в Facebook. Повернення нейронних мереж

Так чому ж нейронні мережі повернулися, та ще з таким успіхом? І чому саме зараз настав їх світанок? Як люди вирішили всі описані вище проблеми і навчилися навчати глибокі мережі?

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

Необхідність використання великих обсягів даних призводить до того, що під кожну задачу потрібно шукати індивідуальне рішення. Найчастіше використовують «краудсорсінг» – залучення великої кількості найманих працівників для розмітки наявних даних і формування великої бази навчальних прикладів. Для того щоб перші шари навчалися при зворотному поширенні помилки, були придумані нові функції активації нейронів, завдяки яким вплив помилки не згасає. А ще трохи пізніше придумали ResNet – архітектуру мереж, при якій кожен N-й шар пов’язаний не тільки з подальшим шаром, але і з остаточної помилкою безпосередньо.

Для боротьби з перенавчанням використовується кілька прийомів. Найпоширенішим з них є класичний метод регуляризації Тихонова. На кожен нейрон наступного шару впливають нейрони з попереднього шару з деякими коефіцієнтами (або, як кажуть, «вагами»). Саме ці ваги ми і намагаємося визначити під час навчання. Чим більше вага, тим більше вплив. Використовуючи метод регуляризації Тихонова в процесі навчання, ми намагаємося не тільки, щоб отриманий нами відповідь збігся з заданим, а й щоб вага зв’язків між нейронами не мав дуже великих значень. Т. е. Ми намагаємося штучно обмежити вплив попередніх нейронів на наступні. У 2012 році Хінтон і його студенти придумали метод, який нагадує роботу мозку під час похмілля. Відомо, що вечірки з алкоголем тягнуть за собою відмирання нейронів головного мозку. Однак на ранок, незважаючи на головний біль, людина продовжує функціонувати, пам’ятає, як його звуть, і так далі. Це говорить нам про те, що функції мозку розподілені між нейронами, і смерть деяких з них не означає виключення функції. Метод, запропонований Хінтон, називається Dropout і працює схожим чином: на кожній ітерації навчання нейромережі частина нейронів випадковим чином вбивається, щоб інші нейрони заповнили прогалину і взяли на себе функцію убитих, а на наступній ітерації навчання вбиваються інші випадково вибрані нейрони. Це дозволяє «розмазати відповідальність» між нейронами і зменшити ймовірність перенавчання.

Отже, у формулі: «Навчання глибоких мереж = модель + теорія навчання + великі дані + залізо» залишався тільки останній елемент. І ось тут починається найцікавіше.

Виявилося, що для навчання нейронних мереж ідеально підходять комп’ютерні відеокарти. Графічні карти (GPU – graphics processing unit) зробили стрибок у розвитку за рахунок інтересу до відеоігор. У відеоіграх на екрані ми бачимо тривимірний віртуальний світ, в якому живуть персонажі гри і їх оточення.

Модель цього віртуального світу – це набір точок в тривимірному просторі. Але на екрані ми бачимо двомірну картинку. Для проектування тривимірного віртуального світу на наш плоский двомірний екран необхідно виконувати безліч паралельних однотипних операцій, які представляють собою прості матричні множення (т. Е. Комбінації множення і додавання). Крім того, при відображенні віртуального світу постійно проводяться звернення до великих обсягів пам’яті, т. К. Необхідно відображати текстури. Тому при проектуванні графічних карт закладаються високий ступінь паралелізму (т. Е. Виконання великого числа однотипних операцій, що не залежать один від одного) і пропускна здатність пам’яті, а розплачуватися за це доводиться меншій тактовою частотою і не настільки розвинені засоби розгалуження (конструкцій «якщо. то. »), як в традиційних процесорах.

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

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

Штучний інтелект останні кілька років на

А ось на виробництвах часто використовується зв’язка «людина – машина», коли система з штучним інтелектом спочатку навчається тому, як людина, наприклад, закручує гайки (з якою амплітудою або зусиллям), і тільки після цього повторює його дії.

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

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

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

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

Саме тому виробники смартфонів в даний час розробляють і впроваджують спеціальний вид процесорів – NPU (neural processing unit), які також називають прискорювачами штучного інтелекту (AI accelerator). Вони покликані збільшити продуктивність виконання паралельних обчислень аналогічно GPU і споживати менше енергії. Ці процесори поряд з GPU і звичайними CPU встановлюються на одному і тому ж чіпі всередині смартфона.

Наприклад, одним з перших чіпів з впровадженим прискорювачем штучного інтелекту є процесор Kirin 970 виробництва компанії Huawei, який був представлений у вересні 2017 року. Зараз такий процесор встановлений в новому смартфоні Honor View 10, що надійшов у продаж в Росії в лютому 2018 року. Виробник заявляє, що вже зараз цей чіп виконує ряд функцій, що називається, «на борту»:

Розпізнавання сцени при зйомці фотографії, яка адаптує параметри камери до об’єкта на передньому плані.

Аналіз дій користувача і адаптація до того, як він використовує смартфон, з метою мінімізації енерговитрат.

Машинний переклад, що виконується встановленою програмою від Microsoft, використовує neural processing unit для своєї нейромережі.

Спеціальна нейронна мережа для придушення шуму в записуваних звукових сигналах.

Разом, що ми маємо? Смартфон нарешті починає виправдовувати слово «смарт» в своїй назві, отримавши процесор, що прискорює вирішення завдань штучного інтелекту. Вже зараз він напханий безліччю алгоритмів, які вирішують складні технічні завдання іноді навіть краще, чим якби їх вирішував людина. При цьому однією з таких завдань є аналіз дій власника. Здається, що ще трохи – і ваш смартфон буде знати про вас більше, чим рідна мати. Майбутнє вже тут. І якщо ви думаєте, що повстання машин почнеться, коли skyNet оголосить полювання на Джона Коннора, то ви помиляєтеся. Воно вже почалося. І воно, можливо, вже зараз у вашій кишені під виглядом звичного гаджета.

ВАМ ТАКОЖ МОЖЕ СПОДОБАТИСЯ