Wettbewerbe


Wir wollten unsere monatlichen Tutorials mit einem kleinen Wettbewerb kombinieren. Das bedeutet, dass wir euch jeden Monat ein neues Thema vorstellen, Grundkenntnisse vermitteln und fortgeschrittene Techniken und Experimente offen lassen. So kann jeder mitmachen. Aber ein Wettbewerb ohne Preise wäre langweilig. Wer will schon an einem solchen Wettbewerb teilnehmen? Ich schätze, niemand. Bei den monatlichen Wettbewerben lernt ihr nicht nur neue KI-Techniken, Prinzipien und Ideen, sondern wir belohnen auch die besten Teilnehmer mit kleinen Preisen. Ich empfehle jedem die Teilnahme am Wettbewerb wärmstens. Die Gewinnchancen können höher sein, als ihr denkt! Selbst wenn du verlierst, hast du wenigstens etwas über KI gelernt. Das ist eine echte Win-Win-Situation für jeden KI-Fan!

Erweitert eure KI-Kenntnisse und nehmt an einem Tutorial gestütztem Wettbewerb teil! Wann sonst bekommt ihr die Möglichkeit, für das Erlernen intelligenter und ausgefallener Dinge bezahlt zu werden? Jeder Wettbewerb läuft vom ersten eines jeden Monats bis zum ersten des folgenden Monats!

Allgemeine Informationen

1. Ihr könnt Bibliotheken von Drittanbietern nutzen, solange die Hauptarbeit von euch selbst geleistet wird. Das bedeutet, dass es nicht ausreicht Tesseract herunterzuladen und ihn auf unseren Samples zu trainieren, um zu gewinnen. Je mehr ihr selbst macht, desto besser werden wir euer Programm bewerten. Aber bitte fangt nicht an, JPEG-Parsing oder ähnliches selbst zu implementieren. Wir sind nur an AI-Coding/Computer-Vision-Codes interessiert!

2.  Die folgenden Programmiersprachen sind explizit erlaubt: 

- Python
- C/C++
- C#
- Rust
- Go
- PHP
- AutoIt
- Javascript
- Java

Wenn deine bevorzugte Programmiersprache nicht Teil dieser Liste ist, fragt einfach nach, ob sie nicht doch erlaubt ist. Es besteht eine gewisse Chance, dass wir einfach vergessen haben die Sprache aufzulisten.

3. Wir empfehlen dringend, eine kleine Readme hinzuzufügen, die angibt, wie man das Programm benutzt und wie man den Code kompiliert.

4. Wir werten insbesondere die Ergebnisse aus, nicht den Code. Das heißt, ihr könnt den hässlichsten Code schreiben, den wir je gesehen haben oder den schönsten auf Erden. Wir werden uns nicht wirklich um den Code selbst kümmern, solange er die von euch angegebenen Ergebnisse liefert. Beachtet jedoch, dass lesbarer Code uns das Auffinden von Compiler-Fehlern oder ähnlichem erleichtert, daher sollten ihr zumindest lesbaren Code bereitstellen.

5. Da uns der Code selbst nicht wirklich interessiert, prüfen wir insbesondere nur, ob euer Code unsere privaten Testfälle erfolgreich besteht. Aber denkt daran, dass wir es verbieten, zu "stark vereinfachende" Codes/Bibliotheken von Drittanbietern zu verwenden. Das heißt, wenn ihr uns einen verschleierten Code schickt, schließen wir daraus, dass ihr etwas zu verbergen habt. Deshalb werden wir dieses Programm als "verdächtig" betrachten und es disqualifizieren.

6. Wir testen jedes Programm gegen unsere privaten Testfälle. Sieger ist die Person, deren Programm so viele Testfälle wie möglich besteht. Das bedeutet, dass ihr immer gewinnen könnt, auch wenn euer Programm nicht perfekt ist. Vielleicht ist euer Programm immer noch das Beste, also probiert es einfach aus!

