Użyj brain.js do zbudowania sieci neuronowej

Sep 14, 2025
Jak
brain.js neural network
(Kredyt obrazu: Getty Images)

Brain.js to fantastyczny sposób na zbudowanie sieci neuronowej. Wystarczy umieścić, sieć neuronowa jest metodą uczenia się maszynowego, który działa w podobny sposób na ludzki mózg. Biorąc pod uwagę prawidłową odpowiedź na pytanie (jak ", która opcja wybierze ten użytkownik?"), Powoli dowiaduje się wzorca i relacji między wejściami i odpowiedziami. Jednym z przykładów sieci neuronowej jest system rozpoznawania twarzy Facebooka, Deepface.

Ale ze względu na złożony język domeny sieci neuronowych i pozornie stromych krzywej uczenia się, może być trudne do rozpoczęcia rozpoczęcia.

W tym samouczku destylujemy teorię do potrzeb, aby dowiedzieć się, a ważne, utknęło w rzeczywistości za pomocą brain.js do stworzenia sieci neuronowej. Do końca będziesz mieć aplikację internetową, która zadaje pytania wielokrotnego wyboru na temat optymizmu użytkownika. Po przesłaniu, odpowiedzi te szkolą sieć neuronową do prawdopodobieństwa naszego użytkownika wybierając każdą opcję na nowe pytanie.

Chcesz bardziej przydatne narzędzia do projektowania stron internetowych? Zobacz nasz post na wybieranie idealnego Kreator strony internetowej . Lub jeśli potrzebujesz gdzieś do bezpiecznego przechowywania plików, sprawdź nasz wybór najlepszych magazyn w chmurze . Planujesz złożoną stronę internetową? Będziesz potrzebował solidnego hosting usługa, która może nadążyć.

Pobierz pliki potrzebne do tego samouczka.

01. Skonfiguruj projekt

Po pierwsze, pobierz i zainstaluj niezbędne zależności. Ten samouczek zakłada, że ​​masz pracującą wiedzę na reakcję lub równoważne odwzorowanie do preferowanej alternatywy.

Utwórz aplikację Reaction za pomocą żądanej metody. Możesz spróbować Facebooka Utwórz aplikację Narzędzie, zainstalowane przy użyciu następujących czynności:

npm install create-react-app -g

02. Uruchom aplikację

Teraz możemy zbudować, zainstalować brain.js i rozpocząć naszą aplikację:

 NPX Create-React-React-APP Optymizm-NN
CD Optimizm-NN
NPM Zainstaluj BrainJs.
NPM Start 

Zamierzamy wykonywać obliczenia sieci neuronowej w przeglądarce. Sieci neuronowe są intensywne zasobów i należy przeładować na serwer. Jednak ten sposób szybki jest skonfigurowany i w porządku dla naszych podstawowych potrzeb. Teraz dodajmy brain.js do naszego punktu wejścia (w moim przypadku app.js).

 Importuj mózg z "brain.js";

03. Zdefiniuj pytania szkoleniowe

brains.js neural network

Wizualizacja naszej sieci neuronowej. Wejścia pochodzą z wartości optymizmu każdej opcji na pytanie. Są one następnie manipulowane przez ukrytą warstwę, aby dać nam dane wyjściowe - prawdopodobieństwo wybrania każdej opcji (Kredyt obrazu: Harry Gray)

Musimy zdefiniować nasze pytania szkoleniowe dalej. W osobnym miejscu Pytania Plik, będziemy potrzebować szkolenia i ValidationQuestions. szyk. Możesz znaleźć moją listę na git repo lub stworzyć własne. Im więcej pytań szkoleniowych, tym dokładniejsze wyniki. Pamiętaj, aby zaimportować je do punktu wejścia.

 Eksportuj konstrukcje = [
  {
    ID: "Q1",
    Pytanie: "Czy często widzisz najlepsze rzeczy?",
    Opcje: [
      {ID: 'Q1a', Etykieta: "Nie tak naprawdę", Wartość: 0,2,},
      {ID: 'Q1B', Etykieta: "Zawsze", wartość: 1,0,},
      {ID: 'Q1C', Etykieta: "Zazwyczaj, tak", wartość: 0,7,},
      {ID: 'Q1D', Etykieta: "Nigdy!", Wartość: 0,0,},
    ],
  },
];

Dla obu macierzy potrzebujemy pytania, tablicę czterech opcji, które zawierają etykietę i wartość optymizmu. Ta wartość będzie wejściem dla naszej sieci neuronowej.

Upewnij się, że zmieniasz zamówienie i saldo wartości, lub sieć neuronowa może skupić się zbyt wiele w indeksie opcji w tablicy! Nasza sieć neuronowa trwa cztery wejścia i daje cztery wyjścia. Nasze dane szkoleniowe muszą pasować do tego, więc w naszym konstruktorze potrzebujemy jakiegoś stanu dla quizu i opcji użytkownika:

 to.state = {
  Szlifierki: Szkolenia. Mapa (() = & gt; tablica (4). Fill (0)),
  Szkolenie: Fałsz,
  Prognozy: Udecznione,
};

