Code Monkey home page Code Monkey logo

shape-nn-2016's Introduction

Багатошаровий персептрон. Розпізнавання геометричних фігур

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

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

Також слід перерахувати кілька важливих характеристик розробленої нами нейронної мережі:

  1. Функція активації

    Використовується стандартна функція – сигмоїд

    Знімок екрана 2024-04-05 101143

    Де α = 1

  2. Функція градієнту

    Для вихідного шару

    Знімок екрана 2024-04-05 101209

    Де:

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

    Для прихованих шарів

    Знімок екрана 2024-04-05 101242

    Де:

    • ω – вага зв’язку між двома нейронами (поточного та попереднього шару)
    • n – номер поточного шару
    • i – ітератор

    Нарешті:

    Знімок екрана 2024-04-05 101302

  3. Вхідний шар Зображення перетворюється у двовимірний масив з нулів та одиниць розмірністю 20х20 для зручнішої візуалізації у консолі. Навчаюча множина відразу формується у цьому вигляді. Для того, щоб подати дані на вхід, масив перетворюється з двовимірного у одновимірний. У приведеній програмі вхідний шар містить 400 нейронів (20*20)

  4. Прихований шар Складається з 50-ти нейронів

  5. Вихідний шар 3 нейрона. 1 – трикутник, 2 – прямокутник, 3 – лінія.

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

Код написаний на мові Javascript ES6 Перше завантаження (навчання нейронної мережі) може тривати кілька хвилин, але розпізнавання працює миттєво.

shape-nn-2016's People

Contributors

logovaser avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.