Coders Chit-Chat

03/09/2017 19:01 Syc#736
Wenn es kein Problem ist, dass du die Seite im Hintergrund offen hast, dann würde sich das leicht mit einem Userscript lösen lassen.
03/09/2017 20:39 Bobo#737
Quote:
Originally Posted by Syc View Post
Wenn es kein Problem ist, dass du die Seite im Hintergrund offen hast, dann würde sich das leicht mit einem Userscript lösen lassen.
Nur ist das Problem, dass ich keine Ahnung habe von Coding oder wie auch immer man das nennt. Wäre sowas einfach zu machen? Das die Seite offen ist, ist kein Problem. Kann ich da auch währenddessen was anderes machen? zB. Games zocken und das Script schreibt das dann jede 5min in die Seite, wenn die halt offen ist?
03/09/2017 22:55 Devsome#738
Quote:
Originally Posted by Bobo View Post
Nur ist das Problem, dass ich keine Ahnung habe von Coding oder wie auch immer man das nennt. Wäre sowas einfach zu machen? Das die Seite offen ist, ist kein Problem. Kann ich da auch währenddessen was anderes machen? zB. Games zocken und das Script schreibt das dann jede 5min in die Seite, wenn die halt offen ist?
Ja das wäre kein Thema nebenbei was anderes zu machen.
Denke mit einem Userscript wäre es am einfachsten
03/10/2017 14:37 Bobo#739
Und wie schreibe ich sowas?
Habe zwar [Only registered and activated users can see links. Click Here To Register...] gefunden, aber kenne mich da 0 aus. Kann mir jemand von euch sowas schicken? Ginge nur um einen Satz.
03/10/2017 14:47 Devsome#740
Quote:
Originally Posted by Bobo View Post
Und wie schreibe ich sowas?
Habe zwar [Only registered and activated users can see links. Click Here To Register...] gefunden, aber kenne mich da 0 aus. Kann mir jemand von euch sowas schicken? Ginge nur um einen Satz.
Tampermonkey für Chrome
Greasemonkey für Firefox.

Dafür müsste man dann Javascript können. In dem jeweiligen Browser Plugin kann man dann neue Scripte hinzufügen, da wird man gut geleitet was man wie machen sollte damit das Script auf bestimmten Seiten funktioniert.

Bei weiteren Fragen, du hast mich ja in Steam.
03/21/2017 22:15 D3luxe.#741
Manchmal frage ich mich, wieso ich Java überhaupt benutze.

Ziel: AES 256 bit Ver-/Entschlüsselung.
Nachdem Encoding Schwierigkeiten überwunden sind: 'InvalidKeyException: Illegal Key Size'.
Stackoverflow hilft, wie so oft: [Only registered and activated users can see links. Click Here To Register...]

Quote:
Originally Posted by README
Due to import control restrictions of some countries, the version of
the JCE policy files that are bundled in the Java Runtime Environment,
or JRE(TM), 8 environment allow "strong" but limited cryptography to be
used.
Es gibt also tatsächlich Länder, in denen zu starke Encryption verboten ist? WTF?
Jetzt müsste jeder, der das Programm benutzen will, diesen Patch durchführen.

Am Ende musste ich BouncyCastle (3rd Party Library) nehmen. [/rant]
03/21/2017 23:45 Der-Eddy#742
Quote:
Originally Posted by D3luxe. View Post
Es gibt also tatsächlich Länder, in denen zu starke Encryption verboten ist? WTF?
Jetzt müsste jeder, der das Programm benutzen will, diesen Patch durchführen.
Ja, einige Regierungen versuchen tatsächlich Verschlüsselungen zu verbieten (LOL!)
Gibt aber auch genug anderen Schwachsinn den manche Landesregierung verzapft, wenn du mal Zeit hast: [Only registered and activated users can see links. Click Here To Register...]

Interessant finde ich das das Java ein Opt-Out anbietet anstelle eine eigene Version für diese Länder (Opt-In)
03/22/2017 09:13 qqdev#743
Hi
03/22/2017 09:33 Devsome#744
Quote:
Originally Posted by qqdev View Post
Hi
10€ für ein HWID bypass ? Denke man kann locker mehr nehmen
03/22/2017 10:24 qqdev#745
Quote:
Originally Posted by Devsome View Post
10€ für ein HWID bypass ? Denke man kann locker mehr nehmen
Nehme ich auch. Das ist für kleine Sachen.

Gruß
03/22/2017 10:37 Devsome#746
Quote:
Originally Posted by qqdev View Post
Nehme ich auch. Das ist für kleine Sachen.

Gruß
Du könntest dein Gruß auch in die Signatur packen ;D Oder willst du nicht jeden grüßen ?
03/22/2017 11:36 qqdev#747
Genau. Manche Frechdachse haben keinen Gruß verdient ;D
03/22/2017 11:48 Devsome#748
Okay merk ich mir @[Only registered and activated users can see links. Click Here To Register...]

// [Only registered and activated users can see links. Click Here To Register...]
Normal kostet es, daher einfach mal mit nehmen
03/28/2017 15:21 EinfachSö#749
Kennt sich jemand in AI-Entwicklung aus?

Ich arbeite mich gerade etwas in ANN und GA ein. Mein Ziel ist es eine AI für TicTacToe zu kreieren. Ich habe also eine Population von Individuen (ANNs), die pro Generation einmal jeder gegen jeden spielt - jeder darf mal anfangen. Leider konvergiert meine Fitnessfunktion sehr rapide auf einen fixen Wert.

