Dieser Artikel ist eine leicht verständliche Ausgabe von ** Deep Learning von Grund auf neu. Kapitel 7 Lerntechniken **. Ich konnte es selbst verstehen, also hoffe ich, dass Sie es bequem lesen können. Ich würde mich auch sehr freuen, wenn Sie sich beim Studium dieses Buches darauf beziehen könnten.
Wissen Sie, was Ensemble-Lernen ist? Ensemble-Lernen ist die Fähigkeit, durch Training mit mehreren Modellen gute Lernergebnisse zu erzielen. Dropout verbessert das Lernergebnis, indem das Lernen des Ensembles auf simulierte Weise reproduziert wird.
Macht Dropout das Innere speziell? Es ist die zufällige Eliminierung von Neuronen während des Lernens. In Dropout werden durch zufälliges Löschen von Neuronen mehrere verschiedene Modelle erstellt, um das Lernen von Ensembles zu erstellen.
Unten finden Sie ein einfaches Implementierungsbeispiel.
class Dropout:#Wird nach der Aktivierungsfunktionsschicht generiert und bei jedem Lernen aktiviert. Nicht mit Vorhersage aktivieren
def __init__(self,dropout_ratio=0.5):
self.dropout_ratio = dropout_ratio
self.mask = None #Enthält eine Reihe von zu löschenden Neuronen
def forward(self,x,train_flg=True):
if train_flg:
self.mask = np.random.rand(*x.shape) > self.dropout_ratio#Bestimmen Sie nach dem Zufallsprinzip, welche Neuronen gelöscht werden sollen
return x * self.mask
else:
return x * (1 - self.dropout_ratio)
def backward(self,dout):
return dout * self.mask#Gleich wie Relu
Recommended Posts