Нейросети: що це таке і як працює

  1. Ігри з ботами
  2. Казки про Скайнет
  3. * * *
  4. Зроби сам
  5. А можна зіграти в цю гру прямо тут

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

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

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

Ідея нейромережі полягає в тому, щоб зібрати складну структуру з дуже простих елементів. Навряд чи можна вважати розумним один-єдиний ділянку мозку - а ось люди зазвичай на подив непогано проходять тест на IQ. Проте до цих пір ідею створення розуму «з нічого» зазвичай висміювали: жарті про тисячу мавп з друкарськими машинками вже сотня років, а при бажанні критику нейромереж можна знайти навіть у Цицерона, який єхидно пропонував до посиніння підкидати в повітря жетони з буквами, щоб рано чи пізно вийшов осмислений текст. Однак в XXI столітті виявилося, що класики єхидничали дарма: саме армія мавп з жетонами може при належному завзятості захопити світ.

Краса починається, коли нейронів багато

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

Працює перцептрон простіше нікуди: він отримує кілька вихідних чисел, примножує кожне на «цінність» цього числа (про неї трохи нижче), складає і в залежності від результату видає 1 або -1. Наприклад, ми фотографуємо чисте поле і показуємо нашу нейрона якусь точку на цій картинці - тобто посилаємо йому в якості двох сигналів випадкові координати. А потім запитуємо: «Дорогий нейрон, тут небо або земля?» - «Мінус один, - відповідає болванчик, безтурботно розглядав купчасті хмари. - Ясно ж, що земля ».

«Тикати пальцем в небо» - це і є основне заняття перцептрону. Ніякої точності від нього чекати не доводиться: з тим же успіхом можна підкинути монетку. Магія починається на наступній стадії, яка називається машинним навчанням. Адже ми знаємо правильну відповідь - а значить, можемо записати його в свою програму. Ось і виходить, що за кожну невірну гіпотезу перцептрон в буквальному сенсі отримує штраф, а за вірну - премію: «цінність» входять сигналів виростає або зменшується. Після цього програма проганяється вже за новою формулою. Рано чи пізно нейрон неминуче «зрозуміє», що земля на фотографії знизу, а небо зверху, - тобто просто почне ігнорувати сигнал від того каналу, по якому йому передають x-координати. Якщо такого умудреному досвідом роботу підсунути іншу фотографію, то лінію горизонту він, може, і не знайде, але верх з низом вже точно не переплутає.

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

Щоб намалювати пряму лінію, нейрон покреслену весь лист

У реальній роботі формули трохи складніше, але принцип залишається тим же. Перцептрон вміє виконувати тільки одну задачу: брати числа і розкладати по двом стопках. Найцікавіше починається тоді, коли таких елементів декілька, адже входять числа можуть бути сигналами від інших «цеглинок»! Скажімо, один нейрон буде намагатися відрізнити сині пікселі від зелених, другий продовжить возитися з координатами, а третій спробує розсудити, у кого з цих двох результати ближче до істини. Якщо ж нацькувати на сині пікселі відразу кілька нейронів і підсумувати їх результати, то вийде вже цілий шар, в якому «кращі учні» отримуватимуть додаткові премії. Таким чином досить розлога мережа може перелопатити цілу гору даних і врахувати при цьому всі свої помилки.

Перцептрони влаштовані не набагато складніше, ніж будь-які інші елементи комп'ютера, які обмінюються одиницями і нулями. Не дивно, що перший прилад, влаштований за принципом нейромережі - Mark I Perceptron, - з'явився вже в 1958 році, всього через десятиліття після перших комп'ютерів. Як було заведено в ту епоху, нейрони у цього громіздкого пристрої складалися не з рядків коду, а з радіоламп і резисторів. Вчений Френк Розенблат зміг спорудити тільки два шари нейромережі, а сигнали на «Марк-1» подавалися з імпровізованого екрану розміром в цілих 400 точок. Пристрій досить швидко навчилося розпізнавати прості геометричні форми - а значить, рано чи пізно подібний комп'ютер можна було навчити, наприклад, читання букв.

Розенблатт і його перцептрон

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

Втім, були серед піонерів кібернетики і невиправні скептики, самим грізним з яких виявився колишній однокурсник Розенблатта, Марвін Мінський. Цей учений мав не менш гучної репутацією: той же Азімов відгукувався про нього з незмінною повагою, а Стенлі Кубрик запрошував в якості консультанта на зйомки «Космічної одіссеї 2001 року». Навіть по роботі Кубрика видно, що насправді Мінський нічого не мав проти нейромереж: HAL 9000 складається саме з окремих логічних вузлів, які працюють в зв'язці один з одним. Мінський і сам захоплювався машинним навчанням ще в 1950-х. Просто Марвін непримиренно ставився до наукових помилок і безпідставним надіям: недарма саме в його честь Дуглас Адамс назвав свого андроїда-песиміста.

На відміну від Розенблатта, Мінський дожив до тріумфу ІІ

