Die Überschrift "Artikel für Sie lesen." Oktober - Dezember 2019



Hallo habr Wir veröffentlichen weiterhin Rezensionen zu wissenschaftlichen Artikeln von Mitgliedern der Open Data Science-Community auf dem Kanal #article_essense. Wenn Sie sie vor allen anderen erhalten möchten - treten Sie der Community bei !


Artikel für heute:


  1. Poly-Encoder: Transformatorarchitekturen und Strategien vor dem Training für schnelles und genaues Scoring mit mehreren Sätzen (Facebook, 2019)
  2. Impliziter Diskriminator in variierendem Autoencoder (Indian Institute of Technology Ropar, 2019)
  3. Selbsttraining mit Noisy Student verbessert die ImageNet-Klassifizierung (Google Research, Carnegie Mellon University, 2019)
  4. Momentum Contrast für unbeaufsichtigtes visuelles Repräsentationslernen (Facebook, 2019)
  5. Benchmarking der Robustheit neuronaler Netze gegenüber häufigen Störungen und Störungen (University of California, Oregon State University, 2019)
  6. DistilBERT, eine destillierte Version von BERT: kleiner, schneller, billiger und leichter (Hugging Face, 2019)
  7. Plug-and-Play-Sprachmodelle: Ein einfacher Ansatz zur kontrollierten Texterstellung (Uber AI, Caltech, HKUST, 2019)
  8. Deep Salience Representation für die F0-Schätzung in polyphoner Musik (New York University, USA, 2017)
  9. Analysieren und Verbessern der Bildqualität von StyleGAN (NVIDIA, 2019)


1. Polycodierer: Transformatorarchitekturen und Strategien vor dem Training für schnelles und genaues Scoring mit mehreren Sätzen


Autoren: Samuel Humeau, Kurt Shuster, Marie-Anne Lachaux, Jason Weston (Facebook, 2019)
→ Originalartikel
Autor der Rezension: Alexey (in slack zhirzemli)


TLDR


Der Artikel schlägt einen neuen Ansatz zur Bewertung von Satzpaaren (Aussagen) vor. Dieses Verfahren ist sowohl bei der Vorhersage der Korrespondenz einer Antwort auf einen bedingten Kontext als auch bei Aufgaben wie der Vorhersage des nächsten Urteils relevant. Die vorgeschlagene Poly-Encoder-Methode wird mit Bi-Encoder- und Cross-Encoder-Strategien verglichen. Die Methode kombiniert den Vorteil von Bi-Encoder (die Fähigkeit, die Darstellung von Antworten zwischenzuspeichern) und Cross-Encoder (nicht unbedingtes Training von Kontext- und Antwortcodierern).





Mehrsatzwertung


(Eine kleine Erinnerung an Bi und Cross Encoder-Ansätze. Für diejenigen, die vertraut sind, können Sie überspringen)


Die Aufgabe, die Übereinstimmung des Kontexts (Benutzeranforderung oder -anweisung) mit der Menge der vorhandenen Antworten zu bestimmen, ist in Dialog- und Informationsabrufsystemen am relevantesten. Es wird entweder durch Auffinden einer bestimmten Geschwindigkeit (Punktprodukt) zwischen den codierten Darstellungen des Kontexts und der Antwort oder durch gemeinsames Codieren des Kontexts und der Antwort in einen einzelnen Vektor mit anschließender linearer Transformation in einen Skalar gelöst.


Der erste Ansatz heißt Bi-Encoder und der offensichtliche Vorteil dieser Methode ist die Möglichkeit, die Darstellungen aller verfügbaren Antworten offline zu zählen. Diese Ansichten werden zwischengespeichert, und während der Inferenz müssen Sie nur den Abfragevektor finden, ein Skalarprodukt mit Antwortvektoren erstellen und das Ergebnis anordnen. Darüber hinaus ermöglicht dieser Ansatz eine effizientere Negativabtastung in der Trainingsphase. Innerhalb jeder Charge werden nämlich Darstellungen für positive Proben berücksichtigt, und negative Beispiele können direkt derselben Charge entnommen werden. Verwenden Sie den Forward-Pass im Wesentlichen für positive und negative Beispiele. Der Nachteil des Bi-Encoder-Ansatzes ist die Tatsache, dass Kontext- und Antwortdarstellungen fast unabhängig voneinander lernen. Der einzige Punkt, an dem zumindest ein Informationsfluss zwischen der Anforderungs- und der Antwortansicht möglich ist, ist das Botnetz in Form des endgültigen Skalarprodukts. Auf der Ebene von Textfeatures werden Informationen nicht gefummelt.