04. Zainicjuj sieć neuronową

Inicjalizacja Szlifierki tworzy tablicę dla każdego pytania zawierającego [0, 0, 0, 0] - nasz domyślny stan bez wyboru. Będziemy musieli zainicjować naszą sieć neuronową - tylko jedna linia z brain.js:

 ITS.NET = New Brain.neuralNetwork ({Hiddenlayers: 
});

brains.js neural network

Każdy element w naszym zestawie szkoleniowym musi składać się z dwóch tablic; Jeden wkład z wartością optymizmu każdej opcji i jeden wyjście zawierający wybór naszego użytkownika (Kredyt obrazu: Harry Gray)

05. Zbuduj ramy quizu

Aby zbudować ramy dla naszego quizu, musimy pętli naszych pytań i opcji szkoleniowych. Jest to dość pełne i niezbyt interesujące, więc podam przykład, aby dążyć do Ciebie, aby zmienić:

 Render () {
  powrót (
    & lt; main & gt;
      & lt; forma onsubmit = {ta.onsubmit} & gt;
        [. . .] // Iterate na pytania i wzmacniacz; Opcje
        & lt; div classname = "pytanie" & gt;
          & lt; h4 & gt; {pytanie} & lt; / h4 & gt;
          & lt; div classname = "Opcje" & gt;
            & LT; Label HTMLFOR = {IPITID} & GT;
              & lt; span & gt; {etykieta} & lt; / span & gt;
              & lt; wejście
                Type = "radio"
                wymagany
                Nazwa = {Pytanii}
                id = {opcjonalna}
                sprawdzone = {() = & gt; to.Isoptionchecked (pytanieIndex, optiindex)}
                onchange = {() = & gt; to.onoptionchange (pytanie, opcjonatex)}
              / & gt;
            & LT; / Label & GT;
            [. . .]
          & lt; / div & gt;
        & lt; / div & gt;
        [. . .]
        & lt; przycisk Type = "Prześlij" & GT; Prześlij 

Jeśli jesteś nowy, aby zareagować, zobacz dokumentacja do form budowlanych.

Możemy napisać nasze isoptionchecked. i onoptionchange. Funkcje Dalej:

 Isoptionchecked = (pytanie, opcjonalnie) = & gt; (
  to.state.traininganswers [pytanie] [OptionIndEx]! == 0
);
onoptionchange = (pytanie, opcjonalnie) = & gt; {
  to.setstate (Prevate = & gt; {
    const {treninganswer} = obiekt.Asign (Prevate, {});
    Szlifierki [pytanie] = tablica (4). wypełnienie (0);
    Szlifierki [pytanie] [OptionIndEx] = 1;
    zwrócić {treninganswers};
  });
}; 

06. Trenuj sieć neuronową

brains.js neural network

Nasze interfejs użytkownika, pokazując jedno z moich pytań szkoleniowych i jego opcji. Użyłem CSS, aby ukryć rzeczywiste przyciski radiowe i podać im wygląd przycisku przełącznika (Kredyt obrazu: Harry Gray)

Teraz, gdy nasz użytkownik kliknie opcję, aktualizujemy odpowiednie Szlifierki. tablica, aby mieć funkcję 1. W wybranym indeksie i zmień stan przycisku radiowy, aby pokazać go zgodnie z zaznaczonym.

Czas dodać naszą Onsubmit. Funkcja, gdzie budujemy dane szkoleniowe i szkolimy sieć neuronową:

 OnSubmit = e = & gt; {
    e.preventdefault ();
    const {the shinganswers} = ten.
    Const TrainingData = TrainishingStions.map ((q, I) = & gt; ({
      Wejście: Q.Options.map (O = & GT; O.Value),
      Wyjście: Szlifierki [I],
    }));
    to.setstate ({{
      Trening: Prawda,
    });
    to.net.trainasync (treningData)
      .Then (res = & gt; {
        konsola.log (RES); // dziennik częstości błędów i iterations
        to.getpredictions ()
      });
  } 

Zapętlanie się szkolenia , Tworzymy tablice wejściowe i wyjściowe potrzebujemy. Dostajemy dane wejściowe, biorąc wartość optymizmu każdej opcji i otrzymujemy dane wyjściowe od patrzenia w Szlifierki. Tablica w tym samym indeksie co pytanie.

Potem zaktualizujemy stan Szkolenie: Prawda Aby poinformować użytkownika, że ​​sieć neuronowa uczy się. W zależności od mocy przetwarzania urządzenia klienckiego i ile masz pytań, proces może potrwać kilka sekund, minut lub dłużej!

Wreszcie przekazujemy dane treningowe do naszej sieci neuronowej i opowiemy go, aby trenować asynchronicznie. Zwraca to obietnicę, która jest spełniona, gdy sieć znalazła wzór lub zrezygnować.

Zachowaj oko na szybkość zalogowania się Trainasync. . Idealnie powinien wynosić od 0 - 0,05. Jeśli jest wyższy, sprawdź swoje dane treningowe.

Stamtąd możemy uzyskać nasze prognozy:

 GetPredictions = () = & gt; {
  Const prognozy = WalidacjaQuestions.map (Q = & GT;
    to.net.run (Q.Options.map (O = & GT; O.Value))
  ));

  to.setstate ({{
    Szkolenie: Fałsz,
    prognozy,
  });
}

Za pomocą net.run. Zapytamy naszą nowo wyszkoloną sieć neuronową, aby dać nam swoje prognozy dla każdego z pytań walidacyjnych, które zdefiniowaliśmy wcześniej.

Dla wielkiego finału dodajemy naszą logikę obciążenia warunkowego i przedstawić znajomość użytkownikowi.

renderowanie() {
    const {trening, prognozy} = to.state;
    Const ValidationQuestion = ValidationQuestions 
; powrót ( & lt; main & gt; {trening i wzmacniacz; & amp; ( & LT; H2 & GT; Loading ... & LT; / H2 & GT; )} {! Prognozy i wzmacniacz; & Amp; ! Szkolenie i amp; & amp; ( [. . .] // formularz pytania szkoleniowe )} {prognozy i wzmacniacz; & amp; ! Szkolenie i amp; & amp; ( & lt; div & gt;

[I] * 100)}%} & LT; / Span & GT; & LT; / Label & GT; ))} & lt; / div & gt; & lt; / div & gt; & lt; / div & gt; )} & lt; / main & gt; ); } }

