Hallo Habr. Heute möchte ich das Thema
Variationsoptimierung entwickeln und erlÀutern, wie es auf die Aufgabe angewendet werden kann, nicht informative KanÀle in neuronalen Netzen zu beschneiden (Bereinigen). Mit ihm kann man die "Feuerrate" eines neuronalen Netzwerks relativ leicht erhöhen, ohne seine Architektur zu schaufeln.
Die Idee, redundante Elemente in Algorithmen fĂŒr maschinelles Lernen zu reduzieren, ist ĂŒberhaupt nicht neu. TatsĂ€chlich ist es Ă€lter als das Konzept des tiefen Lernens: Erst frĂŒher wurden Zweige entscheidender BĂ€ume gefĂ€llt und jetzt in einem neuronalen Netzwerk gewichtet.
Die Grundidee ist einfach: Wir finden im Netzwerk eine Teilmenge nutzloser Gewichte und setzen sie auf Null. Ohne eine umfassende Suche ist es schwierig zu sagen, welche Gewichte wirklich an der Vorhersage beteiligt sind und welche nur so tun, aber dies ist nicht erforderlich. Verschiedene Regularisierungsmethoden, Optimal Brain Damage und andere Algorithmen funktionieren gut. Warum ĂŒberhaupt Gewichte entfernen? Es stellt sich heraus, dass dies die GeneralisierungsfĂ€higkeit des Netzwerks verbessert: In der Regel fĂŒhren unbedeutende Gewichte entweder einfach Rauschen in die Vorhersage ein oder werden speziell fĂŒr Anzeichen eines Trainingsdatensatzes (d. H. Ein Artefakt der Umschulung) geschĂ€rft. In diesem Sinne kann die Reduzierung von Verbindungen mit der Methode zum Trennen zufĂ€lliger Neuronen (Dropout) wĂ€hrend des Netzwerktrainings verglichen werden. Wenn das Netzwerk viele Nullen hat, nimmt es auĂerdem weniger Speicherplatz im Archiv ein und kann auf einigen Architekturen schneller lesen.
Es hört sich gut an, aber es ist viel interessanter, nicht separate Gewichte, sondern Neuronen aus vollstĂ€ndig verbundenen Schichten oder KanĂ€len aus den gesamten BĂŒndeln herauszuwerfen. In diesem Fall wird der Effekt der Netzwerkkomprimierung und Beschleunigung von Vorhersagen viel deutlicher beobachtet. Dies ist jedoch komplizierter als die Zerstörung einzelner Gewichte: Wenn Sie versuchen, den optimalen Hirnschaden auszufĂŒhren und das gesamte BĂŒndel anstelle einer Verbindung zu verwenden, sind die Ergebnisse wahrscheinlich nicht sehr beeindruckend. Um ein Neuron schmerzlos entfernen zu können, muss es so hergestellt werden, dass es keine einzige nĂŒtzliche Verbindung hat. Um dies zu tun, mĂŒssen Sie irgendwie "starke" Neuronen dazu bringen, stĂ€rker und "schwache" Neuronen schwĂ€cher zu werden. Diese Aufgabe ist uns bereits bekannt: TatsĂ€chlich erzwingen wir, dass das Netzwerk sparsam ist, mit einigen EinschrĂ€nkungen bei der Gruppierung von Gewichten.