7. Dein Code bleibt deiner. Wenn wir daran interessiert sind, euren Code zu verwenden, werden wir euch um Erlaubnis bitten, ihn zu verwenden/teilen/.... zu dürfen. Aber bis ihr die Verwendung erlaubt, bleibt es euer Code. Auch wenn euer Code bei euch bleibt, wollen wir nach dem Wettbewerb noch ein paar Ideen austauschen. Wenn ihr nicht einmal Teil dieses "Ideen sharings" sein wollt, lasst es uns bitte wissen.

Einige zusätzliche Anmerkungen:

Fühlt euch frei, um Hilfe oder Feedback zu bitten. Bei diesem Wettbewerb geht es vor allem darum, etwas zu lernen und den Wissenszuwachs mit anderen zu vergleichen. Wir helfen gerne weiter und geben Tipps. Wir werden jedoch keine "unfairen" Hinweise geben. Die Frage nach der "besten Methode, die Aufgabe zu lösen" ist also nutzlos und wird ignoriert oder mit einer kurzen Antwort beantwortet.
Aber Fragen wie: "Warum funktioniert mein XYZ schlechter als ABC?" oder "Ist ABC eine gute Idee mit XYZ zu kombinieren?" sind sehr willkommen und die Antworten werden auch mit öffentlich geteilt. Wir sind hier, um zu lernen, nicht zu arbeiten!

Ihr könnt auch gerne als Team teilnehmen. Wir ermutigen euch, miteinander zu kommunizieren, wer weiß, vielleicht findet ihr eine Idee oder Lösung, die eure gesamte Leistung steigert?
Die geheimen Testfälle werden bis zum Ende des Wettbewerbs geheim gehalten. Nachdem der Wettbewerb beendet ist, werden wir die geheimen Testfälle teilen, so dass ihr die Ergebnisse für euer Programm selbst validieren könnt.

Unsere konkrete Bewertung sieht wie folgt aus:

45% private Testfälle Score

45% Wie viel von dem Programm "selfmade" ist (je mehr selfmade, desto besser, weil der Hauptzweck ist, etwas zu lernen, nicht zu copy & pasten oder Bibliotheken von Drittanbietern zu verwenden)

10% Einige Punkte für die "Coolness der Idee"

Wir werden keine Kommentare, Dokumentationen, UI oder ähnliches auswerten. Aber wir freuen uns sehr, wenn ihr uns eine kleine Einführung in euren Code und eure Ideen gebt, damit wir die Prinzipien verstehen können.

Wenn noch Fragen offen sind, könnt ihr uns diese gerne und jederzeit per E-Mail stellen!

4-Gewint-KI! (Mai bis Juni)

Willkommen liebe Programmierer und AI-Fans,

 

hiermit stellen wir euch unser zweiter Wettbewerb vor. Wie bereits beschrieben, setzt sich der Wettkampf aus zwei Teilen zusammen. Der erste Teil besteht aus einem oder mehreren Tutorials, welche genau zum Thema des Wettbewerbs passen oder zumindest nützlich sein können. Dieses mal haben wir für euch ein umfangreicheres Tutorial vorbereitet, welches dir bei deinem Programm für den Wettbewerb helfen wird.

Unser heutiges Thema ist das Programmieren einer "Vier gewinnt"-KI

Vier gewinnt ist ein einfaches Spiel, wo du vier Spielsteine entweder Waagerecht, Senkrecht oder Diagonal haben musst um zu gewinnen. Wir stellen zum lernen den dazugehörigen C++ Code bereit. Das Ziel ist, eine KI zu programmieren die, die implementierte MinMaxKI mit einer Tiefe von 5 besiegt. Die maximale Zeit von 5 Sekunden pro Zug darf nicht überschritten werden. Wir werden nicht die genaue Zeit messen, aber schauen uns die Zeit an, die der Algorithmus braucht. Sollte der Algorithmus länger brauchen, so wird das bestraft. 

Wikipedia bietet tolle Beschreibung zu "Vier gewinnt" an, falls du das Spiel noch nicht kennst: //de.wikipedia.org/wiki/Vier_gewinnt