07. Rozszerz sieć

brains.js neural network

Oto nasz ostateczny widok wyników z moim pytaniem i opcjami walidacji. Przekazałem prawdopodobieństwo na inny div, aby wyświetlić go jako bar (Kredyt obrazu: Harry Gray)

Teraz masz podstawowe ramy dla quizu, spróbuj przedłużyć go z następującymi:

Znajdź rzeczywistą szybkość błędu swojej sieci neuronowej, pozwalając użytkownikom odpowiedzieć na pytania walidacyjne. Zobacz, ile razy wybrali najlepiej.

Trenuj sieć neuronową z tymi dodatkowymi odpowiedziami i sprawdzić, czy możesz poprawić dokładność.

Przenieś obliczenia sieci neuronowej na serwerze węzła z brain.js funkcjonować() i tajson () metody.

Ten artykuł pierwotnie pojawił się w wydaniu 321 magazyn netto. , wiodący na świecie magazyn internetowy. Kup problem 321. lub Subskrybuj netto. .

Czytaj więcej:

  • Najlepsze biblioteki JavaScript
  • 9 najlepszych struktur JavaScript, aby spróbować
  • 22 Genialne wtyczki jquery

Jak - Najpopularniejsze artykuły

Samouczek Kołowrotek Instagram: Podręcznik dla początkujących

Jak Sep 14, 2025

(Kredyt obrazu: Facebook) Ta samouczek bębnów Instagram będzie miał korzystanie z funkcji wideo jak profesjonalis..


Jak używać szkicu Grawitacji

Jak Sep 14, 2025

(Kredyt obrazu: szkic grawitacji) Szkic grawitacji, narzędzie do projektowania i modelowania dla Creatives VR, konty..


Designer powinowactwo: Jak używać ograniczeń

Jak Sep 14, 2025

Projektant powinowactwa jest popularne Sztuka wektorowa narzędzie. Jak również wersje Mac i Windows,..


Jak wytwarzać twarz animacji

Jak Sep 14, 2025

Kiedy byłem pierwszym uczeniem się tworzyć platformy postaci w Maya Way z powrotem w 2002 r. Podczas pracy na PlayStation 2 ty..


Utwórz sztukę portretową w Corel Malarz

Jak Sep 14, 2025

Strona 1 z 2: Strona 1 Strona 1 Strona 2 Ten warsztat wprowadzi Ci�..


Model Darth Vader w Zbrush

Jak Sep 14, 2025

Strona 1 z 2: Strona 1 Strona 1 Strona 2..


Utwórz responsywny pulpit nawigacyjny z figma

Jak Sep 14, 2025

FIGMA to narzędzie graficzne dla projektantów interfejsu użytkownika. Ma prosty interfejs i umożliwia współpracę z kolegami z kolegami z drużyny. Jeśli chcesz pracować w trybie offl..


Jak tworzyć włosy 3D i futro

Jak Sep 14, 2025

Możesz łatwo uzyskać przytłoczony po raz pierwszy, w którym pracujesz z futrem 3d art. oprogramowanie. W tym ..


Kategorie