美文网首页深度学习
机器学习的通用工作流程

机器学习的通用工作流程

作者: 庵下桃花仙 | 来源:发表于2019-03-29 22:55 被阅读0次

    1 定义问题,收集数据集

    • 搞清楚输入的数据是什么?要预测什么?(通常数据可用性是限制因素)
    • 搞清楚面对的是什么类型的问题,便于选择模型架构、损失函数等
    • 假设输出是可以根据输入进行预测的
    • 输入数据中包含足够多的信息,足以学习输入和输出之间的关系
      对于非平稳问题(服装推荐引擎):
      1、不断利用最新数据训练模型;
      2、在一个问题是平稳的时间尺度上收集数据。
      机器学习有个假设:未来的规律与过去相同,事实往往并非如此。

    2 选择衡量成功的指标

    精度?准确率?召回率?客户保留率?衡量成功的指标指引我们选择损失函数。

    问题 衡量成功的指标
    平衡分类问题(每个类别可能性相同) 精度或接受者操作特征曲线下面积(area under the receiver operating characteristic curve, ROC AUC)
    平衡问题 准确率和召回率
    排序问题或多标签分类 平均准确率均值(mean average precision)

    3 确定评估方法

    • 留出验证集(数据量很大)
    • K折交叉验证(留出验证的样本太少)
    • 重复的K折验证(可用数据很少)
      通常,第一种方法足以。

    4 准备数据

    • 将数据格式化为张量
    • 这些张量的取值通常应该缩放为更小的值,比如[-1,1]区间或[0,1]区间
    • 如果不同的特征具有不同的取值范围(异质数据),那么应该做数据标准化
    • 可能需要做特征工程,尤其是小数据问题

    5 开发比基准更好的模型

    这个阶段的目的是获得统计功效(statistical power),开发一个小模型,打败随机基准(dumb baseline)。如MNIST中,任何精度大于0.1可以说具有统计功效。
    还需要选择3个关键参数

    • 最后一层激活。如IMDB分类最后一层用 sigmoid 激活,回归在最后一层无激活
    • 损失函数。应该匹配解决问题的类型
    • 优化配置。通常使用 rmsprop 即可
    问题类型 最后一层激活 损失函数
    二分类问题 sigmoid binary_crossentropy
    多分类、单标签问题 softmax categorical_crossentropy
    多分类、多标签问题 sigmoid binary_crossentropy
    回归到任意值 mse
    回归到0到1范围内的值 sigmoid mse或binary_crossentropy

    6 增大模型规模:开发过拟合的模型

    1、添加更多的层
    2、让每一层变的更大
    3、训练更多的轮次

    7 模型正则化与调节超参数

    • 添加 dropout
    • 尝试不同的架构:增加或减少层数
    • 添加 L1 和 / 或 L2 正则化
    • 尝试不同的超参数(每层单元个数或优化器的学习率),找到最佳配置
    • (可选)反复做特征工程:添加新特征或删除没有信息量的特征

    一旦开发出满意的模型配置,在所有可用数据(训练数据+验证数据)上训练模型,在测试集上最后评估一次。如果性能差,则意味验证流程不可靠,或者调参时验证数据上过拟合,选择更可靠的评估方法,如重复K折验证。

    相关文章

      网友评论

        本文标题:机器学习的通用工作流程

        本文链接:https://www.haomeiwen.com/subject/bumhbqtx.html