Real Data - April 2016 (5-6/6)

5) Image Upsampling

Die Aufgabe ist, ein kleines verkleinertes Bild zu vergrößern. Dafür gibt es viele bekannte Methode. Ich habe das einfachste Algorithmus "Nearest-neighbor interpolation" implementiert. Ich wusste, dass ich eine höhere Note bekommen könnte, wenn ich ein kompliziertes Algorithmus wie "Bilinear interpolation" implementieren würde. Aber der Unterschied zwischen der höchsten Note und meiner Note war weniger als 1. Deshalb habe ich nur das einfachste Algorithmus benutzt. (Aber falls ich ein kompliziertes Algorithmus benutzen würde, wäre ich unter den Top zehn...)

6) The Super Captcha Cracker

Die Aufgabe war am schwersten: Die Erfolgsrate war 0%. Die fünf Buchstaben in einem "Captcha" sind abzulesen. Ein Beispiel von Captcha folgt.

test100.gif

Die richtige Lösung ist "QOSCG". Die allen vorhergesagten Buchstaben müssen richtig, damit ich die Note bekomme. 150 Muster sind gegeben.

Wenn man maschinelles Lernen für die Aufgabe verwendet, stehen wir vor einem großen Problem: Man kann keine Training-Daten auf dem Server benutzen. Deshalb muss man trainierte Parameter in den Quelltext einbetten, dessen Größe begrenzt ist.

Ich habe logistische Regression verwendet, weil es einfach ist, die trainierte Parameter einzubetten und zu benutzen. Meine Fortschritten sind:

  1. Alle Muster monochrom und klein machen.
  2. Alle Muster in fünf Bilder teilen. Die geteilten Bilder sind die Training-Daten.
  3. Ein Vorhersagemodell mit logistischem Regression machen.
  4. Die trainierten Parameter ablesen und damit ein Vorhersagemodell implementieren.

Mein Vorhersagemodell hatte "overfitted". Das Modell kann die richtigen Buchstaben der Training-Daten finden, aber die Genauigkeit für die CV-Daten war ungefähr 1%. Der "penalty parameter" spielte leider keine Rolle.

Der Teilnehmer auf Platz 1 hat ein künstliches neuronales Netz (475,80,26) verwendet. Ich hatte die gleiche Idee, aber ich habe keins verwendet, weil ich dachte, dass die trainierten Parameter sich in den Quelltext nicht einbetten lassen. Ich machte nämlich vor Training ein Muster klein, weil die Liste von Parametern zu groß war. Der Top-Teilnehmer hat das Problem dadurch gelöst, den Parameter durch zlib zu verdichten.

Das Ergebnis dieses Wettbewerbs

Die Einstufung endet noch nicht, trotzdem ist die Rangliste fest. (Editorial ist noch nicht veröffentlicht und das ist wahrscheinlich der Grund dafür, dass die Einstufung noch nicht endet.) Wie Sie unter meiner Seite finden können, war ich auf Platz 12. Deshalb habe ich schon eine Nachricht von HackerRank bekommen, die mir den Gewinn mitteilt. Ich hätte den Wettbewerb früher beginnen sollen, so dass ich genug Zeit, ein kompliziertes Algorithmus zur Vergrößerung eines Bild zu implementieren.

Share this page on        
Categories: #data-mining