Diskussion:Convolutional Neural Network

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 5 Jahren von TheRandomIP in Abschnitt Beispiele
Zur Navigation springen Zur Suche springen

Struktur[Quelltext bearbeiten]

Leider gibt in der deutschen Wikipedia noch zu viele weiße Flecken auf der Machine-Learning Landkarte - darum habe ich diesen Artikel geschrieben (bzw ihn von einem nicht-akzeptablen auf ein hoffentlich anständiges Niveau gehoben). Ich möchte kurz betonen, den Artikel nicht unnötig auszudehnen. Ich denke die Informationsmenge und -tiefe ist recht sinnvoll um einen ersten Überblick über das Thema zu bekommen, mehr soll und kann er auch nicht bieten. --Dopexxx (Diskussion) 00:23, 18. Nov. 2017 (CET)Beantworten

Erster Satz[Quelltext bearbeiten]

Das Wort "feedforward" ist kein Adjektiv im Deutschen, nicht einmal im Englischen, daher bitte ich um Umformulierung des ersten Satzes, der momentan mit "...ist ein feedforward künstliches neuronales Netz" endet. Falls es als Substantiv verwendet wird, könnte es zum Beispiel "...ist ein künstliches neuronales Feedforward-Netz" oder "...ist ein künstliches neuronales Netz mit Feedforward-Prinzip" oder so ähnlich lauten. --Neitram  13:08, 26. Mai 2017 (CEST)Beantworten

Nochmals erster Satz[Quelltext bearbeiten]

"Convolutional" ist im Englischen ein Adjektiv, daher irritiert mich die Übersetzung mit dem Verb "faltendes" im ersten Satz. Es macht ja sprachlich einen Unterschied, ob ein Ding "gefaltet ist" oder ob es etwas "aktiv faltet". Sollte es vielleicht besser "gefaltetes neurales Netzwerk" lauten? Dieser Begriff hat aber null Googletreffer. --Neitram  13:16, 26. Mai 2017 (CEST)Beantworten

Und - mit Verlaub - kein Schwein versteht, was damit gemeint ist. Ob "gefaltet" oder nicht. Kann es eine Fachperson mal erklären?! --Cami de Son Duc (Diskussion) 23:30, 19. Aug. 2017 (CEST)Beantworten
Der Name kommt von Konvolution (oder im Deutschen Faltung). Das Netz ist nicht gefaltet - es faltet (im mathematischen Sinne). --TheRandomIP (Diskussion) 16:49, 24. Sep. 2017 (CEST)Beantworten

Biologische Plausibilität[Quelltext bearbeiten]

Zitat:

CNNs können als ein vom Gehirn inspiriertes Konzept verstanden werden, allerdings nicht (wie von einigen Entwicklern behauptet) als „Model des visuellen Kortex“.

Quelle soll dieser Artikel sein. Aber da geht es um Gesichtsausdruck-Erkennnung, und diese fragliche, sehr starke Aussage kommt dort nicht vor. @Dopexxx: Erinnerst du dich noch daran, wie das zustande kam? --TheRandomIP (Diskussion) 22:22, 14. Sep. 2017 (CEST)Beantworten

@TheRandomIP: Danke für den Hinweis. Das genannte Paper ist in der Tat der Beleg dafür, dass CNNs als "vom Gehirn inspiriertes Konzept" verstanden werden können (Siehe Seite 1, rechte Spalte, 2. Absatz "Convolutional neural network (CNN) models [...] known as one of biologically inspired models"); nicht aber dafür, dass einige Menschen(oftmals Ingenieure oder Journalisten) es als Modell des visuellen Kortex darstellen. Wenn ich dich richtig verstehe, hättest du gerne einen Nachweis für letzteres, oder?

