Education, study and knowledge

Глибинні нейронні мережі: що це таке і як вони працюють

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

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

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

  • Пов'язана стаття: «Що таке когнітивна наука? Його основні ідеї та етапи розвитку»

Що таке глибокі нейронні мережі і чим вони характеризуються?

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

instagram story viewer

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

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

штучні нейронні мережі

Давайте уявимо, що ми знаходимося на нашій кухні, і ми вирішили шукати апельсин, дуже просте завдання.. Ми знаємо, як легко визначити апельсин, а також знаємо, як відрізнити його від інших фруктів, які ми знаходимо на кухні, таких як банани, яблука та груші. як? Оскільки в нашому мозку ми добре засвоїли типові властивості апельсина: його його розмір, форма, колір, запах... Усе це параметри, які ми використовуємо, щоб знайти помаранчевий.

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

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

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

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

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

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

А коли ми говоримо про апельсини та грейпфрути, ми цілком можемо говорити про собак та вовків, курей та курчат, книжки та зошити... Ці ситуації — це випадки, коли простого ряду «якщо...» («якщо...») не вистачить, щоб чітко розмежувати одне й інше. інший. Потрібна більш складна, нелінійна система, яка є точнішою, коли йдеться про розрізнення різних елементів. Щось, що враховує, що між подібними можуть бути відмінності. Тут на допомогу приходять нейронні мережі.

Більше шарів, більше схоже на людський мозок

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

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

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

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

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

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

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

  • Вас може зацікавити: «Як працюють нейрони?»

Що це таке і як саме вони працюють?

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

Уявімо, що у нас є така нейронна мережа: у нас є три шари штучних нейронів. Припустимо, що перший шар має 4 нейрони або вузли, другий 3, а останній має лише 2. Це все приклад штучної нейронної мережі, яку досить легко зрозуміти.

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

Другий шар нашої гіпотетичної моделі — це прихований шар, який розташований прямо посередині першого й останнього шарів., ніби наша нейронна мережа була бутербродом. У цьому прикладі ми маємо лише один прихований шар, але їх може бути скільки завгодно. Ми можемо говорити про 50, 100, 1000 або навіть 50 000 шарів. По суті, ці приховані шари є частиною нейронної мережі, яку ми б назвали глибокою нейронною мережею. Чим більше глибина, тим складніша нейронна мережа.

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

У нейронній мережі кожен штучний нейрон пов'язаний з усіма наступними. У нашому прикладі, де ми прокоментували, що маємо три шари з 4, 3 і 2 нейронів, 4 вхідного рівня є з’єднані з 3 прихованого шару, а 3 прихованого шару з 2 виходу, що дає нам загалом 18 з'єднання.

Усі ці нейрони з’єднані з нейронами наступного шару, надсилаючи інформацію у напрямку вхід->прихований->вихід.. Якби було більше прихованих шарів, ми б говорили про більшу кількість з’єднань, надсилаючи інформацію від прихованого шару до прихованого, поки вона не досягне вихідного рівня. Отримавши інформацію, вихідний рівень дасть нам результат на основі інформації, яку він отримав, і способу її обробки.

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

Як працюють штучні нейрони?

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

Кожен зв’язок, який цей нейрон має з трьома нейронами попереднього шару, приносить значення «x», яке є значенням, яке посилає нам попередній нейрон.; і він також має значення "w", яке є вагою цього з'єднання. Вага – це величина, яка допомагає нам надавати більше значення одному зв’язку над іншими. Коротше кажучи, кожне з’єднання з попередніми нейронами має значення «x» і «w», які множаться (x·w).

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

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

нейронна мережа

Ця формула означає, що необхідно створити суму всіх вагових коефіцієнтів «w», помножених на всі значення «x», які нейрон отримує з попереднього шару. До цього додається ухил «b».

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

А як навчити всю мережу?

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

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

нейронна мережа

Це рівняння є середньоквадратичною помилкою. Ми збираємося зробити суму y (x), яка є значенням, яке наша мережа дала нам під час взаємодії, мінус «a», яке є значенням, яке ми очікували, щоб вона нам дала, зведене в квадрат. Нарешті, ми збираємося помножити цю суму на 1/2n, оскільки «n» означає кількість взаємодій, які ми надіслали для навчання нашої нейронної мережі.

Наприклад, припустимо, що ми маємо такі значення

нейронна мережа

Перший стовпець «y (x)» представляє те, що наша мережа дала нам у кожному з чотирьох взаємодій, які ми перевірили. Значення, які ми отримали, як видно, не відповідають значенням другого стовпця «а», які є бажаними значеннями для кожної з перевірених взаємодій. Останній стовпець представляє помилку кожної взаємодії.

Застосовуючи наведену вище формулу та використовуючи ці дані тут, маючи на увазі, що в цьому випадку n = 4 (4 взаємодій) дає нам значення 3,87, що є середньоквадратичною помилкою, яку має наша нейронна мережа в цих моменти. Знаючи про помилку, ми маємо зараз, як ми коментували раніше, змінити упередження та ваги кожного з нейронів та їх взаємодію з наміром, щоб у такий спосіб була помилка зменшити.

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

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

Бібліографічні посилання:

  • Пуіг, А. [AMP Tech] (2017, 28 липня). Як працюють нейронні мережі? [Відеофайл]. Відновлено з https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
  • Сантаолалла, Дж. [Подаруйте собі відеоблог] (2017, 11 квітня) CienciaClip Challenge - Що таке нейронні мережі? [Відеофайл]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
  • Шмідгубер, Дж. (2015). "Глибоке навчання в нейронних мережах: огляд". Нейронні мережі. 61: 85–117. arXiv: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509

15 важливих романсів для читання

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

Читати далі

Як вивчити англійську: 10 порад, як швидко вивчити її

Як вивчити англійську: 10 порад, як швидко вивчити її

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

Читати далі

15 коротких латиноамериканських історій (красивих та дуже надихаючих)

15 коротких латиноамериканських історій (красивих та дуже надихаючих)

Латиноамериканська література подарувала світові великі твори. Він має характерний для регіону ст...

Читати далі

instagram viewer