进阶 - 元学习
Published on
简介
普通的机器学习算法从训练数据中学习出规律,之后用来对新的数据进行预测。元学习,意为“学习如何学习”,也是一个机器学习算法,不过它学习的目标不是某一个具体任务,而是学习任务本身。Qlib提供了元控制器模块用于进行元学习,该模块可以从一系列预测任务中学习出规律,用于指导之后的预测任务。用户可以基于元控制器模块实现自己的元模型。
元任务
元任务实例是元学习框架的基本元素,它保存有元模型能够使用的数据。多个元任务实例可以使用相同的由元数据集控制的数据处理器。用户应当使用prepare_task_data
函数获取能够直接输入元模型的数据。
元数据集
元数据集控制元信息的生成过程,它负责为训练元模型提供数据。用户应当使用prepare_tasks
函数获取一个元任务实例列表。
元模型
通用元模型
元模型实例是控制工作流的部分。元模型的使用方式是:
- 通过
fit
函数训练元模型 - 通过
inference
函数给出有用的信息以指导工作流
元任务模型
此类元模型可以直接与任务定义交互,它们通过修改基础任务的定义对其进行指导。可以使用prepare_tasks
函数获取修改后的基础任务定义。
元指导模型
此类元模型参与基础模型的训练过程,它们通过在基础模型训练时进行指导以提高其性能。
例子
Qlib提供了元模型的一个实现:DDG-DA
,它可以适应市场的变化。DDG-DA
包含以下4个步骤:
- 计算元信息并封装进元任务实例,所有元任务构成一个元数据集实例
- 使用元数据集中的训练数据训练
DDG-DA
- 推理
DDG-DA
以获取指导信息 - 在基础模型上应用指导信息以提高其性能
该例子可以在文件examples/benchmarks_dynamic/DDG-DA/workflow.py
中找到。