https://www.gravatar.com/avatar/3c36d6726b341ff003490168e1897f84?s=240&d=mp

强化学习概述

前面其他的基本都是和监督学习相关

用于收集标记困难的情况(游戏?)

本质也是找一个 Function

https://s2.loli.net/2025/03/03/zBVbaSwXNPhctvs.png

元素:

  • Actor
  • Environment

不断循环进行输入输出(考虑程序的 Actor 模型);有一个结束条件,比如游戏结束
多个 episode

Pytorch

数据准备

from torch.utils.data import Dataset,DataLoader
Dataset :构建自己的数据类,需要重写 get 和 len
DataLoader 吐数据的类(包括了 batch 和 shuffle)

1
2
3
4
5
6
7
class MyDataset(Dataset):
	def __init__(self,file):
		self.data = ...
	def __getitem__(self, index):
		return self.data[index]
	def __len__(self):
		return len(self.data)

GPU 计算

1
2
3
torch.cuda.is_available()

x.to('cuda')

梯度计算

函数用 backward() 计算微分,然后对自变量取 gard 得到梯度

李宏毅机器学习

【1】工作区/计算机/人工智能/学习/李宏毅课程/Pytorch 和 Colab 之后可以具体学习一下

反向传播等训练用到的原理可以滞后再看,先学习模型特性和推理本身

超参数

  • 学习率
  • 每层神经元数量
  • 神经元层数
  • Batch Size(计算速度和优化两个维度)
  • RMSProp 梯度重要性参数
  • 网络结构

需要评估测试,在调整超参数会有怎样的变化,可以做出表格,对比曲线(本质就是实验),最简单是找出过拟合点(因为一开始目标是解决欠拟合,但是不断拟合会有对新数据预测能力变差的过拟合)

A 寻路算法

启发式算法,网格搜索算法。

先评估(代价函数 f(n) = g(n) + h(n) )更新网格信息,进行寻路。
其中 g(n) 指的是从起始格子到格子 n 的实际代价,而 h(n) 指的是从格子 n 到终点格子的估计代价。
对于 h(n)