Leela Chess Zero

Was ist Leela Chess Zero?

Leela Chess Zero (kurz Lc0 oder Leela) ist eine kostenlose Open-Source-Schach-Engine basierend auf Neuronalen Netzen. Lc0 wurde aus der Go-Engine Leela Zero Go entwickelt, welche wiederum aus den Forschungsergebnissen von AlphaGo Zero von Google DeepMind entstand. Durch dieses Vorbild ist Leela in der Lage Schach zu erlernen, ohne vom Menschen angelernt zu werden. Leela beginnt nur mit dem Wissen der Schachregeln und steigert mit verstärkendem Lernen durch ständiges Spielen gegen sich selbst ihre Spielstärke.

Eine Elo-Zahl für Leela zu bestimmen, ist schwierig, da sich die Spielstärke durch jedes weitere Spiel gegen sich selbst steigert. Aber Leela ist auch im Jahr 2022 auf einem ähnlichen Niveau wie Stockfish 15 und Komodo 3, den beiden führenden Schachprogrammen.

Leela Chess Zero und AlphaZero

Einer der Hauptgründe für die Entwicklung von Leela Chess Zero ist, die Funktionsweise von AlphaZero zu bestätigen. Nachdem AlphaZero 2017 das bis dahin führende Schachprogramm Stockfish 8 deutlich geschlagen hatte, ging ein Aufruhr durch die Schachgemeinschaft. Die neue Herangehensweise von AlphaZero, sich nicht auf eine von Menschen erstellte Datenbank aus unzähligen Zügen und Spielweisen zu verlassen, wie bei Stockfish, sondern Schach alleine durch das Wissen der Spielregeln und das Selbstspiel zu meistern, war ein komplett neuer Ansatz. Das Projekt AlphaZero wurde wenig später eingestellt, aber in gewisser Weise durch Leela Chess Zero weitergeführt. Der Code von AlphaZero ist bis heute ein Geheimnis, aber eine ambitionierte Entwicklergemeinde rund um Gary Linscott hat es geschafft, nach dessen Vorbild Leela zu erschaffen. Ein offizielles Spiel von Leela und AlphaZero gibt es übrigens nicht.

Leela Chess Zero und Stockfish

Stockfish ist die weltweit führende Schach-Engine und ist ebenso wie Lc0 kostenlos als Open Source nutzbar. Der entscheidende Unterschied der beiden liegt neben ihrer Herangehensweise an das Schachspiel auch in der unterschiedlichen Art der Engine an sich. Während Stockfish eine „klassische“ Engine mit enormer Rechenleistung ist, ist Leela eine Künstliche Intelligenz mit neuronalen Netzen. Seit Stockfish 12 kombiniert es die Stärken beider Programme und nutzt ebenfalls das “Efficiently Updatable Neural Network” (NNUE) für die Stellungsbewertung und hat seine Leistung damit stark gesteigert. Heute ist Stockfish 15 eine der besten Schach-Engine auf der Welt.

Leela Chess Zero und Stockfish tragen regelmäßig Spiele gegeneinander aus, die Mehrzahl davon kann Stockfish für sich entscheiden. Aber Leela nähert sich mit ihrer Spielstärke immer weiter Stockfish an und war 2021 auf Platz 2 der besten Schachprogramme, hinter Stockfish 14.

Online-Ressourcen

Leela kann bei GitHub als Open-Source-Engine kostenlos heruntergeladen werden. Da es sich bei Lc0 um kein vollständiges Schachprogramm, sondern um ein Universal Chess Interface (UCI) handelt, wird auch ein graphical user interface (GUI) benötigt. Beliebte GUIs sind beispielsweise Chessbase, Cutechess, Nibbler oder BanksiaGUI. Eine andere Möglichkeit gegen Leela zu spielen sind die Lichess Bots. Zum Spielen muss kein zusätzliches Programm heruntergeladen werden. Unter https://lichess.org/team/all-the-leelas befinden sich die Bots Lc0Test, leela2200 oder MiniHuman, welche fast immer online sind. Auch die Maia Bots sind unter https://lichess.org/player/bots zum Spielen verfügbar.