Сумніви скептиків того часу Мінський підсумував у книзі «Перцептрон» (1969), яка надовго відбила у наукової спільноти інтерес до нейромереж. Мінський математично довів, що у «Марка-1» є два серйозних вади. По-перше, мережа всього з двома шарами майже нічого не вміла - але ж це і так вже був величезний шафа, який пожирає безліч електрики. По-друге, для багатошарових мереж алгоритми Розенблатта не годилися: по його формулі частина відомостей про помилки мережі могла загубитися, так і не дійшовши до потрібного шару.

Мінський не збирався сильно критикувати колегу: він просто чесно зазначив сильні і слабкі сторони його проекту, а сам продовжив займатися своїми розробками. На жаль, в 1971 році Розенблатт загинув - виправляти помилки перцептрону виявилося нікому. «Звичайні» комп'ютери в 1970-х розвивалися семимильними кроками, тому після книги Мінського дослідники просто махнули рукою на штучні нейрони і зайнялися більш перспективними напрямками.

Розвиток нейромереж зупинилося на десять з гаком років - зараз ці роки називають «взимку штучного інтелекту». До початку епохи кіберпанку математики нарешті придумали більш підходящі формули для розрахунку помилок, але наукове співтовариство спочатку не звернув уваги на ці дослідження. Тільки в 1986 році, коли вже третя поспіль група вчених незалежно від інших вирішила виявлену Мінським проблему навчання багатошарових мереж, робота над штучним інтелектом нарешті закипіла з новою силою.

Хоча правила роботи залишилися колишніми, вивіска змінилася: тепер мова йшла вже не про «перцептронах», а про «когнітивних обчисленнях». Експериментальних приладів ніхто вже не будував: тепер всі потрібні формули простіше було записати у вигляді нескладного коду на звичайному комп'ютері, а потім зробити цикл програму. Буквально за пару років нейрони навчилися збирати в складні структури. Наприклад, деякі шари шукали на зображенні конкретні геометричні фігури, а інші підсумовували отримані дані. Саме так вдалося навчити комп'ютери читати людський почерк. Незабаром стали з'являтися навіть самообучающиеся мережі, які не отримували «правильні відповіді» від людей, а знаходили їх самі. Нейросети відразу почали використовувати і на практиці: програму, яка розпізнавала цифри на чеках, із задоволенням взяли на озброєння американські банки.

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

1993: капча вже морально застаріла

До середини 1990-х дослідники зійшлися на тому, що найкорисніше властивість нейромереж - їх здатність самостійно придумувати правильні рішення. Метод проб і помилок дозволяє програмі самій виробити для себе правила поведінки. Саме тоді стали входити в моду змагання саморобних роботів, яких програмували і навчали конструктори-ентузіасти. А в 1997 році суперкомп'ютер Deep Blue потряс любителів шахів, обігравши чемпіона світу Гаррі Каспарова.

Строго кажучи, Deep Blue не вчився на своїх помилках, а просто перебирав мільйони комбінацій

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

Друга «відлига» ІІ трапилася, тільки коли змінилася сама філософія програмування.

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

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

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

Так і сталося третє пришестя перцептронів - на цей раз вже під знайомими нам назвами «нейромережі» і «глибинне навчання». Не дивно, що новинами про успіхи ІІ найчастіше діляться такі великі корпорації як Google і IBM. Їх головний ресурс - величезні дата-центри, де на потужних серверах можна тренувати багатошарові нейромережі. Епоха машинного навчання по-справжньому почалася саме зараз, тому що в інтернеті і соціальних мережах нарешті накопичилися ті самі big data, тобто гігантські масиви інформації, які і згодовують нейромереж для навчання.

В результаті сучасні мережі займаються тими трудомісткими завданнями, на які людям просто не вистачило б життя. Наприклад, для пошуку нових ліків вченим досі доводилося довго вираховувати, які хімічні сполуки варто протестувати. А зараз існує нейросеть, яка просто перебирає всі можливі комбінації речовин і пропонує найбільш перспективні напрямки досліджень. Комп'ютер IBM Watson успішно допомагає лікарям в діагностиці: навчившись на історіях хвороб, він легко знаходить в даних нових пацієнтів неочевидні закономірності.

Люди класифікують інформацію за допомогою таблиць, але нейромереж нема чого обмежувати себе двома вимірами - тому масиви даних виглядають приблизно так

У сфері розваг комп'ютери просунулися не гірше, ніж в науці. За рахунок машинного навчання їм нарешті піддалися гри, алгоритми виграшу для яких придумати ще складніше, ніж для шахів. Нещодавно нейросеть AlphaGo розгромила одного з кращих в світі гравців в го, а програма Libratus перемогла в професійному турнірі з покеру. Більш того, ІІ вже поступово пробирається і в кіно: наприклад, творці серіалу «Картковий будиночок» використовували big data при кастингу, щоб підібрати максимально популярний акторський склад.

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

Тому особливо недовірливі заводять собі спеціальні камуфляжні окуляри, які можуть обдурити програму

«Ти всього лише машина. Тільки імітація життя. Хіба робот вигадав симфонію? Хіба робот перетворить шматок полотна в шедевр мистецтва? »(« Я, робот »)

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

Ігри з ботами

