Hallo, ich muss füf meine seminararbeit ein netz programmieren, welches eine zahlenfolge erkennt und auch fortführen kann... Jetzt weiß ich bloß nicht wie ich das Ganze angehen soll. Kann mir da jemand helfen? Vielen Dank im Vorau Leo
:
Verschoben durch Admin
Aufgabe lesen und verstehen, Lösungsmöglichkeiten überlegen, beste Möglichkeit aussuchen und diese dann schrittweise umsetzen. Literatur habe ich dazu nicht, aber irgendein Wirtschaftler hat sicher schon was dazu geschrieben.
Leopold N. schrieb: > Jetzt weiß ich bloß nicht wie ich das Ganze angehen soll. Zunächst durch eine Beschränkung des Wertebereichs. z.B. Zahlen bis 10. Jede Leitung signalisiert, ob die Zahl vorkommt (1) oder nicht (0). Dann eine Matrix aus Gleitpunktzahlen mit 10 Spalten als Eingängen und 10 Zeilen als Ausgängen und eine Matrixmultiplikation des Eingangswertes um einen Ausgangsvektor zu erhalten, in dem dann der grösste Wert sagt, welche Zahl am wahrscheinlichsten folgt. Diese Matrix muss mit passenden Gleitpunktzahlen befüllt werden, in dem sie trainiert wird, also Eingänge eine Zahlenfolge, den Ausgang der Folgezahl festlegen und reinmultiplizieren, und das mit 1000 beispielhaften Zahlenfolgen mit ihren Ergebnissen. Danach kann man die trainierte Matrix befragen. Das wird so übrigens nicht erfolgreich. Man braucht noch mehrere Spalten mit Steigung (Abstand der Eingangswerte), Steigung von Steigung (arithmetische oder geometrische Reihe) und ein paar Eigenschaften nach denen Zahlenreihen aufgebaut sein können, beispielsweise abwechselnde Abstände. Diese Kennwerte muss man vorher normal algorithmisch analysieren.
Nein, schon gar nicht in Java, der Lisp-back propagation Code ist wohl vor 30 Jahren mit dem Rechner verschrottet worden. http://cs.uni-muenster.de/Professoren/Lippe/lehre/skripte/wwwnnscript/prin.html
https://class.coursera.org/ml-005/lecture/preview In den Programmieraufgaben des Kurses wurden auch neuronale Netze in Octave umgesetzt genauer gesagt das Erkennen handschriftlicher Ziffern @Schon gar nicht in Java Vor allem würde ich nie auf die Idee kommen in Java auch nur ansatzweise komplexere Formeln etc. umzusetzen, solange es da noch nicht mal Operatorüberladung gibt
:
Bearbeitet durch User
@Leopold N. (leopold_n) Bist Du des Englischen mächtig? Dann mal los: https://www.google.de/search?q=neuronal+network+java&oq=neuronal+network+java&aqs=chrome..69i57j0l3.15617j0j4&client=tablet-android-asus&sourceid=chrome-mobile&espv=1&ie=UTF-8#q=neural+network+java
Was ist das für ein Seminar? Oder ist das wieder so eine Sache, bei der man sich auf eine Lösungsmöglichkeit versteift, weil sie so wahsinnig toll und technisch klingt? Die meisten Zeahlenfolgen, die in Rätsel auftauchen sind von ganz simpler Natur. Mit der Analyse der Differenzen bzw. der Differenzen der Differenzen sind die meisten zu klären. (Ganz abgesehen davon, dass es für die meisten Folgen sowieso unendlich viele Fortführungsmöglichkeiten gibt) Auch interessant https://www.youtube.com/watch?v=vKA4w2O61Xo
:
Bearbeitet durch User
Das ist eine objektorientierte Sprache, folglich werden ein paar Klassen anzulegen sein. Wie wäre es mit einer Klasse für ein Neuron? Anschließend werden viele dieser Neuronen miteinander assoziiert (ein Neuron hat bspw. eine Liste von anderen Neuronen, die Eingänge darstellen und solche, die Ausgänge darstellen) und zwischendrin kommt noch etwas mit Mustern in der objektorientierten Entwicklung. Es genügt bspw. nicht, einfache Listen zu führen, da auch die Richtung und Gewichtung der jeweiligen Verbindung zwischen zwei Neuronen entscheidend ist. Es ist auch kein Grund zur Traurigkeit, nicht jeder ist für die Bedienung und schon gar nicht Steuerung von Datenverarbeitungsanlagen gemacht. Es gibt ja auch noch immer Floristen, Einzelhändler und Bankberater.
> Es gibt ja auch noch immer Floristen, Einzelhändler und
Bankberater.
Vielleicht Berufe, ueber die jemand der zu faul ist, die
Standardimplementierungen von kNN nachzulesen und stattdessen was von
Neuron als Objekt faselt, nachdenken sollte.
Boris Ohnsorg schrieb: > Das ist eine objektorientierte Sprache, folglich werden ein paar Klassen > anzulegen sein. Wie wäre es mit einer Klasse für ein Neuron? > Anschließend werden viele dieser Neuronen miteinander assoziiert (ein > Neuron hat bspw. eine Liste von anderen Neuronen, die Eingänge > darstellen und solche, die Ausgänge darstellen) und zwischendrin kommt > noch etwas mit Mustern in der objektorientierten Entwicklung. Es genügt > bspw. nicht, einfache Listen zu führen, da auch die Richtung und > Gewichtung der jeweiligen Verbindung zwischen zwei Neuronen entscheidend > ist. Äh. Das ist Quatsch, Ein Neuronales Netz ist nichts anderes als Matrixmultiplikation. Nur mit haufenweise Spalten und haufenweise Zeilen in der Matrix. Mit deinem Ansatz kommst du nie auf Speed. Allerdings frage ich mich immer noch, woher der Ansatz kommt, da ein neuronales Netz einzusetzen.
:
Bearbeitet durch User
Karl Heinz schrieb: > Mit deinem Ansatz kommst du nie auf Speed. Danach wurde bisher noch nicht gefragt.
Ulrich F. schrieb: > Karl Heinz schrieb: >> Mit deinem Ansatz kommst du nie auf Speed. > Danach wurde bisher noch nicht gefragt. Richtig. Man muss aber auch nicht mit Gewalt und voller Absicht dem Prozessor Prügel zwischen die Beine werfen.
Leopold N. schrieb: > füf meine seminararbeit Leopold N. schrieb: > Hättest du mal nen beispielcode für mich wie du dir das vorstellst? Super, kannst du nicht einfach ehrlich schreiben: "Ich bin zu faul meine Arbeit selbst zu machen, ist hier jemand, der sie für mich macht." Dein Berufsziel ist: [ ] Berater [ ] Chef [ ] Verteidigungsminister
Hier gibt es eine umfangreiche Freeware Library für neuronale Netze, unter anderem wird auch Java unterstützt: http://leenissen.dk/fann/wp/
Karl Heinz schrieb: > Man muss aber auch nicht mit Gewalt und voller Absicht dem Prozessor > Prügel zwischen die Beine werfen. Wegen Java? So schlecht ist da die Performance beim Rechnen gar nicht. Wir haben hier den Levensthein Algorithmus produktiv für unscharfes Suchen im Einsatz. Als ich den implementiert hatte, habe ich es im Vergleich in C implementiert. Der Code ist quasi identisch. Dann die Überraschung: Java war schneller! Der Fehler war schnell gefunden, der C Code war mit Debug Info und damit ohne Optimierung. Aber selbst mit Optimierung war der Algorithmus nur 50% schneller in C als in java und das war damals java 1.4. und der damalige MS-C Compiler, Plattform Windows 32Bit.
Udo Schmitt schrieb: > Karl Heinz schrieb: >> Man muss aber auch nicht mit Gewalt und voller Absicht dem Prozessor >> Prügel zwischen die Beine werfen. > > Wegen Java? Nein. Wegen 'neuronales Netz mit Neuronen Objekten und deren Verknüpfungen' implementieren. > Aber selbst mit Optimierung war der Algorithmus nur 50% schneller in C > als in java und das war damals java 1.4. und der damalige MS-C Compiler, > Plattform Windows 32Bit. Ja. Die JiT Compiler sind schon ziemlich gut geworden. Ich mag Java trotzdem nicht. Eine Sprache mit Garbage Collection ist mir suspekt :-)
Udo Schmitt schrieb: > So schlecht ist da die Performance beim Rechnen gar nicht. Wir haben > hier den Levensthein Algorithmus produktiv für unscharfes Suchen im > Einsatz. Der Levensthein? Der ist super! Benutz ich auch gerne.
Karl Heinz schrieb: > Ich mag Java trotzdem nicht. Eine Sprache mit Garbage Collection ist mir > suspekt :-) Wars mir am Anfang auch. Inzwischen recht problemlos sogar als langlaufende (IMB MQ) Serverprozesse im -sagen wir mal- empfindlichen Bereich. Es geht um Finanztransaktionen bei Banken und Versicherungen . Wenn da was steht werden die Bankster ganz schnell sehr nervös :-)
Egal. Wie auch immer Mir fehlt immer noch die Rückmeldung vom Leopold. Ausser "Ich will neuronales Netz" und "Hat wer Code für mich" kam da noch nicht viel.
:
Bearbeitet durch User
Man kann die armen Schweine mit einem 'h' zwischen 's' und 't' in ihrem Namen nur bedauern. Es wird ihrer gedacht, aber kein Mensch findet sie bei Wikipedia. :-)
Klaus schrieb: > Es wird ihrer gedacht, aber kein Mensch findet sie > bei Wikipedia. :-) Zum Glück hat auch Google eine unscharfe Suche und korrigiert den Namen. Sehr wahrscheinlich mit ebendem Algorithmus. Asche auf mein Haupt, war natürlich falsch geschrieben. https://de.wikipedia.org/wiki/Levenshtein-Distanz
Udo Schmitt schrieb: > Klaus schrieb: > ... > Zum Glück hat auch Google eine unscharfe Suche und korrigiert den Namen. > Sehr wahrscheinlich mit ebendem Algorithmus. Das mag so sein. :-) Ich kann es nur nicht beurteilen, weil ich google nicht benutze. > Asche auf mein Haupt. Na, na. So schlimm ist das auch nicht. :-)
Karl Heinz schrieb: > Udo Schmitt schrieb: > >> So schlecht ist da die Performance beim Rechnen gar nicht. Wir haben >> hier den Levensthein Algorithmus produktiv für unscharfes Suchen im >> Einsatz. > > Der Levensthein? Der ist super! > Benutz ich auch gerne. Na dann wird Euch das hier sicherlich begeistern ;-) http://www.electronicproducts.com/Test_and_Measurement/Test_and_Measurement_Software/Computer_scientists_admit_40_year_old_algorithm_is_perfect_cannot_be_improved_upon.aspx Grüße Andreas
Karl Heinz schrieb: > Allerdings frage ich mich immer noch, woher der Ansatz kommt, da ein > neuronales Netz einzusetzen. Ach, schätze mal das wird im Kontext des Seminars halt irgendwie Sinn machen. PS: Derweil in Texas: https://www.youtube.com/watch?v=qv6UVOQ0F44
Besucher schrieb: > Karl Heinz schrieb: >> Allerdings frage ich mich immer noch, woher der Ansatz kommt, da ein >> neuronales Netz einzusetzen. > > Ach, schätze mal das wird im Kontext des Seminars halt irgendwie Sinn > machen. Bin ich mir gar nicht mal so sicher. Es ist hier im Forum gar nicht mal so selten, dass sich Anfänger komplett übernehmen. Da ist dann oft das Wollen größer als das Können, viel größer. Die orientieren sich bei der Wahl der selbst gewählten Aufgabenstellung an gut klingenden Buzzwords und nicht an dem was sie noch stemmen können.
:
Bearbeitet durch User
Neuronale Netze beinhalten ausser in akademischen Arbeiten jeweils die Aussage : Ich verwende ein selbstlernendes System, weil mich weder die Aufgabe, noch die Loesung interessiert. Das uebliche Resultat ist dann : Die Loesung ist unbefriedigend, wir haetten nochmals ein Jahr reinbuttern sollen. Oder die Rechenleistung hat nicht gereicht. Dieses Ziel erreicht man schneller, imdem man's mit einem Interpreter, zB Basic, Javascript, oder sonstwas schreibt. Dann reicht man noch eine Studie, wie man alle Rechner der Schule zu einem Cluster zusammenschalten sollte nach, und das war's dann.
Moin, Um mit Neuronalen Netzen anzufangen kann mal hier spielen: http://www.ra.cs.uni-tuebingen.de/SNNS/ Mittlerweile gibt's da auch eine Java Implementierung. Jedenfalls kann man da recht komfortabel Netze bauen und Lernen lassen. -- SJ
Leopold N. schrieb: > ich muss füf meine seminararbeit ein netz programmieren, welches eine > zahlenfolge erkennt und auch fortführen kann... Typischer Fall von: a.) Ich hab' beim Seminar immer blau gemacht und muss jetzt plötzlich und unerwarteterweise was tun... b.) Ich war zwar da, bin aber zu faul, das jetzt zu machen... c.) Ich war zwar da, hab' aber nix kapiert, weil das eh überflüssig ist, denn ich finde sowieso immer eine paar Doofe, die das für mich machen.. Sollte ich diese Dumpfbacken wider Erwarten mal nicht finden, so lass ich mir von Papa halt 'nen Ghostwriter kaufen... d.) Sind neuronale Netze nicht genau dafür da, mir eben diese Arbeit mal irgendwann abzunehmen ???
Dussel schrieb: > aber irgendein Wirtschaftler hat sicher schon was > dazu geschrieben. das wären die letzten, die ich für sowas konsultieren würde ;-)
:
Bearbeitet durch User
Boris Ohnsorg schrieb: > Das ist eine objektorientierte Sprache, folglich werden ein paar Klassen > anzulegen sein. Die Übung hatten ein Kommilitone und ich mal gemacht (auch in Java). Er einen gut designten objektorientierten Entwurf und ich einen Float-Array-basierten Ansatz. An Details Kann ich mich nicht mehr erinnern. Ich glaube die Größe war so einstellige Anzahl an hidden layer und niedrige zweistellige Anzahl Neuronen pro Layer. Der Unterschied beim Training lag (zweistelligen) vielfachen Bereich.
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.