[PYTHON] [Maschinelles Lernen] Textklassifizierung mit dem Transformer-Modell (Aufmerksamkeitsbasierter Klassifikator)

Tor

Ändern Sie einen Teil des "Transformer-Modells für das Sprachverständnis" im Tensorflow-Lernprogramm. Textklassifizierungsaufgaben ausführen können.

Notebook Ich habe mein Notizbuch auf Github hochgeladen. transformer_classify

Kommentar

Die Hauptunterschiede zum Tutorial sind unten aufgeführt.

Die verwendeten Daten sind lebende Nachrichten

――Die in diesem Artikel vorgestellte Klassifizierungsaufgabe ist eine japanische Dokumentklassifizierung, wenn sie für geschäftliche Zwecke verwendet wird. ―― Aus diesem Grund haben wir das Livesoor News Corpus verwendet, das häufig beim maschinellen Lernen verwendet wird.

Verwenden Sie Human, um Sätze zu trennen

――Wir verwenden Human, das einen guten Ruf für das Schreiben auf Japanisch hat.

Decoder entfernen

--Decoder ist ein Mechanismus, der die Ausgabe von Encoder empfängt und in einen anderen Sprachvektor konvertiert.

Transformator reparieren

transformer_classify.ipynb


NUMLABELS = 9

class Transformer(tf.keras.Model):
  def __init__(self, num_layers, d_model, num_heads, dff, input_vocab_size, 
               target_vocab_size, pe_input, pe_target, rate=0.1):
    super(Transformer, self).__init__()

    self.encoder = Encoder(num_layers, d_model, num_heads, dff, 
                           input_vocab_size, pe_input, rate)
    self.dense1 = tf.keras.layers.Dense(d_model, activation='tanh')
    self.dropout1 = tf.keras.layers.Dropout(rate)   
    self.final_layer = tf.keras.layers.Dense(NUMLABELS, activation='softmax')
        
  def call(self, inp, tar, training, enc_padding_mask):

    enc_output = self.encoder(inp, training, enc_padding_mask)  # (batch_size, inp_seq_len, d_model)
    enc_output = self.dense1(enc_output[:,0])
    enc_output = self.dropout1(enc_output, training=training)
    final_output = self.final_layer(enc_output )  # (batch_size, tar_seq_len, target_vocab_size)
    
    return final_output

Verlustfunktion

transformer_classify.ipynb


loss_object = tf.keras.losses.SparseCategoricalCrossentropy()

def loss_function(labels, pred):
  loss_ = loss_object(labels, pred)
  return loss_

Zugabe von val_step

--Val_step mit gültigen Daten wird nach train_step hinzugefügt.

Ergebnis

Ich konnte keine sehr gute Genauigkeit erreichen.

img.png

Referenz-URL

tf2_classify BERT with SentencePiece for Japanese text. Transformator / Aufmerksamkeit erstellen und verstehen Transformer model for language understanding

Recommended Posts

[Maschinelles Lernen] Textklassifizierung mit dem Transformer-Modell (Aufmerksamkeitsbasierter Klassifikator)
[Maschinelles Lernen] LDA-Themenklassifizierung mit Scikit-Learn
Klassifikation des maschinellen Lernens
Maschinelles Lernen mit Bildern der Kategorie Caffe -1 unter Verwendung eines Referenzmodells
Modell des maschinellen Lernens unter Berücksichtigung der Wartbarkeit
Überwachtes maschinelles Lernen (Klassifikation / Regression)
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
Grundlegendes maschinelles Lernverfahren: ④ Klassifikatorlernen + Ensemble-Lernen
Klassifikation und Regression beim maschinellen Lernen
Inverse Analyse des maschinellen Lernmodells
Erstellen eines Lernmodells mit MNIST
Anwendungsentwicklung mit Azure Machine Learning
Ich habe mit dem TensorFlow --⑦ Lernmodell einen Dir en grey Gesichtsklassifikator erstellt
Ich möchte einen maschinellen Lerndienst ohne Programmierung erstellen! Textklassifizierung
<Subjekt> Maschinelles Lernen Kapitel 3: Logistisches Regressionsmodell
Aktienkursprognose mit maschinellem Lernen (Scikit-Learn)
[Maschinelles Lernen] FX-Vorhersage unter Verwendung des Entscheidungsbaums
Bilderkennungsmodell mit Deep Learning im Jahr 2016
Algorithmus für maschinelles Lernen (Implementierung einer Klassifizierung mit mehreren Klassen)
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung
<Kurs> Maschinelles Lernen Kapitel 1: Lineares Regressionsmodell
Zusammenfassung der Klassifizierung und Implementierung von Algorithmen für maschinelles Lernen
<Kurs> Maschinelles Lernen Kapitel 2: Nichtlineares Regressionsmodell
Aktienkursprognose mit maschinellem Lernen (Return Edition)
Versuchen wir die neuronale maschinelle Übersetzung mit Transformer
[Maschinelles Lernen] Regressionsanalyse mit Scicit Learn
EV3 x Pyrhon Maschinelles Lernen Teil 3 Klassifizierung
Maschinelles Lernen
Ich habe versucht, verschiedene Methoden für maschinelles Lernen (Vorhersagemodell) mithilfe von Scicit-Learn zu implementieren
Erstellen eines Positionsschätzungsmodells für den Intelligenzwettbewerb menschlicher Wölfe mithilfe von maschinellem Lernen
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Datenversorgungstricks mit deque beim maschinellen Lernen
Gaußscher EM-Algorithmus mit gemischtem Modell [statistisches maschinelles Lernen]
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 2
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 3
Klassifizieren Sie Informationen zum maschinellen Lernen nach Themenmodellen
Versuchen Sie es mit dem Jupyter Notebook von Azure Machine Learning
[Maschinelles Lernen] Extrahieren Sie ähnliche Wörter mechanisch mit WordNet
Kausales Denken mit maschinellem Lernen (Organisation von Methoden des kausalen Denkens)