Was war das coolste und abgefahrenste was ihr mit einem FPGA mal gemacht habt?
Altera SoC. 4x 100MS ADC am FPGA. Linux + Webserver auf den Applikationsprozessoren. Visualisierung und Parametrierung über den Browser möglich. Also eine Art "Web Oszi".
Eine Speicherweiterung 512KB RAM + 512KB EEPROM für einen VC-20 Retro Computer von Commodore. Unter Berücksichtigung der verschiedenen Speichermodelle und ausgefeiltem Banking. Final Expansion: https://de.wikipedia.org/wiki/Final_Expansion Na gut, ist nur ein CPLD.
:
Bearbeitet durch User
vBraunsUrenkel schrieb: > Lenkwaffensteuerung Ein Privatprojekt? Was Ich verfolge, war dieses Radio-Projekt mit 4 Komponenten im FPGA, das hier einst als Wettbewerb lief. Kam aber offenbar nichts bei raus. Mein Projekt wäre ein kompletter Funkmastabgleichgenerator.
Für coole FPGA Projekte bieten sich die ultra low power FPGAs von Lattice an, die werden kaum warm. Wenn's auch noch abgefahren sein soll: Einfach auf einem fahrbaren Objekt montieren.
Andy schrieb: > Für coole FPGA Projekte bieten sich die ultra low power FPGAs von > Lattice an, die werden kaum warm. ... und wenn sie immer noch nicht cool genug sind: Einfach einen Antistrom einprägen und als Peltier-FPGA verwenden. > Wenn's auch noch abgefahren sein soll: Einfach auf einem fahrbaren > Objekt montieren. ... aber rechtzeitig platzieren, bevor das Objekt weg ist :-) Empfehlenswert sind auch "spannende" Projekte, wie ein Ei zwischen zwei FPGAs einquetschen oder ein Auto dran aufhängen, am Besten mit mit "auto constraining" ...
FPGAfan schrieb: > Habt ihr schon mal versucht eine künstliche Intelligenz mit einem > FPGA zu entwickeln? Nicht die komplette, aber als Beschleuniger für einen DSP, der offline und relativ energieeffizient KI Sachen tut, hab ich sowas in einem Forschungsprojekt gemacht. Zerfällt ja am Ende auf Matrizen Multiplikation usw. Aber war schon kniffelig, mit mehreren DDR3 RAMs, paralleler Abarbeitung und dann noch halbwegs stromsparend... Steckt hier drin: https://www.elektronikforschung.de/projekte/misis Und erweitert nochmal hier: https://www.technik-zum-menschen-bringen.de/projekte/ucui
DArf man wissen, inwieweit hier KI zum Tragen kommen? Was tut dieses Gerät im Bezug auf KI, was andere nicht können?
frager schrieb: > DArf man wissen, inwieweit hier KI zum Tragen kommen? Was tut > dieses Gerät im Bezug auf KI, was andere nicht können? Naja, meines Wissens ist das von den aktuellen KI Sachen ein ganzes Stück entfernt. Hier gehts um recht einfache, lernende Algorithmen die optimiert für offline Anwendung und stromsparend ausgelegt wurden. Ich hab da ehrlich gesagt selbst nicht 100 Prozent durchgeblickt, hab "nur" die FPGA Sachen für unseren Anteil gemacht, das war vorher schon mal auf PC ausprobiert worden und wurde dann auf einen Artix portiert.
Ainen gudden! Christian R. schrieb: > Nicht die komplette, aber als Beschleuniger für einen DSP, der offline > und relativ energieeffizient KI Sachen tut, Ach; die haben wohl Probleme mit der Datenschaufelei. Ein paralleles Netz zeitlich zu diskretisieren ist sowieso der falsche Ansatz. Die zu verarbeitenden Datenmengen können jederzeit jeden Rahmen sprengen. Eine Möglichkeit wäre die zu schaufelnden Daten mit Methoden der Videokompression zu bearbeiten. Was aber im Endeffekt auf sowas wie malen nach Zahlen hinausläuft und einem die Datenmassen trotzdem immer wieder um die Ohren fliegen. Dwianea hirnschaden
Hirnschaden, H. schrieb: > Eine Möglichkeit wäre die zu schaufelnden Daten mit Methoden der > Videokompression zu bearbeiten. Was aber im Endeffekt auf sowas wie > malen nach Zahlen hinausläuft und einem die Datenmassen trotzdem immer > wieder um die Ohren fliegen. Wenn Ich so Zeug lesen muss, kann Ich nur sagen, dass Dein nick gut gewählt ist. Du solltest mal drüber nachdenken, ob das sinnig ist, den weniger gut Informierten hier im Forum dein unausgereiftes Wissen aufzudrücken.
Ainen gudden! Kamera-d schrieb: > Du solltest mal drüber nachdenken, ob das sinnig ist, den weniger gut > Informierten hier im Forum dein unausgereiftes Wissen aufzudrücken. Meinst Du jetzt die, die ein neuronales Netz am laufen haben oder die Anderen, die sowas nur vom hörensagen kennen? Dwianea hirnschaden
Hirnschaden, H. schrieb: > Meinst Du jetzt die, die ein neuronales Netz am laufen haben oder die > Anderen, die sowas nur vom hörensagen kennen? Sicher meint er den Teil der Leserschaft, der über ein solches, mit der Entsprechung seiner KI als Hauptprozessor auskommen muss.;)
Ainen gudden! Winfried J. schrieb: > Sicher meint er den Teil der Leserschaft, der über ein solches, mit der > Entsprechung seiner KI als Hauptprozessor auskommen muss.;) Ach Du meinst jetzt die von ihm geschriebenen Bots? Weil die brauchen ja auch irgendwelche Daten zum Verarbeiten.? Dwianea hirnschaden
Ainen gudden! Kamera-d schrieb: > Du solltest mal drüber nachdenken, ob das sinnig ist, den weniger gut > Informierten hier im Forum dein unausgereiftes Wissen aufzudrücken. Wer sich mit Neuronalen Netzen befaßt, der steht direkt und unvermittelt dem Chaos höchstpersönlich gegenüber. Dwianea hirnschaden
Ainen gudden! Kamera-d schrieb: > Du solltest mal drüber nachdenken, ob das sinnig ist, den weniger gut > Informierten hier im Forum dein unausgereiftes Wissen aufzudrücken. Spätestens seit Ende der 80er sind die Nachteile von Neuronalen Netzen bekannt, und daß noch jahrzehntelange, eher jahrhundertelange Grundlagenforschung nötig ist. Ein paar Versager versuchen es trotzdem. Mehr als nette Versuche mit definierter Bandbreite kriegen die nich' auf die Reihe. Dwianea hirnschaden
Ich vertiefe mich seit einiger Zeit im Bereich der Hirnforschung und dem Wesen von biologischen Gehirnen. Künstliche Neuronale Netze werfen für mich aber auch für andere die Frage auf inwiefern es sich eigentlich wirklich um künstliche neuronale Netze nach dem Vorbild der Natur handelt. Schaut man sich echte neuronale Netze an kann man sehen das die KNN davon nur eine grobe Vereinfachung darstellen. Nicht nur das. Man vermischt das Vorbild der Natur mit menschlichen algorithmischen Fantasien. So etwas wie die Backpropagation von KNN hat man bisher nicht in echten neuronalen Netzen finden können. Mir scheint es bisher so zu sein dass das einzige was von der Natur abgeschaut wurde das Prinzip der Gewichtung der Verbindungen zwischen den einzelnen Neuronen ist. Die neuronalen Strukturen in Gehirnen wird ignoriert. Außerdem typisch menschlich und mathematisch gestaltet man die KNN wohlgeordnet alles schön säuberlich der Reihe nach. Man hat eine ordentliche Struktur vor sich und jede Verbindung der Neuronen ist klar definiert und einheitlich. Echte neuronale Netze zeichnen sich durch ein Gleichgewicht aus zwischen struktureller Ordnung und Chaos in den Verbindungen der Neuronen. Echte Gehirne funktionieren nicht wie Computer. Ein einzelnes Neuron hat normalerweise keine eindeutige Bedeutung. Es ist nicht wie eine 1 oder 0. Vorgänge in Tausenden und Millionen von Neuronen ergeben im ersten Blick ein chaotischen Vorgang das nur in der statistischen Betrachtung ein deutliches Ergebnis hervorbringt. Ich finde es erstaunlich wie man in den ganzen Jahrzehnten nicht ernsthaft versucht hat die Prinzipien der Natur weiter zu übernehmen. Stattdessen hat man das Konzept der neuronalen Netze mit immer mehr abstrakten menschlichen Ideen ausgestattet. Vieles deutet aber daraufhin das echte neuronale Netze keine fest eingebautes Algorithmus besitzen, sie arbeiten vielmehr durch das Prinzip des Zufalls, Chaos, Struktureller Ordnung, Emergenz, Evolutionäre Populationsvorgänge (häufig aktivierte Verbindungen werden gestärkt, andere weniger aktivierte Verbindungsketten geschwächt). Hier ist ein Beispiel für eine im Chaos der synaptischen Verbindungen sich deutlich abzeichnete Struktur in der Großhirnrinde, die sogenannten kortikalen Säulen. Säulenartige Strukturen bestehend aus verschiedenen Schichten von unterschiedlichen Typen von Neuronen: http://www.kurzweilai.net/images/vibrissal-cortex-rat.jpg Und wie man sieht sehen die meisten KNNs nicht annähernd so aus. Die üblichen KNNs haben Neurone die alle vom gleichen Typ also die selben Eigenschaften besitzen. Räumliche Faktoren in Form von Neuronen Größe bzw. der Länge ihrer Axone die den Signalverlauf beeinflussen gibt es in KNNs nicht. In kortikalen Säulen fließen die Informationen in Form neuronaler Aktivität zwischen Netzen mit unterschiedlichen Typen von Neuronen. Das heißt die Art und Weise des Informationsflusses im neuronalen Netz wird dadurch in irgendeiner Form beeinflusst. KNNs dagegen haben eine monotone einheitliche Struktur. Ein weiterer Unterschied ist dass die meisten KNNs im Grunde nur eine einzige neuronale Karte darstellen. Das heißt das Netz von künstlichen neuronalen Verbindungen stellt insgesamt eine neuronale Karte da. Viele Hinweise deuten darauf hin dass in echten Gehirnen durch strukturelle Verbindungen Informationen nicht nur anhand einzelner Karten verarbeitet werden sondern durch eine Wechselwirkung zwischen eine Mehrzahl von neuronalen Karten. Das heißt viele voneinander abgrenzbare neuronale Karten wechselwirken ständig miteinander. Was dadurch genau passiert lässt sich bisher noch nicht genau sagen, aber es ist deutlich dass dadurch sozusagen mehr Dynamik für die Informationsverarbeitung entsteht. Wenn für bestimmte Vorgänge zwei Karten unterschiedlicher Struktur nötig sind dann ist eine Karte dazu nicht fähig aber mehr als eine Karte ist dazu fähig. Die Dynamik der Möglichkeiten wächst also. So was sucht man in KNNs aber auch vergeblich. KNNs leiden meiner Ansicht nach unter dem Tunnelblick klassischer Mathematik. Man versucht einheitliche und sauber strukturierte Netze zu generieren mit wenig Raum für eine große Dynamik. Der menschliche Geist ist dazu geneigt die Natur in abstrakten und vereinfachten Modellen zu betrachten. Man versucht Unordnung und Vielfalt aus den Modellen möglichst zu entfernen. Kurz, man ist dazu geneigt eine Art Computer Variante von neuronalen Netzen zu erschaffen, starr und vereinfacht. Die Dynamik in Computern Modellen ist im Vergleich zum biologischen Vorbild sehr stark eingeschränkt. Diese Defizite führe ich auf die Trennung der Wissenschaftsdiszipline zurück also schlichtweg dem Mangel an Wissen aus Fachübergreifenden Gebieten (auch wenn es so was wie Bioinformatiker gibt, genügt es wohl nicht) und mangelnden Ideen wie man die biologische Dynamik in beherrschbarem und nutzbarem Umfang in künstliche Modelle überführen kann.
Nur mal eine Deiner Aussagen rausgepickt: FPGAfan schrieb: > Die neuronalen Strukturen in Gehirnen wird ignoriert. Außerdem typisch > menschlich und mathematisch gestaltet man die KNN wohlgeordnet alles > schön säuberlich der Reihe nach. Man hat eine ordentliche Struktur vor > sich und jede Verbindung der Neuronen ist klar definiert und > einheitlich. Ein Recurrentes Cascade Correlation Neuronales Netzwerk hat folgende Eigenschaften: - keine feste Organisation in sogennnten Layern - jedes Neuron (man sagt eher Unit) kann eine Verbindung zu jedem Eingang eines anderen Neurons ausbilden - die Anzahl der Neuronen, die Anzahl und Stärke der Verbindungen zu allen anderen Neuronen sind variabel und werden beim Training ausgebildet oder entfernt - jedes Neuron hat eine Verbindung seines Ausgangs zu seinem eigenen Eingang, deshalb recurrent und damit ein "Gedächntis". Das Netzwerk kann also sequentielle Muster erlernen - damit sind die Verbindungen der Neuronen maximal verknüpfbar, sie sind nicht mehr "klar definiert" in deinem Sinne und auch nicht mehr einheitlich. - das Training des Netzwerkes erfolgt mit Hilfe von Verfahren die den genetischen Algorithmen/Evolutions Strategien entsprechen und die Backpropagation Lernalgos. unterstützen - die benutzten Aktvierungsfunktionen der Units können variabel sein - die sich ergebenden trainierten Netzwerke entsprechen sehr verblüffend den Strukturen natürlicher NNs. Ich habe selber so ein Netzwerk schon implementiert. Du siehst also das deine Aussagen längst nicht mehr korrekt sind und dem Stand von vor 20 Jahren entsprechen. Davon abgesehen: auch unsere natürlichen NNs arbeiten mit Backpropagation und Aktivierungsfunktionen. > Echte neuronale Netze zeichnen sich durch ein Gleichgewicht aus zwischen > struktureller Ordnung und Chaos in den Verbindungen der Neuronen. Jo in so machem NN herrscht Chaos aber in den meisten Hirnen sicherlich nicht und schon garnicht auf struktureller Ebene meines NNs. Natürliche Neuronale Netzwerke haben mit Chaos überhaupt nichts gemein. Wäre dem so so könnten natürliche NNs Zufallsentscheidungen treffen, aber exakt das können sie eben nicht, besonders nicht menschliche Hirne. Dazu habe ich mit dem oben erwähnten RCC-NN ein sehr einfaches Spiel programmiert. Zwei Buttons, rot und grün. Der Mensch könnte sich frei entscheiden ob er den grünen oder roten Schalter betätigt. Im Hintergrund lief in Echtzeit ein RCC-NN und erlernte die Muster die der Mensch benutzte um die Schalter nacheinander zu drücken. Vor jeder Betätigung traf das RCC-NN eine Prognose welchen der Schalter der Mensch als nächstes drückt. Dabei aber nur basierend auf den Daten die es seit Spielbegin als Vergleichsdaten hatte. Schon nach ca. 100 Durchläufen hatte das NN eine Prognosewahrscheinlichkeit von >65% erreicht, egal für welche Taktik sich der Mensch entschieden hat. Nur wenn der Mensch schummelte und einen Würfel benutzte lag das NN mit 50% Wahrschenlichkeit in der statistischen Bandbreite von Zufall = Raten. Unsere Hirne sind nicht in der Lage zufällige Entscheidungen zu treffen, dies wäre aber ein zwingendes Indiz oder eben eine Folge für dein sogenanntes "Chaos". Mal von all dem abgesehen: den Forschern zu NNs geht es nicht darum damit die Natur 1 zu 1 nachbilden zu wollen. Wenn die möglichen Ergebnisse den Ergebnissen die natürliche NNs liefern können ähnlich oder sogar teilweis besser sind bei den künstlichen NNs dann ist es egal auf welche Art und Weise beide Netzwerke intern arbeiten. Ein gutes Analogon ist die Geschichte der Genetischen Algorithmen im vergleich zu den Evolutions Strategieen. Beides sind Verfahren die die grundlegenden Gesetzte der natürliche Evolution in die Wissenschaft der Informatik bringen. Der Unterschied beider Verfahren besteht aber in der ursprünglichen Motivation, ihrer Zielrichtung. Die genetischen Algorithmen versuchten die Kodierung der Informationen so nahe wie möglich an die der natur anzulehenen. Sie benutzten also intern Gene, Allele, Chromosomen, Geschlechtertrennung usw. usw. und bauten somit die natürliche Genetik im Computer nach. Die Evolutionsstrategien benutzten Fließkommezahlen in Arrays organisiert, also ganz simpel. Beide Verfahren wendeten die Gesetzmäßigkeiten der Evolution an. Resultat: die GAs konnten lange zeit keine für die Praxis relevanten Ergebnisse erzielen. Einer der verblüffesten Durchbrüche war das sie noch vor den Biologen/Genetikern ermitteln konnten was prozentual die optimale Mutationsrate der Gene zum Gesamtgenom ist, ca. 2.3%. Diese Erkenntniss wurde erst später durch Biologen/Genteiker in der Natur nachgewiesen. Die ES dagegen lieferten sehr schnell praxisrelevante Ergebnisse. Zb. oprimierten sie die Statik von Kranen oder ähnlichen Tragkonstruktionen. Das verblüffende war aber das die Biologen später ähnliche "Verfahren" zb. beim Wachstum von Pflanzen nachweisen konnten. Oder sie optimierten Düsenformen für Düsen die ein Gas-Flüssigkeits-Gemisch benutzten und fanden dadurch sehr verblüffende Düsenformen die der menschlichen Intuition und sogar dem bisherigen Ingenieurswissen widersprachen. Das verblüffende daran? später fanden Biologen bei der Untersuichung von Häuten verschiedenster Fische, zB. Haien, ähnliche Strukten wie dei den vorher konstrueriten Düsen. Aber auch in rein theoretischen Bereichen, wie zB. der Mathematik, brachten die ES frappierende Erfolge. Z.b. bei der Erforschung des Problems des Handlungsreisenden. Und so kann man die Liste fortsetzen. Es zeigt aber das die "Kodierung" nicht so die große Rolle spielt solange man die Gesetzmäßigkeiten korrekt anwendet. Und exakt so ist es auch bei den Neuronalen Netzwerken. Deren "Kodierung" sprich Hardware ist garnichtmal so entscheidend sondern die Gesetzmäßigkeiten der Wirkungs-/Funktionsweise ist es. Die meisten heutigen NNs versuchen erst garnicht unsere Hirne nachzubauen, wozu auch. Sie sollen ganz andere Probleme für uns lösen mit denen wir viel größere Schwierigkeiten haben als solche NNs. Gruß Hagen
Hagen R. schrieb: > Ein Recurrentes Cascade Correlation Neuronales Netzwerk hat folgende > Eigenschaften: Ok das sehe ich ein, meine Kritik kann sich also nicht auf alle Arten von KNN beziehen. Hagen R. schrieb: > Davon abgesehen: auch unsere natürlichen NNs arbeiten mit > Backpropagation und Aktivierungsfunktionen. Nein für die Backpropagation gibt es so in der Form in biologischen NN nicht. Kannst mir aber gerne Arbeiten oder Quellen nennen die das nachweisen sollen, man hat nur Hinweise gefunden die man dahingehend deuten kann. Im Gehirn gibt es keine direkte Rückkopplung auf einzelne Synapsen nach dem Prinzip "das Ergebnis passt nicht, verändere die Effektivität der synaptischen Verbindung". Nach der Theorie der Selektion Neuronaler Gruppen von Gerald M. Edelman ist vielmehr von einem großen Repertoire an synaptischen Verbindungen auszugehen. Einfach gesagt bietet das Gehirn so viele und vielfältige synaptische Verbindungen dass sich in diesem Netz eine Verbindungskette finden lässt die zum gewünschten Ergebnis annähert. Durch wiederholte Aktivierung der passenden Netze wird die angenäherte Lösung verstärkt und die Annäherun kommt dem endgültigen Ergebnis sehr nahe. Die Backpropagation in KNNs versucht vielmehr das vorhandene Netz ständig umzuformen im Lernprozess während das Gehirn vielmehr von seinem großen Repertoire schöpft um die richtige Verbindungskette anzunähern. Hagen R. schrieb: > Jo in so machem NN herrscht Chaos aber in den meisten Hirnen sicherlich > nicht und schon garnicht auf struktureller Ebene meines NNs. Natürliche > Neuronale Netzwerke haben mit Chaos überhaupt nichts gemein. Wäre dem so > so könnten natürliche NNs Zufallsentscheidungen treffen, aber exakt das > können sie eben nicht, besonders nicht menschliche Hirne. Ein solches Denken resultiert wenn man Maschinen und Computer mit Gehirnen gleichsetzt. Natürlich bringt das Gehirn eindeutige Ergebnisse und das Verhalten ist an eine komplexe Kette von Bedingungen geknüpft. Trotzdem spielt der Zufall und der Chaos eine bedeutende Rolle in neuronalen Netzen. Der Mensch wird mit einem Repertoire an synaptischen Verbindungen geboren. Kleinkinder und Säuglinge besitzen sogar mehr synaptische Verbindungen als Erwachsene (diese nimmt mit der Zeit ab während neue Verbindungen mit den vorhandenen Synapsen entstehen). Das ganze ist als Synaptic pruning bekannt. Im Laufe der Entwicklung des Gehirns werden die synaptischen Verbindungen abgebaut und es bleiben tendenziell die Synapsen erhalten die häufig aktiviert werden. Man wird also mit einem Repertoire an synaptischen Verbindungen geboren und die häufig aktivierten Verbindungen bleiben durch Verstärkung der synaptischen Verbindungen. Und dieses Repertoire an synaptischen Verbindungen das mit der Geburt und der Gehirnentwicklung gegeben wird sieht bei jedem Mensch anders aus. Es ist kein genetisch vorgegebenes Ausgangspunkt aller menschlichen Gehirne. Es wird auch allgemein angenommen dass die DNA eines Menschen nicht genug Informationsspeicher bietet um die Verbindung aller Synapsen vorzugeben. Die DNA gibt vielmehr die Grundstruktur, die Grundregeln zum Wachstum dieser synaptischen Verbindungen. Kurz gesagt gibt es den Zufall in diesem Prozess. Die synaptischen Verbindungen entstehen zufällig im Rahmen genetischer Grundvoraussetzungen. Aus diesem zufälligen Repertoire können alle möglichen angenäherten Lösungen gefunden werden. Aber es ist kein starres Gebilde. Die einzelnen Neuronen verändern ihr Verhalten und die synaptische Aktivität abhängig von Aktivität, Hormonen usw. Das heißt diese zufälligen synaptischen Verbindungen werden nicht nur verstärkt, es erfolgt euch ein Wandel bestehender Netzwerke. Ich nehme an dass die angenäherten Lösungswege aus dem initialen Repertoire dadurch noch weiter angenähert werden (Lernprozess, Jahre an Erfahrung = massive Verbesserung gewünschter Verhaltensweisen). Ich sollte mich kurz fassen. Es gibt viele Befunde die dafür sprechen dass die eindeutigen Verhaltensweise die wir kennen nicht das Resultat eindeutiger Vorgänge ist wie die aus einem Computer. Sondern statistische Ergebnisse darstellen. Das Gehirn findet sozusagen Lösungen (ob intellektuelle oder körperliche Bewegungen) durch angenäherte statistische Vorgänge. Aus einer Fülle von viel Unordnung und bisschen Ordnung der synaptischen Aktivitäten kommt nach Aktivität von Millionen von Neuronen eine erstaunliche genaue Ordnung hervor. Das selbe Phänomen kann man auch in der Physik beobachten. Das Verhalten von Elementarteilchen kannst du nur statistisch angeben. Das ist kein Mangel der Messgenauigkeit der Geräte, sondern wie Heisenberg aufzeigte eine reale Eigenschaft der Materie. Aus vielen Trillionen fluktuierender Elementarteilchen entstehen in makroskopischen Größen Gesetzmäßigkeiten die man aus der klassischen Mechanik kennt. Das solle keine direkte Analogie zum Gehirn sein, sondern das Prinzip veranschaulichen wie aus chaotischen Vorgängen mit wenigen Gesetzen geordnete große Strukturen hervorgehen können. In dem Sinne gibt es einen gewissen Chaos, ein Art Rauschen in den neuronalen Netzen, doch die biologischen Gesetzmäßigkeiten formen dieses Rauschen derart das im Gesamtergebnis eine deutlich erkennbare Funktion entsteht. Wenn du aber versuchst einzelne Neuronen irgendeiner klaren Funktionskette zuzuordnen wirst du nur Rauschen feststellen. Entfernst du dieses Neuron wird das Gehirn weiterhin Ergebnisse richtig liefern. Die statistische Funktionsweise neuronaler Netze hat biologisch offensichtlich Vorteile. Sie sind evolutionär gesehen auch wahrscheinlicher als die Entstehung exakt klarer Mechanismen wie in Computern. Außerdem ist ein solcher Mechanismus wie geschaffen für ein adaptisches Verhalten und es besitzt dadurch auch eine gewisse Redundanz. Das absterben einiger Neurone führt nicht direkt zum vollständigen Funktionsverlust, die chaotischen aber statistischen eindeutigen Vorgänge finden trotzdem zum Ziel. Erst wenn eine kritische Anzahl an Neuronen wegfällt wird das statische Ergebnis zunehmend instabiler. Hagen R. schrieb: > Dazu habe ich mit dem oben erwähnten RCC-NN ein sehr einfaches Spiel > programmiert. Zwei Buttons, rot und grün. Der Mensch könnte sich frei > entscheiden ob er den grünen oder roten Schalter betätigt. Im > Hintergrund lief in Echtzeit ein RCC-NN und erlernte die Muster die der > Mensch benutzte um die Schalter nacheinander zu drücken. Vor jeder > Betätigung traf das RCC-NN eine Prognose welchen der Schalter der Mensch > als nächstes drückt. Dabei aber nur basierend auf den Daten die es seit > Spielbegin als Vergleichsdaten hatte. > > Schon nach ca. 100 Durchläufen hatte das NN eine > Prognosewahrscheinlichkeit von >65% erreicht, egal für welche Taktik > sich der Mensch entschieden hat. Nur wenn der Mensch schummelte und > einen Würfel benutzte lag das NN mit 50% Wahrschenlichkeit in der > statistischen Bandbreite von Zufall = Raten. Diese Prognose ist eine statistische Prognose. Eine Menge chaotischer Vorgänge aus denen man eine bestimmte Wahrscheinlichkeit ableiten kann. Es ist nicht das Ergebnis geordneter Berechnungen. Solche statistischen Gesetzmäßigkeiten gibt es im menschlichen Verhalten also im Gehirn sehr viele und sie sprechen alle für die oben beschriebene Funktionsweise. Ordnung aus Unordnung oder genauer gesagt Mehr Ordnung aus weniger Ordnung. Hagen R. schrieb: > Unsere Hirne sind nicht in der Lage zufällige Entscheidungen zu treffen, > dies wäre aber ein zwingendes Indiz oder eben eine Folge für dein > sogenanntes "Chaos". Der Zufall folgt statistischen Gesetzmäßigkeiten. Der Chaos bzw. der Zufall wirkt mit. Anders ist ein daptisches Verhalten gar nicht möglich. Es ist wie in der Evolution. Die komplexen Körper sind nicht das Ergebnis eines exakt planenden Konstrukteurs sondern Zufall und Selektion brachten die komplexen biologische Systeme hervor. Viele werden aber Mühe damit zu haben zu verstehen und zu akzeptieren dass der menschliche Geist und sein adaptisches Verhalten ähnlichen Mechanismen folgt. Also Mechanismen von Versuch und Irrtum, grob gesagt. Anders ist die Natur nicht in der Lage das Phänomen genannt Intelligenz hervorzubringen. Ohne einen Konstrukteur ist der Zufall und die Naturgesetze das einzige was so was hervorbringen kann. Ich kann dazu Edelmans Arbeiten empfehlen. Er verbindet das evolutionäre Populationsdenken auf die Funktionsweise des Gehirns an und kommt zu interressanten Schlussfolgerungen. Auf die Idee kam er durch seine Arbeiten am Immunsystem wofür er den Nobelpreis erhielt, wo er und andere feststellen das unser Immunsystem keine übergeordnete Intelligenz oder eine DNA orientierte Information besitzt um die passenden Antikörper gegen Fremdkörper zu entwickeln sondern dass das Immunsystem eine Vielzahl an zufälligen Antikörpern produziert und das nach dem Zufallsprinzip sich irgendwann ein Antikörper findet der die passende Struktur aufweist um sich an das Fremdkörper zu binden. Erfolgt dieser biologische Prozess einmal werden weitere biologische Signale erzeugt die dazu führen dass genau dieses Antikörper vermehrt wird. In der Folge entsteht ein intelligentes also ein adaptives Verhalten des Immunsystem. Der Zufall, der Chaos der zufälligen Antikörper, erzeugt schlussendlich das intelligente bzw. gewünschte Verhalten. Hagen R. schrieb: > Und so kann man die Liste fortsetzen. Es zeigt aber das die "Kodierung" > nicht so die große Rolle spielt solange man die Gesetzmäßigkeiten > korrekt anwendet. Und exakt so ist es auch bei den Neuronalen > Netzwerken. Deren "Kodierung" sprich Hardware ist garnichtmal so > entscheidend sondern die Gesetzmäßigkeiten der Wirkungs-/Funktionsweise > ist es. Da stimme ich dir im Grunde zu. Es ist ja erstaunlich wie brauchbar KNNs sind obwohl sie nur ein Stück von dem repräsentieren was man von biologischen NN kennt. Den Nutzen dass es heute hat bestreite ich nicht. Aber die Weiterentwicklung verläuft doch schon ziemlich träge, obwohl man hätte versuchen können aus der Biologie noch mehr zu lernen. Oder anders gesagt, man hätte noch mehr versuchen können von der Natur zu lernen, nicht im Sinne von wir bauen 1 zu 1 das Gehirn nach sondern herausfinden wie die Natur diese Netze nutzt. Denn KNN sind weit von den Fähigkeiten echter NN entfernt und ich sehr nur eine sehr langsame Weiterentwicklung. Viele Fortschritte basieren wohl eher auf der gewachsenen Rechenleistung heutiger Hardware, weniger auf der Weiterentwicklung der KNN. Hagen R. schrieb: > Die meisten heutigen NNs versuchen erst garnicht unsere Hirne > nachzubauen, wozu auch. Sie sollen ganz andere Probleme für uns lösen > mit denen wir viel größere Schwierigkeiten haben als solche NNs. Für die Praxis ist das verständlich. Aber in meinen Augen ist das große Ziel die Denkfähigkeit biologischer NN zu modellieren. Es lässt sich kaum bestreiten dass ein solches NN die überlegenste Fähigkeit der Kategorisierung und Entscheidungsfindung besitzt. Ich glaube man kann sich in Bereiche annähern die beeindruckende Leistungen ermöglichen noch lange bevor man von einem bewussten System sprechen kann wie beim Menschen. Wenn man bedenkt wie intelligent Tiere sich verhalten können entweder mit gar keinem oder einem weniger ausgeprägten Bewusstsein.
Ohne den ganzen Sermon jetzt im Detail gelesen zu haben: Es gibt längst was anderes als stupide Feed-Forward-Netze. Guckt euch - wenn nicht schon getan - mal die Arbeiten von Herrn Kohonen an. Das lustige an diesen Kohonen-Maps ist: Sie formieren sich selbstlernend wie Neuronen. Irgendjemand hat mal die Struktur mit einem Katzen-Gehirn verglichen. Ob das alles auf einem FPGA Sinn macht, bezweifle ich. Aber bestimmt liesse sich ein für NN-Berechnungen optimierter DSP-Multicore auf dem FPGA realisieren, for the academic fun of it. Nur dass oft für ganz profane Verarbeitung/Erkennung (Bildverarbeitung, zb) klassische Verfahren total ausreichen, und Support-Vektor-Maschinen die hippen NN-Ansätze eben doch wieder ganz pragmatisch ersetzen.
Die technische Fliegerei ist auch nicht aus dem Versuch entstanden, Vögel nachzubauen. Aktuelle Flugzeuge haben keine schlagenden, befiederten Flügel und extraleichte Hohlknochen. U-Boote haben mit Walen auch nur recht wenig gemeinsam. Warum sollte die KI-Forschung die Hirnstrukturen exakt nachbilden wollen? Menschengehirne erschaffen können wir schon ziemlich lange, das ist ein gelöstes Problem... Es geht darum, die zugrundeliegenden Mechanismen zu verstehen. Und selbst wenn man falsch liegt, solange das Ergebnis funktioniert, ist es trotzdem nützlich.
S. R. schrieb: > Aktuelle Flugzeuge haben keine schlagenden, > befiederten Flügel und extraleichte Hohlknochen. Hohlknochen schon! Und das Gefider, das die Wirbel reduziert wird indirekt auch kopiert. > U-Boote haben mit Walen > auch nur recht wenig gemeinsam. Denkste! Die strömungsgünstigen Effekte der Walflossen und des Körpers an sich, stecken in praktisch jedem Boot! > Menschengehirne erschaffen können wir schon ziemlich lange, > das ist ein gelöstes Problem... Ach ja? Du meinst aber nicht die BOTs, die Wahlen beeinflussen und für Kosmetik werben oder die vielen Follower füttern, oder? Welche Gehirne haben Menschen denn geschaffen, die was leisten?
Gagamel schrieb: > S. R. schrieb: >> Menschengehirne erschaffen können wir schon ziemlich lange, >> das ist ein gelöstes Problem... > Ach ja? Du meinst aber nicht die BOTs, die Wahlen beeinflussen und für > Kosmetik werben oder die vielen Follower füttern, oder? > > Welche Gehirne haben Menschen denn geschaffen, die was leisten? Frag mal deine Eltern ;-)
:
Bearbeitet durch User
Gagamel schrieb: > Hohlknochen schon! Und das Gefider, das die Wirbel reduziert wird > indirekt auch kopiert. Nein. Vögel angeschaut, die Funktionsweise verstanden, das Problem gelöst. Nicht "den Vogel kopiert". Auch nicht indirekt. > Denkste! Die strömungsgünstigen Effekte der Walflossen und des Körpers > an sich, stecken in praktisch jedem Boot! Ja. Aber das ist nicht so, weil der Wal das so macht, sondern weil wir wissen, dass das, was der Wal macht, effizient ist. Bemerke den Unterschied.
Fitzebutze schrieb: > Das lustige an diesen Kohonen-Maps ist: Sie formieren sich selbstlernend > wie Neuronen. Irgendjemand hat mal die Struktur mit einem Katzen-Gehirn > verglichen. > Ob das alles auf einem FPGA Sinn macht, bezweifle ich. Warum nicht in FPGAs? Die Strukturen, die man für neuronale Netze benötigt, soweit ich sie kenne, sind nicht nur rein virtueller Art, sondern bedürfen ganz bestimmter Architakturen, um Informationen zwischen Zellen weiterzugeben. Dies würde in SW in Zeitscheiben passieren, im FPGA gleichzeitig. Das sollte effizienter sein, oder?
Jürgen S. schrieb: > Warum nicht in FPGAs? Weil die Datenmengen zu groß sind. Jürgen S. schrieb: > Dies würde in SW in Zeitscheiben passieren, im FPGA gleichzeitig. Die verwendeten Algorithmen lassen sich auch in Software sehr gut parallelisieren (bzw. vektorisieren). Aktuelle GPUs sind da sehr im Vorteil, auch gegenüber FPGAs. Wobei Google ja seine eigenen Chips entwickelt hat.
Jürgen S. schrieb: > Warum nicht in FPGAs? Die Strukturen, die man für neuronale Netze > benötigt, soweit ich sie kenne, sind nicht nur rein virtueller Art, > sondern bedürfen ganz bestimmter Architakturen, um Informationen > zwischen Zellen weiterzugeben. Dies würde in SW in Zeitscheiben > passieren, im FPGA gleichzeitig. Das sollte effizienter sein, oder? Ja das ist korrekt. Man muß aber zwei Betriebsmodis unterscheiden: 1. der Runtime Modus der NNs. In diesem ist das Netzwerk fertig trainiert und wird nur für seine eigentliche Aufgabe der Klassifizierung benutzt. Das lässt sich besonders mit speziellen NNs hervorragend in FPGAs parallelisieren. 2. die Lernphase/Trainingsphase der NNs. Das lässt sich nur extrem schwierig und nur teilweise parallelisieren. Die Peformance heutiger NNs ist für den 1. Fall selbst für normale CPUs/GPUs ausreichend schnell. Der 2. Fall, das Training ist es was man performanter haben möchte da dies ungleich viel mehr an Rechenzeit benötigt.
Hagen R. schrieb: > Die Peformance heutiger NNs ist für den 1. Fall selbst für normale > CPUs/GPUs ausreichend schnell. Der 2. Fall, das Training ist es was man > performanter haben möchte da dies ungleich viel mehr an Rechenzeit > benötigt. Wäre die Frage, was es an Flexibilität in der SW benötigt, um das Training zu leisten und wie schnell und effektiv man das ins FPGA bekommt. Ich sehe da z.B. so etwas wie HIL mit System Generator und automatisch erzeugtem VHDL-Code. Allerdings habe ich meine Probleme mit vorzustellen, wie man da Parallelität rei nbekommt.
Für das Training brauchst du massiv Speicher. Wir haben ein paar Experimente gemacht (Bildverarbeitung). Je nach Batchsize liegt man schnell im zweistelligen GB-Bereich für einen Trainingsdurchlauf und dazu kommt noch das Vorhalten der gesamten Trainingsdaten, was gerne im TB-Bereich liegen kann. Es gibt einen Grund dafür, dass Amazon, Google usw. ganze Rechenzentren mit Trainingsmaschinen bepflastern. Das Problemfeld wirkt nicht so, als ob FPGAs da glänzen könnten, höchstens wenn sie extrem nah an der CPU sind, also z.B. per QPI angebunden.
Und die Frage ist dann was diese FPGAs noch an Arbeit abbekämen die sich dafür lohnt weil sie parallelisierbar ist. Ich denke zZ. sind FPGAs für NNs nur für die effizente Abarbeitung schon trainierter NNs sinnvoll, und dann müsste man schon wie Google und Co. enorme Datenmengen auswerten wollen. Aber dann kommt man in Bereiche wo spezielle Prozessorenkerne die für die Abarbeitung von NNs konzipiert wurden FPGas den Rang ablaufen. Meiner Meinung nach würde sich da das Training bei Genetischen Algorithmen/Evolutions Strategieen eher lohnen auf FPGAs. Die Komplexität des Trainingsprozesses scheint mit den Jahren immer mehr anzuwachsen. Als ich anfing vor 20 Jahren kannte man nur wenige Trainingsverfahren wie zB. Backpropagation. Sehr schnell wurde deren Komplxität erhöht durch Speed-Prop-Slope-Backpropagation usw. Dann mit Aufkommen des Cascade Correlation Netzwerkes wurde das Training mit Hilfe von Verfahren der Genetischeb Alogrithmen erweitert, adaptiver gestaltet. Man trainiert zB. gleichzeitig mehrere Netzknoten die in Konkurrenz stehen und wählt dann den fittesten aus. Man benutzt also evolutionäre Taktiken bei den Einzelschritten des Trainings der Netzwerke um deren Trainingsynamiken positiv zu beeinflussen. Ich würde also sagen das die Trainingsverfahren immer komplexer werden. Man benlötigt also maximale Flexibilität bei der Entwicklung solcher Trainingsverfahren. Ich würde sowas niemals in ein FPGA pressen wollen, in der gleichen Zeit was das konstet um einfaches Backpropagation zu implementieren bin ich auf einem Standard-PC mit der Aufgabe mehrfach durch.
Fitzebutze schrieb: > Ob das alles auf einem FPGA Sinn macht, bezweifle ich. > Aber bestimmt liesse sich ein für NN-Berechnungen optimierter > DSP-Multicore auf dem FPGA realisieren, for the academic fun of it. Kalter Kaffee, sogar Siemens hat damit im vergangenen Jahrtausend Geld verbrannt: https://www.semanticscholar.org/paper/SYNAPSE-1%3A-a-high-speed-general-purpose-parallel-Ramacher-Raab/b82fc47f663c6bd42012231f9a6fa8b088a1df9a Wenn etwas mund- und modegerecht den Studenten vorgeworfen wird wie heutzutage deep learning, ist die akademische Drecksarbeit schon vor Jahrzehnten von den heutigen alten Herren geleistet worden... akademischer Lorbeer ist damit nicht mehr zu verdienen.
S. R. schrieb: > Warum sollte die KI-Forschung die Hirnstrukturen exakt nachbilden > wollen? Menschengehirne erschaffen können wir schon ziemlich lange, > das ist ein gelöstes Problem... Nein, es ist immer noch eines der größten Herausforderungen vor dem die Menschheit steht und im Geflecht der Philosophen und Gläubigen finden sich auch genug Leute die meinen das wäre nie möglich. Das Gehirn ist in seinem elementaren Aufbau mit den Neuronen verstanden aber nicht als zusammenhängendes System. Und genau dieses System ist es das die kognitiven Fähigkeiten hervorbringt. S. R. schrieb: > Für das Training brauchst du massiv Speicher. Wir haben ein paar > Experimente gemacht (Bildverarbeitung). Je nach Batchsize liegt man > schnell im zweistelligen GB-Bereich für einen Trainingsdurchlauf und > dazu kommt noch das Vorhalten der gesamten Trainingsdaten, was gerne im > TB-Bereich liegen kann. Das Gehirn kann verschiedene Zustände in seinen Neuronen und synaptischen Verbindungen der Neuronen speichern. Das geschieht über ein komplexes System an Transmittern und Hormonen, aber letztendlich sind Neuronen und deren variable Verbindung mit den Synapsen und Axonen der Datenträger. Natürlich gleichzeitig auch die verarbeitende Entität. Wenn man KNNs entwickelt und dabei große Datenmengen anfallen die selbst in dem KNN (in den Knotenpunkten und den Verbindungen untereinander) nicht repräsentiert sind, dann benutzt man wahrscheinlich ein Algorithmus mit einer großen Entfernung zum biologischen Vorbild. Die Informationen im Gehirn sind in den Neuronen und Synapsen codiert, da gibt es keinen anderen Speicher der Informationen für die Neuronen und Synapsen behält. Das kann man natürlich trotzdem machen. Nur dann ist das kein Abbild der Natur sondern eine Vermischung von ausgedachten Algorithmen und der Architektur biologischer Systeme. Solche algorithmischen und Speicher Krücken außerhalb des Netzes zeigen außerdem dass man das Gehirn in solchen Dingen eben nicht nachbilden kann, weil niemand die Wechselwirkung zwischen neuronalen Karten im Gehirn bisher vollständig versteht. Deswegen sind künstliche Modelle von NN voll von abstrakten Größen in Speicherzellen die keine neuronale Repräsentation im Netz besitzen.
FPGAfan schrieb: > Wenn man KNNs entwickelt und dabei große Datenmengen anfallen die selbst > in dem KNN (in den Knotenpunkten und den Verbindungen untereinander) > nicht repräsentiert sind, dann benutzt man wahrscheinlich ein > Algorithmus mit einer großen Entfernung zum biologischen Vorbild. > Die Informationen im Gehirn sind in den Neuronen und Synapsen codiert, > da gibt es keinen anderen Speicher der Informationen für die Neuronen > und Synapsen behält. Und exakt so ist es auch bei KNNs. Aber was du gründlich missverstehts ist worüber S.R. eigentlich redet. Er meint den Speicherbedarf der für das Training benötigt wird und das sind die Input/Output Daten zum Training ansich. Bevor du den Einwand erhebst das dies bei natürlichen Hirnen nicht identisch wäre, auch in der Natur ist es vergleichbar so. Nur mit dem Unterschied das diese Daten durch die komplette Umwelt dieser Hirne repäsentiert wird. Die Umwelt von KNNs besteht dagegen eben aus digitalen Daten und nicht aus Materie und Energie wie unsere natürliche Umwelt. Der einzige Unterschied den ich erkennen kann liegt darin das unsere Hirne für sich selber eben auch eine materielle Umwelt darstellen. Damit meine ich zb. den von dir besagten EInfluß von Hormonen. Übertragen auf KNNs würde dies bedeuten das die physikalischen Strukturen der KNNs, also die Transistoren auf dem Die, durch Mechanismen die durch das KNN ausgelöst werden, phsikalisch in ihrer Arbeitsweise verändert würden. Aber auch dies kann man auf Umwegen und vereinfacht modellieren. Die größte zZ. existierende Hürde bei dem Versuch ein KNN auf das Niveau natürlicher Hirne zu bekommen besteht in der Komplexität und der sich daraus ergebenden Rechenpower. Und da hat die Technologie noch längst nicht mit der Natur gleichgezogen. Stellen wir uns aber mal vor das die Entwicklung in der Quantenrechnertechnik weiter vorangeht, dann bin ich der Meinung das dort ein Potential liegt das Quantenrechner-KNNs sogar die Leistungsfähigkeit natürlicher Hirne weit übersteigen könnte. Gruß Hagen
:
Bearbeitet durch User
FPGAfan schrieb: > Deswegen sind künstliche Modelle von NN voll von abstrakten Größen in > Speicherzellen die keine neuronale Repräsentation im Netz besitzen. Quatsch. Diese Speicherzellen repräsentieren exakt diese Neuronen und deren Verküpfungen untereinander. Exakt dies definiert ja ein KNN.
FPGAfan schrieb: > Solche algorithmischen und Speicher Krücken außerhalb des Netzes zeigen > außerdem dass man das Gehirn in solchen Dingen eben nicht nachbilden > kann, weil niemand die Wechselwirkung zwischen neuronalen Karten im > Gehirn bisher vollständig versteht. Weil man sowas bisher noch nicht versteht implizierst du die Folge das es niemals nachzubauen wäre, geile Logik.
Ainen gudden! FPGAfan schrieb: > Künstliche Neuronale Netze werfen für mich aber auch für andere die > Frage auf inwiefern es sich eigentlich wirklich um künstliche neuronale > Netze nach dem Vorbild der Natur handelt. Da hast Du völlig freie Hand. Die Vorteile von Neuronalen Netzen sind natürlich bestechend. In einem solchen totalen Chaos kann man praktisch jede Struktur erzeugen. Unter Anderem praktisch unbegrenzte Speicherkapazität wobei der ganze Krempel auch noch völlig selbsttätig eingeordnet wird. Aber dazu muß man leider sehr, seeehr viel weiter ausholen. Dwianea hirnschaden
P.S.: Je weniger man ausholt um so mehr wird es zu einer Frage der Zeit. Und 25 Jahre sind kein Pappenstiel. Und damals in den 70ern haben mir ein paar Tauben mal regelrecht aufgelauert. Oder ich bin tatsächlich nich' ganz dicht. Wahrscheinlich deswegen. ?
Ich glaube, so langsam geht die Diskussion um NN in eine Richtung, bei der ich mich frage, ob die NN der Schreiber noch i.O. sind. Ich fände es nett, wenn sowas sachlich diskutiert würde, damit es einen Wert hat den thread zu abbonieren und mitzulesen.
Hagen R. schrieb: > Weil man sowas bisher noch nicht versteht implizierst du die Folge das > es niemals nachzubauen wäre, geile Logik. Ich habe so etwas nicht geschrieben. Du implizierst da selbst was hinein. Hagen R. schrieb: > Die größte zZ. existierende Hürde bei dem Versuch ein KNN auf das Niveau > natürlicher Hirne zu bekommen besteht in der Komplexität und der sich > daraus ergebenden Rechenpower. Ich bin mir da nicht sicher. Ein Blick in die Hirnforschung zeigt dass noch viel geforscht wird. Ein Quantencomputer würde zwar leistungsfähigere KNNs ermöglichen aber ich sehe nirgendwo ein theoretisches Modell mit KNNs das menschliche Kognition hervorbringen könnte und das nur darauf wartet das genug Rechenpower vorhanden ist. Quantencomputer würden viele Forschungsbereiche beflügeln und auch die Arbeit an KNN oder die Hirnforschung.
Ich denke das FPGAs durchaus interessant sind für künstliche neuronale Netze. Man kann die Algorithmen direkt in Hardware implementieren und jederzeit wieder abändern. Die Flexibilität ist höher, man muss die Berechnungen nicht zwingend an die Matrix Berechnungen einer GPU anpassen. Sollen die Berechnungen später in speziellen ASICs implementiert werden ist die Vorarbeit in FPGAs auch sinvoll. Manche neigen auch ein wenig dazu akademisches und wissenschaftliches Vorgehen mit praktischen Fällen abzuwürgen. Mag ja sein dass ich meine ganz konkreten Aufgaben mit einem GPU Cluster schneller lösen kann als mit einem FPGA Cluster. Oder das eine schnelle CPU häufig einfacher und schneller zum Ziel führt als die Implementierung in Hardware in einem FPGA. Sollte man auch alles so machen wenn es um konkrete Aufgaben geht die es effizient zu bewältigen gilt. Aber bei manchen hört sich dass so an als wäre alles andere eh sinnlos. So reden Leute die aufgehört haben zu forschen und nur noch die Aufträge ihres Arbeitgebers versuchen möglichst effizient zu lösen. Alles gut, nur die häufig mitschwingende Verbitterung klingt ein wenig traurig :D Was denkt ihr über die Entwicklung von Memristoren und Neuristoren? Ein Neuristor ist der Versuch einen Neuron in Hardware zu modellieren. https://de.wikipedia.org/wiki/Neuristor https://de.wikipedia.org/wiki/Memristor Ich weiß nicht wie viele mögliche Verbindungen ein einzelnes Neuristor haben kann. Ein einzelnes echtes Neuron kann tausende von synaptischen Verbindungen aufweisen.
FPGAfan schrieb: > Ich denke das FPGAs durchaus interessant sind für künstliche neuronale > Netze. Man kann die Algorithmen direkt in Hardware implementieren und > jederzeit wieder abändern. Dem stimme ich zu, und dass Google ASICs für TensorFlow entwickelt hat, zeigt auch, dass da ein wahrer Kern dran ist. FPGAfan schrieb: > Die Flexibilität ist höher, man muss die Berechnungen nicht zwingend an > die Matrix Berechnungen einer GPU anpassen. Die meisten Netze, die ich bisher gesehen habe, arbeiten schichtweise, und unterschiedliche Typen gibt es innerhalb einer Schicht eigentlich nicht. Deswegen lässt sich der Kram ja so wunderbar auf GPUs vektorisieren - es ist per Konstruktion schon auf Matritzen angepasst. FPGAfan schrieb: > Mag ja sein dass ich meine ganz konkreten Aufgaben mit einem > GPU Cluster schneller lösen kann als mit einem FPGA Cluster. Das ist derzeit der Fall, und ich fürchte - aus den bereits genannten Gründen - dass es auch auf längere Zeit so bleiben wird, wenn man nicht gerade mit sehr viel Geld um sich schmeißt. FPGAfan schrieb: > Was denkt ihr über die Entwicklung von Memristoren und Neuristoren? Ich habe mit Spannung die Verkündung von Memristoren verfolgt, insbesondere weil damit das Ende der Speicherprobleme beschieden wurde (als ET-Student natürlich auch aus anderen Gründen). Wenn sich daraus einigermaßen zuverlässiger, nichtflüchtiger Speicher mit 10% DRAM-Geschwindigkeit, nahezu keinem Stromverbrauch und 5x höherer Speicherdichte hätte herstellen lassen, hätte sich die Embedded-Welt definitiv darauf gestürzt wie ausgehungerte Wölfe auf ein Steak. Real absehbar ist davon allerdings - nichts. Vaporware. Leider.
S. R. schrieb: > Wenn sich daraus einigermaßen zuverlässiger, nichtflüchtiger Speicher > mit 10% DRAM-Geschwindigkeit, nahezu keinem Stromverbrauch und 5x Welche Art des Speichers siehst Du denn für den embedded Bereich der Zukunft?
FPGA-Ingenieur schrieb im Beitrag #5530622: > Welche Art des Speichers siehst Du denn > für den embedded Bereich der Zukunft? Ich habe den status quo vor Augen: Kleine Controller mit wenig SRAM, große SoCs mit viel DRAM. Gern auch große Mengen integrierten DRAMs außerhalb des SoCs, in der Peripherie. Gibt's schließlich auch schon. Der Grund, dass ich kein Vertrauen in neue Speichertechnologien habe: >> Real absehbar ist davon allerdings - nichts. Vaporware. Leider.
:
Bearbeitet durch User
FPGAfan schrieb: > Was war das coolste und abgefahrenste was ihr mit einem FPGA mal gemacht > habt? Pong. http://www.wolfgangrobel.de/fpga/fpga05.htm Ist aber noch nicht ganz fertig...
:
Bearbeitet durch User
Wolfgang R. schrieb: > http://www.wolfgangrobel.de/fpga/fpga05.htm > > Ist aber noch nicht ganz fertig... Benötigt man für diese Anwendung wirklich einen FPGA?
Andi F. schrieb: > Benötigt man für diese Anwendung wirklich einen FPGA? Nö. Dennoch ist es cool. :-)
Andi F. schrieb: > Benötigt man für diese Anwendung wirklich einen FPGA? Nein, 100 TTLs reichen... http://www.wolfgangrobel.de/arcadetalk/img_pcbs/pong_mirco_top.jpg Oder ein AY-3-8500... http://www.wolfgangrobel.de/handheld/interton.htm
Lange nichtmehr so interessante Beiträge gelesen... Ich komm nicht drum herum mir zu erlauben, den Thread hochzuposten! Bin mir sicher, dass es dem ein oder anderen genauso gehen wird. Von Neuronale Netzen handelt die Diskussion. Lesenswert wirds aber erst nach den geschätzt ersten 20 Posts: Beitrag "Re: Coole FPGA Projekte" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:
Bearbeitet durch User
Unser Kunde forscht und entwickelt an und für neuronale Netze, setzt dafür aber Plattformen ein, die mit UNIX BSD konfigurierbar sind. Das sind nicht die Ziellösungen, aber die Netze an denen geforscht wird und die zum optimieren herangezogen werden. Die laufen auf gängigen PC-Systemen, genauer Industrie PC Plattformen für Server mit mehreren CPUs im Verbund. Das ist in Summe die einfacher programmierbare Struktur. Es gab wohl auch Versuche, die Software (C++ Objektklassen) über CodeGeneratoren in Veriolog zu übersetzen und auf FPGA-Systemen laufen zu lassen, aber die sind nicht so effektiv, am Ende erheblich langsamer und vor allem mehrfach teurer.
Dann werfe ich jetzt einfach mal DPU / DNNDK von Xilinx in den Raum. Damit können auf FPGAs Hardwarebeschleuniger für Tensorflow/Caffe instanziiert werden. Damit erreicht man eventuell nicht den Durchsatz von GPUs (weiß ich nicht, nie verglichen), erreicht aber auf jeden Fall eine höhere Effizienz. https://www.xilinx.com/products/design-tools/ai-inference/edge-ai-platform.html
Und habt ihr in den letzten 2 Jahren coole und abgefahrene FPGA Projekte realisieren können? :D Ich habe etwas dazu gelernt und meine Standpunkte von damals haben sich stellenweise geändert. Insgesamt ist mein Vorwurf, das KNNs nicht dem biologischen Vorbild entsprechen, deutlich entschärft würde ich sagen. Wobei es kein Geheimnis ist, dass es Konzepte gibt, wo man sich bewusst vom biologischen Vorbild löst. In der Praxis wo ein KNN einfach nur bestmöglich funktionieren soll, gibt es keinen Grund biologische Plausibilität anzustreben. Ich ordne solche Vorgehensweisen einfach allgemein dem Bereich des Machine Learning zu. Ich glaube aber immer noch dass man sehr viel von biologische neuronalen Netzen lernen kann. Fakt ist schließlich, dass das biologische Gehirn immer noch Leistungen vollbringt, wozu alle bisherigen KNN Modelle nicht in der Lage sind. Und ich habe mir Gedanken dazu gemacht inwiefern es wirklich an einer mangelnden Rechenkapazität liegt. Eine weit verbreitete Ansicht ist nämlich, dass es nicht genügend Rechenkapazität gäbe um die Abläufe in einem menschlichen Gehirn zu simulieren. Um diese Frage zu klären muss man klarstellen was man mit simulieren genau meint. Es erscheint mir unnötig einzelne Neuronen biologisch zu simulieren. Das heißt wenn man versuchen würde ein einzelnes Neuron mit vielen biologischen Aspekten zu simulieren wäre der Rechenaufwand für ca. 100 Mrd. Neuronen gigantisch. Und warum sollte man das tun? Naja man könnte der Ansicht sein dass die Intelligenz des Menschen nicht nur auf neuronale Verbindungen und synaptische Verbindungen zurückzuführen ist sondern dass die gesamte Biochemie des Gehirns eine Rolle spielt. In einem KNN werden ja nur einige wenige als entscheidend betrachtete Aspekte der Neuronen simuliert: Die Verbindungen der Neuronen untereinander und die Gewichtung dieser Verbindungen. Ich glaube nicht dass die gesamte Biochemie des Gehirns zwingend ist für die Bildung menschlicher Intelligenz. Allerdings gibt es wohl mehr Aspekte als in üblichen KNNs modelliert werden. Es gibt beispielsweise sogenannte Neuromodulatoren, die in bestimmten Regionen des Gehirns ausgeschüttet werden können bzw. bestimmte Neuronen reagieren auf geeignete Neuromodulatoren. Das beeinflusst die betroffenen neuronalen Netze, was sich in einer Verhaltensänderung des Individuums äußert. Emotionen funktionieren wohl über diesen Weg. Die Ausschüttung bestimmter Hormone beeinflusst neuronale Gruppen im Gehirn und reguliert ihre Aktivität mit. Viele biochemische Prozesse dienen aber denke ich sozusagen eher einer biologischen Implementierung bzw. Aufrechterhaltung der entscheidenden Strukturen. Interessant für die synthetische Nachbildung sind die entscheidenden Strukturen und nicht die gesamte Kette der biochemischen Umsetzung. Beispielsweise ist die Energieversorgung der neuronalen Zellen, nach dem was man heute weiß, nicht entscheidend für den Mechanismus der Intelligenz an sich. In etwa so wie die Energieversorgung eines integrierten Schaltkreises nicht Bestandteil des Algorithmus ist dass am Ende von den Transistor Strukturen berechnet wird. Oder sonstige Hilfsschaltungen die die korrekte Arbeitsweise von Flipflops oder so gewährleisten ohne Teil der eigentlichen Berechnung zu sein. Gehen wir also mal davon aus dass das heutige KNN Modell mit den Verbindungen und Gewichten ausreichend ist, um die entscheidenden Prozesse in neuronalen Netzen nachzubilden. Man findet im Internet Zahlen wie viele Berechnungen im menschlichen Gehirn ablaufen. Ich weiß nicht genau wie das berechnet wird. Ausgehend von den obigen Ausführungen würde ich sagen dass die Wechselwirkung zwischen Neuronen über die synaptische Gewichtung die Grundlage ist. Eine Zahl die man beispielsweise in Wikipedia findet ist 10^13 (10 hoch 13) analoge Rechenoperation pro Sekunde. Kann das stimmen? Es gibt ca. 100 Milliarden Neuronen und schätzungsweise 100 Billionen synaptische Verbindungen zwischen diesen Neuronen. Jedes Neuron hat durchschnittlich 1000 synaptische Verbindungen. 100 Milliarden Neuronen * 1000 Synapsen / 10^13 Rechenoperationen = 10 * 10^13 Rechenoperationen Bedenken muss man wohl dass pro Sekunde nicht alle Neuronen im Gehirn aktiv sind. Es finden pro Sekunde also weniger Rechenoperationen statt als 10 * 10^13. Aber man kann auch ruhig den Wert 10 * 10^13 nehmen, wenn man großzügig rechnen will, für den Fall dass man in dieser spontanen Betrachtung etwas unterschätzt oder übersehen hat. Ich werde diese Zahl nehmen, also 10 * 10^13 bzw. 10^14. Haben wir Computer bzw. Rechenzentren die 10^14 Rechenoperationen pro Sekunde ausführen können? Der BlueGene/L von IBM schafft bis zu 3,6 * 10^14 Gleitkommaoperationen pro Sekunde. Also 3,6 mal so viel wie 10^14. Demnach könnte der BlueGene/L fast 4 menschliche Gehirne simulieren? In einer anderen Berechnung geht man in dem folgenden YouTube Video davon aus das 10^18 Flops nötig ist um das Gehirn zu simulieren. 10^18 Flops erreicht man mit 400.000 Stück Nvidia 1080 GTX Grafikkarten. Das soll ein Block von 8,5 x 8,5 x 8,5 Größe sein. Teuer aber in Form eines Rechenzentrums machbar. https://www.youtube.com/watch?v=Nsgn-yd7uZg&feature=youtu.be&t=96 Gerne bitte Hinweise und Korrekturen wenn bei diesen Annahmen und Zahlen etwas nicht stimmt. Aber so wie es aussieht ist die notwendige Rechenkapazität inzwischen vorhanden. Oder was meint ihr?
Was sagt das eigentlich über die digitalen massiv dicht integrierten ICs aus, wenn man davon einen Haus großen Block benötigt, um nur an die theoretische Rechenkapazität des Gehirns heran zu kommen? Und das mit einem um viele Größenordnungen größeren Energiebedarf? Da erscheint die sonst sehr beeindruckende Chiptechnologie plötzlich völlig primitiv. Könnte es vielleicht auch eine Wiederbelebung analoger Rechner geben? Die sind ja wohl um einiges energieeffizienter. Damit sind natürlich nicht die alten riesigen Analogcomputer gemeint sondern hoch integrierte analoge Schaltungen. Prototypen frei programmierbarer analoger ICs gab es schon vor 15 Jahren und die Energieeffizienz übertrifft auch heute jeden digitalen IC. Ich kenne mich da nicht so gut aus. Aber habe einige Vorträge zu dem Thema gesehen. Und wie es scheint, hat die analoge Technik sehr interessante Vorteile. Wenn man sich vom Gehirn inspirieren lassen will, würde ich sagen, sollte man die Forschung an integrierten analogen Schaltungen voran treiben und den Fokus weniger auf extreme hohe Integrationsdichte setzen, sondern eine massiv parallele Skalierbarkeit bei hoher Energieeffizienz verfolgen. Vielleicht kann man dann ICs in Form eines Würfels bauen dass Milliarden von neuronalen Repräsentationen beinhaltet und ohne dass die Energiedichte so hoch ausfällt dass der Würfel beim einschalten schmilzt. Wie es bei digitaler Technik und extrem hoher Integrationsdichte der Fall wäre.
FPGAfan schrieb: > Könnte es vielleicht auch eine Wiederbelebung analoger Rechner geben? > Die sind ja wohl um einiges energieeffizienter. Damit sind natürlich > nicht die alten riesigen Analogcomputer gemeint sondern hoch integrierte > analoge Schaltungen. State-of-the-Art Chiptechnologie für Analog: ca. 90 bis 180 nm State-of-the-Art Chiptechnologie für Digital: 7 bis 14 nm Die EU hat das in Analog und Digital gefördert: https://www.humanbrainproject.eu/en/silicon-brains/ IBM macht das in Digital aber in asynchroner Logik, was massiv weniger Strom verbraucht als andere Systeme: http://research.ibm.com/articles/brain-chip.shtml Grosser Vorteil der digitalen Varianten ist, dass sich die Software Simulation, Hardware Emulator und der richtige Chip (jeder davon) genau gleich verhalten. Analoge Chips (so wie die analogen Menschen) zeigen unterschiedliches Verhalten aufgrund von Fertigungstoleranzen, Temperatur etc. FPGAfan schrieb: > Prototypen frei programmierbarer analoger ICs gab es schon vor 15 Jahren > und die Energieeffizienz übertrifft auch heute jeden digitalen IC. Ich > kenne mich da nicht so gut aus. Aber habe einige Vorträge zu dem Thema > gesehen. Und wie es scheint, hat die analoge Technik sehr interessante > Vorteile. Ja, die FPAA waren damals was sehr spannendes. Nach meinem Wissen die einzigen Überlebenden aus diesem Zweig sind die analogen Blöcke in den Cypress PSOC.
Christoph Z. schrieb: > IBM macht das in Digital aber in asynchroner Logik, was massiv weniger > Strom verbraucht als andere Systeme: > http://research.ibm.com/articles/brain-chip.shtml Das grundlegende Schaltung bei dem TrueNorth Chip erinnert mich an die Lernmatrix von Steinbuch. Hardware Prototypen gab es davon schon vor dem Jahr 2000. https://de.wikipedia.org/wiki/Assoziativmatrix https://de.wikipedia.org/wiki/Lernmatrix https://de.wikipedia.org/wiki/TrueNorth
FPGAfan schrieb: > Eine Zahl die man beispielsweise in Wikipedia findet ist 10^13 (10 hoch > 13) analoge Rechenoperation pro Sekunde. 10^13 Rechenoperation = 10 Teraflop, was etwa der Leistung einer RTX2080 entspricht, also einer einzelnen GPU. > 100 Milliarden Neuronen * 1000 Synapsen / 10^13 Rechenoperationen = 10 > * 10^13 Rechenoperationen Dieser Formel kann ich nicht folgen. > Haben wir Computer bzw. Rechenzentren die 10^14 Rechenoperationen pro > Sekunde ausführen können? Der BlueGene/L ist von 2004. Aktuell ist der schnellste Computer der Summit mit 1.5 * 10^17 Flops Leistung. Quelle: https://www.top500.org/list/2019/11/ Auch der Google TPU 3.0 Pod hat über 10^17 Flops, allerdings nur 16 bit Floats, aber das reicht wohl für den Zweck. https://de.wikipedia.org/wiki/Tensor_Processing_Unit > Der BlueGene/L von IBM schafft bis zu 3,6 * 10^14 Gleitkommaoperationen > pro Sekunde. Also 3,6 mal so viel wie 10^14. Demnach könnte der > BlueGene/L fast 4 menschliche Gehirne simulieren? ja, wobei man da noch etwas auf den Speicher achten muss. Die Gewichte stehen ja im Speicher und bei 10^14 Synapsen hat man natürlich auch 10^14 Gewichte, die entsprechend einmal pro Durchgang zu den Recheneinheiten müssen. Bei einem Byte pro Gewicht sind das 100TB. > In einer anderen Berechnung geht man in dem folgenden YouTube Video > davon aus das 10^18 Flops nötig ist um das Gehirn zu simulieren. 10^18 > Flops erreicht man mit 400.000 Stück Nvidia 1080 GTX Grafikkarten. Das > soll ein Block von 8,5 x 8,5 x 8,5 Größe sein. Teuer aber in Form eines > Rechenzentrums machbar. > https://www.youtube.com/watch?v=Nsgn-yd7uZg&feature=youtu.be&t=96 Schade, dass weder in der Wikipedia noch in dem Video eine Quelle für die genannte Rechenpower angegeben wird. Ich hätte das so gerechnet: So eine Synapse ist ja Input*Gewicht, die werden dann in der Nervenzelle aufsummiert. Das ganze mehrfach pro Sekunde, nehmen wir mal an, mit 20Hz. Das sind dann jeweils 1xMUL + 1xADD, also 2 * 10^14 * 20Hz = 4 * 10^15 Flops. Dabei fehlt noch der Bias und die Aktivierungsfunktion im Neuron, aber das sind ja um Faktor 1000 weniger, fallen also nicht ins Gewicht. Außerdem fällt mir auf, dass wir hier immer von Flops reden, dass da aber auch manchmal mit Integern gearbeitet wird, insbesondere in FPGAs.
Markus K. schrieb: > 4 * 10^15 Flops. um den unpassenden Vergleichen noch einen hinzuzufügen: wer schon mal mit Emulationen gearbeitet hat weiß, daß man mindestens eine um zwei oder drei Grössenordnungen schnellere Maschine braucht, um einen Oldie einigermassen korrekt zu emulieren. Das mag hier durchaus auch gelten? Was mir noch zum Thema einfällt (vielleicht weil noch etwas müde): Schlaf. NI braucht Schlaf, sonst funktioniert sie nicht allzu lange. Was dabei genau passiert, weiss man anscheinend (noch) nicht so genau, aber es scheint sich u.A. um einen "reorg" zu handeln, bei dem Erkenntnisse durch "festere Verdrahtung" optimiert ersetzt werden. Solange KI nicht etwas ähnliches tut, wird sie wohl nicht wie NI funktionieren können?
Ich glaube nicht dass NN direkt ein Gehirn arbeiten. Es gibt einfach zu viele Dinge die man mit NN machen kann, die im Gehirn aber enorm schwierig sind. Beispiel: ein einfacher, turingvollständiger Prozessor lässt sich problemlos in einem halbwegs kleinen NN von wenige tausend Neuronen abbilden. Habe ich mal gemacht mit 2x4Bit Registern und 8 Bit Addressbreite/Program Counter. Das einlernen des Befehlsatzes dauert etwa eine Minute, das Einlernen eines kurzen Programms wenige Sekunden. In einem haushaltsüblichen PC lassen sich davon hunderte gleichzeitig ausführen in einer Geschwindigkeit die kein Mensch schaffen würde. Daraus folgt für mich: würden NN das Gehirn abbilden, dann müsste ich es schaffen mit genügend Training selbst einen Bereich meines Gehirns turingvollständig mit halbwegs sinnvoller Geschwindigkeit rechnen lassen können. Ich würde eher sagen es gibt eine Schnittmenge. Das Emulationsbeispiel gefällt mir dabei sehr gut. Eigentlich sind beides(Hirn und NN) unterschiedliche Architekturen, aber man kann beides mit dem jeweils anderen Abbilden. Zusätzlich emulieren wir ein NN meist mit anderer Hardware(CPUs, GPUs) und auch noch analoge Vorgänge mit digitalen. Für jeden dieser Schritte von CPU -> Analog -> NN -> Hirn kann man sicherlich jeweils einen ordentlichen Abzug an Geschwidgkeit annehmen. Kein Wunder also das man so viel Rechenleistung braucht. Kann man ja nur so froh sein das ein Hirn hochparallel arbeit und nicht sequentiell mit exterm hohem Takt. Ansonsten würde das nie was werden mit dem nachbauen.
So, damit hier auch mal wieder ein Projekt vorgestellt wird (nicht von mir): https://fosdem.org/2020/schedule/event/fsr_openwifi/ Opensource "Wi-Fi chip design" and Linux driver An open source "Wi-Fi chip design"(Will be AGPLv3) will be presented and a live demo will be shown in the room! The design is based on SDR (Software Defined Radio) and offers full-stack 802.11a/g/n capabilities on FPGA and ARM Linux (Xilinx Zynq SoC + AD9361 RF front-end). It conforms with Linux mac80211 framework and behaves just like COTS Wi-Fi chip under Linux. The main components of the design are: RF front-end control; PHY; low-MAC; interfacing (DMA, register) with ARM; mac80211 compliant Linux driver; high-MAC (mac80211 framework); Linux user space tools (ifconfig, iwconfig, dedicated tools via netlink). Since it is a SDR based "white box" design instead of commercial “black box” chip, you can do Wi-Fi research and customization without any reverse engineering efforts. It will be the 1st open source project for full-stack Wi-Fi SDR implementation. Lots of people, especially wireless network/security researchers, SDR researchers and hackers, will be interested in.
Christoph Z. schrieb: > hackers ja, vor allem die. Prima. Das macht das Ausspähen von Netzen noch einfacher
Das Ausspähen von Netzen sollte aber nicht dadurch geschützt sein, dass etwas eine Blackbox ist. Dann können nämlich manche Hersteller und Dienste weiterhin reingucken. Das muss dadurch geschützt sein, dass die Spezifikation das nicht zulässt. Durch Verschlüsselung und so und fehlerfreie Implementierung. Dann kann das jeder angucken, auf Korrektheit prüfen und trotzdem nicht ausspähen.
Markus K. schrieb: > Ich hätte das so gerechnet: So eine Synapse ist ja Input*Gewicht, die > werden dann in der Nervenzelle aufsummiert. Das ganze mehrfach pro > Sekunde, nehmen wir mal an, mit 20Hz. Das sind dann jeweils 1xMUL + > 1xADD, also 2 * 10^14 * 20Hz = 4 * 10^15 Flops. Du hast recht. Es sind ohne die Aktivierungsfunktion ca. 4 Billiarden Berechnungen pro Sekunde. Das könnte dem realen Wert recht gut nahe kommen. Frage mich wie die auf den Wert von 10^18 kommen. 10^18 = 250 4 10^15 Markus F. schrieb: > NI braucht Schlaf, sonst funktioniert sie nicht allzu lange. Was dabei > genau passiert, weiss man anscheinend (noch) nicht so genau, aber es > scheint sich u.A. um einen "reorg" zu handeln, bei dem Erkenntnisse > durch "festere Verdrahtung" optimiert ersetzt werden. > > Solange KI nicht etwas ähnliches tut, wird sie wohl nicht wie NI > funktionieren können? Es gibt Hinweise darauf das erlebte und körperlich ausgeführte Erlebnisse im Schlaf wiederholt werden. Dabei werden temporär gespeicherte Signalmuster der Großhirnrinde wiederholt präsentiert, wodurch die intensivsten Eindrücke mit einer gewissen Wahrscheinlichkeit im Langzeitgedächtnis landen. Es findet wohl auch eine Kategorisierung und Bewertung der Ereignisse statt. Es ist denke ich ähnlich wie beim Training eines KNN dem wiederholt bestimmte Signalmuster präsentiert werden. Wobei im Gehirn wohl aber auch aktive Prozesse eine Kategorisierung und Bewertung durchführen bzw. es entsteht so etwas aufgrund der ganzen neuronalen Architektur. FPGAzumSpass schrieb: > In einem haushaltsüblichen PC lassen sich davon hunderte gleichzeitig > ausführen in einer Geschwindigkeit die kein Mensch schaffen würde. > Daraus folgt für mich: würden NN das Gehirn abbilden, dann müsste ich es > schaffen mit genügend Training selbst einen Bereich meines Gehirns > turingvollständig mit halbwegs sinnvoller Geschwindigkeit rechnen lassen > können. Man darf nicht vergessen dass das Gehirn eine biologische Architektur aufweist. Eine Architektur kann durchaus zu Einschränkungen führen die einzelne Neuronen oder Gruppen von Neuronen nicht haben. Bei der Entwicklung von integrierten Schaltkreisen ist das ja ähnlich. Die theoretisch mögliche Taktrate einzelner Transistoren kann dabei nicht ausgereizt werden weil Signallaufzeiten oder sonstige Module im Chip nicht synchron arbeiten können. Auch glaube ich dass wir künstliche Netze aufgrund der schnellen Computer auf eine Art und Weise trainieren wie es im menschlichen Gehirn nur über viele Jahre möglich ist. Wenn also ein KNN Tumore auf Bildern im Durchschnitt besser erkennt als ein Arzt dann kann das genau darauf zurückzuführen sein. Weil das KNN mit sehr viel Rechenpower auf ein ganz spezielles Muster trainiert wurde. Während der Arzt als Mensch noch sehr viele andere Dinge zu lernen und zu bewältigen hat und kann sich nicht über Jahre auf die Erkennung von Tumoren konzentrieren, er hat ja auch noch ein Privatleben. Ich glaube ein vereinfachtes KNN ohne Bestandteil einer komplexen Architektur, ist nicht vergleichbar mit der Leistung des Gehirns als Gesamtarchitektur.
FPGAfan schrieb: > Man darf nicht vergessen dass das Gehirn eine > biologische Architektur aufweist. Das heißt eigentlich erstmal nur, dass biologische Neuronen wesentlich unzuverlässiger und anfälliger sind als technische Neuronen. Das Gehirn kompensiert, indem es einfach "mehr Neuronen" hat und diese konstant neu formt. In der Realität fällt das dann auf, wenn man sich Alzheimer o.ä. anschaut, wo oft ein großer Teil des Gehirns bereits tot ist, bevor die Symptome offensichtlich werden. FPGAfan schrieb: > Auch glaube ich dass wir künstliche Netze aufgrund der schnellen > Computer auf eine Art und Weise trainieren wie es im menschlichen Gehirn > nur über viele Jahre möglich ist. Nicht unbedingt. Das biologische Gehirn ist auch in der Lage, anhand eines einzelnen Datensatzes sinnvolle Abstraktionen zu entwickeln. Ein einzelner Datensatz "scheiße, Finger an der Herdplatte verbrannt" oder "oha, das Manöver auf der Autobahn hätte auch böse schief gehen können, nicht gut" reicht als Lerngrundlage oft aus. Dazu braucht man keine tausend verbrannten Finger oder Autounfälle, wie das bei KI der Fall ist.
FPGAfan schrieb: > Wenn also ein KNN Tumore auf Bildern im Durchschnitt besser erkennt als > ein Arzt dann kann das genau darauf zurückzuführen sein. > Weil das KNN mit sehr viel Rechenpower auf ein ganz spezielles Muster > trainiert wurde. Hier steht ein wichtiges Wort: Durchschnitt. Wo man sich immer wieder mit dem NN-Enthusiasten fetzt: das KNN ist typischerweise immer in einem relativ schmalen Band von 'normalisierten' Faellen (um den Durchschnitt herum) hoch performant. Wo es versagt und oft falsche Bewertungen vorkommen, sind die komplett nicht-linearen Spezialfaelle, oder eben das schmale Band am Rande (dort wo die Gauss-Glocke auslaeuft). Und genau das ist das Fatale: Wenn man einen Massentest mitmacht, wie eine Blutanalyse auf spezielle Marker, spuckt die 'AI' der Software zur Erkennung der Marker auf den sog. Western Blots (dem 'Protein-Strichcode') unter Umstaenden fuer einen individuellen Fall ein falsches Resultat aus. In der Masse hakt man das mit einer Wahrscheinlichkeit von X ab, wie wahrscheinlich das Ergebnis ist, und einer zweiten Wahrscheinlichkeit Y, dass ein Falsch-Positiv/Falsch-Negativ vorliegt, also der Test versagt. Fuer die individuellen Patienten ist das u.U eine hochgefaehrliche Aussage, denn mit der Wahrscheinlichkeit koennen sie im Prinzip nichts anfangen. Viele Aerzte auch nicht.. Das KNN kann man so vergleichen mit einem Autisten. Fuer eine Diagnose braucht man aber einen Arzt mit Allgemeinwissen. Grundsaetzlich ist die KNN-Architektur auf Autismus ausgelegt, sie kann nur in multi-linearen Zustaendsraeumen unterteilen, gewisse Aspekte gehen nicht. Das haben schon einige in den 90ern durchgekaut, das Lehrmaterial von Andreas Zell ist zu empfehlen. Deswegen - wie schon jemand oben schrieb, auch Kalter Kaffee, oder auch Tunnelblick - finde ich den NN-Hype auf FPGA weniger 'cool'. Die klassische FPGA Technologie gibt's auch einfach nicht sonderlich gut her, die Architektur muesste ganz anders aufgebaut sein um z.B. auch sinnvolles Selbstlernen (was die KNN einfach generell schlecht koennen) zu ermoeglichen. Drum macht es wohl mehr Sinn, gleich einen ASIC zu bauen (fuer die, die's koennen). Zum Thema coole (und greifbare) Projekte: Ich finde gerade die aktuelle Entwicklung in der openSource-Synthese mit yosys, nextpnr und Konsorten recht cool. Mit Verilog gehen schon komplexere Designs, aber VHDL holt via ghdl langsam auf. Ist nicht mehr sonderlich weit bis zur kompletten HW-Synthese eines vollstaendigen SoC in der Kontinuierlichen Integration. Das vermutlich erste SoC-Projekt was vollstaendig 'open source' baut: https://github.com/antonblanchard/microwatt Weitere werden folgen.
:
Bearbeitet durch User
Martin S. schrieb: > Wo es versagt und oft falsche Bewertungen vorkommen, sind die komplett > nicht-linearen Spezialfaelle, oder eben das schmale Band am Rande (dort > wo die Gauss-Glocke auslaeuft). ... und für ein durchschnittlich gut trainiertes NN sind schon alle Fälle, die unter der 10% und über der 90% Medianschwelle liegen sogenannte "Spezialfälle", weil es gar nicht genug Fallzahlen gibt, um es darauf zu trainieren. D.h. das NN kann das gar nicht wissen oder ist im schlimmsten Fall falsch trainiert. Dummerweise sind nämlich medizinische Fälle was die Ausprägung der Vielzahl von Facetten der Symptome angeht, sehr breit und flach angelegt. D.h. das Band der typischen Erkrankungen ist nicht so übermässig breit. Dafür sorgen allein schon untypische Begleitsymptome die Folge paralleler Erkrankungen sein können und die primären Symptome der eigentlich zu diagnostizierenden Krankheit überdecken können. Und das ist ein großes Problem: In nicht wenigen Fällen sind beobachtbare Verläufe von Blut- und anderen Kennwerten sogar gegenläufig, weswegen man einen richtigen Riecher und wenigstens eine Fehldiagnoste braucht, um richtig zu liegen. D.h. der Arzt steigt erst auf Diagnose 1 ein, bemerkt aber anhand des Verlaufs der Erkrankung der nächsten Tage, dass dies nicht zur Historie passt und kann dann entweder die richtige Diagnose stellen oder die parallele Erkrankung erkennen, je nachdem was ursächlich ist. Das NN ist aber darauf nicht konditioniert und hängt an der Diagrnose 1 fest und bestätigt diese sogar, was zu immer falscherer Auslegung führt. Ein Beweis dafür wurde vor einigen Jahren mal von einer Forschungsgruppe aus den USA geliefert, welche das Trainieren von NN testet und simuliert. Was dabei auch rausgekommen ist: Bei Selbstlernenden Netzen ist es sehr relevant, mit welchen Daten sie zuerst gefüttert werden. Fängt man bei der einen Hälfte von vorn und der anderen Vergleichsgruppe von hinten mit den Fällen an, dann hat man zwei verschieden trainierte Netze. Die ändern ihre "Meinung" nur sehr langsam. Echte Mediziner sind da durchaus flexibler.
S. R. schrieb: > Ein einzelner Datensatz "scheiße, Finger an der Herdplatte verbrannt" > oder "oha, das Manöver auf der Autobahn hätte auch böse schief gehen > können, nicht gut" reicht als Lerngrundlage oft aus. Dazu braucht man > keine tausend verbrannten Finger oder Autounfälle, wie das bei KI der > Fall ist. Ich vermute dafür ist ein dynamisches System verantwortlich das die Wirkung der Strukturbildung auf die Neuronen regelt. Ich glaube dass die Lernrate in Verbindung mit Schmerzen oder intensiven Emotionen höher ist. Dadurch prägen sich Erfahrungen bzw. die Logik dieser Erfahrungen schneller ein. Ich glaube dass die Dynamik dieser Lernrate über bestimmte Stoffe bzw. der Erfahrung von Schmerz geregelt wird. Ist die Intensität oder Dauer solcher Erfahrungen jedoch sehr hoch, erleiden Menschen häufig einen psychischen Schaden und entwickeln auch irrationale Ängste und Verhaltensweisen. Eine Art Überanpassung? Was eventuell auch damit zusammenhängt dass die plötzliche oder längere enorme Ausschüttung bestimmter Stoffe, während einer intensiven Erfahrung, Schäden an den Neuronen und Synapsen verursachen können. Ein Trauma. Martin S. schrieb: > Hier steht ein wichtiges Wort: Durchschnitt. > Wo man sich immer wieder mit dem NN-Enthusiasten fetzt: das KNN ist > typischerweise immer in einem relativ schmalen Band von 'normalisierten' > Faellen (um den Durchschnitt herum) hoch performant. > Wo es versagt und oft falsche Bewertungen vorkommen, sind die komplett > nicht-linearen Spezialfaelle, oder eben das schmale Band am Rande (dort > wo die Gauss-Glocke auslaeuft). Wie denkst du löst das Gehirn die nicht-linearen Spezialfälle? Denn das Gehirn zeigt ja dass genau das mit neuronalen Netzen auch möglich ist. Das KNN bisher nicht an die Leistung des Gehirn heran kommen ist ja klar. Die Möglichkeiten die bisherigen Modelle zu verbessern sind ja offen. Man kann das höchstens kritisieren wenn jemand die Mängel ignoriert oder nicht erkennt. Aber normalerweise sind die Limitierungen ersichtlich. Martin S. schrieb: > Fuer die individuellen Patienten ist das u.U eine hochgefaehrliche > Aussage, denn mit der Wahrscheinlichkeit koennen sie im Prinzip nichts > anfangen. Viele Aerzte auch nicht.. Solche Systeme geben soweit ich weiß auch keine Ja und Nein Aussagen an den Arzt. Man könnte ein positives oder negatives Ergebnis zwar an ein Schwellenwert verbinden aber viel besser ist es doch wenn der Arzt die genaue Zahl der Wahrscheinlichkeit sieht. Weil es schon ein Unterschied ist ob das KNN einen Tumor zu 55% erkannt hat oder zu 90%. Solche Werte können für den Arzt durchaus nützlich sein. Wenn ich bei einem Fall glaube es sei kein Tumor vorhanden, aber das System zeigt eine Wahrscheinlichkeit von 75% an, dann schaue ich vielleicht nochmal genauer hin. Hilfreich wäre es eigentlich wenn das künstliche System direkt anzeigt wo es angeblich einen Tumor erkannt hat. So kann der Arzt direkt überprüfen was zu diesem Ergebnis geführt hat. Bei dem gegenwärtigen Stand der Entwicklung ist so ein KNN aber kein Ersatz für einen Arzt sondern ein nützliches Hilfswerkzeug dass den Arzt unterstützen kann. Martin S. schrieb: > Das haben schon einige in den 90ern durchgekaut, das > Lehrmaterial von Andreas Zell ist zu empfehlen. Wie alt eine Idee ist hat nicht viel zu bedeuten. Da die theoretischen Vorarbeiten bereits in einer Zeit erbracht wurden wo die technische Realisierung sehr schwer bis unmöglich war. Schön also wenn man heute die alten Ideen wieder aufgreift, überprüft und weiter entwickelt. Man sollte keinesfalls blind annehmen dass das schon damals ausprobiert und ausgeschöpft sei. Es wurde meistens nur erdacht, aufgeschrieben und in manchen Fällen in einem sehr eingeschränkten Umfang technisch simuliert.
Martin S. schrieb: > Wo es versagt und oft falsche Bewertungen vorkommen, sind die komplett > nicht-linearen Spezialfaelle, oder eben das schmale Band am Rande (dort > wo die Gauss-Glocke auslaeuft). Profan ausgedrückt: Aktuelle KI erkennt nicht, dass sie das Problem nicht beurteilen kann und es sieht nicht so aus, als ob man dafür eine Lösung findet. Ein Arzt sieht ein Bild von einem Auto und weiß, dass man dort keine Hautkrankheiten erkennen kann. Das Problem ist aber an sich nicht, dass KI für einen Schnelltest ungeeignet wäre, sondern dass die begleitenden Personen zunehmend mehr Vertrauen in die Technik entwickeln. FPGAfan schrieb: >> Ein einzelner Datensatz "scheiße, Finger an der Herdplatte verbrannt" >> oder "oha, das Manöver auf der Autobahn hätte auch böse schief gehen >> können, nicht gut" reicht als Lerngrundlage oft aus. Dazu braucht man >> keine tausend verbrannten Finger oder Autounfälle, wie das bei KI der >> Fall ist. > > Ich vermute dafür ist ein dynamisches System verantwortlich das die > Wirkung der Strukturbildung auf die Neuronen regelt. Das ist richtig. Aber der Gedanke geht noch weiter: Ich kann Dinge auch grundsätzlich lernen, indem ich mir anschaue oder mir erklären lasse, wie sie gemacht werden. Das heißt, dass ich auch ein Verfahren lernen kann, ohne dafür tausend Beispiele zu brauchen: Erklären, vorführen lassen, (temporär) gelernt. Jede hinreichend zuverlässige Kommunikation reicht dafür aus - Wort, Schrift, Gebärde, etc. Diese Lernverfahren fehlen m.W. in der KI-Forschung bisher komplett. Wenn man sich die Verkehrsschilderkennung im autonomen Fahren z.B. anschaut, dann basiert das aktuell auf "ich habe schon viele 70 km/h-Schilder gesehen, das hier sieht so aus". Ein Mensch sieht da erstmal nur ein möglicherweise geschwindigkeitsbegrenzendes Schild, und kann, wenn er näher kommt, irgendwann die Zahl lesen. Gelingt das nicht (z.B. Sichtverhältnisse), dann wird sich erinnert ("hier war 60") oder anhand der Gegend approximiert ("hmm, sieht wie 30 aus, könnte 50 sein, definitiv keine 130"). Dazu ist aktuelle KI nicht in der Lage, also wird durch massiven Einsatz von Kommunikations- und Dateninfrastruktur versucht zu kompensieren.
S. R. schrieb: > Martin S. schrieb: >> Wo es versagt und oft falsche Bewertungen vorkommen, sind die komplett >> nicht-linearen Spezialfaelle, oder eben das schmale Band am Rande (dort >> wo die Gauss-Glocke auslaeuft). > > Profan ausgedrückt: Aktuelle KI erkennt nicht, dass sie das Problem > nicht beurteilen kann und es sieht nicht so aus, als ob man dafür eine > Lösung findet. Ein Arzt sieht ein Bild von einem Auto und weiß, dass man > dort keine Hautkrankheiten erkennen kann. Aber dieses konkrete Problem ist doch relativ einfach zu lösen. Man muss der KI doch nur beibringen, z.B. nur auf Haut oder nur auf Röntgenbilder zu reagieren. Das dahinter liegende Problem ist aber eher, dass die aktuellen NN sehr klein sind (im Vergleich zum menschlichen Gehirn) und hochgradig spezialisiert sind. Der Arzt ist ja nicht nur Experte zum Erkennen von Hautkrebs, sondern auch Arzt, Mensch, usw. der alles mögliche andere noch kann. Dafür hat er aber auch Jahrzehnte gelernt/trainiert. Ein sechs Monate altes Kind weiß nicht, was Schwerkraft ist, ein neun Monate altes Kind dagegen schon. Ich gehe davon aus, dass wenn man erstmal leistungsfähigere Netze hat, dass man dann auch universellere Netze benutzen wird. Aber das wird sicherlich noch eine ganze Weile dauern. > Das ist richtig. Aber der Gedanke geht noch weiter: Ich kann Dinge auch > grundsätzlich lernen, indem ich mir anschaue oder mir erklären lasse, > wie sie gemacht werden. Das heißt, dass ich auch ein Verfahren lernen > kann, ohne dafür tausend Beispiele zu brauchen: Erklären, vorführen > lassen, (temporär) gelernt. Jede hinreichend zuverlässige Kommunikation > reicht dafür aus - Wort, Schrift, Gebärde, etc. > > Diese Lernverfahren fehlen m.W. in der KI-Forschung bisher komplett. Es gibt z.B. Imitation Learning. Ansonsten gibt es noch ganz viele Netze, die einzelne Aspekte davon können, z.B. Anhand einer schriftlichen Beschreibung ein Bild eines Vogels erzeugen oder erkennen, was auf einem Bild passiert (zwei Männer spielen Tennis). Dazu kommt, dass ein Mensch sehr viele Kategorien hat (zig tausend) und deswegen die Welt ganz anders begreift. Dazu wird u.a. bei One-Shot-Learning geforscht. All das und noch mehr braucht man als Grundlage, um auf diese Art lernen zu können. Da fehlt aber noch viel und ich denke erst dann kann man so generisch nützliche Assistenten haben.
Damit eine KI anhand von Text oder Sprache etwas lernen kann, muss es in der Lage sein, ein inneres Modell der Wirklichkeit zu entwickeln und diese anhand der Erfahrung über einzelne Objekte zu animieren. Generative Netze könnten so etwas theoretisch leisten. Wenn man das innere Modell sich als weiteren Input an die KI vorstellt, ist es so als würde die KI sich etwas vorstellen können. Anhand des inneren Modells könnten neue Eigenschaften gelernt werden. Komplexe Sachverhalte erfordern aber auch beim Menschen einen Experiment in der Wirklichkeit um die gezogenen Schlüsse aus dem geistigen Modell zu überprüfen. Experimente sind ja deswegen notwendig weil die Realität nicht auf allen Ebenen dem Verhalten aus der bisherigen Erfahrung entspricht. Man könnte ja meinen dass sich Atome genau wie makroskopische Objekte verhalten. Das man so was meint wäre darauf zurückzuführen, dass dem inneren geistigen Modell die Erfahrung fehlt, dass sich Objekte anders als makroskopische Objekte verhalten können. Ein solches inneres Modell hat also immer eine gewisse Unsicherheit. Es ist immer eine Art Annäherung an die Realität. Die Qualität der Annäherung des inneren Modells hängt von der Menge möglicher Assoziationen ab. Ein Individuum mit besonders viel Wissen im Bereich Physik hat also bessere geistige Modelle von physikalischen Vorgängen.
Martin S. schrieb: > Zum Thema coole (und greifbare) Projekte: Ich finde gerade die aktuelle > Entwicklung in der openSource-Synthese mit yosys, nextpnr und Konsorten > recht cool. Mit Verilog gehen schon komplexere Designs, aber VHDL holt > via ghdl langsam auf. Ist nicht mehr sonderlich weit bis zur kompletten > HW-Synthese eines vollstaendigen SoC in der Kontinuierlichen > Integration. Danke für den Tipp. Habe mir die Tools gestern etwas angesehen bzw. darüber gelesen. Sehr interessant muss ich sagen. Schade dass es nicht viel mehr open source Lösungen gibt. Ich werde mir einen IceZero Lattice iCE40 Board holen und mit den freien Tools etwas herum experimentieren.
Markus K. schrieb: > Aber dieses konkrete Problem ist doch relativ einfach zu lösen. > Man muss der KI doch nur beibringen, z.B. nur auf Haut oder nur > auf Röntgenbilder zu reagieren. Das Problem ist das "nur". Sicherlich kann ich dem Erkenner ganz viele Bilder von "das ist Müll" zeigen, aber dann verwirft das System auch nur genau den trainierten Müll. Ein Mensch erkennt auch unbekannten Müll, zumindest auf der Ebene "damit kann ich nicht arbeiten". Und dann kommt natürlich die Frage, wieviel Müll ich einem System der Größe N zeigen muss, damit es zuverlässig ungültige Eingaben erkennt, ohne die "Hautkrebs/kein Hautkrebs"-Entscheidung nennenswert zu beeinflussen. Markus K. schrieb: > Das dahinter liegende Problem ist aber eher, dass die > aktuellen NN sehr klein sind (im Vergleich zum menschlichen > Gehirn) und hochgradig spezialisiert sind. Autistisch eben. Dummerweise setzen wir diese Techniken auch da ein, wo man Autisten nie einsetzen würde - und überlassen ihnen zunehmend die Entscheidungsgewalt. Angefangen schon da, wo sich der Mensch rechtfertigen muss, vom Maschinenvorschlag abgewichen zu sein.
FPGAfan schrieb: > Wie denkst du löst das Gehirn die nicht-linearen Spezialfälle? Denn das > Gehirn zeigt ja dass genau das mit neuronalen Netzen auch möglich ist. > Das KNN bisher nicht an die Leistung des Gehirn heran kommen ist ja > klar. Die Möglichkeiten die bisherigen Modelle zu verbessern sind ja > offen. Man kann das höchstens kritisieren wenn jemand die Mängel > ignoriert oder nicht erkennt. Aber normalerweise sind die Limitierungen > ersichtlich. Das Gehirn wuerde ich jetzt im Tech-Sprech mal als sehr effiziente Self-Organizing-Map mit einem moeglicherweise unbegreifbar guten Praegung durch die Evolution betrachten. Das ist natuerlich sehr strittig (angelernt vs. angeboren..). Die SOM haben gegenueber den KNN den Vorteil, dass sie dynamisch Verbindungen zu Nachbar-Neuronen aufbauen koennen und sich die Gewichtung/Konzentration laufend anpasst. Das KNN hat nur die fixen Moeglichkeiten der Distribution mit Gewichtungsfaktoren (inkl. Extras mit Vorwaertspropagation an weitere Schichten). Zur Erlaeuterung dieser Linearitaeten, siehe Bildchen. Sei das eine einfache 'Karte', Koordinaten X und Y, und wo das System lernt, zwischen Fall (A) oder (B) (rot) zu unterscheiden. Die SOM kann sich auf sowas wie links leichter einstellen als das KNN (rechts), was natuerlich durch weitere Schichten sowas schon approximieren kann. Man kann natuerlich immer mit Resourcen draufhauen, um auch die fraktalsten Entscheidungsdomaenen abzugrenzen. Interessant wird's dann mit der Weichheit der Grenzen, da das ja in Realitaet kein starres Ja/Nein ist. Ein Umlaut-Ue ist ja auch ein bisschen U, Y, und I. Die KNN haben grundsaetzlich das Problem, dass man sie einfach nicht selbst dauernd lernen lassen darf. Kriegen sie zuviel Mist, fangen sie an zu 'spinnen' und entarten. Der Roboter hat dann offenbar auch psychische Probleme :) Die SOM sortiert das flexibler ein, braucht aber auch deutlich mehr Verwaltungsaufwand. Nicht so ohne weiteres in einen Chip zu backen, dewegen bleibt man halt bei den guten alten KNN und Feed-Forward-Strukturen. Es gab da auch mal ein recht lehrreiches OpenSource-Tool namens SNNS, damit konnte man sich div. NN-architekturen zusammenbauen, trainieren und evaluieren. Scheint es auch noch zu geben. Zum andern Thema (wo schweifen wir jetzt eigentlich wohin ab..) FPGAfan schrieb: > Danke für den Tipp. Habe mir die Tools gestern etwas angesehen bzw. > darüber gelesen. Sehr interessant muss ich sagen. Schade dass es nicht > viel mehr open source Lösungen gibt. > Ich werde mir einen IceZero Lattice iCE40 Board holen und mit den freien > Tools etwas herum experimentieren. Es gibt eigentlich eine Menge an openSource-Projekten, v.a. Verilog-basiert, die beachtliches auf die Beine stellen. Geht halt hierzulande etwas im Hype-Geschrei unter oder wird mit Missachtung gestraft, weil's nicht HLS-Mainstream ist. Auf jeden Fall funzt die Toolchain recht gut, hier synthetisiert schon ein RISC-V SoC im ECP5 und das schneller als mit der offiziellen Synopsys-Diamond-Geschichte.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.