Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
8468412
论文第一章
minghao-lee Jan 15, 2026
6ddd4c1
Merge branch 'master' of https://github.com/minghao-lee/sim
minghao-lee Jan 15, 2026
d59bee9
提交中文摘要
minghao-lee May 12, 2026
11cbb12
Merge branch 'OpenHUTB:master' into master
minghao-lee May 12, 2026
bab54db
提交英文摘要
minghao-lee May 12, 2026
a7af726
Merge branch 'OpenHUTB:master' into master
minghao-lee May 18, 2026
75f6f78
提交说明文件
minghao-lee May 18, 2026
7f0f80d
说明文件
minghao-lee May 18, 2026
d86c1bd
提交全局配置
minghao-lee May 18, 2026
634f3b6
1
minghao-lee May 18, 2026
2e75ec0
Delete critical/undergraduate/content/README.md
minghao-lee May 18, 2026
94da8e3
Merge branch 'OpenHUTB:master' into master
minghao-lee May 18, 2026
3da300c
函数文件
minghao-lee May 18, 2026
9332468
Merge branch 'OpenHUTB:master' into master
minghao-lee May 18, 2026
875172c
提交env文件
minghao-lee May 18, 2026
9c9704c
Merge branch 'OpenHUTB:master' into master
minghao-lee May 19, 2026
4aeb358
危险场景定义
minghao-lee May 19, 2026
b05c1fc
Merge branch 'OpenHUTB:master' into master
minghao-lee May 19, 2026
cfcdcd4
训练与评估文件
minghao-lee May 19, 2026
30c92c3
Merge branch 'OpenHUTB:master' into master
minghao-lee May 19, 2026
54bc841
强化学习算法
minghao-lee May 19, 2026
2e62b49
Merge branch 'OpenHUTB:master' into master
minghao-lee May 20, 2026
77849a2
运行的主代码
minghao-lee May 20, 2026
cd3e26c
Merge branch 'OpenHUTB:master' into master
minghao-lee May 20, 2026
c4d1dad
Merge branch 'OpenHUTB:master' into master
minghao-lee May 27, 2026
3685fb5
Merge branch 'OpenHUTB:master' into master
minghao-lee Jun 7, 2026
dc2f8cc
Merge branch 'master' of https://github.com/minghao-lee/sim
minghao-lee Jun 7, 2026
ab71b1c
图片和论文第一章
minghao-lee Jun 7, 2026
dcefce8
Merge branch 'OpenHUTB:master' into master
minghao-lee Jun 7, 2026
f9fa167
论文正文
minghao-lee Jun 7, 2026
4de64c2
Merge branch 'OpenHUTB:master' into master
minghao-lee Jun 7, 2026
dded930
参考文献
minghao-lee Jun 7, 2026
5ed74d7
Merge branch 'OpenHUTB:master' into master
minghao-lee Jun 9, 2026
9550e94
论文修改
minghao-lee Jun 9, 2026
7355b80
论文与代码修改
minghao-lee Jun 9, 2026
8ecc8ca
论文与代码修改
minghao-lee Jun 9, 2026
b7d221b
论文修改
minghao-lee Jun 10, 2026
b878102
删除pdf
minghao-lee Jun 10, 2026
fec4583
Merge branch 'OpenHUTB:master' into master
minghao-lee Jun 10, 2026
8d484ac
论文修改
minghao-lee Jun 11, 2026
b5c4639
图片
minghao-lee Jun 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,227 changes: 1,227 additions & 0 deletions critical/hutbthesis.cls

Large diffs are not rendered by default.

135 changes: 135 additions & 0 deletions critical/hutbthesis_main.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
%!TEX program = xelatex
% !BIB program = biber
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 载入模版
%
% 载入 hutbthesis.cls文件定义的模板
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[AutoFakeBold]{hutbthesis}

\addbibresource{content/reference.bib}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 基本信息
%
% 用户自行输入标题、作者等基本信息
% 都存储在\content\info.tex文件中
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\include{content/cover}



\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 封面绘制
%
% 1.5版本重新编写了封面绘制宏,并用latex使用者更习惯的
% \maketitle代替之前的\makecoverpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\maketitle

