Netwerk in Excel07 (VBA) einbinden.

Haben Sie Fragen zur Bedienung bestimmter Features von MemBrain? Sind Sie nicht sicher, welches Häkchen was bewirkt? Möchten Sie wissen, ob eine bestimmte Funktionalität in MemBrain vorhanden ist oder nicht?

Dann stellen Sie Ihre Fragen hier!
Post Reply
nando42
Posts: 4
Joined: Sat 18. Dec 2010, 16:33

Netwerk in Excel07 (VBA) einbinden.

Post by nando42 »

Hallo,

wer kann mir helfen?. Bin absolut neu im Umbang Neuronaler - Netze.
Eine selbst gestellte Aufgabe habe ich trotz allem schon mit Erfolg gelöst. Da die Einbindung der Beispiel .dll, wie auch hier im Forum beschrieben nicht funktioniert, bitte ich um Einstiegshilfe.
Meine Netzwerk-Aufgabe habe ich diesem Eintrag angehängt.
Wer kann mir diese Datei so in Excel einbinden, dass ich die Ein- und Ausgabewerte in Excel 07 bearbeiten kann.

Bedanke mich schon im Voraus

Nando
Attachments
Bewertung.zip
(3.6 KiB) Downloaded 832 times
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Netwerk in Excel07 (VBA) einbinden.

Post by Admin »

Hallo Nando,

ich habe den Download auf der Homepage nun erweitert: Die zip-.Datei, die unter dem Downloadlink 'VBA Dll Beispiel' zur Verfügung steht, enthält nun zwei Excel-Dateien, die entsprechend benamt sind: Eine für Excel 2000 und eine für Excel 2007.

Bitte die Hinweise auf dem ersten Tabellenblatt der 2007-Version noch einmal GENAU lesen, hier sind ein paar wenige Änderungen gegenüber der 2000-Version eingefügt, die auch das Arbeiten auf einem 64 Bit Windows betreffen.

Bringt Dich das weiter?

Viele Grüße
Thomas Jetter
nando42
Posts: 4
Joined: Sat 18. Dec 2010, 16:33

Re: Netwerk in Excel07 (VBA) einbinden.

Post by nando42 »

Hallo Thomas,

danke für die Hilfe, der VBA-Code funktioniert tadelos in Excel 07.
Ich habe nun die Daten (Matrize) in meiner Excel-Tabelle, siehe Anlage.
Beim Vergleich ...Eingaben in MemBrain und Excel erhalte ich aber unterschiedliche Ergebnisse.
Die Kurven INPUT OUTPUT habe ich für jedes INPUT-Neuron dargestellt.
Um die Überprüfung zu vereinfachen habe ich die Eingaben in den 4 INPUT-Neuronen immer gleich gelassen. a)alle 0;
b)alle 1;
c)alle 3;
d)alle 5

Leider stelle ich fest, dass die nun in Excel errechneten Werte ungleich der Werte von MemBrain sind.

Kann mir da einer helfen...
Gruß
Nando
Attachments
Umsetzung_Netzwerk_Daten_Excel.zip
(16.97 KiB) Downloaded 833 times
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Netwerk in Excel07 (VBA) einbinden.

Post by Admin »

Hallo Nando,

ich habe nicht genau nachvollzogen, was Du in Deinem Excel-Sheet unter 'Nutzung der Matrizen-Daten' rechnest.
Allerdings glaube ich, dass Du die Matrizen-Daten falsch interpretierst. Lies bitte noch einmal genau, was das Excel-VBA Programm tut:
Es fährt für jedes Input-Neuron seinen gesamten Eingabebereich ab (bei Deinem Netz also 0 .. 5). Dabei legt es für alle anderen Neuronen den MITTELWERT ihrer Eingabebereiche an.
Also 2.5.

Wenn Du das in MemBrain tust, dann kommt auch genau das selbe Ergebnis heraus: Setze das Eingangsneuron 'Verh' auf 0 undf alle anderen auf 2.5. Führe dann einen 'Think Step' aus.
Der Ausgang geht auf 451.36... Das ist genau das selbe, was in der durch das VBA Programm berechneten Matrize steht (in Deinem Sheet Zelle C4).

Klärt das Dein Problem?

Viele Grüße
Thomas Jetter
nando42
Posts: 4
Joined: Sat 18. Dec 2010, 16:33

Re: Netwerk in Excel07 (VBA) einbinden.

Post by nando42 »

Hallo Thomas,

erst einmal Danke für die schnelle Hilfe. Und die verständliche Erklärung.
Ich habe nun die durch Deinen VBA-Code erstellten Datensätze verstaden. Sind aber so für mich nicht brauchbar.
Für mein Problem...ähnlich des jetzt erstellten Netzes, aber mit ca. 50 Eingabe-Neuronen.....benötige ich eine
Multiple-Choice-Methode. Ich möchte in den einzelnen Eingabe-Neuronen nur 1 ,2 , 3, 4 eingeben (ausreichend, befr. gut, sehr gut), d.h. nicht 1,25 oder ähnlich.
Wenn ich z.B. in dem nun erstellten Netz für Verh=1 Lern=3 Tea=4 und Zugeh=2 eingebe, erhalte ich den Wert für Gehalt 3119
bei Verh=4 Lern=2 Tea=2 und Zugeh=3 eingebe, erhalte ich den Wert für Gehalt 950
Wie kann man die Zusammenhänge aus dem Netz erhalten um jede beliebige Kombination im Excel eingeben zu können.

Gruß
Nando
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Netwerk in Excel07 (VBA) einbinden.

Post by Admin »