Der zweite Ansatz ist Cross-Encoder. Es beinhaltet eine stärkere Interaktion von Kontext und Reaktion im Lernprozess und in der Schlussfolgerung. Hier werden die Anforderungs- und Antwort-Token-Sequenzen zu einer verkettet. Ein spezielles Trennzeichen wird zwischen ihnen platziert, und jedem Teil wird eine spezielle Einbettung hinzugefügt (Anforderung, Antwort). Tatsächlich werden durch diese Einbettung die Eingabedarstellungen von Antworttoken um eine Konstante verschoben, sodass das Modell sie leichter von Anforderungstoken unterscheiden kann. Infolgedessen lernt das Modell, eine gemeinsame Darstellung der Anforderung und Antwort zu finden, so dass die endgültige lineare Ebene (Vektor -> Skalar) einen großen Logit-Wert für Paare von Sätzen zurückgibt, die miteinander übereinstimmen, und einen kleinen Wert ansonsten. Der Nachteil dieses Ansatzes ist die Unmöglichkeit, die Darstellungen von Antworten offline zu zählen: Sie müssen in der Inferenzphase zusammen mit einem bedingten Satz von Anforderungstoken ausgewertet werden. Auch der Trick, die Ideen von negativen und positiven Beispielen in der Schulungsphase wiederzuverwenden, funktioniert hier nicht mehr. Sie müssen vor der Bildung der Charge negative Proben entnehmen.


Motivation
Die folgende Lösung ermöglicht es Ihnen, die Mängel zu beheben und die Vorteile von Bi- und Cross-Encoder-Ansätzen zu kombinieren. Die Idee ist, dass wir einen Encoder trainieren möchten, der einerseits die bedingte Abhängigkeit von Antwort-Tokens von Anforderungs-Tokens berücksichtigt, und andererseits die Verwendung dieser Abhängigkeit von vorbewerteten Darstellungen der Antwort und der Anforderung erfolgen sollte. Geometrisch stelle ich mir das so vor: Verschieben Sie das Botnetz (das letzte Skalarprodukt der beiden Einreichungen) etwas tiefer in das Netzwerk. Erstellen Sie eine Interaktion zwischen der Anforderungs- und der Antwortansicht. Gleichzeitig ist die Implementierung einer solchen Interaktion nicht zu weit von der Endschicht entfernt, so dass der Hauptteil des Anforderungscodierers unabhängig vom Antwortcodierer bleibt.


Implementierung
Die Umsetzung einer solchen Idee ist recht einfach: Der Encoder von Kandidaten funktioniert wie im Fall von Bi-Encoder: Wir erhalten die Darstellung der Sequenz in Vektorform ([CLS] -Token) unter Verwendung des transformatorbasierten Modells (BERT). Diese Darstellungen werden nach dem Training des Modells zwischengespeichert.


Der Kontextcodierer komprimiert seinerseits die Darstellung der Eingabesequenz nicht in einen einzelnen Vektor. Hier belassen wir alle vom Modell codierten Sequenzvektoren.


Um eine Bewertung der Konformität des Kontexts (eine Menge von Vektoren) und des Kandidaten (ein Vektor) zu erhalten, wird der Aufmerksamkeitsmechanismus verwendet. Der Kandidatenvektor ist in diesem Fall eine Anfrage, und der Kontextvektor ist der Schlüssel. Es gilt als Skalarprodukt und weiter - Softmax nach den resultierenden Werten. Kontextvektoren werden mit der resultierenden Verteilung gewichtet und aufsummiert. Als Ergebnis erhalten wir die Kontextdarstellung in Form eines einzelnen Vektors. Und außerdem betrachten wir, wie im üblichen Bi-Encoder, das Skalarprodukt des Kontexts und des Kandidaten.


