CATSMILE: A CATalogue of Statistical Machine Learning Error functions

Github: https://github.com/shouldsee/catsmile

简介

目录

8001: CATSMILE简介

我们的目标是,让天下没有难建的模型!

  • 项目目标

    • 通过将不同模型/损失函数,标准化成人类可读性高的数据,从而加快建模理念在社区中的传播,促进建模技术的发展。

      • 完成度: CATSMILE-1019基于KL损失对很多常见模型进行了梳理

    • 建立类似arXiv的统一数据库,为建模教学和建模实践提供公共资源。

      • 完成度: 并未评估本项目的教学效果

    • 科普(基于概率图模型的)机器学习建模方法,降低建模方法的学习难度。

      • 完成度: 并未评估科普的可读性,目前身边非ML从业者普遍认为难以读懂

  • 数据模型的设计目标

    • 高可读性:由读者进行评价,每个损失函数都有自测习题,衡量读者理解程度。

    • 可计算性和可验证性,每个损失函数都尽量要有程序语言和对应数据进行示范计算。

    • 可转换性:数据需要能够在不同形式间进行正确转换。

    • 可组合性,损失函数需要有一个高效的组合语法。

    • 可验证性: 实践是检验真理的唯一标准, 把抽象的损失函数逐步实体化可视化的过程, 蕴含着工程难度

    • 用消融实验和,PGM等价物,可视化等促进神经网络机器学习的可解释性 CATSMILE-9019

  • 相似理念:

  • 数据模型的具体形式和清洗标准:

    • 问题: 约束过于强,不符合写作习惯.

    • 数据样例:1001: CTC Loss 结构解析

    • 函数全称

    • 函数解决的问题/不使用的后果 (类似于简述消融实验的影响)

    • 函数解决改问题的原理

    • 函数可能存在的问题

    • 函数在某一场景下的具体形式

    • 函数的具体计算方法

    • 函数备注

    • 函数参考信源

  • 项目背景:

    • 损失函数是一个有悠久历史的概念,有来自概率论,函数拟合,最优化理论的渊源,自波尔兹曼机伊始, 或者可以追溯到更早的线性回归乃至高斯分布,损失函数贯穿了统计学习的发展脉络,也是不可或缺的机器 学习基本抽象工具。而在机器学习蓬勃发展的今天,损失函数迎来了爆炸式的多样化增长,各式各样的损失 函数散落在学术文章,公共私有仓库,各类书籍的各个角落——每个解决特定问题的模型,都有其独特的损失 函数,而这个函数的参数化形式以及计算过程本身,就基本可以刻画模型的结构(有时还要考虑参数初始化 和优化过程)。不同于统计学对先验分布和后验分布的系统性分类(如xx网站),机器学习模型的损失函数 似乎并未得到系统性的梳理(tbc待考证),且通常具有多种表现形式,包括高级程序语言,自然语言, 抽象数学语言,静态数据结构等等。本项目希望进行一次对于损失函数标准化归档的尝试,通过标准化语法 提高建模思想交流的效率,模型查重减少轮子的重复制造,从而避免科研资源的浪费,加快建模方法的创新。

    • 深度学习在近年来获得了飞速发展,以Transformer为代表的动态架构为模型引入了更多的灵活性,但是 要高效地解决实际问题仍然离不开巧妙且符合直觉的设计,或者说准确的先验知识。Deep Image Prior 证明了,神经网络的架构可以认为是一种先验知识,因此对神经网络的结构优化就是对于不断地寻找更有用 的先验函数。但是先验函数的普适性和有效性是否可能是相冲突的呢?我的推测是有一定程度的冲突的, DIR的实验表明,结构先验可以用优化速度来衡量,合适的先验对于其对偶结构有较小的阻抗,允许更快的 梯度下降。如果先验A同时对于数据X和数据Y有较小的阻抗,那么先验A至少要能够对数据X和数据Y做出识 别,然后采取对应的子先验进行处理,否则如果没有这种多模态效应的XY同时小阻抗意味这这个先验可能 对任何数据都是小阻抗也就失去了意义。从这个角度考虑,Transformer模型的有效性,部分来自于这 种对于数据的自动识别和路由,允许同一个网络应对不同的数据,在无监督学习领域取得了长足的进展。 但是体系化物理图景的缺乏,长远来看,仍然将限制神经网络的发展和应用。

    • 大部分的神经网络都可以表示为一个概率图模型,或者概率图模型中概率密度函数的一部分。我相信,在不远的将来,概率图模型和神经网络工程尝试的有机结合,会发展成一套更有生命力的理论体系。因此,CATSMILE希望在这个过程中,鼓励对概率图模型的更多理解和使用,更多地将实际工程经验,转化成可以用PGM描述的先验知识,从而完善一套方向明确的,进行Educated Guess的方法论,让建模过程更加高效美观,也让我们对构造的模型有更全面的了解。

  • 项目路径

    • 数据收集:数据源arXiv,网络爬虫

    • 数据设计:数据格式规划,确定损失函数的数据格式和清洗标准

    • 需求细化:建设POC页面确定人机交互方式。

    • 业务架构:确定数据的生命周期。

    • 技术选型:

      • 仓库 github还是gitee?准备初期先用github因为我比较熟悉gh的框架,但是国内访问gh的壁垒有点高,后期可能要切换到gitee确保中文社区可及性,

      • Github:https://github.com/shouldsee/catsmile

    • 技术需求:

      • 静态页面serving服务

      • 静态页面和后端markdown文本的渲染分离: 考虑 jinja2和hugo,因为我只会写python ,golang还在熟悉中

      • travis-ci 自动验证服务

      • 可及性accessibility

    • ToDo:

      • [TBC,加入自动备份系统]

      • [TBC,加入FigureLegend]

      • [TBC,加入自动抽取TBC标签系统]

      • [TBC,加入考虑图片Array系统]

  • Changelog:

    • 20220515 迁移到jupyper_book+sphinx,方便运行代码 https://jupyterbook.org/en/stable/reference/cheatsheet.html

    • 20220416 迁移到sphinx+myst_parser

    • 20220324 迁移到md形式

    • 20220321 编写了CATSMILE-1001-CTC

    • 20220322 归档了风城纪事的相关文章,需要后续casting,完善数据模型