- 博客(119)
- 收藏
- 关注
原创 系列29 Deep Boltzmann Machine 背景介绍
Introduction本章介绍的是深度玻尔兹曼机(Deep Boltzmann Machines,DBM),应该算是玻尔兹曼机系列的最后一个模型了。我们前面介绍的三种玻尔兹曼机和今天将要介绍的深度玻尔兹曼机的概率图模型如下图所示,从左往右分别是深度信念网络(Deep Belief Network),限制玻尔兹曼机(Restricted Boltzmann Machine,RBM),和DBM,玻尔兹曼机(General Boltzmann Machine,BM):显然,深度玻尔兹曼机和深度信念网络的区
2023-01-12 00:32:06 272
原创 系列33 Flow_Model
Introduction在上一小节中讲到了Latent Variable Model(LAM),VAE。其主要思想就是将隐变量扩充为高维连续的分布,来增强模型的表达能力。而LAM模型中的核心困难是计算不出来,因为,而的维度过高算不出来。而根据Bayesian公式:所以导致无法计算。而VAE那章介绍了近似推断的方法,使用一个简单分布来近似,其中还使用重参数化技巧来用一个神经网络来代替分布。而在VAE中通过优化变分下界ELBO来达到最终优化的目的,而不是直接对Log似然函数进行优化。所以当然会有误差了。
2023-01-10 23:33:41 468
原创 系列12 变分推断4-SGVI
在上一小节中,我们分析了Mean Field Theory Variational Inference,通过平均假设来得到变分推断的理论,是一种classical VI,我们可以将其看成Coordinate Ascend。而另一种方法是Stochastic Gradient Variational Inference (SGVI)。对于隐变量参数和数据集。是Generative Model,也就是和,这个过程也被我们称为Decoder。是Inference Model,这个过程被我们称为Encoder,表
2022-12-31 12:29:41 534 1
原创 系列19 变分推断2-Algorithm
我们将:Observed data;:Latent Variable + Parameters。那么为complete data。根据我们的贝叶斯分布公式,我们所要求的后验分布为:进行一些简单变换,我们可以得到:在两边同时取对数我们可以得到:公式化简左边 = = 。右边 =其中,被称为Evidence Lower Bound (ELBO),被我们记为,也就是变分。被称为。这里的。由于我们求不出,我们的目的是寻找一个,使得近似于,也就是越小越好。并且,是个定值,那么我们的目标变成了。
2022-12-29 16:07:02 453
原创 生成模型6-重参数技巧
Stochastic Back Propagation (Reparametrization Trick)本章主要介绍的是,神经网络用函数逼近器,那么我们将想想神经网络和概率图模型之间有什么关系呢?能不能用NN去逼近一个概率分布呢?把他们两结合到一起就是随机后向传播,或者称之为重参数技巧。正常情况下简单举例假设是目标分布,其中。我们之前是怎么采样的呢?是先从一个简单的高斯分布中进行采样,然后令,就相当于一个二元一次变换。这样就可以得到采样方法:那么很自然的可以将此函数看成,{}。这是一个关于的函数
2022-12-20 11:39:47 597
原创 《从总账到总监》读书笔记
书本封面内容简介这是一本用小说体例写作的财务专业书籍。工作中如何将财物数据业务化,找到绩效管理的关键点?在人工智能都会写诗的时代,财务这门学科是否会毫无价值?以及在未来,财务人员应该具备哪些专项能力才能不被替代?跨国公司全球首席财务官钱自严与我们分享了一个资深财务人眼中的商业世界,看看他怎样透过数据,以资源效率的视角,揭示绩效管理的秘诀和方法。本书的每个管理工具与财务模型,都代表着一条久经锤炼的管理智慧与商业思维。无论你是怎样的行业背景与职场角色,都可以从中获得认知提升与职场进阶的有益参考。读书笔
2022-12-10 23:27:08 1891 1
原创 命令行界面 (CLI) 应用程序
使用命令行界面 (CLI) 应用程序来组织应用程序的进程。Intuition当模型要提供服务时,需要考虑将应用程序的功能公开给自己、团队成员以及最终最终使用用户。实现这一点的接口会有所不同。回想一下Organization lesson,通过终端和 Python 解释器执行main operationsfrom tagifai import mainmain.elt_data()main.py或者替代方法是在文件中显式调用的操作:# tagifai/main
2022-12-03 12:15:29 1415
原创 Makefile
为应用程序流程组织命令的自动化工具。Intuition尽管只完成了课程的一半,但已经有很多不同的命令需要跟踪。为了帮助组织一切,将使用Makefile一个自动化工具来组织命令。将首先在项目的根目录中创建此文件。在顶部,Makefile需要指定希望所有命令在其中执行的 shell 环境:# MakefileSHELL = /bin/bash成分在Makefile中,将创建一个规则列表。这些规则有一个target,有时prerequisites需要满足(可以是其他目标)
2022-12-02 16:55:21 728
原创 代码文档
为您的团队和您未来的自己代码文档。Intuition代码告诉你_怎么_做,注释告诉你_为什么_。——杰夫·阿特伍德可以通过代码文档来进一步组织代码,让其他人(以及未来的自己)更容易轻松地导航和扩展它。在完成编写代码库的那一刻就最了解代码库,但幸运的是,记录它将使能够快速回到熟悉的心态。文档对开发人员来说可能意味着很多不同的东西,所以让定义最常见的组件:comments:关于为什么存在一段代码的简短描述。typing:函数输入和输出数据类型的规范,提供与函数消耗和产生的内容有关的信息。docst
2022-12-01 10:59:26 483
原创 样式和格式代码
样式和格式约定使代码看起来一致。Intuition阅读代码的频率高于编写代码的频率。——Guido Van Rossum(Python 的作者)当编写一段代码时,几乎从来都不是最后一次看到它或最后一次编辑它。所以需要解释发生了什么(通过文档)并使其易于阅读。使代码更具可读性的最简单方法之一是遵循一致的样式和格式约定。在遵守 Python 样式约定方面有很多选择,但大多数都基于PEP8约定。不同的团队遵循不同的约定,这完全没问题。最重要的方面是:consistency: 每个人都遵循相同的标准。
2022-11-30 15:31:56 479
原创 ML 系统的日志记录
Intuition日志记录是跟踪和记录应用程序中发生的关键事件的过程,用于检查、调试等。它们比print语句更强大,因为它们允许将特定的信息片段发送到具有自定义功能的特定位置格式化、共享接口等。这使得日志记录成为能够从应用程序的内部流程中发现有洞察力的信息的关键支持者。成分有几个总体概念需要注意:Logger: 从应用程序发出日志消息。Handler:将日志记录发送到特定位置。Formatter: 格式化和样式化日志记录。日志记录还有很多,例如过滤器、异常日志记录等,但这些基础知识将使能够为应用
2022-11-30 15:21:39 480
原创 组织机器学习代码
组织机器学习代码从note本转移到 Python 脚本时组织代码。Intuition有组织的代码就是有可读的、可重现的、健壮的代码。您的团队、经理,最重要的是,您未来的自己,将感谢您为组织工作付出的最初努力。在本课中,将讨论如何将代码从note本迁移和组织到 Python 脚本。Editor在开始编码之前,需要一个空间来完成它。代码编辑器有多种选择,例如VSCode、Atom、Sublime、PyCharm、Vim等,它们都提供独特的功能,同时提供代码编辑和执行的基本操作。由于 VSCode 的简
2022-11-29 21:01:45 1580
原创 打包python代码库
使用配置和虚拟环境来创建用于重现结果的设置。Intuition到目前为止,一直在note本内部工作,这使能够非常快速地训练模型。但是,note本并不容易投入生产,而且并不总是能够控制环境(例如,Google Colab 会定期更新其软件包)。当使用notebook时,有一组预加载的包(!pip list在 notebook 中运行以查看所有包)。但是现在想要明确定义环境,以便可以在本地(为和团队成员)以及在部署到生产环境时重现它。在 Python 中打包时有许多推荐的工具,将使用经过验证的Pip。有
2022-11-28 12:55:29 695
原创 优化超参数
优化超参数子集以实现目标。Intuition优化是在实验中微调超参数以优化特定目标的过程。它可能是一个涉及计算的过程,具体取决于参数的数量、搜索空间和模型架构。超参数不仅包括模型的参数,还包括来自预处理、分割等的参数(选择)。当查看所有可以调整的不同参数时,它很快就变成了一个非常大的搜索空间。然而,仅仅因为某些东西是超参数并不意味着需要调整它。lower=True修复一些超参数(例如在预处理期间)并将它们从调整子集中删除是绝对可以的。请务必注意您正在修复哪些参数以及您这样做的理由。您最初可以只调整一
2022-11-27 10:02:28 280
原创 实验跟踪
管理和跟踪机器学习实验。Intuition到目前为止,一直在训练和评估不同的基线,但还没有真正跟踪这些实验。将解决这个问题,但定义一个适当的实验跟踪过程,将用于所有未来的实验(包括超参数优化)。实验跟踪是管理所有不同实验及其组件(例如参数、指标、模型和其他工件)的过程,它使能够:组织特定实验的所有必要组件。重要的是把所有东西都放在一个地方并且知道它在哪里,这样你以后可以使用它们。使用保存的实验(轻松)重现过去的结果。记录跨时间、数据、想法、团队等的迭代改进。实验跟踪有很多选项,但将使用MLFlow
2022-11-26 16:55:05 917
原创 数据增强
在训练数据拆分上评估数据增强,以增加高质量训练样本的数量。Intuition通常希望通过数据扩充来增加训练数据的规模和多样性。它涉及使用现有样本生成合成但真实的示例。拆分数据集。想首先拆分数据集,因为如果允许将生成的样本放置在不同的数据拆分中,许多增强技术会导致某种形式的数据泄漏。例如,一些增强涉及为句子中的某些关键标记生成同义词。如果允许来自相同来源句子的生成句子进入不同的拆分,可能会在不同的拆分中泄漏具有几乎相同的嵌入表示的样本。增加训练拆分。只想在训练集上应用数据增强,因为验证和测试拆
2022-11-24 20:32:52 890
原创 数据预处理
数据预处理通过准备和转换对数据集进行预处理,以用于训练。Intuition数据预处理可以分为两类过程:准备和转换。将探索常见的预处理技术,然后针对特定应用逐步完成相关过程。warning某些预处理步骤global(不依赖于数据集,例如小写文本、删除停用词等)和其他步骤local(结构仅从训练拆分中学习,例如词汇、标准化等)。对于本地的、依赖于数据集的预处理步骤,要确保在预处理之前先拆分数据以避免数据泄漏。准备中准备数据涉及组织和清理数据。加入与现有数据表执行 SQL 连接,将您需要的所
2022-11-23 17:07:40 1078
原创 探索性数据分析
有目的性的探索数据集以获取具体的优化方向和思路。Intuition探索性数据分析 (EDA) 以了解数据集的信号和细微差别。这是一个循环过程,可以在开发过程的各个阶段(标记之前/之后、预处理等)完成,具体取决于问题的定义程度。例如,如果不确定如何标记或预处理数据,可以使用 EDA 来解决这个问题。将从 EDA 开始项目,这是一个经常被误解的重要(且有趣)的过程。以下是对 EDA 的思考:不仅仅是可视化一组规定的图(相关矩阵等)。目标是说服自己您拥有的数据足以完成任务。使用 EDA 回答重要问题并且
2022-11-22 15:37:32 260
原创 DataMining(3)_Classification and Prediction
DataMining(3)_Classification and Prediction
2016-05-19 20:18:54 580
原创 DataMining(2)_Mining Frequent Patterns
DataMining(2)_Mining Frequent Patterns
2016-04-27 23:30:08 1190
原创 Bloom Filter
1.引言bloomfilter过滤器,是一种利用极小错误换取极大空间节省的hash查询算法,它不适用于“零错误”的查询应用中。在谈到bloomfilter,先分析何为查询,查询的类别。2.查询算法概述查询算法概述 查询(Search)是数据处理最常见的一种运算。查询就是在数据集合中寻找满足 某种条件的数据对象。衡量一个查询算法的性能,需要在时间和空间方面进行权衡。对于不同方式存储结构所表示的
2016-04-03 19:08:28 1123
转载 粒子群算法Particle Swarm Optimization(PSO)
learning note of particle swarm optimization
2016-03-24 11:57:03 10889
原创 概率算法
1.概率算法定义 概率算法是属于随机算法,使用随机过程的结果,某些NP问题不可能在多项式时间内求解,但是当允许一定量的错误概率时,就可以在多项式时间内求得一个较大概率正确的解。随机算法 1.允许算法进行随机移动2将机器内部抛硬币视作一种辅助输入。2.有关P问题与NP问题的一些想法P问题指的是能够在多项式的时间里得到解决的问题,NP问题指的是能够在多项式的时间里验证一个解是否正确的问
2016-01-09 22:15:28 3253
原创 计算理论_可归约性
可归约性1可归约性定义归约:就是将一个问题转化为另一个问题,使的用第二个问题的解来解第一个问题第一个问题。这种思想类似于数学证明中,如果一个证明很难从原命题切入,此时根据原命题与其逆否命题是等价的,将原命题转换成逆否命题求解,将得到及其简便的解法或者是结题的切入点。例如,假设要在一个城市中认路,如果有一张地图,就将认路问题归约得到地图问题。 2可归约性相关的定理可归约性在复杂性
2016-01-08 22:25:06 7659 1
原创 linux内核学习(4)_库函数API和C代码嵌入汇运用用系统调用
理论基础内核与用户运行模式(mode)Linux 使用了其中的两个:特权级0和特权级3 ,即内核模式(kernel mode) 和用户模式(user mode )地址空间(space )a)每个进程的虚拟地址空间可以划分为两个部分:用户空间和内核空间b)在用户态下只能访问用户空间;而在核心态下,既可以访问用户空间,又可以访问内核空间。 c)内核空间在每个进程的虚拟地
2015-04-05 10:34:57 699
转载 论函数调用约定
在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么
2015-04-01 19:50:24 404
转载 C语言ASM汇编内嵌语法
GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCC Inline ASM——GCC内联汇编。这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码中,另外也允许我们直接写 C/C++代码中使用汇编编写简洁高效的代码。1.基本内联汇编GCC中基本的内联汇编非常易懂,我们先来看两个简单的例子:__asm__("movl %e
2015-03-29 20:50:11 624
转载 代码规范与代码复审
在第9章中,同学们完成了WC程序,经过评比,九条的程序获得了第一名。这时,阿超说,现代软件产业经过几十年的发展,已经不可能出现一个人单枪匹马完成一个软件的事情了,软件都是在相互合作中完成的。阿超建议大家互相看看别人的代码,在TFS中每个人都把各自项目的权限放宽,允许别人访问,交流一下意见。两个小时后,小飞来抱怨说,九条的代码都是一行到底,随意缩进,跟他提了意见,他还说“编译通过就行了”。他
2015-03-25 22:40:51 976
原创 树形问题_汇总
表达式树#define maxn 1000int lch[maxn],rch[maxn],char op[maxn];//数组表示树形结构int nc=0;//结点序号int build_tree(char *s,int x,int y){int i,c1=-1,c2=-1,p=0;int u;if(y-x==1){u=++nc;lch[u]=rch
2015-03-14 09:41:37 462
原创 矩阵快速运算_总结
矩阵乘法快速幂struct matrix{int mat[size][size];matrix(){int i,j;for(i=0;ifor(j=0;jmat[i][j]=0;}}; matrix mul(matrix a,matrix b){matrix ret;int i,j,k;for(i=0;i
2015-03-14 09:40:31 1069
原创 qsort_总结
整型#includeint cmp(const void *a,const void *b ){return *(int*)a-*(int*)b;//从小到大//*(int*)b-*(int*)a从大到小}字符型int cmp(const void *a,const void *b){return *(char*)a-*(char*)b;}
2015-03-14 09:37:15 488
转载 划分树
划分树和归并树都是用线段树作为辅助的,原理是基于 快排 和 归并排序 的。划分树的建树过程基本就是模拟快排过程,取一个已经排过序的区间中值,然后把小于中值的点放左边,大于的放右边。并且记录d层第i个数之前(包括i)小于中值的放在左边的数。 #include #include #include #include using namespace
2015-03-14 09:35:18 410
转载 组合数C(n,m)
问题:求解组合数C(n,m),即从n个相同物品中取出m个的方案数,由于结果可能非常大,对结果模10007即可。方案一暴力求解,C(n,m)=n*(n-1)*...*(n-m+1)/m!int Combination(int n, int m){const int M = 10007;int ans = 1;for(int i=n;
2015-03-14 09:35:17 2722
原创 几何-直线分平面问题
(1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。这样就会得到n-1个交点。这些交点将第n条直线分为2条射线和n-2条线断。而每条射线和线断将以有的区域一分为二。这样就多出
2015-03-14 09:33:18 754
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人