Der Artikel schlug auch eine Reihe von Möglichkeiten vor, um die Gewichtung von Kontextvektoren zu beschleunigen. Die am besten funktionierende Option war ein solcher Vorgang des Zählens der Aufmerksamkeit, bei dem nur die ersten m Vektoren der Kontextsequenz genommen wurden.


Ergebnisse
Als Ergebnis stellte sich heraus, dass Cross-Encoder immer noch am besten funktioniert. Aber Poly-Encoder ist in Bezug auf Qualitätsmetriken nicht weit dahinter und in Bezug auf die Inferenzgeschwindigkeit arbeitet es hunderte Male schneller.


2. Impliziter Diskriminator in variierendem Autoencoder


Autoren: Prateek Munjal, Akanksha Paul, Narayanan C. Krishnan (Indisches Institut für Technologie Ropar, 2019)
→ Originalartikel
Autor der Rezension: Alex Chiron (in sliron shiron8bit)


In dem Artikel schlugen die Autoren eine Architektur vor, die versucht, die Vorteile von VAE- und GAN-Ansätzen für die Bilderzeugung zu kombinieren, wobei die mit jedem Ansatz verbundenen Nachteile umgangen werden: Unschärfe bei Autoencodern, Zusammenbruch des Modus / Fehlen des Modus bei gegnerischem Training. Sie erreichen dies aufgrund der Gesamtgewichte zwischen dem Codierer und dem Diskriminator und dem gemeinsamen Generator / Decodierer, wodurch zum einen die Anzahl der Netzwerkgewichte verringert wird und zum anderen nützliche Informationen vom Diskriminator über Gradienten abgerufen werden können, wenn der Generator / Decodierer nicht abfällt in die tatsächliche Datenverteilung.


Einleitung
Bei den Erzeugungsproblemen spielt die Übereinstimmung der Verteilung der erzeugten Daten Q mit der Verteilung der realen Daten P, die durch die Kullback-Leibler-Divergenz gemessen wird, eine wichtige Rolle. Ein charakteristisches Merkmal dieses Maßes für die Entfernung von Verteilungen ist, dass es asymmetrisch ist. Dementsprechend erhalten wir unterschiedliche Bilder, je nachdem, ob wir Div_KL (P || Q) oder Div_KL (Q || P) betrachten. Wenn wir zwei Optionen für den Vergleich von Verteilungen betrachten (im Bild unten), dann ergibt die zweite Option mit Div_KL (P || Q) (aka forward-KL, aka zero avoiding) einen niedrigeren Wert und mit Div_KL (Q || P) Verteilungen aus der ersten Option werden als engere Verteilungen betrachtet. Tatsächlich sind die Ergebnisse von VAE und GAN sehr unterschiedlich: Durch den Verlust der Rekonstruktion (L2) wird die Vorwärts-KL-Divergenz minimiert (und somit werden alle Modi beibehalten, es entstehen jedoch unscharfe Bilder), und durch das Training mit einem Diskriminator wird die Rückwärts-KL-Divergenz minimiert (Bilder werden mehr erhalten) klar, aber es besteht die gefahr den mod zu überspringen





Architektur, Verluste und Ausbildung
Wie bereits erwähnt, schlagen die Autoren vor, die Unzulänglichkeiten beider Modi zu berücksichtigen und beide Minimierungen aufgrund der Netzwerkarchitektur (im Bild unten) zu kombinieren, bei der die meisten Codierer- und Diskriminatorgewichte gemeinsam sind (nur vollständig verbundene Köpfe, die die „Realität“ des Bildes vorhersagen, und Parameter sind getrennt) mu, Sigma der VAE-Latentschicht) und auch aufgrund des Trainingsmodus. Der Encoder und der Generator sind gleich. Die meisten verwendeten Verluste sind ziemlich normal: Beim L_enc-Encoder werden der L2-Fehler der Wiederherstellung und die Kullback-Leibler-Divergenz zu N (0,1) (L_prior) verwendet, der Rest ist gegnerisches Training (wir minimieren die Diskriminatorausgabe beim Trainieren des Diskriminators, maximieren sie) beim Erlernen eines Decoders / Generators), aber es gibt zwei Besonderheiten:


  • In den gegnerischen trainingsbezogenen Fällen werden dem Diskriminator 2 verschiedene Arten von generierten Daten zugeführt: über einen Codierer / Decodierer wiederhergestellt und von einem Generator / Decodierer aus Abtastwerten von N (0,1) generiert.


  • In dem L_dec-Decodiererverlust gibt es ein Element, in dem Merkmale aus der vorletzten Schicht des Diskriminators (wiederum ist dies die letzte gemeinsame Schicht zwischen dem Diskriminator und dem Codierer) für echte und wiederhergestellte Bilder verglichen werden.




