Wieso ist DNA für NLP bzw deep leanring models nach dem NLP Vorbild geeignet?
Element
Sprache
genomische Sequenzen
Charakter
Buchstaben
Nukleotide
Strukturen
Text
Genom/Transkriptom
Aufbau
Viele unterschiedliche Wörter
lange Nukelotidstränge
Trennung
an Lehrziechen/Semantisch
nicht intuitiv => keine klare Definition von Wörtern
Welche Probleme treten mit den langen Sequenzen auf und welche Lösungsmöglichkeiten gibt es?
Probleme
Speicherproblem
run-time issues
Lösungen
Daten in kleine Segmente Teilen
Spezielle Architekturen fur lange Sequenzen
k-mer Representation aller möglichen Nukleotide
Wie funktioniert Tokenization in NLP?
Segnemtation von Texten in Wörter und Subwörter
reduziert Dictionary Größe auf ein fixes Set
kann helfen unbekannte Wörter zu umgehen
Moderne Tokenizer sind Datenbasiert
nicht immer semantischer Sinn
Statistischer/Mathematischer Sinn
Tokenization bei DNA
jedes Nukelotid ein Token
sehr kleines Dictionary (4 Items)
Pairs
jede mögliche Kombination von Nukleotiden
Erhöht die Größe des Vokabulars 4^2
reduziert die Sequenzlänge um 2 Folds
Alle Codons
Dictionary Größe 64
Sequenzlänge um 3 Folds verkürzt
Datenbasierte Tokenizer
führen Tokens für representative Elemente ein
sollte Sequenzlänge erheblich verkürzen
mehr Tokens reduzieren die Seuquenzlänge
Problem:
Zu große Vokabulare verhindern das lernen von Gemeinsamkeiten
Wie funktioniert der Words Tokenizer?
er enthällt alle möglichen Aminosäuren oder Nukleotide
Wie funktioniert der Pairs Tokenizer?
Enthällt alle möglichen Paare von Charakteren
Byte-Pair-Encoding (BPE)
kreiert Base-Vokabular mit allen möglichen Charaktern die in Sequenz vorhanden sind
Merged das häufigste Paar aufeinanderfolgender Charaktere und fügt es dem Vokabular an
Endet wenn gewünsche Vocab Größe erreicht wird
=> häufige Wörter werden als ganzes representiert, seltene als Subwörter aufgeteilt
Word Piece
nutzt alle Charaktere als Base-Vokabular und fügt neue Tokens hinzu
zerlegt Worte und setzt jedem Charater einen Präfix vor
Tokens werden nach folgender Formel ausgesucht:
[Bild einfügen]
=> priorisiert mergen von Paaren bei denen indivduelle Teile weniger häufig vorkommen
Unigram
heuristische Identifikation eines initialen großen Vokabulars
wird später getrimmt
kann zb mit BPE erstellt werden
Unigram entfernt Token in dem es eine Loss Funktion berechnet
die Tokens die, diese am wenigsten erhöhen werden entfernt
meist 10 Prozent der Tokens auf einmal (aufwendige Berechnung)
die Bisis Charaktere werden nicht entfernt
Wie wurden die Tokenizer in dem Paper implementiert?
wurden mit Trainingsdatensatz trainiert
Output:
Dictionarys für jeden Transformer und jedes Datenset
Datensets wurden mit den jeweiligen Dictionarys encodet
Dictionary Größen:
100, 200, 400, 800, 1600, 3200
Vektoren für Positional Encoding
100, 512, 1024
längere Sequenzen wurden getrimmt
kürzere Sequenzen wurden gepadded
Wie wurden die Transformer für das Paper trainiert?
GPT und BERT Modelle trainiert
BERT hatte immer bessere Performance
Modelle wurden random initialisiert
auf Tokenizten Trainingsdaten trainiert
Mit Validierungsdaten wurden Hyperparameter für jede Aufgabe angepasst
2 Hidden Layer
2 Attention Heads
Hidden Vektor size 128
konstante Lernrate
Wie kann Performance evaluiert werden mit Matthews Correlations Koeffizient (MCC)?
für Kassifizierungs Tasks
Wie kann man Performance Evaltuieren mit der Spearman rank Korrelation?
für Regressions Tasks
Wie kann man Performance überprüfen in Alignement Tasks?
Coverage
Welche Ergebnisse wurden bei den Classifikations Tasks erziehlt?
Effektor Klassifikation:
Unigram Tokenizer
Dict: 100
1,3 Fold reduction
0,507 MCC
Dict Size: 3200
2,4 fold Reduction
0,367 MCC
Multiclass Classifikation:
BPE
Dict: 1600
2,5 fold Reduktion
MCC 0,995
=> größeres Dictionary führte zu höheren Fold reduction aber nicht besseren Performance
Welche Ergebnisse wurden bei den Alignement Tasks erziehlt?
alle Transformer waren sehr akkurat und die Unterschiede untereinander waren recht klein
Coverage 0,941
2 fold Reduction
Coverage 0,92
mehr als 4 fold Reduction
Dict: 400
=> Trade off zwischen Reduktion und Performance
=> Erhöhung des Vokabulars erhöht Coverage und Fold Reduktion
aber ab bestimmter Dict. Größe sinkt Coverage wieder
Welche Ergebnisse wurden bei Regressionsaufgaben erziehlt?
war akkurater mit weniger Token
=> bei Dicts. ca. 3200 konnte die Sequnezlänge um 20 fold reduziert werden
Welche Ergebnisse wurden be ider Fold Prediction erziehlt?
Trade off zwischen Performance und Vokabelgröße
es exisitiert ein Tradeoff zwischen Genauigkeit und Fold reduction
Welche Hyperparameter wurden definiert und welche Bedeutung hatten sie für das Model?
Zahl der Layer
Zahl der Attention Heads
Hidden Vektor Size
Learning rate
=> Hyperparameter nicht zu definieren hatte nur einen kleinen Effekt auf Gesamtperformance
BPE (1600, 3200) Word Pice (3200) konstant in den Top 3 aller Tests
Welches Zusammenspiel zwischen Trainingsdaten, Vocabulary size und Sequenzlänge gibt es?
Erhöung des Vocab. Sizes resultierte in einer starken Reduktion an Tokens pro Sequenz
erlaubt längere biologische Sequenzen zu untersuchen ohne die Speicherbedingungen stark zu erhöhen
Mehr Trainingsdaten führten zu einer kleineren Anzahl an Tokens pro Protein
Welche Erkentnisse konnten aus aus der Studie gezogen werden?
Data-driven Tokenizers verbessern die Performance von Transformern bei biologischen Datensetzen
keine Methode war deutlich besser als die anderen
durch die größere Fold reduction können längere Sequenzen analysiert werden
kann die Performance verbessern weil weniger Daten verloren gehen
Was bedeutet “random initialisiert”?
die Start weights von DNN werden zufällig gesetzt
soll die Symmetrie brechen und vermeinden, dass alle weights von gleichem Punkt starten
sonst immer gleicher Gradient -> keine unterschiedl. Features lernen
Verteilung:
Gausche Normalverteilung mit Mittelwert 0
Gleichmäßige Normalverteilung
Was bedeutet “learning rate”?
bestimmt Schrittgröße mit der Weights beim lernen geupdated werden
=> wie schnell Modell lernt und wie gut essich bestimmten Ergebnissen anpasst
hohe Lernrate
Schneller bei besseren Ergebnissen (schneller lernen)
kann aber übers Ziel hinausschießen -> macht lernen instabil
niedrige Lernrate
kleine Schritte während Optimierung
kann Trainingsprozess stark verlangsammen
kann in lokalen minima festhängen = suboptimale Lösungen
Welche Möglichkeiten gibt es eine dynamische Lernrate festzulegen?
Lernrate Scheduler:
startet mit höherer Lernrate, reduziert diese mit der Zeit
Warum Up Steps:
Lernrate startet klein -> steigert sich für erste paar Epochen
nimmt danach langsam wieder ab
Was sind “epochs”?
1 Epoche ist der komplette Durchlauf des Trainingsdatensatzes
besteht aus mehreren Batches
nach jedem Batch wird loss berechnet und Weights geupdated
wichtig um Overfitting und underfitting zu vermeiden
Last changeda day ago