- 博客(142)
- 收藏
- 关注
原创 强化学习的分类
强化学习分两种:一种是片段式强化学习episodic reinforcement learning;一种是连续式强化学习(continuous reinforcement learning)
2025-01-23 00:19:12
165
原创 过参数化神经网络
传统机器学习理论认为,过多参数容易导致过拟合,让模型在训练数据上表现优异,但在测试数据上性能大幅下滑。然而,现代深度神经网络却常常采用过参数化设计,它们借助一些特殊的优化算法、正则化手段,像是随机梯度下降、批归一化、权重衰减等,不但没有遭遇严重过拟合,反而在大数据集下展现出超强的拟合能力与泛化性能,推动了图像识别、自然语言处理等诸多领域的发展。过参数化神经网络:在深度学习领域,过参数化神经网络指的是模型所具有的参数数量远超成功完成给定任务实际所需的数量。
2025-01-12 20:24:22
334
原创 nn.LayerNorm(n_embd)可学习参数,以及如何参与运算的
nn.LayerNorm 是一个用于实现层归一化的模块。它的主要作用是对输入的特征进行归一化,以提高模型的训练稳定性和收敛速度。
2024-11-19 17:48:54
646
原创 不同随机数生成的含义
random.seed(all_args.seed): 设置Python内置的随机数生成器的种子,影响Python中的随机数生成。: 设置PyTorch在所有CUDA设备上的随机种子,以确保多GPU环境下的一致性。: 设置PyTorch在CUDA上的随机种子,用于GPU加速的随机数生成。: 设置PyTorch的随机种子,用于生成随机数,以确保实验的可重复性。: 设置NumPy的随机种子,用于NumPy库中的随机数生成。
2024-08-07 23:23:30
237
原创 数学和计算领域中病态(ill-conditioned)的含义
ill-conditioned 表示一个问题或系统在数值计算中具有不稳定性或敏感性,即使输入数据有轻微的变化,也可能导致输出结果的显著变化。这种情况下,算法可能会产生不准确的结果,甚至无法收敛到正确的解决方案。病态(ill-conditioned),在数学和计算领域中,病态问题通常指的是输入数据的微小变化可能导致输出结果的剧烈变化,这会使得问题的求解变得困难或不稳定。
2024-07-24 10:55:24
349
原创 $\mathcal{S} \rightarrow \Delta(\mathcal{A})$这里的$\Delta(\mathcal{A}$是什么含义
2024-07-24 09:13:41
148
原创 策略迭代和值迭代的定义和区别
总的来说,策略迭代和值迭代都是解决MDP中最优策略的经典方法,它们在迭代方式和更新策略的顺序上有所不同。策略迭代(Policy Iteration)和值迭代(Value Iteration)是强化学习中常用的两种经典算法,用于解决马尔可夫决策过程(MDP)中的最优策略。策略迭代是一种交替进行策略评估和策略改进的方法。在每次迭代中,首先进行策略评估,估计当前策略的价值函数;然后进行策略改进,根据估计的价值函数更新策略。在每次迭代中,根据当前的价值函数进行贪婪策略改进,然后更新价值函数以获得更准确的估计。
2024-06-12 15:44:16
748
原创 nn.GRU和nn.GRUCell区别
nn.GRU是一个完整的GRU层,它接受一个3D输入张量(batch_size, seq_length, input_size),输出也是一个3D张量(batch_size, seq_length, hidden_size)。nn.GRUCell是GRU的单个单元,它接受一个2D输入张量(batch_size, input_size),输出也是一个2D张量(batch_size, hidden_size)。总的来说,nn.GRU更适合处理整个序列,而nn.GRUCell更适合需要灵活控制的场景。
2024-06-04 15:21:10
1486
原创 ValueError: Reference at ‘refs/heads/master‘ does not exist
【代码】ValueError: Reference at ‘refs/heads/master‘ does not exist。
2024-05-21 19:33:59
237
原创 pycharm运行正常,但命令行执行提示module不存在的多种解决方式
在PyCharm设置了Sources Root,向系统变量增加了当前目录的根目录,所以PyCharm运行时能找到自定义包的。但Pyhton命令行执行时少了添加根目录路径的步骤,导致找不到包了。os.path.dirname获取目录,此处就是获取目录的父目录。如果目录层级更多,就需要多加一层 os.path.dirname。
2024-05-07 15:04:36
956
原创 Pytorch中的nn.Embedding()
Embedding.weight(Tensor)–形状模块(num_embeddings,Embedding_dim)的可学习权重,初始化自(0,1)。也就是说,pytorch的nn.Embedding()是可以自动学习每个词向量对应的w权重的。模块的输入是一个索引列表,输出是相应的词嵌入。
2024-04-06 23:18:13
424
原创 点积,哈大马积,向量外积,矩阵乘法
例如,如果有两个矩阵 A = torch.tensor([[1, 2], [3, 4]]) 和 B = torch.tensor([[5, 6], [7, 8]]),它们的矩阵乘法为 torch.matmul(A, B),结果为 [[1。例如,如果有两个张量 A = torch.tensor([[1, 2], [3, 4]]) 和 B = torch.tensor([[5, 6], [7, 8]]),它们的哈达马积为 A * B = [[1。哈达马积是指两个具有相同形状的张量的对应位置元素相乘。
2024-04-03 15:16:48
685
原创 einops中的rearrange的使用方法
在 einops 中,rearrange 函数用于对张量进行重排操作,即重新排列张量的维度顺序或形状。‘b’、‘h’、‘w’ 等:表示具体的维度名称,也可以使用数字表示索引。这个操作会将张量的维度按照指定的顺序进行重新排列。pattern:用于指定重排规则的模式字符串。einops中的rearrange的使用方法。‘->’:表示重排后的维度顺序。tensor:要重排的张量。’:表示连续的任意维度。
2024-04-03 11:26:50
892
原创 oracle value function in RL
oracle就是一个函数,这个函数知道每个状态的价值函数的真实值。我们寻找近似函数去拟合这个真值函数,并以这两个函数的差的平方为损失函数,最小化损失函数以此来寻找最佳近似函数。
2024-03-30 12:16:19
171
原创 markov potential games
马尔可夫潜在博弈主要关注多智能体系统中的非合作决策制定,每个智能体都追求最大化其个体长期奖励。在这种情况下,智能体的决策会影响环境的状态转移概率,从而影响其他智能体的奖励。因此,马尔可夫潜在博弈更侧重于描述多智能体系统中的竞争和相互影响。合作博弈则更侧重于描述多智能体系统中的合作与协调。在合作博弈中,智能体之间通常会合作以达成共同的目标,并分享合作所产生的收益。合作博弈的研究通常涉及如何分配收益以激励智能体之间的合作,以及如何形成合作联盟以实现共同利益。
2024-03-30 10:56:38
183
原创 变分信息瓶颈
变分信息瓶颈和互信息的定义1 变分信息瓶颈定义:变分信息瓶颈(Variational Information Bottleneck)是一种用于学习数据表示的方法,它旨在通过最小化输入和表示之间的互信息来实现数据的压缩和表示学习。这种方法通常用于无监督学习中,通过在训练过程中限制表示和输入之间的信息流,从而学习到更加紧凑和具有信息量的数据表示。
2024-03-29 21:32:00
857
1
原创 运行pycharm中的project的时候出现:ValueError: Reference at ‘refs/heads/master‘ does not exist
【代码】运行pycharm中的project的时候出现:ValueError: Reference at ‘refs/heads/master‘ does not exist。
2024-03-05 22:34:49
723
原创 policy-space response oracles (PSRO)含义
Algorithm 1 维护了一个所有玩家策略的策略池。然后循环地选定玩家,然后从他的策略集中选择出一个策略,固定其它所有玩家此时的策略,然后不断地训练这个策略使得该策略成为一个在别的玩家策略不变的情况下、近似的best respond。然后将其加入策略集合中。
2024-03-05 14:34:25
555
原创 Nash equilibrium(纳什均衡)中的“exploitability“(可利用性)
在博弈论中,Nash equilibrium(纳什均衡)中的"exploitability"(可利用性)指的是在给定的策略配置下,某个玩家可以通过改变自己的策略来获得更高的收益或者改进自己的情况。如果一个纳什均衡点具有低可利用性,意味着在该点附近,没有玩家能够通过改变自己的策略来显著提高自己的收益。相反,如果一个纳什均衡点具有高可利用性,那么至少有一个玩家可以通过调整策略来获得更好的结果,从而使当前的均衡状态不稳定。
2024-03-04 16:14:50
463
原创 在 Ubuntu 中为文件夹创建快捷方式
在 Ubuntu 中,你可以使用 ln 命令来创建文件夹的快捷方式,也称为符号链接。创建成功后,你会在当前目录下看到一个名为 shortcut 的文件,它指向了 /path/to/target_folder。其中,/path/to/target_folder 是目标文件夹的路径,shortcut 是你想要创建的快捷方式的名称。通过这种方式,你就可以在 Ubuntu 中为文件夹创建快捷方式了。
2024-03-02 20:28:59
2189
1
原创 python中的参数parse的使用方法
总体而言,使用 – 前缀的参数通常是可选参数,而没有前缀的参数通常是位置参数。可选参数可以在命令行中以任意顺序出现,而位置参数必须按照定义的顺序提供。示例:python script.py --base_directory /path/to/directory。使用了前缀 --,表示这是一个可选参数,可以在命令行中使用 --base_directory 指定参数值。没有前缀 --,表示这是一个位置参数,必须在命令行中按照顺序提供参数值。parse方法使用灵活,在次记录,从而备忘。
2024-01-20 14:23:32
1656
原创 Python导入自定义模块时ModuleNotFoundError问题
sys.path中是不包括当前这个module所在的目录的,因此要手动添加根目录。
2024-01-10 10:57:48
669
原创 神经网络输出的logstd?
神经网络输出的 logstd 通常是指预测的标准差(standard deviation)的对数值,在一些深度学习中,特别是在连续动作空间的强化学习任务中,通过神经网络输出动作的均值(mean)和标准差来表示一个分布,通常是高斯分布。那为什么不直接输出标准差std呢?由于标准差是非负的,为了使神经网络的输出在任意范围内都有效,通常会输出标准差的对数值而不是标准差本身。logstd 可以保证输出是实数域上的,而不会受到标准差必须是正数的限制。在实际使用中,可以通过指数运算来将 logstd 转换为标准差
2023-12-28 21:31:29
523
原创 if-elif-else
具体来说,当 if 或 elif 中的条件成立时,将执行对应的代码块,然后整个 if-elif-else 结构终止,不再执行其他分支。在这个例子中,如果 a 的值是 15,那么只有第一个条件 a > 10 成立,因此将执行相应的代码块,而不会执行 elif 和 else 中的代码块。如果 a 的值是 10,那么第一个条件 a > 10 不成立,但是第二个条件 a == 10 成立,因此将执行第二个条件对应的代码块。总的来说,只有满足第一个成立的条件,相应的代码块才会执行,而后面的条件不会再被检查。
2023-12-11 17:12:56
534
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人