Ergebnisse
Die Autoren verglichen die Ergebnisse mit VAE und anderen Arbeiten, wobei auf die eine oder andere Weise versucht wurde, VAE und GANs (VAE-GAN, alpha-GAN und AGE von Dmitry Ulyanov und Victor Lempitsky) auf Celeba- und Cifar10-Datensätzen zu kombinieren (danke für nicht Mnist). Fast die besten Indikatoren bezüglich des Rekonstruktionsfehlers und der Frechet Inception Distance-Metrik erhalten (vergleicht Aktivierungsstatistiken für das vortrainierte Netz für echte und generierte Bilder). Es wurde gesondert darauf hingewiesen, dass das Ranking nach FID stark von der gewählten Architektur abhängt. Daher ist es besser, das Ensemble der "Experten" (verschiedene Architekturen) zu überprüfen.


3. Das Selbsttraining mit Noisy Student verbessert die ImageNet-Klassifizierung


Autoren: Qizhe Xie, Eduard Hovy, Minh-Thang Luong und Quoc V. Le (Google Research, Carnegie Mellon University, 2019)
→ Originalartikel
Autor der Rezension: Alexander Belsky (in slack belskikh)


Google erhielt absolut beeindruckende 87,4% der Top1 und 98,2% der Top5 der Bildgenauigkeit. Zayuzali verdeckt pseudo-dimmbare und sehr kühne Netzwerke. Der Ansatz wurde Noisy Student genannt.





Der Algorithmus sieht ungefähr so ​​aus:


  1. Wir nehmen ein Lehrermodell, wir unterrichten ein normales Bild.
  2. Wir generieren weiche Psudo-Beschriftungen für Bilder aus dem JFT-Datensatz.
  3. Wir unterrichten das Schülermodell auf weichen Pseudoetiketten und greifen ein, sobald wir können: starke Augs, Aussetzer und stochastische Tiefe
  4. Nehmen Sie das Schülermodell, verwenden Sie es als Lehrer in Schritt 2 und wiederholen Sie den Vorgang. Der Datensatz wird wie folgt nach Klassen aufgeteilt. Zunächst haben wir EfficientNet-B0 verwendet, auf das Bild trainiert und seine Vorhersagen auf dem JFT-Datensatz ausgeführt. Dann nahmen sie die Beispiele, für die das maximale Vertrauen über 0,3 liegt. Für jede Klasse wurden 130K-Bilder aufgenommen (wenn sie nach dem Filtern mit 0,3 Trashhold weniger - dupliziert, wenn mehr - aufgenommen wurden, entsprechend den Gültigkeitsbereichen der höchsten Prädikate). Empfangene 130 Millionen Bilder, doppelte Emissionen, 81 Millionen übrig

Architektur:
EfficeintNet nimmt außerdem das Studentenmodell ein viel fetteres Lehrermodell. Sie haben auch EfficientNet selbst in EfficientNet-L0 / L1 / L2 gescannt, was zu einem L2-Modell mit 480M-Parametern führte (Resnet50 verfügt zum Vergleich über 26M-Parameter).


Lernprozess:
Butchesize 2048. Sota Modell L2 lehrte 350 Epochen. Das größte L2-Modell, das in diesem Modus 3,5 Tage lang auf einem Cloud TPU v3 Pod mit 2048 Kernen getestet wurde.


Iteratives Lernverfahren:
Zunächst unterrichteten sie B7 sowohl als Schüler als auch als Lehrer. Dann unterrichteten sie mit B7 als Lehrer den fetten L0 als Schüler. Dann wechselten wir ihre Plätze auf diese Weise und kamen zum L2-Modell, das wir am Ende als Lehrer für dasselbe L2-Modell verwendeten. Ergebnis: sota: mit 2-mal weniger Modellparametern im Vergleich zur vorherigen Zelle (FixRes ResNeXt-101 WSL) 829M Parameter)


