CATSMILE: A CATalogue of Statistical Machine Learning Error functions
目录
- 目录
- 1001: CTC Loss 结构解析
- 1003: 高斯随机变量的重参数化技巧(Reparametrisation)
- 1005: HMM简介
- 参考
- 1006: Jacobian Matrix And its determinant 雅克比行列式及其行列式 20220418
- 1007: Self Attention 自注意力机制 20220428
- 1009: CSHN 连续态霍氏网络 Continuous State Hopfield Network
- [TBC]1010: 扩散生成模型 Diffusion Generative Model
- 1011: 噪音条件分数网络 noise conditional score network (NCSE)
- 1012: 软极参函数的求导: Differentiating softargmax (or so-called softmax)
- 1013: 从混合模型(MM)及广义期望最大算法(EM)到生成式自编码器(GAE)
- 1014: 自编码器及生成式自编码器 (AE and GAE) Autoencoder and Generative Autoencoder
- 1015: 贝叶斯自编码器 (BAE) Bayesian AutoEncoder
- 1016: 环参数化 Toroidal Parametrisation
- 1017: 高斯隐变量自编码器 GLGAE Gaussian Latent Generative Autoencoder
- 1018: 对抗生成网络 Generative Adverserial Network (GAN)
- 1019: 机器学习中的变分方法与KL恒等式 Variational approaches in machine learning and KL equations
- 1022: 局部线性生成式自编码器 (LLGAE) Locally Linear Generative Autoencoder
- 1024: 简单降噪扩散概率模型的推导 (SDDPM) Simplified Denoising Diffusion Probabilistic Model
- 1025: 降噪梯度对齐(Denoisng Score Matching)
- 1026: 梯度对齐的常用方法 (Recent methods in gradient matching)
- #! https://zhuanlan.zhihu.com/p/542457081
- jupytext: cell_metadata_filter: -all formats: md:myst text_representation: extension: .md format_name: myst format_version: 0.13 jupytext_version: 1.11.5 kernelspec: display_name: Python 3 language: python name: python3
- 1028-从KL散度到海氏距离 From KL divergence to Hellinger Distance
- 3001-知识图谱和NLP句子表示-20220416
- 3002: 从序列生成看模型隐状态的演进
- [TBC] 3005: 神经网络发展脉络
- 3007: 混合模型和期望函数
- 3008: 蛋白质序列设计
- server setup
- 8001: CATSMILE简介
- 8002:构建损失函数的程序语言
- 8500-PyTorch模型常用药
- 8501-20220524:模型复现与分布式建模
- 8800: PyTorch调试小工具 20220418
- 9001: [TBC] L2损失函数-正态分布
- 9002: 连续隐变量的混合模型与卷积
- 9003: [TBC] Junction Tree Algorithm
- 9005: GPT和BERT对比-无监督语言模型
- 9006: 语言模型内容填充
- 9007: BERT 结构解析
- 9008:对于BERT模型隐式分布的一些思考
- 9013-能量视角下的降噪扩散概率模型 DDPM Denoising Diffusion Probabilistic Model
- 9015-卷积神经网络有什么好? Why is CNN better?
- jbex-example: Notebooks with MyST Markdown
8001: CATSMILE简介
我们的目标是,让天下没有难建的模型!
项目目标
通过将不同模型/损失函数,标准化成人类可读性高的数据,从而加快建模理念在社区中的传播,促进建模技术的发展。
完成度: CATSMILE-1019基于KL损失对很多常见模型进行了梳理
建立类似arXiv的统一数据库,为建模教学和建模实践提供公共资源。
完成度: 并未评估本项目的教学效果
科普(基于概率图模型的)机器学习建模方法,降低建模方法的学习难度。
完成度: 并未评估科普的可读性,目前身边非ML从业者普遍认为难以读懂
数据模型的设计目标
高可读性:由读者进行评价,每个损失函数都有自测习题,衡量读者理解程度。
可计算性和可验证性,每个损失函数都尽量要有程序语言和对应数据进行示范计算。
可转换性:数据需要能够在不同形式间进行正确转换。
可组合性,损失函数需要有一个高效的组合语法。
可验证性: 实践是检验真理的唯一标准, 把抽象的损失函数逐步实体化可视化的过程, 蕴含着工程难度
用消融实验和,PGM等价物,可视化等促进神经网络机器学习的可解释性 CATSMILE-9019
相似理念:
MLM ebook https://machinelearningmastery.com/
medium 知识社区
distill 知识社区
kaggle 数据竞赛
hugging face 模型仓库
数据模型的具体形式和清洗标准:
问题: 约束过于强,不符合写作习惯.
数据样例: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确保中文社区可及性,
技术需求:
静态页面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,完善数据模型