Beachten Sie, dass Sie zwei Gewichtsmatrizen Ă€ndern mĂŒssen, um ein Neuron oder einen Faltungskanal zu entfernen. Ich werde nicht zwischen FaltungskanĂ€len und Neuronen unterscheiden: Die Arbeit mit ihnen ist dieselbe, nur die spezifischen entfernten Gewichte und die Transpositionsmethode unterscheiden sich.
Der einfache Weg: Regularisierung der Gruppe L1
ZunÀchst erzÀhle ich Ihnen, wie Sie am einfachsten und effektivsten zusÀtzliche Neuronen aus dem Netzwerk entfernen können - die Gruppen-LASSO-Regularisierung. Am hÀufigsten wird es verwendet, um nutzlose Gewichte in Netzwerken nahe Null zu halten. es verallgemeinert sich trivial auf den Fall von Kanal zu Fall. Im Gegensatz zur regulÀren Regularisierung regulieren wir das Gewicht oder die Schichtaktivierung nicht direkt, die Idee ist etwas kniffliger. [Channel Pruning zur Beschleunigung sehr tiefer neuronaler Netze; Yihui He et al.; 2017]

Betrachten Sie eine spezielle Maskenebene mit einem Gewichtsvektor
. Sein Fazit ist nur eine stĂŒckweise Arbeit
Nach den Schlussfolgerungen der vorherigen Schicht hat er keine Aktivierungsfunktion. Wir platzieren in der Maskierungsschicht nach jeder Schicht die KanÀle, in denen wir verwerfen möchten, und unterziehen die Gewichte in diesen Schichten einer L1-Regularisierung. Also das Gewicht der Maske
multipliziert mit der i-ten Ausgabe der Schicht bedeutet dies implizit eine BeschrĂ€nkung aller Gewichte, von denen diese Schlussfolgerung abhĂ€ngt. Wenn unter diesen Gewichten die HĂ€lfte nĂŒtzlich ist, dann
wird nĂ€her an der Einheit bleiben, und diese Schlussfolgerung wird in der Lage sein, Informationen gut zu ĂŒbertragen. Aber wenn nur einer oder gar keiner,
es wird auf Null fallen, wodurch die Ausgabe des Neurons zurĂŒckgesetzt wird und tatsĂ€chlich alle Gewichte zurĂŒckgesetzt werden, von denen diese Schlussfolgerung abhĂ€ngt (im Fall der Aktivierungsfunktion gleich Null bei Null). Bitte beachten Sie, dass das Netzwerk auf diese Weise im Falle eines rechtlich hohen Gewichts oder einer rechtlich starken Reaktion weniger negative VerstĂ€rkung erhĂ€lt. Die NĂŒtzlichkeit des Neurons als Ganzes ist wichtig.
Es stellt sich diese Formel heraus:
Wo
- Gewichtungskonstante von Verlust eines Netzwerks und Verlust einer SpĂ€rlichkeit. Es sieht aus wie die ĂŒbliche L1-Regularisierungsformel, nur der zweite Term enthĂ€lt Vektoren von Maskierungsschichten und nicht das Gewicht des Netzwerks.
Nach dem Training des Netzwerks gehen wir die Neuronen und ihre Maskierungswerte durch. Wenn
mehr als eine bestimmte Schwelle, dann werden die Neuronengewichte mit multipliziert
Wenn weniger, werden die dem Neuron entsprechenden Elemente aus den Matrizen der eingehenden und ausgehenden Gewichte entfernt (wie im Bild etwas höher). Danach können die Masken gelöscht und das Netzwerk abgeschlossen werden.
In der Anwendung der Gruppe LASSO gibt es mehrere Feinheiten:
- Normale Regularisierung. Zusammen mit der Regularisierung der Maskengewichte sollte die L1 / L2-Regularisierung auf alle anderen Netzwerkgewichte angewendet werden. Ohne dies wird eine Abnahme des Maskierungsgewichts bei ungesĂ€ttigten Aktivierungsfunktionen (ReLu, ELu) leicht durch eine Zunahme der Gewichte kompensiert, und der Nullungseffekt funktioniert nicht. Ja, und fĂŒr gewöhnliche Sigmoid können Sie den Prozess besser mit positivem Feedback beginnen: Die nicht informative Ausgabe wird kleiner, weshalb der Optimierer stĂ€rker ĂŒber jedes spezifische Gewicht nachdenken muss, was die Ausgabe noch uninformativer macht, weshalb nimmt noch mehr ab und so weiter.
- Die Autoren des Artikels raten auch, das Gewicht der Schichten sphĂ€risch zu beschrĂ€nken . Dies sollte wahrscheinlich zum âFlussâ des Gleichgewichts von schwachen zu starken Neuronen beitragen, aber ich bemerkte keinen groĂen Unterschied.
- Push-Pull-Training. Die Autoren des Artikels schlagen vor, abwechselnd die Normalgewichte des neuronalen Netzwerks zu trainieren und die Gewichte zu maskieren. Es ist lÀnger als alles gleichzeitig zu unterrichten, aber als ob die Ergebnisse etwas besser wÀren?
- Vergessen Sie nicht die lange Feinabstimmung des Netzwerks (Feinabstimmung) nach dem Fixieren der Maske, dies ist sehr wichtig.
- Ăberwachen Sie sorgfĂ€ltig, wie Ihre Masken stehen: vor oder nach der Aktivierungsfunktion. Möglicherweise haben Sie Probleme mit Aktivierungen, die nicht gleich Null sind, wenn das Argument Null ist (z. B. ein Sigmoid).
- Das Bereinigen ist mit Batchnorm aus dem gleichen Grund nicht freundlich, aus dem Dropout nicht mit Batchnorm befreundet ist: Aus Sicht der Normalisierung, wenn das Paket 32 ââWerte enthĂ€lt, von denen 12 Null sind, und wenn 20 Werte im Paket sehr unterschiedliche Situationen sind. Nach dem HerausreiĂen des Nullsaldos ist die von der Batchnorm-Schicht gelernte Verteilung nicht mehr gĂŒltig. Sie mĂŒssen entweder nach allen Batchnorm-Ebenen Schnittschichten einfĂŒgen oder letztere irgendwie Ă€ndern.
- Es gibt auch Schwierigkeiten bei der Anwendung der Kanalreduzierung auf Verzweigungsarchitekturen und Restnetzwerke (ResNet). Nach dem Trimmen zusĂ€tzlicher Neuronen wĂ€hrend der Fusion von Zweigen stimmen die Dimensionen möglicherweise nicht ĂŒberein. Dies lĂ€sst sich leicht durch die EinfĂŒhrung von Pufferschichten lösen, in denen wir keine Neuronen abstoĂen. Wenn die Netzwerkzweige eine unterschiedliche Informationsmenge enthalten, ist es auĂerdem sinnvoll, unterschiedliche Einstellungen vorzunehmen damit sich nicht herausstellt, dass das Beschneiden nur alle Neuronen im am wenigsten informativen Zweig schneidet. Wenn jedoch alle Neuronen geschnitten sind, ist das nicht ein so wichtiger Zweig?
- In der ursprĂŒnglichen Problemstellung gibt es eine strikte BeschrĂ€nkung fĂŒr die Anzahl der KanĂ€le ungleich Null. Meiner Meinung nach reicht es jedoch aus, nur die Gewichtungsparameter des Anfangsverlusts und des L1-Verlusts der Maskierungsgewichte zu Ă€ndern und dann den Optimierer entscheiden zu lassen, wie viele KanĂ€le verlassen werden sollen.
- Masken erfassen. Dies ist nicht im Originalartikel enthalten, aber meiner Meinung nach ist dies ein guter praktischer Mechanismus zur Verbesserung der Konvergenz. Wenn der Wert der Maske einen bestimmten vorgegebenen niedrigen Wert erreicht, setzen wir ihn zurĂŒck und verbieten das Ăndern dieses Teils der Maske. Daher tragen schwache Gewichte bereits wĂ€hrend des Trainings des Modells nicht mehr zur Vorhersage bei und fĂŒhren keine Streuwerte in die entsprechenden BetrĂ€ge ein. Theoretisch kann dies verhindern, dass ein potenziell nĂŒtzlicher Kanal wieder in Betrieb genommen wird, aber ich glaube nicht, dass dies in der Praxis geschieht.
Der harte Weg: L0-Regularisierung
Aber wir suchen nicht nach einfachen Wegen, oder?
Die Ablehnung von KanĂ€len mithilfe der L1-Regularisierung ist nicht ganz fair. Es ermöglicht dem Kanal, sich auf der Skala von "starke Antwort" - "schwache Antwort" - "Nullantwort" zu bewegen. Nur wenn das Maskierungsgewicht nahe genug bei Null liegt, wird der Kanal mithilfe der Erfassungsmaske verworfen. Eine solche Bewegung verzerrt das Bild erheblich und nimmt wĂ€hrend des Trainings Ănderungen an anderen KanĂ€len vor: Bevor sie lernen können, was zu tun ist, wenn das vorherige Neuron vollstĂ€ndig ausgeschaltet ist, mĂŒssen sie lernen, was zu tun ist, wenn es systematisch eine schwache Reaktion gibt.
Ich möchte Sie daran erinnern, dass wir im Idealfall eifrig den am wenigsten informativen Kanal aus dem Netzwerk auswĂ€hlen, das Netzwerk ohne ihn weiter lernen, den am wenigsten informativen Kanal löschen, das Netzwerk erneut anpassen und so weiter möchten. Leider ist in einer solchen Formulierung die Aufgabe selbst fĂŒr relativ einfache Netzwerke rechnerisch unertrĂ€glich. DarĂŒber hinaus lĂ€sst dieser Ansatz den KanĂ€len keine zweite Chance - sobald ein entferntes Neuron nicht wieder in Betrieb gehen kann. Lassen Sie uns die Aufgabe ein wenig Ă€ndern: Manchmal entfernen wir das Neuron und verlassen es manchmal. Wenn das Neuron als Ganzes nĂŒtzlich ist, bleibt es hĂ€ufiger ĂŒbrig, aber wenn es nutzlos ist - umgekehrt. DafĂŒr verwenden wir die gleichen Maskierungsebenen wie bei der L1-Regularisierung (nicht ohne Grund wurden sie eingefĂŒhrt!). Nur ihre Gewichte bewegen sich nicht entlang der gesamten realen Achse mit dem Attraktor bei Null, sondern konzentrieren sich um 0 und 1. Nicht, dass es viel einfacher geworden wĂ€re, aber zumindest das Problem der kategorialen Entfernung von Neuronen gelöst.
Der Instinkt des Netzwerktrainers legt nahe, dass es nicht erforderlich ist, das Problem durch eine umfassende Suche zu lösen. Sie mĂŒssen jedoch die Anzahl der aktiven Neuronen in den Schichten des aktuellen Laufs zur Verlustfunktion hinzufĂŒgen. Ein solcher Verlustbegriff ist jedoch schrittweise konstant, und der Gradientenabstieg kann damit nicht funktionieren. Es ist notwendig, den Lernalgorithmus irgendwie zu lehren, einige Neuronen trotz des Fehlens eines Gradienten periodisch auszuschlieĂen.
Wir haben eine Möglichkeit, Neuronen vorĂŒbergehend zu entfernen: Wir können einen Dropout auf die Maskenebene anwenden. WĂ€hrend des Trainings lassen
mit Wahrscheinlichkeit
und
mit Wahrscheinlichkeit
. Jetzt können Sie in der Verlustfunktion die Summe eingeben
Das ist eine reelle Zahl. Hier stehen wir vor einem weiteren Hindernis: Die Verteilung ist diskret, es ist nicht klar, wie die RĂŒckausbreitung damit funktioniert. Im Allgemeinen gibt es spezielle Optimierungsalgorithmen, die uns hier helfen können (siehe REINFORCE), aber wir werden einen anderen Ansatz verfolgen.
Und dann kam der Moment, in dem die
Variationsoptimierung ins
Spiel kommt : Wir können die diskrete Verteilung von Nullen und Einsen in der Maskierungsschicht durch eine kontinuierliche Eins approximieren und deren Parameter unter Verwendung des ĂŒblichen Backpropagation-Algorithmus optimieren. Dies ist die Idee hinter der Arbeit [Lernen spĂ€rlicher neuronaler Netze durch L0-Regularisierung; Christos Louizos et al.; 2017].
Die Rolle der kontinuierlichen Verteilung wird die Verteilung von hartem Beton spielen [Die konkrete Verteilung: Eine kontinuierliche Relaxation diskreter Zufallsvariablen; Chris Maddison; 2017], hier ist eine so knifflige Sache aus den Logarithmen, die sich der Bernoulli-Verteilung annÀhert:
- Versatzverteilung relativ zur Mitte und
- Temperatur. Bei
Die Verteilung nÀhert sich immer mehr der tatsÀchlichen Bernoulli-Verteilung an, verliert jedoch ihre Differenzierbarkeit. Bei
Die Verteilungsdichte ist konkav (dies ist der Fall, an dem wir interessiert sind), z
- konvex. Wir leiten diese Verteilung durch ein starres Sigmoid, so dass es mit einer endlichen Wahrscheinlichkeit ungleich Null geschickt ausgeben kann
und
und im Intervall (0, 1) hatte es eine kontinuierlich differenzierbare Dichte. Nach Abschluss des Schnittes prĂŒfen wir, in welche Richtung sich die Verteilung verschoben hat, und ersetzen die Zufallsvariable
auf einen bestimmten Maskenwert
und wir bringen ein bereits deterministisches Modell auf den Zustand.
Um eine etwas bessere Verteilung zu erzielen, werde ich einige Beispiele fĂŒr die Dichte fĂŒr verschiedene Parameter nennen:
Verteilungsdichte::