Erhielt auch sehr gute Ergebnisse auf ImageNet-A / C / P





4. Impuls-Kontrast für unbeaufsichtigtes Lernen der visuellen Darstellung


Autoren des Artikels: Kaiming He, Haoqi Fan, Yuxin Wu, Heiliger Xie, Ross Girshick (Facebook, 2019)
→ Originalartikel
Autor der Rezension: Arseny Kravchenko (in slack arsenyinfo)


SotA ist ein unbeaufsichtigter Pretrain für verschiedene Computer Vision-Aufgaben (von der Klassifizierung bis zur Schätzung dichter Posen), die an verschiedenen Datensätzen (imagenet, instagram) und Hauptaufgaben (imagenet, COCO, cityscapes, LVIS usw.) getestet wurden.





Wie funktioniert ein unbeaufsichtigter Vorlauf? Wir haben eine Aufgabe, für die keine Labels benötigt werden, lernen den Encoder, fixieren ihn und lösen dann das Hauptproblem, indem wir die fehlenden Layer hinzufügen (linear für die Klassifizierung, Decoder für die Segmentierung usw.). Eine der beliebtesten Aufgaben in dieser Nische ist die Instanzdiskriminierung auf der Grundlage des Kontrastverlusts, d.h. Wir möchten, dass Merkmale verschiedener Vergrößerungen desselben Bildes nahe beieinander liegen (zum Beispiel in Bezug auf den Kosinusabstand), und Merkmale verschiedener sind weit entfernt.


Sie können versuchen, diese Aufgabe durchgängig zu vermitteln, aber vieles hängt von der Größe des Stapels ab: Die Qualität hängt in hohem Maße von der Vielfalt der Beispiele im Stapel ab. Experimente zeigen, dass sich die Endqualität mit zunehmender Chargengröße verbessert. Aber die Partie ist Moskau etwas ähnlich: Es ist kein Gummi, es wird nicht lange funktionieren, um es in der Stirn zu vergrößern.


Frühere Dudes, die sich in der Nähe von Zellen befanden, haben eine Speicherbank durcheinander gebracht: Merkmale früherer Stapel wurden separat im Speicher gespeichert und auch zur Erzeugung negativer, d.h. ungleiche Proben. Dies hat teilweise geholfen, aber auch unvollkommen: Während des Trainings ändern sich die Encodergewichte und alte Funktionen gehen verloren.


Schließlich die Idee des Artikels:


  1. Ersetzen wir eine einfache Speicherbank durch eine Warteschlange, in der ziemlich neue Funktionen enthalten sind.
  2. Wir werden zwei Versionen des Encoders behalten: eine wird für die aktuelle Charge verwendet und ist trainiert, die andere ist stabiler, ihre Gewichte werden gegenüber der ersten Version aktualisiert, jedoch mit großer Dynamik.
  3. Merkmale des Stapels werden als erster Encoder betrachtet, Merkmale in der Warteschlange werden vom zweiten Encoder gezählt.

Dieser Ansatz ermöglicht eine Annäherung an die Qualität des End-to-End-Trainings, erzielt jedoch dank der langen Warteschlange die potenziellen Ergebnisse einer unrealistisch großen Charge. Auf diese Weise erhalten Sie coole Metriken für verschiedene Aufgaben, einschließlich In einigen Gegenden ist es sogar ein bisschen besser als das traditionelle, überwachte Image auf dem Imaginet.


5. Benchmarking der Robustheit neuronaler Netze gegenüber häufigen Störungen und Störungen


Autoren: Dan Hendrycks, Thomas Dietterich (Universität von Kalifornien, Oregon State University, 2019)
→ Originalartikel
Autor der Rezension: Vladimir Iglovikov (in ternaus slack)





Es wurde am ICLR 2019 angenommen und so wie ich es verstehe, ist dies eine der DL-Arbeiten, die in keinem Netzwerk geschult wurden.