Logit

Was ist eine Logit-Funktion?

Die Logit-Funktion (auch Logit, Logit-Modell oder logistische Regression genannt) gehört zu den Regressionsanalysen. Eine Regression gibt den Zusammenhang zwischen zwei oder mehr Variablen an. Ein Logit ermöglicht es, eine abhängige binäre Variable zu erklären und darüber hinaus eine Vorhersage über die Eintrittswahrscheinlichkeit eines Ereignisses zu geben.

Die Herangehensweise der logistischen Regression entspricht weitgehend der linearen Regression. Der Hauptunterschied liegt bei der abhängigen Variable. Bei der linearen Regression ist sie metrisch (zum Beispiel Geldbeträge) und bei der logistischen Regression binär (es gibt genau zwei Ausprägungen, zum Beispiel männlich und weiblich, kodiert als 0 und 1).

Die Logit-Funktion lautet:

logit(p):= In (p / p-1)

Wobei „p“ die Wahrscheinlichkeit und „p-1“ die Gegenwahrscheinlichkeit ist.

Anwendungen von Logit-Funktionen

  • Prognose der Kaufentscheidung: Kauft eine Person ein bestimmtes Produkt?
  • Markenbekanntheit: Kennt eine Person eine bestimmte Marke?
  • Kreditwürdigkeit: Kann eine Person eine bestimmte Kreditsumme zurückzahlen?
  • Parteipräferenz: Wenn am Sonntag Bundestagswahl wäre, würde eine Person eine bestimmte Partei wählen?
  • Einschaltquoten: Hat eine Person eine bestimmte Sendung gesehen?

Was sind Voraussetzungen für den Einsatz dieser Funktion?

  1. Die abhängige Variable ist binär, mit anderen Worten als 0 und 1 kodiert.
  2. Das Modell sollte keine oder wenig Multikollinearität (zwei oder mehr erklärende Variablen haben eine sehr starke Korrelation zueinander) zeigen und möglichst simpel sein.
  3. Es besteht eine lineare Beziehung zwischen den unabhängigen Variablen und den „log odds“ (die Chancen für das Auftreten der zu betrachtenden Merkmalsausprägung der abhängigen Variable).
  4. Es wird ein recht großer Stichprobenumfang benötigt.

Was sind Alternativen zur Logit-Funktion?

Die logistische Regression wird beim maschinellen Lernen als Klassifizierungsalgorithmus genutzt, um die Wahrscheinlichkeit einer abhängigen Variablen vorherzusagen. Sie ist unkompliziert, funktioniert aber bei hochkomplexen Modellen nicht einwandfrei.

In solchen Fällen sollten andere Klassifizierungsmöglichkeiten genutzt werden, zum Beispiel:

Logische Programmierung

Was ist logische Programmierung?

Es handelt sich hierbei um ein Programmierparadigma, das zu einem großen Teil auf der formalen Logik beruht. Jedes Programm, das in einer logischen Programmiersprache entwickelt wird, ist eine Reihe von logisch geformten Sätzen, die Fakten und Regeln zu einem bestimmten Themenbereich beschreiben. Logische Programmierung gehört zu den deklarativen Programmiersprachen und ist Grundlage für Anwendung im Bereich maschinelles Lernen und Künstliche Intelligenz.

Diese Art von Programmierung ist ein Zweig der Computerprogrammierung, der formale logische Regeln verwendet. In gewisser Weise ist die Logikprogrammierung die Anwendung mathematischer Gleichungen und anderer logischer Konstrukte, um Programmierergebnisse zu erzielen.

Es gibt objekt-orientierte und induktive logische Programmierung:

  • mit objekt-orientierter Programmierung können reale Anforderungen im System implementiert werden, um daraus wirklichkeitsnahe Schlussfolgerungen abzuleiten
  • eine induktive logische Programmierung (ILP) ist ein gewisser Bereich des maschinellen Lernens. So gibt es ein Verfahren zur automatischen Erstellung ganzer logischer Programme aus Beispielen

