Wenn dies nur ein einmaliger Fall ist, können Sie das neuronale Netzwerk einfach neu trainieren. Wenn Sie häufig neue Klassen hinzufügen müssen, ist dies eine schlechte Idee. Was Sie in solchen Fällen tun möchten, wird als inhaltsbasierter Bildabruf (CBIR) oder einfach als Bildabruf oder visuelle Suche bezeichnet. Ich werde beide Fälle in meiner Antwort unten erläutern.
Einmaliger Fall
Wenn dies nur einmal vorkommt - Sie haben die 11. Klasse vergessen oder Ihr Kunde hat es sich anders überlegt -, aber es kommt nicht wieder vor , dann können Sie einfach einen 11. Ausgabeknoten bis zur letzten Ebene erstellen. Initialisieren Sie die Gewichte für diesen Knoten nach dem Zufallsprinzip, verwenden Sie jedoch die Gewichte, die Sie bereits für die anderen Ausgaben haben. Dann trainiere es einfach wie gewohnt. Es kann hilfreich sein, einige Gewichte zu fixieren, dh diese nicht zu trainieren.
Ein Extremfall wäre, nur die neuen Gewichte zu trainieren und alle anderen fest zu lassen. Ich bin mir aber nicht sicher, ob das so gut funktioniert - vielleicht ist es einen Versuch wert.
Inhaltsbasiertes Abrufen von Bildern
Stellen Sie sich das folgende Beispiel vor: Sie arbeiten für einen CD-Shop, der seinen Kunden die Möglichkeit geben soll, ein Foto von einem Albumcover zu machen, und die Anwendung zeigt ihnen die CD, die sie in ihrem Online-Shop gescannt haben. In diesem Fall müssten Sie das Netzwerk für jede neue CD im Laden neu trainieren. Das können 5 neue CDs pro Tag sein, daher ist es nicht geeignet, das Netzwerk auf diese Weise neu zu trainieren.
Die Lösung besteht darin, ein Netzwerk zu trainieren, das das Bild in einen Merkmalsraum abbildet. Jedes Bild wird durch einen Deskriptor dargestellt, der beispielsweise ein 256-dimensionaler Vektor ist. Sie können ein Bild "klassifizieren", indem Sie diesen Deskriptor berechnen und mit Ihrer Deskriptordatenbank (dh den Deskriptoren aller CDs, die Sie in Ihrem Geschäft haben) vergleichen. Der nächste Deskriptor in der Datenbank gewinnt.
Wie trainiert man ein neuronales Netzwerk, um einen solchen Deskriptorvektor zu lernen? Das ist ein aktives Forschungsgebiet. Sie können aktuelle Arbeiten finden, indem Sie nach Stichwörtern wie "Bildsuche" oder "Metrisches Lernen" suchen.
Derzeit wird normalerweise ein vorab trainiertes Netzwerk, z. B. VGG-16, verwendet, um die FC-Schichten abzuschneiden und die endgültige Faltung als Deskriptorvektor zu verwenden. Sie können dieses Netzwerk weiter trainieren, indem Sie z. B. ein siamesisches Netzwerk mit Triplettverlust verwenden.