Die Aufgabe war wie folgt - aber lassen Sie uns eine Erweiterung für die ImageNet-Validierung versuchen, aber wir werden die ungebrochene trainieren. Darüber hinaus haben wir im Gegensatz zu adevrsarial nicht die Aufgabe, die Transformationen klein und für das Auge unsichtbar zu machen.


Was wurde getan:


  1. Eine Reihe von Erweiterungen wurde ausgewählt. Die Autoren sagen, dass dies am häufigsten vorkommt, aber meiner Meinung nach lügen sie.
    Sie verwendeten: GaussianNoise, ISONoise, Downscale, Defocus, MotionBlur, ZoomBlur, FrostedGlassBlur, JpegCompression, Schnee, Nebel, Regen, Elastic Transoform usw.
  2. Alle diese Transformationen wurden auf die ImageNet-Validierung angewendet. Der resultierende Datensatz wurde ImageNet-C genannt
  3. Es wurde auch eine Variante mit dem Namen ImageNet-P vorgeschlagen, bei der auf jedes Bild Transformationssätze mit unterschiedlichen Stärken angewendet wurden.
  4. Eine Metrik wurde vorgeschlagen, um die Stabilität des Modells zu bewerten.
  5. Im Rahmen dieser Metrik wurden mehrere Modelle bewertet: AlexNet, VGG-11, VGG-19, Resnet-50, Resnet-18, VGG-19 + BN usw

Schlussfolgerungen:


  1. Je stärker die Augmentation ist, desto mehr leidet die Genauigkeit des Modells. : capitan_obvious:
  2. Je komplexer das Modell, desto stabiler.
  3. Das Auftragen von CLAHE in Bildern vor dem Ableiten hilft ein wenig.
  4. Feature-Aggregationsblöcke wie DenseNet oder Resnext helfen.
  5. Netzwerke mit mehreren Skalen sind stabiler. Ein Beispiel für solche Netzwerke ist MSDNet, Multigrid (von solchen Netzwerken habe ich noch nichts gehört).

Code


6. DistilBERT, eine destillierte Version von BERT: kleiner, schneller, billiger und leichter


Autoren: Victor Sanh, Lysandre-Debüt, Julien Chaumond, Thomas Wolf (Hugging Face, 2019)
→ Originalartikel
Autor der Rezension: Yuri Kashnitsky (in yorko slack)


Der Artikel ist kurz, es ist sehr einfach zu lesen. Am Anfang ein paar allgemeine Worte zum Wettrüsten in der NLP und zum ökologischen Fußabdruck. Weiter die Idee der Destillation (und Hinton hat es auch hier getan). Bei der Aufgabe der Sprachmodellierung prognostizieren wir standardmäßig das nächste Wort im Kontext. Normalerweise vergleicht der Kreuzentropieverlust den Vektor der vorhergesagten Wahrscheinlichkeiten (die Länge des gesamten Wörterbuchs) mit einem Binärvektor, bei dem nur eine Einheit das reale Wort an einer bestimmten Stelle im Trainingssatz anzeigt. Das heißt, die zweite, dritte usw. Das Wort, das das Modell für angemessen hält, wird vom Verlust ignoriert. In dem Artikel wird ein Beispiel gegeben: "Ich denke, dies ist der Anfang einer schönen [MASKE]", anstatt [MASKE] will BERT zuerst den Alltag oder das Leben ersetzen, aber die Worte, die durch die zukünftige Wahrscheinlichkeit, Zukunft, Geschichte und Welt vorhergesagt werden, sind auch gut. Können wir irgendwie die Tatsache berücksichtigen, dass das Modell eine gute Wahrscheinlichkeitsverteilung erzeugt? Grob gesagt, um das Modell für die Tatsache zu belohnen, dass es keine Murdock, Toleranz, Mutterschaft und andere wenige passende Wörter im oberen Bereich gibt.