Розважатися з недовчена нейросетями дуже весело: вони часом видають такі помилки, що в страшному сні не присниться. А якщо ІІ починає вчитися, з'являється азарт: «Невже зуміє?» Тому зараз набирають популярність інтернет-гри з нейросетями.

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

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

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

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

Головна слабкість нейромереж в тому, что Кожна з них заточена під Певна завдання. Если натренуваті ятір на фотографіях з котиками, а потім Запропонувати їй завдання «відрізні небо від землі», програма НЕ впорається, будь в ній хоч мільярд нейронів. Щоб з'явилися по-справжньому «розумні» комп'ютери, треба придумати новий алгоритм, який об'єднує вже не нейрони, а цілі мережі, кожна з яких займається конкретним завданням. Але навіть тоді до людського мозку комп'ютерів буде далеко.

Зараз найбільшою мережею в своєму розпорядженні компанія Digital Reasoning (хоча нові рекорди з'являються мало не кожен місяць) - в їх творенні 160 мільярдів елементів. Для порівняння: в одному кубічному міліметрі мишачого мозку близько мільярда зв'язків. Причому біологам поки вдалося описати від сили ділянку в пару сотень мікрометрів, де знайшлося близько десятка тисяч зв'язків. Що вже говорити про людей!

Що вже говорити про людей

Один шар вміє впізнавати людей, інший - столи, третій - ножі ...

Один шар вміє впізнавати людей, інший - столи, третій - ножі

Такими 3D-моделями модно ілюструвати новини про нейросетях, але це всього лише крихітну ділянку мишачого мозку

Крім того, дослідники радять обережніше ставитися до гучних заяв Google і IBM. Ніяких принципових проривів в «когнітивних обчисленнях» з 1980-х років не відбулося: комп'ютери все так же механічно обраховують вхідні дані і видають результат. Нейросеть здатна знайти закономірність, яку не помітить людина, - але ця закономірність може виявитися випадковою. Машина може підрахувати, скільки разів в твіттері згадується «Оскар», - але не зможе визначити, радіють користувачі результатами або знущалися над вибором кіноакадемії.

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

Казки про Скайнет

Хоча нам самим складно втриматися від іронії на тему бунту роботів, серйозних вчених не варто навіть і питати про сценарії з «Матриці» або «Термінатора»: це все одно що поцікавитися у астронома, чи бачив він НЛО. Дослідник штучного інтелекту Елізер Юдковський, відомий за романом « Гаррі Поттер і методи раціонального мислення », Написав ряд статей, де пояснив, чому ми так хвилюємося через повстання машин - і чого варто побоюватися насправді.

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

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

* * *

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

Зроби сам

Нейронну мережу можна зробити за допомогою сірникових коробок - тоді у вас в арсеналі з'явиться фокус, яким можна розважати гостей на вечірках. Редакція Мірфа вже спробувала - і смиренно визнає перевагу штучного інтелекту. Давайте навчимо нерозумну матерію грати в гру «11 паличок». Правила прості: на столі лежить 11 сірників, і в кожен хід можна взяти або одну, або дві. Перемагає той, хто взяв останню. Як же грати в це проти «комп'ютера»? Дуже просто.

  1. Беремо 10 коробок або стаканчиків. На кожному пишемо номер від 2 до 11.
  2. Кладемо в кожен коробок два камінчика - чорний і білий. Можна використовувати будь-які предмети - лише б вони відрізнялися один від одного. Все - у нас є мережа з десяти нейронів!

Тепер починається гра.

  1. Нейросеть завжди ходить першої. Для початку подивіться, скільки залишилося сірників, і візьміть коробок з таким номером. На першому ходу це буде коробок №11.
  2. Візьміть з потрібного коробка будь камінчик. Можна закрити очі або кинути монетку, головне - діяти навмання.
  3. Якщо камінь білий - нейросеть вирішує взяти два сірники. Якщо чорний - одну. Покладіть камінчик поруч з коробкою, щоб не забути, який саме «нейрон» приймав рішення.
  4. Після цього ходить людина - і так до тих пір, поки сірники не закінчаться.

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

От і все! Зіграйте так кілька партій. Спершу ви не помітите нічого підозрілого, але після кожного виграшу мережу буде робити все більш і більш вдалі ходи - і десь через десяток партій ви зрозумієте, що створили монстра, якого не в силах обіграти.

А можна зіграти в цю гру прямо тут

08.04.2017

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

При цьому з новин не завжди зрозуміло, що ж таке ці загадкові нейромережі: складні програми, особливі комп'ютери або стійки зі стрункими рядами серверів?
Але чому тоді нейромережі відрізняються від звичайного комп'ютера, який теж зібраний з примітивних електричних деталей?
І чому до сучасного підходу не додумалися ще півстоліття тому?
А потім запитуємо: «Дорогий нейрон, тут небо або земля?
Хіба робот вигадав симфонію?
Хіба робот перетворить шматок полотна в шедевр мистецтва?
Але хіба не з найпростішої формули почалася історія самих мереж?
А якщо ІІ починає вчитися, з'являється азарт: «Невже зуміє?
З чого ми взагалі взяли, що це реальний ризик?
Як же грати в це проти «комп'ютера»?