File size: 2,652 Bytes
7e1f96f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# Ubiquant 字符猎手决赛方案

## 一、模型架构

### 1. 字符识别模型
- 基础网络:ResNet(训练过resnet18, resnet34, resnet50,最终采用resnet18)
- 开放集识别:OpenMax 
- 特点:能够有效处理未知类别的字符识别问题
  
### 2. 模型训练
- 使用字符识别数据集进行训练
- 使用交叉熵损失函数进行训练 (考虑加上triplet loss来调整类内和类间间距,但收敛效果不好)
- 使用AdamW优化器进行优化
- 基于验证集的准确率进行模型选择
- 设置了alpha, tailsize, threshold等超参数的搜索,采用网格搜索

## 二、字符收集策略

### 1. 基本定义
- 智能体需拾取144个物体,构成可定义所有网格拾取顺序的集合为动作空间:
- A = {a} = {< (x₀,y₀), (x₁,y₁), ... (x₁₄₄,y₁₄₄) > : xᵢ ≠ xⱼ, yᵢ ≠ yⱼ, i,j ≥ 1}
- 其中(x₀,y₀)为智能体初始位置
- 根据组合定理,动作空间的元素个数为:Card(A) = 144!

### 2. 基于广义成本的轨迹评估
计算成本包含两个部分:
1. 执行成本(PC):
   ```

   PC = 144 + ∑ᵢ₌₀¹⁴³‖(xᵢ₊₁ - xᵢ, yᵢ₊₁ - yᵢ)‖₁

   ```

2. 存储成本(SC):
   ```

   SC = ∑ₑₗᵢₘ₍ᵢ₎₌Fₐₗₛₑ[∑ᵢ‖(xᵢ₊₁ - xᵢ, yᵢ₊₁ - yᵢ)‖₁] - 4

      · ∑ₑₗᵢₘ₍ᵢ₎₌Tᵣᵤₑ[∑ᵢ‖(xᵢ₊₁ - xᵢ, yᵢ₊₁ - yᵢ)‖₁]

   ```

3. 广义成本:
   ```

   C = PC/10 + SC/144

   ```

4. 累计奖励:
   ```

   reward_cum = 136 - C

   ```

### 3. 初始次优轨迹生成
- 每收集4个相同物品,就能发生消除并获得奖励
- 采用一种次优选择方法生成初始轨迹
- 按照物品类别统计网格位置
- 然后随机取一批4个同类网格
- 按照最小化广义成本的原则添加到已有轨迹中

### 4. 随机扰动轨迹优化
- 考虑先添加的网格对后续网格的影响
- 初始轨迹是次优的,需要进一步优化
- 采用随机扰动:每次从轨迹中随机选出一个网格
- 按照最小化广义成本重新插入
- 重复1000次

### 5. 随机重启轨迹集成
- 随机扰动轨迹优化能改善局部轨迹,但无法进行全局优化
- 选择200种初始轨迹批次选择顺序
- 生成200条优化轨迹
- 从中选择最优轨迹

### 6. 调优策略
1. 参数调优
   - 调整随机扰动次数
   - 优化轨迹集成数量
   - 微调广义成本中PC和SC的权重

2. 策略改进
   - 优化初始轨迹生成算法
   - 改进随机扰动方式
   - 设计更好的评估函数