Die Idee der Destillation
Die Idee eines bestimmten Lehrer-Schüler-Modells ist, dass wir ein großes Lehrermodell ( Lehrer , BERT) und ein kleineres Modell ( Schüler , DistilBERT) haben, die "Wissen" aus dem Lehrermodell vermitteln. Das Schülermodell optimiert den Destillationsverlust, nämlich den für die Wahrscheinlichkeitsverteilungen von Lehrer und Schüler definierten Kreuzentropieverlust: L = Σ t_i * log (s_i). Das heißt, für ein bestimmtes Wort, das durch das [MASK] -Symbol gelöscht wurde und das durch den Kontext vorhergesagt werden muss, vergleichen wir zwei Wahrscheinlichkeitsverteilungen des Auftretens jedes Wortes aus dem Wörterbuch: {t_i} und {s_i} - vorhergesagt durch das Lehrermodell bzw. das Lehrermodell Student. Somit wird ein reichhaltiges Trainingssignal erhalten - das Studentenmodell für jedes Wort empfängt ein Signal, das nicht nur durch Vergleichen seines Vorhersagevektors mit dem realen Wort in der Trainingsprobe berechnet wird, sondern durch Vergleichen mit dem Vorhersagevektor des Lehrermodells.


DistilBERT-Modell
Die ganze Idee ist, dass der Schüler ein kleineres Modell als der Lehrer ist.DistilBERT ist also im Allgemeinen das gleiche BERT, aber die Hälfte der Schichten wurde weggeworfen. Sie warfen auch tokenartige Einbettungen und Pooler, es gibt jedoch keine Details darüber. Aber das Wichtigste ist, dass DistilBERT 40% weniger ist - 66 Millionen Parameter im Vergleich zu 110 Millionen bei BERT


DistilBERT
DistilBERT distillation loss — masked language modeling loss, BERT cosine embedding loss — ( , , "" - , "" ). : ablation studies, , masked language modeling loss, , .. distillation loss cosine embedding loss. , RoBERTa next sentence prediction dynamic masking.


, BERT (eng. wiki + Toronto Book Corpus) 90 8 V100 (16 GB). RoBERTa 1024 V100 (32 GB).


Ergebnisse
BERT — "it performed surprisingly well", DistilBERT — GLUE surprisingly well — 5 9 , BERT , SQuAD IMDb — . , DistilBERT 60% — .



DistilBERT iPhone 7 Plus. 70% , BERT-base ( ), 200 . ablation studies: , — distillation loss cosine embedding loss.


3 , DistilBERT — BERT, 40% , 60% "97% " BERT ( ML).


-, BERT, .


:
Jay Alammar
, DistilBERT + Catalyst:


7. Plug and Play Language Models: A Simple Approach To Controlled Text Generation


: Sumanth Dathathri, Andrea Madotto, Janice Lan, Jane Hung, Eric Frank, Piero Molino, Jason Yosinski, and Rosanne Liu (Uber AI, Caltech, HKUST, 2019)

: ( Egor Timofeev)