Richtig, auf diesen zweiten Teil kommt es mir hier an. So wie der Satz da steht müssen zwei Dinge belegt werden. 1. Dass es kein "Model des visuellen Kortex" ist und 2. Dass es Entwickler gibt, die das dennoch behaupten. Und es wäre nicht schlecht, etwas zu konkretisieren, wer diese "Entwickler" sind, die das behauten. Das ist sonst zu generisch. --TheRandomIP (Diskussion) 17:27, 15. Sep. 2017 (CEST)Beantworten
@TheRandomIP: Du hast absolut Recht, das war etwas unkonkret daherformuliert meinerseits. Ich habe mal 2 Quellen aufgetrieben und die eingefügt, beide aus den USA, also keine "Hinterwäldlerunis". Ich hoffe, das passt jetzt so aus deiner Sicht. Im abstract des ersten steht, dass sie mittels eines CNNs ein "realistic model of the visual word form area" entwickelt haben. Beim Zweiten steht es etwas zwar etwas genereller, aber auch direkt im abstract. Ich kann mich über so viel Ignoranz vor der Neurobiologie wirklich ärgern, BackProp im Gehirn, mein Gott, dass dachte Hinton in den 80ern bevor wir fMRI hatten. --dopexxx (Diskussion) 22:33, 17. Sep. 2017 (CEST)Beantworten
Ich sehe immer noch nicht, warum CNNs kein Modell des visuellen Kortex sein sollen. Die Paper behaupten das ja und entkräften das nicht. Auch im weiteren Verlauf des Kapitels wird das nicht wirklich widerlegt. Es mag zwar sein, dass Backpropagation nicht biologisch plausibel ist, aber Backpropagation ist kein Teil von CNNs. Man könnte die Gewichte ja auch anders erhalten. Wenn ich mich recht erinnere gab es auch mal ein Paper, da wurden Filter für CNNs von Hand "designt". Bzw. es gibt zumindest ein Paper, das den vorderen Teil des Netzwerkes durch feste Gabor-Filter ersetzt hat. (hier). --TheRandomIP (Diskussion) 23:14, 17. Sep. 2017 (CEST)Beantworten
Okay, das überrascht mich jetzt doch sehr.... Also BackProp ist mit Sicherheit fester Bestandteil von CNNs. Es stimmt, dass du die Gewichte des ersten Layers durch Gaborfilter ersetzen kannst, aber 1) würdest du diese annähernd durch BackProp ebenso erhalten und 2) geht das einzig und allein für die Gewichte des 1. Layers. Danach müsstest du deconvolutional networks benutzen und dann auch noch wissen wie die optimalen filter activations in den hinteren Layers aussehen sollten. Davon habe ich noch nie gehört. Selbst wenn: Der Artikel behandelt Standard-CNNs, die benutzen BackProp, was definitiv nicht biologisch plausibel ist und dementsprechend kann man nicht von einem realistischen Modell des visuellen Kortex sprechen. Dazu kommen doch noch unzählige weitere neurobiologische Gründe (cortical magnification, Uniformitätsannahme der Neuronen, Lineare (damit differenzierbare) Aktivierungsfunktion der Neurone und vor allem die diskreten Zeitstempel (siehe hierzu Gepulste neuronale Netze)). Jeder (Neuro)biologe der unsere Diskussion hier liest, packt sich doch an den Kopf!--Dopexxx (Diskussion) 08:27, 20. Sep. 2017 (CEST)Beantworten
Also, Backprop ist kein Bestandteil von CNNs. Backporp ist ein Verfahren, um u.a. CNNs zu trainieren. Backprop steht für sich und kann für jede andere Art von Netzen angewendet werden. CNNs stehen für sich und die Gewichte können auf jede andere Art und Weise gewonnen werden. Der Artikel behandelt nicht nur "Standard-CNNs" (was auch immer das sein soll), sondern allgemein faltende Netze. Alles drum herum tut hier nichts zur Sache. Das manuelle Designen war ja nur ein kleines Beispiel, das mir auf die schnelle eingefallen ist, um den theoretische Argument zu untermauern. Wenn man sich mal näher umschaut, findet man, dass neuronale Netze (inkl. ihrer Gewichte) auch mit genetischen Algorithmen "gemacht" werden können, siehe z.B. NeuroEvolution of Augmented Topologies, ohne Backprop.
Falls es, wie du sagst, noch andere Gründe dafür gibt, dass CNNs nicht als Modell für den visuellen Cortex gesehen werden können, können diese doch direkt im Artikel erwähnt werden.
Letztlich ist es wohl so, dass dieser Sachverhalt mehr Facetten als nur eine "ja/nein"-Antwort hat. Ein Modell kann vereinfachen, das ist kein Ausschlusskriterium. Vielleicht sollte man gemäß der Neutralität einer Enzyklopädie diese Frage offen lassen und nur schreiben, warum manche Leute ein CNN als Modell des visuellen Kortex sehen, was da jedoch dagegen sprechen würde, also an welchen Stellen zu sehr vereinfacht wurde oder das Modell vom realen Vorbild abweicht. Das wäre sicherlich viel interessanter als einfach nur ein "Nein, das ist so, Punkt.". Ich kann auch ein paar Zeilen Text dazu beitragen.
P.S. In meiner vorherigen Antwort habe ich ein wenig den Advocatus Diaboli eingenommen auf Basis der im Artikel erwähnten Informationen. Nicht missverstehen. --TheRandomIP (Diskussion) 18:32, 20. Sep. 2017 (CEST)Beantworten
P.P.S. Ich habe den Text gerade etwas angepasst, sodass er den verlinkten Quellen entspricht. Denn was nicht geht ist es eine Quelle anzugeben, die A behauptet und daraus B abzuleiten. Nicht aufregen! Du bist eingeladen, die "Kontra"-Seite noch weiter auszubauen. --TheRandomIP (Diskussion) 19:26, 20. Sep. 2017 (CEST)Beantworten