::

::

::

::

::

::

::

Im Wesentlichen haben wir eine âintelligenteâ Dropout-Ebene, die lernt, welche Schlussfolgerungen hĂ€ufiger weggeworfen werden sollten. Aber was genau optimieren wir? Bei Verlust sollten Sie das Integral der Verteilungsdichte in einen Bereich ungleich Null setzen (die Wahrscheinlichkeit, dass sich die Maske wĂ€hrend des Trainings als ungleich Null herausstellt, einfach ausgedrĂŒckt):
Die folgenden Funktionen werden dem Push-Pull-Training, der regelmĂ€Ăigen Regularisierung und anderen Implementierungsdetails hinzugefĂŒgt, die im Kapitel zur L1-Regularisierung erwĂ€hnt werden:
- Noch einmal: Unsere âintelligenteâ Dropout-Ebene setzt mit einer merklichen Wahrscheinlichkeit die Ausgabe zurĂŒck, mit einigen - lĂ€sst sie so wie sie ist, und auĂerdem gibt es eine kleine Chance, abhĂ€ngig davon dass der Ausgang mit einer Zufallszahl von 0 bis 1 multipliziert wird. Der letzte Teil ist eher parasitĂ€r als nĂŒtzlich fĂŒr unser Endziel, aber ohne ihn in irgendeiner Weise - er wird fĂŒr die RĂŒckausbreitung eines Passbacks benötigt.
- Im Allgemeinen und und - Trainingsparameter, aber in meinen Experimenten hatte ich das GefĂŒhl, wenn Sie nur ein wenig fragen (0.05) und im Lernprozess ist es immer noch linear reduziert, der Algorithmus konvergiert besser als wenn Sie es ehrlich lernen. Es ist besser, groĂ genug zu setzen so dass anfangs Neuronen hĂ€ufiger erhalten als verworfen werden, aber nicht groĂ genug sind, um das Sigmoid im Verlust zu sĂ€ttigen.
- Wenn in Formeln ersetzt auf nur als ob das Netzwerk besser konvergieren wĂŒrde und weniger wahrscheinlich wĂ€hrend des Trainings auf NaN stoĂen wĂŒrde. Bei diesem Manöver darf nicht vergessen werden, den Term in der Verlustfunktion und Initialisierung zu Ă€ndern.
- Auch wenn Sie betrĂŒgen und das ĂŒbliche Sigmoid in Loss'e durch ein starres mit EinschrĂ€nkungen ersetzen Regularisierung wird besser konvergieren und stĂ€rker wirken.
- Zu und Sie können zusÀtzlich eine Regularisierung anwenden, um die SpÀrlichkeit weiter zu erhöhen.
- Nach dem Training sollten Sie die Ergebnisse binĂ€risieren und das Netzwerk mit der bestimmten Maske dauerhaft trainieren, bis die Val-Genauigkeit die Konstante erreicht. Der Artikel bietet eine genauere Formel, mit der die Ausgabe eines Neurons wĂ€hrend der Validierung oder fĂŒr die Freigabe eines Netzwerks zur Freigabe deterministisch gemacht werden kann, aber es scheint, dass bis zum Ende des Trainings Es stellt sich heraus, dass es so polarisiert ist, dass eine einfache Heuristik funktioniert: - Maske 0, - Maske 1 (aber das ist nicht genau). Nachdem Sie zu deterministischen Masken ĂŒbergegangen sind, werden Sie einen QualitĂ€tssprung feststellen. Vergessen Sie nicht, dass wir hier zu Nullgewichten gekommen sind und dass Sie unterhalb eines bestimmten Gewichtsschwellenwerts immer noch Maskierungsgewichte durch Nullen ersetzen mĂŒssen.
- Ein zusÀtzliches Plus des L0-Ansatzes: Maskierungsebenen wirken wie ein Dropout, was dem Netzwerk einen starken Regularisierungseffekt verleiht. Aber das ist ein zweischneidiges Schwert: Wenn Sie mit zu wenig trainieren Es besteht die Gefahr, dass die vorab trainierte Netzwerkstruktur zerstört wird.
Die Experimente
Nehmen wir fĂŒr das Experiment den CIFAR-10-Datensatz und ein relativ einfaches Netzwerk aus vier Faltungsschichten, gefolgt von zwei vollstĂ€ndig verbundenen: Conv2D, Maske, Conv2D, Maske, Pool2D, Conv2D, Maske, Conv2D, Maske, Pool2D, Abflachen, Dropout (p = 0,5) , Dicht, Maske, Dicht (logits). Es wird angenommen, dass die Algorithmen von Pruning in dickeren Netzwerken besser funktionieren, aber hier bin ich auf ein rein technisches Problem gestoĂen, bei dem es an Rechenleistung mangelt. Als Optimierer wurde Adam mit einer Lernrate von 0,0015 und einer ChargengröĂe von 32 verwendet. ZusĂ€tzlich wurden die ĂŒblichen Regularisierungen L1 (0,00005) und L2 (0,00025) verwendet. BildvergröĂerung wurde nicht angewendet. Das Netzwerk wurde 200 Epochen vor der Konvergenz trainiert, danach wurde es beibehalten und es wurden Algorithmen zur Neuronenreduktion angewendet.
ZusĂ€tzlich zur Anwendung der oben beschriebenen Algorithmen zum Beschneiden setzen wir einen trivialen Referenzpunkt, um sicherzustellen, dass die Algorithmen ĂŒberhaupt etwas bewirken. Versuchen wir, die erste jeder Schicht wegzuwerfen
Neuronen und beenden Sie das resultierende Netzwerk.
Die Grafik zeigt die Ergebnisse des Vergleichs der L1- und L0-Kanalreduktionsalgorithmen nach einer Reihe von Experimenten mit verschiedenen Regularisierungsleistungskonstanten. Die x-Achse
reprÀsentiert die prozentuale Verringerung der Anzahl der
Gewichte nach Anwendung des Algorithmus. Auf der Y-Achse die Genauigkeit des Schnittnetzwerks in der Validierungsprobe. Der blaue Balken in der Mitte gibt die ungefĂ€hre QualitĂ€t eines Netzwerks an, das noch nicht aus Neuronen herausgeschnitten wurde. Die grĂŒne Linie reprĂ€sentiert einen einfachen L1-Maskenlernalgorithmus. Die rote Linie ist L0-beschneiden. Lila Linie - erste Entfernung
KanÀle. Schwarze Dreiecke - Training eines Netzwerks, das anfangs weniger Gewichte hatte.