. , / / (, . https://arxiv.org/pdf/1909.05858.pdf ). , , , , .



( x_prev ), p(x), conditional LM (, — CTRL) p(x|a).


: p(x|a) ∝ p(x)p(a|x), p(x) , (, GPT2), p(a|x) — . — , /. , , .


:


  1. , log(p(a|x)) ( ). hidden state .
  2. , hidden state log(p(a|x)). H_new.
  3. : p(x). , : -, KL(H, H_new), -, .. post-norm fusion ( https://arxiv.org/pdf/1809.00125.pdf ), p(x) non conditional LM , .
  4. .

, p(a|x).


Ergebnisse
, - topic relevance. : (GPT2) < + << < + .





8. Deep Salience Representation for F0 Estimation in Polyphonic Music


: Rachel M. Bittner, Brian McFee, Justin Salamon, Peter Li, Juan Pablo Bello ( New York University, USA, 2017)

: ( nglaz)


. , . , – . , - . constant-Q , ( ) .



. constant-Q - f_min - F. f_min f_min * h, , , . h {0.5, 1, 2, 3, 4, 5}, . , 3- , 2- 3- (, , ). , , , , (0.5f, f, 2f, 3f, 4f, 5f), . ( 55) . , , dilated-.


, , constant-Q F, .


F0 estimation, , . 2017 , , state-of-the-art. , .


9. Analyzing and Improving the Image Quality of StyleGAN


: Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila (NVIDIA, 2019)

: ( shiron8bit)


GAN- , , . , , , , ( FID) :


  • droplet-like ( / ), AdaIN.
  • , ProGAN- / end-to-end MSG-GAN. , /, .
  • Pfadlängen-Regularisierung hinzugefügt.
  • Sie schlugen ein Verfahren zur Erkennung erzeugter Bilder vor: Wir finden die Projektion des Bildes im latenten Raum W, wenn das rekonstruierte Bild nahe am Original liegt, wird es höchstwahrscheinlich durch stylegan2 erzeugt.




Tröpfchenartefakte und AdaIN
Die Autoren des Artikels sprechen sich mit folgendem Argument gegen die Verwendung des AdaIN-Layers aus: adain normalisiert jede Feature-Map und zerstört so Informationen über die relativen Größenwerte. Droplets sind ein Versuch des Generators, diese Informationen auf eine andere Weise zu übertragen. Als Option zur Schwächung von AdaIN wurde Folgendes vorgeschlagen: Wir werden alle Skalierungen (Modulation / Demodulation) direkt in der Faltung durchführen, basierend auf dem von Block A kommenden Stil und dem Offset des ausgehenden Signals (anstelle von mu (y) / y_ {b, i} in AdaIN). Lassen Sie Block B Rauschen transformieren. Diese Innovation ermöglichte es gleichzeitig, das Training unter den gleichen Bedingungen zu beschleunigen.


Ausfall von ProGAN
In dem Artikel über MSG-GAN wurde vorgeschlagen, Sprungverbindungen zu verwenden, um passende Generatorblöcke und Diskriminatorblöcke durch Auflösung zu verbinden. Die Autoren von Stylegan entwickelten diese Idee, indem sie die Ausgaben von Generatorblöcken aller Auflösungen (mit Aufwärtsabtastung) aufsummierten und die entsprechende abwärtsabtastende Version des Bildes dem Eingang jedes Diskriminatorblocks zuführten. Es wurde vorgeschlagen, Restblöcke als zweite Option zu verwenden, während das Überspringen von Verbindungen im Generator und von Restblöcken im Diskriminator die besten Ergebnisse zeigten (der Diskriminator ähnelt LAPGAN, aber ohne Diskriminatoren für jede Auflösung werden Feature-Maps weitergeleitet) Wie bei ProGAN tragen in den ersten Iterationen die Teile des Rasters, die für niedrigere Auflösungen verantwortlich sind, und das Gesamtbild stärker bei, und dann wird die Betonung auf kleine Details verlagert.


Pfadlängen-Regularisierung
In Anbetracht der Tatsache, dass niedrige FID-Werte nicht immer qualitativ hochwertige Bilder liefern und auch eine Korrelation zwischen der Bildqualität und der PPL-Metrik (Perceptual Path Length - ursprünglich der Unterschied zwischen vgg-Merkmalen von Bildern mit kleinen Schritten in Z, aber der Unterschied wurde durch LPIPS ersetzt), schlugen die Autoren Path vor Längenregulierung, um die Funktionalität zu minimieren

JwTy= nablaw(g(w)y)


wo g der Generator selbst ist, ist J_w der Jacobian in latenten Raumvariablen. Gleichzeitig können die Jacobi-Berechnungen über Backprop durchgeführt werden. Um die Berechnungen zu vereinfachen, kann der Regularizer nur für jeweils 16 Chargen gezählt werden. Die Zahl a wird als exponentielles gleitendes Mittel der Jacobi-Norm berechnet. Die Verwendung der Pfadlängen-Regularisierung ermöglicht eine "glattere" Interpolation des verborgenen Raums W, wodurch zusätzlich zur Verbesserung der Bildqualität die Reversibilität verbessert wird (d. H. Es wird w gefunden, das nach Durchlaufen des Generators ein bestimmtes Bild ergibt) eröffnet auch Perspektiven in Bezug auf Animation und Interpolation zwischen Schlüsselbildern (in der neuen Architektur sollten zwischen Projektionen ähnlicher Bilder Punkte vorhanden sein, die für das Schließen von Bildern verantwortlich sind) I). Die Einführung dieser Regularisierung hat auch dazu beigetragen, die Erkennung der von dieser Architektur erzeugten Bilder zu vereinfachen.

Die Trainingszeit für 8 GPUs bei einer Auflösung von 1024 * 1024 betrug 2 bis 9 Tage für verschiedene Konfigurationen.

Source: https://habr.com/ru/post/de485122/


All Articles