Beispiele[Quelltext bearbeiten]

@TheRandomIP: warum hast du die aufgeführten Beispiele durch einen generellen Abschnitt über RL ersetzt? Ich beziehe mich auf die Änderungen "Bloßes Anwendungsbeispiel durch generelles Anwendungsprinzip ersetzt" und "Fällt mit dem Anwendungsfall Spracherkennung zusammen" wo du die Abschnitte zu AlphaGo, DeepL und Siri löscht. Für den technisch weniger versierten Laien, an den wir uns in einer nicht fachlichen Enzyklopädie ja richten, ist Reinforcement Learning eher kein Begriff. Siri hingegen wird jeder aus dem Alltag kennen, AlphaGo ebenfalls wenn man die Medien halbwegs aufmerksam verfolgt.--Dopexxx (Diskussion) 14:31, 3. Jul. 2018 (CEST)Beantworten

Die Wikipedia soll ja auch dazu da sein, dass man nachher was weiß, was man davor noch nicht wusste. :-) Siri und AlphaGo sind nur die bekanntesten Produkte, die CNNs verwenden. Es gibt noch unzählige weitere. Würdest du das alles ausblenden, könnte auch der Eindruck entshehen, diese Produkte seien etwas besonderes / einzigartiges, weil sie CNNs einsetzen, aber das stimmt so nicht. Oder um es noch mal anders zu sagen: Die Begriffe CNN / neuronales Netz / KI werden heute auch gerne als Buzzwords benutzt, selbst wenn sie in dem verwendeten Produkt nicht die Hauptrolle spielen. Beispiel AMDs SenseMI. Würdest du also auf nicht-wissenschaftliche Quellen zurückgreifen, würdest du am Ende nur die Produkte nennen, wo das Marketing besonders clever war, aber nicht die, die tatsächlich einen bedeutenden Beitrag für / mit CNNs geleistet haben. --TheRandomIP (Diskussion) 18:09, 3. Jul. 2018 (CEST)Beantworten

Robustheit gegenüber Transformationen[Quelltext bearbeiten]

Neben dem wesentlich verringerten Arbeitsspeicherbedarf, haben sich geteilte Gewichte als robust gegenüber Translations-, Rotations-, Skalen- und Luminanzvarianz erwiesen. Auf der Website von Yann Lecun (die als Quelle angegeben wurde) habe ich die Aussage so nicht gelesen. Da ging es denke ich um das spezielle Netz und nicht die allgemeine Architektur von CNNs. CNNs sind aufgrund der Convolutional layers robust gegenüber Translationen, aber dies sollte nicht bei Rotationen gegeben sein, wenn ich [Learning] richtig lese. Dort steht im zweiten Absatz vor dem Kapitel 9.3 "Convolution is not naturally equivariant to some other transformations, such as changes in the scale or rotation of an image. Other mechanisms are necessary for handling these kinds of transformations.". Und da die geteilten Gewichte doch durch die Covolutional layers erreicht werden scheint es mir als ob der Satz, so wie er im Artikel steht, nicht ganz richtig ist. Könnte mich da jemand aufklären?