Hallo, ich habe gerade den Thread zu neuronalen Netzten gesehen und möchte noch mal über eine andere Herangehensweise sprechen. 1996 hat Adrian Thompson in einem Xilinx FPGA folgendes gemacht: https://www.researchgate.net/profile/Adrian_Thompson5/publication/2737441_An_Evolved_Circuit_Intrinsic_in_Silicon_Entwined_With_Physics/links/56f1ffc908ae4744a91eff8d.pdf Ziel war, dass das FPGA zwischen zwei Frequenzen unterscheiden kann. Und zwar ohne eine HDL anzufassen. Dafür hat er Bitstreams gebaut, erst mal durch Zufall und dann geguckt was das FPGA macht. Dann wurden diese Bitstreams verheiratet und es kamen neue Kinder-Bitstreams raus. Und da kam dann noch Selektion dazu. Sprich die Bitstreams die näher am gewünschten Verhalten lagen haben sich durchgesetzt. So habe ich das verstanden. Heutzutage könnte man das ja auch machen und dank viel Rechenleistung sogar ganz ohne FPGA, quasi in der Simulation. Geht das? Kann ich irgendwie einen "Bitstream simulieren"? Ich stelle mir das so vor, ich wähle das FPGA Modell aus, gebe den Bitstream als Datei an und dann kann ich die Simulation laufen lassen und mit einer Testbench die Beinchen des virtuellen FPGAs angucken und bespielen. Ja, Probleme gibt es wohl mit der zeitlichen Auflösung und dem Analogverhalten. Oder ist dieses Gebiet tot und sollte es auch bleiben?
Gustl B. schrieb: > Sprich die Bitstreams die näher am > gewünschten Verhalten lagen haben sich durchgesetzt. Ja, das ist der erste und naheliegendste Ansatz, wenn man Evolution und Hardware vor Augen hat. Das haben sich schon sehr Viele ausgedacht, unter anderem mein Professor, bei dem wir Anfang der 90er ASICs gebaut haben. Das Hauptthema war damals die theoretische Untersuchung digitaler Schaltungen zur Ermittlung von optimalen Testmustern unter anderem mit dem D-Algorithmus et al. Das war so die Zeit, in der die Mathematik entwickelt wurde, um Schaltungen zu optimieren, weil der Durchbruch in der Halbleitertechnologie erreicht war, ab dem man so große Schaltungen auf einem Chip bauen konnte, dass man sie nicht mehr sinnvoll in Echtzeit komplett testen konnte. Solche Überlegungen, wie du sie beschreibst, wurden dabei gleich miterledigt: Wie man sehr leicht zeigen kann, ist die Zahl der Möglichkeiten so immens groß, dass man schon bei einfachen Schaltungen sehr schnell zu einer Unzahl von Möglichkeiten kommt, die durchzuprobieren wären und bereits 1996 war die Komplexität um sicher Faktor 1000 und mehr zu groß, damit das zu einem Ziel hätte führen können. > Geht das? Kann ich irgendwie einen "Bitstream simulieren"? Ja, das geht, wobei man nicht unbedingt den Bitstream nehmen müsste, sondern direkt die Struktur des FPGAs simulieren könnte. Einfacher wäre es wohl das FPGA in Echtzeit laufen zu lassen, weil die aufwändige Synthese wegfällt. Noch einfacher wäre es, überhaupt erst einmal die digitale Schaltung per Evolution errechnen zu lassen. > Oder ist dieses Gebiet tot und sollte es auch bleiben? Ja, ein seit 25 Jahren totes Pferd. Die Knochen sind schon verfault und die Fotos davon verblichen. Grundsätzlich ist es natürlich nett, die Geschichte jetzt aufzuwärmen, weil man einfach am FPGA einige Sekunden herumbauen kann und damit Setup-und Simulationszeiten um Größenordnungen verbessert, aber die Schaltungen selbst sind je ebenfalls um mindestens diese Größenordnungen angewachsen. Das im FPGA baubare ist also immer um denselben Faktor voraus, als das im FPGA in Echtzeit simulierbare und dies wiederum ist etwa dieselbe Menge Zehnerpotenzen voraus, als das zufällig gebaute, was x-mal simuliert werden muss. Genau genommen wächst die Zahl der nötigen Simulationen oder Tests mit der Zahl der FlopFlops im FPGA sogar exponentiell. Das Einzigste, was man mit "Evolution" sinnvoll machen kann, ist ein "try and error"-System um Parameter zu optimieren, wenn die Schaltung weitgehend definiert ist und zum Problem passt, wie das in Regelsystemen getan wird, wo ein Beobachter die Regelungsparameter schätzt und schaut, was passiert und wie gut sie zur Anwendung passen und neu anpasst. Auch das haben wir damals gemacht. Nannte sich selbsoptimierende autoadaptive Regelung. Heißt heute auf neudeutsch KI. Gustl B. schrieb: > Dann wurden diese > Bitstreams verheiratet und es kamen neue Kinder-Bitstreams raus. Scherzfrage für FPGA-Insider: Was kommt dabei heraus, wenn man einen Xilinx Kintex mit einem Altera MAX 10 kreuzt und wie verheiratet man die? Antwort: Mit Quvado und heraus kommen kleine Kinmaxe, deren FlopFlops beim Start per INIT definierbar sind und trotzdem einen asynchronen Reset-Eingang haben.
:
Bearbeitet durch User
Danke! Mir ist klar, dass man einige viele oder auch die meisten Probleme deutlich einfacher und vor allem schneller durch den klassischen Designansatz hinbekommt. Ich könnte mir aber vorstellen, dass man durch so Vererbung ein Optimum finden kann das man sonst nicht erreicht einfach weil man als Mensch in seinem Denken beschränkt ist. Wie denken da in Registern und Zustandsautomaten und Takten, das schränkt vermutlich auch ein. Gerade bei so Zeug wie Mustererkennung bei Bildern, das können ja neuronale Netze recht gut, es ist aber ziemlich schwer das in einer Programmiersprache hinzuschreiben. Daher vermute ich, dass das für ganz andere Probleme geeignet seien könnte wie der normale Ansatz bei dem Menschen HDL schreiben.
Gustl B. schrieb: > Wie denken da in Registern und > Zustandsautomaten und Takten, das schränkt vermutlich auch ein. FPGAs sind aber ausdrücklich so aufgebaut, um diese Struktur abzubilden. Theoretisch kann natürlich eine zufällige Kombinatorik zu einem guten Ergebnis führen und das Herumprobieren kann theoretisch auch schneller zu einem Ergebnis führen, als systematisches Durchprobieren und Aufsetzen der Schaltung. Da sich das aber im Wesentlichen im Bereich der Kombinatorik abspielt, reicht es auch, dies durch paralleles Simulieren allein dieser Kombinatorik durchzuspielen. Eine völlig andere, davon lösgelöste Halbleiterstruktur wäre natürlich denkbar, aber da grift gleich der nächste Aspekt: Alles, was man erforschen möchte und als ideal herausentwickelt hat, muss man irgendwann auch bauen. Die Technik gibt dazu die Randbedingungen vor und die lassen es kaum zu, massiv ins 3D zu bauen oder grundsätzlich anderes zu bauen, als Kombinatorik und Speicher. Es macht also nicht unbedingt viel Sinn, eine optimale Schaltung zu erstellen, die dann nicht effektiv gebaut werden kann. In den letzten 20 Jahren sind mehrere HL-Prozesse, Chip-Strukturen und Logik-Design-Zellen - z.T. auch Analoge!- auf den Markt gekommen und wieder verworfen worden, weil sie sich nicht lohnten. Was Neuronale Netze angeht, so sind dort Gewichtungfaktoren ein wesentlicher Faktor. Diese zu optmieren, ist vergleichsweise zielführend zu machen, weil es ausgehend von einem Ansatz nur 2 Richtungen für die Faktoren gibt, nämlich hoch oder runter. Sieht man durch die Differenzele Analyse, dass das hoch zu schlechteren Ergebnissen führt, kann man sich auf die andere Richtung konzentrieren und zunächst diese fortführen. Damit konvergieren Lösungen extrem schnell, ähnlich wie SPICE per Iteration Lösungen liefert. Wollte man dies durch zufällige Bitmanipulation finden, würde das bedeuten, daß jeder Parameter, z.B. bestehend aus einem 16 Bit-Wert, 65535 Proberechnungen auslösen könnte und nur maximal die Hälfte überhaupt zu einem richtigen Ergebnis führen kann. Das ist weit weg von effektiv. Einen Eindruck von Aufwand und Nutzen liefert hier die Monte-Carlo-Analyse (auch in SPICE verfügbar) die einst als Allheilmittel gepriesen wurde, die aber in so gut wie keinem einzigen Ansatz bei heutzutage verwendeten Systemoptimierungen noch eine Rolle spielt. Einfach nur ganz zufällig ohne Strategie die Systemparameter ändern, ist nicht wirklich zielführend.
:
Bearbeitet durch User
Damit das aber nicht falsch verstanden wird: Das Prinzip der zufälligen Parametrierung und Bewertung in Echtzeit, um Modelle anzupassen und eine Schaltung intelligenter zu machen, ist natürlich grundsätzlich ein wichtiger Ansatz. Es wird aber schon in allen erdenklichen Lagen und Ausprägungen munter angewendet: Wettervorhersagen z.B. rechnen nicht nur mehrere Annahmen mit Abweichungen durch, sondern kontrollieren und bewerten auch die Annahmen anhand der späteren Resultate und optimieren daraufhin ihre Anzahl und Variation der Annahmen für kommende Vorhersagen. Der Algorithmus, der dies optmiert, wird ebenfalls schon überwacht und die Strategie, mit der die Anahmeschätzungen optimiert werden, wird selbst auch optimiert. Dieses System lässt sich beliebig schichten und fortentwickeln. Im Prinzip macht das jede schlaue Regelung heutzutage - spätestens, wenn man den Regelungstechnikingenieur mit hinzu nimmt, der das Ergebnis seiner Bemühungen sieht und dann merkt, dass die Art, wie er zu den idealen Parametern gelangt ist, mit jeder entwickelten Regelung verbessert und schneller wird. Wenn man sich komplexe Schaltungen und Software ansieht, so erkennt man auch, dass der fette Brocken der Entwicklung und auch der Inbetriebnahme nicht das Finden und die Optimierung der Struktur ist, sondern die Parameter entscheidend sind. Es gibt nur wenige Prinzipien bei der Objekterkennung wie z.B. der Vergleich, die Bewertung von Gleichheit, die Reihenfolge und Priorisierung bei scheinbar gleichen Gütekriterien sowie die Themen Auflösung und Zeitverhalten. Das war es. Der Rest ist Umsetzung, also: Was macht man parallel, was sequenziell und was iterativ oder rekursiv. Das ergibt eine sehr überschaubare Anzahl möglicher Schaltungs- und Softwarestrukturen. Worin sie sich unterscheiden, sind die Parameter: Wie gross ist eine Matrix, wieviele TAPS hat ein Filter etc. Das macht die Hauptarbeit. Soweit man das automatisieren kann, wird das vielfach schon gemacht. Was die Optimierung von Schaltungen auf low level Ebene angeht, stecken solche Ansätze ja auch schon seit Längerem in den Design Tools selbst. Man steckt vorne die Eingänge rein und hinten die Soll-Ergebnisse, also die Werte der Ausgänge und bekommt dann die optmierte Kombinatorik von der Synthese. Um dort funktionelle Optmierungen einzufügen, müssen nur die Gütekriterien ins VHDL mit hinein und als Ergebnis vorgegeben werden. Der Quervergleich unterschiedlicher Ansätze ist mit Design-Explorer-Funktionen möglich.
Wer auch nur die Übersicht zu dem verlinktem Paper gelesen hat wird feststellen daß in diesem speziellem Fall eine digitale Simulation prinzipiell nicht möglich ist. Es haben sich durch die Mutationen vom Bitstream "illegale" Kombinationen, schwebende Knoten, Logikzellen im Analogbetrieb ergeben. Meiner persönlichen Meinung nach wäre das aber ein sehr guter Weg näher an die Funktionen von biologischen Gehirnen zu kommen wenn man gezielt FPGAs mit analogen Verknüpfungen bauen würde. Vielelicht erinnert ihr euch noch an die "Fuzzy Logik"
Gustl B. schrieb: > Geht das? Kann ich irgendwie einen "Bitstream simulieren"? Das geht IMHO nur bei einer Lattice-Familie, weil bei den anderen der Zusammenhang zwischen bitstream und Logischaltung nicht offengelegt ist. https://hackaday.com/2015/03/29/reverse-engineering-lattices-ice40-fpga-bitstream/ Das ist aber nicht dasselbe wie beim Thompson-Paper weil der seinen CPLD quasi 'analog' betrieb. T. hat nach meinem Verständniss den bistream als 'dummen' DNA-Vector angesehen und dann nach dem Vorbild der Genetik in der Natur permutiert und das Ergebniss einer Auswahl nach Vorbild der natürlichen Evolution unterworfen. > Oder ist dieses Gebiet tot ... IMHO wird der Thompson-Ansatz nicht weitererfolgt. In dem verwandten Gebiet der asynchroncen Digitaltechnik gibt es hin und wieder Veröffentlichungen und es wird vermundet das Geheimdienste/Militär daran forschen, aber das ist ein Gerücht. > ... und sollte es auch bleiben? Nein, alles ist IMHO Wert erforscht zu werden. Allerdings ist es IMHO ein Fehler die Arbeiten von Thompson an den CPLD's damals auf heutige FPGA's zu übertragen. Es steht eher an, einen für evolutionäre Algorithmen angepassten IC zu spezifizieren.
A-Freak schrieb: > Wer auch nur die Übersicht zu dem verlinktem Paper gelesen hat wird > feststellen daß in diesem speziellem Fall eine digitale Simulation > prinzipiell nicht möglich ist. Es haben sich durch die Mutationen vom > Bitstream "illegale" Kombinationen, schwebende Knoten, Logikzellen im > Analogbetrieb ergeben. Gustl B. schrieb: > Ja, Probleme gibt es wohl mit der zeitlichen Auflösung und dem > Analogverhalten. Das meinte ich damit. Und genau wegen diesem Analogverhalten ist da vielleicht auch mehr möglich als das was die FPGA Toolchains so bauen können. C. A. Rotwang schrieb: > T. hat nach meinem Verständniss den bistream als > 'dummen' DNA-Vector angesehen und dann nach dem Vorbild der Genetik in > der Natur permutiert und das Ergebniss einer Auswahl nach Vorbild der > natürlichen Evolution unterworfen. Exakt! Das ist ja der spannende Punkt an der Geschichte. Heutzutage geht es sehr schnell ein FPGA zu konfigurieren und ein paar Bits neu zu verwürfeln. Die Dauer einer Generation wird also eher kurz. Schwierig ist dann zu gucken wie sich dieses FPGA verhält und ob es nur das macht was man will und nicht noch mehr was man nicht will. C. A. Rotwang schrieb: > Es steht eher an, einen für evolutionäre > Algorithmen angepassten IC zu spezifizieren. Mittlerweile gibt es diese neuronalen Netze auf ICs, aber so wie ich das bisher gesehen haben sind das Arrys aus vielen Multiplizierern mit etwas Speicher. Also weiterhin eine Digitalschaltung die getaktet ist. Das ist natürlich irre praktisch, denn da kann man dann die beim Training gewonnenen Gewichte schön als digitale Zahlen hineinladen. Wie sollte man das auch bei einem analogen neuronalen Netz machen? Jürgen S. schrieb: > FPGAs sind aber ausdrücklich so aufgebaut, um diese Struktur abzubilden. Jap, in diesem Fall ist das dann eher beschränkend. Der alte Xilinx Stein aus dem Paper hatte noch nur(?) viele identische Zellen. Vielen Dank für die Antworten!
Gustl B. schrieb: > Heutzutage geht > es sehr schnell ein FPGA zu konfigurieren und ein paar Bits neu zu > verwürfeln. Die Dauer einer Generation wird also eher kurz. Den Bitstream per Zufall/genetischem Algorithmus zu erzeugen ist doch genauso Quatsch wie das, was hier die Hirnforscher versucht haben: https://www.golem.de/news/cpu-koennten-hirnforscher-einen-c64-verstehen-1701-125738.html Duke
Gustl B. schrieb: > Geht das? Ungefähr genau so gut, wie Zufallsbuchstabenfolgen zu verheiraten bis eines Tages ein Roman draus wird. Einfach zu viele Möglichkeiten Quatsch zu produzieren, selbst bei guter Bewertungsfunktion.
Jürgen S. schrieb: > Gustl B. schrieb: >> Sprich die Bitstreams die näher am >> gewünschten Verhalten lagen haben sich durchgesetzt. > Ja, das ist der erste und naheliegendste Ansatz, wenn man Evolution und > Hardware vor Augen hat. Und gleichzeitig auch der sicherste Weg ins nächste Nebenmaximum. Gustl B. schrieb: > Ich könnte mir aber vorstellen, dass man durch so Vererbung ein Optimum > finden kann das man sonst nicht erreicht einfach weil man als Mensch in > seinem Denken beschränkt ist. Die ganze Veranstaltung enthält einfach zu viele Maxima.
MaWin schrieb: > Gustl B. schrieb: >> Geht das? > > Ungefähr genau so gut, wie Zufallsbuchstabenfolgen zu verheiraten bis > eines Tages ein Roman draus wird. > > Einfach zu viele Möglichkeiten Quatsch zu produzieren, selbst bei guter > Bewertungsfunktion. Eben. Weil die selbstkonstruierende Maschine noch nicht erfunden wurde. Das heißt aber nicht daß es sie nicht schon gibt. Es braucht aber mehr als ein paar FPGAs um da dranzukommen. Es braucht eine ganze Industrie die am laufenden Band KI produziert. Die Frage ist nur, wie man den Verbraucher davon überzeugt. Ein guter Ansatz ist die Prämisse: Funktion follows Form. Mit dem IoT wurden die vorrausetzungen geschaffen und mit dem Fernseher haben wir ihn bei den Eiern
letallec schrieb: > Weil die selbstkonstruierende Maschine noch nicht erfunden wurde. Doch klar gibt es die. Lebewesen werden die genannt und die funktionieren genau so wie beschrieben. Vererbung und Selektion. Was noch nicht passt ist der Zeitraum und die Anzahl. Bei Lebewesen wird in einer Generation bei allen Individuen gleichzeitig eine unterschiedliche Erbgutversion ausprobiert. Das sind ja nach Lebewesen irre viele Exemplare. Bei und Menschen aktuell grob 8 Millarden und wir sind noch eher selten im Vergleich zu Bakterien. Und dann dauert aber eine Generation recht lange. Bei Bakterien nicht so sehr, bei Menschen oder Walen schon. Man müsste also um das sinnvoll in Hardware zu machen: - Kurze Generationen und Bewertungen bauen - Sehr viele Exemplare parallel testen und untereinander vererben. Und beides ist sehr schwer oder teuer.
A-Freak schrieb: > Wer auch nur die Übersicht zu dem verlinktem Paper gelesen hat wird > feststellen daß in diesem speziellem Fall eine digitale Simulation > prinzipiell nicht möglich ist. Mit Simulatoren wie hSpice mit denen ASICS simuliert werden, wäre das schon möglich. Eine Logiksimulation geht dann natürlich nicht. > Es haben sich durch die Mutationen vom > Bitstream "illegale" Kombinationen, schwebende Knoten, Logikzellen im > Analogbetrieb ergeben. Auch wenn das aus der Sicht mancher verlockend erscheint, auf diese Weise zu völlig neuen Schaltungen zu gelangen, ist das mehr oder weniger aussichtslos, weil man in digitalen Schaltungen eine Reihe von Maßnahmen ergreifen muss, um eben solche Effekte zu verhindern, um wenigstens ein nutzbares digitales Verhalten zu erzeugen. Z.B. wird Redundanz eingebaut, um Hazards zu verhindern und es werden Taktbäume aufgezogen, um ein vorhersagbares Schalten zu ermöglichen. Will man sich davon lösen, muss man die Zufälligkeiten auf die Kombinatorik begrenzen. Dann aber sind FPGAs nicht unbedingt ideal oder nötig, das zu simulieren und die sich ergebende Schaltung wird nicht effektiv werden, wenn sie eine gewisse Größe überschreitet, weil man sie nur noch sehr langsam takten kann. Auch für die Betrachtung gilt wieder die Machbarkeitsaussage in meinem Beitrag weiter oben: Es ist nicht effektiv oder lohnt sich nicht oder es bezieht sich nur auch Parametrierung und Gewichtung und insoweit ist es bereits in der Mache :-)
Gustl B. schrieb: > Kann ich irgendwie einen "Bitstream simulieren"? Nicht sinnvoll, weil proprietär, geheim und nur anwaltlich verfügbar. Du kannst die Simulation aber auf einer höheren Ebene machen, z.B. auf der Netzliste. Was du in jedem Fall nicht zuverlässig simulieren kannst, sind die analogen Bestandteile in einem FPGA. Die sind nicht spezifiziert. Es ist beispielsweise mit Hilfe von genetischen Algorithmen (um die geht es ja) automatisch möglich, einen exakten, stabilen Takt mit einer kombinatorischen Schleife zu erzeugen. Aber das funktioniert dann im Zweifelsfall nur auf genau einem einzigen FPGA... Es gibt aber noch einen zweiten, viel wesentlicheren Grund, warum so ein Unterfangen nur begrenzt sinnvoll ist: Gelerntes Verhalten ist heuristisch. Ein Algorithmus, der ein Problem in hinreichend kurzer Zeit lösen kann, ist deutlich im Vorteil gegenüber einem gelernten Verhalten - allein schon, weil er ein bestimmtes Verhalten garantieren kann. Worauf du aber hinauswillst ist, wenn ich dich richtig verstehe, eigentlich nur der zweite Pfeiler der künstlichen Intelligenz: Genetische Algorithmen. Ich sehe kein Problem darin, KI (der Begriff ist ja auch schon wieder veraltet... ML) damit zu machen. Aber für FPGA-Anwendungen, bei denen man exaktes Verhalten haben will... eher nicht. Da ist exaktheit ein wichtigeres Kriterium. Man entwickelt ja auch keinen JPEG-Decoder mit neuronalen Netzen oder genetischen Algorithmen...
S. R. schrieb: > Es gibt aber noch einen zweiten, viel wesentlicheren Grund, warum so ein > Unterfangen nur begrenzt sinnvoll ist: Gelerntes Verhalten ist > heuristisch. Ein Algorithmus, der ein Problem in hinreichend kurzer Zeit > lösen kann, ist deutlich im Vorteil gegenüber einem gelernten Verhalten > - allein schon, weil er ein bestimmtes Verhalten garantieren kann. Es ist nun auch alles andere als gesichert, dass künstliche Intelligenz (oder wie auch immer das gerade heisst) das ultimate Erfolgsrezept ist. Das ist ja noch nicht mal für die natürliche bewiesen. Genetische Algorithmen tendieren (wie die Evolution) zu lokalen Maxima. Das lokale (mit Intelligenz gesegnete) Maximum, das wir "die Krone der Schöpfung" nennen, ist ganz und gar nicht so erfolgreich, wie wir das alle gerne hätten. Die Evolution hat eine riesige Zahl von Arten hervorgebracht, die - legt man die Lebensdauer der Spezies, die Anzahl an Individuen und die Fähigkeit, sich als Art an den Umfang vorhandener Ressourcen und sich wandelnden Bedingungen anzupassen als Erfolgsfaktor zugrunde - allesamt wesentlich erfolgreicher waren und sind. Ganz ohne Intelligenz, sondern ausschliesslich mit LUTs.
Markus F. schrieb: > Es ist nun auch alles andere als gesichert, dass künstliche Intelligenz > (oder wie auch immer das gerade heisst) das ultimate Erfolgsrezept ist. > Das ist ja noch nicht mal für die natürliche bewiesen. Naja, KI ist halt ein Ansatz, um heuristische Problemlöser zu bauen, wenn man nichtmal das Problem ordentlich beschreiben kann. Ein ultimatives Erfolgsrezept klingt anders. :-) Die natürliche Evolution hat ziemliche Schwächen, die wir gesellschaftlich mit so Dingen wie Gesetzen, Gerichten und Gefängnissen ausgleichen, und wissenschaftlich durch strenge Methoden. Ich kann mir gut vorstellen, dass wir für KI sowas auch brauchen werden... Markus F. schrieb: > Ganz ohne Intelligenz, sondern ausschliesslich mit LUTs. Was ist denn ein Neuron, wenn keine LUT? :-)
Markus F. schrieb: > allesamt > wesentlich erfolgreicher waren und sind. Erfolgreicher, als "was"??? Es ist nicht messbar, wie erfolgreich eine evolutionsgetriebene Entwicklung war, weil es kein Vergleichsuniversum gibt. Im Gegenteil: Die Natur ist voll mit Gegenbeispielen dafür. Oftmals überlebt nur etwas aus Zufall oder weil ein anderer zu groß geworden ist und ein Asteroid kam, wie die Säugetiere nach den Sauriern. Die Evolution ist nur ein Beispiel dafür, dass das Prinzip funktioniert neben 99% Verschlechterung auch zu Verbesserungen führen kann. Sie ist aber kein Beweis für Effizienz. Sonst gäbe es nämlich nur einen einzigen Bauplan und eine Tierart, die sich durchgesetzt hat. Ob eine evolutionäres Ergebnis gut ist, muss in vielen Fällen angezweifelt werden. Wir haben z.B. Millionen Jahre der Entwicklung hinter uns und trotzdem immer noch kein stabiles Kniegelenk. Jede normale Bohrung und Passung aus Holz hält mehr aus, wie beispielsweise bei 250 Jahre alten Mühlrädern. Praktisch alles, am menschlichen Körper ist durch Technik sehr viel einfacher und besser zu lösen.
Thomas U. schrieb: > Sonst gäbe es nämlich nur einen einzigen Bauplan und eine > Tierart, die sich durchgesetzt hat. Homo Sapiens hat sich auf dieser Erde derzeitig eigentlich verdammt gut durchgesetzt. Thomas U. schrieb: > Wir haben z.B. Millionen Jahre der Entwicklung > hinter uns und trotzdem immer noch kein stabiles Kniegelenk. Es ist, wie die meiste Technik auch, auf eine bestimmte Nutzungszeit ausgelegt und funktioniert eigentlich passabel genug. Dein Mühlrad muss wesentlich mehr leisten. Normale Billigelektronik (oder -mechanik) leistet weniger. Zusatzfrage: Gibt es eigentlich irgendeine Verbindung bei Lebewesen, die unendliche Rotation erlaubt (also "das Rad")? Mir wäre nichts bekannt, zumindest nichts, wo beide Teile lebend miteinander verbunden sind.
:
Bearbeitet durch User
S. R. schrieb: > Nicht sinnvoll, weil proprietär, geheim und nur anwaltlich verfügbar. > Du kannst die Simulation aber auf einer höheren Ebene machen, z.B. auf > der Netzliste. Der Logik-Zoo der ECP5 und ICE40-Reihe von Lattice ist soweit reverse-engineert und dokumentiert, dass auch das nun geht. Mit Ausnahme einiger harter Bloecke. Gleiches auch bei Xilinx, nur eher im Stealth-Mode. Und deswegen sind die HDL-Files auch u.U. nicht direkt verfuegbar, aber beim Projekt Trellis und entsprechend Project Xray kann man schon die noetigen Infos extrahieren, wenn einem die Primitiven nicht reichen (von denen kann man sich problemlos auch die HDL ausgeben lassen). Da wird uebrigens das Reverse-Engineering teils mit brute-force Fuzzing (einfach mal random-DNA ausprobieren) betrieben. Hat aehnlichen Charakter wie die Spielerei mit 'Evolution'. Bei dem ollen simplen FPGA in den 90ern mag so ein Experiment auch noch ueberschaubar gewesen sein. Heutzutage ist das sicher deutlich komplexer. Ansonsten koennte man aber auch einfach mal ein 4-LUT oder 6-LUT-Modell plus weitere Logik-Tiere in in den Simulator werfen, eine 'natuerliche 'Auslese bezueglich einer Funktion codieren und sich akademisch austoben. Koennte.
S. R. schrieb: > Homo Sapiens hat sich auf dieser Erde derzeitig eigentlich verdammt gut > durchgesetzt. Aus Sicht von Homo Sapiens ist das wohl richtig. Einzeller z.B. gibt und gab es auf der Erde um (viele) Grössenordnungen mehr und um Millionen von Jahren länger (und wahrscheinlich noch lange, nachdem Menschen längst Erdgeschichte sind). Als Art sicherlich deutlich erfolgreicher. Aus deren Sicht (wenn sie denn eine hätten) wäre Homo Sapiens wahrscheinlich nur eine sehr temporäre Randerscheinung. Ein kurzfristiges lokales Maximum halt.
Markus F. schrieb: > Als Art sicherlich deutlich erfolgreicher. Ich dachte nicht, dass man Einzeller als "eine Art" betrachtet...? Genauso wie Insekten. Am Ende hängt es an der Bewertungsfunktion - in beiden Evolutionsformen. Markus F. schrieb: > Ein kurzfristiges lokales Maximum halt. Reicht ja auch. Da das alles nur Heuristik ist... wenn die Heuristik gut genug ist, dann ist das Problem hinreichend gut gelöst. :-)
S. R. schrieb: > Ich dachte nicht, dass man Einzeller als "eine Art" betrachtet...? nimm' irgendeinen davon. Paßt trotzdem.
Naja ob eine Art erfolgreich ist hängt nicht nur von ihr selber ab. Z. B. Weizen oder Katzen/Hunde/Schweine/Hühner, ... alle extrem erfolgreich, dank dem Menschen. Ja, Schweine, Hühner, Rinder, ... sind als Individuen vermutlich weniger glücklich im Schnitt als in der Zeit vor dem Menschen, aber als Art sind die erfolgreicher. Gibt da ein schönes Buch, "Sapiens", bin bald durch damit und empfehle es gerne weiter.
Um vom Amateurdarwinismus wieder auf Elektronikkonstruktion zu lenken: Ein Prof prägte mal als zentralen Satz bezüglich künstlicher neusonaler Netze (KNN) den Sätz von "Ein KNN kann nur die Probleme lösen, dessen Lösungsmenge es zu repräsentieren vermag". Da selbe gilt sicherlich auch für evolutionäre Algorithmen. Nur wenn die Übertragungs-funktion des zu optimierenden Systems durch den DNA-Vector representierbar ist, dann können auch Evolutionstransformationen auf diesen Vector zur Lösung führen. Oder anders formuliert. "Die Evolutionen kann nur die Anpasslösungen hervorbringen, die in der Generation-0 bereits angelegt sind." Diese Repräsentierung als optimierbarer Parametervektor ist IMHO nur bei wenigen elektronischen Netzwerken wie kanonische Filterstrukturen (FIR,IIR) gegeben. Arbeitshypothese: Turing maschinen wie CPU's dagegen sind nicht als durch Evo-Algos optimierbare Strukturen darstellbar, so dass eine Optimierung von CPU's zu flinken Speziallösern auf diese Weise nicht zu erwarten ist.
C. A. Rotwang schrieb: > Ein Prof prägte mal als zentralen Satz bezüglich künstlicher neusonaler > Netze (KNN) den Sätz von "Ein KNN kann nur die Probleme lösen, dessen > Lösungsmenge es zu repräsentieren vermag". Jaein. Wenn ein zu optimierender Parameter nicht Teil des Vektors ist, dann wird er auch nicht optimiert. Andererseits zeichnet sich aktuelle KI-Entwicklung ja gerade dadurch aus, dass sie Probleme eben nicht löst, sondern nur approximiert. Das XOR-Problem exakt zu lösen ist irrelevant. > Oder anders formuliert. > "Die Evolutionen kann nur die Anpasslösungen hervorbringen, die in der > Generation-0 bereits angelegt sind." Nein, denn zu einem genetischen Algorithmus gehören zwei Mechanismen: Kombination und Mutation. Letzteres ermöglicht Variation auch über statische Eingaben. (Es bleibt natürlich dabei, dass der entsprechende Parameter überhaupt beeinflusst werden können muss.) > Arbeitshypothese: Turing maschinen wie CPU's dagegen sind nicht als > durch Evo-Algos optimierbare Strukturen darstellbar, Warum sollte das nicht so sein? Das menschliche Hirn ist durch evolutionäre Algorithmen im Prozess der Optimierung (Hypothese), aber es ist trotzdem fähig, eine Turingmaschine nachzubilden. Ein Emulator für Turingmaschinen muss ebenfalls mindestens die turingfähig sein. > so dass eine Optimierung von CPU's zu flinken Speziallösern > auf diese Weise nicht zu erwarten ist. Davon gehe ich auch aus, aber aus anderen Gründen: Von CPUs erwarten wir garantierbares deterministisches Verhalten (zumindest im Rahmen der Spezifikation), was derzeit außerhalb dessen liegt, was KI-Forschung leisten will. Das heißt aber nicht, dass CPUs nicht durch ML-Verfahren optimiert werden können. Bestimmte Teilbereiche der Schaltungsentwicklung, z.B. Routing der Platine, sind für aktuelle ML-Algorithmen sehr gut geeignet. Ich würde mich wundern, wenn das in der Halbleiterfertigung nicht bekannt oder angewendet würde. Da fällt dann vielleicht kein cooler neuer RSA-Decoder bei raus, aber eine leicht bessere Taktfrequenz oder Rauschresistenz. Das liegt aber daran, dass es dort zwar "richtige" und "falsche" Lösungen gibt, aber keine allgemeine Optimalität. Es geht vor allem darum, angemessene Kompromisse zu finden, und das ist wiederum Heuristik.
S. R. schrieb: > Warum sollte das nicht so sein? Das menschliche Hirn ist durch > evolutionäre Algorithmen im Prozess der Optimierung (Hypothese), Hm, da fällt mir ein anderer Professor ein (Evolutionsbiologe) der postulierte, das natürlicher Evolutionsfortschritt nur bei unangepassten Arten wirkt. Jetzt aufs gehirn bezogen heisst das das es keinen (unendlich) langen Prozess der Optimierung gibt. Arten die sich angepasst aka auf ihre Nische spezialisiert haben sterben bei der nächsten größeren Umweltveränderung aus. oder "was Hänschen nicht lernt, lernt Hans nimmermehr" Aber das ist genau der Amateurdarwinismus, dem ich keinen Vorschub leisten möchte.
S. R. schrieb: > Bestimmte Teilbereiche der Schaltungsentwicklung, z.B. > Routing der Platine, sind für aktuelle ML-Algorithmen sehr gut geeignet. > Ich würde mich wundern, wenn das in der Halbleiterfertigung nicht > bekannt oder angewendet würde. Hier etwas Material von Mentor: https://www.mentor.com/products/ic_nanometer_design/multimedia/dac-2018-production-ready-machine-learning-for-eda-webinar https://www.mentor.com/products/ic_nanometer_design/solido-solutions/ https://www.mentor.com/products/ic_nanometer_design/resources/overview/improve-lithographic-hotspot-detection-with-machine-learning-00789769-e84e-4805-9bc0-1626a64e1afd/?cmpid=11722
Christoph Z. schrieb: > S. R. schrieb: >> Bestimmte Teilbereiche der Schaltungsentwicklung, z.B. >> Routing der Platine, sind für aktuelle ML-Algorithmen sehr gut geeignet. >> Ich würde mich wundern, wenn das in der Halbleiterfertigung nicht >> bekannt oder angewendet würde. Zumindest bei dem Platzieren von virtuellen Zellen im Semi-Custom-Entwurf kann ich bestätigen, dass dort massivst solche Verfahren angewendet werden, vor allem, was das Verschieben von FFs und der Zellenabstände angeht, um Leiterbahnlängen und damit Laufzeiten zu optmieren.
C. A. Rotwang schrieb: > Aber das ist genau der Amateurdarwinismus, dem ich keinen Vorschub > leisten möchte. Das kann man aber schon auch generell sehen. Ein durch Evolution entstandenes System, bei dem nur nach wenigen Kriterien selektiert wurde ist möglicherweise sehr anfällig gegenüber Änderungen von bisher unbeachteten Kriterien. Und ausserdem kann man vermutlich sagen, dass ein System durch Evolution nur soweit optimiert werden kann wie es durch Selektion einen "Evolutionsdruck" gibt.
Gustl B. schrieb: > Und ausserdem kann man vermutlich sagen, dass ein System > durch Evolution nur soweit optimiert werden kann wie es > durch Selektion einen "Evolutionsdruck" gibt. Womit wir wieder beim Stichwort "lokale Maxima" wären, oder wie ich das ausgedrückt habe, "angemessene Kompromisse". Wobei man bei künstlicher Evolution den Vorteil hat, dass man mehrere Varianten parallel durchspielen kann. In der Realität geht das nur begrenzt.
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.