Als Fitnessfunktion habe ich schon einiges ausprobiert, mit dem Ziel, dass die Fitness eines ANN nicht von der Spielweise eines anderen ANN abhängt. Messe ich die Fitness zum Beispiel an der Anzahl der gespielten Züge und der schwächere Gegner versagt schon beim ersten Zug, so wird das ja auch auf den stärkeren Spieler bezogen.
Vielversprechend klang für mich der Ansatz:
Code:
fitness = (gamesPlayed-badMoves)/gamesPlayed
Wenn nun der Gegner einen verbotenen Zug macht (bereits besetztes Feld), dann ist das nur dessen Problem. Allerdings konvergiert die Fitness auch hierbei ziemlich schnell.

Interessant ist auch, dass die Fitness nicht unbedingt ins Positive konvergiert. Die minimale und maximale Fitness einer Population pendelt um diesen Fixpunkt.
In der ersten Generation gilt meist maxFit != minFit und maxFit >endFit>minFit
Mit der Zeit überleben die stärkeren Individuen und es folgt:
maxFit == minFit == endFit.
Die maximale Fitness wird also kleiner.

Wie schaffe ich es, dass es eine Steigerung gibt? Mein Ziel ist es vorerst, dass die ANNs es schaffen nur legale Züge zu machen und danach erst darauf zu trainieren, welche Züge besser sind. Siege werden zwar belohnt aber Niederlagen nicht bestraft (Es gab noch keinen einzigen Sieg in 100 * 1000 Generationen * 99*99 Spielen!)

Für das crossover nutze ich entweder 'tournament Selection' oder 'Roulette Selection'. Für jedes Bit des Genoms wähle ich zufällig zwischen Vater und Mutter aus (Wahrscheinlichkeit ist basierend auf der Fitness).
1000-2000 Generationen und eine Population von 100 ANNs.
Mutationrate = 0.01-0.05
Ich habe auch schon probiert zufällig ein ANN durch ein komplett neues zu ersetzen um mehr Vielfalt zu erhalten.
03/28/2017 15:58 Shadow992#750
Quote:
Originally Posted by EinfachSö View Post
Kennt sich jemand in AI-Entwicklung aus?

Ich arbeite mich gerade etwas in ANN und GA ein. Mein Ziel ist es eine AI für TicTacToe zu kreieren. Ich habe also eine Population von Individuen (ANNs), die pro Generation einmal jeder gegen jeden spielt - jeder darf mal anfangen. Leider konvergiert meine Fitnessfunktion sehr rapide auf einen fixen Wert.

Als Fitnessfunktion habe ich schon einiges ausprobiert, mit dem Ziel, dass die Fitness eines ANN nicht von der Spielweise eines anderen ANN abhängt. Messe ich die Fitness zum Beispiel an der Anzahl der gespielten Züge und der schwächere Gegner versagt schon beim ersten Zug, so wird das ja auch auf den stärkeren Spieler bezogen.
Vielversprechend klang für mich der Ansatz:
Code:
fitness = (gamesPlayed-badMoves)/gamesPlayed
Wenn nun der Gegner einen verbotenen Zug macht (bereits besetztes Feld), dann ist das nur dessen Problem. Allerdings konvergiert die Fitness auch hierbei ziemlich schnell.

Interessant ist auch, dass die Fitness nicht unbedingt ins Positive konvergiert. Die minimale und maximale Fitness einer Population pendelt um diesen Fixpunkt.
In der ersten Generation gilt meist maxFit != minFit und maxFit >endFit>minFit
Mit der Zeit überleben die stärkeren Individuen und es folgt:
maxFit == minFit == endFit.
Die maximale Fitness wird also kleiner.

Wie schaffe ich es, dass es eine Steigerung gibt? Mein Ziel ist es vorerst, dass die ANNs es schaffen nur legale Züge zu machen und danach erst darauf zu trainieren, welche Züge besser sind. Siege werden zwar belohnt aber Niederlagen nicht bestraft (Es gab noch keinen einzigen Sieg in 100 * 1000 Generationen * 99*99 Spielen!)

Für das crossover nutze ich entweder 'tournament Selection' oder 'Roulette Selection'. Für jedes Bit des Genoms wähle ich zufällig zwischen Vater und Mutter aus (Wahrscheinlichkeit ist basierend auf der Fitness).
1000-2000 Generationen und eine Population von 100 ANNs.
Mutationrate = 0.01-0.05
Ich habe auch schon probiert zufällig ein ANN durch ein komplett neues zu ersetzen um mehr Vielfalt zu erhalten.
Oh wei wei...
Also dein Ansatz ist prinzipiell möglich, aber endet unweigerlich in einem Optimierungsprozess, der mehrere Billionen bis Billiarden Iterationen braucht, um ein ANN zu erzeugen, welches nur erlaubte Moves macht.

Die beste Herangehensweise für dieses Problem ist Reinforcement Learning, am einfachsten zu implementieren ist dabei Q-Learning. Aber auch das in seiner naiven Form wird dir nicht unbedingt die erhofften Ergebnisse bringen, siehe dazu auch meinen alten Thread: [Only registered and activated users can see links. Click Here To Register...]

Vielleicht solltest du auch einen extra Thread zu der Frage erstellen, dann geht das nicht so schnell unter und wir können uns intensiver unterhalten. :)

Es fehlen nämlich noch einige Informationen zu deinen ANNs und dem Rest.
Z.b. Welche Schichten benutzt du (Convolution? DropOut? Pooling? Fully Connected?), wie viele Layer benutzt du (1? 2? 30? 100?), wie sieht die konkrete Struktur aus (Squeeze-Layer? Inception-Layer?), wie sieht dein input/Output aus (mehrere Channel oder nur einer? Regression oder Klassifikation task?), was ist deine Aktivierungsfunktion (Tanh? Sigmoid? ReLU? ELU?), ...