Sieć, która stawia przecinki.
Napisana od zera w Octave.

Perceptron wielowarstwowy z ręcznie wyprowadzonym backpropem.

Kliknij w ramkę i wpisz własny tekst.

Zadanie

Klasyfikacja tokenów.

Tokenizer składa wielkość liter.

Dane

Jedenaście książek z Wolnych Lektur.

Rozkład etykiet jest silnie niezbalansowany.

Udział etykiet w każdym zbiorze

przecinek kropka reszta paska: brak znaku
Pasek to 100% tokenów zbioru.

Model

w₋₃ w₋₂ w₋₁ wᵢ w₊₁ w₊₂ w₊₃ 7 indeksów słownika K = 3 E 5001 × 50 wiersze E x konkatenacja, 350 7 × 50 W₁x + b₁ ReLU W₁: 128 × 350 a₁ warstwa ukryta, 128 W₂a₁+b₂ softmax W₂: 3 × 128 , . 3 klasy
Przebieg w przód dla jednego słowa.

Siedem indeksów wybiera wiersze macierzy zanurzeń E.

Inicjalizacja.

Backprop wyprowadzony na kartce.

Wyniki

Metryka to Macro-F1 na zbiorze testowym.

Klasa Precyzja Czułość F1
NONE0,9220,9220,922
COMMA0,5880,4670,520
PERIOD0,3330,4420,381
Macro-F10,608
Pojemność modelu nie była wąskim gardłem. Była nim precyzja rzadkich klas.
Co dała każda zmiana, w kolejności wprowadzania
Krok Zmiana Macro-F1
punkt wyjściaα = 1, K = 2, lr 0,01, 10 epok0,535
optymalizatorlr z 0,01 na 0,005, 30 epok, cierpliwość 5≈ 0,555 (wal.)
kontekstK z 2 na 3≈ 0,559 (wal.)
wagi klasα z 1 na 0,50,606
retreningα = 0,5, czysty przebieg0,608

Pełna odwrotna częstość.

Dalej

  1. Preprocessing i baza bigramowazrobione
  2. MLP, ręczny backpropzrobione
  3. Bi-LSTM albo mini-Transformerw toku
  4. Rozszerzona interpunkcja: pytajnik i wykrzyknik
  5. Multi-task: wielkie litery
  6. REST API i wersja MVP

Kod, wagi, korpus, artykuł

Repozytorium
Cały potok w Octave.
Model na Hugging Face
model.mat, karta modelu.
Korpus na Hugging Face
1,2 mln par w parquet.
Artykuł
Cel, metoda, wyniki, wnioski.