Das design von deep convolutional neural networks?
Wie ich es verstehe, alle CNNs sehr ähnlich sind. Sie alle haben ein convolutional Layer, gefolgt von pooling und aufgrund der Kr Schichten. Einige haben spezialisierte Schichten wie FlowNet und Segnet. Meine Frage ist, wie sollen wir entscheiden, wie viele Ebenen Sie verwenden und wie wir den kernel-Größe, die für jede Ebene in das Netzwerk. Ich habe gesucht für eine Antwort auf diese Frage, aber ich konnte nicht finden eine konkrete Antwort. Das Netzwerk ist so konzipiert, mit Versuch und Irrtum, oder sind einige spezielle Regeln, die mir nicht bekannt sind? Wenn Sie könnten bitte klären Sie dies, wäre ich Ihnen sehr dankbar.
- Du wirst wohl bessere Antworten finden Sie auf der Computer Science Stack Exchange.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurze Antwort: wenn es design-Regeln haben nicht wir die vor Sie noch.
Hinweis, dass es vergleichbare Fragen in der informatik. Zum Beispiel, beachten Sie, dass es nur eine Handvoll grundlegende elektronische Logik-Einheiten, die Tore, die fahren Ihre Fertigung-Technologie. Alle EDV-Geräte verwenden die gleiche Boolesche Logik; einige haben Besondere Zusätze, wie Lichtschranken-Eingangs-oder mechanische Leistung.
Wie entscheiden Sie, wie zu entwerfen Sie Ihre computing-Gerät?
Die Gestaltung richtet sich nach dem Zweck der CNN. Input-Eigenschaften, Genauigkeit, training Geschwindigkeit, scoring-speed -, Anpassungs -, computing-Ressourcen, ... alle diese beeinflussen das design. Es gibt keine generalisierte Lösung, auch für ein bestimmtes problem (noch) nicht.
Bedenken Sie zum Beispiel, die ImageNet Klassifizierung problem. Hinweis: die strukturellen Unterschiede zwischen dem Gewinner und-Anwärter so weit: AlexNet, GoogleNet, ResNet, VGG, etc. Wenn Sie die Eingänge ändern (sagen wir, um MNIST), dann sind diese overkill. Wenn Sie ändern das Paradigma, Sie kann nutzlos sein. GoogleNet kann ein Prinz von Bild-Verarbeitung, aber es ist schrecklich für die übersetzung der gesprochenen Französisch Englisch geschrieben. Wenn Sie verfolgen möchten, ein hockey-puck in Echtzeit auf Ihrem Bildschirm, vergessen diese Implementierungen vollständig.
So weit, wir machen das in der empirischen Weg: viele Menschen versuchen eine Menge verschiedener Dinge zu sehen, was funktioniert. Wir bekommen Gefühle für das, was die Genauigkeit erhöhen, oder die Zeit der Ausbildung, oder was auch immer Faktor, den wir optimieren wollen. Wir finden heraus, was funktioniert gut mit der Gesamt-CPU-Zeit, oder was wir tun können, parallel. Wir ändern algorithmen, um die Vorteile von Vektor-Mathematik in den Längen, die Potenzen von 2. Wir ändern Probleme leicht und sehen, wie das lernen passt sich an anderer Stelle. Wir ändern von Domänen (sagen, Bildverarbeitung in geschriebenen text), und starten Sie alle immer-aber mit ein vages Gefühl von dem, was vielleicht Stimmen einer bestimmten Engpass, sobald wir nach unten kommen, um unter Berücksichtigung bestimmter Arten von Schichten.
Erinnern, CNNs nicht wirklich populär gewesen, so lange, knapp 6 Jahre. Für die meisten Teil, wir sind immer noch versuchen zu lernen, was die wichtigsten Fragen sein könnte. Willkommen im research-team.
UPDATE
Sehen auf dieser Seite für einige Hinweise auf das, was Taktiken, die zu funktionieren scheinen, unter einige gemeinsame Umstände.
Gestaltung CNN-Architekturen um eine optimale Ausgabe ist eine schwierige und oft eine empirische Arbeit, jedoch gibt es bestimmte tricks und Techniken (Beweise für einige von Ihnen auch vorhanden ist), die werden verwendet, um design-Netzwerk.
Bitte Lesen Sie die hier verlinkten Dokument mit dem Titel "Eine praktische Theorie für die Gestaltung sehr deep convolutional neural networks" durch eine kaggler die eine in der Nähe von state-of-the-art-Ergebnisse mit diesen einfachen Regeln.