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:
=> 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 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
Performance Meassures für Klassifizierungstasks:
Precision
Misst Proportion von TP unter allen positiven Predictions eines Models
=> Unter allen Vorhersagen, welche waren korrekt
Fokus auf TP und TN um FN zu erniedriegen
bei Problemen die durch FP entstehen
Recall/Sensitivity
misst die TP Vorhersagen zu allen positiven Fällen im Datensatz
=> aus allen Ergebnissen, wie viele sind korrekt vorhergesagte Ergebnisse
Fokus TP zu erhöhen um FN zu erniedrigen
bei Problemen durch FN
Accuracy
Misst Proportion von korrekten Vorhersagen (TP,TN) im Verhältnis zu allen Vorhersagen die ein Model gemacht hat
Area under the curve (AUC)
ROC-Kurve berechent
durch viele verschiedene Schwellenwerte wird Graph berechnet
wenn TPR und FPR beide = 1 niedrigster Schwellenwert
große ROC bedeutet das Wahrscheinlichkeit, besserer Klassifizierer
wird mit AUC berechnet (schwankt zwischen 0 und 1)
TPR = Proportion von positiven Datenpunkten die korrekt positiv klassifiziert wurden
je höher TPR desto mehr Datenpunkte werden nicht getroffen
FPR = Proportion von negativen Datenpunkten die als positiv klassifiziert wurden
je höher FPR desto schlechter das Modell
Matthwes Correlations Coeffizient (MCC)
bezieht TP, FP, TN, FN mit ein -> zeigt so ganzheitliches Bild
von -1 bis 1
1 perfekte Klassifikation
0 zufällige Klassifikation
-1 komplett falsche Kassifikation
über 0,3 moderat
über 0,5 gut
wichtig bei unausgewogenen Datensetzen
erkennt hier trotzdem wenn ein Modell blödsinn tut
Bezieht FP und FN mitein
Performance Meassures für Regressionstasks:
Spearman rank correlation
> 0 = postivie Correlation
0 = keine Correlation
< 0 = negative Correlation
eigentlichen Werte der Datenpunkte egal
Werte werden erst gerankt
dann gemessen wie gut gerankten Werte korrelieren
=> wie gerankte Werte sich in Relation zueinander verändern
Was sind Hyperparameter?
Werden festgelegt bevor Trainingsprozess beginnt
steuern den Lernprozess
Leistung eines Modells optimieren und zu Regulieren
Welche gängigen Hyperparameter gibt es und was ist ihre Funktion?
Lernrate
Steuert Schrittgröße des Optimierens bei jeder Trainingsitteration
Epochen
Wie oft gesamter Trainigsdatensatz beim lernen dem Modell gegeben wird
Anzahl der Layer
bestimmt Tiefe des Modells (Erheblicher Einfluss auf Komplexität und Lernfähigkeit)
Architektur
Anzahl Layer
Anzahl Neuronen pro Layer
Größe des Hidden Size
Aktivierungsfunktion
um Liniarität des Modells zu vermeiden
ermöglicht lernen
Batch Größe
Was bedeutet Fold reduction?
Ziel: Anzahl an Tokens zu reduzieren mit denen ein Modell arbeiten muss
bestimmte Tokens oder Subwortmuster in einem Token vereinen (BPE)
=> reduziert Anzahl der Token
=> Zahl der Tokens zu reduzieren hilft Rechengeschwindigkeit und Speichereffizienz
erlaubt längere Sequenzen zu prozessieren ohne die maximale Tokenlength zu erreichen
Was sind generelle Tokenizer?
große Vielfalt an Textarten und Stilen
viele Sprachen
Conversationen, Chats, Paper, Blogs
Können auf Vielseitigkeit an Text angewendet werden ohne viel Anpassung
größerer Mehraufwand beim trainieren
nuorcierte Sprache/Motive können leicht übersehen werden
auf großen Datensets ohne speziellen Downstram task trainiert
Wie funktionieren spezifische Tokenizer?
für spezifische Art von Text oder Aufgabe
Zugeschnitten für bestimmte Ausdrücke, Symbole, Entitäten die von genrellen Tokenizern nicht so gut erfasst würden
kann Probleme mit Texten/Domains haben auf die er nicht trainiert wurde
auf kleineren Datensets trainiert
Welche Rolle spielt die Vocabulary size?
Gesamtzahl an Charaktern und Subwörtern die ein Model beim Training erkennt
Größeres Vocab
kann mehr Wörter erfassen -> bessere Performance
kann Sequenzlänge reduzieren
kleinere Vocabs
reduzieren Speicherbedarf
stärker frequentes splitten von Tokens in Subwörter -> weniger intuitive Bedeutung
=> zu große Vocabs verhindern das Erkennen von gemeinsamen Elementen in Sequenzen
Welche Rolle spielt die Sequenzlänge?
Zahl der Tokens die ein Modell aus einem Input prozessiert
längere Sequenzen
erlauben mehr Kontext und Abhänigkeiten zu erkennen und zu lernen
braucht mehr Rechenpower (steigt quadratisch)
kürzere Sequenzen
reduzieren Computational Cost
Kontext kann verloren gehen
Welche Rolle spielt die Größe des Trainingsdatensatzes?
Menge an Daten die ein Modell zum trainieren nutzt
große Datensätze
erlaubt mehr Muster zu lernen
robusteres Model
besser für Generalisierung (reduziert overfitting)
kleinere Datensätze
weniger Resourcen
Risiko des Ausweniglernens steigt
Welchen Zusammenhang gibt es zwischen Vocab Größe, Trainigsdatengröße und Sequenzlänge?
Vokabular und Trainingsdaten
bei kleinen Datensetzen besser nicht zu großes Vokabular
Gefahr das Bedeutung verloren geht
Sequenzlänge und Trainingsdaten
bei kleinen Datzensetzen, besser die Sequenzlänge kürzer halten
Modell muss sich auf das wesentliche fokusieren
Vokabular und Sequenzlänge
größere Vokabulare brauchen längere Sequenzen
zu großen Tokens bei kleinen Sequenzen schwer Kontext zu geben
Zuletzt geändertvor 2 Monaten