nando42 wrote:ch habe nun die durch Deinen VBA-Code erstellten Datensätze verstaden. Sind aber so für mich nicht brauchbar.
Der Code ist als Beispiel zu verstehen, das u.U. für den Einen oder Anderen auch direkt anwendbar sein könnte, mehr aber nicht.
Der Code soll lediglich demonstrieren, wie man die MemBrain Dll unter Excel VBA ansprechen kann. Was man damit macht bzw. wie man die dll einsetzt, ist natürlich jedem selbst überlassen.

Die dll bietet (neben vielen weiteren) Schnittstellen, um beliebige Eingabewerte an die Eingangsneuronen des Netzes anzulegen, das Netz einen Berechnungsschritt durchführen zu lassen und um die Aktivitäten der Ausgangsneuronen zurückzulesen. Welche Werte Du da anlegst und woher die kommen (z.B. aus Excel Tabellenzellen oder durch Benutzereingabe oder durch hart codierte Werte im VBA Code), das kannst Du selbst völlig frei bestimmen.

Versuche doch einfach mal zu verstehen, wie der Beispielcode arbeitet um seine Funktionalität zu erfüllen, dann wirst Du auch erkennen, welche dll Funktionen dazu wie verwendet werden.
Kannst Du denn ein wenig VBA programmieren? Das wird natürlich nötig sein...

Ansonsten kannst Du aber natürlich auch völlig ohne Excel und die dll arbeiten: Wenn Du nur daran interessiert bist, die Ausgabewerte auf eine feste Menge Eingabetupel zu erhalten, dann kannst Du diese ja in eine Lesson einfügen (z.B. über ein CSV-File aus Excel heraus exportiert) und das Netz zu jedem Eingangsdatensatz den Ausgang berechnen lassen. Das Ganze zeichnest Du in einer weiteren Lesson auf und exportierst diese wieder in CSV.
Am besten macht man das über ein kleines Script wie es z.B. in der MemBrain Hilfe im Abschnitt 'Validating Your Net' beschrieben wird.

Viele Grüße und viel Erfolg!
Thomas Jetter
nando42
Posts: 4
Joined: Sat 18. Dec 2010, 16:33

Re: Netwerk in Excel07 (VBA) einbinden.

Post by nando42 »

Hallo Thomas,

du hast das schon richtig erkannt...Ich bin Masch.-bau.-Ing. und kein Informatiker.....habe aber die Aufgabe
Anfang des nächsten Jahres Kollegen, die ein Apple iPad besitzen mit einem Programm auszustatten, das
komplexe Aufgaben, d.h. Ein- und Ausgaben ähnlicher Art wie vorgestellt (Neuronale-Vernetzung) löst.
Ich werde mir hier aber für den VBA-Code IT-Hilfe organisieren.
Für mich bleibt momentan nur die Frage:
Kann man mit dem Apple iPad genau wie hier mit Windows XP und Excel07 die Ein-und Ausgaben im selbst erstellten Neuronalen-Netz realisieren ?
Gibt es für das iPad auch eine dll ?
Kann ein iPad VBA-Code verarbeiten?

Danke im Voraus.

Gruß
Nando
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Netwerk in Excel07 (VBA) einbinden.

Post by Admin »

nando42 wrote:Kann man mit dem Apple iPad genau wie hier mit Windows XP und Excel07 die Ein-und Ausgaben im selbst erstellten Neuronalen-Netz realisieren ?
Gibt es für das iPad auch eine dll ?
Kann ein iPad VBA-Code verarbeiten?
Oh je, das wird nix, da muss ich Dich enttäuschen:
Das iPad versteht weder VBA, noch kennt es dlls. Eine dll ist etwas Windows-spezifisches, VBA ist 'Visual Basic for Applications' von Microsoft und damit natürlich ebenfalls Apple-feindlich.
Zu allem Überfluss kann man auf einem iPad noch nicht einmal in C oder C++ entwickeln, sondern muss die Apple-Programmiersprache 'Objective C' nutzen.
Diese unterscheidet sich erheblich von C bzw. C++.

Damit kommst Du bzgl. iPad mit MemBrain nicht weiter, ich fürchte, das ist eine Sackgasse. Ich sag das selbst nicht gern, schließlich möchte ich ja, das MemBrain verwendet wird, aber an der Grenze zur Apple-Welt ist Schluss mit der Verwendbarkeit...

Sorry, hätte Dir gerne etwas mehr Mut gemacht...

Viele Grüße
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Netwerk in Excel07 (VBA) einbinden.

Post by Admin »

Ein kleiner Nachtrag noch:

Für iPod/iPhone/iPad gilt generell, dass Du nicht einfach so Software auf diese Geräte aufspielen kannst.
Zunächst einmal musst Du Dich als Apple Developer registrieren. Dann benötigst Du ein MacBook o.ä. zur eigentlichen Softwareentwicklung.
Wenn Du Deine Software dann auf einem echten Gerät testen willst, musst Du für einen bestimmten Preis (ich glaube, es sind 99$) eine Sonderlizenz kaufen. Mit dieser Sonderlizenz kannst Du dann einzelne Apple-Geräte für das Testen freischalten (registrieren). Dann kannst Du auf diese Geräte Deine Software laden und damit testen.
Wenn Du die Software auf ein Apple-Gerät laden willst, das nicht unter Deine Sonderlizenz fällt, oder die Software an Dritte weiterverteilen willst, dann musst Du das über den Apple-Store machen. Dazu musst Du Deine Software von Apple freigeben lassen.
Benutzer können dann über iTunes Deine Software auf ihre Geräte laden.

Das ist also ein einigermaßen steiniger Weg. Ich will Dich nicht entmutigen, ich denke aber, es ist wichtig, dass Du über diese Dinge Bescheid weißt.

Viele Grüße
Thomas Jetter
Post Reply