(Reinforcement Learning) Q-Learning-Code-Praxis

Inhaltsverzeichnis

Grundwissen

MDP (Markov-Entscheidungsprozess) Markov-Entscheidungsprozess

Elemente und Architektur des Reinforcement Learning

Algorithmisches Denken

 Code


Grundwissen

MDP (Markov-Entscheidungsprozess)Markov-Entscheidungsprozess Prozess

MDP (Markov Decision Process) ist ein mathematisches Framework zur Beschreibung von Problemen mit Zufälligkeit und sequenzieller Entscheidungsfindung. Bei MDP ergreift der Agent kontinuierlich Maßnahmen und beobachtet durch Interaktion mit der Umgebung Rückmeldungen aus der Umgebung, wodurch er Strategien erlernt, um in verschiedenen Zuständen optimale Maßnahmen zu ergreifen. MDP wird häufig im Bereich des Reinforcement Learning eingesetzt.

MDP enthält die folgenden Elemente:

Zustand: Der Zustand des Agenten zu einem bestimmten Zeitpunkt.

Aktion: Die Aktion, die der Agent in einem bestimmten Zustand durchführt.

Belohnung: Die Belohnung oder Bestrafung, die ein Agent erhält, nachdem er in einem bestimmten Zustand eine Aktion ausgeführt hat.

Übergangswahrscheinlichkeit: Die Wahrscheinlichkeit, dass ein Agent von einem Zustand in einen anderen übergeht.

Abzinsungsfaktor: Wird verwendet, um den Wert zukünftiger Belohnungen zu messen, normalerweise zwischen 0 und 1.

Richtlinie: Die Regeln, nach denen ein Agent in jedem Status Maßnahmen ergreifen soll.

Beim MDP besteht das Ziel des Agenten darin, eine optimale Strategie zu finden, die seine angesammelten Belohnungen langfristig maximiert. Um dieses Ziel zu erreichen, muss der Agent durch Versuch und Irrtum lernen, wie wichtig es ist, in verschiedenen Zuständen unterschiedliche Maßnahmen zu ergreifen, und auf der Grundlage dieser Werte die beste Maßnahme auswählen. Die Wertfunktion und die Q-Funktion sind in MDP häufig verwendete Funktionen zur Darstellung von Werten.

Elemente und Architektur des Reinforcement Learning

Reinforcement-Learning-Systeme umfassen im Allgemeinen vier Elemente: Richtlinie, Belohnung, Wert und Umgebung oder Modell.

Richtlinie: Richtlinie definiert das Verhalten eines Agenten für einen bestimmten Status.

Belohnung: Das Belohnungssignal definiert das Ziel des Reinforcement-Learning-Problems

Wert: Oder Wertfunktion. Im Gegensatz zur Unmittelbarkeit von Belohnungen ist die Wertfunktion ein Maß für den langfristigen Nutzen.

Umgebung (Modell): Die äußere Umgebung, auch Modell (Modell) genannt, ist eine Simulation der Umgebung

Architektur des verstärkenden Lernens

Algorithmisches Denken

Der Q-Learning-Algorithmus ist ein verstärkender Lernalgorithmus, der auf Werteiteration basiert und zum Erlernen der optimalen Strategie für die Interaktion eines Agenten mit der Umgebung verwendet wird. Die Grundidee dieses Algorithmus besteht darin, die Aktionsauswahl durch das Erlernen einer Q-Wert-Funktion zu steuern. Die Q-Wert-Funktion stellt die erwartete Rendite einer Aktion in einem bestimmten Zustand dar.

Im Q-Learning-Algorithmus aktualisiert der Agent die Q-Wert-Funktion kontinuierlich durch Interaktion mit der Umgebung. Konkret beobachtet der Agent den aktuellen Zustand s_t in jedem Zeitschritt t, wählt eine Aktion a_t basierend auf dem aktuellen Zustand und der Q-Wert-Funktion aus und beobachtet nach der Ausführung den nächsten Zustand s_{t+1} und die entsprechende Belohnung r_{ die Aktion. t+1} und aktualisieren Sie die Q-Wert-Funktion gemäß der Q-Learning-Aktualisierungsregel. Die Aktualisierungsregeln lauten wie folgt:

Q(s,a)←Q(s,a)+α[r+γmaxa′​Q(s′,a′)−Q(s,a)]

Unter diesen stellt Q(s,a) den Q-Wert der Aktion a im Zustand s dar und gibt den Wert der aktuellen Aktion an, α ist die Lernrate, γ ist der Abzinsungsfaktor, maxa′​Q(s′, a′) stellt den nächsten Zustand dar. s′ ist der maximale Q-Wert, der durch die optimale Aktion erhalten wird.

Die Kernidee des Q-Learning-Algorithmus besteht darin, die Aktionsauswahl durch kontinuierliche Aktualisierung der Q-Wert-Funktion zu steuern und letztendlich eine optimale Strategie zu erlernen. In der praktischen Anwendung erfordert der Algorithmus eine Diskretisierung des Zustandsraums und des Aktionsraums, um diese als Q-Werte-Tabelle darzustellen. Gleichzeitig können Techniken wie Erfahrungswiedergabe und Erkundungsstrategien eingesetzt werden, um die Stabilität und Konvergenzgeschwindigkeit des Algorithmus zu erhöhen.

 Code

Regeln aktualisieren

def get_update(row, col, action, reward, next_row, next_col):
    #target为下一个格子的最高分数,这里的计算和下一步的动作无关
    target = 0.9 * Q[next_row, next_col].max()
    #加上本步的分数
    target += reward

    #value为当前state和action的分数
    value = Q[row, col, action]

    #根据时序差分算法,当前state,action的分数 = 下一个state,action的分数*gamma + reward
    #此处是求两者的差,越接近0越好
    update = target - value

    #这个0.1相当于lr
    update *= 0.1

    return update


get_update(0, 0, 3, -1, 0, 1)

Zug

def train():
    for epoch in range(1500):
        #初始化当前位置
        row = random.choice(range(4))
        col = 0

        #初始化第一个动作
        action = get_action(row, col)

        #计算反馈的和,这个数字应该越来越小
        reward_sum = 0

        #循环直到到达终点或者掉进陷阱
        while get_state(row, col) not in ['terminal', 'trap']:

            #执行动作
            next_row, next_col, reward = move(row, col, action)
            reward_sum += reward

            #求新位置的动作
            next_action = get_action(next_row, next_col)

            #计算分数
            update = get_update(row, col, action, reward, next_row, next_col)

            #更新分数
            Q[row, col, action] += update

            #更新当前位置
            row = next_row
            col = next_col
            action = next_action

        if epoch % 100 == 0:
            print(epoch, reward_sum)


train()

Vollständiger Code: im 4-Zeit-Sequenzbewertungsalgorithmushttps://download.csdn.net/download/qq_46684028/88076627

Zugehöriger Code:. Verwenden Sie den Q-Lernalgorithmus, um zu lernen, wie man das Labyrinthspiel spielt: https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/tree/ master/contents/2_Q_Learning_maze

Supongo que te gusta

Origin blog.csdn.net/qq_46684028/article/details/131871777
Recomendado
Clasificación