{"id":180250,"date":"2026-01-28T12:38:10","date_gmt":"2026-01-28T11:38:10","guid":{"rendered":"https:\/\/liora.io\/de\/?p=180250"},"modified":"2026-02-06T04:40:10","modified_gmt":"2026-02-06T03:40:10","slug":"q-learning-machine-learning-mit-verstaerkendem-lernen","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/q-learning-machine-learning-mit-verstaerkendem-lernen","title":{"rendered":"Q-learning \u2013 Machine Learning mit verst\u00e4rkendem Lernen"},"content":{"rendered":"<h2 class=\"wp-block-heading\" id=\"h-q-learning-reinforcement-learning-ist-eine-methode-des-machine-learning-mit-der-komplexe-aufgaben-selbststandig-gelost-werden-konnen\">Q-learning: Reinforcement Learning ist eine Methode des Machine Learning, mit der komplexe Aufgaben selbstst\u00e4ndig gel\u00f6st werden k\u00f6nnen.<\/h2>\nErst k\u00fcrzlich machte diese Algorithmusfamilie im <strong>E-Sport<\/strong> von sich reden, als <a href=\"https:\/\/github.com\/deepmind\/alphastar\">AlphaStar<\/a> ver\u00f6ffentlicht wurde, ein Algorithmus, der entwickelt wurde, um die besten Spieler der Welt in <strong>StarCraft<\/strong> herauszufordern. Diese <strong>Algorithmen<\/strong> haben ein gro\u00dfes Potenzial, erweisen sich aber manchmal als sehr zeitaufwendig in der Erstellung und Parametrisierung. Dieser Artikel soll dir helfen, zu verstehen, was <strong>Q-Learning<\/strong> ist und wie du Zeit bei der Implementierung dieser Art von L\u00f6sung sparen kannst.\n<h2 class=\"wp-block-heading\" id=\"h-definitionen\">Definitionen<\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-was-ist-reinforcement-learning\">Was ist Reinforcement Learning?<\/h3>\n<strong>Reinforcement Learning<\/strong> ist eine Methode des maschinellen Lernens, deren Ziel es ist, einen Agenten (virtuelle Entit\u00e4t: Roboter, Programm usw.), der in eine interaktive Umgebung gesetzt wird (seine Handlungen ver\u00e4ndern den Zustand der Umgebung), in die Lage zu versetzen, <strong>Handlungen auszuw\u00e4hlen<\/strong>, die die quantitativen Belohnungen maximieren. Der Agent probiert aus und verbessert seine Handlungsstrategie auf der Grundlage der von der Umgebung gelieferten Belohnungen.\n<h3 class=\"wp-block-heading\" id=\"h-was-ist-q-learning\">Was ist Q-Learning?<\/h3>\nEs gibt viele verschiedene Reinforcement-Learning-Algorithmen, die in mehrere Unterfamilien kategorisiert werden. <strong>Q-Learning<\/strong> ist relativ einfach und erm\u00f6glicht es gleichzeitig, die Lernmechanismen zu verstehen, die vielen anderen Modellen gemeinsam sind.\n\nZur einleitenden Veranschaulichung: Ein Q-Learning-Algorithmus arbeitet, um ein grundlegendes Problem zu l\u00f6sen. Beim Labyrinth-Spiel z. B. besteht das Ziel des Spiels darin, dem Roboter beizubringen, das <strong>Labyrinth<\/strong> so schnell wie m\u00f6glich zu verlassen, w\u00e4hrend er zuf\u00e4llig auf einem der wei\u00dfen Felder platziert wird. Um dies zu erreichen, gibt es drei zentrale Schritte im Lernprozess:\n<ul>\n \t<li>Wissen: eine Aktien-Q-Wert-Funktion definieren ;<\/li>\n \t<li>Wissen festigen: die Q -Funktion aktualisieren ;<\/li>\n \t<li>Handeln: eine PI-Aktionsstrategie annehmen.<\/li>\n<\/ul>\nSomit ist <strong>Q-Learning<\/strong> ein verst\u00e4rkender Lernalgorithmus, der versucht, die beste Handlung unter Ber\u00fccksichtigung des aktuellen Zustands zu finden. Er wird als nicht-politisch betrachtet, weil die Q-Learning-Funktion Handlungen lernt, die au\u00dferhalb der aktuellen Politik liegen, wie z. B. zuf\u00e4llige Handlungen zu ergreifen, und daher keine Politik erforderlich ist. Genauer gesagt versucht Q-Learning, eine Politik zu erlernen, die die Gesamtbelohnung maximiert.\n\nDas &#8222;Q&#8220; in Q-learning steht f\u00fcr Qualit\u00e4t. In diesem Fall steht Qualit\u00e4t f\u00fcr den Nutzen einer bestimmten Handlung, um eine zuk\u00fcnftige Belohnung zu erhalten.\n\n<a href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">\nQ-Learning Weiterbildung\n<\/a>\n<h2 class=\"wp-block-heading\" id=\"h-q-learning-konkrete-umsetzung\">Q-Learning: Konkrete Umsetzung<\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-erstellen-einer-q-tabelle\">Erstellen einer Q-Tabelle<\/h3>\nWenn der Lernprozess abgeschlossen ist, erstellen wir eine sogenannte q-Tabelle oder -Matrix, die der Form [Zustand, Aktion] folgt, und initialisieren unsere Werte auf null. Anschlie\u00dfend aktualisieren und speichern wir unsere q-Werte nach jeder Episode. Diese Wertetabelle wird zu einer Referenztabelle f\u00fcr unseren Agenten, der anhand der Werte in dieser Matrix die beste Aktion ausw\u00e4hlt.\n<pre data-line=\"\">\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>import numpy as np \n# Initialize q-table values to 0\nQ = np.zeros((state_size, action_size))\n<\/xmp>\n\t\t\t\t<\/code>\n<\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-q-learning-und-updates\">Q-Learning und Updates<\/h3>\nDer n\u00e4chste Schritt besteht einfach darin, dass der Agent mit der Umgebung interagiert und Aktualisierungen der Zustand-Aktions-Paare in unserem Array Q[state, action] durchf\u00fchrt.\n<h3 class=\"wp-block-heading\" id=\"h-handeln-erforschen-oder-nutzen\">Handeln: Erforschen oder Nutzen<\/h3>\nEin Agent interagiert mit der Umgebung auf zwei Arten. Die erste besteht darin, die <strong>Q-Tabelle<\/strong> als Referenz zu verwenden und alle m\u00f6glichen Aktionen f\u00fcr einen bestimmten Zustand zu visualisieren. Der Agent w\u00e4hlt dann die Aktion aus, die auf dem maximalen Wert dieser Aktionen basiert. Dies wird als Exploitation bezeichnet, da wir die uns zur Verf\u00fcgung stehenden Informationen nutzen, um eine Entscheidung zu treffen.\n\nDie zweite M\u00f6glichkeit besteht darin, nach dem Zufallsprinzip zu handeln. Dies wird als <strong>Exploration<\/strong> bezeichnet. Anstatt Handlungen nach der maximalen zuk\u00fcnftigen Belohnung auszuw\u00e4hlen, w\u00e4hlen wir eine Handlung zuf\u00e4llig aus. Zuf\u00e4lliges Handeln ist wichtig, weil es dem Agenten erlaubt, zu erforschen und neue Zust\u00e4nde zu entdecken, die sonst w\u00e4hrend des Exploitationsprozesses m\u00f6glicherweise nicht ausgew\u00e4hlt werden.\n\nDu kannst das Erkunden \/ Ausbeuten ausbalancieren, indem du epsilon (\u03b5) verwendest und den <strong>Wert f\u00fcr die H\u00e4ufigkeit,<\/strong> mit der du erkunden oder ausbeuten m\u00f6chtest, festlegst. Hier ist ein ungef\u00e4hrer Code, der davon abh\u00e4ngt, wie der Status und der Aktionsraum eingestellt sind.\n<pre data-line=\"\">\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>import random  \n# Set the percent you want to explore\nepsilon = 0.2\nif random.uniform(0, 1) < epsilon:\n    \"\"\"\n    Explore: select a random action    \n    \"\"\"\nelse:\n    \"\"\"\n    Exploit: select the action with max value (future reward)    \n    \"\"\"\n<\/xmp>\n\t\t\t\t<\/code>\n<\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-q-tabelle-aktualisieren\">Q-Tabelle aktualisieren<\/h3>\nAktualisierungen finden nach jedem Schritt oder jeder Aktion statt und enden, wenn eine Episode abgeschlossen ist. In diesem Fall bedeutet &#8222;beendet&#8220;, dass der Agent einen Endzustand erreicht hat. Ein Endzustand kann z. B. auf einer Bezahlseite landen oder ein gew\u00fcnschtes Ziel erreichen. Mit gen\u00fcgend Exploration (Schritte und Episoden) wird der Agent in der Lage sein, zu konvergieren und die optimalen Werte von q oder q-Star (Q\u2217) zu lernen.\n\nHier sind die drei grundlegenden Schritte:\n<ol>\n \t<li>Der Agent beginnt in einem Zustand (s1), nimmt eine Aktion (a1) vor und erh\u00e4lt eine Belohnung (r1).<\/li>\n \t<li>Der Agent w\u00e4hlt die Aktion unter Bezugnahme auf die Q-Tabelle mit dem h\u00f6chsten Wert (max)<\/li>\n \t<li>ODER zuf\u00e4llig (epsilon, \u03b5) aus.\nAktualisierung der q-Werte<\/li>\n<\/ol>\nHier ist die grundlegende Aktualisierungsregel f\u00fcr Q-Learning:\n<pre data-line=\"\">\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp># Update q values\nQ[state, action] = Q[state, action] + lr * (reward + gamma * np.max(Q[new_state, :]) \u2014 Q[state, action])\n<\/xmp>\n\t\t\t\t<\/code>\n<\/pre>\nIn der obigen <strong>Aktualisierung<\/strong> gibt es einige Variablen, die wir noch nicht erw\u00e4hnt haben. Was hier passiert, ist, dass wir unsere q-Werte entsprechend der Differenz zwischen den neuen, aktualisierten Werten und den alten Werten anpassen. Wir aktualisieren die neuen Werte mithilfe des Gamma und passen unsere Schrittgr\u00f6\u00dfe mithilfe der Lernrate (lr) an.\n<h2 class=\"wp-block-heading\" id=\"h-einige-referenzen\">Einige Referenzen<\/h2>\n<ul>\n \t<li><strong>Lernrate:<\/strong> lr, oft auch als Alpha bezeichnet, kann als der Grad der Akzeptanz des neuen Wertes im Vergleich zum alten Wert definiert werden. Oben nehmen wir die Differenz zwischen dem neuen und dem alten Wert und multiplizieren diesen Wert mit der Lernrate. Dieser Wert wird dann zu unserem vorherigen q-Wert addiert, wodurch er sich in die Richtung unserer letzten Aktualisierung bewegt.<\/li>\n \t<li><strong>Gamma:<\/strong> Gamma oder \u03b3 ist ein Aktualisierungsfaktor. Er wird verwendet, um die unmittelbare und die zuk\u00fcnftige Belohnung auszugleichen. In unserer obigen Aktualisierungsregel kannst du sehen, dass wir den Abschlag auf die zuk\u00fcnftige Belohnung anwenden. Im Allgemeinen kann dieser Wert zwischen 0,8 und 0,99 variieren.<\/li>\n \t<li><strong>Belohnung:<\/strong> Die Belohnung (reward) ist der Wert, den du erh\u00e4ltst, nachdem du eine bestimmte Aktion in einem bestimmten Zustand ausgef\u00fchrt hast. Eine Belohnung kann zu jedem gegebenen Zeitschritt oder nur zum Terminalzeitschritt auftreten.<\/li>\n \t<li><strong>Max:<\/strong> np.max() verwendet die numpy-Bibliothek und nimmt das Maximum der zuk\u00fcnftigen Belohnung und wendet es auf die Belohnung des aktuellen Zustands an. Dies hat den Effekt, dass die aktuelle Handlung durch die m\u00f6gliche zuk\u00fcnftige Belohnung beeinflusst wird. Tats\u00e4chlich sind wir durch Q-Learning in der Lage, die zuk\u00fcnftige Belohnung den aktuellen Handlungen zuzuordnen, um dem Agenten zu helfen, die rentabelste Handlung in jedem gegebenen Zustand auszuw\u00e4hlen.<\/li>\n<\/ul>\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Mehr erfahren<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Erst k\u00fcrzlich machte diese Algorithmusfamilie im E-Sport von sich reden, als AlphaStar ver\u00f6ffentlicht wurde, ein Algorithmus, der entwickelt wurde, um die besten Spieler der Welt in StarCraft herauszufordern. Diese Algorithmen haben ein gro\u00dfes Potenzial, erweisen sich aber manchmal als sehr zeitaufwendig in der Erstellung und Parametrisierung. Dieser Artikel soll dir helfen, zu verstehen, was Q-Learning ist und wie du Zeit bei der Implementierung dieser Art von L\u00f6sung sparen kannst.<\/p>\n","protected":false},"author":85,"featured_media":179989,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-180250","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/180250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=180250"}],"version-history":[{"count":4,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/180250\/revisions"}],"predecessor-version":[{"id":216562,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/180250\/revisions\/216562"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/179989"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=180250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=180250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}