Du darfst jede beliebige Programmiersprache benutzen. Wir implementieren einen Weg um mit der binary ohne C++ Code zu kommunizieren. Dies geschieht beim Schreiben in der Datei "turn.txt". Die Datei "turn.txt" ist leer nachdem die binary den Inhalt gelesen hat. Die binary wird versuchen den nächsten Zug zu lesen, bis du etwas in die Datei geschrieben hast. Die Datei "current_board.txt" beinhaltet das aktuelle Spielfeld. Vergiss nicht die Datei zu schließen, wenn du die Datei fertig gelesen/geschrieben hast, sonst kann die binary die Datei weder lesen noch darin schreiben. Du bist immer Spieler 2! Spieler 1 beginnt immer!

Wir spielen auf einem Spielfeld mit einer Breite von 10 und einer Höher von 12.

Nützliches Tutorial, bestehend aus 6 Teile:
- TicTacToe KI

Details zum Wettbewerb:
- Beginn: Erster Mai
- Ende: Erster Juni um 23:59 Uhr
- Programm/Code einsenden an: m.rupprecht@gmx.net

- Preise
1. Platz: 50€ 
2. Platz: 20€ 

Downloads:

- C++11 Code + Windows-Binary
- Beispiel KI für Windows (AutoIt; Binary + Code)

Sponsor: Neural Ocean

Löse Captchas! (April bis Mai)

Willkommen liebe Coder und AI-Fans,

dies ist der allererste Wettbewerb, den wir starten. Wie bereits beschrieben, besteht der Wettbewerb aus zwei Teilen. Der erste Teil besteht aus ein paar Tutorials, die genau zum Thema des Wettbewerbs passen oder zumindest nützlich sein können. Dieses Mal haben wir drei Tutorials für euch vorbereitet, die euch helfen und euch durch euer erstes Programm führen können. In diesem Wettbewerb werden die Tutorials in Deutsch und Englisch als Text verfügbar sein. In zukünftigen Wettbewerben kann es auch Videos und "Programme" geben, um die Grundlagen zu vermitteln.

Das erste Thema, auf das wir uns konzentrieren wollen, ist: Cracking Captchas

Huh? Klingt nach einem interessanten und äußerst komplexen Thema, nicht wahr? Ihr fragt euch sicher, wie ihr jemals in der Lage sein solltet, etwas zu erschaffen, das ein Captcha knacken könnte? Nun, heute werdet ihr es lernen! Wir werden ein paar ganz einfache, aber dennoch "realistische" Captchas mit nicht so viel Code und Intelligenz lösen, wie ihr vielleicht denkt!

Wenn euch das Wort "Captcha" noch nichts sagt, kann man Cpatchas zusammenfassen als "ein Skript zur Unterscheidung von Bots und Menschen, indem man den Benutzer eine intelligente Aufgabe lösen lässt". Wenn euch das immer noch nichts sagt, schaut euch einfach diese Beispiele an:

Das sind alles Captchas, genauer gesagt Text-Captchas. Dieser Wettbewerb wird sich darauf konzentrieren, einfache Zahlen-Captchas zu lösen. Aber ihr werdet eine Menge Dinge lernen, die sich leicht auch auf das Lösen komplexer Captchas anwenden lassen.
Wir wählen handgeschriebene Captchas, die nur Zahlen mit einer Länge von mindestens drei bis maximum fünf Ziffern enthalten. Ein paar Beispiel-Captchas, die später auch als Beispiele im Download-Bereich zur Verfügung gestellt werden:


Unser Ziel ist es, diese Captchas zu lösen! Also lasst den Wettbewerb beginnen!

Nützliche Tutorials:
Data Augmentation
Mustererknnungs-Pipeline
Optische Zeichenerkennung (OCR)

Details zum Wettbewerb:
Beginn: Erster April
Ende: Erster Mai um 23:59 Uhr
Programm/Code einsenden an: m.rupprecht@gmx.net
Preise
1. Platz: 25€ amazon/paypal/psc
2. Platz: 10€ amazon/paypal/psc

Downloads:
Download Captcha Starter Pack

Sponsor: Neural Ocean