Einer der wichtigsten Vertreter der logischen Programmierung ist die Programmiersprache Prolog. Prolog-Programme bestehen aus einer umfangreichen Wissensdatenbank und die Einträge sind Fakten und Regeln. Ein Benutzer kann Anfragen an diese Wissensdatenbank formulieren.

Der Prolog-Interpreter kann Fakten und Regeln verwenden, um systematisch die passende Antwort zu finden. Es gibt positive und negative Resultate. Bei positiven Resultaten kann eine Anfrage logisch abgeleitet werden und bei einem negativen Resultat ist die Datenbasis nicht in der Lage eine Ableitung zu finden.

In welchen Bereichen wird logische Programmierung eingesetzt?

Die typischen Einsatzgebiete von logischer Programmierung sind Simulatoren, Generatoren und Systeme zur Diagnose und zur Prognose. Anwendungen finden sich in den Bereichen Künstliche Intelligenz, Datenbanken und Expertensysteme.

Weitere Einsatzgebiete sind:

  • In der Wirtschaft und im Handel:
    Produktkonfigurator, Routenplaner, Marktsimulation (wie etwa die Preisfindung)
  • Medizin:
    Diagnosesysteme
  • Mathematik:
    Theorembeweiser und Theoremgeneratoren
  • allg. Naturwissenschaften:
    Auswerten und Abfragen von geologischen und meteorologischen Datensammlungen sowie Simulatoren und Vorhersagesysteme für das Wetter, für Erdbeben und Wasserstände
  • Technik:
    CAD und CAM
  • Soziologie
  • Psychologie
  • Computerlinguistik:
    Maschinelles Übersetzen natürlicher Sprache und die Erkennung und das Verstehen von gesprochener Sprache
  • Computertechnik:
    Design und Simulation von bestimmten Prozessoren und von Schaltkreisen
  • Compilerbau
  • Computerspiele:
    „intelligentes“ Verhalten von simulierten Mitspielern, Taktik und Strategie
  • Dokumentenmanagement:
    Strukturierte Dokumente systematisch verarbeiten, semantisches Web und XSLT
  • Rapid Prototyping

Was ist ein Beispiel für ein Programm?

Eine deklarative Programmiersprache beschreibt immer das gewünschte Endergebnis und lässt dann den Lösungsweg automatisch ermitteln. Das funktioniert immer ganz gut, solange der Endzustand klar definiert ist und dazu ein passendes Ausführungsverfahren existiert. Ist beides vorhanden, so ist die deklarative Programmierung äußerst effizient.

Folgendes Beispiel illustriert die Anwendung:

Programm:

weiblich(monika).

weiblich(karin).

weiblich(susanne).

weiblich(aline).

maennlich(werner).

maennlich(klaus).

maennlich(gerd).

maennlich(peter).

maennlich(dominique).

verheiratet(werner, monika).

verheiratet(gerd, renate).

verheiratet(klaus, susanne).

mutterVon(monika, karin).

mutterVon(monika, klaus).

mutterVon(renate, susanne).

mutterVon(renate, peter).

mutterVon(susanne, aline).

mutterVon(susanne, dominique).

mensch(X).

Abfragen:

?- maennlich(gerd).

true

?- verheiratet(gerd, monika).

false

?- mensch(gerd).

true

Long Short-Term Memory (LSTM)

Was ist ein Long Short-Term Memory?

Ein Long Short-Term Memory (LSTM) ist ein langes Kurzzeitgedächtnis in der Künstlichen Intelligenz. So wird beim Training von künstlichen Neuronalen Netzen ein Verfahren des Fehlersignalabstiegs verwendet.

Vergleichbar ist dies mit der Suche eines Bergsteigers der nach dem tiefsten Tal sucht. Sollten mehrere vertiefende Schichten vorhanden sein, so wird dies zu kurz greifen, wenn der vergessliche Bergsteiger so beim Abstieg in dem ersten besten Tal landet und damit sein Dorf in einem tieferen Tal nicht mehr finden kann. Mit einem LSTM-Verfahren kann aber dieses Problem ganz einfach gelöst werden.

