liuyuqi-dellpc 5 years ago
commit
d815f0391c
49 changed files with 2214 additions and 0 deletions
  1. 2 0
      .gitattributes
  2. 61 0
      .gitignore
  3. 30 0
      README.md
  4. 32 0
      信息论/KL 散度.md
  5. 5 0
      信息论/README.md
  6. 37 0
      信息论/熵.md
  7. 29 0
      信息论/隐马尔科夫模型.md
  8. 0 0
      微积分/README.md
  9. 0 0
      微积分/函数、极限与连续.md
  10. 1 0
      微积分/导数.md
  11. 0 0
      微积分/常见导数.md
  12. 0 0
      数值分析/README.md
  13. 3 0
      数值分析/数值稳定性.md
  14. 31 0
      数值分析/梯度下降.md
  15. 36 0
      数据分析/README.md
  16. 0 0
      数据分析/模拟退火/README.md
  17. 0 0
      数据分析/爬山算法/README.md
  18. 11 0
      数据分析/遗传算法/README.md
  19. 0 0
      数据分析/遗传算法/生物学背景.md
  20. 0 0
      数据分析/遗传算法/进化过程.md
  21. 25 0
      概率论/README.md
  22. 131 0
      概率论/中心极限与大数定理.md
  23. 1 0
      概率论/参数估计/README.md
  24. 1 0
      概率论/常见概率分布/README.md
  25. 69 0
      概率论/常见概率分布/多项分布.md
  26. 65 0
      概率论/常见概率分布/正态分布.md
  27. 136 0
      概率论/常见概率分布/泊松分布.md
  28. 7 0
      概率论/最小二乘法.md
  29. 220 0
      概率论/期望与方差.md
  30. 96 0
      概率论/概率与分布.md
  31. 3 0
      概率论/概率图模型/条件随机场.md
  32. 38 0
      概率论/蒙特卡洛/蒙特卡罗方法.md
  33. 12 0
      概率论/贝叶斯理论/README.md
  34. 8 0
      概率论/贝叶斯理论/变分贝叶斯推导.md
  35. 18 0
      概率论/贝叶斯理论/朴素贝叶斯.md
  36. 36 0
      概率论/贝叶斯理论/贝叶斯推导.md
  37. 43 0
      线性代数/README.md
  38. 291 0
      线性代数/凸优化/README.md
  39. 73 0
      线性代数/向量运算.md
  40. 119 0
      线性代数/特殊函数.md
  41. 38 0
      线性代数/特殊矩阵.md
  42. 1 0
      线性代数/矩阵分解.md
  43. 154 0
      线性代数/矩阵运算.md
  44. 351 0
      线性代数/距离与相似性.md
  45. 0 0
      软件篇/Python/.gitkeep
  46. 0 0
      软件篇/R/.gitkeep
  47. 0 0
      软件篇/SAS/.gitkeep
  48. 0 0
      软件篇/matlab/.gitkeep
  49. 0 0
      运筹学/代价函数.md

+ 2 - 0
.gitattributes

@@ -0,0 +1,2 @@
+*.xmind filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text

+ 61 - 0
.gitignore

@@ -0,0 +1,61 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+
+# next.js build output
+.next

+ 30 - 0
README.md

