mikrocontroller.net

Forum: FPGA, VHDL & Co. Hardware durch Vererbung - was ist möglich?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gustl B. (-gb-)


Bewertung
1 lesenswert
nicht lesenswert
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?

von Jürgen S. (engineer) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
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
von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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
von Jürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von A-Freak (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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"

von C. A. Rotwang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
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!

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von MaWin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von letallec (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von letallec (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jürgen S. (engineer) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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 :-)

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
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...

von Markus F. (mfro)


Bewertung
0 lesenswert
nicht lesenswert
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.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
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? :-)

von Thomas U. (thomasu)


Bewertung
0 lesenswert
nicht lesenswert
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.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
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
von Martin S. (strubi)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Markus F. (mfro)


Bewertung
0 lesenswert
nicht lesenswert
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.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
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. :-)

von Markus F. (mfro)


Bewertung
0 lesenswert
nicht lesenswert
S. R. schrieb:
> Ich dachte nicht, dass man Einzeller als "eine Art" betrachtet...?

nimm' irgendeinen davon. Paßt trotzdem.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
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.

von C. A. Rotwang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
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.

von C. A. Rotwang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Christoph Z. (christophz)


Bewertung
0 lesenswert
nicht lesenswert
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

von Weltbeser FPGA-Pongo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
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.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.