Skip to content

Commit

Permalink
更新
Browse files Browse the repository at this point in the history
  • Loading branch information
johnjim0816 committed Sep 11, 2023
1 parent be8c8f2 commit 8b8f3df
Show file tree
Hide file tree
Showing 14 changed files with 6 additions and 4 deletions.
Binary file modified docs/ch10/main.pptx
Binary file not shown.
Binary file removed docs/ch3/main.pdf
Binary file not shown.
Binary file added docs/ch3/main.pptx
Binary file not shown.
6 changes: 3 additions & 3 deletions docs/ch6/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ $\qquad$ 如图 $\text{6-2}$ 所示,除了训练生成模型之外,强化学

## 6.2 线性回归

$\qquad$ 本小节开始总结归纳强化学习用到的一些深度学习模型,首先是线性模型。严格来说,线性模型并不是深度学习模型,而是传统的机器学习模型,但它是深度学习模型的基础,在深度学习中相当于单层的神经网络。在线性模型中,应用较为广泛的两个基础模型就是线性回归和逻辑回归,通常分别用于解决回归和分类问题,尽管后者也可以用来解决回归问题。
$\qquad$ 本节开始总结归纳强化学习用到的一些深度学习模型,首先是线性模型。严格来说,线性模型并不是深度学习模型,而是传统的机器学习模型,但它是深度学习模型的基础,在深度学习中相当于单层的神经网络。在线性模型中,应用较为广泛的两个基础模型就是线性回归和逻辑回归,通常分别用于解决回归和分类问题,尽管后者也可以用来解决回归问题。

$\qquad$ 以典型的房价预测问题为例,假设一套房子有 $m$ 个特征,例如建造年份、房子面积等,分别记为 $x_1, x_2, \cdots, x_m$,用向量表示为式 $\text{(6.1)}$ 。

Expand Down Expand Up @@ -66,12 +66,12 @@ $\qquad$ 另外注意,这里是近似求解,因为几乎不可能找到一

## 6.3 梯度下降

$\qquad$ 回到问题本身,这类问题的解决方法也有很多种,例如最小二乘法、牛顿法等,但目前最流行的方法还是梯度下降。其基本思想如下
$\qquad$ 回到问题本身,这类问题的解决方法也有很多种,例如最小二乘法、牛顿法等,但目前最流行的方法还是梯度下降。其基本思想如下

* 初始化参数:选择一个初始点或参数的初始值。
* 计算梯度:在当前点计算函数的梯度,即函数关于各参数的偏导数。梯度指向函数值增加最快的方向。
* 更新参数:按照负梯度方向更新参数,这样可以减少函数值。这个过程在神经网络中一般是以反向传播算法来实现的。
* 重复上述两个步骤,直到梯度趋近于 0 或者达到一定迭代次数。
* 重复上述二三步骤,直到梯度趋近于 0 或者达到一定迭代次数。

$\qquad$ 梯度下降本质上是一种基于贪心思想的方法,它的泛化能力很强,能够基于任何**可导的函数**求解最优解。如图 $\text{6-3}$ 所示,假设我们要找到一个山谷中的最低点,也就是下山,那么我们可以从任意一点出发,然后沿着最陡峭的方向向下走,这样就能够找到山谷中的最低点。这里的最陡峭的方向就是梯度方向,而沿着这个方向走的步长就是学习率,这个学习率一般是一个超参数,需要我们自己来设定。

Expand Down
4 changes: 3 additions & 1 deletion docs/ch7/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ $$
Q_{期望} = [r_t+\gamma\max _{a^{\prime}}Q_{\bar{\theta}}(s^{\prime},a^{\prime})]
$$

$\qquad$ 对于目标网络的作用,这里举一个典型的例子,这里的目标网络好比皇帝,而当前网络相当于皇帝手下的太监,每次皇帝在做一些行政决策时往往不急着下定论,会让太监们去收集一圈情报,然后集思广益再做决策。这样做的好处是显而易见的,比如皇帝要处决一个可能受冤的犯人时,如果一个太监收集到一个情报说这个犯人就是真凶的时候,如果皇帝是一个急性子可能就当初处决了,但如果这时候另外一个太监收集了一个更有力的证据证明刚才那个太监收集到的情报不可靠并能够证明该犯人无罪时,那么此时皇帝就已经犯下了一个无法挽回的过错。换句话说,如果当前有个小批量样本导致模型对 $Q$ 值进行了较差的过估计,如果接下来从经验回放中提取到的样本正好连续几个都这样的,很有可能导致 $Q$ 值的发散。
$\qquad$ 对于目标网络的作用,这里举一个典型的例子,这里的目标网络好比皇帝,而当前网络相当于皇帝手下的太监,每次皇帝在做一些行政决策时往往不急着下定论,会让太监们去收集一圈情报,然后集思广益再做决策。这样做的好处是显而易见的,比如皇帝要处决一个可能受冤的犯人时,如果一个太监收集到一个情报说这个犯人就是真凶的时候。

$\qquad$ 如果皇帝是一个急性子可能就当初处决了,但如果这时候另外一个太监收集了一个更有力的证据证明刚才那个太监收集到的情报不可靠并能够证明该犯人无罪时,那么此时皇帝就已经犯下了一个无法挽回的过错。换句话说,如果当前有个小批量样本导致模型对 $Q$ 值进行了较差的过估计,如果接下来从经验回放中提取到的样本正好连续几个都这样的,很有可能导致 $Q$ 值的发散。

$\qquad$ 再打个比方,我们玩 $\text{RPG}$ 或者闯关类游戏,有些人为了破纪录经常存档( $\text{Save}$ )和回档( $\text{Load}$ ),简称 “$\text{SL}$” 大法。只要我出了错,我不满意我就加载之前的存档,假设不允许加载呢,就像 $\text{DQN}$ 算法一样训练过程中会退不了,这时候是不是搞两个档,一个档每帧都存一下,另外一个档打了不错的结果再存,也就是若干个间隔再存一下,到最后用间隔若干步数再存的档一般都比每帧都存的档好些呢。当然我们也可以再搞更多个档,也就是 $\text{DQN}$ 增加多个目标网络,但是对于 $\text{DQN}$ 算法来说没有多大必要,因为多几个网络效果不见得会好很多。

Expand Down
Binary file modified docs/figs/ch10/a3c_architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/figs/ch3/robot_maze.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/figs/ch3/robot_maze_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified words/第10章 Actor-Critic 算法.docx
Binary file not shown.
Binary file modified words/第3章 动态规划.docx
Binary file not shown.
Binary file modified words/第6章 深度学习基础.docx
Binary file not shown.
Binary file modified words/第7章 DQN 算法.docx
Binary file not shown.
Binary file modified words/第8章 DQN算法进阶.docx
Binary file not shown.
Binary file modified words/第9章 策略梯度.docx
Binary file not shown.

0 comments on commit 8b8f3df

Please sign in to comment.