statement)的公理。概率论的知识在机器学习和深度学习领域都有广泛应用,是学习这两门学科的基础。
AI 系统应该如何推理,基于此我们设计一些算法来计算或者估算由概率论导出的表达式。AI 系统的行为。random variable)是可以随机地取不同值的变量,它可以是离散或者连续的。
离散随机变量拥有有限或者可数无限多的状态。注意这些状态不一定非要是整数; 它们也可能只是一些被命名的状态而没有数值。连续随机变量伴随着实数值。注意,随机变量只是对可能状态的描述;它必须与指定这些状态中的每一个的可能性的概率分布相结合。
我们通常用无格式字体 (plain typeface) 中的小写字母来表示随机变量本身,而用手写体中的小写字母来表示随机变量能够取到的值。例如, $x_1$ 和 $x_2$ 都是随机变量 $\textrm{x}$ 可能的取值。对于向量值变量,我们会将随机变量写成 $\mathbf{x}$,它的一个可能取值为 $\boldsymbol{x}$。
中文维基百科用 $X$ 表示随机变量,用 $f_{X}(x)$ 表示概率密度函数,本文笔记,不同小节内容两者混用。
probability distribution)是用来描述随机变量或一簇随机变量在每一个可能取到的状态的可能性大小。
如果狭义地讲,它是指随机变量的概率分布函数。具有相同概率分布函数的随机变量一定是相同分布的。连续型和离散型随机变量的概率分布描述方式是不同的。
probability mass function, PMF,也称概率密度函数)来描述。我们通常用大写字母 $P$ 来表示概率质量函数,用 $\textrm{x} \sim P(\textrm{x})$ 表示随机变量 $\textrm{x}$ 遵循的分布。
虽然通常每一个随机变量都会有一个不同的概率质量函数,但是概率质量函数也可以同时作用于多个随机变量,这种多个变量的概率分布被称为联合概率分布(joint probability distribution)。 $P(\textrm{x} = x, \textrm{y} = y)$ 表示 $\textrm{x} = x$ 和 $\textrm{y} = y$ 同时发生的概率,有时也可简写为 $P(x,y)$。
如果一个函数 $P$ 是随机变量 $\textrm{x}$ 的 PMF,必须满足以下条件:
0,能够确保一定发生的事件概率为 1。normalized)。Poisson 分布(泊松分布):Poisson 近似是二项分布的一种极限形式。uniform distribution),所以它的 PMF 为 $P(\textrm{x}=x_{i}) = \frac{1}{k}$,同时 $\sum_{i}P(\textrm{x} = x_{i}) = \sum_{i}\frac{1}{k} = \frac{k}{k} = 1$。probability desity function, PDF)来描述。
通常用小写字母 $p$ 来表示随机变量 $\textrm{x}$ 的概率密度函数 PDF,其必须满足以下条件:
边缘概率好像应用并不多,所以这里理解定义和概念即可。 边缘概率的通俗理解描述,来源于 数学篇 - 概率之联合概率、条件概率、边缘概率和贝叶斯法则(笔记)。有时候,我们知道了一组变量的联合概率分布,但想要了解其中一个子集的概率分布。这种定义在子集上的概率分布被称为边缘概率分布(
marginal probability distribution)。
对于离散型随机变量 $\textrm{x}$ 和 $\textrm{y}$,知道 $P(\textrm{x}, \textrm{y})$,可以依据下面的求和法则(sum rule)来计算边缘概率 $P(\textrm{x})$:
$$\forall x \in \textrm{x},P(\textrm{x}=x)=\sum_{y}P(\textrm{x}=x, \textrm{y}=y)$$
“边缘概率”的名称来源于手算边缘概率的计算过程。当 $P(x,y)$ 的每个值被写在由每行表示不同的 $x$ 值,每列表示不同的 $y$ 值形成的网格中时,对网格中的每行求和是很自然的事情,然后将求和的结果 $P(x)$ 写在每行右边的纸的边缘处。
连续性变量的边缘概率则用积分代替求和:
$$p(x) = \int p(x,y)dy$$
conditional probability)就是事件 A 在事件 B 发生的条件下发生的概率,表示为 $P(A|B)$。
设 $A$ 与 $B$ 为样本空间 Ω 中的两个事件,其中 $P(B)$ > 0。那么在事件 $B$ 发生的条件下,事件 $A$ 发生的条件概率为:
$$
P(A|B)={\frac {P(A\cap B)}{P(B)}}
$$
花书中期望的条件概率定义(表达式不一样,但意义是一样的,维基百科的定义更容易理解名字意义,花书中的公式更多的是从数学中表达):
将给定 $\textrm{x} = x$ 时, $\textrm{y} = y$ 发生的条件概率记为 $P(\textrm{y} = y|\textrm{x} = x)$,这个条件概率的计算公式如下: $$P(\textrm{y}=y|\textrm{x}=x)=\frac{P(\textrm{y}=y, \textrm{x}=x)}{P(\textrm{x}=x)}$$ 条件概率只在 $P(\textrm{x}=x)\geq 0$ 时有定义,即不能计算以从未发生的事件为条件的条件概率。
chain rule)。条件概率的链式法则如下:
$$
\begin{aligned}
P(a,b,c) &= P(a|b,c)P(b,c) \
P(b,c) &= P(b|c)P(c) \
P(a,b,c) &= P(s|b,c)P(b|c)P(c) \
\end{aligned}
$$
independent):
$$\forall x \in \textrm{x},y \in \textrm{y},p(\textrm{x}=x, \textrm{y}=y)=p(\textrm{x}=x)\cdot p(\textrm{y}=y)$$
两个相互独立的随机变量同时发生的概率可以通过各自发生的概率的乘积得到。
如果关于 $x$ 和 $y$ 的条件概率分布对于 $z$ 的每一个值都可以写成乘积的形式,那么这两个随机变量 $x$ 和 $y$ 在给定随机变量 $z$ 时是条件独立的(conditionally independent):
$$\forall x \in ,y \in \textrm{y},z \in \textrm{z}, p(\textrm{x}=x, \textrm{y}=y|z \in \textrm{z})= p(\textrm{x}=x|z \in \textrm{z})\cdot p(\textrm{y}=y|z \in \textrm{z})$$
采用一种简化形式来表示独立性和条件独立性: $\textrm{x}\perp \textrm{y}$ 表示 $\textrm{x}$ 和 $\textrm{y}$ 相互独立,$\textrm{x}\perp \textrm{y}|\textrm{z}$ 表示 $\textrm{x}$ 和 $\textrm{y}$ 在给定 $\textrm{z}$ 时条件独立。
conditional probability)就是事件 A 在事件 B 发生的条件下发生的概率。条件概率表示为 $P(A|B)$,读作“A 在 B 发生的条件下发生的概率”。A 与 B 的联合概率表示为 $P(A\cap B)$ 或者 $P(A,B)$ 或者 $P(AB)$。为了便于理解,本章中的期望和方差的数学定义主要采用中文维基百科中的定义。在概率分布中,期望值和方差或标准差是一种分布的重要特征,期望、数学期望、均值都是一个意思。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,其意义和概率分布中的方差是不一样的。
1)。
若级数 $\sum_{i}p_{i}x_{i}$ 绝对收敛,那么期望值 $\operatorname {E}(X)$ 是一个无限数列的和。
$$\operatorname {E}(X)=\sum_{i}p_{i}x_{i}$$
2,如果 $X$ 是连续的随机变量,且存在一个相应的概率密度函数 $f(x)$,若积分 $\int _{-\infty }^{\infty }xf(x),\mathrm {d} x$ 绝对收敛,那么 $X$ 的期望值可以计算为:
$$\operatorname {E} (X)=\int _{-\infty }^{\infty }xf(x),\mathrm {d} x$$
虽然是针对于连续的随机变量的,但与离散随机变量的期望值的计算算法却同出一辙,由于输出值是连续的,所以只是把求和改成了积分。
期望值 $E$ 是线性函数:
$$\operatorname {E}(aX+bY)=a\operatorname {E}(X)+b\operatorname {E}(Y)$$
$X$ 和 $Y$ 为在同一概率空间的两个随机变量(可以独立或者非独立),$a$ 和 $b$ 为任意实数。
花书中期望的数学定义(表达式不一样,但意义是一样的): 1,某个函数 $f(x)$ 相对于概率分布 $P(x)$ 的期望(期望值)是当从 $P$ 中抽取 $x$ 时 $f$ 所取的平均或平均值。对于离散型随机变量,期望可以通过求和得到: $$\mathbb{E}{\textrm{x}\sim P}[f(x)] = \sum{x} P(x)f(x)$$ 2,对于连续型随机变量可以通过求积分得到: $$\mathbb {E}_{\textrm{x}\sim p}[f(x)] = \int p(x)f(x)dx$$
variance)又称变异数、变方,描述的是一个随机变量的离散程度,即该变量离其期望值的距离,是随机变量与其总体均值或样本均值的离差的平方的期望值。
方差差是标准差的平方、分布的二阶矩,以及随机变量与其自身的协方差,其常用的符号表示有 $\sigma^2$、$s^2$、$\operatorname {Var} (X)$、$\displaystyle V(X)$,以及 $\displaystyle \mathbb {V} (X)$。
方差作为离散度量的优点是,它比其他离散度量(如平均差)更易于代数运算,但缺点是它与随机变量的单位不同,而标准差则单位相同,这就是计算完成后通常采用标准差来衡量离散程度的原因。
方差的正平方根称为该随机变量的标准差。有两个不同的概念都被称为“方差”。一种如上所述,是理论概率分布的方差。而另一种方差是一组观测值的特征,分别是总体方差(所有可能的观测)和样本方差(总体的一个子集)。
花书中方差的定义: 方差(variance)衡量的是当我们对 $x$ 依据它的概率分布进行采样时,随机变量 $\textrm{x}$ 的函数值会呈现多大的差异,或者说一个随机变量的方差描述的是它的离散程度,也就是该变量离其期望值的距离。方差定义如下:
$$Var(f(x)) = \mathbb{E}[(f(x) - \mathbb{E}[f(x)])^2]$$
来源: 知乎文章-【AP统计】期望E(X)与方差Var(X)。
correlation)将每个变 量的贡献归一化,为了只衡量变量的相关性而不受各个变量尺度大小的影响。
Bernoulli distribution),又名两点分布或者 0-1 分布,是一个离散型概率分布,为纪念瑞士科学家雅各布·伯努利而命名。若伯努利试验成功,则伯努利随机变量取值为 1。若伯努利试验失败,则伯努利随机变量取值为 0。记其成功概率为 $0\leq p\leq 1$,失败概率为 $q = 1-p$。其有如下性质:
Multinoulli 分布(多项式分布,也叫范畴分布 categorical dis- tribution)是一种离散概率分布,它描述了随机变量的可能结果,该随机变量可以采用 $k$ 个可能类别之一,概率为每个类别分别指定,其中 $k$ 是一个有限值。
有几种不同的方法用来说明一个随机变量。最直观的方法是概率密度函数,这种方法能够表示随机变量每个取值有多大的可能性。高斯分布
Gaussian distribution(也称正态分布 Normal distribution)是一个非常常见的连续概率分布。高斯分布在统计学上十分重要,经常用在自然和社会科学来代表一个不确定的随机变量。
若随机变量 $X$ 服从一个位置参数为 $\mu$ 、尺度参数为 $\sigma$ 的正态分布,记为:
$$
X \sim N(\mu,\sigma^2)
$$
则其概率密度函数为 $$f(x;\mu, \sigma) = \frac {1}{\sigma {\sqrt {2\pi }}};e^{-{\frac {\left(x-\mu \right)^{2}}{2\sigma ^{2}}}}$$。
正态分布的数学期望值 $\mu$ 等于位置参数,决定了分布的位置;其方差 $\sigma^2$ 的开平方或标准差 $\sigma$ 等于尺度参数,决定了分布的幅度。
正态分布概率密度函数曲线呈钟形,也称之为钟形曲线(类似于寺庙里的大钟,因此得名)。我们通常所说的标准常态分布是位置参数 $\mu = 0$,尺度参数 $\sigma ^{2} = 1$ 的正态分布(见右图中红色曲线)。
采用正态分布在很多应用中都是一个明智的选择。当我们由于缺乏关于某个实 数上分布的先验知识而不知道该选择怎样的形式时,正态分布是默认的比较好的选择,其中有两个原因。
Exponential distribution)是一种连续概率分布,表示一个在 $x = 0$ 点处取得边界点 (sharp point) 的分布,其使用指示函数(indicator function) $1_{x\geq0}$ 来使得当 $x$ 取负值时的概率为零。指数分布可以等同于形状母数 $\alpha$为 $1$的伽玛分布。
指数分布可以用来表示独立随机事件发生的时间间隔,比如旅客进入机场的时间间隔、电话打进客服中心的时间间隔等。
若随机变量 $X$ 服从母数为 $\lambda$ 或 $\beta$ 的指数分布,则记作
$X\sim {\text{Exp}}(\lambda )$ 或 $X\sim {\text{Exp}}(\beta )$
两者意义相同,只是 $\lambda$ 与 $\beta$ 互为倒数关系。指数分布的概率密度函数为:
$$
f(x;{\color {Red}\lambda })=\left\lbrace{\begin{matrix}{\color {Red}\lambda }e^{-{\color {Red}\lambda }x}&x\geq 0,\0&,;x<0.\end{matrix}}\right.
$$
指数分配概率密度函数曲线如下所示。
logistic sigmoid 函数:
$$\sigma(x) = \frac{1}{1+exp(-x)}$$
logistic sigmoid 函数通常用来产生伯努利分布的参数 $p$,因为它的范围是 $(0, 1)$,位于 $p$ 参数值的有效范围内。下图 3.3 给出了 sigmoid 函数的图示。从图中可以明显看出,sigmoid 函数在变量取绝对值非常大的正值或负值时会出现饱和(saturate)现象,意味着函数会变得很平,并且对输入的微小改变会变得不敏感。
sigmoid 函数的一些性质在后续学习 BP 算法等内容时会很有用,我们需要牢记:
$$
\begin{aligned}
\sigma(x) &= \frac{exp(x)}{exp(x)+exp(0)} \
\frac{d}{dx}\sigma(x) &= \sigma(x)(1 - \sigma(x)) \
1 - \sigma(x) &= \sigma(-x) \
\end{aligned}
$$
本小节只是简单介绍基本概念和公式,更全面和深入的理解建议看《机器学习》书籍。贝叶斯定理(英语:
Bayes' theorem)是概率论中的一个定理,描述在已知一些条件下,某事件的发生概率。比如,如果已知某种健康问题与寿命有关,使用贝叶斯定理则可以通过得知某人年龄,来更加准确地计算出某人有某种健康问题的概率。
通常,事件 A 在事件 B 已发生的条件下发生的概率,与事件 B 在事件 A 已发生的条件下发生的概率是不一样的。但是,这两者是有确定的关系的,贝叶斯定理就是这种关系的陈述。贝叶斯公式的一个用途,即透过已知的三个概率而推出第四个概率。贝叶斯定理跟随机变量的条件概率以及边际概率分布有关。
作为一个普遍的原理,贝叶斯定理对于所有概率的解释是有效的。这一定理的主要应用为贝叶斯推断,是推论统计学中的一种推断法。这一定理名称来自于托马斯·贝叶斯。
来源中文维基百科-贝叶斯定理
中文维基百科中贝叶斯理论与概率密度关系定义: $$f(x|y)={\frac {f(x,y)}{f(y)}}={\frac {f(y|x),f(x)}{f(y)}}$$
measure theory)的相关内容来扩展概率论,测度论超出了本书范畴。
原书中有测度论的简要介绍,本笔记不做记录和摘抄,感兴趣的可以阅读原书。
characterize)概率分布或者量化概率分布之间的相似性。
信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。
定义一个事件 $\textrm{x} = x$ 的自信息(self-information) 为
$$
I(x) = -\text{log}P(x)
$$
在本文中,我们总是用 $\text{log}$ 来表示自然对数,其底数为 $e$。因此我们定义的 $I(x)$ 单位是奈特(nats)。一奈特是以 $\frac{1}{e}$ 的概率观测到一个事件时获得的信息量。其他的材料中可能使用底数为 2 的对数,单位是比特(bit)或者香农(shannons); 通过比特度量的信息只是通过奈特度量信息的常数倍。
自信息只处理单个的输出。我们可以用香农熵(Shannon entropy)来对整个概率分布中的不确定性总量进行量化:
$$
H(P) = H(\textrm{x}) = E_{x∼P}[I(x)] = −E_{x∼P}[log P(x)]
$$
换句话说,一个概率分布的香农熵是指遵循这个分布的事件所产生的期望信息总量。
如果我们对于同一个随机变量 $\textrm{x}$ 有两个单独的概率分布 $P(\textrm{x})$ 和 $Q(\textrm{x})$,则可以用 KL 散度( Kullback-Leibler (KL) divergence,也叫相对熵)来衡量这两个概率分布的差异:
$$
D_{KL}(P\parallel Q) = \mathbb{E}{\textrm{x}\sim p}\begin{bmatrix}
log \frac{P(x)}{Q(x)} \end{bmatrix} = \mathbb{E}{\textrm{x}\sim p}[log P(x) - log Q(x)]
$$
KL 散度有很多有用的性质,最重要的是它是非负的。KL 散度为 0 当且仅当 $P$ 和 $Q$ 在离散型变量的情况下是相同的概率分布,或者在连续型变量的情况下是 “几乎处处” 相同的。
一个和 KL 散度密切联系的量是交叉熵(cross-entropy)$H(P, Q) = H(P) + D_{KL}(P||Q)$,其计算公式如下:
$$
H(P, Q) = -\mathbb{E}_{\textrm{x}\sim p}log Q(x)
$$
和 KL 散度相比,少了左边一项,即熵 $H(P)$。可以看出,最小化 KL 散度其实就是在最小化分布之间的交叉熵。
上式的写法是在前面所学内容数学期望的基础上给出的,还有一个写法是《机器学习-周志华》书中附录 C 中给出的公式,更为直观理解: $$KL(P\parallel Q) = \int_{-\infty }^{+\infty} p(x)log \frac{p(x)}{q(x)} dx$$ 其中 $p(x)$ 和 $q(x)$ 分别为 $P$ 和 $Q$ 的概率密度函数。 这里假设两个分布均为连续型概率分布,对于离散型概率分布,只需要将积分替换为对所有离散值遍历求和。
KL 散度满足非负性和不满足对称性。将上式展开可得:
$$\text{KL 散度} KL(P\parallel Q) = \int_{-\infty }^{+\infty}p(x)logp(x)dx - \int_{-\infty }^{+\infty}p(x) logq(x)dx = -H(P) + H(P,Q)$$
$$\text{交叉熵} H(P,Q) = \mathbb{E}{\textrm{x}\sim p} log Q(x) = - \int{-\infty }^{+\infty} p(x) logq(x)dx$$
其中,$H(P)$ 为熵(entropy),$H(P,Q)$ 为交叉熵(cross entropy)。
在信息论中,熵 $H(P)$ 表示对来自 $P$ 的随机遍历进行编码所需的最小字节数,而交叉熵 $H(P,Q)$ 表示使用 $Q$ 的编码对来自 $P$ 的变量进行编码所需的字节数。因此 KL 散度可认为是使用基于 $Q$ 的编码对来自 $P$ 的变量进行编码所需的“额外字节数”;显然,额外字节数非负,当且仅当 $P=Q$ 时额外字节数为 0。
本文首发于 github。最新版以 github 为主。如果看完文章有所收获,一定要先点赞后收藏。毕竟,赠人玫瑰,手有余香。
本文内容大多来自《深度学习》(花书)第三章概率与信息论。
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or