Es gibt LSTM-Zellen mit drei Torsorten für eine bessere Erinnerung. Mit einem Eingangstor (Input Gate), einem Merk- und Vergesstor (Forget Gate) und mit einem Ausgangstor (Output Gate) ist LSTM so ausgestattet, dass Erinnerungen an frühere Erfahrungen möglich sind. Das Kurzzeitgedächtnis hält lange an und das prinzipielle Verhalten des Netzes ist in den Gewichten kodiert. Solche Neuronalen Netze, die mit vielen Schichten ausgestattet sind, sind wirklich extrem lernfähig. Long Short-Term Memory kann dafür sorgen, dass solche mehrschichtigen Netze hervorragend funktionieren. Mit dieser Technik wurde ein Durchbruch in der Künstlichen Intelligenz ermöglicht.

Wozu dienen LSTM-Netzwerke?

Besonders geeignet sind LSTM-Netzwerke, um zu klassifizieren, zu verarbeiten und um Vorhersagen auf der Basis von Zeitreihendaten vorzunehmen. LSTM ist anwendbar bei Aufgaben wie der Erkennung von handgeschriebenen Texten und bei Spracherkennung. Auch genutzt werden kann diese Technik bei Anomalie-Erkennung im Netzwerkverkehr oder bei Intrusion-Detection-Systemen.

Welchen Nutzen haben Long Short-Term Memory?

LSTM ist eine Methodik aus dem Bereich Künstlicher Intelligenz. Neuronale Netzwerke funktionieren mit LSTM und sie beschreiben einen ganz speziellen Funktionsblock von rekurrenten neuronalen Netzen mit einer Art „langem Kurzzeitgedächtnis“. Die Neuronalen Netze werden durch LSTM wesentlich leistungsfähiger.

Mit Long Short-Term Memory entsteht ein Kurzzeitgedächtnis, das lange anhält und es ermöglicht, dass Rekurrente Neuronale Netzwerke (RNN) in der Lage sind, sich an bestimmte Langzeit-Abhängigkeiten und an frühere Erfahrungen zu erinnern. So soll bei jeder Aufgabe und bei jedem Problem nicht von vorne begonnen werden. Bereits erworbenes Wissen soll genutzt werden und auf gemachte Erfahrungen können RNN zurückgreifen.

Was macht Long Short-Term Memory so besonders?

LSTM sind ganz einfach Weiterentwicklungen von Rekurrenten Neuronalen Netzwerken. Was LSTM besonders auszeichnet ist die Eigenschaft, vergangene Informationen in bestimmten sequenziellen Daten zu selektieren. Damit besteht die Möglichkeit, dass aus Trainingsdaten gelernt werden kann, welche Informationen aus der früheren Vergangenheit für den aktuellen Output genutzt werden können und welche Informationen ganz einfach vergessen werden können.

Solch eine Fähigkeit ist das Ergebnis von jahrelanger Forschung und Entwicklung. Mithilfe von Backpropagation werden die künstlichen Neuronalen Netze trainiert und LSTM ermöglicht es, sich zurechtzufinden. Der Einsatz von LSTM lohnt sich aufgrund des großen Einsatzpotentials für viele Unternehmen.

Logarithmus

Ein Logarithmus ist die Potenz, auf die eine Zahl potenziert werden muss, um eine andere Zahl zu erhalten. Beispiel: Da 102 = 100, Logarithmus 100 = 2. Dies ist eines der Beispiele für den Logarithmus zur Basis zehn. Der Name ist auf die Tatsache zurückzuführen, dass zehn die Zahl ist, die potenziert wird. Für logarithmische Berechnungen wird eine breite Palette von Basiseinheiten verwendet. So ist zum Beispiel 3 die Basis für acht, da zwei potenziert drei acht ergibt.  

