返回列表

9th place solution(s)

383. Abstraction and Reasoning Challenge | abstraction-and-reasoning-challenge

开始: 2020-02-13 结束: 2020-05-27 数学与计算 数据算法赛
第9名解决方案

第9名解决方案

作者: Hieu Phung (Deep Magicians 团队)

在这场有趣的比赛的最后一周,看到所有团队的巨大进步真是太棒了。像许多其他人一样,我和我的队友们度过了一个不眠之夜,专注于最后的“入场券”。

这里有一个简短的列表来总结我们团队的解决方案:

  • 2个 DSL(领域特定语言):8/102
  • 2个公开内核:2/102
  • CA(细胞自动机):2/102
  • CA + 投票:1/102
  • DSL + 对齐:1/102

@user189546 的 DSL 和 CA,以及她的原话

我在团队解决方案中的部分在排行榜(LB)上得了7分。
它由两种方法组成:

  • 裁剪对象 + 对称变换(5分)。它与 @yukikubo123 的 DSL+搜索解决方案有2个任务重叠。
  • 细胞自动机循环 CNN 公开内核 + 按频率编码颜色(2分,但第一次它得了3分,之后再没发生过)。

1) 裁剪对象

这场比赛之所以难有很多原因,其中一个原因是巨大的输出空间。当我加入比赛时,我想快速获得第一个小胜利。所以我查看了具有小输出空间的任务——裁剪对象任务。第一个对象裁剪内核得了2分,当我添加更多的对象提取函数和对称变换时,它得了5分。

内核使用暴力搜索来找到正确的对象提取函数和正确的对称变换。如果可能的唯一裁剪候选数 > 3,它会预测3个最大的对象。小对象可能是特征或噪声。该解决方案在 Python 中运行需3分钟。

伪代码:

bg_color = detect_bg(task) # 找到背景色作为接触输入三边的图形颜色。
get_object_funcs = [get_objects_by_color, get_objects_by_connectivity, get_objects_by_color_and_connectivity, get_objects_rectangles_without_noise, ….]
    
symmetry_funcs = [identity, flip, rotate, tile, zoom, flip_diagonal, …]
    
for get_object_func in get_object_funcs:
        for symmetry_func in symmetry_funcs:
            train_prediction_candidates =  symmetry_func(get_object_func( task_train_examples))
            if task_train_outputs in crop_candidates:
                break
    test_prediction_candidates = symmetry_func(get_object_func(task_test_examples))
    test_predictions = unique(sort_by_size(test_prediction_candidates))[:3]

示例笔记本

2) CA + ColorFreqEncoder

感谢 @teddykoker,我们有了很棒的 CA 内核:https://www.kaggle.com/teddykoker/training-cellular-automata-part-ii-learning-tasks。它在训练和评估中解决了许多各种任务,但在 LB 上没有得分。我添加了按频率编码颜色(0 – 最常见的颜色,1 – 第二常见的颜色,2 - …)并固定了所有随机种子。内核性能具有高度随机性,因此没有随机种子它是不可复现的。当我第一次提交时没有固定所有随机种子,它得了0.97分,然而当我固定随机种子后,它得了0.98分。

示例笔记本


@yukikubo123 的 DSL

我不会在这里发布这个解决方案的细节,因为 @yukikubo123 的 GitLab 仓库本身就足以展示他所有令人惊叹的艺术作品
-> https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/


@tarobxl 的对齐技术

在观察数据时,@tarobxl 曾想:“我们能否通过将任务的训练对旋转到同一方向,来简化模型的学习过程。”我和他将这个想法应用到了所有可用的解决方案/模型中,幸运的是它与 @yukikubo123 的 DSL

同比赛其他方案