Ein weiteres Beispiel fĂŒr den CIFAR-100 und ein etwas lĂ€ngeres und breiteres Netzwerk mit ungefĂ€hr derselben Architektur und Ă€hnlichen Trainingsparametern:

In den Diagrammen ist deutlich zu erkennen, dass ein einfacher L1-Algorithmus nicht schlechter als eine raffinierte Variationsoptimierung zurechtkommt, und es scheint, dass er die QualitÀt des Netzwerks bei niedrigen Komprimierungswerten sogar ein wenig mehr verbessert. Die Ergebnisse werden auch durch einmalige Experimente mit anderen DatensÀtzen und Netzwerkarchitekturen bestÀtigt. Dies ist ein absolut erwartetes Ergebnis, auf das ich mich verlassen habe, als ich Experimente zur Netzwerkreduzierung gestartet habe. Ehrlich gesagt. Seufz.
Um ehrlich zu sein, war ich ein wenig ĂŒberrascht und habe versucht, mit dem Algorithmus und dem Netzwerk zu spielen: verschiedene Architekturen, Netzwerkhyperparameter, genaue Formeln, harte Betonverteilung, Anfangswerte
und
, die Anzahl der Epochen der Zwischenstimmung. Die L0-Regularisierung sieht theoretisch cool aus, aber in der Praxis ist es schwieriger, Hyperparameter zu erfassen, und es dauert lĂ€nger. Daher wĂŒrde ich die Verwendung ohne zusĂ€tzliche Experimente und Dateiverarbeitung nicht empfehlen. Bitte berĂŒcksichtigen Sie nicht die Zeit, die Sie mit dem Lesen des Artikels verbracht haben: Das Beschneiden von L0 sieht wirklich sehr glaubwĂŒrdig aus, und ich wĂŒrde sagen, dass ich den Algorithmus eher falsch angewendet habe, dass ich den versprochenen Gewinn nicht erhalten habe. DarĂŒber hinaus ist die Variationsoptimierung die Grundlage fĂŒr noch fortschrittlichere Reduktionsalgorithmen [z. B. Komprimieren neuronaler Netze mithilfe der Variation
Information Bottleneck, 2018].
:
- . 30-50% . «» , . [The Lottery Ticket Hypothesis: Training Pruned Neural Networks, J. Frankle and M. Carbin, 2018] ( , , , ).
- , . . , ?
- , . 60-90% . <7%, .
- , (<60%) : , !
- L1 L0 (APoZ), , .. , .
- , . , , , , . , , . pruning' , . - , .
, , « »? , . Tensorflow , , . , , , , , . , , . , , , .
Wahrscheinlich mĂŒssen Sie zum bequemen Maskieren Ihre eigenen Ebenen erstellen. Es ist einfach, aber achten Sie darauf, welchen Sammlungen Sie Maskierungsoptionen hinzufĂŒgen. Es ist leicht, einen Fehler zu machen und versehentlich die Parameter fĂŒr die Kanalreduzierung zusammen mit allen anderen Skalen zu trainieren., . - , ( )*()*() , . ; , «» , . maxpool' .
, - CIFAR-10 CIFAR-100,
. !