@@ -0,0 +1,30 @@
+## math-note
+
+学海无涯,数学天堂。
+
+一直都有做笔记的习惯,纸质文档,doc文档,pdf文档,视频,录音等等。包括 OneNote笔记,markdown笔记等等。本仓库只是整理一下过往的一些便于markdown编写适合web分享的基础知识。涉及到相关软件编程,代码。整理到 [code-snippets](https://git.yoqi.me/lyq/code-snippets) 仓库。
+
+## About
+
+本笔记覆盖了如下书籍
+   * 《数学分析》
+   * 《数据分析方法》
+   * 《概率论与数理统计教程》
+   * 《运筹学》
+   * 《生物数学》
+   * 《信息论基础教程》
+   * 《常微分方程及其应用》
+   * 《离散数学》
+   * 《组合数学》
+   * 《解析几何》
+   * 《常微分》
+   * 《R语言基础》
+   * 《R语言与统计分析》
+   * 《R语言游戏数据分析与挖掘》
+   * 《R与Hadoop大数据分析实战》
+   * 《MATLAB与科学计算教程》
+   * 《基于matlab的图像处理》
+
+相关知识,并且结合实际工作中学习并补充的知识。
+
+

+ 32 - 0
信息论/KL 散度.md

@@ -0,0 +1,32 @@
+# KL 散度 & 相对熵
+
+相对熵又称互熵,交叉熵,鉴别信息,Kullback 熵,Kullback-Leible 散度(即 KL 散度)等。设$p(x)$和$q(x)$是$x$取值的两个概率概率分布,则$p$对$q$的相对熵为
+
+$$
+D(p||q) = \sum\_{i=1}^{n}p(x_i)log\frac{p(x_i)}{q(x_i)}
+$$
+
+在一定程度上,熵可以度量两个随机变量的距离。KL 散度是两个概率分布 P 和 Q 差别的非对称性的度量。KL 散度是用来度量使用基于 Q 的编码来编码来自 P 的样本平均所需的额外的位元数。典型情况下,P 表示数据的真实分布,Q 表示数据的理论分布,模型分布,或 P 的近似分布。
+相对熵(KL 散度)有两个主要的性质。如下
+(1)尽管 KL 散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即$$D(p||q) \neq D(q||p)$$
+(2)相对熵的值为非负值,即
+
+$$
+D(p||q) > 0
+$$
+
+# 相对熵的应用
+
+相对熵可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增大时,它们的相对熵也会增大。所以相对熵(KL 散度)可以用于比较文本的相似度,先统计出词的频率,然后计算 KL 散度就行了。另外,在多指标系统评估中,指标权重分配是一个重点和难点,通过相对熵可以处理。
+
+# 互信息
+
+两个随机变量$X$,$Y$的互信息,定义为$X$,$Y$的联合分布和独立分布乘积的相对熵。
+$$I(X,Y)=D(P(X,Y)||P(X)P(Y))$$
+$$I(X,Y)=\sum\_{x,y}log\frac{p(x,y)}{p(x)p(y)}$$
+
+# 信息增益
+
+信息增益表示得知特征 A 的信息而使得类$X$的信息的不确定性减少的程度。信息增益的定义为特征$A$对训练数据集$D$的信息增益$g(D,A)$,定义为集合$D$的经验熵$H(D)$与特征$A$给定条件下$D$的经验条件熵$H(D|A)$之差:
+
+$$g(D,A) = H(D) - H(D|A)$$

+ 5 - 0
信息论/README.md

@@ -0,0 +1,5 @@
+# 信息论
+
+1948年,美国数学家克劳德·香农发表论文《通信的数学理论》(A Mathematical Theory of Communication),奠定了信息论的基础。今天,信息论在信号处理、数据压缩、自然语言等许多领域,起着关键作用。虽然,它的数学形式很复杂,但是核心思想非常简单,只需要中学数学就能理解。
+
+信息论背后的原理是从不太可能发生的事件中能学到更多的有用信息,发生可能性较大的事件包含较少的信息;发生可能性较小的事件包含较多的信息;独立事件包含额外的信息。

+ 37 - 0
信息论/熵.md

@@ -0,0 +1,37 @@
+# 熵
+
+信息熵反应了一个系统的有序化程度,一个系统越是有序,那么它的信息熵就越低,反之就越高。对于事件 $X=x$,定义自信息 Self-Information 为:$I(x)=-\log P(x)$。自信息仅仅处理单个输出,而熵就是为自信息的期望:
+
+$$
+H(X)=\mathbb{E}_{X \sim P(X)}[I(x)]=-\mathbb{E}_{X \sim P(X)}[\log P(x)]
+$$
+
+熵一般记作 $H(P)$。熵刻画了按照真实分布 来识别一个样本所需要的编码长度的期望(即平均编码长度),譬如含有 4 个字母 `(A,B,C,D)` 的样本集中,真实分布 $P=\left(\frac{1}{2}, \frac{1}{2}, 0,0\right)$,则只需要 1 位编码即可识别样本。对于离散型随机变量 $X$ ,假设其取值集合大小为 $K$ ,则可以证明:$0 \leq H(X) \leq \log K$ 。
+
+# 条件熵
+
+对于随机变量 $Y$ 和 $X$ ,条件熵 $H(Y|X)$ 表示:已知随机变量 $X$ 的条件下,随机变量 $Y$ 的不确定性。条件熵的定义为:$X$ 给定条件下 $Y$ 的条件概率分布的熵对 $X$ 的期望:
+
+$$
+H(Y | X)=\mathbb{E}_{X \sim P(X)}[H(Y | X=x)]=-\mathbb{E}_{(X, Y) \sim P(X, Y)} \log P(Y | X)
+$$
+
+对于离散型随机变量,存在:
+
+$$
+H(Y | X)=\sum_{x} p(x) H(Y | X=x)=-\sum_{x} \sum_{y} p(x, y) \log p(y | x)
+$$
+
+对于连续型随机变量,则存在:
+
+$$
+H(Y | X)=\int p(x) H(Y | X=x) d x=-\iint p(x, y) \log p(y | x) d x d y
+$$
+
+根据定义可以证明:
+
+$$
+H(X, Y)=H(Y | X)+H(X)
+$$
+
+即:描述 $X$ 和 $Y$ 所需要的信息是:描述 $X$ 所需要的信息加上给定 $X$ 条件下描述 $Y$ 所需的额外信息。

+ 29 - 0
信息论/隐马尔科夫模型.md

@@ -0,0 +1,29 @@
+# Hidden Markov Model
+
+讲这种东西就得先搞清 HMM 到底干了什么,初学者很容易对 “ 模型在干嘛 ” 这个问题上犯晕。我个人特别讨厌跟初学者上来就讲 state space/transition matrix/emission probability 云云的讲法 ( 注:比如《统计学习方法》李航博士那种讲法。虽然用来准备面试很方便,但初学者肯定会被符号和几个概念绕晕了;另外,私以为他换掉符号和前人文献不保持一致的做法又会让初学者又多了一道坎去翻。总之,不太厚道 )。因为初学时,对大多非理科出身的人而言,用抽象的名词与符号描述的 “ 语言系统 ” 还没固化在脑袋里。用抽象符号在那儿讲就好比 “ 一群人还没学会走,就逼着他们快点跑 ”。这是不太现实的。
+
+综上,用复杂抽象的语言描述不合适的,这个学习曲线过于陡峭,别人需要时间消化。基于此原因,我发现,对零基础小伙伴们用游戏的例子去类比地解释往往比较容易降低学习难度,比如这样讲 :
+
+我是一战士,修炼出了三种战斗形态,分别为暴怒态,正常状态和防御态。同时我也会三个被动技能,分别是普通平 A,爆击 ( 攻击伤害翻倍 ),吸血 ( 生命汲取 )。我在暴怒状态下打出暴击的概率是 80%, 打出吸血概率为 5%;在平衡形态下,打出暴击的比率为 30%,打出吸血的概率是 20%;在防御形态下,暴击成功概率为 5%,吸血概率为 60%。总结一下,战士在不同状态下能打出技能的概率不一样。
+
+本来,战士这个职业在暴怒态时,身边会有一圈红光环;防御态时,会有一圈蓝光环。但是,现在我正在玩游戏,游戏突然出了个 bug:有个傻 x 程序员改了游戏的代码,他给写崩了,从此战士身边光环都看不见了。那我没法通过看脚下的光环知道战士在爆什么状态了。
+
+话说,现在问题来了:由于看不到脚下光环,我只能估计 “ 战士 ” 在爆什么状态;但我现在打一 boss,砍 10 次,发现 8 次都是暴击,血哗哗地翻倍在掉,你觉得我这战士最可能是爆了什么状态?
+
+( 每次用这个不规范的例子和新手讲,他们立刻就懂了;而且他们接下来还会问:"’ 暴怒状态 ’ 不能总持续吧?这不科学,应该限定个一段时间后,暴怒状态消失的概率为 50%...." 你瞧瞧连状态转换的 transition prob 自己都能假设出来了,都会抢答了都 lol...“HMM 的在干什么 ” 的问题很容易地让他们就理解了 )
+
+综上,一个战士的状态会不断随时间变化;然后他的被动技能发动概率会因为所处不同状态而不同。这就是 HMM 想表达的东西。并且我们还可以通过它回答一些有趣的问题:通过战士发动的技能来推测战士所出的状态。
+
+这个例子只是个感性认识,它其实只是告诉了我们 hmm 比较 “ 像什么东西 ”。显然,我们还需要更规范更严谨地去介绍什么是 HMM,去规范化这个模型。这个例子里的 “ 战士 ” 可以换成其它答案里的天气,换成硬币等等。但无论用什么说法,我们已经能通过这个例子抓住核心问题了:HMM 模型就是这样一个系统 —— 它有一个能不断改变的隐藏的状态(在这个例子里就是战士爆的状态。它会变,而且由于一个码农的缘故,状态变得不可见)在持续地影响它的外在表现(在这个例子里就是战士打出的技能是暴击、平 a、还是吸血的概率)。再重复一遍:HMM 模型就是这样一个系统 —— 它有一个会随时间改变的隐藏的状态,在持续地影响它的外在表现。
+
+现在我们再继续规范一下这个例子,让它更贴近那种严谨描述。因为我们知道战士打人总爆击,角色特别 bug,这没法玩啊。所以我们要限制一下战士爆状态。我们在游戏里做了个限制:我们设定,战士一开始进入游戏世界时是正常状态的。而且,每过一段时间(比如 1 分钟),战士就会自动爆一次状态。最后,每一次爆发还和上一次状态爆的状态是什么有关: 1. 上一次如果是正常状态,那下次变为暴怒的概率比较大。下次转换成暴怒状态,平衡状态或防御状态的概率我们假设分别为 60%,30%,10% 。这保证了战士职业下次能有较大的概率能打出暴击! 2. 同理,若当我们上次在暴怒态时,下次继续保持暴怒态的概率就得限制一下。下次继续保持暴怒的概率就设为 10%,而转换成正常状态的概率是 60%,转换成防御态的概率是 30%; 3. 如果上次是防御态,那么我们也让它下次也尽量变正常。(不然总吸血啊)那他下次转成其它三态的概率 ( 三态和以上对应书写顺序一致 ) 分别为为 10%,60 , 30%。这样服务器就能限制战士的爆暴怒态的次数,让它不那么 imba。
+
+顺便提一下,其实以上的这种限定 —— 让战士下一次爆不同状态的概率只和上次处在什么状态有关系 —— 叫马尔可夫性质(markov property )。经过这样的设定后,不仅仅战士这个职业不会那么 imba,而且,我们可以靠以上这些数字来计算之前只能感性理解的问题了。比如:我这个战士在第一分钟的时候是正常状态,那么我第二分钟赶去死亡谷打一个 boss 能暴击的概率是多少?(这个当作思考题,提示:想想两个问题,上一状态和下一状态间转换的概率是多少?不同状态下发不同技能的概率是多少?)
+
+最后总结一下。以上例子中讲明了 HMM 的五样 “ 要素 ”: 1. 状态和状态间转换的概率 2. 不同状态下,有着不同的外在表现的概率。3. 最开始设置的初始状态 4. 能转换的所有状态的集合 5. 能观察到外在表现的结合
+
+Hidden 说明的是状态的不可见性;Markov 说明的是状态和状态间是 markov chain。这就是为什么叫 Hidden Markov Model。
+
+我相信你们再去看其它答案里写的就明白多了。
+
+ps: 懂了是什么之后再去看 paper 就好多了。没记错的话去,看《A tutorial on Hidden Markov Models and selected applications in Speech recognition 》。另外,HMM 除了上文提到的 “ 五要素 ”,还有 “ 三个基本问题 ”。这文章将 hmm 的三个基本问题讲得很清楚。

+ 0 - 0
微积分/README.md


+ 0 - 0
微积分/函数、极限与连续.md


+ 1 - 0
微积分/导数.md

@@ -0,0 +1 @@
+# 导数

+ 0 - 0
微积分/常见导数.md


+ 0 - 0
数值分析/README.md


+ 3 - 0
数值分析/数值稳定性.md

@@ -0,0 +1,3 @@
+# 数值稳定性
+
+在计算机中执行数学运算需要使用有限的比特位来表达实数,这会引入近似误差。近似误差可以在多步数值运算中传递、积累,从而导致理论上成功的算法失败。因此数值算法设计时要考虑将累计误差最小化。当从头开始实现一个数值算法时,需要考虑数值稳定性。当使用现有的数值计算库(如 tensorflow )时,不需要考虑数值稳定性。

+ 31 - 0
数值分析/梯度下降.md

@@ -0,0 +1,31 @@
+# 梯度下降
+
+# Gradient Descent | 梯度下降
+
+梯度下降法 Gradient Descent 是一种常用的一阶(first-order)优化方法,是求解无约束优化问题最简单、最经典的方法之一。考虑无约束优化问题$min_xf(x)$,其中$f(x)$为连续可微函数。如果能构造出一个序列$x^0,x^1,...,x^t$满足:
+
+$$
+f(x^{t+1}) < f(x^t),t=0,1,2...
+$$
+
+则不断执行该过程即可以收敛到局部极小点。而根据泰勒展示我们可以知道:
+
+$$
+f(x+\Delta x) \simeq f(x) + \Delta x^T \nabla f(x)
+$$
+
+于是,如果要满足 $f(x+\Delta x) < f(x)$,可以选择:
+
+$$
+\Delta x = -{step} \nabla f(x)
+$$
+
+其中$step$是一个小常数,表示步长。以求解目标函数最小化为例,梯度下降算法可能存在一下几种情况:
+
+- 当目标函数为凸函数时,局部极小点就对应着函数全局最小值时,这种方法可以快速的找到最优解;
+- 当目标函数存在多个局部最小值时,可能会陷入局部最优解。因此需要从多个随机的起点开始解的搜索。
+- 当目标函数不存在最小值点,则可能陷入无限循环。因此,有必要设置最大迭代次数。
+
+# 链接
+
+- https://mp.weixin.qq.com/s/VvdbyvUDIGUiIct8k0trvQ

+ 36 - 0
数据分析/README.md

@@ -0,0 +1,36 @@
+# 数据分析
+
+数据分析,或者大数据分析并非易事,下车伊始可能会觉得选择合适的算法模型即可。接触越多会越发现更多来自于业务与场景的挑战:
+
+![](https://tva1.sinaimg.cn/large/007DFXDhgy1g4dui70rgej30iw0b2gmq.jpg)
+
+数据科学通常包含三个部分:数据采集与处理、数据分析与数据可视化。数据科学家可划分为 Analytics 和 MachineLearning 两类,但是也有很多人兼顾两个角色,在工作中相互转换,就是戴两顶帽子(wearing two hats)。前一类通过 AB 测试、深度分析等指导产品决策,而后一类搭建智能决策的产品,提升效率。
+
+- Analytics 大多是问题导向,如购物平台上用户在工作时间和下班后消费习惯的差异。最初可以针对用户总体进行分析,然后在结果的基础上做更细化的分析。可把用户按照城市、地理位置、用户使用的客户端来分类细化。整个过程是交互式的,就是不断提出新问题,通过分析解决问题,然后再提出新的问题,最终目的是做决策辅助。
+
+- MachineLearning 主要是指标驱动,如提高广告平台上用户的转化率。转化率就是从用户点击广告到生成转化(如用户访问广告商网站和下载 APP)的比率。通过应用预测模型或对当前系统调参来提升指标,最终生成智能化的产品。
+
+![](https://i.postimg.cc/Hn1mqkH9/image.png)
+
+开始先搜集原始数据(企业的 CRM 数据、交易记录等),还有网站点击流或用户 APP 内行为的埋点日志。
+
+之后,对原始数据进行预处理,也叫数据清洗。原始数据会有很多冗余、变量缺失以及错误。基于清洗过的数据,可以做一些探索性分析和机器学习建模。
+
+在探索性分析方面,尿片和啤酒是很经典的案例。很多分析师会对商品信息进行归类以及监督商品的相关度。一般情况,大多数的商品相关度都很低,约在 0.1 左右,啤酒跟尿片的相关度是 0.3 左右。针对这个奇怪的现象,分析师们做了分析,发现很多父亲晚上去超市给婴儿买尿片的同时也会买啤酒来自己喝。这样一来,超市摆放商品时可以把相关度比较高的商品放在一起,方便顾客挑选。所以对数据科学来讲,通过数据分析、建模可以得到一些可以让人信服的信息,便于做决策辅助。
+
+另外就是数据产品,分为分析型和智能化产品。
+
+- 分析类数据产品。如现在了解当前北京实时交通状况,可以爬取网上数据,针对这些数据做一些可视化和交互式分析。这样数据产品可以展现数据和定时更新数据内容,就是一个分析型数据产品。
+
+- 智能化数据产品。如基于机器学习实现的搜索引擎,广告推荐系统等,自动搜集数据并基于数据决策的系统。
+
+# 函数曲线极值
+
+我们把函数曲线理解成一个一个山峰和山谷组成的山脉。那么我们可以设想所得到的每一个解就是一只袋鼠,我们希望它们不断的向着更高处跳去,直到跳到最高的山峰。所以求最大值的过程就转化成一个“袋鼠跳”的过程。
+下面介绍介绍“袋鼠跳”的几种方式。
+
+- 爬山算法:一只袋鼠朝着比现在高的地方跳去。它找到了不远处的最高的山峰。但是这座山不一定是最高峰。这就是爬山算法,它不能保证局部最优值就是全局最优值。
+
+- 模拟退火:袋鼠喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了并朝最高峰跳去。这就是模拟退火算法。
+
+- 遗传算法:有很多袋鼠,它们降落到喜玛拉雅山脉的任意地方。这些袋鼠并不知道它们的任务是寻找珠穆朗玛峰。但每过几年,就在一些海拔高度较低的地方射杀一些袋鼠。于是,不断有袋鼠死于海拔较低的地方,而越是在海拔高的袋鼠越是能活得更久,也越有机会生儿育女。就这样经过许多年,这些袋鼠们竟然都不自觉地聚拢到了一个个的山峰上,可是在所有的袋鼠中,只有聚拢到珠穆朗玛峰的袋鼠被带回了美丽的澳洲。

+ 0 - 0
数据分析/模拟退火/README.md


+ 0 - 0
数据分析/爬山算法/README.md


+ 11 - 0
数据分析/遗传算法/README.md

@@ -0,0 +1,11 @@
+# 遗传算法
+
+遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
+
+其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,不需要确定的规则就能自动获取和指导优化的搜索空间,自适应地调整搜索方向。
+
+遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。
+
+# 链接
+
+- https://www.jianshu.com/p/ae5157c26af9

+ 0 - 0
数据分析/遗传算法/生物学背景.md


+ 0 - 0
数据分析/遗传算法/进化过程.md


+ 25 - 0
概率论/README.md

@@ -0,0 +1,25 @@
+# 概率论
+
+概率论是用于表示不确定陈述(Statement)的数学框架,它提供了量化不确定性的方法,使我们能够做出不确定的陈述以及在不确定性存在的情况下的推理;而信息论使我们能够量化概率分布中的不确定性总量。
+
+> Probability theory is nothing but common sense reduced to calculation. —— Pierre Laplace
+
+# 不确定性
+
+几乎所有的活动都需要一些在不确定性存在的情况下进行推理的能力。事实上,除了那些被定义为真的数学声明,我们很难认定某个命题是千真万确的或者确保某件事一定会发生。不确定性有三种可能的来源:
+
+- 被建模系统内在的随机性。例如,大多数量子力学的解释,都将亚原子粒子的动力学描述为概率的。我们还可以创建一些我们假设具有随机动态的理论情境,例如一个假想的纸牌游戏,在这个游戏中我们假设纸牌被真正混洗成了随机顺序。
+- 不完全观测。即使是确定的系统,当我们不能观测到所有驱动系统行为的变量时,该系统也会呈现随机性。例如,在 Monty Hall 问题中,一个游戏节目的参与者被要求在三个门之间选择,并且会赢得放置在选中门后的奖品。其中两扇门通向山羊,第三扇门通向一辆汽车。选手的每个选择所导致的结果是确定的,但是站在选手的角度,结果是不确定的。
+- 不完全建模。当我们使用一些必须舍弃某些观测信息的模型时,舍弃的信息会导致模型的预测出现不确定性。例如,假设我们制作了一个机器人,它可以准确地观察周围每一个对象的位置。在对这些对象将来的位置进行预测时,如果机器人采用的是离散化的空间,那么离散化的方法将使得机器人无法确定对象们的精确位置:因为每个对象都可能处于它被观测到的离散单元的任何一个角落。
+
+# 概率的理解
+
+概率论是机器学习中的重要角色,对于概率的理解往往有两种不同的方式:频率学派与贝叶斯学派。频率论解释(Frequentist Interpretation)的观点中,概率代表着某个事件在较长范围内的出现频次。譬如这里的抛硬币问题可以阐述为,如果我们抛足够的次数,我们会观测到正面朝上的次数与反面朝上的次数基本相同。
+
+另一种即时所谓的贝叶斯解释(Bayesian Interpretation),我们认为概率是用来衡量某件事的不确定性(Uncertainty),其更多地与信息相关而不再是重复尝试的次数。用贝叶斯理论阐述抛硬币问题则为下一次抛硬币时正面朝上的可能性与反面朝上的可能性相差无几。贝叶斯解释的最大优势在于我们可以去为事件的不确定性建立具体的模型而不再依赖于多次试验得出的频次结果。譬如我们要去预测 2020 年世界杯的冠军,我们肯定不能让球队比赛很多次来观测频次计算概率,这件事只会发生零或一次,反正是无法重复发生的。基于贝叶斯理论我们便可以利用可观测到的数据推测该事件的结果概率,典型的应用是垃圾邮件过滤系统中,我们可以根据带标签的训练数据来对新的邮件进行判断。
+
+# 随机变量
+
+随机变量(Random Variable)是可以随机地取不同值的变量。我们通常用无格式字体(Plain Typeface) 中的小写字母来表示随机变量本身,而用手写体中的小写字母来表示随机变量能够取到的值。例如,$x_1$ 和 $x_2$ 都是随机变量 $\mathrm{x}$ 可能的取值。就其本身而言,一个随机变量只是对可能的状态的描述;它必须伴随着一个概率分布来指定每个状态的可能性。
+
+随机变量可以是离散的或者连续的。离散随机变量拥有有限或者可数无限多的状态。注意这些状态不一定非要是整数;它们也可能只是一些被命名的状态而没有数值。连续随机变量伴随着实数值。

+ 131 - 0
概率论/中心极限与大数定理.md

@@ -0,0 +1,131 @@
+# 大数定律及中心极限定理
+
+# 切比雪夫不等式
+
+假设随机变量 $X$ 具有期望 $\mathbb{E}[X]=\mu$,方差 $\operatorname{Var}(X)=\sigma^{2}$,则对于任意正数 $\varepsilon$,下列不等式成立:
+
+$$
+P\{|X-\mu| \geq \varepsilon\} \leq \frac{\sigma^{2}}{\varepsilon^{2}}
+$$
+
+其意义在于,对于距离 $\mathbb{E}[X]$ 足够远的地方(距离大于等于 $\varepsilon$),事件出现的概率是小于等于 $\frac{\sigma^{2}}{\varepsilon^{2}}$,即事件出现在区间 $[\mu-\varepsilon, \mu+\varepsilon]$ 的概率大于等于 $1-\frac{\sigma^{2}}{\varepsilon^{2}}$。该不等式给出了随机变量 $X$ 在分布未知的情况下,事件 $\{|X-\mu| \leq \varepsilon\}$ 的下限估计,如:
+
+$$
+P\{|X-\mu|<3 \sigma\} \geq 0.8889
+$$
+
+该不等式的证明为:
+
+$$
+\begin{aligned} P\{|X-\mu| \geq \varepsilon& \}=\int_{|x-\mu| \geq \varepsilon} p(x) d x \leq \int_{|x-\mu| \geq \varepsilon} \frac{|x-\mu|^{2}}{\varepsilon^{2}} p(x) d x \\ & \leq \frac{1}{\varepsilon^{2}} \int_{-\infty}^{\infty}(x-\mu)^{2} p(x) d x=\frac{\sigma^{2}}{\varepsilon^{2}} \end{aligned}
+$$
+
+切比雪夫不等式的特殊情况:假设随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 相互独立,且具有相同的数学期望和方差: $\mathbb{E}\left[X_{k}\right]=\mu, \operatorname{Var}\left[X_{k}\right]=\sigma^{2}$。作前 $n$ 个随机变量的算术平均:$\overline{X}=\frac{1}{n} \sum_{k=1}^{n} X_{k}$,则对于任意正数 $\varepsilon$ 有:
+
+$$
+\lim _{n \rightarrow \infty} P\{|\overline{X}-\mu|<\varepsilon\}=\lim _{n \rightarrow \infty} P\left\{\left|\frac{1}{n} \sum_{k=1}^{n} X_{k}-\mu\right|<\varepsilon\right\}=1
+$$
+
+证明过程为,根据期望和方差的性质有:$\mathbb{E}[\overline{X}]=\mu, \quad \operatorname{Var}[\overline{X}]=\frac{\sigma^{2}}{n}$,根据切比雪夫不等式有:
+
+$$
+P\{|\overline{X}-\mu| \geq \varepsilon\} \leq \frac{\sigma^{2}}{n \varepsilon^{2}}
+$$
+
+则有 $\lim _{n \rightarrow \infty} P\{|\overline{X}-\mu| \geq \varepsilon\}=0$,因此有 $\lim _{n \rightarrow \infty} P\{|\overline{X}-\mu|<\varepsilon\}=1$。
+
+# 大数定理
+
+假设 $Y_{1}, Y_{2}, \cdots, Y_{n}, \cdots$ 是一个随机变量序列,$a$ 是一个常数,如果对于任意正数 $\varepsilon$ 存在:
+
+$$
+\lim _{n \rightarrow \infty} P\left\{\left|Y_{n}-a\right| \leq \varepsilon\right\}=1
+$$
+
+则称序列 $Y_{1}, Y_{2}, \cdots, Y_{n}, \cdots$ 依概率收敛于 $a$,记作:$Y_{n} \stackrel{P}{\rightarrow} a$。
+
+依概率收敛包含两层意思,收敛表明这是一个随机变量序列,而不是某个随机变量;且序列是无限长,而不是有限长。依概率则表明序列无穷远处的随机变量 $Y_{\infty}$ 的分布规律为:绝大部分分布于点 $a$,极少数位于 $a$ 之外。且分布于 $a$ 之外的事件发生的概率之和为 0。
+
+## 大数定理一
+
+假设随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 相互独立,且具有相同的数学期望和方差:$\mathbb{E}\left[X_{k}\right]=\mu, \operatorname{Var}\left[X_{k}\right]=\sigma^{2}$。则序列:
+
+$$
+\overline{X}=\frac{1}{n} \sum_{k=1}^{n} X_{k}
+$$
+
+依概率收敛于 $\mu$,即 $\overline{X} \stackrel{P}{\rightarrow} \mu$。值得一提的是,这里并没有要求随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 同分布。
+
+## 伯努利大数定理
+
+假设 $n_{A}$ 为 $n$ 次独立重复实验中事件 $A$ 发生的次数,$p$ 是事件 $A$ 在每次试验中发生的概率。则对于任意正数 $\varepsilon$ 有:
+
+$$
+\begin{array}{c}{\lim _{n \rightarrow \infty} P\left\{\left|\frac{n_{A}}{n}-p\right|<\varepsilon\right\}=1} \\ {\text { or: } \quad \lim _{n \rightarrow \infty} P\left\{\left|\frac{n_{A}}{n}-p\right| \geq \varepsilon\right\}=0}\end{array}
+$$
+
+即当独立重复实验执行非常大的次数时,事件 $A$ 发生的频率逼近于它的概率。
+
+## 辛钦定理
+
+假设随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 相互独立,服从同一分布,且具有相同的数学期望:$\mathbb{E}\left[X_{k}\right]=\mu$,则对于任意正数 $\varepsilon$ 存在:
+
+$$
+\lim _{n \rightarrow \infty} P\left\{\left|\frac{1}{n} \sum_{k=1}^{n} X_{k}-\mu\right|<\varepsilon\right\}=1
+$$
+
+注意:这里并没有要求随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 的方差存在,伯努利大数定理是亲钦定理的特殊情况。
+
+# 中心极限定理
+
+## 独立同分布的中心极限定理
+
+假设随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 独立同分布,且具有数学期望和方差:$\mathbb{E}\left[X_{k}\right]=\mu, \operatorname{Var}\left[X_{k}\right]=\sigma^{2}$,则随机变量之和 $\overline{S X_{n}}=\sum_{k=1}^{n} X_{k}$ 的标准变化量:
+
+$$
+Y_{n}=\frac{\overline{S X_{n}}-\mathbb{E}\left[\overline{S X_{n}}\right]}{\sqrt{\operatorname{Var}\left[\overline{S X_{n}}\right]}}=\frac{\overline{S X_{n}}-n \mu}{\sqrt{n} \sigma}
+$$
+
+的概率分布函数 $F_{n}(x)$ 对于任意 $x$ 满足:
+
+$$
+\begin{array}{c}{\lim _{n \rightarrow \infty} F_{n}(x)=\lim _{n \rightarrow \infty} P\left\{Y_{n} \leq x\right\}=\lim _{n \rightarrow \infty} P\left\{\frac{\sum_{k=1}^{n} X_{k}-n \mu}{\sqrt{n} \sigma} \leq x\right\}} \\ {=\int_{-\infty}^{x} \frac{1}{\sqrt{2 \pi}} e^{-t^{2} / 2} d t=\Phi(x)}\end{array}
+$$
+
+其物理意义在于,均值方差为 $\mu, \sigma^{2}$ 的独立同分布的随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 之和 $\overline{S X_{n}}=\sum_{k=1}^{n} X_{k}$ 的标准变化量 $Y_n$,当 $n$ 充分大时,其分布近似于标准正态分布。
+
+即 $\overline{S X_{n}}=\sum_{k=1}^{n} X_{k}$ 在 $n$ 充分大时,其分布近似于 $N\left(n \mu, n \sigma^{2}\right)$。一般情况下,很难求出 $n$ 个随机变量之和的分布函数。因此当 $n$ 充分大时,可以通过正态分布来做理论上的分析或者计算。
+
+## Liapunov 定理
+
+假设随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 相互独立,具有数学期望和方差:$\mathbb{E}\left[X_{k}\right]=\mu_{k}, \operatorname{Var}\left[X_{k}\right]=\sigma_{k}^{2}$。
+
+记 $B_{n}^{2}=\sum_{k=1}^{n} \sigma_{k}^{2}$,如果存在正数 $\delta$,使得 $n \rightarrow \infty$ 时:
+
+$$
+\frac{1}{B_{n}^{2+\delta}} \sum_{k=1}^{n} \mathbb{E}\left[\left|X_{k}-\mu_{k}\right|^{2+\delta}\right] \rightarrow 0
+$$
+
+则随机变量之和 $\overline{S X_{n}}=\sum_{k=1}^{n} X_{k}$ 的标准变化量:
+
+$$
+Z_{n}=\frac{\overline{S X_{n}}-\mathbb{E}\left[\overline{S X_{n}}\right]}{\sqrt{\operatorname{Var}\left[\overline{S X_{n}}\right]}}=\frac{\overline{S X_{n}}-\sum_{k=1}^{n} \mu_{k}}{B_{n}}
+$$
+
+的概率分布函数 $F_{n}(x)$ 对于任意 $x$ 满足:
+
+$$
+\begin{aligned} \lim _{n \rightarrow \infty} F_{n}(x)=\lim _{n \rightarrow \infty} & P\left\{Z_{n} \leq x\right\}=\lim _{n \rightarrow \infty} P\left\{\frac{\sum_{k=1}^{n} X_{k}-\sum_{k=1}^{n} \mu_{k}}{B_{n}} \leq x\right\} \\ &=\int_{-\infty}^{x} \frac{1}{\sqrt{2 \pi}} e^{-t^{2} / 2} d t=\Phi(x) \end{aligned}
+$$
+
+其物理意义在于,相互独立的随机变量 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 之和 $\overline{S X_{n}}=\sum_{k=1}^{n} X_{k}$ 的衍生随机变量序列 $Z_{n}=\frac{\overline{S X_{n}}-\sum_{k=1}^{n} \mu_{k}}{B_{n}}$,当 $n$ 充分大时,其分布近似于标准正态分布。注意,这里同样不要求 $X_{1}, X_{2}, \cdots, X_{n}, \cdots$ 同分布。
+
+## Demoiver-Laplace 定理
+
+假设随机变量序列 $\eta_{n}, n=1,2, \dots$ 服从参数为 $(n, p)$ 的二项分布,其中 $0<p<1$。则对于任意 $x$ 有:
+
+$$
+\lim _{n \rightarrow \infty} P\left\{\frac{\eta_{n}-n p}{\sqrt{n p(1-p)}} \leq x\right\}=\int_{-\infty}^{x} \frac{1}{\sqrt{2 \pi}} e^{-t^{2} | 2} d t=\Phi(x)
+$$
+
+该定理表明,正态分布是二项分布的极限分布。当 $n$ 充分大时,可以利用正态分布来计算二项分布的概率。

+ 1 - 0
概率论/参数估计/README.md

@@ -0,0 +1 @@
+# 参数估计

+ 1 - 0
概率论/常见概率分布/README.md

@@ -0,0 +1 @@
+# Probability Distribution | 常见概率分布

+ 69 - 0
概率论/常见概率分布/多项分布.md

@@ -0,0 +1,69 @@
+# Bernoulli Distribution | 伯努利分布
+
+伯努利分布是关于布尔变量 $x \in \{0,1\}$ 的概率分布,其连续参数 $\phi \in [0,1]$ 表示变量 $x=1$ 的概率。
+
+$$
+P(x|\phi)=Bern(x|\phi)=\phi^x(1-x)^{(1-x)} \\
+E[x] = \phi \\
+Var[x] = \phi(1-\phi)
+$$
+
+# Binomial Distribution | 二项分布
+
+二项分布用以描述 $n$ 次独立的伯努利实验中有 $x$ 次成功的概率,其中每次伯努利实验成功的概率为 $\phi \in [0,1]$:
+
+$$
+p(X=x)=\frac{n !}{x !(n-x) !} \phi^{x}(1-\phi)^{n-x}, x \in\{0,1, \cdots, n\}
+$$
+
+当 $n=1$ 时,二项分布退化为伯努利分布。二项分布的典型例子是扔硬币,硬币正面朝上概率为 $p$, 重复扔 $n$ 次硬币,$k$ 次为正面的概率即为一个二项分布概率。
+
+二项分布的期望 $\mathbb{E}[X]=n \phi$,方差则是 $\operatorname{Var}[X]=n \phi(1-\phi)$。
+
+# Categorical/Multinomial Distribution | 多项分布
+
+比如扔骰子,不同于扔硬币,骰子有 6 个面对应 6 个不同的点数,这样单次每个点数朝上的概率都是 $1/6$,即对应 p1~p6,它们的值不一定都是 1/6,只要和为 1 且互斥即可,比如一个形状不规则的骰子;重复扔 n 次,如果问有 $x$ 次都是点数 6 朝上的概率就是:
+
+$$
+P = C(n,x)p^x(1-p)^{n-x}
+$$
+
+严格定义来说,将伯努利分布由单变量扩展到 $d$ 维向量 $x$,其中 $x_i \in {0,1}$,且$\sum_{i=1}^{d} x_i = 1$,并假设 $x_i$取 1 的概率为 $\mu_i \in [0,1],\sum_{i=1}^d \mu_i = 1$,则将得到离散概率分布为:
+
+$$
+P(x|\mu) = \prod_{i=1}^d \mu_i^{x_i} \\
+E[x_i] = \mu_i \\
+Var[x_i] = \mu_i(1 - \mu_i) \\
+Cov[x_j,x_i] = \prod[j=i] \mu_i
+$$
+
+在此基础上扩展二项分布则得到多项分布,它描述了在 $N$ 次独立实验中有 $m_i$ 次 $x_i = 1$ 的概率:
+
+$$
+P(m_1,m_2,...,m_d|N,\mu)=Mult(m_1,m_2,...,m_d | N,\mu) \\
+= \frac{N!}{m_1!m_2!...m_d!}\prod_{i=1}^d \mu_i^{m_i} \\
+E[m_i] = N_{\mu_i} \\
+Var[m_i] = N_{\mu_i}(1-\mu_i) \\
+Cov[m_j,m_i] = -N_{\mu_j \mu_i}
+$$
+
+# 狄里克雷分布
+
+多项式分布的质量密度函数:
+
+$$
+\operatorname{Mult}\left(m_{1}, m_{2}, \cdots, m_{K} ; \vec{\mu}, N\right)=\frac{N !}{m_{1} ! m_{2} ! \cdots m_{K} !} \prod_{k=1}^{K} \mu_{k}^{m_{k}}
+$$
+
+它是 $\left(\mu_{1}+\mu_{2}+\cdots+\mu_{K}\right)^{m_{1}+m_{2}+\cdots+m_{K}}$ 的多项式展开的形式。
+
+狄利克雷分布的概率密度函数:
+
+$$
+\operatorname{Dir}(\vec{\mu} ; \vec{\alpha})=\frac{\Gamma\left(\sum_{k=1}^{K} \alpha_{k}\right)}{\sum_{k=1}^{K} \Gamma\left(\alpha_{k}\right)} \prod_{k=1}^{K} \mu_{k}^{\alpha_{k}-1}
+$$
+
+可以看到,多项式分布与狄里克雷分布的概率密度函数非常相似,区别仅仅在于前面的归一化项:
+
+- 多项式分布是针对离散型随机变量,通过求和获取概率。
+- 狄里克雷分布时针对连续型随机变量,通过求积分来获取概率。

+ 65 - 0
概率论/常见概率分布/正态分布.md

@@ -0,0 +1,65 @@
+# 正态分布/高斯分布
+
+正态分布只依赖于数据集的两个特征:样本的均值和方差。正态分布的这种统计特性使得问题变得异常简单,任何具有正态分布的变量,都可以进行高精度分预测。值得注意的是,大自然中发现的变量,大多近似服从正态分布。即如果某个随机变量取值范围是实数,且对它的概率分布一无所知,通常会假设它服从正态分布,其考量的原因包括:
+
+- 中心极限定理表明,多个独立随机变量的和近似正态分布,则建模的任务的真实分布通常都确实接近正态分布。
+
+- 在具有相同方差的所有可能的概率分布中,正态分布的熵最大(即不确定性最大)。
+
+# 一维正态分布
+
+设 $X \sim N(\mu,\sigma^2)$,则其概率密度为:
+
+$$
+f(x)=\frac{1}{\sqrt{2\pi}*\sigma}e^{-\frac{(x-\mu)^2}{2*\sigma^2}}, -\infty<x<\infty
+$$
+
+其中 $\mu, \sigma(\sigma>0)$ 为常数,若随机变量 $X$ 的概率密度函数如上所述,则称 $X$ 服从参数为 $\mu, \sigma$ 的正态分布或者高斯分布,记作 $X \sim N\left(\mu, \sigma^{2}\right)$。
+
+当 $\mu=0, \sigma=1$ 时,称为标准正态分布,其概率密度函数记作 $\varphi(x)$,分布函数记作 $\Phi(x)$。为了方便计算,有时记作 $\mathcal{N}\left(x ; \mu, \beta^{-1}\right)=\sqrt{\frac{\beta}{2 \pi}} \exp \left(-\frac{1}{2} \beta(x-\mu)^{2}\right)$,其中 $\beta \in(0, \infty)$。
+
+正态分布的概率密度函数性质如下:
+
+- 曲线关于 $x = \mu$ 处对称,并且在该处取到最大值。
+- 曲线在 $x=\mu \pm \sigma$ 处有拐点,参数 $\mu$ 决定曲线的位置,$\sigma$ 决定图形的胖瘦。
+
+![](https://i.postimg.cc/cLTrhdPH/image.png)
+
+若 $X \sim N\left(\mu, \sigma^{2}\right)$ 则称 $\frac{X-\mu}{\sigma} \sim N(0,1)$,其期望 $\mathbb{E}[X]=\mu$,方差 $\operatorname{Var}[X]=\sigma^{2}$。
+
+有限个相互独立的正态随机变量的线性组合仍然服从正态分布:若随机变量 $X_{i} \sim N\left(\mu_{i}, \sigma_{i}^{2}\right), i=1,2, \cdots, n$,且它们相互独立,则它们的线性组合:$C_{1} X_{1}+C_{2} X_{2}+\cdots+C_{n} X_{n}$ 仍然服从正态分布(其中 $C_{1}, C_{2}, \cdots, C_{n}$ 不全是为 0 的常数),且 $C_{1} X_{1}+C_{2} X_{2}+\cdots+C_{n} X_{n} \sim N\left(\sum_{i=1}^{n} C_{i} \mu_{i}, \sum_{i=1}^{n} C_{i}^{2} \sigma_{i}^{2}\right)$。
+
+# 多维正态分布
+
+> https://parg.co/NOA 5.4 节
+
+二维正态随机变量 $(X,Y)$ 的概率密度为:
+
+$$
+\begin{aligned} p(x, y) &=\frac{1}{2 \pi \sigma_{1} \sigma_{2} \sqrt{1-\rho^{2}}} \exp \left\{\frac{-1}{2\left(1-\rho^{2}\right)}\left[\frac{\left(x-\mu_{1}\right)^{2}}{\sigma_{1}^{2}}\right.\right.\\ &-2 \rho \frac{\left(x-\mu_{1}\right)\left(y-\mu_{2}\right)}{\sigma_{1} \sigma_{2}}+\frac{\left(y-\mu_{2}\right)^{2}}{\sigma_{2}^{2}} ] \} \end{aligned}
+$$
+
+根据定义,可以计算出:
+
+$$
+p_{X}(x)=\frac{1}{\sqrt{2 \pi} \sigma_{1}} e^{-\left(x-\mu_{1}\right)^{2} /\left(2 \sigma_{1}^{2}\right)},-\infty<x<\infty \\
+p_{Y}(y)=\frac{1}{\sqrt{2 \pi} \sigma_{2}} e^{-\left(y-\mu_{2}\right)^{2} /\left(2 \sigma_{2}^{2}\right)},-\infty<y<\infty \\
+$$
+
+$$
+\begin{array}{c}{\mathbb{E}[X]=\mu_{1}} \\ {\mathbb{E}[Y]=\mu_{2}} \\ {\operatorname{Var}[X]=\sigma_{1}^{2}} \\ {\operatorname{Var}[Y]=\sigma_{2}^{2}} \\ {\operatorname{Cov}[X, Y]=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty}\left(x-\mu_{1}\right)\left(y-\mu_{2}\right) p(x, y) d x d y=\rho \sigma_{1} \sigma_{2}} \\ {\rho_{X Y}=\rho}\end{array}
+$$
+
+# 多维正态随机变量
+
+# 拉普拉斯分布
+
+拉普拉斯分布的概率密度函数为:
+
+$$
+p(x ; \mu, \gamma)=\frac{1}{2 \gamma} \exp \left(-\frac{|x-\mu|}{\gamma}\right)
+$$
+
+其期望为 $\mathbb{E}[X]=\mu$,方差为 $\operatorname{Var}[X]=2 \gamma^{2}$。
+
+![](https://i.postimg.cc/LXMqp2wz/image.png)

+ 136 - 0
概率论/常见概率分布/泊松分布.md

@@ -0,0 +1,136 @@
+# Uniform Distribution | 均匀分布
+
+均匀分布式是定义在区间 $[a,b] (a<b)$ 上连续变量的简单概率分布。对于离散随机变量 $X$,假设其有 $k$ 个取值:$x_{1}, x_{2}, \cdots, x_{k}$,则均匀分布的概率密度函数 PMF 为:
+
+$$
+p\left(X=x_{i}\right)=\frac{1}{k}, \quad i=1,2, \cdots, k
+$$
+
+对于连续随机变量 $X$ 而言,其概率密度函数 PDF 为:
+
+$$
+p(X=x)=\left\{\begin{array}{ll}{0,} & {x \notin[a, b]} \\ {\frac{1}{b-a},} & {x \in[a, b]}\end{array}\right.
+$$
+
+推导其期望与方差为:
+
+$$
+E(X)=\frac{1}{2}(a+b) \\
+D(X)=\frac{(b-a)^2}{12}
+$$
+
+不难发现,如果变量 $x$ 服从均匀分布 $U(x|0,1)$ 且 $a<b$,则 $a+(b-a)x$ 服从均匀分布 $U(x|a,b)$.
+
+# 泊松分布
+
+假设已知事件在单位时间(或者单位面积)内发生的平均次数为 $\lambda$,则泊松分布描述了:事件在单位时间(或者单位面积)内发生的具体次数为 $k$ 的概率。
+
+泊松分布的概率质量函数为:
+
+$$
+p(X=k ; \lambda)=\frac{e^{-\lambda} \lambda^{k}}{k !}
+$$
+
+其期望 $\mathbb{E}[X]=\lambda$,方差 $\operatorname{Var}[X]=\lambda$。
+
+![](https://i.postimg.cc/9fHX41b2/image.png)
+
+我们可以用均匀分布来模拟泊松分布:
+
+```py
+def make_poisson(lmd,tm):
+    '''
+    用均匀分布模拟泊松分布。lmd为 lambda 参数; tm 为时间
+    '''
+    t=np.random.uniform(0,tm,size=lmd*tm) # 获取 lmd*tm 个事件发生的时刻
+    count,tm_edges=np.histogram(t,bins=tm,range=(0,tm))#获取每个单位时间内,事件发生的次数
+    max_k= lmd *2 # 要统计的最大次数
+    dist,count_edges=np.histogram(count,bins=max_k,range=(0,max_k),density=True)
+    x=count_edges[:-1]
+    return x,dist,stats.poisson.pmf(x,lmd)
+```
+
+首先随机性给出了 `lmd*tm` 个事件发生的时间(时间位于区间 `[0,tm]`)内,
+然后统计每个单位时间区间内,事件发生的次数。然后统计这些次数出现的频率,最后将这个频率与理论上的泊松分布的概率质量函数比较。
+
+# 指数分布
+
+若事件服从泊松分布,则该事件前后两次发生的时间间隔服从指数分布。由于时间间隔是个浮点数,因此指数分布是连续分布。指数分布的概率密度函数为:
+
+$$
+p(t ; \lambda)=\left\{\begin{array}{ll}{0,} & {t<0} \\ {\frac{\lambda}{\exp (\lambda t)},} & {t \geq 0}\end{array}\right.
+$$
+
+其中 $t$ 为时间间隔,期望为 $\mathbb{E}[t]=\frac{1}{\lambda}$,方差为 $\operatorname{Var}[t]=\frac{1}{\lambda^{2}}$。
+
+![](https://i.postimg.cc/HL0MjrQS/image.png)
+
+我们同样可以用均匀分布来模拟指数分布:
+
+```py
+def make_expon(lmd,tm):
+    '''
+    用均匀分布模拟指数分布。lmd为 lambda 参数; tm 为时间
+    '''
+    t=np.random.uniform(0,tm,size=lmd*tm) # 获取 lmd*tm 个事件发生的时刻
+    sorted_t=np.sort(t) #时刻升序排列
+    delt_t=sorted_t[1:]-sorted_t[:-1] #间隔序列
+    dist,edges=np.histogram(delt_t,bins="auto",density=True)
+    x=edges[:-1]
+    return x,dist,stats.expon.pdf(x,loc=0,scale=1/lmd) #scale 为 1/lambda
+```
+
+# 伽玛分布
+
+若事件服从泊松分布,则事件第 $i$ 次发生和第 $i + k$ 次发生的时间间隔为伽玛分布。由于时间间隔是个浮点数,因此伽玛分布是连续分布。伽玛分布的概率密度函数为:
+
+$$
+p(t ; \lambda, k)=\frac{t^{(k-1)} \lambda^{k} e^{(-\lambda t)}}{\Gamma(k)}
+$$
+
+其中 $t$ 为时间间隔,伽玛分布的期望为 $\mathbb{E}[t]=\frac{k}{\lambda}$,方差为 $\operatorname{Var}[t]=\frac{k}{\lambda^{2}}$。
+
+上面的定义中 $k$ 必须是整数,若随机变量 $X$ 服从伽玛分布,则其概率密度函数为:
+
+$$
+p(X ; \alpha, \beta)=\frac{\beta^{\alpha}}{\Gamma(\alpha)} X^{\alpha-1} e^{-\beta X}, \quad X>0
+$$
+
+该分布记作 $\Gamma(\alpha, \beta)$,其中 $\alpha$ 称作形状参数,$\beta$ 称作尺度参数。其期望为 $\mathbb{E}[X]=\frac{\alpha}{\beta}$,方差 $\operatorname{Var}[X]=\frac{\alpha}{\beta^{2}}$。当 $\alpha \leq 1$ 时,$p(X ; \alpha, \beta)$ 为递减函数;当 $\alpha>1$ 时,$p(X ; \alpha, \beta)$ 为单峰函数。
+
+![](https://i.postimg.cc/VkGW9Gvx/image.png)
+
+当 $\beta=n$ 时,伽玛分布就是 $Erlang$ 分布。当 $\alpha=1, \beta=\lambda$ 时,就是参数为 $\lambda$ 的指数分布。当 $\alpha=\frac{n}{2}, \beta=\frac{1}{2}$ 时,就是常用的卡方分布。
+
+伽玛分布满足可加性原理,假设随机变量 $X_{1}, X_{2}, \cdots, X_{n}$ 相互独立并且都服从伽玛分布;$X_{i} \sim \Gamma\left(\alpha_{i}, \beta\right)$,则:
+
+$$
+X_{1}+X_{2}+\cdots+X_{n} \sim \Gamma\left(\alpha_{1}+\alpha_{2}+\cdots+\alpha_{n}, \beta\right)
+$$
+
+我们同样可以用均匀分布来模拟伽玛分布:
+
+```py
+def make_gamma(lmd,tm,k):
+    '''
+    用均匀分布模拟伽玛分布。lmd为 lambda 参数; tm 为时间;k 为 k 参数
+    '''
+    t=np.random.uniform(0,tm,size=lmd*tm) # 获取 lmd*tm 个事件发生的时刻
+    sorted_t=np.sort(t) #时刻升序排列
+    delt_t=sorted_t[k:]-sorted_t[:-k] #间隔序列
+    dist,edges=np.histogram(delt_t,bins="auto",density=True)
+    x=edges[:-1]
+    return x,dist,stats.gamma.pdf(x,loc=0,scale=1/lmd,a=k) #scale 为 1/lambda,a 为 k
+```
+
+# 贝塔分布
+
+贝塔分布是定义在 $(0,1)$ 之间的连续概率分布。如果随机变量 $X$ 服从贝塔分布,则其概率密度函数为:
+
+$$
+p(X, \alpha, \beta)=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} X^{\alpha-1}(1-X)^{\beta-1}=\frac{1}{B(\alpha, \beta)} X^{\alpha-1}(1-X)^{\beta-1}, \quad 0 \leq X<1
+$$
+
+上述分布记作 $\operatorname{Beta}(\alpha, \beta)$,贝塔分布的期望为 $\mathbb{E}[X]=\frac{\alpha}{\alpha+\beta}$,方差为 $\operatorname{Var}[X]=\frac{\alpha \beta}{(\alpha+\beta)^{2}(\alpha+\beta+1)}$。
+
+![](https://i.postimg.cc/SsqRnqqk/image.png)

+ 7 - 0
概率论/最小二乘法.md

@@ -0,0 +1,7 @@
+# 最小二乘法
+
+最小平方法是十九世纪统计学的主题曲。从许多方面来看, 它之于统计学就相当于十八世纪的微积分之于数学。
+
+# 链接
+
+- https://www.matongxue.com/madocs/818.html

+ 220 - 0
概率论/期望与方差.md

@@ -0,0 +1,220 @@
+# 期望与方差
+
+# 期望
+
+期望描述了随机变量的平均情况,衡量了随机变量 $X$ 的均值,它是概率分布的泛函。离散型随机变量 $X$ 的期望如下:
+
+$$
+\mathbb{E}[X]=\sum_{i=1}^{\infty} x_{i} p_{i}
+$$
+
+若右侧级数不收敛,则期望不存在。连续性随机变量 $X$ 的期望如下:
+
+$$
+\mathbb{E}[X]=\int_{-\infty}^{\infty} x p(x) d x
+$$
+
+若右侧极限不收敛,则期望不存在。
+
+## 期望的性质
+
+常数的期望就是常数本身,对常数 $C$ 有:
+
+$$
+\mathbb{E}[C X]=C \mathbb{E}[X]
+$$
+
+对两个随机变量 $X,Y$,存在:
+
+$$
+\mathbb{E}[X+Y]=\mathbb{E}[X]+\mathbb{E}[Y]
+$$
+
+该结论可以推广到任意有限个随机变量之和的情况。对两个相互独立的随机变量,有:
+
+$$
+\mathbb{E}[X Y]=\mathbb{E}[X] \mathbb{E}[Y]
+$$
+
+该结论可以推广到任意有限个相互独立的随机变量之积的情况。这里以离散型随机变量为例,设二元随机变量 $X,Y$ 的联合分布 $P\left(X=x_{i}, Y=y_{j}\right)$ 已知,则 $P\left(X=x_{i}, Y=y_{j}\right)=P\left(X=x_{i}\right) \cdot P\left(Y=y_{j}\right), \quad(i=1,2, \cdots, m ; j=1,2, \cdots, n)$:
+
+$$
+\begin{aligned} E(X Y) &=\sum_{i=1}^{m} \sum_{j=1}^{n} x_{i} y_{j} P\left(X=x_{i}, Y=y_{j}\right)=\sum_{i=1}^{m} \sum_{j=1}^{n} x_{i} y_{j} P\left(X=x_{i}\right) P\left(Y=y_{j}\right) \\ &=\sum_{i=1}^{m} x_{i} P\left(X=x_{i}\right) \sum_{j=1}^{n} y_{j} P\left(Y=y_{j}\right)=E(X) E(Y) \end{aligned}
+$$
+
+## 复合函数期望
+
+对于随机变量 $X$ ,设 $Y=g(X)$ 也为随机变量,$g(\cdot)$ 是连续函数。
+
+若 $X$ 为离散型随机变量,且 $Y$ 的期望存在,则:
+
+$$
+\mathbb{E}[Y]=\mathbb{E}[g(X)]=\sum_{i=1}^{\infty} g\left(x_{i}\right) p_{i}
+$$
+
+也记作:
+
+$$
+\mathbb{E}_{X \sim P(X)}[g(X)]=\sum_{x} g(x) p(x)
+$$
+
+同样,若 $X$ 为连续型随机变量,且 $Y$ 的期望存在,则:
+
+$$
+\mathbb{E}[Y]=\mathbb{E}[g(X)]=\int_{-\infty}^{\infty} g(x) p(x) d x
+$$
+
+也记作:
+
+$$
+\mathbb{E}_{X \sim P(X)}[g(X)]=\int g(x) p(x) d x
+$$
+
+该定理的意义在于:当求 $\mathbb{E}(Y)$ 时,不必计算出 $Y$ 的分布,只需要利用 $X$ 的分布即可。该定理可以推广至两个或两个以上随机变量的情况,对于随机变量 $X, Y$,假设 $Z=g(X, Y)$ 也是随机变量,$g(\cdot)$ 是连续函数,则有:
+
+$$
+\mathbb{E}[Z]=\mathbb{E}[g(X, Y)]=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} g(x, y) p(x, y) d x d y
+$$
+
+也记作:
+
+$$
+\mathbb{E}_{X, Y \sim P(X, Y)}\left[g(X, Y) \int g(x, y) p(x, y) d x d y\right.
+$$
+
+# 方差
+
+对随机变量 $X$,若 $\mathbb{E}\left[(X-\mathbb{E}[X])^{2}\right]$ 存在,则称它为 $X$ 的方差,记作 $\operatorname{Var}[X]$。$X$ 的标准差为方差的开平方,即:
+
+$$
+\begin{aligned} \operatorname{Var}[X] &=\mathbb{E}\left[(X-\mathbb{E}[X])^{2}\right] \\ \sigma &=\sqrt{\operatorname{Var}[X]} \end{aligned}
+$$
+
+方差度量了随机变量 $X$ 与期望值偏离的程度,衡量了 $X$ 取值分散程度的一个尺度。由于绝对值 $|X-\mathbb{E}[X]|$ 带有绝对值,不方便运算,因此采用平方来计算。又因为 $|X-\mathbb{E}[X]|^{2}$ 是一个随机变量,因此对它取期望,即得 $X$ 与期望值偏离的均值。
+
+根据定义可知:
+
+$$
+\begin{array}{c}{\operatorname{Var}[X]=\mathbb{E}\left[(X-\mathbb{E}[X])^{2}\right]=\mathbb{E}\left[X^{2}\right]-(\mathbb{E}[X])^{2}} \\ {\operatorname{Var}[f(X)]=\mathbb{E}\left[(f(X)-\mathbb{E}[f(X)])^{2}\right]}\end{array}
+$$
+
+## 方差的性质
+
+常数的方差恒为 0,且 $\operatorname{Var}[X]=0$ 的充要条件是 $X$ 以概率 1 取常数。对常数 $C$,存在 $\operatorname{Var}[C X]=C^{2} \operatorname{Var}[X]$。对两个随机变量 $X,Y$,存在有:
+
+$$
+\operatorname{Var}[X+Y]=\operatorname{Var}[X]+\operatorname{Var}[Y]+2 \mathbb{E}[(X-\mathbb{E}[X])(Y-\mathbb{E}[Y])]
+$$
+
+当 $X$ 和 $Y$ 相互独立时,有:
+
+$$
+\operatorname{Var}[X+Y]=\operatorname{Var}[X]+\operatorname{Var}[Y]
+$$
+
+证明如下:
+
+$$
+\begin{aligned} \operatorname{Var}(X+Y) &=E\left[(X+Y)^{2}\right]-E(X+Y)^{2} \\ &=E\left(X^{2}+2 X Y+Y^{2}\right)-\left[E(X)^{2}+2 E(X) E(Y)+E(Y)^{2}\right] \\ &=E\left(X^{2}\right)-E(X)^{2}+E\left(Y^{2}\right)-E(Y)^{2}+2 E(X Y)-2 E(X) E(Y) \\ &=E\left(X^{2}\right)-E(X)^{2}+E\left(Y^{2}\right)-E(Y)^{2}=\operatorname{Var}(X)+\operatorname{Var}(Y) \end{aligned}
+$$
+
+这可以推广至任意有限多个相互独立的随机变量之和的情况。若 $X_{1}, X_{2}, \cdots, X_{n}$ 相互独立,且都存在方差,则:
+
+$$
+\operatorname{Var}\left(X_{1}+X_{2}+\cdots+X_{m}\right)=\sum_{k=1}^{n} \operatorname{Var}\left(X_{k}\right)
+$$
+
+## 标准化变量
+
+对于一个期望为 $\mu$,方差为 $\sigma^{2}, \sigma \neq 0$ 的随机变量 $X$,随机变量 $X^{*}=\frac{X-\mu}{\sigma}$ 的数学期望为 0,方差为 1,则称 $X^{*}$ 为 $X$ 的标准化变量。
+
+# 协方差
+
+对于二维随机变量 $(X, Y)$,可以讨论描述 $X$ 与 $Y$ 之间相互关系的数字特征。定义 $\mathbb{E}[(X-\mathbb{E}[X])(Y-\mathbb{E}[Y])]$ 为随机变量 $X$ 和 $Y$ 的协方差,记作:
+
+$$
+\operatorname{Cov}[X, Y]=\mathbb{E}[(X-\mathbb{E}[X])(Y-\mathbb{E}[Y])]
+$$
+
+在有协方差定义的情况下,我们可以将前文方差的定义修改为:
+
+$$
+\begin{array}{c}{\operatorname{Cov}[X, Y]=\operatorname{Cov}[Y, X]} \\ {\operatorname{Cov}[X, X]=\operatorname{Var}[X]} \\ {\operatorname{Var}[X+Y]=\operatorname{Var}[X]+\operatorname{Var}[Y]+2 \operatorname{Cov}[X, Y]}\end{array}
+$$
+
+## 协方差的性质
+
+$$
+\begin{array}{l}{\circ \operatorname{Cov}[a X, b Y]=a b \operatorname{Cov}[X, Y]} \\ {\circ \operatorname{Cov}\left[X_{1}+X_{2}, Y\right]=\operatorname{Cov}\left[X_{1}, Y\right]+\operatorname{Cov}\left[X_{2}, Y\right]} \\ {\circ \operatorname{Cov}[f(X), g(Y)]=\mathbb{E}[(f(X)-\mathbb{E}[f(X)])(g(Y)-\mathbb{E}[g(Y)])]} \\ {\circ \rho[f(X), g(Y)]=\frac{\operatorname{Covlf}(X), g(Y) ]}{\sqrt{\operatorname{Var}[f(X)] \sqrt{\operatorname{Var}[g(Y)]}}}}\end{array}
+$$
+
+协方差的绝对值越大,说明两个随机变量都远离它们的均值。协方差如果为正,则说明两个随机变量同时趋向于取较大的值或者同时趋向于取较小的值;如果为负,则说明一个随变量趋向于取较大的值,另一个随机变量趋向于取较小的值。
+
+两个随机变量的独立性可以导出协方差为零。但是两个随机变量的协方差为零无法导出独立性。因为独立性也包括:没有非线性关系。有可能两个随机变量是非独立的,但是协方差为零。如:假设随机变量 $X \sim U[-1,1]$,定义随机变量 $S$ 的概率分布函数为:
+
+$$
+P(S=1)=\frac{1}{2} P(S=-1)=\frac{1}{2}
+$$
+
+定义随机变量 $Y=SX$,则随机变量 $X,Y$ 是非独立的,但是有:$\operatorname{Cov}[X, Y]=0$。
+
+## 相关系数
+
+随机变量 $X$ 与 $Y$ 的相关系数,定义为:
+
+$$
+\rho_{X Y}=\frac{\operatorname{Cov}[X, Y]}{\sqrt{\operatorname{Var}[X]} \sqrt{\operatorname{Var}[Y]}}
+$$
+
+它可以看做协方差的归一化。其物理意义在于,如果考虑以随机变量 $X$ 的线性函数 $a+bX$ 来近似表示 $Y$,以均方误差:
+
+$$
+e=\mathbb{E}\left[(Y-(a+b X))^{2}\right]=\mathbb{E}\left[Y^{2}\right]+b^{2} \mathbb{E}\left[X^{2}\right]+a^{2}-2 b \mathbb{E}[X Y]+2 a b \mathbb{E}[X]-2 a \mathbb{E}[Y]
+$$
+
+来衡量以 $a+bX$ 近似表达 $Y$ 的好坏程度,$e$ 越小则表示近似程度越高。为求得最好的近似,则对 $a,b$ 分别取偏导数,得到:
+
+$$
+\begin{array}{c}{a_{0}=\mathbb{E}[Y]-b_{0} \mathbb{E}[X]=\mathbb{E}[Y]-\mathbb{E}[X] \frac{\operatorname{Cov}[X, Y]}{\operatorname{Var}[X]}} \\ {b_{0}=\frac{\operatorname{Cov}[X, Y]}{\operatorname{Var}[X]}} \\ {\min (e)=\mathbb{E}\left[\left(Y-\left(a_{0}+b_{0} X\right)\right)^{2}\right]=\left(1-\rho_{X Y}^{2}\right) \operatorname{Var}[Y]}\end{array}
+$$
+
+因此可以得到如下定理:
+
+- $\left|\rho_{X Y}\right| \leq 1$
+- $\left|\rho_{X Y}\right|=1$ 的充要条件是:存在常数 $a,b$ 使得 $P\{Y=a+b X\}=1$。
+
+当 $\left|\rho_{X Y}\right|$ 较大时,$e$ 较小,意味着随机变量 $X$ 和 $Y$ 联系较为紧密,于是 $\left|\rho_{X Y}\right|$ 是一个表征 $X, Y$ 之间线性关系紧密程度的量。
+
+当 $\rho_{X Y}=0$ 时,称 $X,Y$ 不相关,不相关是就线性关系来讲的,而相互独立是一般关系而言的;相互独立一定不相关,不相关则未必独立。
+
+# 协方差矩阵
+
+假设 $X$ 和 $Y$ 是随机变量:
+
+- 假如 $\mathbb{E}\left[X^{k}\right], k=1,2, \cdots$ 存在,则称它为 $X$ 的 $k$ 阶原点矩,简称 $k$ 阶矩。
+
+- 假如 $\mathbb{E}\left[(X-\mathbb{E}[X])^{k}\right], k=2,3, \cdots$ 存在,则称它为 $X$ 的 $k$ 阶中心矩。
+
+- 假如 $\mathbb{E}\left[X^{k} Y^{l}\right], k, l=1,2, \cdots$ 存在,则称它为 $X$ 和 $Y$ 的 $k+l$ 阶混合矩。
+
+- 假如 $\mathbb{E}\left[(X-\mathbb{E}[X])^{k}(Y-\mathbb{E}[Y])^{l}\right], k, l=1,2, \cdots$ 存在,则称它为 $X$ 和 $Y$ 的 $k+l$ 阶混合中心矩。
+
+因此期望是一阶原点矩,方差是二阶中心矩,协方差是二阶混合中心矩。而协方差矩阵,就定义为二维随机变量 $X_1,X_2$ 的四个二阶中心矩:
+
+$$
+\begin{array}{c}{c_{11}=\mathbb{E}\left[\left(X_{1}-\mathbb{E}\left[X_{1}\right]\right)^{2}\right]} \\ {c_{12}=\mathbb{E}\left[\left(X_{1}-\mathbb{E}\left[X_{1}\right]\right)\left(X_{2}-\mathbb{E}\left[X_{2}\right]\right)\right]} \\ {c_{21}=\mathbb{E}\left[\left(X_{2}-\mathbb{E}\left[X_{2}\right]\right)\left(X_{1}-\mathbb{E}\left[X_{1}\right]\right)\right]} \\ {c_{22}=\mathbb{E}\left[\left(X_{2}-\mathbb{E}\left[X_{2}\right]\right)^{2}\right]}\end{array}
+$$
+
+称矩阵:
+
+$$
+\mathbf{C}=\left[\begin{array}{ll}{c_{11}} & {c_{12}} \\ {c_{21}} & {c_{22}}\end{array}\right]
+$$
+
+为随机变量 $X_1,X_2$ 的协方差矩阵。设 $n$ 维随机变量 $\left(X_{1}, X_{2}, \cdots, X_{n}\right)$ 的二阶混合中心矩 $c_{i j}=\operatorname{Cov}\left[X_{i}, X_{j}\right]=\mathbb{E}\left[\left(X_{i}-\mathbb{E}\left[X_{i}\right]\right)\left(X_{j}-\mathbb{E}\left[X_{j}\right]\right)\right]$ 存在,则矩阵:
+
+$$
+\mathbf{C}=\left[\begin{array}{cccc}{c_{11}} & {c_{12}} & {\cdots} & {c_{1 n}} \\ {c_{21}} & {c_{22}} & {\cdots} & {c_{2 n}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {c_{n 1}} & {c_{n 2}} & {\cdots} & {c_{n n}}\end{array}\right]
+$$
+
+为 $\left(X_{1}, X_{2}, \cdots, X_{n}\right)$ 的协方差矩阵。鉴于 $c_{i j}=c_{j i}, i \neq j, i, j=1,2, \cdots, n$,协方差矩阵是对称阵。通常 $n$ 维随机变量的分布是不知道的,或者太复杂以致数学上不容易处理,因此实际中协方差矩阵非常重要。

+ 96 - 0
概率论/概率与分布.md

@@ -0,0 +1,96 @@
+# 概率与分布
+
+概率分布(Probability Distribution)用来描述随机变量或一簇随机变量在每一个可能取到的状态的可能性大小。我们描述概率分布的方式取决于随机变量是离散的还是连续的。
+
+# 离散型变量和概率质量函数
+
+离散型变量的概率分布可以用概率质量函数(Probability mass function, PMF)来描述。我们通常用大写字母 $P$ 来表示概率质量函数。通常每一个随机变量都会有一个不同的概率质量函数,并且必须根据随机变量来推断所使用的 PMF,而不是根据函数的名称来推断;例如,$P(x)$ 通常和 $P(y)$ 不一样。
+
+概率质量函数将随机变量能够取得的每个状态映射到随机变量取得该状态的概率。$\mathrm{x} = x$ 的概率用 $P(x)$ 来表示,概率为 1 表示 $\mathrm{x} = x$ 是确定的,概率为 0 表示 $\mathrm{x} = x$ 是不可能发生的。有时我们会定义一个随机变量,然后用 $\sim$ 符号来说明分布:$\mathrm{x} \sim P(\mathrm{x})$。
+
+概率质量函数可以同时作用于多个随机变量,这种多个变量的概率分布被称为联合概率分布(joint probability distribution)。$P(\mathrm{x}=x, \mathrm{y}=y)$ 表示 $\mathrm{x} = x$ 和 $\mathrm{y} = y$ 同时发生的概率,可以简写为 $P(x,y)$。
+
+如果一个函数 $P$ 是随机变量 $\mathrm{x}$ 的 PMF,必须满足以下条件:
+
+- $P$ 的定义域必须是 $\mathrm{x}$ 所有可能状态的集合。
+
+- $\forall x \in \mathrm{x}, 0 \leq P(x) \leq 1$ 不可能发生的事件概率为 0,并且不存在比这概率更低的状态。类似的,能够确保一定发生的事件概率为 1,而且不存在比这概率更高的状态。
+
+- $\sum_{x \in \mathrm{x}} P(x)=1$ 我们把这条性质称之为归一化的(normalized)。如果没有这条性质,当我们计算很多事件其中之一发生的概率时可能会得到大于 1 的概率。
+
+例如,考虑一个离散型随机变量 $\mathrm{x}$ 有 $k$ 个不同的状态。我们可以假设 $\mathrm{x}$ 是均匀分布(Uniform Distribution)的,也就是将它的每个状态视为等可能的,其 PMF 可以为:
+
+$$
+P\left(\mathrm{x}=x_{i}\right)=\frac{1}{k}
+$$
+
+对于所有的 $i$ 都成立。我们可以看出这满足上述成为概率质量函数的条件。因为 $k$ 是一个正整数,所以 $\frac{1}{k}$ 是正的,并且:
+
+$$
+\sum_{i} P\left(\mathrm{x}=x_{i}\right)=\sum_{i} \frac{1}{k}=\frac{k}{k}=1
+$$
+
+因此分布也满足归一化条件。
+
+# 连续型变量和概率密度函数
+
+当我们研究的对象是连续型随机变量时,我们用概率密度函数(Probability density function, PDF)而不是概率质量函数来描述它的概率分布。如果一个函数 $p$ 是概率密度函数,必须满足下面这几个条件:
+
+- $p$ 的定义域必须是 $\mathrm{x}$ 所有可能状态的集合。
+
+- $\forall x \in \mathrm{x}, p(x) \geq 0$ ,值得一提的是,并不要求:$p(x) \leq 1$。
+
+- $\int p(x) d x=1$
+
+概率密度函数 $p(x)$ 并没有直接对特定的状态给出概率,相对的,它给出了落在面积为 $\delta x$ 的无限小的区域内的概率为 $p(x) \delta x$。我们可以对概率密度函数求积分来获得点集的真实概率质量,$x$ 落在区间 $[a, b]$ 的概率是 $\int_{[a, b]} p(x) d x$。
+
+为了给出一个连续型随机变量的 PDF 的例子,我们可以考虑实数区间上的均匀分布。我们可以使用函数 $u(x ; a, b)$,其中 $a$ 和 $b$ 是区间的端点且满足 $b > a$。符号 $;$ 表示以什么为参数。一般将 $x$ 作为函数的自变量,$a$ 和 $b$ 作为定义函数的参数。
+
+- 为了确保区间外没有概率,我们对所有的 $x \notin[a, b]$,令 $u(x ; a, b)=0$。
+- 在 $[a,b]$ 内,有 $u(x ; a, b)=\frac{1}{b-a}$。
+
+上述函数中,任何一点都非负,并且其积分为 1,通常可以使用 $\mathrm{x} \sim U(a, b)$ 表示 $x$ 在 $[a,b]$ 上是均匀分布的。
+
+# 条件概率与独立事件
+
+所谓条件概率,已知 $A$ 事件发生的条件下 $B$ 发生的概率,记作 $P(B|A)$,它等于事件 $AB$ 的概率相对于事件 $A$ 的概率,即:$P(B | A)=\frac{P(A B)}{P(A)}$,其中必须有 $P(A)>0$ 。
+
+条件概率分布满足链式法则,对于 $n$ 个随机变量 $X_{1}, X_{2}, \cdots, X_{n}$,存在有
+
+$$
+P\left(X_{1}, X_{2}, \cdots, X_{n}\right)=P\left(X_{1}\right) \prod_{i=2}^{n} P\left(X_{i} | X_{1}, \cdots, X_{i-1}\right)
+$$
+
+## 独立
+
+两个随机变量 $X,Y$ 相互独立的数学描述如下,记作 $X \perp Y$:
+
+$$
+P(X, Y)=P(X) P(Y)
+$$
+
+两个随机变量 $X,Y$ 关于随机变量 $Z$ 条件独立的数学描述,记作 $X \perp Y | Z$:
+
+$$
+P(X, Y | Z)=P(X | Z) P(Y | Z)
+$$
+
+## 联合概率分布
+
+定义 $X$ 和 $Y$ 的联合分布为:
+
+$$
+P(a, b)=P\{X \leq a, Y \leq b\}, \quad-\infty<a, b<+\infty
+$$
+
+$X$ 的分布可以从联合分布中得到:
+
+$$
+P_{X}(a)=P\{X \leq a\}=P\{X \leq a, Y \leq \infty\}=P(a, \infty), \quad-\infty<a<+\infty
+$$
+
+$Y$ 的分布可以从联合分布中得到:
+
+$$
+P_{Y}(b)=P\{Y \leq b\}=P\{X \leq \infty, Y \leq b\}=P(\infty, b), \quad-\infty<b<+\infty
+$$

+ 3 - 0
概率论/概率图模型/条件随机场.md

@@ -0,0 +1,3 @@
+# 条件随机场
+
+![](https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/12/1/D2A37B13-156B-4A25-93F2-895287325C1F.png)

+ 38 - 0
概率论/蒙特卡洛/蒙特卡罗方法.md

@@ -0,0 +1,38 @@
+# 蒙特卡罗方法
+
+![](http://cos.name/wp-content/uploads/2013/01/monte-carlo-simulation.jpg?_=3118875)
+
+蒙特卡洛方法是一种随机模拟方法,随机模拟的思想由来已久,但是由于难于取得随机数,随机模拟的方法一直发展缓慢。而蒙特卡洛方法的出现得益于现代电子计算机的诞生,在1944年由Metropolis 和 Ulam提出于二战时美国原子弹研究的曼哈顿工程之中。蒙特卡洛这个名字是由Metropolis起的,借用了那个著名的赌场的名字,因为赌博总是和概率相关。蒙特卡洛模拟的过程是随机的,但解决的不仅有随机的问题也可以有确定性的问题。蒙特卡洛可以视为一种思想的泛称,只要在解决问题分人过程中,利用大量的随机样本,然后对这些样本结果进行概率分析从而得到问题求解的方法,都可以称之为蒙特卡洛方法。
+斯坦福统计学教授Persi Diaconis在他的文章The Markov Chain Monte Carlo Revolution中给出的破译犯人密码的例子。一天,一位研究犯罪心理学的心理医生来到斯坦福拜访Diaconis。他带来了一个囚犯所写的密码信息。他希望Diaconis帮助他把这个密码中的信息找出来。这个密码里的每个符号应该对应着某个字母,但是如何把这些字母准确地找出来呢?Diaconis和他的学生Marc采用了一种叫做MCMC(马尔科夫链蒙特卡洛)的方法解决了这个问题。
+![](https://img3.doubanio.com/view/note/large/public/p9282000.jpg)
+
+## 贝叶斯推断的不足
+
+贝叶斯统计学是利用后验分布对θ进行推断。这种推断的计算很多情况下要用积分计算来完成。比如,我们要计算$θ$的函数$g(θ)​$的期望:
+$$
+E(g(θ∣x))=∫g(θ)f(θ∣x)dθ
+$$
+其中函数$f$表示后验分布。当$g(θ)=θ$时,得到的就是关于$θ$的点估计。但是对很多贝叶斯推断问题来说,有时候后验分布过于复杂,使得积分没有显示结果,数值方法也很难应用;有时候需要计算多重积分(比如后验分布是多元分布时)。这些都会带来计算上的很大困难。这也是在很长的时期内,贝叶斯统计得不到快速发展的一个原因。1990年代MCMC(Markov Chain Monte Carlo ,马尔科夫链蒙特卡洛)计算方法引入到贝叶斯统计学之后,一举解决了这个计算的难题。可以说,近年来贝叶斯统计的蓬勃发展,特别是在各个学科的广泛应用和MCMC方法的使用有着极其密切的关系。
+
+## Reference
+- [贝叶斯集锦(3):从MC、MC到MCMC](https://site.douban.com/182577/widget/notes/10567181/note/292072927/)
+
+# 蒙特卡洛方法初探
+蒙特卡洛方法的基础是(利用计算机)生成指定分布的随机数的抽样。在统计上发展了一些方法来解决这个问题。一般来说,从均匀分布U(0,1)的样本较容易生成,通过线性同余发生器可以生成伪随机数序列,这些序列的各种统计指标和均匀分布 U(0,1) 的理论计算结果非常接近。这样的伪随机序列就有比较好的统计性质,可以被当成真实的随机数使用。常见的分布的随机数都可以基于均匀分布的样本生成。对定积分的计算是蒙特卡洛方法的一种重要的应用,而很多统计问题,比如计算概率、矩(期望、方差等)都可以归结为定积分的计算比如说我们想计算θ的期望:
+$$
+E(\theta) = \int \theta P(\theta) d\theta
+$$
+如果我们直接进行数值计算会比较麻烦,可以基于蒙特卡洛方法的思想通过抽样来解决该问题:
+- 在$θ$的分布中抽取独立样本$θ1,θ2,...,θn$,n足够大。用样本均值$\bar{\theta}= \frac{1}{n} \sum_{i=1}^{n} \theta_i$作为$E(θ)$
+- 当n趋近无穷时,利用大数定律,样本均值会收敛到$E(θ)$(这称为仿真一致性)
+
+从上面这个简单例子,蒙特卡洛方法的基本思路是:
+1.针对实际问题建立一个简单易行的概率统计模型,使问题所求的解为该模型的概率分布或者数字特征,比如:某个事件的概率或者是某个随机变量的期望值。
+2.对模型中的随机变量建立抽样方法,在计算机上进行模拟试验,得到足够的随机抽样,并对相关事件进行统计
+3.对试验结果进行分析,给出所求解的估计及其精度(方差)的估计
+
+
+
+
+
+

File diff suppressed because it is too large
+ 12 - 0
概率论/贝叶斯理论/README.md


+ 8 - 0
概率论/贝叶斯理论/变分贝叶斯推导.md

@@ -0,0 +1,8 @@
+# Variation Bayesian Inference | 变分贝叶斯推导
+
+变分贝叶斯方法最早由 Matthew J.Beal 在他的博士论文《Variational Algorithms for Approximate Bayesian Inference 》中提出,作者将其应用于隐马尔科夫模型,混合因子分析,非线性动力学,图模型等。变分贝叶斯是一类用于贝叶斯估计和机器学习领域中近似计算复杂(intractable )积分的技术。它主要应用于复杂的统计模型中,这种模型一般包括三类变量:观测变量 (observed variables, data),未知参数(parameters )和潜变量(latent variables )。在贝叶斯推断中,参数和潜变量统称为不可观测变量 (unobserved variables)。变分贝叶斯方法主要是两个目的 :
+
+- 近似不可观测变量的后验概率,以便通过这些变量作出统计推断。
+- 对一个特定的模型,给出观测变量的边缘似然函数(或称为证据,evidence )的下界。主要用于模型的选择,认为模型的边缘似然值越高,则模型对数据拟合程度越好,该模型产生 Data 的概率也越高。
+
+对于第一个目的,蒙特卡洛模拟,特别是用 Gibbs 取样的 MCMC 方法,可以近似计算复杂的后验分布,能很好地应用到贝叶斯统计推断。此方法通过大量的样本估计真实的后验,因而近似结果带有一定的随机性。与此不同的是,变分贝叶斯方法提供一种局部最优,但具有确定解的近似后验方法。从某种角度看,变分贝叶斯可以看做是 EM 算法的扩展,因为它也是采用极大后验估计 (MAP),即用单个最有可能的参数值来代替完全贝叶斯估计。另外,变分贝叶斯也通过一组相互依然(mutually dependent )的等式进行不断的迭代来获得最优解。

+ 18 - 0
概率论/贝叶斯理论/朴素贝叶斯.md

@@ -0,0 +1,18 @@
+# Likelihood :似然
+
+我们首先来讨论下为什么当我们观测到 $D={16,8,2,64}​$ 时更倾向于认为假设空间是所有 2 的方幂值的集合,而不是笃定假设空间是所有偶数的集合。虽然两个假设空间都符合我们的观测结果,但是归纳的过程中我们会尽量避免可疑的巧合(Suspicious Coincidences )。如果我们认为假设空间是所有偶数的集合,那么又该如何说服自己这些数字都是 2 的方幂值呢?为了更方便的形式化讨论这个现象,我们假设从某个假设空间中随机取值的概率分布为均匀分布,可以推导出从假设空间中进行 N 次取值得到观测集合的概率为: $$ p(D|h) = [\frac{1}{size(h)}]^N = [\frac{1}{|h|}]^N ​$$ 对于这个等式最形象化的解释就是奥卡姆剃刀原则(Occam’s razor ),我们倾向于选择符合观测值的最小 / 最简的假设空间。在 $D=\{16\}​$ 的情况下,如果假设空间为 2 的方幂值,则仅有 6 个符合条件的数字,推导出 $p(D|h*{two}) = 1/6​$。而如果是所有的偶数集合,$p(D|h*{even}) = 1/50​$ 。显而易见 $h*two > h_even​$,如果观测序列中有 4 个数值,则 $h*{two} = (1/6)^4 = 7.7 * 10^{-4}​$,然而 $h\_{even} = (1/50)^4 = 1.6*10^{-7}​$,不同的假设空间的概率值差异越发的大了。因此我们会认为 $D = \{16,8 , 2,64\}​$ 这个观测序列是来自于 2 的方幂值这个假设空间而不是所有的偶数集合这个假设空间。
+
+# Prior :先验
+
+前一节我们讨论了所谓似然的概念,当观测到 $D = \{16,8 , 2,64\}$ 时我们会倾向于认为其采样于 2 的方幂值这个集合,不过为啥不是 $h' = 除了 32 之外的 2 的方幂值 $ 这个似然概率更大的集合呢?直观来看就是 $h' = 除了 32 之外的 2 的方幂值 $ 这个假设与常规思维不符,而对于这样奇特的思维我们可以赋予其较低的先验概率值来降低其最终得到的后验概率。总计而言,贝叶斯理论中概率并不需要频率解释,先验分布也可以称为主观概率,是根据经验对随机现象的发生可能性的一种看法或者信念。统计学家萨维奇曾给出过一个著名的女士品茶的例子:一位常喝牛奶加茶的女士说她可以分辨在杯中先加入的是茶还是奶。连续做了十次实验,她都说对了。显然这来自于她的经验而非猜测。我们在日常生活中也经常使用基于经验或者信念的主观的概率陈述。比如说,天气预报里说明天(8 月 3 日)降水概率 30%,就是关于 “ 明日降水 ” 这个事件的一种信念,因为作为 8 月 3 日的明天是不可重复的,自然也就没有频率意义。再比如说,医生认为对某位病人进行手术的成功可能性为 80%,也是根据自己的经验而具有的的信念,而非在这位病人身上反复进行试验的频率结果。把 θ 看做随机变量,进而提出先验分布,在许多情况下是合理的。比如工厂产品的合格率每一天都有波动,可以看做随机变量;明天的降水概率虽然是几乎不动的,但这是基于经验和规律提出来的概率陈述,也可以看做随机变量。尽管我们使用后验分布来进行推理,但先验分布的选取也是很重要的。常见的先验分布类型包括:
+
+- 无信息先验(Noninformative Priors ) 无信息先验只包含了参数的模糊的或者一般的信息,是对后验分布影响最小的先验分布。很多人愿意选取无信息先验,因为这种先验与其它 “ 主观 ” 的先验相比更接近 “ 客观 ”。通常,我们把均匀分布作为无信息先验来使用,这相当于在参数所有的可能值上边指派了相同的似然。但是无先验信息的使用也要慎重,比如有些情况下会导致不恰当的后验分布(如不可积分的后验概率密度)。
+- Jeffreys 先验 (Jeffreys’ Prior) Jeffreys 提出的选取先验分布的原则是一种不变原理,采用 Fisher 信息阵的平方根作为 θ 的无信息先验分布。较好地解决了无信息先验中的一个矛盾,即若对参数 θ 选用均匀分布,则其函数 g(θ) 往往不是均匀分布。
+- 信息先验(Informative Priors ) 根据以前的经验、研究或专家经验得到的先验分布。
+- 共轭先验(Conjugate Priors ) 共轭先验是指先验分布和后验分布来自同一个分布族的情况,就是说先验和后验有相同的分布形式(当然,参数是不同的)。这些共轭先验是结合似然的形式推导出来的。共轭先验是经常被使用的一种先验分布形式,原因在于数学处理和计算上的方便性,同时后验分布的一些参数也可以有很好的解释。
+
+# Posterior :后验
+
+后验值即为似然乘以先验再进行归一化,对于这里的数字游戏: $$ p(h|D) = \frac{p(D|h)p(h)}{\sum*{h' \in H}p(D,h')} = \frac {p(h)\amalg(D\in h) / |h|^N} {\sum*{h' \in H}p(h')\amalg(D \in h') / |h'|^N} $$ 其中 $\amalg(D\in h) $ 当且仅当 $D$ 中所有数据都属于假设空间 $h$ 时取 1,其他情况下取 0。![](https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/12/3/QQ20161228-011.png) 上图展示了观测值为 $\{16\}$ 情况下对应的先验、似然与后验值,其中后验值是先验乘以似然的结果。对于大部分概念而言,先验都是一致的,此时后验值取决于似然。不过对于上文中提及的 $h' = 除了 32 之外的 2 的方幂值 $,其先验概率取值极地,因此虽然其有着不错的似然,其最终得出的后验概率值还是很小的。而观测值 $D = \{ 16,8,2,64 \}$ 时,其先验、似然与后验如下图所示: ![](https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/12/3/QQ20161228-022.png) 总体而言,当我们具有足够数目的数据时,后验概率 $p(h|D)$ 会在某个概念上达到峰值,求取目标假设空间的过程(预测阶段)就可以引入 MAP(Maximum a Posterior )估计: $$ \hat{h} ^ {MAP} = argmax\_{h} p(D|h)p(h) = argmax_h [log p(D|h) + log p(h)] $$ 而当观测数据足够多时,似然值的影响会远大于先验,此时 MAP 就近似于最大似然估计 MLE(Maximum Likelihood Estimate )。
+
+# 共轭先验

+ 36 - 0
概率论/贝叶斯理论/贝叶斯推导.md

@@ -0,0 +1,36 @@
+# Bayesian Inference
+
+Let X1X1 be the vector of observable random variables. Let X2X2 be the vector of latent random variables. Let ΘΘ be the vector of parameters. f(x2,θ|x1)=f(x1|x2,θ)f(x2|θ)f(θ)f(x1)
+
+## 极大似然估计 Maximum Likelihood Estimation
+
+假设有一堆独立同分布数据 X1,…,Xn,其 PDF 为 p(x;θ),其中 θ 为模型参数,则其似然函数为: $$L*n(\theta)=\prod\limits*{i=1}^n p(X*i; \theta)$$ 而极大似然估计就是要找到参数 $\theta$,使得似然函数的值最大。这意思就是找到一个参数 $\theta$,使得使用分布 p(x;θ) 来估计这一堆数据 Xi 的效果最好。为啥捏,因为假设 X 都是离散值的情况下,Ln(Xi;θ) 表达的含义是:从参数 θ 通过模型 p(x;θ) 产生这一堆数据的概率(把所有单个数据产生的概率乘起来就是产生这一堆数据的概率)。所以 p(x;θ)=Pθ(x={Xi}),那么如果当有两个参数 θ1 和 θ2 时,$P*{\theta*1}(x=\{X_i\})>P*{\theta*2}(x=\{X_i\})$ ,则说明 θ1 更好的描述了这组数据,因此要找到一个 θ 使得整似然函数的值最大!所以只要将似然函数对 θ 求导,就可以找到这样的 θ。例子:求 N 次伯努利分布的最大似然估计: $$ Bern(x|\mu)=\mu^x(1-\mu)^{1-x} \\ L(X|\mu)=\prod\limits*{i=1}^N \mu^{X*i}(1-\mu)^{1-X_i}=\mu^S(1-\mu)^{N-S} 其中 S=\sum\limits*{i=1}^N X_i $$ 将 $log L(X|\mu)$ 对 $\mu$ 求导得到 $\frac{S}{\mu}-\frac{N-S}{1-\mu}=0$,最终得到 : $$ \hat{\mu}_N=\frac{1}{N} S=\bar{X}_N $$
+
+## Maximum A Posterior Estimation | 极大后验估计
+
+极大后验估计中加入了一些先验知识,它最大化的是一个后验函数。具体来说,因为贝叶斯定律:
+
+$$
+p(\theta|x)=\frac{p(x|\theta)p(\theta)}{p(x)}
+$$
+
+那么极大后验估计就是要求 :
+
+$$
+\hat{\theta}_{MAP}=\underset{\theta}{argmax}~ p(x|\theta)p(\theta)=\underset{\theta}{argmax}\{\sum\limits_{X_i} log ~p(X_i|\theta) + log~p(\theta)\}
+$$
+
+可见,极大后验估计中相对于最大似然估计,多了 log p(θ),也就是先验的影响。
+
+## 贝叶斯推断 :Bayesian Inference
+
+前面的 MAP 是一个点估计,只估计似然函数达到最大点的情况下,参数 θ 的值。而贝叶斯推断通过假设关于参数 $\theta$ 的一个分布而不是直接求单个值来扩展了 MAP 算法。
+
+> Bayesian inference extends the MAP approach by allowing a distribution over the parameter set θ instead of making a direct estimate. Not only encodes this the maximum(a posteriori) value of the data-generated parameters, but it also incorporates expectation as another parameter estimate as well as variance information as a measure of estimation quality or confidence.
+
+具体来说,给定数据 X 和需要求的参数 θ,贝叶斯推断需要求出一个具体的分布: $$ p(\theta|X)=P(X|\theta)P(\theta)/P(X) $$
+
+- $X$: 观测数据
+- $\theta$: 潜变量
+
+这里和 MAP 的区别就在于,MAP 忽略了 P(X) 因为它是常量,对于 MAP 的过程:求导后再求等于 0 来获得最好的 θ,这个常量是没有用的。但是贝叶斯推断要的是整个 p(θ|X) 的分布,所以 P(X) 这个 normalisation term 是需要被求出来的。在获得具体的分布之后,所要求的参数值可以通过估计期望或方差得到。

+ 43 - 0
线性代数/README.md

@@ -0,0 +1,43 @@
+# 线性代数
+
+线性代数作为数学的一个分支,广泛应用于科学和工程中。
+
+# 基础表示
+
+## 标量(Scalar)
+
+一个标量就是一个单独的数,它不同于线性代数中研究的其他大部分对象(通常是多个数的数组)。我们用斜体表示标量。标量通常被赋予小写的变量名称。当我们介绍标量时,会明确它们是哪种类型的数。
+
+比如,在定义实数标量时,我们可能会说令 $s \in \mathbb{R}$ 表示一条线的斜率;在定义自然数标量时,我们可能会说令 $n \in \mathbb{N}$ 表示元素的数目。
+
+## 向量(Vector)
+
+一个向量是一列数,我们可以把向量看作空间中的点,每个元素是不同坐标轴上的坐标。这些数是有序排列的,通过次序中的索引,我们可以确定每个单独的数。通常我们赋予向量粗体的小写变量名称,比如 $\mathbf{x}$,也可以加上箭头 $\overrightarrow{\mathbf{x}}$。向量中的元素可以通过带脚标的斜体表示。向量 $\mathbf{x}$ 的第一个元素是 $\mathbf{x}_1$,第二个元素是 $\mathbf{x}_2$,等等。
+
+我们也会注明存储在向量中的元素是什么类型的。如果每个元素都属于 $\mathbb{R}$,并且该向量有 $n$ 个元素,那么该向量属于实数集 $\mathbb{R}$ 的 $n$ 次笛卡尔乘积构成的集合,记为 $\mathbb{R}^n$。当需要明确表示向量中的元素时,我们会将元素排列成一个方括号包围的纵列:
+
+$$
+\boldsymbol{x}=\left[\begin{array}{c}{x_{1}} \\ {x_{2}} \\ {\vdots} \\ {x_{n}}\end{array}\right]
+
+\\
+
+\overrightarrow{\mathbf{x}}=\left(x_{1}, x_{2}, \cdots, x_{n}\right)^{T}=\left[\begin{array}{c}{x_{1}} \\ {x_{2}} \\ {\vdots} \\ {x_{n}}\end{array}\right]
+$$
+
+有时我们需要索引向量中的一些元素。在这种情况下,我们定义一个包含这些元素索引的集合,然后将该集合写在脚标处。比如,指定 $x_1$,$x_3$ 和 $x_6$,我们定义集合 $S=\{1,3,6\}$,然后写作 $x_S$。我们用符号 $-$ 表示集合的补集中的索引,比如 $x_{-1}$ 表示 $\mathbf{x}$ 中除 $x_1$ 外的所有元素,$x_{-S}$ 表示 $x$ 中除 $x_1$,$x_3$,$x_6$ 外所有元素构成的向量。
+
+## 矩阵
+
+矩阵是一个二维数组,其中的每一个元素被两个索引(而非一个)所确定。矩阵 $X \in \mathbb{R}^{m \times n}$ 可以表示为:
+
+$$
+X=\left[\begin{array}{cccc}{x_{1,1}} & {x_{1,2}} & {\cdots} & {x_{1, n}} \\ {x_{2,1}} & {x_{2,2}} & {\cdots} & {x_{2, n}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {x_{m, 1}} & {x_{m, 2}} & {\cdots} & {x_{m, n}}\end{array}\right]
+$$
+
+简写为 $\left(x_{i, j}\right)_{m \times n}$ 或者 $\left[x_{i, j}\right]_{m \times n}$。
+
+我们在表示矩阵中的元素时,通常以不加粗的斜体形式使用其名称,索引用逗号间隔。比如,$A_{1,1}$ 表示 $A$ 左上的元素,$A_{m,n}$ 表示 $A$ 右下的元素。通常可以使用 $:$ 来表示水平坐标,以表示垂直坐标 $i$ 中的所有元素。譬如 $A_{i,:}$ 表示 $A$ 垂直坐标 $i$ 上的一横排元素,也成为 A 的第 $i$ 行。同理,$A_{:,i}$ 表示 $A$ 的第 $i$ 列(Column)。
+
+## 张量
+
+在某些情况下,我们会讨论坐标超过两维的数组。一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们称之为张量。张量往往用 $\mathbf{A}$ 来表示,坐标为 $i,j,k$ 的元素记为 $A_{i,j,k}$。

+ 291 - 0
线性代数/凸优化/README.md

@@ -0,0 +1,291 @@
+# 凸集基本概念
+
+![](http://7xkt0f.com1.z0.glb.clouddn.com/D3D1E50E-F7FB-456A-89CB-18D9D0BABA15.png)
+
+如上图所示,$y=x^2$是一个凸函数,函数图像上位于$y=x^2$上方的区域构成凸集。凸函数图像的上方区域,一定是凸集;一个函数图像的上方区域为凸集,则该函数是凸函数。
+
+### 直线的向量表达
+
+已知二维平面上两个定点$A(4,1)$、$B(1,3)$,那么经过$A、B$两点的直线方程为:
+
+$$
+\left\{
+\begin{aligned}
+x_1 = \theta *4 + (1-\theta)*1 \\
+x_2 = \theta _ 1 + (1-\theta) _ 3\\
+\end{aligned}
+\theta \in R  
+\right.
+$$
+
+那么对应的向量形式就是:$\vec x = \theta*\vec a + (1-\theta)*\vec b$
+
+那么推广来说,几何体的向量表达如下所示:
+
+![](http://7xiegq.com1.z0.glb.clouddn.com/7C219296-C270-48F2-B8E0-88C1E64BE63E.png)
+
+### 仿射集(Affine set)
+
+通过集合$C$中任意两个不同点的直线仍然在集合$C$内,则称集合$C$为仿射集。
+
+$$
+
+\forall \theta \in R, \forall x_1,x_2 \in C , 则 x=\theta x_1 + (1 - \theta)x_2 \in C
+
+$$
+
+### 凸集
+
+集合$C$内任意两点间的线段均在集合$C$内,则称集合$C$为凸集。
+
+$$
+
+\forall \theta \in [0,1], \forall x_1,x_2 \in C , 则 x=\theta x_1 + (1 - \theta)x_2 \in C
+
+$$
+
+如果转化为$k$个点的版本,即
+
+$$
+\forall x*1, \dots, x_k \in C, \theta_i \in [0,1],且 \sum*{i=1}^k \theta*i = 1,则\sum*{i=1}^k \theta_ix_i = C
+$$
+
+因为仿射集的条件比凸集条件强,所以,仿射集必然是凸集。
+
+![](http://7xlgth.com1.z0.glb.clouddn.com/9C4568AA-80A7-46AD-8D95-E00A10CD22D4.png)
+
+### 凸包
+
+集合$C$的所有点的凸组合形成的集合,叫做集合$C$的凸包。
+
+$$
+conv C = \{\sum*{i=1}^k \theta_ix_i|x_i \in C, \theta_i \ge 0, \sum*{i=1}^k\theta_i = 1 \}
+$$
+
+集合$C$的凸包是能够包含$C$的最小的凸集。
+
+## 超平面和半空间
+
+超平面 hyperplane 的定义如下:
+
+$\{x|a^Tx=b\}$
+
+半空间 half space 定义如下:
+
+$\{x|a^Tx \le b\} \{x|a^Tx \ge b\}$
+
+- 欧式球
+
+$$
+B(x_c,r)=\{ x| \Arrowvert x-x_c\Arrowvert_2 \le r \} \\
+= \{ x| (x-x_c)^T(x-x_c) \le r^2 \}
+$$
+
+- 椭球
+
+$E={x|(x-x_c)^TP(x-x_c) \le r^2}$
+
+- 范数球
+
+$B(x_c,r)=\{x| \Arrowvert x-x_c\Arrowvert \le r\}$
+
+- 范数锥
+
+$\{(x,t)|\Arrowvert x \Arrowvert \le t\}$
+
+### 多面体
+
+多面体即为有限个半空间和超平面的交集
+
+$P={x|a^T_jx \le b_j,c_i^Tx=d_i}$
+
+仿射集(如超平面、直线)、射线、线段、半空间都是多面体,多面体肯定是一个凸集,此外,有界的多面体有时称作多胞形(polytope)。
+
+![](http://7xkt0f.com1.z0.glb.clouddn.com/71096C98-8525-4CBA-92F3-CF07D8581871.png)
+
+### 分割超平面
+
+假设$C$和$D$为两不相交的凸集,则存在超平面$P$,$P$可以将$C$和$D$分离:
+
+$\forall x \in C, a^Tx \le b 且 \forall x \in D, a^Tx \ge b$
+
+![](http://7xlgth.com1.z0.glb.clouddn.com/6F7D0227-1B4F-4C9B-9D6A-7D2F064ACB06.png)
+
+两个集合的距离,定义为两个集合间元素的最短距离,然后做集合 C 和集合 D 最短线段的垂直平分线,即得到了最优的超平面:
+
+![](http://7xlgth.com1.z0.glb.clouddn.com/DC5C76BB-7194-40EE-AF2E-EB9F010CF460.png)
+
+### 支撑超平面
+
+假设集合$C$,$x0$为$C$边界上的点。如果存在$a \ne 0$,满足对$\forall x \in C $,都有$a^Tx \le a^Tx_0$成立,则称超平面${x|a^Tx = a^Tx_0}$为集合$C$在点$x0$处的支撑超平面。
+
+![](http://7xlgth.com1.z0.glb.clouddn.com/07D4E1B4-89D9-4084-BE34-27C8114A040D.png)
+
+## 运算
+
+### 保持凸性的运算
+
+- 集合交运算:两个凸集的集合也是凸集
+
+* 仿射交换
+
+​ 函数$f=Ax+b$的形式,称函数是仿射的:即线性函数加常数的形式
+
+- 透视变换
+
+* 投射变换(线性分式变换)
+
+#### 集合交运算:半空间的交
+
+#### 仿射变换
+
+$f(x)=Ax+b,A \in R^{m\*n},b \in R^m$
+
+伸缩、平移、投影
+
+若$f$是仿射变换,$f:R^n \to R^m f(S)=\{f(x)|x \in S\}$
+
+如果$S$为凸集,则$f(S)$为凸集。
+
+两个凸集的和为凸集、两个凸集的笛卡尔积为凸集。
+
+#### 透视变换
+
+透视函数对向量进行伸缩(规范化),使得最后一维的分量为 1 并舍弃。
+
+$P:R^{n+1} \to R^n, P(z,t) = z/t$
+
+透视的直观意义就是小孔成像。
+
+凸集的透视变换的结果还是一个凸集。
+
+#### 投射函数(线性分式函数)
+
+投射函数是透视函数和仿射函数的复合。$g$为仿射函数:
+
+$$
+g:R^n \to R^{n+1} \\
+g(x) =
+\begin{bmatrix} A \\ c^T \end{bmatrix}x + \begin{bmatrix} b \\ d \end{bmatrix}
+A \in R^{m\*n}, b \in R^{m}, c \in R^n, d \in R
+$$
+
+定义$f$为线性分式函数
+
+$f(x)=(Ax+b)/(c^Tx + d),dome = \{ x | c^Tx +d > 0 \}$
+
+其中,如果$c=0,d>0$,则$f$即为普通的仿射函数。
+
+# 凸函数基本概念
+
+## 凸函数
+
+若函数$f$的定义域$domf$为凸集,且满足$\forall x,y \in dom f, 0 \le \theta \le 1$,有
+
+$f(\theta x + (1- \theta)y) \le \theta f(x) + (1-\theta)f(y)$
+
+![](http://7xlgth.com1.z0.glb.clouddn.com/B771D505-1979-4D5B-827C-FC56BF0F9CB2.png)
+
+若$f$一阶可微,则函数$f$为凸函数的条件是当且仅当$f$的定义域$domf$为凸集,且
+
+$\forall x,y \in dom f, f(y) \ge f(x) + \bigtriangledown f(x)^T(y-x)$
+
+![](http://7xlgth.com1.z0.glb.clouddn.com/1A0FDF4A-9573-4B41-A921-0A12A4D3A536.png)
+
+若函数$f$二阶可微,则函数$f$为凸函数当且仅当$domf$为凸集,且
+
+$\bigtriangledown^2f(x) \ge 0$
+
+- 若$f$是一元函数,上式表示二阶导大于等于 0
+- 若$f$是多元函数,上式表示二阶导 Hessian 矩阵半正定
+
+注意,根据定义可知,直线也是凸函数。
+
+#### 上镜图
+
+函数$$f$$的图像定义为$$\{(x,f(x))|x \in dom f \}$$,函数$$f$$的上镜图(epigraph)定义为:
+
+$$epi f = \{(x,t) | x \in dom f, f(x) \le t\}$$
+
+![](http://7xkt0f.com1.z0.glb.clouddn.com/C79C0496-E217-4C2A-B71A-F2DD81FD7B48.png)
+
+一个函数是凸函数,当且仅当其上镜图是凸集。反之,如果一个函数是凹函数,当且仅当其亚图是凸集。
+
+$$hypo f = \{(x,t)|t \le f(x)\}$$
+
+### Jensen 不等式
+
+在$$f$$是凸函数的情况下,基本的 Jensen 不等式为:$$f(\theta x + (1-\theta)y) \le \theta f(x) + (1 - \theta)f(y)$$
+
+如果是多维不等式,即如果$$\theta_1, \dots, \theta_k \ge 0, \theta_1 + \dots + \theta_k = 1$$,则
+
+$$f(\theta_1x_1 + \dots + \theta_kx_k) \le \theta_1 f(x_1) + \dots + \theta_k f(x_k) $$
+
+若$p(x) \ge 0 \quad on \quad S \subseteq dom f , \int_Sp(x)dx = 1$
+
+则 $$f(\int_Sp(x)xdx) \le \int_Sf(x)p(x)dx$$,也就是$$f(Ex) \le Ef(x)$$
+
+Jensen 不等式是几乎所有不等式的基础。
+
+#### 保持函数凸性的算子
+
+- 凸函数的非负加权和
+
+$$f(x) = \omega_1f_1(x)+ \dots + \omega_nf_n(x)$$
+
+- 凸函数与仿射函数的复合
+
+$$g(x)=f(Ax+b)$$
+
+- 凸函数的逐点最大值、逐点上确界
+
+$$f(x)=max(f*1(x),\dots,f_n(x)) \\ f(x)=sup*{y \in A}g(x,y)$$
+
+### 共轭函数
+
+原函数$$f:R^n \to R$$共轭函数定义:
+
+$$f^\*(y) = sup\_{x \in dom f}(y^Tx-f(x))$$
+
+显然,定义式的右端是关于$$y$$的仿射函数,它们逐点求上确界,得到的函数$$f^\*(y)$$一定是凸函数。凸函数的共轭函数的共轭函数就是其本身。
+
+#### Fenchel 不等式
+
+根据共轭函数的定义,立刻可以得到:
+
+$$f(x) + f^\*(y) \ge x^Ty$$
+
+# 凸优化
+
+优化问题的基本形式:
+
+$$
+minimize \quad f_0(x), x \in R^n \\
+subject \quad to \quad \\
+f_i(x) \le 0, i = 1,\dots,m \\
+h_j(x) = 0, j = 1,\dots,p \\
+优化变量 x \in R^n \\
+不等式约束 f_i(x) \le 0
+等式约束 h_j(x) = 0
+无约束优化 m=p=0
+$$
+
+而凸优化中,即限制条件为$$f_i(x)$$为凸函数,$$h_j(x)$$为仿射函数。凸优化问题的重要性质即凸优化问题的可行域为凸集,凸优化问题的局部最优解即为全局最优解。
+
+## 对偶问题
+
+对于上面所说的凸优化的基本问题,可以带入 Lagrange 函数:
+
+$$L(x,\lambda,v) = f*0(x) + \sum^m*{i=1}\lambda*if_i(x) + \sum*{j=1}^pv_jh_j(x)$$
+
+对于固定的$$x$$,Lagrange 函数即为关于$$\lambda$$和$$v$$的仿射函数。
+
+然后对于该函数求下界:
+
+$$g(\lambda,v)=inf*{x \in D}L(x,\lambda,v)=inf*{x \in D}( f*0(x) + \sum^m*{i=1}\lambda*if_i(x) + \sum*{j=1}^pv_jh_j(x))$$
+
+如果没有下确界,定义:$$g(\lambda,v) = - \infty$$。根据定义,显然有对于$$\forall \lambda > 0, \forall v$$,若原优化问题有最优值$$p^_$$,则有$$g(\lambda,v) \le p^_$$,进一步可以得到 Lagrange 对偶函数为凸函数。
+
+![](http://7xkt0f.com1.z0.glb.clouddn.com/CD0DB9A2-80D4-4B33-9454-948123AE8EE1.png)
+
+上图左侧为原函数,右侧为对偶函数。

+ 73 - 0
线性代数/向量运算.md

@@ -0,0 +1,73 @@
+# 向量运算
+
+# 基本运算
+
+## 加法
+
+## 点积
+
+三维向量的点积定义如下:
+
+$$
+\overrightarrow{\mathbf{u}} \cdot \overrightarrow{\mathbf{v}}=u_{x} v_{x}+u_{y} v_{y}+u_{z} v_{z}=|\overrightarrow{\mathbf{u}} \|| \overrightarrow{\mathbf{v}} | \cos (\overrightarrow{\mathbf{u}}, \overrightarrow{\mathbf{v}})
+$$
+
+## 叉积
+
+三维向量的叉积定义如下:
+
+$$
+\overrightarrow{\mathbf{w}}=\overrightarrow{\mathbf{u}} \times \overrightarrow{\mathbf{v}}=\left[\begin{array}{ccc}{\overrightarrow{\mathbf{i}}} & {\overrightarrow{\mathbf{j}}} & {\overrightarrow{\mathbf{k}}} \\ {u_{x}} & {u_{y}} & {u_{z}} \\ {v_{x}} & {v_{y}} & {v_{z}}\end{array}\right]
+$$
+
+其中 $\overrightarrow{\mathbf{i}}, \overrightarrow{\mathbf{j}}, \overrightarrow{\mathbf{k}}$ 分别为 $x,y,z$ 轴的单位向量:
+
+$$
+\overrightarrow{\mathbf{u}}=u_{x} \overrightarrow{\mathbf{i}}+u_{y} \overrightarrow{\mathbf{j}}+u_{z} \overrightarrow{\mathbf{k}}, \quad \overrightarrow{\mathbf{v}}=v_{x} \overrightarrow{\mathbf{i}}+v_{y} \overrightarrow{\mathbf{j}}+v_{z} \overrightarrow{\mathbf{k}}
+$$
+
+$\overrightarrow{\mathbf{u}}$ 和 $\overrightarrow{\mathbf{v}}$ 的叉积垂直于 $\overrightarrow{\mathbf{u}}, \overrightarrow{\mathbf{v}}$ 构成的平面,其方向符合右手规则。叉积的模等于 $\overrightarrow{\mathbf{u}}, \overrightarrow{\mathbf{v}}$ 构成的平行四边形的面积,且符合如下的条件:
+
+$$
+\begin{array}{l}{\overrightarrow{\mathbf{u}} \times \overrightarrow{\mathbf{v}}=-\overrightarrow{\mathbf{v}} \times \overrightarrow{\mathbf{u}}} \\ {\overrightarrow{\mathbf{u}} \times(\overrightarrow{\mathbf{v}} \times \overrightarrow{\mathbf{w}})=(\overrightarrow{\mathbf{u}} \cdot \overrightarrow{\mathbf{w}}) \overrightarrow{\mathbf{v}}-(\overrightarrow{\mathbf{u}} \cdot \overrightarrow{\mathbf{v}}) \overrightarrow{\mathbf{w}}}\end{array}
+$$
+
+![](https://i.postimg.cc/qBDr87Y2/image.png)
+
+## 混合积
+
+$$
+\begin{array}{rl}{[\overrightarrow{\mathbf{u}} \overrightarrow{\mathbf{v}}} & {\overrightarrow{\mathbf{w}} ]=(\overrightarrow{\mathbf{u}} \times \overrightarrow{\mathbf{v}}) \cdot \overrightarrow{\mathbf{w}}=\overrightarrow{\mathbf{u}} \cdot(\overrightarrow{\mathbf{v}} \times \overrightarrow{\mathbf{w}})}
+
+= \left|\begin{array}{lll}{u_{x}} & {u_{y}} & {u_{z}} \\ {v_{x}} & {v_{y}} & {v_{z}} \\ {w_{x}} & {w_{y}} & {w_{z}}\end{array}\right|
+
+= \left|\begin{array}{lll}{u_{x}} & {v_{x}} & {w_{x}} \\ {u_{y}} & {v_{y}} & {w_{y}} \\ {u_{z}} & {v_{z}} & {w_{z}}\end{array}\right|
+
+\end{array}
+$$
+
+其物理意义为:以 $\overrightarrow{\mathbf{u}}, \overrightarrow{\mathbf{v}}, \overrightarrow{\mathbf{w}}$ 为三个棱边所围成的平行六面体的体积。当 $\overrightarrow{\mathbf{u}}, \overrightarrow{\mathbf{v}}, \overrightarrow{\mathbf{w}}$
+
+## 并矢
+
+给定两个向量 $\overrightarrow{\mathbf{x}}=\left(x_{1}, x_{2}, \cdots, x_{n}\right)^{T}, \overrightarrow{\mathbf{y}}=\left(y_{1}, y_{2}, \cdots, y_{m}\right)^{T}$,则向量的并矢记作:
+
+$$
+\overrightarrow{\mathbf{x}} \overrightarrow{\mathbf{y}}=\left[\begin{array}{cccc}{x_{1} y_{1}} & {x_{1} y_{2}} & {\cdots} & {x_{1} y_{m}} \\ {x_{2} y_{1}} & {x_{2} y_{2}} & {\cdots} & {x_{2} y_{m}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {x_{n} y_{1}} & {x_{n} y_{2}} & {\cdots} & {x_{n} y_{m}}\end{array}\right]
+$$
+
+也记作 $\overrightarrow{\mathbf{x}} \otimes \overrightarrow{\mathbf{y}}$ 或者 $\overrightarrow{\mathrm{x}} \overrightarrow{\mathbf{y}}^{T}$。
+
+# 线性相关
+
+一组向量 $\overrightarrow{\mathbf{v}}_{1}, \overrightarrow{\mathbf{v}}_{2}, \cdots, \overrightarrow{\mathbf{v}}_{n}$ 如果是线性相关的,那么值存在一组不全为零的实数,$a_{1}, a_{2}, \cdots, a_{n}$,使得 $\sum_{i=1}^{n} a_{i} \overrightarrow{\mathbf{v}}_{i}=\overrightarrow{\mathbf{0}}$。
+
+反之,一组向量 $\overrightarrow{\mathbf{v}}_{1}, \overrightarrow{\mathbf{v}}_{2}, \cdots, \overrightarrow{\mathbf{v}}_{n}$ 如果是线性无关的,当且仅当 $a_{i}=0, i=1,2, \cdots, n$ 才有 $\sum_{i=1}^{n} a_{i} \overrightarrow{\mathbf{v}}_{i}=\overrightarrow{\mathbf{0}}$。
+
+# 向量性质
+
+## 维数
+
+一个向量空间所包含的最大线性无关向量的数目,称作该向量空间的维数。
+
+## 范数

+ 119 - 0
线性代数/特殊函数.md

@@ -0,0 +1,119 @@
+# 特殊函数
+
+# sigmoid 函数
+
+$$
+\sigma(x)=\frac{1}{1+\exp (-x)}
+$$
+
+该函数可以用于生成二项分布的 $\phi$ 参数,当 $x​$ 很大或者很小时,该函数处于饱和状态。此时函数的曲线非常平坦,并且自变量的一个较大的变化只能带来函数值的一个微小的变化,即:导数很小。
+
+![](https://i.postimg.cc/tCbcnGRF/image.png)
+
+sigmoid 函数遵循以下性质:
+
+$$
+\sigma(x)=\frac{\exp (x)}{\exp (x)+\exp (0)}
+
+\\ {\frac{d}{d x} \sigma(x)=\sigma(x)(1-\sigma(x))}
+
+\\ {1-\sigma(x)=\sigma(-x)}
+$$
+
+# softplus 函数
+
+$$
+\zeta(x)=\log (1+\exp (x))
+$$
+
+该函数可以生成正态分布的 $\sigma^{2}$ 参数,该函数之所以被称为 softplus,是因为其是 $x^{+}=\max (0, x)$ 函数的光滑逼近:
+
+![](https://i.postimg.cc/Y0Lt4Kt5/image.png)
+
+对于函数 $x^{+}=\max (0, x)$ 以及 $x^{-}=\max (0, -x)$,它们分别获取了 $y=x$ 的正部门和负部分。根据定义有 $x = x^{+} - x^{-}$,而 $\zeta(x)$ 逼近的是 $x^{+}$,$\zeta(-x)$ 逼近的是 $x^{-}$,于是有:
+
+$$
+\zeta(x)-\zeta(-x)=x
+$$
+
+softplus 与 sigmoid 有很多相通的性质:
+
+$$
+{\log \sigma(x)=-\zeta(-x)} \\ {\frac{d}{d x} \zeta(x)=\sigma(x)} \\ {\forall x \in(0,1), \sigma^{-1}(x)=\log \left(\frac{x}{1-x}\right)} \\ {\forall x>0, \zeta^{-1}(x)=\log (\exp (x)-1)} \\ {\zeta(x)=\int_{-\infty}^{x} \sigma(y) d y} \\ {\zeta(x)-\zeta(-x)=x}
+$$
+
+其中 $f^{-1}(\cdot)$ 为反函数,$\sigma^{-1}(x)$ 也称作 logit 函数:
+
+![](https://i.postimg.cc/YCDGmk79/image.png)
+
+# 伽马函数
+
+伽马函数定义为:
+
+$$
+\begin{array}{c}{\Gamma(x)=\int_{0}^{+\infty} t^{x-1} e^{-t} d t \quad, x \in \mathbb{R}} \\ {\text { or. } \quad \Gamma(z)=\int_{0}^{+\infty} t^{z-1} e^{-t} d t \quad, z \in \mathbb{Z}}\end{array}
+$$
+
+![](https://i.postimg.cc/G2GHNyy8/image.png)
+
+$\Gamma$ 函数的性质有:
+
+- 对于正整数 $n$ 有:$\Gamma(n)=(n-1) !$
+
+- $\Gamma(x+1)=x \Gamma(x)$,伽马函数是阶乘在实数域上的扩展。
+
+- 与 Beta 函数的关系:
+
+$$
+B(m, n)=\frac{\Gamma(m) \Gamma(n)}{\Gamma(m+n)}
+$$
+
+- 对于 $x \in(0,1)$ 有:
+
+$$
+\Gamma(1-x) \Gamma(x)=\frac{\pi}{\sin \pi x}
+$$
+
+即 $\Gamma\left(\frac{1}{2}\right)=\sqrt{\pi}$,当 $x$ 足够大时,可以使用 `Stirling` 公式来计算 Gamma 函数值:$\Gamma(x) \sim \sqrt{2 \pi} e^{-x} x^{x+1 / 2}$。
+
+# Beta 函数
+
+对于任意实数 $m, n>0$,Beta 函数的定义为:
+
+$$
+B(m, n)=\int_{0}^{1} x^{m-1}(1-x)^{n-1} d x
+$$
+
+其他形式的定义还包含:
+
+$$
+\begin{array}{c}{B(m, n)=2 \int_{0}^{\frac{\pi}{2}} \sin ^{2 m-1}(x) \cos ^{2 n-1}(x) d x} \\ {B(m, n)=\int_{0}^{+\infty} \frac{x^{m-1}}{(1+x)^{m+n}} d x} \\ {B(m, n)=\int_{0}^{1} \frac{x^{m-1}+x^{n-1}}{(1+x)^{m+n}} d x}\end{array}
+$$
+
+## 性质
+
+- 连续性,Beta 函数在定义域 $m, n>0$ 内连续
+
+- 对称性,$B(m, n)=B(n, m)$
+
+- 递推公式:
+
+$$
+\begin{array}{l}{B(m, n)=\frac{n-1}{m+n-1} B(m, n-1), \quad m>0, n>1} \\ {B(m, n)=\frac{m-1}{m+n-1} B(m-1, n), \quad m>1, n>0} \\ {B(m, n)=\frac{(m-1)(n-1)}{(m+n-1)(m+n-2)} B(m-1, n-1), \quad m>1, n>1}\end{array}
+$$
+
+- 当 $m,n$ 较大时,有近似公式:
+
+$$
+B(m, n)=\frac{\sqrt{(2 \pi) m^{m-1 / 2} n^{n-1 / 2}}}{(m+n)^{m+n-1 / 2}}
+$$
+
+- 与 Gamma 函数关系
+
+对于任意正实数 $m, n>0$,有
+
+$$
+B(m, n)=\frac{\Gamma(m) \Gamma(n)}{\Gamma(m+n)}
+$$
+
+且 $B(m, 1-m)=\Gamma(m) \Gamma(1-m)$。

+ 38 - 0
线性代数/特殊矩阵.md

@@ -0,0 +1,38 @@
+# 特殊矩阵
+
+# 方阵
+
+方阵的行列式定义如下:
+
+- $1$ 阶方阵的行列式为该元素本身
+- $n$ 阶方阵的行列式等于它的任一行或者列的各元素与其对应的代数余子式乘积之和。
+
+# 稀疏矩阵
+
+对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。人们无法给出稀疏矩阵的确切定义,一般都只是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素没有分布规律。
+
+由于稀疏矩阵中非零元素较少,零元素较多,因此可以采用只存储非零元素的方法来进行压缩存储。由于非零元素分布没有任何规律,所以在进行压缩存储的时侯需要存储非零元素值的同时还要存储非零元素在矩阵中的位置,即非零元素所在的行号和列号,也就是在存储某个元素比如 $a_(ij)$ 的值的同时,还需要存储该元素所在的行号 i 和它的列号 j,这样就构成了一个三元组 `(i,j,aij)` 的线性表。
+
+三元组可以采用顺序表示方法,也可以采用链式表示方法,这样就产生了对稀疏矩阵的不同压缩存储方式。
+
+## 稀疏矩阵的顺序实现
+
+若把稀疏矩阵的三元组线性表按顺序存储结构存储,则称为稀疏矩阵的三元组顺序表。顺序表中除了存储三元组外,还应该存储矩阵行数、列数和总的非零元素数目,这样才能唯一的确定一个矩阵。
+
+![](http://images.cnblogs.com/cnblogs_com/xiaosuo/DataStructure/37.jpg)
+
+## 稀疏矩阵的十字链表实现
+
+十字链表结点分为三类:
+
+- 表结点,它由五个域组成,其中 i 和 j 存储的是结点所在的行和列,right 和 down 存储的是指向十字链表中该结点所有行和列的下一个结点的指针,v 用于存放元素值。
+
+- 行头和列头结点,这类结点也有域组成,其中行和列的值均为零,没有实际意义,right 和 down 的域用于在行方向和列方向上指向表结点,next 用于指向下一个行或列的表头结点。
+
+- 总表头结点,这类结点与表头结点的结构和形式一样,只是它的 i 和 j 存放的是矩阵的行和列数。
+
+![](http://images.cnblogs.com/cnblogs_com/xiaosuo/DataStructure/38.jpg)
+
+十字链表可以看作是由各个行链表和列链表共同搭建起来的一个综合链表,每个结点 aij 既是处在第 i 行链表的一个结点,同时也是处在第 j 列链表上的一个结点,就你是处在十字交叉路口上的一个结点一样,这就是十字链表的由来。十字链表中的每一行和每一列链表都是一个循环链表,都有一个表头结点。
+
+![](http://images.cnblogs.com/cnblogs_com/xiaosuo/DataStructure/39.jpg)

+ 1 - 0
线性代数/矩阵分解.md

@@ -0,0 +1 @@
+# 特征分解

+ 154 - 0
线性代数/矩阵运算.md

@@ -0,0 +1,154 @@
+# 矩阵运算
+
+# 基础
+
+## 相加
+
+只要矩阵的形状一样,我们可以把两个矩阵相加。两个矩阵相加是指对应位置的元素相加,比如 $C_{i, j}=A_{i, j}+B_{i, j}$。
+
+## 转置(Transpose)
+
+转置(transpose)是矩阵的重要操作之一。矩阵的转置是以对角线为轴的镜像,这条从左上角到右下角的对角线被称为主对角线(main diagonal)。
+
+$$
+\left(A^{\top}\right)_{i, j}=A_{j, i}
+$$
+
+![](https://i.postimg.cc/NFpZfywp/image.png)
+
+向量可以看作只有一列的矩阵。对应地,向量的转置可以看作是只有一行的矩阵。有时,我们通过将向量元素作为行矩阵写在文本行中,然后使用转置操作将其变为标准的列向量,来定义一个向量,比如:
+
+$$
+\boldsymbol{x}=\left[x_{1}, x_{2}, x_{3}\right]^{\top}
+$$
+
+标量可以看作是只有一个元素的矩阵。因此,标量的转置等于它本身,$a=a^{\top}$
+
+## 标准乘积
+
+标量和矩阵相乘,或是和矩阵相加时,我们只需将其与矩阵的每个元素相乘或相加,比如 $D=a \cdot B+c$,其中 $D_{i, j}=a \cdot B_{i, j}+c$。两个矩阵 $A$ 和 $B$ 的矩阵乘积
+(matrix product)是第三个矩阵 $C$。,矩阵 $A$ 的列数必须和矩阵 $B$ 的行数相等。如果矩阵 $A$ 的形状是 $m \times n$ ,矩阵 $B$ 的形状是 $n \times p$,那么矩阵 $C$ 的形状就是 $m \times p$。
+
+$$
+C=A B
+\\
+C_{i, j}=\sum_{k} A_{i, k} B_{k, j}
+$$
+
+矩阵乘积服从分配律、结合律,以及简单的转置:
+
+$$
+A(B+C)=A B+A C
+\\
+A(B C)=(A B) C
+\\
+(A B)^{\top}=B^{\top} A^{\top}
+$$
+
+但是不满足与交换律。
+
+## Hadamard Product | 逐元素积
+
+$$
+\mathbf{A} \circ \mathbf{B}=\left[\begin{array}{cccc}{a_{1,1} b_{1,1}} & {a_{1,2} b_{1,2}} & {\cdots} & {a_{1, n} b_{1, n}} \\ {a_{2,1} b_{2,1}} & {a_{2,2} b_{2,2}} & {\cdots} & {a_{2, n} b_{2, n}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {a_{m, 1} b_{m, 1}} & {a_{m, 2} b_{m, 2}} & {\cdots} & {a_{m, n} b_{m, n}}\end{array}\right]
+$$
+
+## Kronnecker Product | 克罗内积
+
+$$
+\mathbf{A} \otimes \mathbf{B}=\left[\begin{array}{cccc}{a_{1,1} \mathbf{B}} & {a_{1,2} \mathbf{B}} & {\cdots} & {a_{1, n} \mathbf{B}} \\ {a_{2,1} \mathbf{B}} & {a_{2,2} \mathbf{B}} & {\cdots} & {a_{2, n} \mathbf{B}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {a_{m, 1} \mathbf{B}} & {a_{m, 2} \mathbf{B}} & {\cdots} & {a_{m, n} \mathbf{B}}\end{array}\right]
+$$
+
+# 矩阵逆
+
+## 单位矩阵
+
+# 范数与迹
+
+## F 范数
+
+矩阵 $\mathbf{A}=\left(a_{i, j}\right)_{m \times n}$,那么其 $F$ 范数的定义为:
+
+$$
+\|\mathbf{A}\|_{F}=\sqrt{\sum_{i, j} a_{i, j}^{2}}
+$$
+
+$F$ 范数可以看做向量的 $L_2$ 范数的推广。
+
+# 迹
+
+矩阵 $\mathbf{A}=\left(a_{i, j}\right)_{m \times n}$,那么 $A$ 的迹为:
+
+$$
+\operatorname{tr}(\mathbf{A})=\sum_{i} a_{i, i}
+$$
+
+一般来说,迹会满足如下性质:
+
+- $A$ 的 F 范数等于 $AA^T$ 的迹的平方根:$\|\mathbf{A}\|_{F}=\sqrt{\operatorname{tr}\left(\mathbf{A} \mathbf{A}^{T}\right)}$
+
+- $A$ 的迹等于 $A^T$ 的迹,$\operatorname{tr}(\mathbf{A})=\operatorname{tr}\left(\mathbf{A}^{T}\right)$
+
+- 交换律:假设 $\mathbf{A} \in \mathbb{R}^{m \times n}, \mathbf{B} \in \mathbb{R}^{n \times m}$,则有:$\operatorname{tr}(\mathbf{A} \mathbf{B})=\operatorname{tr}(\mathbf{B} \mathbf{A})$
+
+- 结合律:$\operatorname{tr}(\mathbf{A} \mathbf{B} \mathbf{C})=\operatorname{tr}(\mathbf{C} \mathbf{A} \mathbf{B})=\operatorname{tr}(\mathbf{B} \mathbf{C} \mathbf{A})$
+
+# 函数与导数
+
+## 函数计算
+
+如果 $f$ 是一元函数,则其逐向量函数为:
+
+$$
+f(\overrightarrow{\mathbf{x}})=\left(f\left(x_{1}\right), f\left(x_{2}\right), \cdots, f\left(x_{n}\right)\right)^{T}
+$$
+
+其逐矩阵函数为:
+
+$$
+f(\mathbf{X})=\left[\begin{array}{cccc}{f\left(x_{1,1}\right)} & {f\left(x_{1,2}\right)} & {\cdots} & {f\left(x_{1, n}\right)} \\ {f\left(x_{2,1}\right)} & {f\left(x_{2,2}\right)} & {\cdots} & {f\left(x_{2, n}\right)} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {f\left(x_{m, 1}\right)} & {f\left(x_{m, 2}\right)} & {\cdots} & {f\left(x_{m, n}\right)}\end{array}\right]
+$$
+
+其逐元导数分别为:
+
+$$
+f^{\prime}(\overrightarrow{\mathbf{x}})=\left(f^{\prime}(x 1), f^{\prime}(x 2), \cdots, f^{\prime}\left(x_{n}\right)\right)^{T}
+$$
+
+$$
+f^{\prime}(\mathbf{X})=\left[\begin{array}{cccc}{f^{\prime}\left(x_{1,1}\right)} & {f^{\prime}\left(x_{1,2}\right)} & {\cdots} & {f^{\prime}\left(x_{1, n}\right)} \\ {f^{\prime}\left(x_{2,1}\right)} & {f^{\prime}\left(x_{2,2}\right)} & {\cdots} & {f^{\prime}\left(x_{2, n}\right)} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {f^{\prime}\left(x_{m, 1}\right)} & {f^{\prime}\left(x_{m, 2}\right)} & {\cdots} & {f^{\prime}\left(x_{m, n}\right)}\end{array}\right]
+$$
+
+## 偏导数
+
+- 标量对标量的偏导数:$\frac{\partial u}{\partial v}$
+
+- 标量对向量($n$ 维向量)的偏导数:
+
+$$
+\frac{\partial u}{\partial \overrightarrow{\mathbf{v}}}=\left(\frac{\partial u}{\partial v_{1}}, \frac{\partial u}{\partial v_{2}}, \cdots, \frac{\partial u}{\partial v_{n}}\right)^{T}
+$$
+
+- 标量对矩阵 $m \times n$ 的偏导数:
+
+$$
+\frac{\partial u}{\partial \mathbf{V}}=\left[\begin{array}{cccc}{\frac{\partial u}{\partial V_{1,1}}} & {\frac{\partial u}{\partial V_{1,2}}} & {\cdots} & {\frac{\partial u}{\partial V_{1, n}}} \\ {\frac{\partial u}{\partial V_{2,1}}} & {\frac{\partial u}{\partial V_{2,2}}} & {\cdots} & {\frac{\partial u}{\partial V_{2, n}}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {\frac{\partial u}{\partial V_{m, 1}}} & {\frac{\partial u}{\partial V_{m, 2}}} & {\cdots} & {\frac{\partial u}{\partial V_{m, n}}}\end{array}\right]
+$$
+
+- $m$ 维向量对标量的偏导数:
+
+$$
+\frac{\partial \overrightarrow{\mathbf{u}}}{\partial v}=\left(\frac{\partial u_{1}}{\partial v}, \frac{\partial u_{2}}{\partial v}, \cdots, \frac{\partial u_{m}}{\partial v}\right)^{T}
+$$
+
+- $m$ 维向量对 $n$ 维向量的偏导数(雅可比矩阵,行优先):
+
+$$
+\frac{\partial \overrightarrow{\mathbf{u}}}{\partial \overrightarrow{\mathbf{v}}}=\left[\begin{array}{cccc}{\frac{\partial u_{1}}{\partial v_{1}}} & {\frac{\partial u_{1}}{\partial v_{2}}} & {\cdots} & {\frac{\partial u_{1}}{\partial v_{n}}} \\ {\frac{\partial u_{2}}{\partial v_{1}}} & {\frac{\partial u_{2}}{\partial v_{2}}} & {\cdots} & {\frac{\partial u_{2}}{\partial v_{n}}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {\frac{\partial u_{m}}{\partial v_{1}}} & {\frac{\partial u_{m}}{\partial v_{2}}} & {\cdots} & {\frac{\partial u_{m}}{\partial v_{n}}}\end{array}\right]
+$$
+
+- $m \times n$ 阶矩阵对于标量的偏导数:
+
+$$
+\frac{\partial \mathbf{U}}{\partial v}=\left[\begin{array}{cccc}{\frac{\partial U_{1,1}}{\partial v}} & {\frac{\partial U_{1,2}}{\partial v}} & {\cdots} & {\frac{\partial U_{1, n}}{\partial v}} \\ {\frac{\partial U_{2,1}}{\partial v}} & {\frac{\partial U_{2,2}}{\partial v}} & {\cdots} & {\frac{\partial U_{2, n}}{\partial v}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {\frac{\partial U_{m, 1}}{\partial v}} & {\frac{\partial U_{m, 2}}{\partial v}} & {\cdots} & {\frac{\partial U_{m, n}}{\partial v}}\end{array}\right]
+$$

+ 351 - 0
线性代数/距离与相似性.md

@@ -0,0 +1,351 @@
+- [java-string-similarity](https://github.com/tdebatty/java-string-similarity) > [Machine Learning: Measuring Similarity and Distance](https://dzone.com/articles/machine-learning-measuring) > [漫谈:机器学习中距离和相似性度量方法](http://www.cnblogs.com/daniel-D/p/3244718.html)
+
+# 数值点距离:numeric data points Numeric Data Points
+
+### 闵可夫斯基距离
+
+**闵可夫斯基距离**(Minkowski distance)是衡量数值点之间距离的一种非常常见的方法,假设数值点 P 和 Q 坐标如下:
+
+![](http://images.cnitblog.com/blog/533521/201308/07220422-b6c5a38eccb74824b92ba1b40c9dd92f.png)
+
+那么,闵可夫斯基距离定义为:
+
+![](http://images.cnitblog.com/blog/533521/201308/07220504-12655edb08dc45ae8a036d8028743042.png)
+
+该距离最常用的 p 是 2 和 1, 前者是**欧几里得距离**(Euclidean distance),后者是**曼哈顿距离**(Manhattan distance)。假设在曼哈顿街区乘坐出租车从 P 点到 Q 点,白色表示高楼大厦,灰色表示街道:
+
+![](http://images.cnitblog.com/blog/533521/201308/07220530-1c87c470c5984305932cb5f5fc91656f.png)
+
+绿色的斜线表示欧几里得距离,在现实中是不可能的。其他三条折线表示了曼哈顿距离,这三条折线的长度是相等的。
+
+当 p 趋近于无穷大时,闵可夫斯基距离转化成**切比雪夫距离**(Chebyshev distance):
+
+![](http://images.cnitblog.com/blog/533521/201308/07220549-4fb4c30e7fb84ca290d04f44f75dea7b.png)
+
+我们知道平面上到原点欧几里得距离(p = 2)为 1 的点所组成的形状是一个圆,当 p 取其他数值的时候呢?
+
+![](http://images.cnitblog.com/blog/533521/201308/07220559-ae662025d1394f90bfd62f7c21c3d895.png)
+
+注意,当 `p < 1` 时,闵可夫斯基距离不再符合三角形法则,举个例子:当 p `<` 1, (0,0) 到 (1,1) 的距离等于`(1+1)^{1/p} > 2`, 而 (0,1) 到这两个点的距离都是 1。
+
+闵可夫斯基距离比较直观,但是它与数据的分布无关,具有一定的局限性,如果 x 方向的幅值远远大于 y 方向的值,这个距离公式就会过度放大 x 维度的作用。所以,在计算距离之前,我们可能还需要对数据进行 **z-transform** 处理,即减去均值,除以标准差:
+
+![](http://latex.codecogs.com/gif.latex?%28x_1,%20y_1%29%5Cmapsto%20%28%5Cfrac%7Bx_1%20-%20%5Cmu%20_x%7D%7B%5Csigma%20_x%7D,%20%5Cfrac%7By_1%20-%20%5Cmu%20_y%7D%7B%5Csigma%20_y%7D%29)
+
+> ![](http://latex.codecogs.com/gif.latex?%5Cmu) : 该维度上的均值
+>
+> ![](http://latex.codecogs.com/gif.latex?%5Csigma) : 该维度上的标准差
+
+可以看到,上述处理开始体现数据的统计特性了。这种方法在假设数据各个维度不相关的情况下利用数据分布的特性计算出不同的距离。如果维度相互之间数据相关(例如:身高较高的信息很有可能会带来体重较重的信息,因为两者是有关联的),这时候就要用到**马氏距离**(Mahalanobis distance)了。
+
+### 马氏距离
+
+考虑下面这张图,椭圆表示等高线,从欧几里得的距离来算,绿黑距离大于红黑距离,但是从马氏距离,结果恰好相反:
+
+![](http://images.cnitblog.com/blog/533521/201308/07220637-f472bb13a779481bbfa45a9d79bd2175.png)
+
+马氏距离实际上是利用 Cholesky transformation 来消除不同维度之间的**相关性**和**尺度不同**的性质。假设样本点(列向量)之间的协方差对称矩阵是 ![](http://latex.codecogs.com/gif.latex?%5CSigma) , 通过 Cholesky Decomposition(实际上是对称矩阵 LU 分解的一种特殊形式,可参考之前的[博客](http://www.cnblogs.com/daniel-D/p/3204508.html))可以转化为下三角矩阵和上三角矩阵的乘积: ![](http://latex.codecogs.com/gif.latex?%5CSigma%20=%20LL%5ET) 。消除不同维度之间的相关性和尺度不同,只需要对样本点 x 做如下处理:![](http://latex.codecogs.com/gif.latex?z%20=%20L%5E%7B-1%7D%28x%20-%20%5Cmu%20%29) 。处理之后的欧几里得距离就是原样本的马氏距离:为了书写方便,这里求马氏距离的平方):
+
+![](http://images.cnitblog.com/blog/533521/201308/07220659-e3270d8a52ef45c1b457d9af19b1aad1.png)
+
+下图蓝色表示原样本点的分布,两颗红星坐标分别是(3, 3),(2, -2):
+
+![](http://images.cnitblog.com/blog/533521/201308/07220711-7c326cd8835a446d94684e6adb7ff75a.png)
+
+由于 x, y 方向的尺度不同,不能单纯用欧几里得的方法测量它们到原点的距离。并且,由于 x 和 y 是相关的(大致可以看出斜向右上),也不能简单地在 x 和 y 方向上分别减去均值,除以标准差。最恰当的方法是对原始数据进行 Cholesky 变换,即求马氏距离(可以看到,右边的红星离原点较近):
+
+![](http://images.cnitblog.com/blog/533521/201308/07220737-b9ab6c4b19d64590998685325ae49bd1.png)
+
+将上面两个图的绘制代码和求马氏距离的代码贴在这里,以备以后查阅:
+
+```python
+# -*- coding=utf-8 -*-
+
+# code related at: http://www.cnblogs.com/daniel-D/
+
+import numpy as np
+import pylab as pl
+import scipy.spatial.distance as dist
+
+
+def plotSamples(x, y, z=None):
+
+    stars = np.matrix([[3., -2., 0.], [3., 2., 0.]])
+    if z is not None:
+        x, y = z * np.matrix([x, y])
+        stars = z * stars
+
+    pl.scatter(x, y, s=10)    # 画 gaussian 随机点
+    pl.scatter(np.array(stars[0]), np.array(stars[1]), s=200, marker='*', color='r')  # 画三个指定点
+    pl.axhline(linewidth=2, color='g') # 画 x 轴
+    pl.axvline(linewidth=2, color='g')  # 画 y 轴
+
+    pl.axis('equal')
+    pl.axis([-5, 5, -5, 5])
+    pl.show()
+
+
+# 产生高斯分布的随机点
+mean = [0, 0]      # 平均值
+cov = [[2, 1], [1, 2]]   # 协方差
+x, y = np.random.multivariate_normal(mean, cov, 1000).T
+plotSamples(x, y)
+
+covMat = np.matrix(np.cov(x, y))    # 求 x 与 y 的协方差矩阵
+Z = np.linalg.cholesky(covMat).I  # 仿射矩阵
+plotSamples(x, y, Z)
+
+# 求马氏距离
+print '\n到原点的马氏距离分别是:'
+print dist.mahalanobis([0,0], [3,3], covMat.I), dist.mahalanobis([0,0], [-2,2], covMat.I)
+
+# 求变换后的欧几里得距离
+dots = (Z * np.matrix([[3, -2, 0], [3, 2, 0]])).T
+print '\n变换后到原点的欧几里得距离分别是:'
+print dist.minkowski([0, 0], np.array(dots[0]), 2), dist.minkowski([0, 0], np.array(dots[1]), 2)
+```
+
+马氏距离的变换和 PCA 分解的[白化处理](http://deeplearning.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96)颇有异曲同工之妙,不同之处在于:就二维来看,PCA 是将数据主成分旋转到 x 轴(正交矩阵的酉变换),再在尺度上缩放(对角矩阵),实现尺度相同。而马氏距离的 L 逆矩阵是一个下三角,先在 x 和 y 方向进行缩放,再在 y 方向进行错切(想象矩形变平行四边形),总体来说是一个没有旋转的仿射变换。
+
+## 类别点距离(categorical data points)
+
+$distance_{final} = α.distance_{numeric} + (1- α).distance_{categorical}$
+
+### 汉明距离
+
+**汉明距离**(Hamming distance)是指,两个等长字符串 s1 与 s2 之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。举个维基百科上的例子:
+
+![](http://images.cnitblog.com/blog/533521/201308/07221109-c683a8f31c9a4e31a93e5d04fdab3443.png)
+
+还可以用简单的**匹配系数**来表示两点之间的相似度——匹配字符数/总字符数。在一些情况下,某些特定的值相等并不能代表什么。举个例子,用 1 表示用户看过该电影,用 0 表示用户没有看过,那么用户看电影的的信息就可用 0,1 表示成一个序列。考虑到电影基数非常庞大,用户看过的电影只占其中非常小的一部分,如果两个用户都没有看过某一部电影(两个都是 0),并不能说明两者相似。反而言之,如果两个用户都看过某一部电影(序列中都是 1),则说明用户有很大的相似度。在这个例子中,序列中等于 1 所占的权重应该远远大于 0 的权重,这就引出下面要说的**杰卡德相似系数**(Jaccard similarity)。
+
+### Jacard 相似度
+
+Jacard 相似性直观的概念来自,两个集合有多相似,显然,Jacard 最好是应用在离散的变量几何上。先看公式:
+
+                                ![ J(A,B) = {{|A /cap B|}/over{|A /cup B|}}.](http://upload.wikimedia.org/math/1/8/6/186c7f4e83da32e889d606140fae25a0.png)
+
+分子是集合交集,分母是集合并集,画个图,马上就明白咋回事了。
+
+和 Jacard index 相似的一个公式是 Dice‘ coefficient, 它也很直观,
+![s = /frac{2 | X /cap Y |}{| X | + | Y |} ](http://upload.wikimedia.org/math/2/3/5/2354a9c697d2bf4ae114b8f1f72d5090.png)
+
+## 向量内积
+
+向量内积是线性代数里最为常见的计算,实际上它还是一种有效并且直观的相似性测量手段。向量内积的定义如下:
+
+![](http://latex.codecogs.com/gif.latex?Inner%28x,y%29%20=%20%5Clangle%20x,%20y%20%5Crangle%20=%20%5Csum_i%20x_i%20y_i)
+
+直观的解释是:如果 x 高的地方 y 也比较高, x 低的地方 y 也比较低,那么整体的内积是偏大的,也就是说 x 和 y 是相似的。举个例子,在一段长的序列信号 A 中寻找哪一段与短序列信号 a 最匹配,只需要将 a 从 A 信号开头逐个向后平移,每次平移做一次内积,内积最大的相似度最大。信号处理中 DFT 和 DCT 也是基于这种内积运算计算出不同频域内的信号组分(DFT 和 DCT 是正交标准基,也可以看做投影)。向量和信号都是离散值,如果是连续的函数值,比如求区间`[-1, 1]` 两个函数之间的相似度,同样也可以得到(系数)组分,这种方法可以应用于多项式逼近连续函数,也可以用到连续函数逼近离散样本点(最小二乘问题,**OLS coefficients**)中,扯得有点远了- -!。
+
+### 余弦相似度
+
+向量内积的结果是没有界限的,一种解决办法是除以长度之后再求内积,这就是应用十分广泛的**余弦相似度**(Cosine similarity):
+
+![](http://latex.codecogs.com/gif.latex?CosSim%28x,y%29%20=%20%5Cfrac%7B%5Csum_i%20x_i%20y_i%7D%7B%20%5Csqrt%7B%20%5Csum_i%20x_i%5E2%7D%20%5Csqrt%7B%20%5Csum_i%20y_i%5E2%20%7D%20%7D%20=%20%5Cfrac%7B%20%5Clangle%20x,y%20%5Crangle%20%7D%7B%20%7C%7Cx%7C%7C%5C%20%7C%7Cy%7C%7C%20%7D)
+
+余弦相似度与向量的幅值无关,只与向量的方向相关,在文档相似度([TF-IDF](http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html))和图片相似性([histogram](http://www.ruanyifeng.com/blog/2013/03/similar_image_search_part_ii.html))计算上都有它的身影。
+
+### 皮尔逊相关系数(Pearson Correlation Coefficient)
+
+需要注意一点的是,余弦相似度受到向量的平移影响,上式如果将 x 平移到 x+1, 余弦值就会改变。怎样才能实现平移不变性?这就是下面要说的**皮尔逊相关系数**(Pearson correlation),有时候也直接叫**相关系数**。皮尔逊相关系数是一种度量两个变量间相关程度的方法。它是一个介于 1 和 -1 之间的值,其中,1 表示变量完全正相关, 0 表示无关,-1 表示完全负相关。
+
+![](http://latex.codecogs.com/gif.latex?%5Cbegin%7Balign%7D%20Corr%28x,y%29%20&=%20%5Cfrac%7B%20%5Csum_i%20%28x_i-%5Cbar%7Bx%7D%29%20%28y_i-%5Cbar%7By%7D%29%20%7D%7B%20%5Csqrt%7B%5Csum%20%28x_i-%5Cbar%7Bx%7D%29%5E2%7D%20%5Csqrt%7B%20%5Csum%20%28y_i-%5Cbar%7By%7D%29%5E2%20%7D%20%7D%20&=%20%5Cfrac%7B%5Clangle%20x-%5Cbar%7Bx%7D,%5C%20y-%5Cbar%7By%7D%20%5Crangle%7D%7B%20%7C%7Cx-%5Cbar%7Bx%7D%7C%7C%5C%20%7C%7Cy-%5Cbar%7By%7D%7C%7C%7D%20%20%20&=%20CosSim%28x-%5Cbar%7Bx%7D,%20y-%5Cbar%7By%7D%29%20%5Cend%7Balign%7D)
+
+=
+
+​ $\frac{\sum x_iy_i-\frac{\sum x_i\sum y_i}{n}}{\sqrt{\sum x_i^2-\frac{(\sum x_i)^2}{n}}\sqrt{\sum y_i^2-\frac{(\sum y_i)^2}{n}}}$
+
+在推荐系统中,我们常用皮尔逊相关系数来衡量两个用户兴趣的相似度,它是判断两组数据与某一直线拟合程度的一种度量。它在用户对物品的评分数据差别大时(如有些用户评分普遍较高,有些用户评分普遍偏低)时的效果更好。也即它修正了“夸大分值”的情况,如果某个用户总是倾向于给出比另一个人更高的分值,而两者的分值之差又始终保持一致,则两者间依然可能存在很好地相关性。
+
+![](http://7xlv6k.com1.z0.glb.clouddn.com/cdn_chapter2_2.png)
+
+在[统计学](http://zh.wikipedia.org/wiki/%E7%BB%9F%E8%AE%A1%E5%AD%A6)中,**皮尔逊积矩相关系数**(Pearson product-moment correlation coefficient)用于度量两个变量 X 和 Y 之间的[相关](http://zh.wikipedia.org/wiki/%E7%9B%B8%E5%85%B3)(线性相关),其值介于-1 与 1 之间。系数的值为 1 意味着*X* 和 *Y*可以很好的由直线方程来描述,所有的数据点都很好的落在一条 [直线](http://zh.wikipedia.org/w/index.php?title=Line_%28mathematics%29&action=edit&redlink=1)上,且 _Y_ 随着 _X_ 的增加而增加。系数的值为?1 意味着所有的数据点都落在直线上,且 _Y_ 随着 _X_ 的增加而减少。系数的值为 0 意味着两个变量之间没有线性关系。当两个变量独立时,相关系数为 0.但反之并不成立。这是因为相关系数仅仅反映了两个变量之间是否线性相关。比如说,*X*是区间[-1,1]上的一个均匀分布的随机变量。_Y_ = *X*2. 那么*Y*是完全由*X*确定。因此*Y* 和*X*是不独立的。但是相关系数为 0。或者说他们是不相关的。当*Y* 和*X*服从联合正态分布时,其相互独立和不相关是等价的。当且仅当 _X\*\*i_ and _Y\*\*i_ 均落在他们各自的均值的同一侧, 则(_X\*\*i_ ? _X_)(_Y\*\*i_ ? _Y_) 的值为正。也就是说,如果*X\*\*i* 和 _Y\*\*i_ 同时趋向于大于, 或同时趋向于小于他们各自的均值,则相关系数为正。如果 _X\*\*i_ 和 _Y\*\*i_ 趋向于落在他们均值的相反一侧,则相关系数为负。
+
+皮尔逊相关系数具有平移不变性和尺度不变性,计算出了两个向量(维度)的相关性。不过,一般我们在谈论相关系数的时候,将 x 与 y 对应位置的两个数值看作一个样本点,皮尔逊系数用来表示这些样本点分布的相关性。
+
+![](http://images.cnitblog.com/blog/533521/201308/07221044-45cc00fed26d4c6796f4d9b9072dc177.png)
+
+由于皮尔逊系数具有的良好性质,在各个领域都应用广泛,例如,在推荐系统根据为某一用户查找喜好相似的用户,进而[提供推荐](http://www.cnblogs.com/daniel-D/p/3192180.html),优点是可以不受每个用户评分标准不同和观看影片数量不一样的影响。
+
+> 例如,假设五个国家的国民生产总值分别是 1、2、3、5、8(单位 10 亿美元),又假设这五个国家的贫困比例分别是 11%、12%、13%、15%、18%。
+
+创建 2 个向量.(R 语言)
+
+```
+x<-c(1,2,3,5,8)
+y<-c(0.11,0.12,0.13,0.15,0.18)
+```
+
+按照维基的例子,应计算出相关系数为 1 出来.我们看看如何一步一步计算出来的.
+
+x 的平均数是:3.8
+
+y 的平均数是 0.138
+
+所以,
+
+```
+sum((x-mean(x))*(y-mean(y)))=0.308
+```
+
+用大白话来写就是:
+
+(1-3.8)\*(0.11-0.138)=0.0784
+
+(2-3.8)\*(0.12-0.138)=0.0324
+
+(3-3.8)\*(0.13-0.138)=0.0064
+
+(5-3.8)\*(0.15-0.138)=0.0144
+
+(8-3.8)\*(0.18-0.138)=0.1764
+
+0.0784+0.0324+0.0064+0.0144+0.1764=0.308
+
+同理, 分号下面的,分别是:
+
+sum((x-mean(x))^2)=30.8
+
+sum((y-mean(y))^2)= 0.00308
+
+用大白话来写,分别是:
+
+(1-3.8)^2=7.84 #平方
+
+(2-3.8)^2=3.24 #平方
+
+(3-3.8)^2=0.64 #平方
+
+(5-3.8)^2=1.44 #平方
+
+(8-3.8)^2=17.64 #平方
+
+7.84+3.24+0.64+1.44+17.64=30.8
+
+同理,求得:
+
+```
+sum((y-mean(y))^2)= 0.00308
+```
+
+然后再开平方根,分别是:
+
+30.8^0.5=5.549775
+
+0.00308^0.5=0.05549775
+
+用分子除以分母,就计算出最终结果:
+
+0.308/(5.549775\*0.05549775)=1
+
+```python
+#皮尔逊相关度
+def sim_pearson(prefs,p1,p2):
+    si={}
+    for item in prefs[p1]:
+      if item in prefs[p2]: si[item]=1
+
+    if len(si)==0: return 0
+
+    n=len(si)
+
+    #计算开始
+    sum1=sum([prefs[p1][it] for it in si])
+    sum2=sum([prefs[p2][it] for it in si])
+
+    sum1Sq=sum([pow(prefs[p1][it],2) for it in si])
+    sum2Sq=sum([pow(prefs[p2][it],2) for it in si])
+
+    pSum=sum([prefs[p1][it]*prefs[p2][it] for it in si])
+
+    num=pSum-(sum1*sum2/n)
+    den=sqrt((sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n))
+    #计算结束
+
+    if den==0: return 0
+
+    r=num/den
+
+    return r
+```
+
+## 序列距离(String,TimeSeries)
+
+### DTW(Dynamic Time Warp)
+
+汉明距离可以度量两个长度相同的字符串之间的相似度,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的**编辑距离**(Edit distance, Levenshtein distance)等算法。编辑距离是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离求的是最少编辑次数,这是一个动态规划的问题,有兴趣的同学可以自己研究研究。
+
+时间序列是序列之间距离的另外一个例子。**DTW 距离**(Dynamic Time Warp)是序列信号在时间或者速度上不匹配的时候一种衡量相似度的方法。神马意思?举个例子,两份原本一样声音样本 A、B 都说了“你好”,A 在时间上发生了扭曲,“你”这个音延长了几秒。最后 A:“你~~~~~~~好”,B:“你好”。DTW 正是这样一种可以用来匹配 A、B 之间的最短距离的算法。
+
+DTW 距离在保持信号先后顺序的限制下对时间信号进行“膨胀”或者“收缩”,找到最优的匹配,与编辑距离相似,这其实也是一个动态规划的问题:
+
+![](http://images.cnitblog.com/blog/533521/201308/07221153-ea76b098f70a4a68b4929789c032ef69.png)
+
+```python
+#!/usr/bin/python2
+# -*- coding:UTF-8 -*-
+# code related at: http://blog.mckelv.in/articles/1453.html
+
+import sys
+
+distance = lambda a,b : 0 if a==b else 1
+
+def dtw(sa,sb):
+    '''
+    >>>dtw(u"干啦今今今今今天天气气气气气好好好好啊啊啊", u"今天天气好好啊")
+    2
+    '''
+    MAX_COST = 1<<32
+    #初始化一个len(sb) 行(i),len(sa)列(j)的二维矩阵
+    len_sa = len(sa)
+    len_sb = len(sb)
+    # BUG:这样是错误的(浅拷贝): dtw_array = [[MAX_COST]*len(sa)]*len(sb)
+    dtw_array = [[MAX_COST for i in range(len_sa)] for j in range(len_sb)]
+    dtw_array[0][0] = distance(sa[0],sb[0])
+    for i in xrange(0, len_sb):
+        for j in xrange(0, len_sa):
+            if i+j==0:
+                continue
+            nb = []
+            if i > 0: nb.append(dtw_array[i-1][j])
+            if j > 0: nb.append(dtw_array[i][j-1])
+            if i > 0 and j > 0: nb.append(dtw_array[i-1][j-1])
+            min_route = min(nb)
+            cost = distance(sa[j],sb[i])
+            dtw_array[i][j] = cost + min_route
+    return dtw_array[len_sb-1][len_sa-1]
+
+
+def main(argv):
+    s1 = u'干啦今今今今今天天气气气气气好好好好啊啊啊'
+    s2 = u'今天天气好好啊'
+    d = dtw(s1, s2)
+    print d
+    return 0
+
+if __name__ == '__main__':
+    sys.exit(main(sys.argv))
+```
+
+## 网络节点距离
+
+## 分布距离
+
+前面我们谈论的都是两个数值点之间的距离,实际上两个概率分布之间的距离是可以测量的。在统计学里面经常需要测量两组样本分布之间的距离,进而判断出它们是否出自同一个 population,常见的方法有**卡方检验**(Chi-Square)和 **KL 散度**( KL-Divergence),下面说一说 KL 散度吧。
+
+先从信息熵说起,假设一篇文章的标题叫做“黑洞到底吃什么”,包含词语分别是 {黑洞, 到底, 吃什么}, 我们现在要根据一个词语推测这篇文章的类别。哪个词语给予我们的信息最多?很容易就知道是“黑洞”,因为“黑洞”这个词语在所有的文档中出现的概率太低啦,一旦出现,就表明这篇文章很可能是在讲科普知识。而其他两个词语“到底”和“吃什么”出现的概率很高,给予我们的信息反而越少。如何用一个函数 h(x) 表示词语给予的信息量呢?第一,肯定是与 p(x) 相关,并且是负相关。第二,假设 x 和 y 是独立的(黑洞和宇宙不相互独立,谈到黑洞必然会说宇宙),即 p(x,y) = p(x)p(y), 那么获得的信息也是叠加的,即 h(x, y) = h(x) + h(y)。满足这两个条件的函数肯定是负对数形式:
+
+![](http://latex.codecogs.com/gif.latex?h%28x%29%20=%20-ln%5C%20p%28x%29)
+
+对假设一个发送者要将随机变量 X 产生的一长串随机值传送给接收者, 接受者获得的平均信息量就是求它的数学期望:
+
+![](http://latex.codecogs.com/gif.latex?H[x]%20=%20-%5Csum%20_x%7Bp%28x%29%5Cln%20p%28x%29%7D)
+
+![](http://latex.codecogs.com/gif.latex?H[x]%20=%20-%5Cint%20%7B%20p%28x%29%5Cln%20%7B%20p%28x%29%20%7D%20dx%20%7D)
+
+这就是熵的概念。另外一个重要特点是,熵的大小与字符平均最短编码长度是一样的(shannon)。设有一个未知的分布 p(x), 而 q(x) 是我们所获得的一个对 p(x) 的近似,按照 q(x) 对该随机变量的各个值进行编码,平均长度比按照真实分布的 p(x) 进行编码要额外长一些,多出来的长度这就是 KL 散度(之所以不说距离,是因为不满足对称性和三角形法则),即:
+
+![](http://images.cnitblog.com/blog/533521/201308/07221311-03bee2dca7e040e4889582d8182f4dde.png)
+
+KL 散度又叫**相对熵**(relative entropy)。了解机器学习的童鞋应该都知道,在 Softmax 回归(或者 Logistic 回归),最后的输出节点上的值表示这个样本分到该类的概率,这就是一个概率分布。对于一个带有标签的样本,我们期望的概率分布是:分到标签类的概率是 1, 其他类概率是 0。但是理想很丰满,现实很骨感,我们不可能得到完美的概率输出,能做的就是尽量减小总样本的 KL 散度之和(目标函数)。这就是 Softmax 回归或者 Logistic 回归中 Cost function 的优化过程啦。(PS:因为概率和为 1,一般的 logistic 二分类的图只画了一个输出节点,隐藏了另外一个)

+ 0 - 0
软件篇/Python/.gitkeep


+ 0 - 0
软件篇/R/.gitkeep


+ 0 - 0
软件篇/SAS/.gitkeep


+ 0 - 0
软件篇/matlab/.gitkeep


+ 0 - 0
运筹学/代价函数.md


Some files were not shown because too many files changed in this diff