我怎样才能在 Latex 中正确地写出这个方程式?

我怎样才能在 Latex 中正确地写出这个方程式?

在此处输入图片描述

该方程基本上是 Q 学习算法必不可少的贝尔曼方程。如果有任何方法可以包含下面的注释(例如“新 Q 值”)那就更好了!

答案1

欢迎来到 TeX.SE,这里有一个我以纯 LaTeX 编写的提案。它与您的图片有一点不同,因为公式的特定部分有很多文本(给定新状态和所有可能的动作,最大预测奖励)。

一些小建议:

  1. 在 LaTeX 中,有一个特定命令用于指示最大值,它不是\max用斜体 ( max) 表示的,就像每个字母都是一个变量一样。对于“ ”也有同样的讨论New,我将其作为文本写入公式中\text{New},而不是用斜体表示。
  2. 重要提示:如果您更改了以图像形式插入的公式中的某些内容,则空格可能会发生变化。这可以通过使用命令减少或增加距离轻松解决\mkern-30mu(例如)。

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage{amssymb,mathtools}
\begin{document}
\[\underbrace{\text{New}Q(s,a)}_{\scriptstyle\text{New Q-Value}}=Q(s,a)+\mkern-34mu\underset{\text{New Q-Value}}{\underset{\Bigl|}{\alpha}}\mkern-30mu[\underbrace{R(s,a)}_{\scriptstyle\text{Reward}}+\mkern-30mu\underset{\text{Discount rate}}{\underset{\Biggl|}{\gamma}}\mkern-75mu\overbrace{\max Q'(s',a')}^{\scriptstyle\substack{\text{Maximum predicted reward, given} \\ \text{new state and all possible actions}}}\mkern-45mu-Q(s,a)]\]
\end{document}

答案2

另一种方法是使用tikzmark库:

\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\usetikzlibrary{tikzmark}

\usepackage{lipsum}
\begin{document}
\lipsum[66]
\[
\underbrace{\text{New }Q(s,a)}_{\substack{\text{New}\\
                                          \text{Q-Value}}}
    = \underbrace{Q(s,a)}_{\substack{\text{Current}\\
                                     \text{Q-Value}}}
    + \tikzmarknode{A}{\alpha}
    \Bigl[
        \underbrace{R(s,a)}_{\text{Reward}}
    + \tikzmarknode{B}{\gamma}
        \overbrace{\max Q'(s',a')}^{\mathclap{%
            \substack{\text{Maximum predicted reward, given} \\
                      \text{new state and all possible actions}}
                                            }}
    - Q(s,a)
    \Bigr]
\begin{tikzpicture}[overlay, remember picture,shorten <=1mm, font=\footnotesize, align=center]
\draw (A.south) -- ++ (0,-.8) node (C) [below] {Learning\\ rate};
\draw (B.south) -- (B |- C.north)  node[below] {Discount\\ rate};
\end{tikzpicture}
\vspace{4ex}
\]
\lipsum[66]
\end{document}

经过两次编译结果是:

在此处输入图片描述

相关内容