%\declarationzh

% 启用大罗马字母进行编号
\frontmatter
% 设置页眉和页脚

%\include{content/info}

\include{content/declarationzh}
\include{content/authorization}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 中文摘要
%
% 存储在\content\abstractzh.tex文件中
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\include{content/abstractzh}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 英文摘要
%
% 存储在\content\abstracten.tex文件中
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\include{content/abstracten}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 目录
%
% 使用重定义的tableofcontents宏绘制目录
% 满足学校的样式要求
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\tableofcontents


% 启用数字编号,改为第 x 页 共 x 页格式
\mainmatter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 正文
%
% 存储在\content\content.tex文件中
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 正文
%\include{content/content}


\include{content/chapter1.tex}
\include{content/chapter2.tex}
\include{content/chapter3.tex}
\include{content/chapter4.tex}
\include{content/chapter5.tex}

% % 主文件有代码去掉页眉章节编号的“.”,但这会因为bug导致无编号章节显示一个错误编号,所以这里在无编号章节之前再次重定义sectionmark。
% \renewcommand{\sectionmark}[1]{\markright{#1}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 致谢
%
% 存储在\content\acknowledgements.tex文件中
% 根据本科生院的要求,致谢应该在参考文献的前面,不编章号,而附录应该位于参考文献后。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\include{content/acknowledgements}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 参考文献
%
% 存储在\content\acknowledgements.tex文件中
% 根据本科生院的要求,致谢应该在参考文献的前面,不编章号,而附录应该位于参考文献后。
% 有待修复
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{参考文献} % bibliography会自动显示参考文献四个字
\addcontentsline{toc}{chapter}{参考文献} % 由于参考文献不是chapter,这句把参考文献加入目录
\nocite{*} % 该命令用于显示全部参考文献,即使文中没引用
% cls文件中已经引入package,这里不需要调用 \bibliographystyle 了。
%\bibliographystyle{gbt7714-2005}
%\bibliography{reference}

\printbibliography

%\bibliography{hutbtheisi_main}
\newpage


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 附录部分
%
% 根据学校要求,正文中不应出现长篇幅的代码段或公式推证
% 应单独放置在正文后的附录部分
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% https://www.zhihu.com/question/29413517/answer/44358389 %
% 说明如下:
% secnumdepth 这个计数器是 LaTeX 标准文档类用来控制章节编号深度的。
% 在 article 中,这个计数器的值默认是 3,对应的章节命令是 \subsubsection。
% 也就是说,默认情况下,article 将会对 \subsubsection 及其之上的所有章节标题进行编号,也就是 \part, \section, \subsection, \subsubsection。LaTeX 标准文档类中,最大的标题是 \part。它在 book 和 report 类中的层级是「-1」,在 article 类中的层级是「0」。这里,我们在调用 \appendix 的时候将计数器设置为 -2,因此所有的章节命令都不会编号了。不过,一般还是会保留 \part 的编号的。所以在实际使用中,将它设置为 0 就可以了。

% 在修改过程中请注意不要破环命令的完整性

% \renewcommand\appendix{\setcounter{secnumdepth}{-2}}
%\appendix
%\include{content/appendix}

\end{document}
2 changes: 1 addition & 1 deletion critical/undergraduate/content/abstracten.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
%!TEX root = ../csuthesis_main.tex
%!TEX root = ../hutbthesis_main.tex
\keywordsen{Hazardous Driving Scenarios \ \ Reinforcement Learning \ \ Scenario Generation \ \ CARLA Simulation}
\begin{abstracten}

Expand Down
4 changes: 2 additions & 2 deletions critical/undergraduate/content/abstractzh.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
%!TEX root = ../csuthesis_main.tex
%!TEX root = ../hutbthesis_main.tex
% 设置中文摘要
\keywordscn{危险驾驶场景\quad 强化学习\quad 场景生成\quad NSGA-II CARLA仿真}
\keywordscn{危险驾驶场景\quad 强化学习\quad 场景生成\quad CARLA仿真}
%\categorycn{TP391}
\begin{abstractzh}

Expand Down
4 changes: 2 additions & 2 deletions critical/undergraduate/content/chapter1.tex
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ \section{本文结构框架}
本文以问题提出→理论基础→基准实现→改进对比→总结展望为线索进行论述,共五章,各部分之间关系见图~\ref{img-1}。
\begin{figure}[ht]
\centering
\includegraphics[width=0.8\textwidth]{figure_1.png}
\includegraphics[width=\textwidth]{figure_1.png}
\caption{论文结构框架图}
\label{img-1}
\end{figure}
Expand All @@ -52,6 +52,6 @@ \section{本文结构框架}

第三章主要介绍一种基于深度强化学习(DRL)框架下极端驾驶场景生成器的设计与实现,以深度Q网络(DQN)作为核心算法对对抗式智能体进行研究。在状态空间中考虑目标车辆以及自身车辆之间的空间几何关系、两者之间相对速度、所在车道数等因素;在动作空间方面选取加速减速、转向和平移三种动作构成一个动作集。为了提高模型的效果同时也保证其有效性,在奖励函数中加入为了保护自身车辆的安全而设计的惩罚项,进而改进算法优化过程。利用CARLA模拟器展示生成场景并导出标准格式的数据集文件(例如.xosc),在此之上进行十个不同类型的极端驾驶情况测试来检查提出的方案是否可行以及有效。

第四章主要探讨使用Proximal Policy Optimization(PPO)算法生成极端驾驶情境以及对其评价的方法。由于传统的深度强化学习方法(例如Deep Q-Network, DQN等)难以处理具有连续动作空间并且有较大不确定性的决策问题,因此本文基于PPO进行改进来解决其应用于连续动作域的问题。文中设计了一种专门针对某类应用场合下的网络结构优化方案,并提出了一种新的可调节奖励设计思路,在此基础上还提出了一系列提高训练鲁棒性的技术手段。最后搭建一个一致的标准测试环境,在安全性(如最小碰撞距离、发生碰撞的概率)、场景丰富程度(如行为分布的一致性及覆盖区域的广泛性)以及生成速度上比较基于PPO算法得到对抗样本集与使用DQN的经典基线模型的优劣,从而证明该方法的有效性和实用性。
第四章主要探讨使用PPO算法生成极端驾驶情境以及对其评价的方法。由于传统的深度强化学习方法(例如Deep Q-Network, DQN等)难以处理具有连续动作空间并且有较大不确定性的决策问题,因此本文基于PPO进行改进来解决其应用于连续动作域的问题。文中设计了一种专门针对某类应用场合下的网络结构优化方案,并提出了一种新的可调节奖励设计思路,在此基础上还提出了一系列提高训练鲁棒性的技术手段。最后搭建一个一致的标准测试环境,在安全性(如最小碰撞距离、发生碰撞的概率)、场景丰富程度(如行为分布的一致性及覆盖区域的广泛性)以及生成速度上比较基于PPO算法得到对抗样本集与使用DQN的经典基线模型的优劣,从而证明该方法的有效性和实用性。

第五章 总结与展望。总结全文主要工作内容以及成果、创新之处,指出现有工作的不足并提出进一步的研究设想。
11 changes: 7 additions & 4 deletions critical/undergraduate/content/chapter2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ \subsection{强化学习基本框架}
强化学习目标就是寻求最优策略$\pi^*$,使从某个初始状态出发所获得的总折现奖励期望最大,即:
\begin{equation}
\pi^* = \arg\max_{\pi} \mathbb{E}_{\pi}\left[ \sum_{t=0}^{\infty} \gamma^t R(s_t, a_t) \right]
\label{eq:rl_objective}
\end{equation}

\subsection{DQN算法原理}
Expand All @@ -59,6 +60,7 @@ \subsection{DQN算法原理}
深度强化学习(DQN)的基本思路为用一个较深的神经网络拟合状态动作价值函数($Q(s,a)$),这个值表示在给定状态下采取某个动作后能得到的平均未来奖励,而它的最终目的是让经验数据学习尽可能接近贝尔曼最优方程给出的目标。
\begin{equation}
Q^{*}(s,a) = R(s,a) + \gamma \sum_{s'} P(s'|s,a) \max_{a'} Q^{*}(s',a')
\label{eq:bellman_optimal}
\end{equation}

DQN在传统Q学习的基础上引入了两项关键改进:
Expand All @@ -68,26 +70,27 @@ \subsection{DQN算法原理}
(2)目标网络(Target Network):为了使策略学习和价值估计分开,在DQN的基础上增加了一个双网络的方法。其中主网络用于进行每次动作的选择,而目标网络只用来求出目标Q值并且保持其参数基本不变,在每隔一段时间之后,目标网络就会用来自主网络的权值更新自身的权值从而提高整个算法的鲁棒性和收敛速度,它的损失函数可以用如下的方式来表示:
\begin{equation}
L(\theta) = \mathbb{E}_{(s,a,r,s') \sim D} \left[ \left( r + \gamma \max_{a'} Q(s',a';\theta^-) - Q(s,a;\theta) \right)^2 \right]
\label{eq:dqn_loss}
\end{equation}

其中$\theta$是主网络的参数,$\theta^-$是目标网络的参数。

由于DQN算法对于离散的动作空间具有良好的适用性,在该应用场景下,可以将目标车辆可进行的操作对应到一定数量离散的状态集(例如加速、减速、变道等),利用DQN来学习各个状态下最优的动作。
\subsection{PPO算法原理}
一种基于OpenAI于2017年提出的一种新的策略梯度优化方法——近端策略优化(Proximal Policy Optimization, PPO),它打破了传统的强化学习的思想是以价值函数为中心的思想。不同于以往使用价值函数来进行间接选择的方法,PPO是直接对策略网络$\pi(a|s)$进行优化得到每一个状态下的各个动作的概率大小。这使得PPO具有更好的效果以及更广泛的应用场景。

Proximal Policy Optimization (PPO) 的主要思想是在策略更新时找到一个在每一轮都可使算法得到改进同时又不至于因为调整过大而导致不稳定的方法,在此基础之上提出了梯度裁剪的方法来限制每个训练步骤中对策略参数的改变量,进而避免由于改变过多带来的问题。
PPO的主要思想是在策略更新时找到一个在每一轮都可使算法得到改进同时又不至于因为调整过大而导致不稳定的方法,在此基础之上提出了梯度裁剪的方法来限制每个训练步骤中对策略参数的改变量,进而避免由于改变过多带来的问题。

PPO的目标函数为:
\begin{equation}
L^{\text{CLIP}}(\theta) = \mathbb{E}_t\left[ \min\left( r_t(\theta)\hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t \right) \right]
\label{eq:ppo_clip_objective}
\end{equation}

其中:

(1)PPO在训练时使用了一个概率比来表示新旧策略变化大小。
\begin{equation}
r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}
\label{eq:ppo_ratio}
\end{equation}

(2)$A_t$是优势函数的估计值,在状态$s_t$下执行动作$a_t$相比于平均值的优势。
Expand All @@ -109,7 +112,7 @@ \subsection{DQN与PPO的对比分析}

(3)训练更加稳定,不易出现Q值过估计或发散问题。

本文基于Proximal Policy Optimization (PPO) 算法,提出更加复杂以及具有较高难度极限驾驶任务的同时也对这两种经典方法进行比较研究。为了更好地突出两者区别,本文从不同方面对其进行对比,包括它们的基本原理、学习速度以及鲁棒性等(如表~\ref{tab:dqn_ppo_compare}所示)\cite{zhang2025deep}。
本文基于PPO算法,提出更加复杂以及具有较高难度极限驾驶任务的同时也对这两种经典方法进行比较研究。为了更好地突出两者区别,本文从不同方面对其进行对比,包括它们的基本原理、学习速度以及鲁棒性等(如表~\ref{tab:dqn_ppo_compare}所示)\cite{zhang2025deep}。
\begin{table}[htbp]
\centering
\caption{DQN与PPO算法对比表}
Expand Down
Loading
Loading