Da 23 = 8, Logarithmus2 8 = 3. Der Logarithmus muss immer so geschrieben werden, dass die Basiszahl tiefgestellt wird. Logarithmen mit der Basis 10 und natürliche Logarithmen sind die häufigsten Logarithmus-Arten. Sie haben stets spezielle Schreibweisen.

Was sind die Eigenschaften des Logarithmus?

Logarithmen haben eine Reihe nützlicher Eigenschaften, weshalb Wissenschaftler sie sehr schnell angenommen haben. Erstens sind sie die besten Lösungen, wenn lange, mühsame Berechnungen vermieden werden sollen. Beispielsweise können Wissenschaftler mithilfe einer speziellen Tabelle den Logarithmus einer jeden Zahl nachschlagen. Anschließend fügen sie die Logarithmen zusammen, bevor sie die Tabelle erneut konsultieren, um die Zahl mit dem berechneten Logarithmus zu identifizieren.

Geschichte des Logarithmus

Die Erfindung von Logarithmen war das Ergebnis des Vergleichs geometrischer und arithmetischer Folgen. Jedes Mal entsteht eine Konstante in einer geometrischen Folge, und jede Konstante hat einen Nachfolger. Beispiel: … 1/1.000, 1/100, 1/10, 1, 10, 100, 1.000… hat zehn als konstanten Quotienten. Bei der arithmetischen Reihenfolge unterscheiden sich alle aufeinanderfolgenden Begriffe durch eine Konstante. Sie werden auch als gemeinsamer Unterschied bezeichnet. Beispiel: … 3, 2, 1, 0, 1, 2, 3… hat 1 als gemeinsamen Unterschied.  
 
Beachten Sie, dass es möglich ist, eine geometrische Folge in Bezug auf ihren konstanten Quotienten zu schreiben. Werfen Sie einen Blick auf das unten aufgeführte Beispiel: 
… 10 x 3, 10, 2, 10, 100, 101, 102, 103.

Stammdaten

Stammdaten sind die Fakten und Statistiken von Unternehmen im Kontext ihrer geschäftlichen Transaktionen. Sie enthalten wichtige Details betreffend die größten Geschäftsbereiche eines Unternehmens, einschließlich seiner Kunden, Interessenten, Lieferanten, Websites und Konten. Sie werden von mehreren Systemen innerhalb des Unternehmens gemeinsam genutzt, was Analysen, Planungen und kommerzielle Expansion erleichtert.  

Stammdaten werden von zahlreichen Anwendungen und Prozessen innerhalb eines jeden Unternehmens verwendet. Zum Beispiel wird bei einer Vielzahl von Transaktionen in Form von Käufer-, Produkt- oder Händlerdaten auf sie Bezug genommen. Details zu Mitarbeitern, Lieferanten, Teilen, Standorten und Kontaktmechanismen werden ebenfalls als Stammdaten kategorisiert. Jedes Unternehmen betrachtet verschiedene Kategorien von Informationen als wesentlich, sodass das, was als Kern für ein Unternehmen in einer bestimmten Branche angesehen wird, für ein anderes Unternehmen derselben Branche möglicherweise nicht erforderlich ist.  
 
Diese Datenobjekte spielen die größte Rolle für das Unternehmen. Sie werden regelmäßig bewertet und gemeldet, um Entscheidungen zu verbessern und Marktreaktionen zu steuern, nachdem sie in Analysesystemen verarbeitet wurden. Unternehmen speichern und verwalten diese Informationen zu ihren Dienstleistungen und Produkten über ein System, das als PMDM oder Product Master Data Management bekannt ist. Unternehmen müssen mit dieser Vielzahl von Daten gut umgehen, um erfolgreich zu sein. Dieses Asset für Unternehmensinformationen wird verwendet, um die Zukunft des Unternehmens zu gestalten. 

Zusammenfassung

Der Logarithmus ist ein Werkzeug, das von Wissenschaftlern und Mathematikern verwendet wird, um komplexe Berechnungen durchzuführen. Er wurde im 17. Jahrhundert erfunden und ist seitdem in einer Vielzahl von Bereichen, die stark auf Berechnungen angewiesen sind, angenommen worden.