diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-A-\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md" "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md"
similarity index 90%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-A-\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md"
rename to "A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md"
index 368c4cc0..e5e5e28d 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-A-\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md"
+++ "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200.md"
@@ -23,11 +23,11 @@ Index
- 模型的**偏差**,指的是模型预测的**期望值**与**真实值**之间的差;
- 模型的**方差**,指的是模型预测的**期望值**与**预测值**之间的差平方和;
- 在**监督学习**中,模型的**泛化误差**可**分解**为偏差、方差与噪声之和。
-
+
- **偏差**用于描述模型的**拟合能力**;
**方差**用于描述模型的**稳定性**。
-
+
### 导致偏差和方差的原因
- **偏差**通常是由于我们对学习算法做了**错误的假设**,或者模型的复杂度不够;
@@ -48,21 +48,21 @@ Index
### 偏差与方差的计算公式
- 记在**训练集 D** 上学得的模型为
-
+
模型的**期望预测**为
-
+
- **偏差**(Bias)
-
+
> **偏差**度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
- **方差**(Variance)
-
+
> **方差**度量了同样大小的**训练集的变动**所导致的学习性能的变化,即刻画了数据扰动所造成的影响(模型的稳定性);
+ -->
- **噪声**则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
@@ -76,7 +76,7 @@ Index
- 当训练充足后,模型的**拟合能力过强**(数据的轻微扰动都会导致模型产生显著的变化),此时即发生**过拟合**(训练数据自身的、非全局的特征也被模型学习了)
- 偏差和方差的关系和**模型容量**(模型复杂度)、**欠拟合**和**过拟合**的概念紧密相联
-
+
- 当模型的容量增大(x 轴)时, 偏差(用点表示)随之减小,而方差(虚线)随之增大
- 沿着 x 轴存在**最佳容量**,**小于最佳容量会呈现欠拟合**,**大于最佳容量会导致过拟合**。
@@ -91,7 +91,7 @@ Index
> 《统计学习方法》 1.7 生成模型与判别模型
- 监督学习的任务是学习一个模型,对给定的输入预测相应的输出
- 这个模型的一般形式为一个**决策函数**或一个**条件概率分布**(后验概率):
-
+
- **决策函数**:输入 X 返回 Y;其中 Y 与一个**阈值**比较,然后根据比较结果判定 X 的类别
- **条件概率分布**:输入 X 返回 **X 属于每个类别的概率**;将其中概率最大的作为 X 所属的类别
@@ -99,7 +99,7 @@ Index
- **判别模型**直接学习决策函数或者条件概率分布
- 直观来说,**判别模型**学习的是类别之间的最优分隔面,反映的是不同类数据之间的差异
- **生成模型**学习的是联合概率分布`P(X,Y)`,然后根据条件概率公式计算 `P(Y|X)`
-
+
**两者之间的联系**
- 由生成模型可以得到判别模型,但由判别模型得不到生成模型。
@@ -149,4 +149,4 @@ Index
- 基于先验概率求得的**反向条件概率**,形式上与条件概率相同(若 `P(X|Y)` 为正向,则 `P(Y|X)` 为反向)
**贝叶斯公式**
-
+
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\346\234\272\345\231\250\345\255\246\344\271\240\345\256\236\350\267\265.md" "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\345\256\236\350\267\265.md"
similarity index 89%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\346\234\272\345\231\250\345\255\246\344\271\240\345\256\236\350\267\265.md"
rename to "A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\345\256\236\350\267\265.md"
index 7801f7d6..0f948c6b 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\346\234\272\345\231\250\345\255\246\344\271\240\345\256\236\350\267\265.md"
+++ "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\345\256\236\350\267\265.md"
@@ -74,9 +74,9 @@ Index
- 答:
- 硬币:[![](../assets/公式_20180620160408.png)](http://www.codecogs.com/eqnedit.php?latex=-\sum^{n}_{i=1}P(X_i)\log&space;P(X_i)&space;=&space;-2*\frac{1}{2}*\log&space;P(\frac{1}{2})\approx&space;1&space;\text{bit})
+ 硬币:[![](../_assets/公式_20180620160408.png)](http://www.codecogs.com/eqnedit.php?latex=-\sum^{n}_{i=1}P(X_i)\log&space;P(X_i)&space;=&space;-2*\frac{1}{2}*\log&space;P(\frac{1}{2})\approx&space;1&space;\text{bit})
- 六面体:[![](../assets/公式_20180620160538.png)](http://www.codecogs.com/eqnedit.php?latex=-\sum^{n}_{i=1}P(X_i)\log&space;P(X_i)&space;=&space;-6*\frac{1}{6}*\log&space;P(\frac{1}{6})\approx&space;2.6&space;\text{bit})
+ 六面体:[![](../_assets/公式_20180620160538.png)](http://www.codecogs.com/eqnedit.php?latex=-\sum^{n}_{i=1}P(X_i)\log&space;P(X_i)&space;=&space;-6*\frac{1}{6}*\log&space;P(\frac{1}{6})\approx&space;2.6&space;\text{bit})
## 混淆矩阵、模型度量指标:准确率、精确率、召回率、F1 值等
@@ -88,26 +88,26 @@ Index
- False Positive(FP):将负类预测为正类数 → 误报 (Type I error).
- False Negative(FN):将正类预测为负类数 → 漏报 (Type II error).
- ![](../assets/confusion_matrix.png)
+ ![](../_assets/confusion_matrix.png)
**准确率**(accuracy)
-![](../assets/TIM截图20180620171915.png)
+![](../_assets/TIM截图20180620171915.png)
**精确率**(precision)
-![](../assets/TIM截图20180620171300.png)
+![](../_assets/TIM截图20180620171300.png)
> 准确率与精确率的区别:
>> 在正负样本不平衡的情况下,**准确率**这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc 也有 99% 以上,没有意义。
**召回率**(recall, sensitivity, true positive rate)
-![](../assets/TIM截图20180620190555.png)
+![](../_assets/TIM截图20180620190555.png)
**F1值**——精确率和召回率的调和均值
-![](../assets/TIM截图20180620191137.png)
+![](../_assets/TIM截图20180620191137.png)
> 只有当精确率和召回率都很高时,F1值才会高
@@ -212,7 +212,7 @@ Index
**特征处理**
-![](../assets/数据清洗与特征处理.jpg)
+![](../_assets/数据清洗与特征处理.jpg)
> [机器学习中的数据清洗与特征处理综述](https://tech.meituan.com/machinelearning-data-feature-process.html) - 美团点评技术
@@ -222,7 +222,7 @@ Index
---
X → Y 的支持度表示项集 {X,Y} 在总项集中出现的概率
-[![](../assets/公式_20180620204006.png)](http://www.codecogs.com/eqnedit.php?latex=Support(X\rightarrow&space;Y)=\frac{P(X\cup&space;Y)}{P(I)}=\frac{\text{num}(X\cup&space;Y)}{\text{num}(I)})
+[![](../_assets/公式_20180620204006.png)](http://www.codecogs.com/eqnedit.php?latex=Support(X\rightarrow&space;Y)=\frac{P(X\cup&space;Y)}{P(I)}=\frac{\text{num}(X\cup&space;Y)}{\text{num}(I)})
其中,I 表示总事务集,`num()`表示事务集中特定项集出现的次数,`P(X)=num(X)/num(I)`
@@ -230,13 +230,13 @@ X → Y 的支持度表示项集 {X,Y} 在总项集中出现的概率
---
X → Y 的置信度表示在先决条件 X 发生的情况下,由规则 X → Y 推出 Y 的概率。
-[![](../assets/公式_20180620205055.png)](http://www.codecogs.com/eqnedit.php?latex=Confidence(X\rightarrow&space;Y)=P(Y|X)=\frac{P(X\cup&space;Y)}{P(X)}=\frac{\text{num}(X\cup&space;Y)}{\text{num}(X)})
+[![](../_assets/公式_20180620205055.png)](http://www.codecogs.com/eqnedit.php?latex=Confidence(X\rightarrow&space;Y)=P(Y|X)=\frac{P(X\cup&space;Y)}{P(X)}=\frac{\text{num}(X\cup&space;Y)}{\text{num}(X)})
**提升度**(Lift)
---
X → Y 的提升度表示含有X的条件下,同时含有Y的概率,与Y总体发生的概率之比。
-[![](../assets/公式_20180620213601.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;Lift(X\rightarrow&space;Y)&=\frac{P(Y|X)}{P(Y)}=\frac{Confidence(X\rightarrow&space;Y)}{\text{num}(Y)/\text{num}(I)}\\&space;&=\frac{P(X\cup&space;Y)}{P(X)P(Y)}=\frac{\text{num}(X\cup&space;Y)\text{num}(I)}{\text{num}(X)\text{num}(Y)}&space;\end{aligned}}})
+[![](../_assets/公式_20180620213601.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;Lift(X\rightarrow&space;Y)&=\frac{P(Y|X)}{P(Y)}=\frac{Confidence(X\rightarrow&space;Y)}{\text{num}(Y)/\text{num}(I)}\\&space;&=\frac{P(X\cup&space;Y)}{P(X)P(Y)}=\frac{\text{num}(X\cup&space;Y)\text{num}(I)}{\text{num}(X)\text{num}(Y)}&space;\end{aligned}}})
规则的有效性:
---
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\346\234\272\345\231\250\345\255\246\344\271\240\347\256\227\346\263\225.md" "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\347\256\227\346\263\225.md"
similarity index 65%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\346\234\272\345\231\250\345\255\246\344\271\240\347\256\227\346\263\225.md"
rename to "A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\347\256\227\346\263\225.md"
index 726a3084..b3469054 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\346\234\272\345\231\250\345\255\246\344\271\240\347\256\227\346\263\225.md"
+++ "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/A-\346\234\272\345\231\250\345\255\246\344\271\240\347\256\227\346\263\225.md"
@@ -77,11 +77,11 @@
输入实例`x`的特征向量记为:
- [![](../assets/公式_20180713114026.png)](http://www.codecogs.com/eqnedit.php?latex=x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T)
+ [![](../_assets/公式_20180713114026.png)](http://www.codecogs.com/eqnedit.php?latex=x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T)
注意:`x_i` 和 `x^(i)` 含义不同,前者表示训练集中第 i 个实例,后者表示特征向量中的第 i 个分量;因此,通常记训练集为:
- [![](../assets/公式_20180713132400.png)](http://www.codecogs.com/eqnedit.php?latex=T=\left&space;\{&space;(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)&space;\right&space;\})
+ [![](../_assets/公式_20180713132400.png)](http://www.codecogs.com/eqnedit.php?latex=T=\left&space;\{&space;(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)&space;\right&space;\})
> 特征向量用小`n`表示维数,训练集用大`N`表示个数
- **公式说明**
@@ -107,20 +107,20 @@
信息熵 与 自信息
- **自信息**(self-information)是一种量化以上性质的函数,定义一个事件`x`的自信息为:
- [![](../assets/公式_20180610215339.png)](http://www.codecogs.com/eqnedit.php?latex=I(x)=-\log&space;P(x))
+ [![](../_assets/公式_20180610215339.png)](http://www.codecogs.com/eqnedit.php?latex=I(x)=-\log&space;P(x))
> 当该对数的底数为自然对数 e 时,单位为奈特(nats);当以 2 为底数时,单位为比特(bit)或香农(shannons)
- 自信息只处理单个的输出。
- **信息熵**(Information-entropy)用于对整个概率分布中的**不确定性总量**进行量化:
- [![](../assets/公式_20180610215417.png)](http://www.codecogs.com/eqnedit.php?latex=H(\mathrm{X})=\mathbb{E}_{\mathrm{X}&space;\sim&space;P}[I(x)]=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;P(x))
+ [![](../_assets/公式_20180610215417.png)](http://www.codecogs.com/eqnedit.php?latex=H(\mathrm{X})=\mathbb{E}_{\mathrm{X}&space;\sim&space;P}[I(x)]=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;P(x))
> 信息论中,记 `0log0 = 0`
交叉熵 与 相对熵/KL散度
- 定义 **P 对 Q** 的 **KL 散度**(Kullback-Leibler divergence):
- [![](../assets/公式_20180610215445.png)](http://www.codecogs.com/eqnedit.php?latex=D_P(Q)=\mathbb{E}_{\mathrm{X}\sim&space;P}\left&space;[&space;\log&space;\frac{P(x)}{Q(x)}&space;\right&space;]=\sum_{x&space;\in&space;\mathrm{X}}P(x)\left&space;[&space;\log&space;P(x)-\log&space;Q(x)&space;\right&space;])
+ [![](../_assets/公式_20180610215445.png)](http://www.codecogs.com/eqnedit.php?latex=D_P(Q)=\mathbb{E}_{\mathrm{X}\sim&space;P}\left&space;[&space;\log&space;\frac{P(x)}{Q(x)}&space;\right&space;]=\sum_{x&space;\in&space;\mathrm{X}}P(x)\left&space;[&space;\log&space;P(x)-\log&space;Q(x)&space;\right&space;])
**KL 散度在信息论中度量的是哪个直观量**
- 在离散型变量的情况下, KL 散度衡量的是:当我们使用一种被设计成能够使得概率分布 Q 产生的消息的长度最小的编码,发送包含由概率分布 P 产生的符号的消息时,所需要的额外信息量。
@@ -131,13 +131,13 @@
**交叉熵**(cross-entropy):
-[![](../assets/公式_20180610215522.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=-\mathbb{E}_{\mathrm{X}\sim&space;P}\log&space;Q(x)=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;Q(x))
+[![](../_assets/公式_20180610215522.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=-\mathbb{E}_{\mathrm{X}\sim&space;P}\log&space;Q(x)=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;Q(x))
> [信息量,信息熵,交叉熵,KL散度和互信息(信息增益)](https://blog.csdn.net/haolexiao/article/details/70142571) - CSDN博客
**交叉熵 与 KL 散度的关系**
- **针对 Q 最小化交叉熵等价于最小化 P 对 Q 的 KL 散度**,因为 Q 并不参与被省略的那一项。
- [![](../assets/公式_20180610215554.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=H(P)+D_P(Q))
+ [![](../_assets/公式_20180610215554.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=H(P)+D_P(Q))
- 最大似然估计中,最小化 KL 散度其实就是在最小化分布之间的交叉熵。
> 《深度学习》 ch5.5 - 最大似然估计
@@ -148,21 +148,21 @@
- **二项**逻辑斯蒂回归模型即如下的**条件概率分布**
-
- [![](../assets/公式_20180709152707.png)](http://www.codecogs.com/eqnedit.php?latex=P(Y=1|x)=\frac{\exp(wx)}{1+\exp(wx)}=\frac{1}{1+\exp(-wx)})
+
+ [![](../_assets/公式_20180709152707.png)](http://www.codecogs.com/eqnedit.php?latex=P(Y=1|x)=\frac{\exp(wx)}{1+\exp(wx)}=\frac{1}{1+\exp(-wx)})
- [![](../assets/公式_20180709113237.png)](http://www.codecogs.com/eqnedit.php?latex=P(Y=0|x)=1-P(Y=1|x))
+ [![](../_assets/公式_20180709113237.png)](http://www.codecogs.com/eqnedit.php?latex=P(Y=0|x)=1-P(Y=1|x))
> 简洁起见,省略了偏置 `b`;也可以看做将偏置扩充到了权重中
**其中**
-
+
- [![](../assets/公式_20180709113801.png)](http://www.codecogs.com/eqnedit.php?latex=x\in&space;\mathbf{R}^n,Y\in&space;\left&space;\{&space;0,1&space;\right&space;\})
+ [![](../_assets/公式_20180709113801.png)](http://www.codecogs.com/eqnedit.php?latex=x\in&space;\mathbf{R}^n,Y\in&space;\left&space;\{&space;0,1&space;\right&space;\})
- 通常会将以上两个分布记作:
- [![](../assets/公式_20180709153307.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&P(Y=1|x)={\color{Blue}&space;\sigma(x)}\\&space;&P(Y=0|x)={\color{Blue}&space;1-\sigma(x)}&space;\end{aligned})
+ [![](../_assets/公式_20180709153307.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&P(Y=1|x)={\color{Blue}&space;\sigma(x)}\\&space;&P(Y=0|x)={\color{Blue}&space;1-\sigma(x)}&space;\end{aligned})
> 《统计学习方法》 6.1 逻辑斯蒂回归模型
>> 原书中记作 `π(x)` 和 `1-π(x)`,这里为了跟神经网络中统一,使用 `σ`
@@ -177,24 +177,24 @@
- 给定训练集 `T={(x1,y1),..,(xN,yN)}`,其中 `x ∈ R^n, y ∈ {0, 1}`
1. **逻辑斯蒂回归**的定义:
- [![](../assets/公式_20180709161030.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&P(Y=1|x)={\color{Blue}&space;\sigma(x)}\\&space;&P(Y=0|x)={\color{Blue}&space;1-\sigma(x)}&space;\end{aligned})
+ [![](../_assets/公式_20180709161030.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&P(Y=1|x)={\color{Blue}&space;\sigma(x)}\\&space;&P(Y=0|x)={\color{Blue}&space;1-\sigma(x)}&space;\end{aligned})
2. **负对数函数**作为损失函数:
- [![](../assets/公式_20180713114855.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w)&=-\log\left&space;(&space;\prod_{i=1}^N&space;[{\color{Red}&space;\sigma(x_i)}]^{{\color{Blue}&space;y_i}}&space;[{\color{Red}&space;1-&space;\sigma(x_i)}]^{{\color{Blue}&space;1-y_i}}&space;\right&space;)\\&space;&=-\sum_{i=1}^N&space;\left&space;[&space;y_i\log\sigma(x_i)+(1-y_i)\log(1-\sigma(x_i))&space;\right&space;]\\&space;&=-\sum_{i=1}^N&space;\left&space;[&space;y_i\log\frac{\sigma(x_i)}{1-\sigma(x_i)}+\log(1-\sigma(x_i))&space;\right&space;]&space;\end{aligned})
+ [![](../_assets/公式_20180713114855.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w)&=-\log\left&space;(&space;\prod_{i=1}^N&space;[{\color{Red}&space;\sigma(x_i)}]^{{\color{Blue}&space;y_i}}&space;[{\color{Red}&space;1-&space;\sigma(x_i)}]^{{\color{Blue}&space;1-y_i}}&space;\right&space;)\\&space;&=-\sum_{i=1}^N&space;\left&space;[&space;y_i\log\sigma(x_i)+(1-y_i)\log(1-\sigma(x_i))&space;\right&space;]\\&space;&=-\sum_{i=1}^N&space;\left&space;[&space;y_i\log\frac{\sigma(x_i)}{1-\sigma(x_i)}+\log(1-\sigma(x_i))&space;\right&space;]&space;\end{aligned})
进一步代入 `σ(x)` 有:
- [![](../assets/公式_20180713131851.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w)&=-\sum_{i=1}^N&space;\left&space;[&space;{\color{Blue}&space;y_i}(w{\color{Red}&space;x_i})-\log(1+\exp(w{\color{Red}&space;x_i}))&space;\right&space;]&space;\end{aligned})
+ [![](../_assets/公式_20180713131851.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w)&=-\sum_{i=1}^N&space;\left&space;[&space;{\color{Blue}&space;y_i}(w{\color{Red}&space;x_i})-\log(1+\exp(w{\color{Red}&space;x_i}))&space;\right&space;]&space;\end{aligned})
3. **求梯度**
- [![](../assets/公式_20180713132107.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;L(w)}{\partial&space;w}&=-\sum_{i=1}^N&space;\left&space;[&space;y_ix_i-\frac{\exp(wx_i)}{1+\exp(wx_i)}x_i&space;\right&space;]\\&space;&=\sum_{i=1}^N&space;[\sigma&space;(x_i)-y_i]x_i&space;\end{aligned})
+ [![](../_assets/公式_20180713132107.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;L(w)}{\partial&space;w}&=-\sum_{i=1}^N&space;\left&space;[&space;y_ix_i-\frac{\exp(wx_i)}{1+\exp(wx_i)}x_i&space;\right&space;]\\&space;&=\sum_{i=1}^N&space;[\sigma&space;(x_i)-y_i]x_i&space;\end{aligned})
4. 使用**梯度下降法**求解参数
> 深度学习/[梯度下降法](../深度学习/README.md#梯度下降法)
## 多分类逻辑斯蒂回归模型 TODO
- 设 `Y ∈ {1,2,..K}`,则多项式逻辑斯蒂回归模型为:
- [![](../assets/公式_20180709162840.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;P(Y=k|x)&=\frac{\exp(w_kx)}{1+\sum_{k=1}^{K-1}&space;\exp(w_kx)}&space;\quad&space;k=1,2,..,K-1&space;\\&space;P(Y=K|x)&=\frac{1}{1+\sum_{k=1}^{K-1}\exp(w_kx)}&space;\end{aligned})
+ [![](../_assets/公式_20180709162840.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;P(Y=k|x)&=\frac{\exp(w_kx)}{1+\sum_{k=1}^{K-1}&space;\exp(w_kx)}&space;\quad&space;k=1,2,..,K-1&space;\\&space;P(Y=K|x)&=\frac{1}{1+\sum_{k=1}^{K-1}\exp(w_kx)}&space;\end{aligned})
- 类似 `Softmax`
# 支持向量机
@@ -227,7 +227,7 @@
> 机器学习技法 (1-5) - 林轩田
- 相当于在**最小化权重**时对训练误差进行了约束——对比 L2 范数正则化,则是在最小化训练误差时,对权重进行约束
- ![](../assets/TIM截图20180710112848.png)
+ ![](../_assets/TIM截图20180710112848.png)
> 与 L2 正则化的区别
- 相当于**限制了模型复杂度**——在一定程度上防止过拟合,具有更强的泛化能力
@@ -245,20 +245,20 @@
---
- 训练集 `T`
- [![](../assets/公式_20180713132400.png)](http://www.codecogs.com/eqnedit.php?latex=T=\left&space;\{&space;(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)&space;\right&space;\})
+ [![](../_assets/公式_20180713132400.png)](http://www.codecogs.com/eqnedit.php?latex=T=\left&space;\{&space;(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)&space;\right&space;\})
- **分离超平面** `(w,b)`
- [![](../assets/公式_20180713111647.png)](http://www.codecogs.com/eqnedit.php?latex=w^*\cdot&space;x+b^*=0)
+ [![](../_assets/公式_20180713111647.png)](http://www.codecogs.com/eqnedit.php?latex=w^*\cdot&space;x+b^*=0)
如果使用映射函数,那么分离超平面为
- [![](../assets/公式_20180713111746.png)](http://www.codecogs.com/eqnedit.php?latex=w^*\cdot&space;\Phi&space;(x)+b^*=0)
+ [![](../_assets/公式_20180713111746.png)](http://www.codecogs.com/eqnedit.php?latex=w^*\cdot&space;\Phi&space;(x)+b^*=0)
> 映射函数 `Φ(x)` 定义了从输入空间到特征空间的变换,特征空间通常是更高维的,甚至无穷维;方便起见,这里假设 `Φ(x)` 做的是恒等变换。
- 分类决策函数 `f(x)`
- [![](../assets/公式_20180713132655.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=\mathrm{sign}(w^*\cdot&space;x+b^*))
+ [![](../_assets/公式_20180713132655.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=\mathrm{sign}(w^*\cdot&space;x+b^*))
**SVM 标准问题的推导**(2)
---
@@ -266,23 +266,23 @@
给定训练集`T`和超平面`(w,b)`,定义**函数间隔`γ^`**:
- [![](../assets/公式_20180713134514.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\hat{\gamma}&=\underset{i=1,\cdots,N}{\min}\,y_i(wx_i+b)&space;\\&space;&=\underset{i=1,\cdots,N}{\min}\,\hat{\gamma}_i\end{aligned})
+ [![](../_assets/公式_20180713134514.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\hat{\gamma}&=\underset{i=1,\cdots,N}{\min}\,y_i(wx_i+b)&space;\\&space;&=\underset{i=1,\cdots,N}{\min}\,\hat{\gamma}_i\end{aligned})
对 `w` 作规范化,使函数间隔成为**几何间隔`γ`**
- [![](../assets/公式_20180713134322.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\gamma&=\underset{i=1,\cdots,N}{\min}\,y_i(\frac{w}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}x_i+\frac{b}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}})\\&space;&=\underset{i=1,\cdots,N}{\min}\,\frac{\gamma_i}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}&space;\end{aligned})
+ [![](../_assets/公式_20180713134322.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\gamma&=\underset{i=1,\cdots,N}{\min}\,y_i(\frac{w}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}x_i+\frac{b}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}})\\&space;&=\underset{i=1,\cdots,N}{\min}\,\frac{\gamma_i}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}&space;\end{aligned})
1. **最大化几何间隔**
- [![](../assets/公式_20180713142726.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&{\color{Red}&space;\underset{w,b}{\max}}&space;\quad\gamma&space;\\&space;&\&space;\mathrm{s.t.}\quad\,&space;y_i(\frac{w}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}x_i+\frac{b}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}})&space;\geq&space;\gamma,\quad&space;i=1,2,\cdots,N&space;\end{aligned})
+ [![](../_assets/公式_20180713142726.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&{\color{Red}&space;\underset{w,b}{\max}}&space;\quad\gamma&space;\\&space;&\&space;\mathrm{s.t.}\quad\,&space;y_i(\frac{w}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}x_i+\frac{b}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}})&space;\geq&space;\gamma,\quad&space;i=1,2,\cdots,N&space;\end{aligned})
由函数间隔与几何间隔的关系,等价于
- [![](../assets/公式_20180808201943.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&\underset{w,b}{\max}&space;\quad{\color{Red}&space;\frac{\hat{\gamma}}{\left&space;|&space;w&space;\right&space;|}}&space;\&space;&&space;\mathrm{s.t.}\quad,&space;y_i(wx_i+b)&space;\geq&space;{\color{Red}&space;\hat{\gamma}},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
+ [![](../_assets/公式_20180808201943.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&\underset{w,b}{\max}&space;\quad{\color{Red}&space;\frac{\hat{\gamma}}{\left&space;|&space;w&space;\right&space;|}}&space;\&space;&&space;\mathrm{s.t.}\quad,&space;y_i(wx_i+b)&space;\geq&space;{\color{Red}&space;\hat{\gamma}},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
函数间隔`γ^`的取值不会影响最终的超平面`(w,b)`:取`γ^=1`;又最大化 `1/||w||` 等价于最小化`1/2*||w||^2`,于是有
- [![](../assets/公式_20180713143622.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&{\color{Red}&space;\underset{w,b}{\max}&space;}&space;\quad\frac{\hat{\gamma}}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}&space;\\&space;&\&space;\mathrm{s.t.}\quad\,&space;y_i(wx_i+b)&space;\geq&space;\hat{\gamma}_i,\quad&space;i=1,2,\cdots,N&space;\end{aligned})
+ [![](../_assets/公式_20180713143622.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&{\color{Red}&space;\underset{w,b}{\max}&space;}&space;\quad\frac{\hat{\gamma}}{{\color{Red}&space;\left&space;\|&space;w&space;\right&space;\|}}&space;\\&space;&\&space;\mathrm{s.t.}\quad\,&space;y_i(wx_i+b)&space;\geq&space;\hat{\gamma}_i,\quad&space;i=1,2,\cdots,N&space;\end{aligned})
> 为什么令`γ^=1`?——比例改变`(ω,b)`,超平面不会改变,但函数间隔`γ^`会成比例改变,因此可以通过等比例改变`(ω,b)`使函数间隔`γ^=1`
- 该约束最优化问题即为**线性支持向量机**的标准问题——这是一个**凸二次优化**问题,可以使用商业 QP 代码完成。
@@ -293,50 +293,50 @@
---
1. 构建**拉格朗日函数**
- [![](../assets/公式_20180713202306.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w,b,{\color{Red}&space;\alpha})=&\frac{1}{2}w^Tw-\sum_{i=1}^N{\color{Red}&space;\alpha_i}[y_i(w^Tx_i+b)-1]\\&space;&{\color{Red}&space;\alpha_i&space;\geq&space;0},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
+ [![](../_assets/公式_20180713202306.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w,b,{\color{Red}&space;\alpha})=&\frac{1}{2}w^Tw-\sum_{i=1}^N{\color{Red}&space;\alpha_i}[y_i(w^Tx_i+b)-1]\\&space;&{\color{Red}&space;\alpha_i&space;\geq&space;0},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
1. 标准问题是求极小极大问题:
- [![](../assets/公式_20180713152150.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;{\color{Red}&space;\underset{w,b}{\min}}\&space;{\color{Blue}&space;\underset{\alpha}{\max}}\&space;L(w,b,\alpha)&space;\end{aligned})
+ [![](../_assets/公式_20180713152150.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;{\color{Red}&space;\underset{w,b}{\min}}\&space;{\color{Blue}&space;\underset{\alpha}{\max}}\&space;L(w,b,\alpha)&space;\end{aligned})
其对偶问题为:
- [![](../assets/公式_20180713152255.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;{\color{Blue}&space;\underset{\alpha}{\max}}\&space;{\color{Red}&space;\underset{w,b}{\min}}\&space;L(w,b,\alpha)&space;\end{aligned})
+ [![](../_assets/公式_20180713152255.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;{\color{Blue}&space;\underset{\alpha}{\max}}\&space;{\color{Red}&space;\underset{w,b}{\min}}\&space;L(w,b,\alpha)&space;\end{aligned})
1. 求 `L` 对 `(w,b)` 的极小
- [![](../assets/公式_20180713193142.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\mathrm{set}\quad&space;\frac{\partial&space;L}{\partial&space;w}=0&space;\;\;&\Rightarrow\;&space;w-\sum_{i=1}^N&space;{\color{Red}&space;\alpha_i&space;y_i&space;x_i}=0\\&space;&\Rightarrow\;&space;w=\sum_{i=1}^N&space;{\color{Red}&space;\alpha_i&space;y_i&space;x_i}&space;\end{aligned})
+ [![](../_assets/公式_20180713193142.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\mathrm{set}\quad&space;\frac{\partial&space;L}{\partial&space;w}=0&space;\;\;&\Rightarrow\;&space;w-\sum_{i=1}^N&space;{\color{Red}&space;\alpha_i&space;y_i&space;x_i}=0\\&space;&\Rightarrow\;&space;w=\sum_{i=1}^N&space;{\color{Red}&space;\alpha_i&space;y_i&space;x_i}&space;\end{aligned})
- [![](../assets/公式_20180713193328.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\mathrm{set}\quad&space;\frac{\partial&space;L}{\partial&space;b}=0&space;\;\;&\Rightarrow\;&space;\sum_{i=1}^N&space;{\color{Red}&space;\alpha_i&space;y_i}=0&space;\end{aligned})
+ [![](../_assets/公式_20180713193328.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\mathrm{set}\quad&space;\frac{\partial&space;L}{\partial&space;b}=0&space;\;\;&\Rightarrow\;&space;\sum_{i=1}^N&space;{\color{Red}&space;\alpha_i&space;y_i}=0&space;\end{aligned})
结果代入`L`,有:
- [![](../assets/公式_20180713195055.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w,b,{\color{Red}&space;\alpha})&space;&=\frac{1}{2}w^Tw-\sum_{i=1}^N{\color{Red}&space;\alpha_i}[y_i(w^Tx_i+b)-1]\\&space;&=\frac{1}{2}w^Tw-w^T\sum_{i=1}^N&space;\alpha_iy_ix_i-b\sum_{i=1}^N&space;\alpha_iy_i+\sum_{i=1}^N&space;\alpha_i\\&space;&=\frac{1}{2}w^Tw-w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;{\color{Red}&space;x_i^Tx_j}+\sum_{i=1}^N&space;\alpha_i&space;\end{aligned})
+ [![](../_assets/公式_20180713195055.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w,b,{\color{Red}&space;\alpha})&space;&=\frac{1}{2}w^Tw-\sum_{i=1}^N{\color{Red}&space;\alpha_i}[y_i(w^Tx_i+b)-1]\\&space;&=\frac{1}{2}w^Tw-w^T\sum_{i=1}^N&space;\alpha_iy_ix_i-b\sum_{i=1}^N&space;\alpha_iy_i+\sum_{i=1}^N&space;\alpha_i\\&space;&=\frac{1}{2}w^Tw-w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;{\color{Red}&space;x_i^Tx_j}+\sum_{i=1}^N&space;\alpha_i&space;\end{aligned})
即
- [![](../assets/公式_20180713195135.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w,b,{\color{Red}&space;\alpha})&space;&=\frac{1}{2}w^Tw-\sum_{i=1}^N{\color{Red}&space;\alpha_i}[y_i(w^Tx_i+b)-1]\\&space;&=\frac{1}{2}w^Tw-w^T\sum_{i=1}^N&space;\alpha_iy_ix_i-b\sum_{i=1}^N&space;\alpha_iy_i+\sum_{i=1}^N&space;\alpha_i\\&space;&=\frac{1}{2}w^Tw-w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;{\color{Red}&space;x_i^Tx_j}+\sum_{i=1}^N&space;\alpha_i&space;\end{aligned})
+ [![](../_assets/公式_20180713195135.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;L(w,b,{\color{Red}&space;\alpha})&space;&=\frac{1}{2}w^Tw-\sum_{i=1}^N{\color{Red}&space;\alpha_i}[y_i(w^Tx_i+b)-1]\\&space;&=\frac{1}{2}w^Tw-w^T\sum_{i=1}^N&space;\alpha_iy_ix_i-b\sum_{i=1}^N&space;\alpha_iy_i+\sum_{i=1}^N&space;\alpha_i\\&space;&=\frac{1}{2}w^Tw-w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}w^Tw+\sum_{i=1}^N&space;\alpha_i\\&space;&=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;{\color{Red}&space;x_i^Tx_j}+\sum_{i=1}^N&space;\alpha_i&space;\end{aligned})
1. 求 `L` 对 `α` 的极大,即
- [![](../assets/公式_20180713200756.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&\underset{\alpha}{\max}&space;\quad&space;-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;x_i^Tx_j+\sum_{i=1}^N&space;\alpha_i\\&space;&\&space;\mathrm{s.t.}\quad\;&space;\sum_{i=1}^N&space;\alpha_i&space;y_i=0,\&space;\&space;{\color{Red}&space;\alpha_i&space;\geq&space;0},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
+ [![](../_assets/公式_20180713200756.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&\underset{\alpha}{\max}&space;\quad&space;-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;x_i^Tx_j+\sum_{i=1}^N&space;\alpha_i\\&space;&\&space;\mathrm{s.t.}\quad\;&space;\sum_{i=1}^N&space;\alpha_i&space;y_i=0,\&space;\&space;{\color{Red}&space;\alpha_i&space;\geq&space;0},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
该问题的对偶问题为:
- [![](../assets/公式_20180713200840.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&{\color{Red}&space;\underset{\alpha}{\min}&space;}&space;\quad\&space;\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;x_i^Tx_j-\sum_{i=1}^N&space;\alpha_i\\&space;&\&space;\mathrm{s.t.}\quad\;&space;\sum_{i=1}^N&space;\alpha_i&space;y_i=0,\&space;\&space;{\color{Red}&space;\alpha_i&space;\geq&space;0},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
+ [![](../_assets/公式_20180713200840.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&{\color{Red}&space;\underset{\alpha}{\min}&space;}&space;\quad\&space;\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N&space;\alpha_i\alpha_j\cdot&space;y_iy_j\cdot&space;x_i^Tx_j-\sum_{i=1}^N&space;\alpha_i\\&space;&\&space;\mathrm{s.t.}\quad\;&space;\sum_{i=1}^N&space;\alpha_i&space;y_i=0,\&space;\&space;{\color{Red}&space;\alpha_i&space;\geq&space;0},\quad&space;i=1,2,\cdots,N&space;\end{aligned})
于是,标准问题最后等价于求解该**对偶问题**
> 继续求解该优化问题,有 [SMO 方法](https://blog.csdn.net/ajianyingxiaoqinghan/article/details/73087304#t11);因为《统计学习方法》也只讨论到这里,故推导也止于此
1. 设 `α` 的解为 `α*`,则存在下标`j`使`α_j > 0`,可得标准问题的解为:
- [![](../assets/公式_20180713203827.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;w^*&=\sum_{i=1}^N&space;\alpha_i^*y_ix_i\\&space;b^*&={\color{Red}&space;y_j}-\sum_{i=1}^N&space;\alpha_i^*y_i(x_i^T{\color{Red}&space;x_j})&space;\end{aligned})
+ [![](../_assets/公式_20180713203827.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;w^*&=\sum_{i=1}^N&space;\alpha_i^*y_ix_i\\&space;b^*&={\color{Red}&space;y_j}-\sum_{i=1}^N&space;\alpha_i^*y_i(x_i^T{\color{Red}&space;x_j})&space;\end{aligned})
可得分离超平面及分类决策函数为:
- [![](../assets/公式_20180713111647.png)](http://www.codecogs.com/eqnedit.php?latex=w^*\cdot&space;x+b^*=0)
+ [![](../_assets/公式_20180713111647.png)](http://www.codecogs.com/eqnedit.php?latex=w^*\cdot&space;x+b^*=0)
- [![](../assets/公式_20180713132655.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=\mathrm{sign}(w^*\cdot&space;x+b^*))
+ [![](../_assets/公式_20180713132655.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=\mathrm{sign}(w^*\cdot&space;x+b^*))
# 决策树
@@ -361,12 +361,12 @@
### CART 回归树算法推导
- 一个回归树对应着输入空间/**特征空间**的一个**划分**以及在划分单元上的**输出值**;
- 假设已将输入空间划分为 `M` 个单元:`{R_1,..,R_m,..,R_M}`,并在每个单元上对应有输出值 `c_m`,则该回归树可表示为
-
+
> `I(x)` 为指示函数
- **如果已经划分好了输入空间**,通常使用**平方误差**作为损失函数来表示回归树对于训练数据的预测误差,通过最小化损失函数来求解每个划分单元的**最优输出值**。
- 如果使用**平方误差**,易知**最优输出值**即每个划分单元上所有实例的均值
-
+
> 选用**平方误差**作为损失的原因
@@ -375,18 +375,18 @@
- 一个启发式方法是:**以特征向量中的某一个特征为标准进行切分**。
假设选择**特征向量中第 `j` 个变量**作为**切分变量**,然后选择**某个实例中第 `j` 个值 `s`** 作为**切分点**,则定义如下两个划分单元
-
+
> 原书中这里表述不够清楚,需要结合 8.4.2 节中的示例一起看。
- 遍历**每个实例**的第`j`个值`s`,选择满足以下条件的作为**最优切分变量`j`和切分点`s`**
-
+
其中输出值 `c1` 和 `c2` 分别为
-
+
> 示例: [选择切分变量与切分点](#示例-选择切分变量与切分点)
- 接着,继续对两个子空间重复以上步骤,直到满足条件为止;得到将输入空间划分为`M`个区域的决策树
-
+
### 示例: 选择切分变量与切分点
> 《统计学习方法》 8.4.2
@@ -402,7 +402,7 @@
>
> 最后一个点无法将数据划分为两个空间,所以不需要
- 以 `s=1` 为例
-
+
所有 `m(s)` 的计算结果如下
@@ -411,10 +411,10 @@
m(s)|15.72|12.07|8.36|5.78|3.91|1.93|8.01|11.73|15.74
- 当 `s=6` 时 `m(s)` 达到最小值,此时
-
+
- 所以第一棵决策树为
-
+
# 集成学习
@@ -457,60 +457,60 @@
1. 初始化训练数据的全职分布
- [![](../assets/公式_20180715133122.png)](http://www.codecogs.com/eqnedit.php?latex=D_1=(w_{1,1},\cdots,w_{1,i},\cdots,w_{1,N}),\quad&space;w_{1,i}=\frac{1}{N},\quad&space;i=1,2,\cdots,N)
+ [![](../_assets/公式_20180715133122.png)](http://www.codecogs.com/eqnedit.php?latex=D_1=(w_{1,1},\cdots,w_{1,i},\cdots,w_{1,N}),\quad&space;w_{1,i}=\frac{1}{N},\quad&space;i=1,2,\cdots,N)
1. 对 `m=1,2,..,M`
1. 使用权值分布为`D_m`的训练集,得到基分类器:
- [![](../assets/公式_20180715132515.png)](http://www.codecogs.com/eqnedit.php?latex=G_m(x):\chi&space;\rightarrow&space;\{-1,+1\})
+ [![](../_assets/公式_20180715132515.png)](http://www.codecogs.com/eqnedit.php?latex=G_m(x):\chi&space;\rightarrow&space;\{-1,+1\})
1. 计算 `G_m(x)` 在训练集上的分类误差率
- [![](../assets/公式_20180715142042.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;e_m&=P(G_m(x_i)\neq&space;y_i)\\&=\sum_{i=1}^Nw_{m,i}\cdot&space;{\color{Red}&space;I(G_m(x_i)\neq&space;y_i)}&space;\end{aligned})
+ [![](../_assets/公式_20180715142042.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;e_m&=P(G_m(x_i)\neq&space;y_i)\\&=\sum_{i=1}^Nw_{m,i}\cdot&space;{\color{Red}&space;I(G_m(x_i)\neq&space;y_i)}&space;\end{aligned})
> `I(x)` 为指示函数:若`G(x)!=y`为真,则`I(G(x)!=y)=1`,反之为 `0`
>
> 实际上分类误差率就等于所有**分类错误的数据的权值之和**
1. 计算 `G_m(x)` 的系数
- [![](../assets/公式_20180715133256.png)](http://www.codecogs.com/eqnedit.php?latex=\alpha_m=\frac{1}{2}\ln\frac{1-e_m}{e_m})
+ [![](../_assets/公式_20180715133256.png)](http://www.codecogs.com/eqnedit.php?latex=\alpha_m=\frac{1}{2}\ln\frac{1-e_m}{e_m})
1. 更新训练集的权值分布
-
-
- [![](../assets/公式_20180715140328.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;D_{{\color{Red}m+1}}&=(w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N})\\&space;w_{{\color{Red}m+1},i}&=\frac{w_{{\color{Red}m},i}\cdot\exp(-\alpha_{\color{Red}m}\cdot{\color{Blue}y_iG_m(x_i)&space;})}{Z_{\color{Red}m}}&space;\end{aligned})
+
+
+ [![](../_assets/公式_20180715140328.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;D_{{\color{Red}m+1}}&=(w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N})\\&space;w_{{\color{Red}m+1},i}&=\frac{w_{{\color{Red}m},i}\cdot\exp(-\alpha_{\color{Red}m}\cdot{\color{Blue}y_iG_m(x_i)&space;})}{Z_{\color{Red}m}}&space;\end{aligned})
其中 `Z_m` 为**规范化因子**,使 `D_m+1` 成为一个**概率分布**,类似 `Softmax` 函数
-
+
因为 `y, G(x) ∈ {-1, 1}`,所以实际上
- [![](../assets/公式_20180715134916.png)](http://www.codecogs.com/eqnedit.php?latex={\color{Blue}y_iG_m(x_i)&space;}=\left\{\begin{matrix}&space;1,&&space;G_m(x_i)=y_i&space;\\&space;-1,&&space;G_m(x_i)\neq&space;y_i&space;\end{matrix}\right.)
+ [![](../_assets/公式_20180715134916.png)](http://www.codecogs.com/eqnedit.php?latex={\color{Blue}y_iG_m(x_i)&space;}=\left\{\begin{matrix}&space;1,&&space;G_m(x_i)=y_i&space;\\&space;-1,&&space;G_m(x_i)\neq&space;y_i&space;\end{matrix}\right.)
因此 `w_{m+1,i}` 也可以写作
- [![](../assets/公式_20180715135945.png)](http://www.codecogs.com/eqnedit.php?latex=\dpi{120}&space;w_{m+1,i}=\left\{\begin{matrix}&space;\frac{w_{m,i}}{Z_m}e^{\color{Red}&space;{-\alpha_m}},&space;&&space;G_m(x_i)=y_i&space;\\&space;\frac{w_{m,i}}{Z_m}e^{\color{Red}&space;{\alpha_m}},&&space;G_m(x_i)\neq&space;y_i&space;\end{matrix}\right.)
+ [![](../_assets/公式_20180715135945.png)](http://www.codecogs.com/eqnedit.php?latex=\dpi{120}&space;w_{m+1,i}=\left\{\begin{matrix}&space;\frac{w_{m,i}}{Z_m}e^{\color{Red}&space;{-\alpha_m}},&space;&&space;G_m(x_i)=y_i&space;\\&space;\frac{w_{m,i}}{Z_m}e^{\color{Red}&space;{\alpha_m}},&&space;G_m(x_i)\neq&space;y_i&space;\end{matrix}\right.)
1. 构建基学习器的**线性组合**
- [![](../assets/公式_20180715141210.png)](http://www.codecogs.com/eqnedit.php?latex=G(x)=\mathrm{sign}(\sum_{m=1}^M\alpha_mG_m(x)))
+ [![](../_assets/公式_20180715141210.png)](http://www.codecogs.com/eqnedit.php?latex=G(x)=\mathrm{sign}(\sum_{m=1}^M\alpha_mG_m(x)))
### AdaBoost 算法要点说明
- 开始时,训练集中所有数据具有均匀的权值分布
- 计算分类误差率,实际上就是计算所有分类错误的数据的权值之和
- `G_m(x)` 的系数 `α_m` 表示该学习器在最终学习器中的重要性;公式
- [![](../assets/公式_20180715133256.png)](http://www.codecogs.com/eqnedit.php?latex=\alpha_m=\frac{1}{2}\ln\frac{1-e_m}{e_m}) 表明当分类错误率 `e_m <= 1/2` 时,`α_m >= 0`,并且 `α_m` 随 `e_m` 的减小而增大
+ [![](../_assets/公式_20180715133256.png)](http://www.codecogs.com/eqnedit.php?latex=\alpha_m=\frac{1}{2}\ln\frac{1-e_m}{e_m}) 表明当分类错误率 `e_m <= 1/2` 时,`α_m >= 0`,并且 `α_m` 随 `e_m` 的减小而增大
- 被基分类器分类错误的样本权值会扩大,而分类正确的权值会缩小——**不改变训练数据,而不断改变训练数据权值的分布,使训练数据在基学习器的学习中起到不同的作用**,这是 AdaBoost 的一个特点。
## 前向分步算法
### 加法模型
- 定义加法模型:
- [![](../assets/公式_20180715212915.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=\sum_{m=1}^M\beta_m\,b(x;\gamma_m))
+ [![](../_assets/公式_20180715212915.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=\sum_{m=1}^M\beta_m\,b(x;\gamma_m))
其中`b(x;γ)`为基函数,`γ`为基函数的参数;`β`为基函数的系数
- 在给定训练数据和损失函数`L(y,f(x))`的情况下,学习加法模型相当于损失函数的最小化问题
- [![](../assets/公式_20180715230941.png)](http://www.codecogs.com/eqnedit.php?latex={\color{Red}&space;\underset{\beta_m,\gamma_m}{\min}}\sum_{i=1}^N&space;L\left&space;(&space;y_i,{\color{Blue}&space;\sum_{m=1}^M\beta_m\,b(x;\gamma_m)}&space;\right&space;))
+ [![](../_assets/公式_20180715230941.png)](http://www.codecogs.com/eqnedit.php?latex={\color{Red}&space;\underset{\beta_m,\gamma_m}{\min}}\sum_{i=1}^N&space;L\left&space;(&space;y_i,{\color{Blue}&space;\sum_{m=1}^M\beta_m\,b(x;\gamma_m)}&space;\right&space;))
### 前向分步算法描述
前向分步算法求解加法模型的想法是:如果能够从前向后,每一步只学习一个基函数及其系数,逐步优化目标函数
@@ -520,14 +520,14 @@
1. 对 `m=1,2,..,M`
1. 极小化损失函数,得到 `(β_m,γ_m)`
- [![](../assets/公式_20180716142855.png)](http://www.codecogs.com/eqnedit.php?latex=(\beta_m,\gamma_m)=\arg\underset{\beta,\gamma}{\min}\sum_{i=1}^NL\left&space;(&space;y_i,{\color{Red}&space;f_{m-1}(x_i)+\beta&space;b(x_i;\gamma)}&space;\right&space;))
+ [![](../_assets/公式_20180716142855.png)](http://www.codecogs.com/eqnedit.php?latex=(\beta_m,\gamma_m)=\arg\underset{\beta,\gamma}{\min}\sum_{i=1}^NL\left&space;(&space;y_i,{\color{Red}&space;f_{m-1}(x_i)+\beta&space;b(x_i;\gamma)}&space;\right&space;))
1. 更新模型 `f_m(x)`
- [![](../assets/公式_20180716143232.png)](http://www.codecogs.com/eqnedit.php?latex=f_m(x)={\color{Red}&space;f_{m-1}(x)+\beta&space;b(x;\gamma)})
+ [![](../_assets/公式_20180716143232.png)](http://www.codecogs.com/eqnedit.php?latex=f_m(x)={\color{Red}&space;f_{m-1}(x)+\beta&space;b(x;\gamma)})
1. 得到加法模型
- [![](../assets/公式_20180716143509.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=f_M(x)={\color{Red}&space;\sum_{m=1}^M}{\color{Blue}&space;\beta_m}b(x;\gamma_m))
+ [![](../_assets/公式_20180716143509.png)](http://www.codecogs.com/eqnedit.php?latex=f(x)=f_M(x)={\color{Red}&space;\sum_{m=1}^M}{\color{Blue}&space;\beta_m}b(x;\gamma_m))
- 前向分步算法将**同时**求解`m=1,2,..,M`所有参数`(β_m,γ_m)`的问题**简化**为**逐次**求解各`(β_m,γ_m)`的优化问题——思想上有点像**梯度下降**
@@ -543,13 +543,13 @@
- 以**决策树**为基学习器,对分类问题使用二叉分类树,回归问题使用二叉回归树。
- 解决回归问题时,通过不断拟合残差得到新的树。
- 提升树模型可表示为**决策树的加法模型**:
-
+
- 首先初始化提升树 `f_0(x)=0`,则第 m 步的模型为
-
+
- 然后通过最小化损失函数决定下一个决策树的参数
-
+
- 对于二分类问题,提升树算法只需要将[AdaBoost 算法](#adaboost-算法描述)中的基学习器限制为二叉分类树即可
@@ -560,17 +560,17 @@
1. 初始化 `f_0(x)=0`
1. 对 `m=1,2,..,M`
1. 计算**残差**
-
+
1. **拟合残差**学习下一个回归树的参数
-
+
> [回归树算法推导](#回归树算法推导) TODO
1. 更新 `f_m(x)`
-
+
1. 得到回归提升树
-
+
- 以平凡损失为例 TODO
@@ -582,23 +582,23 @@
- 输入:训练集 `T={(x1,y1),..,(xN,yN)}, xi ∈ R^n, yi ∈ R`;损失函数 `L(y,f(x))`;
- 输出:回归树 `f_M(x)`
1. 初始化回归树
-
+
1. 对 `m=1,2,..,M`
1. 对 `i=1,2,..,N`,计算残差/负梯度
-
+
1. 对 `r_mi` 拟合一个回归树,得到第 `m` 棵树的叶节点区域
-
+
> [CART 回归树算法推导](#cart-回归树算法推导)
1. 对 `j=1,2,..,J`,计算
-
+
1. 更新回归树
-
+
1. 得到回归树
-
+
- 说明:
- 算法第 1 步初始化,估计使损失函数最小的常数值,得到一棵只有一个根节点的树
@@ -616,12 +616,12 @@
### XGBoost 与 GB 的主要区别
> [Introduction to Boosted Trees](http://xgboost.readthedocs.io/en/latest/model.html) — xgboost 0.72 documentation
- 首先,定义一棵树 `f(x)` 为
-
+
> Here `w` is the vector of scores on leaves, `q` is a function assigning each data point to the corresponding leaf, and `T` is the number of leaves.
- 对损失函数加入**正则项**,包括 L2 权重衰减和对叶子数的限制
-
+
- 使用**牛顿法**代替**梯度下降法**寻找最优解
@@ -629,7 +629,7 @@
- 传统 CART树寻找最优切分点的标准是**最小化均方差**;
XGBoost 通过最大化**得分公式**来寻找最优切分点:
-
+
> This formula can be decomposed as 1). the score on the new left leaf 2). the score on the new right leaf 3). The score on the original leaf 4). regularization on the additional leaf.
@@ -656,7 +656,7 @@ TODO
- Box–Muller 变换定理:
假设随机变量`U1`和`U2`是 IID(独立同分布) 的,且 `U1,U2 ∽ U(0,1)`,令`Z1,Z2`满足
-
+
则 `Z1,Z2 ∽ N(0, 1)`,即 `Z1,Z2` 服从标准正态分布。
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-B-\344\270\223\351\242\230-\351\233\206\346\210\220\345\255\246\344\271\240.md" "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/B-\344\270\223\351\242\230-\351\233\206\346\210\220\345\255\246\344\271\240.md"
similarity index 97%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-B-\344\270\223\351\242\230-\351\233\206\346\210\220\345\255\246\344\271\240.md"
rename to "A-\346\234\272\345\231\250\345\255\246\344\271\240/B-\344\270\223\351\242\230-\351\233\206\346\210\220\345\255\246\344\271\240.md"
index f8412b54..c6c89237 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-B-\344\270\223\351\242\230-\351\233\206\346\210\220\345\255\246\344\271\240.md"
+++ "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/B-\344\270\223\351\242\230-\351\233\206\346\210\220\345\255\246\344\271\240.md"
@@ -53,7 +53,7 @@ Index
- 基于每个采样集训练一个基学习器,并得到 `T` 个基学习器;
- 预测时,集体**投票决策****。
> **自助采样法**:对 m 个样本的训练集,有放回的采样 m 次;此时,样本在 m 次采样中始终没被采样的概率约为 `0.368`,即每次自助采样只能采样到全部样本的 `63%` 左右。
-
+
- **特点**:
- 训练每个基学习器时只使用一部分样本;
@@ -122,7 +122,7 @@ Index
- 对 `n` 个**独立不相关的模型**预测结果取平均,方差是原来的 `1/n`;
- 假设所有基分类器出错的概率是独立的,**超过半数**基分类器出错的概率会随着基分类器的数量增加而下降。
- 泛化误差、偏差、方差、过拟合、欠拟合、模型复杂度(模型容量)的关系图:
-
+
## AdaBoost 算法
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/Base-A-\346\234\257\350\257\255\350\241\250.md" "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/Base-A-\346\234\257\350\257\255\350\241\250.md"
similarity index 80%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/Base-A-\346\234\257\350\257\255\350\241\250.md"
rename to "A-\346\234\272\345\231\250\345\255\246\344\271\240/Base-A-\346\234\257\350\257\255\350\241\250.md"
index d76b8db7..f8851210 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/Base-A-\346\234\257\350\257\255\350\241\250.md"
+++ "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/Base-A-\346\234\257\350\257\255\350\241\250.md"
@@ -14,28 +14,28 @@ Index
> [什么是指数加权平均、偏差修正? - 郭耀华](http://www.cnblogs.com/guoyaohua/p/8544835.html) - 博客园
- **加权平均**
- 假设 `θi` 的权重分别为 `ρi`,则 `θi` 的加权平均为:
-
+
- **指数加权平均**
-
+
> 注意到越久前的记录其权重呈**指数衰减**,因此指数加权平均也称**指数衰减平均**
- **示例**:设 `ρ=0.9, v0=0`
-
+
> 其中 `v_t` 可以**近似**认为是最近 `1/1-ρ` 个值的滑动平均(`ρ=0.9`时,`0.1 * 0.9^9 ≈ 0.038`),更久前的记录其权重已近似为 0。
### 偏差修正
- 指数加权平均在前期会存在较大的**误差**
-
+
- 注意到只有当 `t -> ∞` 时,所有权重的和才接近 1,当 `t` 比较小时,并不是标准的加权平均
- **示例**:设 `ρ=0.9, v0=0`
-
+
- 当 `t` 较小时,与希望的加权平均结果差距较大
- **引入偏差修正**
-
+
- 偏差修正只对**前期**的有修正效果,**后期**当 `t` 逐渐增大时 `1-ρ^t -> 1`,将不再影响 `v_t`,与期望相符
\ No newline at end of file
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/Base-B-\345\267\245\345\205\267\345\272\223.md" "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/Base-B-\345\267\245\345\205\267\345\272\223.md"
similarity index 100%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/Base-B-\345\267\245\345\205\267\345\272\223.md"
rename to "A-\346\234\272\345\231\250\345\255\246\344\271\240/Base-B-\345\267\245\345\205\267\345\272\223.md"
diff --git a/codes/README.md "b/A-\346\234\272\345\231\250\345\255\246\344\271\240/C-\344\270\223\351\242\230-\346\246\202\347\216\207\345\233\276\346\250\241\345\236\213.md"
similarity index 100%
rename from codes/README.md
rename to "A-\346\234\272\345\231\250\345\255\246\344\271\240/C-\344\270\223\351\242\230-\346\246\202\347\216\207\345\233\276\346\250\241\345\236\213.md"
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-A-\346\267\261\345\272\246\345\255\246\344\271\240\345\237\272\347\241\200.md" "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/A-\346\267\261\345\272\246\345\255\246\344\271\240\345\237\272\347\241\200.md"
similarity index 83%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-A-\346\267\261\345\272\246\345\255\246\344\271\240\345\237\272\347\241\200.md"
rename to "A-\346\267\261\345\272\246\345\255\246\344\271\240/A-\346\267\261\345\272\246\345\255\246\344\271\240\345\237\272\347\241\200.md"
index e875b2f2..b6ceddd4 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-A-\346\267\261\345\272\246\345\255\246\344\271\240\345\237\272\347\241\200.md"
+++ "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/A-\346\267\261\345\272\246\345\255\246\344\271\240\345\237\272\347\241\200.md"
@@ -105,13 +105,13 @@ Index
**标量形式**:
- [![](../assets/公式_20180705190236.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705190236.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\end{aligned})
- [![](../assets/公式_20180705134851.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Red}&space;\partial&space;a_j^{(l)}}}={\color{Teal}\sum_{k=0}^{n_l-1}}&space;\frac{\partial&space;z_k^{(l+1)}}{{\color{Red}&space;\partial&space;a_j^{(l)}}}&space;\frac{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}{\partial&space;z_k^{(l+1)}}&space;\frac{\partial&space;C}{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705134851.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Red}&space;\partial&space;a_j^{(l)}}}={\color{Teal}\sum_{k=0}^{n_l-1}}&space;\frac{\partial&space;z_k^{(l+1)}}{{\color{Red}&space;\partial&space;a_j^{(l)}}}&space;\frac{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}{\partial&space;z_k^{(l+1)}}&space;\frac{\partial&space;C}{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}&space;\end{aligned})
- [![](../assets/公式_20180705154543.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705154543.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
- [![](../assets/公式_20180705154650.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705154650.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
> 上标 `(l)` 表示网络的层,`(L)` 表示输出层(最后一层);下标 `j` 和 `k` 指示神经元的位置;`w_jk` 表示 `l` 层的第 `j` 个神经元与`(l-1)`层第 `k` 个神经元连线上的权重
- **符号说明**,其中:
@@ -120,15 +120,15 @@ Index
- `a` 即 "activation",表示每一层的激活值,上标`(l)`表示所在隐藏层,`(L)`表示输出层
- `C` 表示激活函数,其参数为神经网络输出层的激活值`a^(L)`,与样本的标签`y`
- ![](../assets/TIM截图20180704193955.png)
+ ![](../_assets/TIM截图20180704193955.png)
- 以 **均方误差(MSE)** 损失函数为例,有
- [![](../assets/公式_20180705190536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\\&space;&=\frac{\partial&space;\left&space;(&space;\frac{1}{2}({\color{Red}a_j^{(L)}}-y_j)^2&space;\right&space;)&space;}{\partial&space;{\color{Red}a_j^{(L)}}}={\color{Red}a_j^{(L)}}-y&space;\end{aligned})
+ [![](../_assets/公式_20180705190536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\\&space;&=\frac{\partial&space;\left&space;(&space;\frac{1}{2}({\color{Red}a_j^{(L)}}-y_j)^2&space;\right&space;)&space;}{\partial&space;{\color{Red}a_j^{(L)}}}={\color{Red}a_j^{(L)}}-y&space;\end{aligned})
- Nielsen 的课程中提供了另一种更利于计算的表述,本质上是一样的。
- ![](../assets/TIM截图20180705162841.png)
+ ![](../_assets/TIM截图20180705162841.png)
> [The four fundamental equations behind backpropagation](http://neuralnetworksanddeeplearning.com/chap2.html#the_four_fundamental_equations_behind_backpropagation)
@@ -154,15 +154,15 @@ Index
### 整流线性单元 `ReLU`
- 公式与图像
- [![](../assets/公式_20180610213451.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\max(0,z))
+ [![](../_assets/公式_20180610213451.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\max(0,z))
- ![](../assets/TIM截图20180608212808.png)
+ ![](../_assets/TIM截图20180608212808.png)
- ReLU 通常是激活函数较好的默认选择
#### `ReLU` 的拓展
- `ReLU` 及其扩展都基于以下公式:
- [![](../assets/公式_20180610214123.png)](http://www.codecogs.com/eqnedit.php?latex=g(z;\alpha)&space;=\max(0,z)+\alpha\min(0,z))
+ [![](../_assets/公式_20180610214123.png)](http://www.codecogs.com/eqnedit.php?latex=g(z;\alpha)&space;=\max(0,z)+\alpha\min(0,z))
当 `α=0` 时,即标准的线性整流单元
- **绝对值整流**(absolute value rectification)
@@ -194,9 +194,9 @@ Index
### `sigmoid` 与 `tanh`
- `sigmoid(z)`,常记作 `σ(z)`:
- [![](../assets/公式_20180610214846.png)](http://www.codecogs.com/eqnedit.php?latex=\sigma(z)=\frac{1}{1+\exp(-z)})
+ [![](../_assets/公式_20180610214846.png)](http://www.codecogs.com/eqnedit.php?latex=\sigma(z)=\frac{1}{1+\exp(-z)})
- ![](../assets/TIM截图20180608195851.png)
+ ![](../_assets/TIM截图20180608195851.png)
- `tanh(z)` 的图像与 `sigmoid(z)` 大致相同,区别是**值域**为 `(-1, 1)`
@@ -213,7 +213,7 @@ Index
- **径向基函数(radial basis function, RBF)**:
- [![](../assets/公式_20180610215150.png)](http://www.codecogs.com/eqnedit.php?latex=h_i=\exp(-\frac{1}{\sigma_i^2}\left&space;\|&space;W_{:,i}-x&space;\right&space;\|^2))
+ [![](../_assets/公式_20180610215150.png)](http://www.codecogs.com/eqnedit.php?latex=h_i=\exp(-\frac{1}{\sigma_i^2}\left&space;\|&space;W_{:,i}-x&space;\right&space;\|^2))
在神经网络中很少使用 RBF 作为激活函数,因为它对大部分 x 都饱和到 0,所以很难优化。
@@ -221,16 +221,16 @@ Index
`softplus` 是 `ReLU` 的平滑版本。
- [![](../assets/公式_20180610215222.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\zeta(z)=\log(1+\exp(z)))
+ [![](../_assets/公式_20180610215222.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\zeta(z)=\log(1+\exp(z)))
- ![](../assets/TIM截图20180608204913.png)
+ ![](../_assets/TIM截图20180608204913.png)
通常不鼓励使用 softplus 函数,大家可能希望它具有优于整流线性单元的性质,但根据经验来看,它并没有。
> (Glorot et al., 2011a) 比较了这两者,发现 ReLU 的结果更好。
- **硬双曲正切函数(hard tanh)**:
- [![](../assets/公式_20180610215308.png)](http://www.codecogs.com/eqnedit.php?latex=g(a)=\max(-1,\min(1,a)))
+ [![](../_assets/公式_20180610215308.png)](http://www.codecogs.com/eqnedit.php?latex=g(a)=\max(-1,\min(1,a)))
它的形状和 tanh 以及整流线性单元类似,但是不同于后者,它是有界的。
@@ -266,24 +266,24 @@ Index
### 基本原理
- BN 方法会针对**每一批数据**,在**网络的每一层输入**之前增加**归一化**处理,使输入的均值为 `0`,标准差为 `1`。**目的**是将数据限制在统一的分布下。
- 具体来说,针对每层的第 `k` 个神经元,计算**这一批数据**在第 `k` 个神经元的均值与标准差,然后将归一化后的值作为该神经元的激活值。
-
+
- BN 可以看作在各层之间加入了一个新的计算层,**对数据分布进行额外的约束**,从而增强模型的泛化能力;
- 但同时 BN 也降低了模型的拟合能力,破坏了之前学到的**特征分布**;
- 为了**恢复数据的原始分布**,BN 引入了一个**重构变换**来还原最优的输入数据分布
-
+
其中 `γ` 和 `β` 为可训练参数。
**小结**
- 以上过程可归纳为一个 **`BN(x)` 函数**:
-
+
其中
-
+
- **完整算法**:
-
+
### BN 在训练和测试时分别是怎么做的?
- **训练时**每次会传入一批数据,做法如前述;
@@ -291,16 +291,16 @@ Index
- 训练每个 batch 时,都会得到一组`(均值,方差)`;
- 所谓全局统计量,就是对这些均值和方差求其对应的数学期望;
- 具体计算公式为:
-
+
> 其中 `μ_i` 和 `σ_i` 分别表示第 i 轮 batch 保存的均值和标准差;`m` 为 batch_size,系数 `m/(m-1)` 用于计算**无偏方差估计**
>> 原文称该方法为**移动平均**(moving averages)
- 此时,`BN(x)` 调整为:
-
+
- **完整算法**:
-
+
#### 为什么训练时不采用移动平均?
> 群里一位同学的面试题
@@ -336,8 +336,8 @@ Index
- 对目标函数添加范数正则化,训练时相当于在范数的约束下求目标函数 `J` 的最小值
- 带有**L1 范数**(左)和**L2 范数**(右)约束的二维图示
- ![](../assets/TIM截图20180608171710.png)
- ![](../assets/TIM截图20180608172312.png)
+ ![](../_assets/TIM截图20180608171710.png)
+ ![](../_assets/TIM截图20180608172312.png)
- 图中 `J` 与 `L1` 首次相交的点即是最优解。`L1` 在和每个坐标轴相交的地方都会有“**顶点**”出现,多维的情况下,这些顶点会更多;在顶点的位置就会产生稀疏的解。而 `J` 与这些“顶点”相交的机会远大于其他点,因此 `L1` 正则化会产生稀疏的解。
- `L2` 不会产生“**顶点**”,因此 `J` 与 `L2` 相交的点具有稀疏性的概率就会变得非常小。
@@ -363,7 +363,7 @@ Index
- 简单来说,Dropout 通过**参数共享**提供了一种廉价的 Bagging 集成近似—— Dropout 策略相当于集成了包括所有从基础网络除去部分单元后形成的子网络。
- 通常,**隐藏层**的采样概率为 `0.5`,**输入**的采样概率为 `0.8`;超参数也可以采样,但其采样概率一般为 `1`
- ![](../assets/TIM截图20180611152559.png)
+ ![](../_assets/TIM截图20180611152559.png)
**权重比例推断规则**
- 权重比例推断规则的目的是确保在测试时一个单元的期望总输入与在训练时该单元的期望总输入大致相同。
@@ -381,7 +381,7 @@ Index
- 一些**启发式**方法会根据**输入与输出的单元数**来决定初始值的范围
- 比如 `glorot_uniform` 方法 (Glorot and Bengio, 2010)
- [![](../assets/公式_20180706115540.png)](http://www.codecogs.com/eqnedit.php?latex=W_{i,j}\sim&space;U\left&space;(&space;-\sqrt&space;\frac{6}{n_{in}+n_{out}},&space;\sqrt&space;\frac{6}{n_{in}+n_{out}}&space;\right&space;))
+ [![](../_assets/公式_20180706115540.png)](http://www.codecogs.com/eqnedit.php?latex=W_{i,j}\sim&space;U\left&space;(&space;-\sqrt&space;\frac{6}{n_{in}+n_{out}},&space;\sqrt&space;\frac{6}{n_{in}+n_{out}}&space;\right&space;))
> Keras 全连接层默认的**权重**初始化方法
- **其他初始化方法**
- 随机正交矩阵(Orthogonal)
diff --git "a/A-\346\267\261\345\272\246\345\255\246\344\271\240/A-\346\267\261\345\272\246\345\255\246\344\271\240\345\256\236\350\267\265.md" "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/A-\346\267\261\345\272\246\345\255\246\344\271\240\345\256\236\350\267\265.md"
new file mode 100644
index 00000000..fa0174b1
--- /dev/null
+++ "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/A-\346\267\261\345\272\246\345\255\246\344\271\240\345\256\236\350\267\265.md"
@@ -0,0 +1,9 @@
+深度学习实践
+===
+
+Index
+---
+
+
+## 双线性池化(Bilinear pooling)
+- 双线性池化是一种特征融合方法
\ No newline at end of file
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-CNN.md" "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-CNN.md"
similarity index 85%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-CNN.md"
rename to "A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-CNN.md"
index 236b7ade..727d3a1a 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-CNN.md"
+++ "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-CNN.md"
@@ -50,19 +50,19 @@ Index
- 先把二维 `input` 展开成一维向量(`[in_h, in_w] -> [in_h * in_w]`);如果是一批 `inputs`,则依次堆叠为一个矩阵 `[N, in_h * in_w]`;
- 然后将 `kernel` 按 stride **循环**展开成一个**稀疏矩阵**;
-
+
- 然后将卷积的计算转化为**矩阵相乘**。
-
+
### Caffe 中的实现
> [High Performance Convolutional Neural Networks for Document Processing](https://hal.inria.fr/inria-00112631/document) (2006)
- 先对 `inputs` 做 **im2col** 操作得到**输入矩阵**,再将 `kernel` 转化为**权值矩阵**,然后将两个矩阵相乘得到输出矩阵:
-
+
其中
-
+
- 其中 `o` 表示 out;`i` 表示 in;`k` 表示 kernel;
- 不包括 `batch_size` 的维度;
@@ -70,14 +70,14 @@ Index
- **im2col** 操作
> 先将一个输入矩阵(图像),重叠地划分为多个**子矩阵**(子区域),对每个子矩阵序列化成向量,然后将所有子向量**纵向**拼接成另一个矩阵;如果存在多个输入矩阵,则进一步将新生成矩阵横向拼接,最终构成一个大矩阵
-
+
> 这里可以看作是三张**单通道**图像,也可以看作是一张**三通道**的图像
>> 更直观的图示 > [caffe im2col 详解](https://blog.csdn.net/mrhiuser/article/details/52672824) - CSDN博客
>>
>> 具体的代码实现更复杂一些,因为这个图示中的操作并不能直接循环,具体请参考这篇 > [caffe源码深入学习6:超级详细的im2col绘图解析,分析caffe卷积操作的底层实现](https://blog.csdn.net/jiongnima/article/details/69736844) - CSDN博客
- 完整的计算过程
-
+
- 上半部分是卷积的直观操作,下半部分转换为矩阵乘法的操作
- 原文:“**输入为 `N=3` 个 `3*3` 的特征矩阵;输出为 `M=2` 个 `2*2` 的特征矩阵;kernel 的形状为 `2*2`,数量为 `N*M = 6` 个**”;
@@ -89,11 +89,15 @@ Index
## 卷积的反向传播
- 卷积的内部实现实际上是**矩阵相乘**,
-- 因此,卷积的**反向传播**过程实际上跟普通的全连接是一样/类似的
-
+- 因此,卷积的**反向传播**过程实际上跟普通的全连接是类似的
+
> [High Performance Convolutional Neural Networks for Document Processing](https://hal.inria.fr/inria-00112631/document)
+**相关阅读**
+- [CNN的反向传播](http://jermmy.xyz/2017/12/16/2017-12-16-cnn-back-propagation/) | Jermmy's Lazy Blog
+- https://www.zhihu.com/question/56865789/answer/150785351
+
## 卷积的结构
> [一文了解各种卷积结构原理及优劣](https://zhuanlan.zhihu.com/p/28186857) - 知乎
>
@@ -103,7 +107,7 @@ Index
**以 Conv2D 为例**
- Tensorflow 中构造 conv2d 层的参数形状为:
-
+
> `[k_height, k_width]` 表示卷积核的大小;`n_in` 表示“输入的通道数”,`n_out` 表示“输出的通道数”
- 通常在描述卷积核的大小时,只会说 `[k_height, k_width]` 这一部分;比如 “这一层使用的是 `3*3` 的卷积核”。
@@ -119,10 +123,10 @@ Index
Full padding, no strides |
- |
- |
- |
- |
+ |
+ |
+ |
+ |
No padding, strides |
@@ -130,9 +134,9 @@ Index
Padding, strides (odd) |
- |
- |
- |
+ |
+ |
+ |
@@ -155,10 +159,10 @@ Index
Full padding, no strides, transposed |
- |
- |
- |
- |
+ |
+ |
+ |
+ |
No padding, strides, transposed |
@@ -166,20 +170,20 @@ Index
Padding, strides, transposed (odd) |
- |
- |
- |
+ |
+ |
+ |
### 空洞卷积
- 空洞卷积(Atrous Convolutions)也称扩张卷积(Dilated Convolutions)、膨胀卷积。
- No padding, no strides.
+ No padding, no strides.
**空洞卷积的作用**
- 空洞卷积使 CNN 能够**捕捉更远的信息,获得更大的感受野**(NLP 中可理解为获取更长的上下文);同时不增加参数的数量,也不影响训练的速度。
- 示例:Conv1D + 空洞卷积
-
+
@@ -201,13 +205,13 @@ Index
- 类似 LSTM 的过滤机制,实际上是卷积网络与**门限单元**(Gated Linear Unit)的组合
- 核心公式
-
+
> 中间的运算符表示**逐位相乘**—— Tensorflow 中由 `tf.multiply(a, b)` 实现,其中 a 和 b 的 shape 要相同;后一个卷积使用`sigmoid`激活函数
- 一个门卷积 Block
-
+
> `W` 和 `V` 表明参数不共享
- 实践中,为了防止梯度消失,还会在每个 Block 中加入残差
@@ -219,11 +223,11 @@ Index
### 门卷积是如何防止梯度消失的
- 因为公式中有一个卷积没有经过激活函数,所以对这部分求导是个常数,所以梯度消失的概率很小。
- 如果还是担心梯度消失,还可以加入**残差**——要求输入输出的 shape 一致
-
+
更直观的理解:
-
+
即信息以 `1-σ` 的概率直接通过,以 `σ` 的概率经过变换后通过——类似 GRU
@@ -244,7 +248,7 @@ Index
1. **注意力机制模块**(记忆模块)的应用
- 注意力机制模块可以同时**前向预测**和**后向回顾**。
- **分层注意力编码器**(Hierarchical attention encoder)
-
+
- 分层注意力模块通过一个**层次结构**将过去编码向量**汇总**到一个**上下文向量**`C_t` ——这是一种更好的**观察过去信息**的方式(观点)
- **分层结构**可以看做是一棵**树**,其路径长度为 `logN`,而 RNN/LSTM 则相当于一个**链表**,其路径长度为 `N`,如果序列足够长,那么可能 `N >> logN`
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-RNN.md" "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-RNN.md"
similarity index 87%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-RNN.md"
rename to "A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-RNN.md"
index 141092ac..42d2dfd3 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-RNN.md"
+++ "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-RNN.md"
@@ -28,16 +28,16 @@ Index
## RNN 的基本结构
- RNN 本质上是一个**递推函数**
-
+
- 考虑当前输入 `x(t)`
-
+
- 以上计算公式可展开为如下**计算图**(无输出单元)
-
+
- RNN 的**前向传播**公式
-
+
> 一般 `h(0)` 会初始化为 0 向量;并使用 `tanh` 作为激活函数 `f`
@@ -47,22 +47,22 @@ Index
- **每个时间步都有输出,且隐藏单元之间有循环连接**
- 即通常所说 RNN
- 这种结构会在每个时间步产生一个输出,所以通常用于“**Seq2Seq**”任务中,比如序列标注、机器翻译等。这些任务通常都比较复杂。
-
+
- **每个时间步都有输出,但是隐藏单元之间没有循环连接,只有当前时刻的输出到下个时刻的隐藏单元之间有循环连接**
- 这种模型的表示能力弱于第一种,但是它**更容易训练**
- 因为每个时间步可以与其他时间步单独训练,从而实现**并行化**
- 具体来说,就是使用 `y(t)` 代替 `o(t)` 输入下一个时间步。
-
+
- **隐藏单元之间有循环连接,但只有最后一个时间步有输出**
- 忽略模式 1 中的中间输出,即可得到这种网络;
- 这种网络一般用于**概括序列**。具体来说,就是产生**固定大小的表示**,用于下一步处理;
- 在一些“**Seq2One**”中简单任务中,这种网络用的比较多;因为这些任务只需要关注序列的全局特征。
-
+
> 其中前两种 RNN 分别被称为 Elman network 和 Jordan network;通常所说的 RNN 指的是前者
->
+>
>
>> [Recurrent neural network](https://en.wikipedia.org/wiki/Recurrent_neural_network#Elman_networks_and_Jordan_networks) - Wikipedia
@@ -83,7 +83,7 @@ Index
- 由于 RNN 具有对序列中时序信息的刻画能力,因此在处理序列数据时往往能得到更准确的结果。
- **展开后的 RNN**(**无输出**)
-
+
- 一个长度为 `T` 的 RNN 展开后,可以看做是一个 **T 层的前馈网络**;同时每一层都可以有**新的输入**
- 通过对当前输入 `x_t` 和上一层的隐状态 `h_{t-1}` 进行编码,**第 `t` 层的隐状态** `h_t` 记录了序列中前 `t` 个输入的信息。
@@ -91,7 +91,7 @@ Index
- **最后一层隐状态 `x_T`** 编码了整个序列的信息,因此可以看作**整个序列的压缩表示**。
- 常见的文本分类任务中,将 `h_T` 通过一个 Softmax 层,即可获得作为每个类别的概率:
-
+
其中
- `U` 为输入层到隐藏层的权重矩阵
@@ -118,13 +118,13 @@ Index
- 但是在 RNN 中使用 ReLU,反而可能在**前向传播**就时出现类似“梯度消失/爆炸”的**数值溢出问题**。
- **推导说明**:
- RNN 的前向传播过程
-
+
- 展开前一层
-
+
- 假设使用 `ReLU` 并始终处于**激活状态**(`a_{t-1} > 0`),则 `f(x) = x`,即
-
+
- 按照以上的步骤继续展开,最终结果中将包含 `t` 个 `W` 连乘,如果 `W` 不是单位矩阵,最终结果将趋于 `0` 或无穷。
@@ -133,12 +133,12 @@ Index
- 此外,**使用 `ReLU` 也不能完全避免 RNN 中的梯度消失/爆炸问题**,问题依然在于存在 `t` 个 `W` 的连乘项。
- RNN 的梯度计算公式
-
+
> 上标 `(t)` 表示时间步,下标 `n` 表示隐藏层的单元数(维度)
- 注意**最后一步**,假设所有神经元都处于**激活状态**,当 `ReLU` 作为 `f` 时,有
-
+
- 可见**只要 `W` 不是单位矩阵**,还是可能会出现梯度消失/爆炸现象。
@@ -156,24 +156,24 @@ Index
- LSTM 在传统 RNN 的基础上加入了**门控机制**来限制**信息的流动**。
- LSTM (上)与传统 RNN(下) 的内部结构对比
-
-
+
+
- 具体来说,LSTM 中加入了三个“门”:**遗忘门** `f`、**输入门** `i`、**输出门** `o`,以及一个内部记忆状态 `C`
- “**遗忘门 `f`**”控制前一步记忆状态中的信息有多大程度被遗忘;
-
+
- “**输入门 `i`**”控制当前计算的新状态以多大的程度更新到**记忆状态**中;
-
+
- “**记忆状态 `C`**”间的**状态转移**由输入门和遗忘门共同决定
-
+
- “**输出门 `o`**”控制当前的输出有多大程度取决于当前的记忆状态
-
+
#### 完整的 LSTM 前向传播公式
-
+
> 其中运算符 `o`(`\circ`) 表示向量中的元素**按位相乘**;有的地方也使用符号 `⊙`(`\odot`)表示
@@ -209,10 +209,10 @@ Index
### 窥孔机制
> Gers F A, Schmidhuber J. Recurrent nets that time and count[C]. 2000.
- LSTM 通常使用输入 `x_t` 和上一步的隐状态 `h_{t-1}` 参与门控计算;
-
+
- **窥孔机制**指让记忆状态也参与门控的计算中
-
+
### GRU 与 LSTM 的关系
- GRU 认为 LSTM 中的**遗忘门**和**输入门**的功能有一定的重合,于是将其合并为一个**更新门**。
@@ -222,13 +222,13 @@ Index
- GRU 相比 LSTM 的**改动**:
- GRU 把遗忘门和输入门合并为**更新门(update)** `z`,并使用**重置门(reset)** `r` 代替输出门;
- **合并**了记忆状态 `C` 和隐藏状态 `h`
-
+
其中
- **更新门** `z`用于控制前一时刻的状态信息被**融合**到当前状态中的程度
- **重置门** `r`用于控制忽略前一时刻的状态信息的程度
#### 完整的 GRU 前向传播公式
-
+
> 遵从原文表示,没有加入偏置
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-\344\274\230\345\214\226\347\256\227\346\263\225.md" "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-\344\274\230\345\214\226\347\256\227\346\263\225.md"
similarity index 90%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-\344\274\230\345\214\226\347\256\227\346\263\225.md"
rename to "A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-\344\274\230\345\214\226\347\256\227\346\263\225.md"
index d88ef317..b849f490 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-B-\344\270\223\351\242\230-\344\274\230\345\214\226\347\256\227\346\263\225.md"
+++ "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/B-\344\270\223\351\242\230-\344\274\230\345\214\226\347\256\227\346\263\225.md"
@@ -50,7 +50,7 @@ Index
- **负梯度**中的每一项可以认为传达了**两个信息**:
- 正负号在告诉输入向量应该调大还是调小(正调大,负调小)
- 每一项的相对大小表明每个参数对函数值达到最值的**影响程度**;
-
+
## 随机梯度下降
- 基本的梯度下降法每次使用**所有训练样本**的**平均损失**来更新参数;
@@ -70,7 +70,7 @@ Index
1. 【**反向传播**】计算损失相对于所有网络中**可训练参数**的梯度 `g`
1. 将参数沿着**负梯度**的方向移动,即 `W -= lr * g`
> `lr` 表示学习率 learning rate
-
+
### “批”的大小对优化效果的影响
> 《深度学习》 8.1.3 批量算法和小批量算法
@@ -87,7 +87,7 @@ Index
- 无论是经典的梯度下降还是随机梯度下降,都可能陷入**局部极值点**;除此之外,SGD 还可能遇到“**峡谷**”和“**鞍点**”两种情况
- **峡谷**类似一个带有**坡度**的狭长小道,左右两侧是“**峭壁**”;在**峡谷**中,准确的梯度方向应该沿着坡的方向向下,但粗糙的梯度估计使其稍有偏离就撞向两侧的峭壁,然后在两个峭壁间来回**震荡**。
- **鞍点**的形状类似一个马鞍,一个方向两头翘,一个方向两头垂,而**中间区域近似平地**;一旦优化的过程中不慎落入鞍点,优化很可能就会停滞下来。
-
+
## 随机梯度下降的改进方向
- SGD 的改进遵循两个方向:**惯性保持**和**环境感知**
@@ -109,21 +109,21 @@ Index
- 如果把原始的 SGD 想象成一个**纸团**在重力作用向下滚动,由于**质量小**受到山壁弹力的干扰大,导致来回震荡;或者在鞍点处因为**质量小**速度很快减为 0,导致无法离开这块平地。
- **动量**方法相当于把纸团换成了**铁球**;不容易受到外力的干扰,轨迹更加稳定;同时因为在鞍点处因为**惯性**的作用,更有可能离开平地。
- 动量方法以一种廉价的方式模拟了二阶梯度(牛顿法)
-
+
- **参数更新公式**
-
+
- 从形式上看, 动量算法引入了变量 `v` 充当速度角色,以及相相关的超参数 `α`。
- 原始 SGD 每次更新的步长只是梯度乘以学习率;现在,步长还取决于**历史梯度序列**的大小和排列;当许多连续的梯度指向**相同的方向**时,步长会被不断增大;
- **动量算法描述**
-
+
- 如果动量算法总是观测到梯度 `g`,那么它会在 `−g` 方向上不断加速,直到达到**最终速度**。
-
+
- 在实践中, `α` 的一般取 `0.5, 0.9, 0.99`,分别对应**最大** `2` 倍、`10` 倍、`100` 倍的步长
- 和学习率一样,`α` 也可以使用某种策略在训练时进行**自适应调整**;一般初始值是一个较小的值,随后会慢慢变大。
@@ -133,7 +133,7 @@ Index
- **NAG 把梯度计算放在对参数施加当前速度之后**。
- 这个“**提前量**”的设计让算法有了对前方环境“**预判**”的能力。Nesterov 动量可以解释为往标准动量方法中添加了一个**修正因子**。
- **NAG 算法描述**
-
+
## 自适应学习率的优化算法
@@ -144,7 +144,7 @@ Index
- 该算法的思想是独立地适应模型的每个参数:具有较大偏导的参数相应有一个较大的学习率,而具有小偏导的参数则对应一个较小的学习率
- 具体来说,每个参数的学习率会缩放各参数反比于其**历史梯度平方值总和的平方根**
- **AdaGrad 算法描述**
-
+
- 注意:全局学习率 `ϵ` 并没有更新,而是每次应用时被缩放
@@ -158,19 +158,19 @@ Index
- RMSProp 使用**指数衰减平均**(递归定义)以丢弃遥远的历史,使其能够在找到某个“凸”结构后快速收敛;此外,RMSProp 还加入了一个超参数 `ρ` 用于控制衰减速率。
> ./术语表/[指数衰减平均](./Base-A-术语表.md#指数加权平均指数衰减平均)
- 具体来说(对比 AdaGrad 的算法描述),即修改 `r` 为
-
+
记
-
+
则
-
+
> 其中 `E` 表示期望,即平均;`δ` 为平滑项,具体为一个小常数,一般取 `1e-8 ~ 1e-10`(Tensorflow 中的默认值为 `1e-10`)
- **RMSProp** 建议的**初始值**:全局学习率 `ϵ=1e-3`,衰减速率 `ρ=0.9`
- **RMSProp 算法描述**
-
+
- 带 **Nesterov 动量**的 **RMSProp**
-
+
- 经验上,RMSProp 已被证明是一种有效且实用的深度神经网络优化算法。
- RMSProp 依然需要设置一个全局学习率,同时又多了一个超参数(推荐了默认值)。
@@ -180,7 +180,7 @@ Index
- AdaDelta 和 RMSProp 是独立发现的,AdaDelta 的前半部分与 RMSProp 完全一致;
- AdaDelta 进一步解决了 AdaGrad 需要设置一个全局学习率的问题
- 具体来说,即
-
+
此时,AdaDelta 已经不需要设置全局学习率了
> 关于 `RMS` 的定义,见 [RMSProp](#rmsprop)
@@ -193,7 +193,7 @@ Index
- Adam 行为就像一个带有摩擦力的小球,在误差面上倾向于平坦的极小值。
> ./术语表/[指数衰减平均](./Base-A-术语表.md#指数加权平均指数衰减平均)
- **Adam 算法描述**
-
+
**偏差修正**
- 注意到,`s` 和 `r` 需要初始化为 `0`;且 `ρ1` 和 `ρ2` 推荐的初始值都很接近 `1`(`0.9` 和 `0.999`)
@@ -214,10 +214,10 @@ Index
### 各优化算法的可视化
- SGD 各优化方法在损失曲面上的表现
-
+
- SGD 各优化方法在**鞍点**处上的表现
-
+
## 基于二阶梯度的优化算法
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-C-\344\270\223\351\242\230-\345\272\217\345\210\227\345\273\272\346\250\241.md" "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/C-\344\270\223\351\242\230-\345\272\217\345\210\227\345\273\272\346\250\241.md"
similarity index 93%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-C-\344\270\223\351\242\230-\345\272\217\345\210\227\345\273\272\346\250\241.md"
rename to "A-\346\267\261\345\272\246\345\255\246\344\271\240/C-\344\270\223\351\242\230-\345\272\217\345\210\227\345\273\272\346\250\241.md"
index 361f52c5..9515a95b 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-C-\344\270\223\351\242\230-\345\272\217\345\210\227\345\273\272\346\250\241.md"
+++ "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/C-\344\270\223\351\242\230-\345\272\217\345\210\227\345\273\272\346\250\241.md"
@@ -39,19 +39,19 @@ Index
- 在**深度学习领域**的很长一段时间里,RNN/LSTM 都是序列建模的首选。
> 《深度学习》 10 序列建模:循环和递归网络
- 最近,CNN 开始在序列建模领域流行,一个**关键想法**是——在一维时间序列上使用**一维卷积运算**
-
+
> [CNN for Sentence Classification](https://arxiv.org/abs/1408.5882) (Kim, 2014)
## Seq2Seq
- Seq2Seq 的核心思想是把一个输出序列,通过**编码**(Encode)和**解码**(Decode)两个过程映射到一个新的输出序列。
-
+
> [Translation with a Sequence to Sequence Network and Attention](https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html) — PyTorch
- 经典的 Seq2Seq 模型中,**编码器**(Encoder)和**解码器**(Decoder)都使用 **RNN** 进行建模
-
-
+
+
> 上图是一次**机器翻译**的过程,输入是一个源语言的一个句子 "A B C",Encoder 一次读入每个单词直到结束符 ``(End of Sequence);
> 在解码的第一步,Decoder 先读取 **Encoder 的最终状态**,生成目标语言的第一个词 'W',接着 Decoder 读取第一步的输出 'W' 作为第二步的输入,进而生成第二个词 'X',如此直到生成 `` 或达到指定**最大长度**。
@@ -77,7 +77,7 @@ Index
- Beam Search 是一种启发式算法
- 该方法会保存前 `beam_size` 个最佳状态,每次解码时会根据所有保存的状态进行下一步**扩展**和**排序**,依然只保留前 `beam_size` 个最佳状态;循环迭代至最后一步,保存最佳选择。
- Beam Search 图示
-
+
- 当 `beam_size = 1` 时,Beam Search 即退化为贪心搜索
- 一般为了计算资源和性能的平衡,`beam_size` 会选择一个适中的范围;通常 `beam_size` 取 `8~12` 即可(机器翻译、文本摘要)
@@ -125,13 +125,13 @@ Index
- 卷积层试图将神经网络中的每一小块进行更加深入的分析,从而得出抽象程度更高的特征。
- 一般来说通过卷积层处理的神经元结点矩阵会变得更深,即神经元的组织在第三个维度上会增加。
- **时序数据**同样可以认为是在时间轴上有规律地采样而形成的一维网格
-
+
> [CNN for Sentence Classification](https://arxiv.org/abs/1408.5882) (Kim, 2014)
### 一维卷积
- 适用于序列建模的卷积网络一般就是采用的是一维卷积
-
+
- 最下层的 `x_i` 可视为句子的输入序列
- 最上层的 `g_j` 即输出序列
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-\343\200\212\346\267\261\345\272\246\345\255\246\344\271\240\343\200\213\346\225\264\347\220\206.md" "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/\343\200\212\346\267\261\345\272\246\345\255\246\344\271\240\343\200\213\346\225\264\347\220\206.md"
similarity index 91%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-\343\200\212\346\267\261\345\272\246\345\255\246\344\271\240\343\200\213\346\225\264\347\220\206.md"
rename to "A-\346\267\261\345\272\246\345\255\246\344\271\240/\343\200\212\346\267\261\345\272\246\345\255\246\344\271\240\343\200\213\346\225\264\347\220\206.md"
index 5df83319..ba35aae6 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/DL-\343\200\212\346\267\261\345\272\246\345\255\246\344\271\240\343\200\213\346\225\264\347\220\206.md"
+++ "b/A-\346\267\261\345\272\246\345\255\246\344\271\240/\343\200\212\346\267\261\345\272\246\345\255\246\344\271\240\343\200\213\346\225\264\347\220\206.md"
@@ -97,7 +97,7 @@
一些启发式初始化策略通常是根据输入与输出的单元数来决定初始权重的大小,比如 Glorot and Bengio (2010) 中建议建议使用的标准初始化,其中 m 为输入数,n 为输出数
-[![](../assets/公式_20180610212719.png)](http://www.codecogs.com/eqnedit.php?latex=W_{i,j}&space;\sim&space;U(-\sqrt{\frac{6}{m+n}},\sqrt{\frac{6}{m+n}}))
+[![](../_assets/公式_20180610212719.png)](http://www.codecogs.com/eqnedit.php?latex=W_{i,j}&space;\sim&space;U(-\sqrt{\frac{6}{m+n}},\sqrt{\frac{6}{m+n}}))
还有一些方法推荐使用随机正交矩阵来初始化权重 (Saxe et al., 2013)。
@@ -109,7 +109,7 @@
**梯度爆炸**:
-![](../assets/TIM截图20180611172657.png)
+![](../_assets/TIM截图20180611172657.png)
1. **梯度截断**(gradient clipping)——如果梯度超过某个阈值,就对其进行限制
@@ -263,23 +263,23 @@ L0: 向量中非零元素的个数
L1: 向量中所有元素的绝对值之和
-[![](../assets/公式_20180610213145.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_1=\sum_i{\left&space;|&space;x_i&space;\right&space;|})
+[![](../_assets/公式_20180610213145.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_1=\sum_i{\left&space;|&space;x_i&space;\right&space;|})
L2: 向量中所有元素平方和的开放
-[![](../assets/公式_20180610213218.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_2=\sqrt{\sum_i{\left&space;|&space;x_i&space;\right&space;|^2}})
+[![](../_assets/公式_20180610213218.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_2=\sqrt{\sum_i{\left&space;|&space;x_i&space;\right&space;|^2}})
其中 L1 和 L2 范数分别是 Lp (p>=1) 范数的特例:
-[![](../assets/公式_20180904113355.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_p=(\sum_i{\left&space;|&space;x_i&space;\right&space;|^2})^{\frac{1}{p}})
+[![](../_assets/公式_20180904113355.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_p=(\sum_i{\left&space;|&space;x_i&space;\right&space;|^2})^{\frac{1}{p}})
L∞: 向量中最大元素的绝对值,也称最大范数
-[![](../assets/公式_20180610213349.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_\infty=\max_i\left&space;|&space;x&space;\right&space;|)
+[![](../_assets/公式_20180610213349.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;x&space;\right&space;\|_\infty=\max_i\left&space;|&space;x&space;\right&space;|)
Frobenius 范数:相当于作用于矩阵的 L2 范数
-[![](../assets/公式_20180610213428.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;A&space;\right&space;\|_F=\sqrt{\sum_{i,j}A_{i,j}^2})
+[![](../_assets/公式_20180610213428.png)](http://www.codecogs.com/eqnedit.php?latex=\left&space;\|&space;A&space;\right&space;\|_F=\sqrt{\sum_{i,j}A_{i,j}^2})
**范数的应用**:正则化——权重衰减/参数范数惩罚
@@ -310,13 +310,13 @@ Frobenius 范数:相当于作用于矩阵的 L2 范数
添加 L1 正则化,相当于在 L1范数的约束下求目标函数 J 的最小值,下图展示了二维的情况:
-![](../assets/TIM截图20180608171710.png)
+![](../_assets/TIM截图20180608171710.png)
图中 J 与 L 首次相交的点就是最优解。L1 在和每个坐标轴相交的地方都会有“角”出现(多维的情况下,这些角会更多),在角的位置就会产生稀疏的解。而 J 与这些“角”相交的机会远大于其他点,因此 L1 正则化会产生稀疏的权值。
类似的,可以得到带有 L2正则化的目标函数在二维平面上的图形,如下:
-![](../assets/TIM截图20180608172312.png)
+![](../_assets/TIM截图20180608172312.png)
相比 L1,L2 不会产生“角”,因此 J 与 L2 相交的点具有稀疏性的概率就会变得非常小。
@@ -338,9 +338,9 @@ L1 & L2 正则化会使模型偏好于更小的权值。
## 整流线性单元(ReLU)
-[![](../assets/公式_20180610213451.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\max(0,z))
+[![](../_assets/公式_20180610213451.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\max(0,z))
-![](../assets/TIM截图20180608212808.png)
+![](../_assets/TIM截图20180608212808.png)
整流线性单元(ReLU)通常是激活函数较好的默认选择。
@@ -350,7 +350,7 @@ L1 & L2 正则化会使模型偏好于更小的权值。
ReLU 的三种拓展都是基于以下变型:
-[![](../assets/公式_20180610214123.png)](http://www.codecogs.com/eqnedit.php?latex=g(z,\alpha)&space;=\max(0,z)+\alpha\min(0,z))
+[![](../_assets/公式_20180610214123.png)](http://www.codecogs.com/eqnedit.php?latex=g(z,\alpha)&space;=\max(0,z)+\alpha\min(0,z))
ReLU 及其扩展都是基于一个原则,那就是如果它们的行为更接近线性,那么模型更容易优化。
@@ -358,7 +358,7 @@ ReLU 及其扩展都是基于一个原则,那就是如果它们的行为更接
固定 α == -1,此时整流函数即一个绝对值函数
- [![](../assets/公式_20180610214502.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)&space;=\left&space;|&space;z&space;\right&space;|)
+ [![](../_assets/公式_20180610214502.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)&space;=\left&space;|&space;z&space;\right&space;|)
绝对值整流被用于图像中的对象识别 (Jarrett et al., 2009a),其中寻找在输入照明极性反转下不变的特征是有意义的。
@@ -388,19 +388,19 @@ ReLU 及其扩展都是基于一个原则,那就是如果它们的行为更接
在引入 ReLU 之前,大多数神经网络使用 sigmoid 激活函数:
-[![](../assets/公式_20180610214846.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\sigma(z)=\frac{1}{1+\exp(-z)})
+[![](../_assets/公式_20180610214846.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\sigma(z)=\frac{1}{1+\exp(-z)})
-![](../assets/TIM截图20180608195851.png)
+![](../_assets/TIM截图20180608195851.png)
或者 tanh(双曲正切函数):
-[![](../assets/公式_20180610214926.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)&space;=&space;\tanh(z))
+[![](../_assets/公式_20180610214926.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)&space;=&space;\tanh(z))
tanh 的图像类似于 sigmoid,区别在其值域为 (-1, 1).
这两个函数有如下关系:
-[![](../assets/公式_20180610215029.png)](http://www.codecogs.com/eqnedit.php?latex=\tanh(z)=2\sigma&space;(2z)-1)
+[![](../_assets/公式_20180610215029.png)](http://www.codecogs.com/eqnedit.php?latex=\tanh(z)=2\sigma&space;(2z)-1)
**sigmoid 函数要点**:
- sigmoid 常作为输出单元用来预测二值型变量取值为 1 的概率
@@ -424,29 +424,29 @@ softmax 单元常作为网络的输出层,它很自然地表示了具有 k 个
**径向基函数(radial basis function, RBF)**:
-[![](../assets/公式_20180610215150.png)](http://www.codecogs.com/eqnedit.php?latex=h_i=\exp(-\frac{1}{\sigma_i^2}\left&space;\|&space;W_{:,i}-x&space;\right&space;\|^2))
+[![](../_assets/公式_20180610215150.png)](http://www.codecogs.com/eqnedit.php?latex=h_i=\exp(-\frac{1}{\sigma_i^2}\left&space;\|&space;W_{:,i}-x&space;\right&space;\|^2))
在神经网络中很少使用 RBF 作为激活函数,因为它对大部分 x 都饱和到 0,所以很难优化。
**softplus**:
-[![](../assets/公式_20180610215222.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\zeta(z)=\log(1+\exp(z)))
+[![](../_assets/公式_20180610215222.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\zeta(z)=\log(1+\exp(z)))
-![](../assets/TIM截图20180608204913.png)
+![](../_assets/TIM截图20180608204913.png)
softplus 是 ReLU 的平滑版本。通常不鼓励使用 softplus 函数,大家可能希望它具有优于整流线性单元的点,但根据经验来看,它并没有。
> (Glorot et al., 2011a) 比较了这两者,发现 ReLU 的结果更好。
**硬双曲正切函数(hard tanh)**:
-[![](../assets/公式_20180610215308.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\max(-1,\min(1,a)))
+[![](../_assets/公式_20180610215308.png)](http://www.codecogs.com/eqnedit.php?latex=g(z)=\max(-1,\min(1,a)))
它的形状和 tanh 以及整流线性单元类似,但是不同于后者,它是有界的。
> Collobert, 2004
## sigmoid 和 softplus 的一些性质
-![](../assets/TIM截图20180608205223.png)
+![](../_assets/TIM截图20180608205223.png)
> 《深度学习》 3.10 常用函数的有用性质
@@ -469,13 +469,13 @@ softplus 是 ReLU 的平滑版本。通常不鼓励使用 softplus 函数,大
自信息(self-information)是一种量化以上性质的函数,定义一个事件 x 的自信息为:
-[![](../assets/公式_20180610215339.png)](http://www.codecogs.com/eqnedit.php?latex=I(x)=-\log&space;P(x))
+[![](../_assets/公式_20180610215339.png)](http://www.codecogs.com/eqnedit.php?latex=I(x)=-\log&space;P(x))
> 当该对数的底数为 e 时,单位为奈特(nats,本书标准);当以 2 为底数时,单位为比特(bit)或香农(shannons)
自信息只处理单个的输出。此时,用信息熵(Information-entropy)来对整个概率分布中的不确定性总量进行量化:
-[![](../assets/公式_20180610215417.png)](http://www.codecogs.com/eqnedit.php?latex=H(\mathrm{X})=\mathbb{E}_{\mathrm{X}&space;\sim&space;P}[I(x)]=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;P(x))
+[![](../_assets/公式_20180610215417.png)](http://www.codecogs.com/eqnedit.php?latex=H(\mathrm{X})=\mathbb{E}_{\mathrm{X}&space;\sim&space;P}[I(x)]=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;P(x))
> 信息熵也称香农熵(Shannon entropy)
>
@@ -485,7 +485,7 @@ softplus 是 ReLU 的平滑版本。通常不鼓励使用 softplus 函数,大
P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
-[![](../assets/公式_20180610215445.png)](http://www.codecogs.com/eqnedit.php?latex=D_P(Q)=\mathbb{E}_{\mathrm{X}\sim&space;P}\left&space;[&space;\log&space;\frac{P(x)}{Q(x)}&space;\right&space;]=\sum_{x&space;\in&space;\mathrm{X}}P(x)\left&space;[&space;\log&space;P(x)-\log&space;Q(x)&space;\right&space;])
+[![](../_assets/公式_20180610215445.png)](http://www.codecogs.com/eqnedit.php?latex=D_P(Q)=\mathbb{E}_{\mathrm{X}\sim&space;P}\left&space;[&space;\log&space;\frac{P(x)}{Q(x)}&space;\right&space;]=\sum_{x&space;\in&space;\mathrm{X}}P(x)\left&space;[&space;\log&space;P(x)-\log&space;Q(x)&space;\right&space;])
**KL 散度在信息论中度量的是那个直观量**:
@@ -497,13 +497,13 @@ P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
**交叉熵**(cross-entropy):
-[![](../assets/公式_20180610215522.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=-\mathbb{E}_{\mathrm{X}\sim&space;P}\log&space;Q(x)=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;Q(x))
+[![](../_assets/公式_20180610215522.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=-\mathbb{E}_{\mathrm{X}\sim&space;P}\log&space;Q(x)=-\sum_{x&space;\in&space;\mathrm{X}}P(x)\log&space;Q(x))
> [信息量,信息熵,交叉熵,KL散度和互信息(信息增益)](https://blog.csdn.net/haolexiao/article/details/70142571) - CSDN博客
**交叉熵与 KL 散度的关系**:
-[![](../assets/公式_20180610215554.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=H(P)+D_P(Q))
+[![](../_assets/公式_20180610215554.png)](http://www.codecogs.com/eqnedit.php?latex=H_P(Q)=H(P)+D_P(Q))
**针对 Q 最小化交叉熵等价于最小化 P 对 Q 的 KL 散度**,因为 Q 并不参与被省略的那一项。
@@ -520,12 +520,12 @@ P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
必须对上溢和下溢进行**数值稳定**的一个例子是 **softmax 函数**:
-[![](../assets/公式_20180610215623.png)](http://www.codecogs.com/eqnedit.php?latex=\mathrm{softmax}(x)=\frac{\exp(x_i)}{\sum_{j=1}^n&space;\exp(x_j)})
+[![](../_assets/公式_20180610215623.png)](http://www.codecogs.com/eqnedit.php?latex=\mathrm{softmax}(x)=\frac{\exp(x_i)}{\sum_{j=1}^n&space;\exp(x_j)})
因为 softmax 解析上的函数值不会因为从输入向量减去或加上**标量**而改变,
于是一个简单的解决办法是对 x:
-[![](../assets/公式_20180610215656.png)](http://www.codecogs.com/eqnedit.php?latex=x=x-\max_ix_i)
+[![](../_assets/公式_20180610215656.png)](http://www.codecogs.com/eqnedit.php?latex=x=x-\max_ix_i)
减去 `max(x_i)` 导致 `exp` 的最大参数为 `0`,这排除了上溢的可能性。同样地,分母中至少有一个值为 `1=exp(0)` 的项,这就排除了因分母下溢而导致被零除的可能性。
@@ -553,11 +553,11 @@ P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
高斯分布,即正态分布(normal distribution):
-[![](../assets/公式_20180610215732.png)](http://www.codecogs.com/eqnedit.php?latex=N(x;\mu,\sigma^2)=\sqrt\frac{1}{2\pi\sigma^2}\exp\left&space;(&space;-\frac{1}{2\sigma^2}(x-\mu)^2&space;\right&space;))
+[![](../_assets/公式_20180610215732.png)](http://www.codecogs.com/eqnedit.php?latex=N(x;\mu,\sigma^2)=\sqrt\frac{1}{2\pi\sigma^2}\exp\left&space;(&space;-\frac{1}{2\sigma^2}(x-\mu)^2&space;\right&space;))
概率密度函数图像:
-![](../assets/TIM截图20180610131620.png)
+![](../_assets/TIM截图20180610131620.png)
其中峰的 `x` 坐标由 `µ` 给出,峰的宽度受 `σ` 控制;特别的,当 `µ = 0, σ = 1`时,称为标准正态分布
@@ -573,7 +573,7 @@ P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
正态分布可以推广到 n 维空间,这种情况下被称为**多维正态分布**。
-![](../assets/TIM截图20180610132602.png)
+![](../_assets/TIM截图20180610132602.png)
参数 `µ` 仍然表示分布的均值,只不过现在是一个向量。参数 Σ 给出了分布的协方差矩阵(一个正定对称矩阵)。
@@ -597,7 +597,7 @@ P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
深度学习(deep learning)通过简单的表示来表达复杂的表示,以解决表示学习中的核心问题。
-![](../assets/TIM截图20180610194353.png)
+![](../_assets/TIM截图20180610194353.png)
深度学习模型的示意图
@@ -650,7 +650,7 @@ P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
**多任务学习中一种普遍形式**:
-![](../assets/TIM截图20180610203703.png)
+![](../_assets/TIM截图20180610203703.png)
多任务学习在深度学习框架中可以以多种方式进行,该图展示了一种普遍形式:任务共享相同输入但涉及不同语义的输出。
@@ -679,7 +679,7 @@ P 对 Q 的 **KL散度**(Kullback-Leibler divergence):
可以想象,这些任务会足够相似(或许具有相似的输入和输出分布),因此我们认为模型参数 w(A) 和 w(B) 应彼此靠近。具体来说,我们可以使用以下形式的参数范数惩罚(这里使用的是 L2 惩罚,也可以使用其他选择):
-[![](../assets/公式_20180610215812.png)](http://www.codecogs.com/eqnedit.php?latex=\Omega&space;(w^{(A)},w^{(B)})=\left&space;\|&space;w^{(A)}-w^{(B)}&space;\right&space;\|^2_2)
+[![](../_assets/公式_20180610215812.png)](http://www.codecogs.com/eqnedit.php?latex=\Omega&space;(w^{(A)},w^{(B)})=\left&space;\|&space;w^{(A)}-w^{(B)}&space;\right&space;\|^2_2)
**参数共享**是这个思路下更流行的做法——强迫部分参数相等
@@ -703,7 +703,7 @@ Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差
具体来说,Bagging 涉及构造 k 个**不同的数据集**。每个数据集从原始数据集中**重复采样**构成,和原始数据集具有**相同数量**的样例。这意味着,每个数据集以高概率缺少一些来自原始数据集的例子,还包含若干重复的例子(更具体的,如果采样所得的训练集与原始数据集大小相同,那所得数据集中大概有原始数据集 **2/3** 的实例)
-![](../assets/TIM截图20180611150734.png)
+![](../_assets/TIM截图20180611150734.png)
**图像说明**:该图描述了 Bagging 如何工作。假设我们在上述数据集(包含一个 8、一个 6 和一个 9)上**训练数字 8** 的检测器。假设我们制作了两个不同的重采样数据集。 Bagging 训练程序通过有放回采样构建这些数据集。第一个数据集忽略 9 并重复 8。在这个数据集上,检测器得知数字**顶部有一个环就对应于一个 8**。第二个数据集中,我们忽略 6 并重复 9。在这种情况下,检测器得知数字**底部有一个环就对应于一个 8**。这些单独的分类规则中的每一个都是不可靠的,但如果我们平均它们的输出,就能得到鲁棒的检测器,**只有当 8 的两个环都存在时才能实现最大置信度**。
@@ -716,7 +716,7 @@ Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差
简单来说,Dropout (Srivastava et al., 2014) 通过**参数共享**提供了一种廉价的 **Bagging** 集成近似,能够训练和评估**指数级数量**的神经网络。
-![](../assets/TIM截图20180611152559.png)
+![](../_assets/TIM截图20180611152559.png)
Dropout 训练的集成包括所有从基础网络除去部分单元后形成的子网络。具体而言,只需将一些单元的**输出乘零**就能有效地删除一个单元。
@@ -787,8 +787,8 @@ Dropout 训练的集成包括所有从基础网络除去部分单元后形成的
二维和三维中的鞍点:
-![](../assets/TIM截图20180611171103.png)
-![](../assets/TIM截图20180611171213.png)
+![](../_assets/TIM截图20180611171103.png)
+![](../_assets/TIM截图20180611171213.png)
> 《深度学习》 4.3 基于梯度的优化方法
**鞍点激增对于训练算法来说有哪些影响?**
@@ -814,11 +814,11 @@ Dropout 训练的集成包括所有从基础网络除去部分单元后形成的
另一个想法是:正则化或约束参数,以引导“信息流”;或者说,希望**梯度向量**在反向传播时能维持其幅度。形式上,我们要使
-[![](../assets/公式_20180611194550.png)](http://www.codecogs.com/eqnedit.php?latex=(\nabla_{h^{(t)}}L)\frac{\partial&space;h^{(t)}}{\partial&space;h^{(t-1)}})
+[![](../_assets/公式_20180611194550.png)](http://www.codecogs.com/eqnedit.php?latex=(\nabla_{h^{(t)}}L)\frac{\partial&space;h^{(t)}}{\partial&space;h^{(t-1)}})
与梯度向量
-[![](../assets/公式_20180611194704.png)](http://www.codecogs.com/eqnedit.php?latex=\nabla_{h^{(t)}}L)
+[![](../_assets/公式_20180611194704.png)](http://www.codecogs.com/eqnedit.php?latex=\nabla_{h^{(t)}}L)
一样大。
@@ -828,7 +828,7 @@ Dropout 训练的集成包括所有从基础网络除去部分单元后形成的
2. 在这个目标下, Pascanu et al. (2013a) 提出了以下正则项:
- ![](../assets/TIM截图20180611194754.png)
+ ![](../_assets/TIM截图20180611194754.png)
这种方法的一个主要弱点是,在处理数据冗余的任务时如语言模型,它并不像 LSTM 一样有效。
@@ -838,7 +838,7 @@ Dropout 训练的集成包括所有从基础网络除去部分单元后形成的
## (批)随机梯度下降(SGD)与学习率
-![](../assets/TIM截图20180611195027.png)
+![](../_assets/TIM截图20180611195027.png)
SGD 及相关的小批量亦或更广义的基于梯度优化的在线学习算法,一个重要的性质是每一步更新的计算时间不依赖训练样本数目的多寡。因为它每个 step 的样本数是固定的。
@@ -850,7 +850,7 @@ SGD 算法中的一个关键参数是学习率。在实践中,有必要**随
实践中,一般会线性衰减学习率直到第 τ 次迭代:
-[![](../assets/公式_20180611195622.png)](http://www.codecogs.com/eqnedit.php?latex=\epsilon_k=(1-\alpha)\epsilon_0+\alpha\epsilon_\tau)
+[![](../_assets/公式_20180611195622.png)](http://www.codecogs.com/eqnedit.php?latex=\epsilon_k=(1-\alpha)\epsilon_0+\alpha\epsilon_\tau)
其中 α=k/τ。在 τ 步迭代之后,一般使 ϵ 保持常数。
@@ -867,13 +867,13 @@ SGD 算法中的一个关键参数是学习率。在实践中,有必要**随
## 带动量的 SGD
-![](../assets/TIM截图20180611203427.png)
+![](../_assets/TIM截图20180611203427.png)
从形式上看, 动量算法引入了变量 v 充当速度角色——它代表参数在参数空间移动的方向和速率。速度被设为负梯度的指数衰减平均。
之前,步长只是梯度范数乘以学习率。现在,步长取决于梯度序列的大小和排列。当许多连续的梯度指向相同的方向时,步长最大。如果动量算法总是观测到梯度 g,那么它会在方向 −g 上不停加速,直到达到最终速度,其中步长大小为
-[![](../assets/公式_20180611210928.png)](http://www.codecogs.com/eqnedit.php?latex=\frac{\epsilon\left\|g\right\|}{1-\alpha})
+[![](../_assets/公式_20180611210928.png)](http://www.codecogs.com/eqnedit.php?latex=\frac{\epsilon\left\|g\right\|}{1-\alpha})
在实践中,α 的一般取值为 0.5, 0.9 和 0.99,分别对应**最大速度** 2倍,10倍和100倍于普通的 SGD 算法。和学习率一样, α 也应该随着时间不断调整(变大),但没有收缩 ϵ 重要。
@@ -886,8 +886,8 @@ SGD 算法中的一个关键参数是学习率。在实践中,有必要**随
带有动量的 SGD(左/上) 和不带动量的 SGD(右/下):
-![](../assets/TIM截图20180611204215.png)
-![](../assets/TIM截图20180611204503.png)
+![](../_assets/TIM截图20180611204215.png)
+![](../_assets/TIM截图20180611204503.png)
> 《深度学习》 4.3.1 梯度之上: Jacobian 和 Hessian 矩阵
此图说明动量如何克服病态的问题:等高线描绘了一个二次损失函数(具有病态条件的 Hessian 矩阵)。一个病态条件的二次目标函数看起来像一个长而窄的山谷或具有陡峭边的峡谷。带动量的 SGD 能比较正确地纵向穿过峡谷;而普通的梯度步骤则会浪费时间在峡谷的窄轴上来回移动,因为梯度下降无法利用包含在 Hessian 矩阵中的曲率信息。
@@ -896,11 +896,11 @@ SGD 算法中的一个关键参数是学习率。在实践中,有必要**随
受 Nesterov 加速梯度算法 (Nesterov, 1983, 2004) 启发, Sutskever et al. (2013) 提出了动量算法的一个变种。其更新规则如下:
-![](../assets/TIM截图20180611211649.png)
+![](../_assets/TIM截图20180611211649.png)
其中参数 α 和 ϵ 发挥了和标准动量方法中类似的作用。Nesterov 动量和标准动量之间的**区别体现在梯度计算**上。下面是完整的 Nesterov 动量算法:
-![](../assets/TIM截图20180611211753.png)
+![](../_assets/TIM截图20180611211753.png)
Nesterov 动量中,梯度计算在施加当前速度之后。因此,Nesterov 动量可以解释为往标准动量方法中添加了一个校正因子。
@@ -916,7 +916,7 @@ Delta-bar-delta (Jacobs, 1988) 是一个早期的自适应学习率算法。该
## AdaGrad
-![](../assets/TIM截图20180611214508.png)
+![](../_assets/TIM截图20180611214508.png)
AdaGrad 会独立地适应所有模型参数的学习率。具体来说,就是缩放每个参数反比于其所有梯度历史平方值总和的平方根 (Duchi et al., 2011)。效果上具有损失最大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。
@@ -924,7 +924,7 @@ AdaGrad 会独立地适应所有模型参数的学习率。具体来说,就是
## RMSProp
-![](../assets/TIM截图20180611215422.png)
+![](../_assets/TIM截图20180611215422.png)
RMSProp 修改自 AdaGrad。AdaGrad 旨在应用于**凸问题**时快速收敛,而 RMSProp 在**非凸**设定下效果更好,改变梯度积累为指数加权的移动平均。
@@ -936,11 +936,11 @@ RMSProp 使用指数衰减平均以丢弃遥远过去的历史,使其能够在
**结合 Nesterov 动量的 RMSProp**
-![](../assets/TIM截图20180611215923.png)
+![](../_assets/TIM截图20180611215923.png)
## Adam
-![](../assets/TIM截图20180611220109.png)
+![](../_assets/TIM截图20180611220109.png)
Adam (Kingma and Ba, 2014) 是另一种学习率自适应的优化算法。
@@ -968,7 +968,7 @@ Adam (Kingma and Ba, 2014) 是另一种学习率自适应的优化算法。
**BN 算法**:
-![](../assets/TIM截图20180612104740.png)
+![](../_assets/TIM截图20180612104740.png)
BN 算法需要学习两个参数 γ 和 β.
> Ioffe and Szegedy, 2015, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
@@ -1003,7 +1003,7 @@ BN 算法需要学习两个参数 γ 和 β.
传统的神经网络中每一个输出单元会与每一个输入单元都产生交互。卷积网络改进了这一点,使具有稀疏交互的特征。CNN 通过使核(kernel、filter)的大小远小于输入的大小来达到的这个目的。
-![](../assets/TIM截图20180612120851.png)
+![](../_assets/TIM截图20180612120851.png)
举个例子,当处理一张图像时,输入的图像可能包含成千上万个像素点,但是我们可以通过只占用几十到上百个像素点的核来**检测一些小的、有意义的特征**,例如图像的边缘。
@@ -1015,7 +1015,7 @@ BN 算法需要学习两个参数 γ 和 β.
虽然看似减少了隐藏单元之间的交互,但实际上处在深层的单元可以间接地连接到全部或者大部分输入。
-![](../assets/TIM截图20180612121301.png)
+![](../_assets/TIM截图20180612121301.png)
## 参数共享(parameter sharing)
@@ -1026,7 +1026,7 @@ BN 算法需要学习两个参数 γ 和 β.
考虑一个具体的例子——**边缘检测**——来体会稀疏连接+参数共享带来的效率提升:
-![](../assets/TIM截图20180612154333.png)
+![](../_assets/TIM截图20180612154333.png)
两个图像的高度均为 280 个像素。输入图像的宽度为 320 个像素,而输出图像的宽度为 319 个像素(padding='VALID')。对于边缘检测任务而言,只需要一个包含**两个元素的卷积核**就能完成;而为了用矩阵乘法描述相同的变换,需要一个包含 320 × 280 × 319 × 280 ≈ 80亿个元素的矩阵(40亿倍)。
@@ -1077,7 +1077,7 @@ BN 算法需要学习两个参数 γ 和 β.
原书中也描述一些基本卷积的变体:局部卷积、平铺卷积;
-![](../assets/TIM截图20180612213144.png)
+![](../_assets/TIM截图20180612213144.png)
> 从上到下一次为局部卷积、平铺卷积和标准卷积;
>
> 《深度学习》 9.5 基本卷积函数的变体
@@ -1086,14 +1086,14 @@ BN 算法需要学习两个参数 γ 和 β.
## 转置卷积|反卷积(Transposed convolution)
-![](../assets/conv_no_padding_no_strides_transposed.gif)
+![](../_assets/conv_no_padding_no_strides_transposed.gif)
> No padding, no strides, transposed
> [如何理解深度学习中的deconvolution networks?](https://www.zhihu.com/question/43609045) - 知乎
## 空洞卷积|扩张卷积(Dilated convolution)
-![](../assets/conv_dilation.gif)
+![](../_assets/conv_dilation.gif)
> No padding, no stride, dilation
> [如何理解空洞卷积(dilated convolution)?](https://www.zhihu.com/question/54149221) - 知乎
@@ -1135,7 +1135,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
(最大)池化对平移是天然不变的,但池化也能用于学习其他不变性:
-![](../assets/TIM截图20180613101802.png)
+![](../_assets/TIM截图20180613101802.png)
这三个过滤器都旨在检测手写的数字 5。每个过滤器尝试匹配稍微**不同方向**的 5。当输入中出现 5 时,无论哪个探测单元被激活,最大池化单元都将产生较大的响应。
@@ -1177,7 +1177,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
循环神经网络中一些重要的设计模式包括以下几种:
1. (*)每个时间步都有输出,并且隐藏单元之间有循环连接的循环网络
- ![](../assets/TIM截图20180613150111.png)
+ ![](../_assets/TIM截图20180613150111.png)
- 将 x 值的输入序列映射到输出值 o 的对应序列
- 损失 L 衡量每个 o 与相应的训练目标 y 的距离
@@ -1188,14 +1188,14 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
2. 每个时间步都产生一个输出,只有当前时刻的输出到下个时刻的隐藏单元之间有循环连接的循环网络
- ![](../assets/TIM截图20180613150711.png)
+ ![](../_assets/TIM截图20180613150711.png)
- 此类 RNN 的唯一循环是从输出 o 到隐藏层 h 的反馈连接
- 表示能力弱于 RNN_1,单更容易训练
3. 隐藏单元之间存在循环连接,但读取整个序列后产生单个输出的循环网络
- ![](../assets/TIM截图20180613151014.png)
+ ![](../_assets/TIM截图20180613151014.png)
这样的网络可以用于概括序列并产生用于进一步处理的固定大小的表示
@@ -1214,11 +1214,11 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
根据隐层 h(t) 接受的是上时刻的隐层 h(t−1) 还是上时刻的输出 y(t−1),分为两种 RNN:
- Elman RNN
- [![](../assets/公式_20180613164438.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;h^{(t)}&=\tanh\left(&space;W_hx^{(t)}+U_hh^{(t-1)}+b_h&space;\right)\\&space;y^{(t)}&={\rm&space;softmax}\left(&space;W_yh^{(t)}+b_y&space;\right)\\&space;\end{aligned})
+ [![](../_assets/公式_20180613164438.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;h^{(t)}&=\tanh\left(&space;W_hx^{(t)}+U_hh^{(t-1)}+b_h&space;\right)\\&space;y^{(t)}&={\rm&space;softmax}\left(&space;W_yh^{(t)}+b_y&space;\right)\\&space;\end{aligned})
- Jordan RNN
- [![](../assets/公式_20180613164637.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;h^{(t)}&=\tanh\left(&space;W_hx^{(t)}+U_hy^{(t-1)}+b_h&space;\right)\\&space;y^{(t)}&={\rm&space;softmax}\left(&space;W_yh^{(t)}+b_y&space;\right)\&space;\end{aligned}}})
+ [![](../_assets/公式_20180613164637.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;h^{(t)}&=\tanh\left(&space;W_hx^{(t)}+U_hy^{(t-1)}+b_h&space;\right)\\&space;y^{(t)}&={\rm&space;softmax}\left(&space;W_yh^{(t)}+b_y&space;\right)\&space;\end{aligned}}})
> 《深度学习》 默认的 RNN 是 Elman RNN > [37. RNN(循环神经网络) 的几种基本设计模式**](#37-rnn循环神经网络-的几种基本设计模式)
@@ -1227,7 +1227,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
**LSTM**
> [Long short-term memory](https://en.wikipedia.org/wiki/Long_short-term_memory#Variants) - Wikipedia
-[![](../assets/公式_20180613170734.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;f_{t}&=\sigma(W_{f}x_{t}+U_{f}h_{t-1}+b_{f})\\&space;i_{t}&=\sigma(W_{i}x_{t}+U_{i}h_{t-1}+b_{i})\\&space;\tilde{c}_{t}&=\tanh(W_{c}x_{t}+U_{c}h_{t-1}+b_{c})\\&space;c_{t}&=f_{t}\circ&space;c_{t-1}+i_{t}\circ&space;\tilde{c}_{t}\\&space;o_{t}&=\sigma(W_{o}x_{t}+U_{o}h_{t-1}+b_{o})\\&space;h_{t}&=o_{t}\circ&space;\tanh(c_{t})&space;\end{aligned}}})
+[![](../_assets/公式_20180613170734.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;f_{t}&=\sigma(W_{f}x_{t}+U_{f}h_{t-1}+b_{f})\\&space;i_{t}&=\sigma(W_{i}x_{t}+U_{i}h_{t-1}+b_{i})\\&space;\tilde{c}_{t}&=\tanh(W_{c}x_{t}+U_{c}h_{t-1}+b_{c})\\&space;c_{t}&=f_{t}\circ&space;c_{t-1}+i_{t}\circ&space;\tilde{c}_{t}\\&space;o_{t}&=\sigma(W_{o}x_{t}+U_{o}h_{t-1}+b_{o})\\&space;h_{t}&=o_{t}\circ&space;\tanh(c_{t})&space;\end{aligned}}})
- 其中 f 为遗忘门(forget),i 为输入门(input),o 为输出门(output)。
- 每个门的输入都是 x 和 h,但是参数都是独立的(参数数量是基本 RNN 的 4 倍)
@@ -1241,7 +1241,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
**GRU**
> [Gated recurrent unit](https://en.wikipedia.org/wiki/Gated_recurrent_unit#Architecture) - Wikipedia
-[![](../assets/公式_20180613171757.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;z_{t}&=\sigma(W_{z}x_{t}+U_{z}h_{t-1}+b_{z})\\&space;r_{t}&=\sigma(W_{r}x_{t}+U_{r}h_{t-1}+b_{r})\\&space;\tilde{h}_t&=\tanh(W_{h}x_{t}+U_{h}(r_{t}\circ&space;h_{t-1})+b_{h})\\&space;h_{t}&=(1-z_{t})\circ&space;h_{t-1}+z_{t}\circ&space;\tilde{h}_t&space;\end{aligned}}})
+[![](../_assets/公式_20180613171757.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;z_{t}&=\sigma(W_{z}x_{t}+U_{z}h_{t-1}+b_{z})\\&space;r_{t}&=\sigma(W_{r}x_{t}+U_{r}h_{t-1}+b_{r})\\&space;\tilde{h}_t&=\tanh(W_{h}x_{t}+U_{h}(r_{t}\circ&space;h_{t-1})+b_{h})\\&space;h_{t}&=(1-z_{t})\circ&space;h_{t-1}+z_{t}\circ&space;\tilde{h}_t&space;\end{aligned}}})
- 其中 z 为更新门(update),r 为重置门(reset)
- GRU 可以看作是将 LSTM 中的遗忘门和输入门合二为一了
@@ -1260,14 +1260,14 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
**自编码器的一般结构**
-![](../assets/TIM截图20180613200023.png)
+![](../_assets/TIM截图20180613200023.png)
- 自编码器有两个组件:**编码器** f(将 x 映射到 h)和**解码器** g(将 h 映射到 r)
- 一个简单的自编码器试图学习 `g(f(x)) = x`;换言之,自编码器尝试将输入复制到输出
- 单纯将输入复制到输出没什么用,相反,训练自编码器的目标是获得有用的特征 h。
自编码器的学习过程就是最小化一个损失函数:
-[![](../assets/公式_20180613201829.png)](http://www.codecogs.com/eqnedit.php?latex=L(\boldsymbol{x},g(f(\boldsymbol{x}))))
+[![](../_assets/公式_20180613201829.png)](http://www.codecogs.com/eqnedit.php?latex=L(\boldsymbol{x},g(f(\boldsymbol{x}))))
# 自编码器一些常见的变形与应用:正则自编码器、稀疏自编码器、去噪自编码器*
@@ -1293,7 +1293,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 稀疏自编码器一般用来学习特征
- 稀疏自编码器简单地在训练时结合编码层的**稀疏惩罚** Ω(h) 和重构误差:
- [![](../assets/公式_20180613211004.png)](http://www.codecogs.com/eqnedit.php?latex=L(\boldsymbol{x},g(f(\boldsymbol{x})))+\Omega(\boldsymbol{h})&space;=&space;L(\boldsymbol{x},g(f(\boldsymbol{x})))+\lambda\sum_i\left|h_i\right|)
+ [![](../_assets/公式_20180613211004.png)](http://www.codecogs.com/eqnedit.php?latex=L(\boldsymbol{x},g(f(\boldsymbol{x})))+\Omega(\boldsymbol{h})&space;=&space;L(\boldsymbol{x},g(f(\boldsymbol{x})))+\lambda\sum_i\left|h_i\right|)
- 稀疏惩罚不算是一个正则项。这仅仅影响模型关于潜变量的分布。这个观点提供了训练自编码器的另一个动机:这是近似训练生成模型的一种途径。这也给出了为什么自编码器学到的特征是有用的另一个解释:它们描述的潜变量可以解释输入。
> 《深度学习》 14.2.1 稀疏自编码器
@@ -1302,12 +1302,12 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 去噪自编码器试图学习**更具鲁棒性的**特征
- 与传统自编码器不同,去噪自编码器(denoising autoencoder, DAE)最小化:
- [![](../assets/公式_20180613211437.png)](http://www.codecogs.com/eqnedit.php?latex=L(\boldsymbol{x},g(f(\boldsymbol{\tilde{x}}))))
+ [![](../_assets/公式_20180613211437.png)](http://www.codecogs.com/eqnedit.php?latex=L(\boldsymbol{x},g(f(\boldsymbol{\tilde{x}}))))
- 这里的 x~ 是**被某种噪声损坏**的 x 的副本,去噪自编码器需要预测原始未被损坏数据
- 破坏的过程一般是以某种概率分布(通常是二项分布)将一些值置 0.
- ![](../assets/TIM截图20180613211935.png)
+ ![](../_assets/TIM截图20180613211935.png)
> 《深度学习》 14.2.2 去噪自编码器,14.5 去噪自编码器
**为什么DAE有用?**
@@ -1327,8 +1327,8 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
## 什么是分布式表示?
- 所谓分布式表示就是用不同的特征,通过**组合**来表示不同的概念
- ![](../assets/TIM截图20180614103628.png)
- ![](../assets/TIM截图20180614104032.png)
+ ![](../_assets/TIM截图20180614103628.png)
+ ![](../_assets/TIM截图20180614104032.png)
(左)是 one-hot 表示(一种稀疏表示),(右)为分布式表示
> [神经网络如何学习分布式表示](http://baijiahao.baidu.com/s?id=1593632865778730392) - 百家号
@@ -1347,8 +1347,8 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
**分布式表示与符号表示**(最近邻):
-![](../assets/TIM截图20180614111241.png)
-![](../assets/TIM截图20180614111712.png)
+![](../_assets/TIM截图20180614111241.png)
+![](../_assets/TIM截图20180614111712.png)
- 两者都在学习如何将输入空间分割成多个区域
- 在输入维度相同的情况下,分布式表示能够比非分布式表示多分配指数级的区域——这一特性可用于解决**维度灾难**问题
@@ -1388,7 +1388,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
为了充分理解这个问题,我们假设输入空间如图所示被分成单元格。
-![](../assets/TIM截图20180614203447.png)
+![](../_assets/TIM截图20180614203447.png)
- 当数据的维度增大时(从左向右),我们感兴趣的配置数目会随指数级增长。
- 当空间是低维时,我们可以用由少量单元格去描述这个空间。泛化到新数据点时,通过检测和单元格中的训练样本的相似度,我们可以判断如何处理新数据点。
@@ -1415,8 +1415,8 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 迁移学习与多任务学习的一些结构:
- ![](../assets/TIM截图20180615111903.png)
- ![](../assets/TIM截图20180610203703.png)
+ ![](../_assets/TIM截图20180615111903.png)
+ ![](../_assets/TIM截图20180610203703.png)
> (左)> 《深度学习》 15.2 迁移学习和领域自适应;(右)> 《深度学习》 7.7 多任务学习
- 这两种都可能是迁移学习或者多任务学习的结构。~~迁移学习的输入在每个任务上具有不同的意义(甚至不同的维度),但是输出在所有的任务上具有**相同的语义**;多任务学习则相反~~
@@ -1438,7 +1438,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
**多模态学习(multi-modal learning)**
- 与 zero-shot learning 相同的原理可以解释如何能执行**多模态学习**(multimodal learning)
- ![](../assets/TIM截图20180615150955.png)
+ ![](../_assets/TIM截图20180615150955.png)
> 《深度学习》 15.2 迁移学习和领域自适应 图 15.3
@@ -1452,18 +1452,18 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 有向图模型(directed graphical model)是一种结构化概率模型,也被称为**信念网络**(belief network)或者**贝叶斯网络**(Bayesian network)
- 描述接力赛例子的有向图模型
- ![](../assets/TIM截图20180617140439.png)
+ ![](../_assets/TIM截图20180617140439.png)
- Alice 在 Bob 之前开始,所以 Alice 的完成时间 t0 影响了 Bob 的完成时间 t1。
- Carol 只会在 Bob 完成之后才开始,所以 Bob 的完成时间 t1 直接影响了 Carol 的完成时间 t2。
- 正式地说,变量 x 的有向概率模型是通过有向无环图 G(每个结点都是模型中的随机变量)和一系列**局部条件概率分布**(local conditional probability distribution)来定义的,x 的概率分布可以表示为:
- ![](../assets/TIM截图20180617141056.png)
+ ![](../_assets/TIM截图20180617141056.png)
- 其中 大P 表示结点 xi 的所有父结点
- 上述接力赛例子的概率分布可表示为:
- ![](../assets/TIM截图20180617141502.png)
+ ![](../_assets/TIM截图20180617141502.png)
**无向图模型**
- 无向图模型(undirected graphical Model),也被称为**马尔可夫随机场**(Markov random field, MRF)或者是**马尔可夫网络**(Markov network)
@@ -1519,14 +1519,14 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 在许多任务中,对比度是能够安全移除的最为明显的变化源之一。简单地说,对比度指的是图像中亮像素和暗像素之间差异的大小。
- 整个图像的对比度可以表示为:
- ![](../assets/TIM截图20180619104551.png),其中
+ ![](../_assets/TIM截图20180619104551.png),其中
- ![](../assets/TIM截图20180619104649.png),整个图片的平均强度
+ ![](../_assets/TIM截图20180619104649.png),整个图片的平均强度
**全局对比度归一化**(Global contrast normalization, GCN)
- GCN 旨在通过从每个图像中减去其平均值,然后重新缩放其使得其像素上的标准差等于某个常数 s 来防止图像具有变化的对比度。定义为:
- ![](../assets/TIM截图20180619104914.png)
+ ![](../_assets/TIM截图20180619104914.png)
- 从大图像中剪切感兴趣的对象所组成的数据集不可能包含任何强度几乎恒定的图像。此时,设置 λ = 0 来忽略小分母问题是安全的。(Goodfellow et al. 2013c)
- 随机剪裁的小图像更可能具有几乎恒定的强度,使得激进的正则化更有用。此时可以加大 λ (ϵ = 0, λ = 10; Coates et al. 2011)
- 尺度参数 s 通常可以设置为 1 (Coates et al. 2011),或选择使所有样本上每个像素的标准差接近 1 (Goodfellow et al. 2013c)
@@ -1535,7 +1535,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 式中的标准差可以看作是对图片 L2 范数的重新缩放(假设移除了均值),但我们倾向于标准差而不是 L2 范数来定义 GCN,是因为标准差包括除以像素数量这一步,从而基于标准差的 GCN 能够使用与图像大小无关的固定的 s.
- 而将标准差视为 L2 范数的缩放,可以将 GCN 理解成到球壳的一种映射。这可能是一个有用的属性,因为神经网络往往更好地响应空间方向,而不是精确的位置。
- ![](../assets/TIM截图20180619113501.png)
+ ![](../_assets/TIM截图20180619113501.png)
- (左) 原始的输入数据可能拥有任意的范数。
- (中) λ = 0 时候的 GCN 可以完美地将所有的非零样本投影到球上。这里我们令 s = 1, ϵ = 10−8。由于我们使用的 GCN 是基于归一化标准差而不是 L2 范数,所得到的球并不是单位球。
- (右) λ > 0 的正则化 GCN 将样本投影到球上,但是并没有完全地丢弃其范数中变化。 s 和 ϵ 的取值与之前一样。
@@ -1548,7 +1548,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- GCN 存在的问题催生了 LCN
- LCN 确保对比度在每个小窗口上被归一化,而不是作为整体在图像上被归一化。
- ![](../assets/TIM截图20180619114844.png)
+ ![](../_assets/TIM截图20180619114844.png)
- LCN 通常可以通过使用可分离卷积来计算特征映射的局部平均值和局部标准差,然后在不同的特征映射上使用逐元素的减法和除法。
- LCN 是可微分的操作,并且还可以作为一种非线性作用应用于网
@@ -1585,12 +1585,12 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 一个 n-gram 是一个包含 n 个**标记**的序列。
- 基于 n-gram 的模型定义一个条件概率——给定前 n − 1 个标记后的第 n 个标记的条件概率:
- ![](../assets/TIM截图20180619193332.png)
+ ![](../_assets/TIM截图20180619193332.png)
- 训练 n-gram 模型很简单,因为最大似然估计可以通过简单地统计每个可能的 n-gram 在训练集中**出现的频数**来获得。
- 通常我们同时训练 n-gram 模型和 n − 1 gram 模型。这使得下式可以简单地通过查找两个存储的概率来计算。
- ![](../assets/TIM截图20180619193540.png)
+ ![](../_assets/TIM截图20180619193540.png)
- n-gram 模型的缺点:
- **稀疏问题**——n-gram 模型最大似然的基本限制是,在许多情况下从训练集计数估计得到的 Pn 很可能为零。由此产生了各种**平滑算法**。
- **维数灾难**——经典的 n-gram 模型特别容易引起维数灾难。因为存在 |V|^n 可能的 n-gram,而且 |V| 通常很大。
@@ -1606,7 +1606,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 在原始空间中,每个词由一个one-hot向量表示,因此每对词彼此之间的欧氏距离都是 √2。
- 在**嵌入空间**中,经常出现在类似上下文中的词彼此接近。这通常导致具有相似含义的词变得邻近。
- ![](../assets/TIM截图20180619205103.png)
+ ![](../_assets/TIM截图20180619205103.png)
- 这些嵌入是为了可视化才表示为 2 维。在实际应用中,嵌入通常具有更高的维度并且可以同时捕获词之间多种相似性。
**高维输出**
@@ -1634,7 +1634,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
**神经机器翻译**(NMT)
- 编码器和解码器的想法 (Allen 1987; Chrisman 1991; Forcada and Ñeco 1997)很早就应用到了 NMT 中。
- ![](../assets/TIM截图20180619214629.png)
+ ![](../_assets/TIM截图20180619214629.png)
- 基于 MLP 方法的缺点是需要将序列预处理为固定长度。为了使翻译更加灵活,我们希望模型允许可变的输入长度和输出长度。所以大量的 NMT 模型使用 RNN 作为基本单元。
@@ -1642,7 +1642,7 @@ net = MaxPooling2D(pool_size=(2, 2))(net)
- 使用固定大小的表示概括非常长的句子(例如 60 个词)的所有语义细节是非常困难的。这需要使用足够大的 RNN。这会带来一些列训练问题。
- 更高效的方法是先读取整个句子或段落(以获得正在表达的上下文和焦点),然后一次翻译一个词,每次聚焦于输入句子的不同部分来收集产生下一个输出词所需的语义细节 (Bahdanau et al., 2015)——**Attention** 机制
- ![](../assets/TIM截图20180619214735.png)
+ ![](../_assets/TIM截图20180619214735.png)
- 由 Bahdanau et al. (2015) 引入的现代注意力机制,本质上是**加权平均**。
**其他应用**:
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\237\272\347\241\200.md" "b/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\237\272\347\241\200.md"
similarity index 87%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\237\272\347\241\200.md"
rename to "A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\237\272\347\241\200.md"
index b4163fc0..f5e4f0c9 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\237\272\347\241\200.md"
+++ "b/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\237\272\347\241\200.md"
@@ -65,7 +65,7 @@ Index
预测
评价
```
-
+
- 最重要的部分:数据收集、预处理、特征工程
- 示例
@@ -120,10 +120,10 @@ Index
## Seq2Seq 模型
> [NLP-序列建模](./NLP-序列建模.md)
- 大部分自然语言问题都可以使用 Seq2Seq 模型解决
-
+
- **“万物”皆 Seq2Seq**
-
+
## 评价机制
@@ -136,23 +136,23 @@ Index
基本公式
- **概率分布**(离散)的困惑度
-
+
> 其中 `H(p)` 即**信息熵**
- **概率模型**的困惑度
-
+
> 通常 `b=2`
- **指数部分**也可以是**交叉熵**的形式,此时困惑度相当于交叉熵的指数形式
-
+
> 其中 `p~` 为**测试集**中的经验分布——`p~(x) = n/N`,其中 `n` 为 x 的出现次数,N 为测试集的大小
**语言模型中的 PPX**
- 在 **NLP** 中,困惑度常作为**语言模型**的评价指标
-
+
- 直观来说,就是下一个**候选词数目**的期望值——
@@ -162,17 +162,17 @@ Index
> [一种机器翻译的评价准则——BLEU](https://blog.csdn.net/qq_21190081/article/details/53115580) - CSDN博客
- 机器翻译评价准则
- 计算公式
-
+
其中
-
-
-
+
+
+
> `c` 为生成句子的长度;`r` 为参考句子的长度——目的是**惩罚**长度过短的候选句子
- 为了计算方便,会加一层 `log`
-
+
> 通常 `N=4, w_n=1/4`
@@ -202,10 +202,10 @@ Index
Score("什么 有 语言 模型") --> 0.01 # 不太常见的说法,得分比较低
```
- 以上过程可以形式化为:
-
+
根据贝叶斯公式,有
-
+
- 其中每个条件概率就是**模型的参数**;如果这个参数都是已知的,那么就能得到整个序列的概率了
@@ -221,16 +221,16 @@ Index
## N-gram 语言模型
- 马尔可夫(Markov)假设——未来的事件,只取决于有限的历史
- 基于马尔可夫假设,N-gram 语言模型认为一个词出现的概率只与它前面的 n-1 个词相关
-
+
- 根据**条件概率公式**与**大数定律**,当语料的规模足够大时,有
-
+
- 以 `n=2` 即 bi-gram 为例,有
-
+
- 假设词表的规模 `N=200000`(汉语的词汇量),模型参数与 `n· 的关系表
-
+
### 可靠性与可区别性
- 假设没有计算和存储限制,`n` 是不是越大越好?
@@ -263,7 +263,7 @@ Index
## 神经概率语言模型 (NPLM)
> [专题-词向量](./专题-词向量.md)
- 神经概率语言模型依然是一个概率语言模型,它通过**神经网络**来计算概率语言模型中每个参数
-
+
- 其中 `g` 表示神经网络,`i_w` 为 `w` 在词表中的序号,`context(w)` 为 `w` 的上下文,`V_context` 为上下文构成的特征向量。
- `V_context` 由上下文的**词向量**进一步组合而成
@@ -271,7 +271,7 @@ Index
### N-gram 神经语言模型
> [A Neural Probabilistic Language Model](http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf) (Bengio, et al., 2003)
- 这是一个经典的神经概率语言模型,它沿用了 N-gram 模型中的思路,将 `w` 的前 `n-1` 个词作为 `w` 的上下文 `context(w)`,而 `V_context` 由这 `n-1` 个词的词向量拼接而成,即
-
+
- 其中 `c(w)` 表示 `w` 的词向量
- 不同的神经语言模型中 `context(w)` 可能不同,比如 Word2Vec 中的 CBOW 模型
@@ -287,12 +287,12 @@ Index
- 训练时,使用**交叉熵**作为损失函数
- **当训练完成时**,就得到了 N-gram 神经语言模型,以及副产品**词向量**
- 整个模型可以概括为如下公式:
-
-
+
+
> 原文的模型还考虑了投影层与输出层有有边相连的情形,因而会多一个权重矩阵,但本质上是一致的:
- >>
- >>
+ >>
+ >>
### 模型参数的规模与运算量
- 模型的超参数:`m, n, h, N`
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\256\236\350\267\265.md" "b/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\256\236\350\267\265.md"
similarity index 94%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\256\236\350\267\265.md"
rename to "A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\256\236\350\267\265.md"
index 4caab455..30ae4a16 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\256\236\350\267\265.md"
+++ "b/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206\345\256\236\350\267\265.md"
@@ -12,7 +12,7 @@ Index
- 利用 NMT 做双向翻译——将语言A 翻译到其他语言,再翻译回语言 A
这个过程相当于对样本进行了改写,使得训练样本的数量大大增加
- QANet 中的做法:
-
+
- 对材料中每个句子通过翻译引擎得到`k`句法语候选,然后将每句法语转回英语,得到`k^2`个改写的句子,从中随机选择一句作为
- 改写后答案的位置也可能改变,如何寻找**新答案的位置**?
diff --git a/codes/my_tensorflow/src/__init__.py "b/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/B-\344\270\223\351\242\230-\345\217\245\345\220\221\351\207\217.md"
similarity index 100%
rename from codes/my_tensorflow/src/__init__.py
rename to "A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/B-\344\270\223\351\242\230-\345\217\245\345\220\221\351\207\217.md"
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\344\270\223\351\242\230-A-\350\257\215\345\220\221\351\207\217.md" "b/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/B-\344\270\223\351\242\230-\350\257\215\345\220\221\351\207\217.md"
similarity index 89%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\344\270\223\351\242\230-A-\350\257\215\345\220\221\351\207\217.md"
rename to "A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/B-\344\270\223\351\242\230-\350\257\215\345\220\221\351\207\217.md"
index ad107189..1051a657 100644
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\344\270\223\351\242\230-A-\350\257\215\345\220\221\351\207\217.md"
+++ "b/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/B-\344\270\223\351\242\230-\350\257\215\345\220\221\351\207\217.md"
@@ -77,14 +77,14 @@ Index
- 每个训练样本为一个二元组 `(x, y)`,其中 `x`为特征,`y`为标签
假设上下文窗口的大小 `context_window =5`,即
-
+
或者说 `skip_window = 2`,有 `context_window = skip_window*2 + 1`
- CBOW 的训练样本为:
-
+
- SG 的训练样本为:
-
+
- 一般来说,`skip_window <= 10`
- 除了两套模型,Word2Vec 还提供了两套优化方案,分别基于 Hierarchical Softmax (层次SoftMax) 和 Negative Sampling (负采样)
@@ -93,7 +93,7 @@ Index
- 【**输入层**】将 `context(w)` 中的词映射为 `m` 维词向量,共 `2c` 个
- 【**投影层**】将输入层的 `2c` 个词向量累加求和,得到新的 `m` 维词向量
- 【**输出层**】输出层对应一棵**哈夫曼树**,以词表中词作为叶子节点,各词的出现频率作为权重——共 `N` 个叶子节点,`N-1` 个非叶子节点
-
+
- 对比 [N-gram 神经语言模型的网络结构](#n-gram-神经语言模型的网络结构)
- 【输入层】前者使用的是 `w` 的前 `n-1` 个词,后者使用 `w` 两边的词
@@ -108,15 +108,15 @@ Index
### 层次 SoftMax 的正向传播
- 层 Softmax 实际上是把一个超大的多分类问题转化成一系列二分类问题
- 示例:求 `P("足球"|context("足球"))`
-
+
- 从根节点到“足球”所在的叶子节点,需要经过 4 个分支,每次分支相当于一次**二分类**(逻辑斯蒂回归,二元Softmax)
-
+
> 这里遵从原文,将 0 作为正类,1 作为负类
- 而 `P("足球"|context("足球"))` 就是每次分类正确的概率之积,即
-
+
> 这里每个非叶子都对应一个参数 `θ_i`
@@ -129,7 +129,7 @@ Index
## 基于层次 Softmax 的 Skip-gram 模型
- 这里保留了【投影层】,但实际上只是一个恒等变换
-
+
- 从模型的角度看:CBOW 与 SG 模型的区别仅在于 `x_w` 的构造方式不同,前者是 `context(w)` 的词向量累加;后者就是 `w` 的词向量
- 虽然 SG 模型用中心词做特征,上下文词做类标,但实际上两者的地位是等价的
@@ -151,31 +151,31 @@ Index
- 如果不是从词表中采样,而是从语料中采样;显然,那些高频词被选为负样本的概率要大于低频词
- 在词表中采样时也应该遵循这个
- 因此,负采样算法实际上就是一个**带权采样**过程
-
+
### Word2Vec 中的做法
- 记
-
+
- 以这 `N+1` 个点对区间 `[0,1]` 做非等距切分
- 引入的一个在区间 `[0,1]` 上的 `M` 等距切分,其中 `M >> N`
-
+
> 源码中取 `M = 10^8`
- 然后对两个切分做投影,得到映射关系
-
+
- 采样时,每次生成一个 `[1, M-1]` 之间的整数 `i`,则 `Table(i)` 就对应一个样本;
当采样到正例时,跳过
- 特别的,Word2Vec 在计算 `len(w)` 时做了一些改动——为 `count(·)` 加了一个**指数**
-
+
## 一些源码细节
### `σ(x)` 的近似计算
- 类似带权采样的策略,用**查表**来代替计算
-
+
- 具体计算公式如下
-
+
> 因为 `σ(x)` 函数的饱和性,当 `x < -6 || x > 6` 时,函数值基本不变了
@@ -189,16 +189,16 @@ Index
**Sub-sampling 技巧**
- 源码中使用 Sub-sampling 技巧来解决高频词的问题,能带来 2~10 倍的训练速度提升,同时提高低频词的词向量精度
- 给定一个词频阈值 `t`,将 `w` 以 `p(w)` 的概率舍弃,`p(w)` 的计算如下
-
+
**Word2Vec 中的Sub-sampling**
- 显然,Sub-Sampling 只会针对 出现频次大于 `t` 的词
- 特别的,Word2Vec 使用如下公式计算 `p(w)`,效果是类似的
-
+
### 自适应学习率
- 预先设置一个初始的学习率 `η_0`(默认 0.025),每处理完 `M`(默认 10000)个词,就根据以下公式调整学习率
-
+
- 随着训练的进行,学习率会主键减小,并趋向于 0
- 为了方式学习率过小,Word2Vec 设置了一个阈值 `η_min`(默认 `0.0001 * η_0`);当学习率小于 `η_min`,则固定为 `η_min`。
@@ -214,7 +214,7 @@ Index
- 共现矩阵的实现方式
- 基于文档 - LSA 模型(SVD分解)
- 基于窗口 - 类似 skip-gram 模型中的方法
-
+
> `skip_window = 1` 的共现矩阵
@@ -231,7 +231,7 @@ Index
## GloVe 的基本思想
- GloVe 模型的是基于**共现矩阵**构建的
- GloVe 认为共现矩阵可以通过一些统计信息得到词之间的关系,这些关系可以一定程度上表达词的含义
-
+
- **solid** related to **ice** but not **steam**
- **gas** related to **stream** but not **ice**
@@ -243,28 +243,28 @@ Index
- 模型的训练过程就是拟合词向量的过程
## GloVe 的目标函数
-
+
其中
- `w_i` 和 `w_j` 为词向量
- `x_ij` 为 `w_i` 和 `w_j` 的共现次数
- `f(x)` 是一个权重函数,为了限制高频词和防止 `x_ij = 0`
-
+
- 当 `x_ij = 0` 时,有
-
+
### GloVe 目标函数的推导过程
> 以前整理在 OneNote 上的,有时间在整理
- 目标函数
-
-
-
-
-
+
+
+
+
+
- `w_i` 的权重函数
-
+
## GloVe 与 Word2Vec 的区别
- Word2Vec 本质上是一个神经网络;
@@ -279,7 +279,7 @@ Glove 也利用了**反向传播**来更新词向量,但是结构要更简单
- FastText 是从 Word2Vec 的 CBOW 模型演化而来的;
从网络的角度来看,两者的模型基本一致;**区别仅在于两者的输入和目标函数不同**;
-
+
> [基于层次 SoftMax 的 CBOW 模型](#基于层次-softmax-的-cbow-模型)
- FastText 与 CBOW 的相同点:
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-C-\344\270\223\351\242\230-\346\246\202\347\216\207\345\233\276\346\250\241\345\236\213.md" "b/B-\346\225\260\345\255\246/A-\346\246\202\347\216\207\350\256\272.md"
similarity index 100%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-C-\344\270\223\351\242\230-\346\246\202\347\216\207\345\233\276\346\250\241\345\236\213.md"
rename to "B-\346\225\260\345\255\246/A-\346\246\202\347\216\207\350\256\272.md"
diff --git "a/\346\225\260\345\255\246/B-\345\276\256\347\247\257\345\210\206\347\232\204\346\234\254\350\264\250.md" "b/B-\346\225\260\345\255\246/B-\345\276\256\347\247\257\345\210\206\347\232\204\346\234\254\350\264\250.md"
similarity index 74%
rename from "\346\225\260\345\255\246/B-\345\276\256\347\247\257\345\210\206\347\232\204\346\234\254\350\264\250.md"
rename to "B-\346\225\260\345\255\246/B-\345\276\256\347\247\257\345\210\206\347\232\204\346\234\254\350\264\250.md"
index b552c07b..d14c0e13 100644
--- "a/\346\225\260\345\255\246/B-\345\276\256\347\247\257\345\210\206\347\232\204\346\234\254\350\264\250.md"
+++ "b/B-\346\225\260\345\255\246/B-\345\276\256\347\247\257\345\210\206\347\232\204\346\234\254\350\264\250.md"
@@ -61,25 +61,25 @@
圆的面积公式:
-[![](../assets/公式_20180625144700.png)](http://www.codecogs.com/eqnedit.php?latex=Aera=\pi&space;R^2)
+[![](../_assets/公式_20180625144700.png)](http://www.codecogs.com/eqnedit.php?latex=Aera=\pi&space;R^2)
**如何从积分的角度推导出圆的面积公式?**
不同的划分方法会带来不同的积分公式,下面考虑将圆划分为大量的同心圆环,这种方法保留了圆的对称性。
-![](../assets/TIM截图20180625150305.png)
+![](../_assets/TIM截图20180625150305.png)
考虑其中一个环的面积,可以将其看做一个“类矩形”
-![](../assets/TIM截图20180625150437.png)
+![](../_assets/TIM截图20180625150437.png)
虽然这不是标准的矩形,但只要`dr`越小,它就越接近。它的面积可表示为:
-[![](../assets/公式_20180625205349.png)](http://www.codecogs.com/eqnedit.php?latex=area=2\pi&space;r\,dr)
+[![](../_assets/公式_20180625205349.png)](http://www.codecogs.com/eqnedit.php?latex=area=2\pi&space;r\,dr)
于是,圆的面积可以看作是这一系列矩形面积的叠加。
-![](../assets/TIM截图20180625151928.png)
+![](../_assets/TIM截图20180625151928.png)
这部分面积的求和可以等价于求“**函数`y = 2πr`图像在区间`[0, R]`下的面积**”。
@@ -89,7 +89,7 @@
直观来说,对函数`f(x)`在`[a, b]`上**积分**就是求函数`f(x)`在区间`[a,b]`下的图像与坐标轴包围的面积。记作:
-[![](../assets/公式_20180625205043.png)](http://www.codecogs.com/eqnedit.php?latex=\int_{a}^{b}f(x)dx)
+[![](../_assets/公式_20180625205043.png)](http://www.codecogs.com/eqnedit.php?latex=\int_{a}^{b}f(x)dx)
> 这实际上是**定积分**的概念,此外还有不定积分。
如果是其他图像,比如抛物线,该怎么求这部分的面积呢?
@@ -99,17 +99,17 @@
以抛物线 `f(x)=x^2` 为例。类似的,我们可以将这块区域划分成一系列细长的矩形。
-![](../assets/TIM截图20180625160257.png)
+![](../_assets/TIM截图20180625160257.png)
将 `x` 增加 `dx`,增加的面积可以看做是一个长`f(x)`、宽`dx`的矩形,只要`dx`越小,这条窄带就越接近矩形。
-![](../assets/TIM截图20180625162938.png)
+![](../_assets/TIM截图20180625162938.png)
把这部分面积记作 `dA`,表示面积的微小变化(difference in Area)
通过这个矩形,可以得到 `A`、`f(x)` 与 `dx` 之间的关系:
-[![](../assets/公式_20180625202144.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;&&space;dA&space;\approx&space;f(x)dx&space;\\&space;\Rightarrow&space;&&space;\frac{dA}{dx}\approx&space;f(x)&space;\\&space;\Rightarrow&space;&&space;\frac{A(x+dx)-A(x)}{dx}&space;\approx&space;f(x)&space;\end{aligned}}})
+[![](../_assets/公式_20180625202144.png)](http://www.codecogs.com/eqnedit.php?latex={\displaystyle&space;{\begin{aligned}&space;&&space;dA&space;\approx&space;f(x)dx&space;\\&space;\Rightarrow&space;&&space;\frac{dA}{dx}\approx&space;f(x)&space;\\&space;\Rightarrow&space;&&space;\frac{A(x+dx)-A(x)}{dx}&space;\approx&space;f(x)&space;\end{aligned}}})
这里引出了微积分中另一个重要的概念——**导数**。`dA/dx` 就是 "A 的导数"
> 更严格的说法是:"A 的导数"是“当 `dx → 0` 时,`dA/dx` 所趋向的值”。(下一节会讨论导数的定义)
@@ -129,12 +129,12 @@
考虑这个示例:一辆车从 A 点起,先加速,再减速,至 100 米外的 B 点停下,整个过程花费 10 秒。
-![](../assets/TIM截图20180626114634.png)
+![](../_assets/TIM截图20180626114634.png)
把车速的图像加入其中,可以发现:两者存在着某种联系:其中之一改变的话,也会引起另一个发生变化。
-![](../assets/TIM截图20180626111415.png)
-![](../assets/TIM截图20180626112123.png)
+![](../_assets/TIM截图20180626111415.png)
+![](../_assets/TIM截图20180626112123.png)
@@ -142,7 +142,7 @@
- 在绘制速度图像的时候,需要给每个单独的时间点关联一个速度值,但是计算速度却需要两个时间点上的距离。
- 记时间差为 `dt`,距离差为 `ds`,那么这段时间内的速度就能用 `ds/dt` 表示
- ![](../assets/TIM截图20180626111112.png)
+ ![](../_assets/TIM截图20180626111112.png)
> 当年的微积分创始人们也经历了同样的思维冲突。
- 换言之,速度只有在一段会时间内的才有意义;“瞬时”的说法会带来矛盾
@@ -153,7 +153,7 @@
**导数的定义**
- 在纯数学领域,**导数**不是 `dt` 为某个具体值时 `ds/dt` 的值 ,而是当 `dt` 的值**无限逼近 0 时**这个比值的**极限**。
- [![](../assets/公式_20180627210310.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{ds(t)}{dt}=\underbrace{\frac{s(t+dt)-s(t)}{dt}}_{dt\rightarrow&space;0}&space;\end{aligned})
+ [![](../_assets/公式_20180627210310.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{ds(t)}{dt}=\underbrace{\frac{s(t+dt)-s(t)}{dt}}_{dt\rightarrow&space;0}&space;\end{aligned})
> 严格的定义在[[7. 极限](#7-极限)]一章给出
- 从图像的角度,(某一点的)导数有一个直观的含义:就是经过图像上该点切线的斜率。
@@ -164,7 +164,7 @@
- 抛开求导公式,先来看一下面对一个实际的问题,该如何求解(在某一点处的)导数。
- 对于 `s(t)=t^3` 在 `t=2` 处的导数,根据导数的定义,有
- [![](../assets/公式_20180626200536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{ds(t)}{dt}&space;&=\frac{s(t+dt)-s(t)}{dt}\\&space;\Rightarrow&space;\frac{d(t^3)}{dt}&space;&=\frac{(t+dt)^3-t^3}{dt}\\&space;&=\frac{t^3+3t^2(dt)+st(dt)^2+(dt)^3-t^3}{dt}\\&space;&=3t^2+3t(dt)+(dt)^2&space;\end{aligned})
+ [![](../_assets/公式_20180626200536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{ds(t)}{dt}&space;&=\frac{s(t+dt)-s(t)}{dt}\\&space;\Rightarrow&space;\frac{d(t^3)}{dt}&space;&=\frac{(t+dt)^3-t^3}{dt}\\&space;&=\frac{t^3+3t^2(dt)+st(dt)^2+(dt)^3-t^3}{dt}\\&space;&=3t^2+3t(dt)+(dt)^2&space;\end{aligned})
- 当 `dt` 趋向 0 时,后两项也会趋于 0,进而消去。代入 `t=2` 可以得到在该点处的导数为 12
- 更一般的,称 `s'(t) = 3*t^2` 为 `s(t) = t^3` 的**导函数**。
@@ -190,39 +190,39 @@
- 此外,`x^2` 还有另一个更直接的含义:长为 `x` 的正方形的面积。
- 假如给边长 `x` 一个微小的增量 `dx`,那么正方形的增量(变化量)是多少?
- ![](../assets/TIM截图20180626211449.png)
+ ![](../_assets/TIM截图20180626211449.png)
- 应该时刻记住的 `dx` 是一个微小的量——这意味着你可以**忽略所有次数高于 1 的 `dx` 项**——换言之,一个微小量的平方(或更高次方)是一个可以忽略的变化量
- 由此,可以得到:
- [![](../assets/公式_20180626212536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&df=2xdx\\&space;\Rightarrow&space;&&space;\frac{df}{dx}=2x&space;\end{aligned})
+ [![](../_assets/公式_20180626212536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&df=2xdx\\&space;\Rightarrow&space;&&space;\frac{df}{dx}=2x&space;\end{aligned})
- 上一节给出了 `f(x) = x^3` 导数的代数推导过程,这里也可以作为立方体体积来用几何的方式推导。
- ![](../assets/TIM截图20180626213324.png)
+ ![](../_assets/TIM截图20180626213324.png)
**负的变化量**
- 上述两个例子的变化量都是增量(正值),但实际上**变化量也可能是负值**,比如 `f(x) = 1/x`——考虑这样一个特殊的矩形,长 `x`,宽 `1/x`,它的面积恒为 1.
- ![](../assets/TIM截图20180626221601.png)
+ ![](../_assets/TIM截图20180626221601.png)
> 注意:这里的变化量不再是矩形的面积了,而是**矩形的高**
- 通过简单的几何知识,可知矩形**高**的变化量为:
- [![](../assets/公式_20180626223957.png)](http://www.codecogs.com/eqnedit.php?latex=d(\frac{1}{x})=-(\frac{1}{x}-\frac{1}{x+dx}))
+ [![](../_assets/公式_20180626223957.png)](http://www.codecogs.com/eqnedit.php?latex=d(\frac{1}{x})=-(\frac{1}{x}-\frac{1}{x+dx}))
- 从而得到 `1/x` 的导数为:
- [![](../assets/公式_20180626224325.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&&space;d(\frac{1}{x})=\frac{-dx}{x^2+xdx}&space;\\&space;\Rightarrow&space;&&space;\frac{d(\frac{1}{x})}{dx}=\frac{-1}{x^2+xdx}=-\frac{1}{x^2}&space;\end{aligned})
+ [![](../_assets/公式_20180626224325.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&&space;d(\frac{1}{x})=\frac{-dx}{x^2+xdx}&space;\\&space;\Rightarrow&space;&&space;\frac{d(\frac{1}{x})}{dx}=\frac{-1}{x^2+xdx}=-\frac{1}{x^2}&space;\end{aligned})
**幂函数的导数**
- 以上 `x^2`、`x^3` 和 `x^-1` 都遵循了幂函数的求导公式:
- [![](../assets/公式_20180626213915.png)](http://www.codecogs.com/eqnedit.php?latex=\frac{d(x^n)}{dx}=nx^{n-1})
+ [![](../_assets/公式_20180626213915.png)](http://www.codecogs.com/eqnedit.php?latex=\frac{d(x^n)}{dx}=nx^{n-1})
- 思考一下为什么这个公式也适用于 2 和 3 以外的指数——求导的一个关键点在于很大一部分项因为包含 `dx` 的高次幂,可以被忽略——因此有
- ![](../assets/TIM截图20180626214855.png)
+ ![](../_assets/TIM截图20180626214855.png)
- 当指数小于 0 时,会更复杂一些——比如 `x^-2` 可以考虑一个边长为 `√x` 的正方形。
@@ -231,20 +231,20 @@
**三角函数的导数**
- 正弦函数的定义
- ![](../assets/TIM截图20180627100028.png)
- ![](../assets/TIM截图20180627103330.png)
+ ![](../_assets/TIM截图20180627100028.png)
+ ![](../_assets/TIM截图20180627103330.png)
- `θ=0.8` 表示单位圆弧长为 `0.8` 时对应的角度为 `θ`(单位圆的周长为 `2π`)
- `sin(θ)` 表示此时该点距离 x 轴的高度(可能为负)
- 当 `θ` 增加时,`sin(θ)` 的值会在 -1 到 1 之间上下摆动
- `sin(θ)` 当 `θ` 增加时的微小变化量
- ![](../assets/TIM截图20180627104200.png)
+ ![](../_assets/TIM截图20180627104200.png)
- 在近似的观点下,应该有这样的直觉——可以把那一段微小的圆弧`dθ`看作是直线
- 根据三角函数的定义,有
- [![](../assets/公式_20180627104751.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&d(\sin\theta)=\cos\theta\,d\theta\\\Rightarrow&space;&\frac{d(\sin\theta)}{d\theta}=\cos\theta&space;\end{aligned})
+ [![](../_assets/公式_20180627104751.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&d(\sin\theta)=\cos\theta\,d\theta\\\Rightarrow&space;&\frac{d(\sin\theta)}{d\theta}=\cos\theta&space;\end{aligned})
# 直观理解链式法则
@@ -256,34 +256,34 @@
## 加法法则
-[![](../assets/公式_20180627113753.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&d(g(x)+h(x))=\frac{dg}{dx}+\frac{dh}{dx}\\&space;\end{aligned})
+[![](../_assets/公式_20180627113753.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&d(g(x)+h(x))=\frac{dg}{dx}+\frac{dh}{dx}\\&space;\end{aligned})
-![](../assets/TIM截图20180627111545.png)
+![](../_assets/TIM截图20180627111545.png)
> 加法法则比较简单,可以在坐标轴中展示
## 乘法法则
“左乘**右导** + 右乘**左导**”:
-[![](../assets/公式_20180627154921.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d}{dx}(g(x)h(x))=h(x)\frac{d\,g(x)}{dx}+g(x)\frac{d\,h(x)}{dx}&space;\end{aligned})
+[![](../_assets/公式_20180627154921.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d}{dx}(g(x)h(x))=h(x)\frac{d\,g(x)}{dx}+g(x)\frac{d\,h(x)}{dx}&space;\end{aligned})
-![](../assets/TIM截图20180627114343.png)
+![](../_assets/TIM截图20180627114343.png)
> 在数学中,如果你要处理两项的乘积,用**面积**来理解会更方便
## 复合函数的求导法则——链式法则
**链式法则**:
-[![](../assets/公式_20180627160852.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d}{dx}g(h(x))=\frac{dg(h(x))}{dh(x)}\frac{dh(x)}{dx}=\frac{dg}{dh}\frac{dh}{dx}&space;\end{aligned})
+[![](../_assets/公式_20180627160852.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d}{dx}g(h(x))=\frac{dg(h(x))}{dh(x)}\frac{dh(x)}{dx}=\frac{dg}{dh}\frac{dh}{dx}&space;\end{aligned})
-![](../assets/TIM截图20180627155759.png)
-![](../assets/TIM截图20180627155845.png)
+![](../_assets/TIM截图20180627155759.png)
+![](../_assets/TIM截图20180627155845.png)
-![](../assets/TIM截图20180627155928.png)
-![](../assets/TIM截图20180627160125.png)
+![](../_assets/TIM截图20180627155928.png)
+![](../_assets/TIM截图20180627160125.png)
> 链式法则的表达式在说:看看输出值 g 的微小变化除以 h 的微小变化是多少(h 是要带入函数 g 中的值);然后乘以 h 微小变化与 x 微小变化的比值
-![](../assets/TIM截图20180627161532.png)
+![](../_assets/TIM截图20180627161532.png)
> 这些 `dh` 最终会被消去,结果就是输出值 g 的微小变化与输入值 x 的微小变化的比值
>
> `dh` 的消去并不只是符号上的技巧,而是真实反映出在求导时,各微小变化量发生了什么(?)
@@ -296,12 +296,12 @@
**从`2^t`开始**:
- 根据导数的定义,有
- [![](../assets/公式_20180627205326.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d2^t}{dt}&space;&=\frac{2^{t+dt}-2^t}{dt}\\&space;&=\frac{2^t2^{dt}-2^t}{dt}\\&space;&=2^t\cdot\frac{2^{dt}-1}{dt}\\&space;&=2^t\cdot&space;h&space;\end{aligned})
+ [![](../_assets/公式_20180627205326.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d2^t}{dt}&space;&=\frac{2^{t+dt}-2^t}{dt}\\&space;&=\frac{2^t2^{dt}-2^t}{dt}\\&space;&=2^t\cdot\frac{2^{dt}-1}{dt}\\&space;&=2^t\cdot&space;h&space;\end{aligned})
- 当 `dt → 0` 时,`h` 趋向于一个常数 `0.6931...`
- 也就是说,`2^t` 图像上各点处**切线的斜率 = 该点的函数值 * 一个常数**
- ![](../assets/TIM截图20180627210731.png)
+ ![](../_assets/TIM截图20180627210731.png)
> 原视频对 `2^t` 赋予了一些实际意义(质量)来说明其**变化量与自身成比例**
- 类似的,`3^t` 也存在这样一个 `h=1.0986...`;`8^t` 则是 `h=2.0794...`
@@ -310,7 +310,7 @@
**是否存在某个数,使 `h` 恰为 `1`?——这个数就是自然常数 `e`**
- 不要问为什么当 `e^t` 时,`h=1`;因为 `e` 就是如此定义的。
- ![](../assets/TIM截图20180627212338.png)
+ ![](../_assets/TIM截图20180627212338.png)
> 和“为什么 π 正好等于圆的周长比直径”一样,π 就是这么定义的。
>
@@ -320,7 +320,7 @@
- 有了自然常数 `e` 以及链式法则,就可以求出其他指数函数的导数了
- 根据指数函数的性质与链式法则,有
- [![](../assets/公式_20180627213245.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d(c^t)}{dt}&space;&=\frac{d(e^{\ln(c)t})}{dt}\\&space;&=\ln(c)e^{\ln(c)t}=\ln(c)c^t&space;\end{aligned})
+ [![](../_assets/公式_20180627213245.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{d(c^t)}{dt}&space;&=\frac{d(e^{\ln(c)t})}{dt}\\&space;&=\ln(c)e^{\ln(c)t}=\ln(c)c^t&space;\end{aligned})
- 事实上,在微积分中,指数函数基本都是以 `e^ct` 的形式出现的,很少会直接使用 `c^t` 的形式
@@ -328,7 +328,7 @@
- 现实世界中,很多自然现象里的**变化率**与**变化量**是成正比的
- 比如:在室温环境下,热水变凉的速率与水和房间的温差成正比(或者说,温差的变化率与温差本身成正比)
- ![](../assets/TIM截图20180627213951.png)
+ ![](../_assets/TIM截图20180627213951.png)
- 尽管指数函数有多种写法,但是将其表达为以 `e` 为底的幂函数是非常自然的。
- 因为 `e` 有着非常自然的含义,它就是变化率与数量本身的比例系数。(?)
@@ -344,12 +344,12 @@
---
- 圆的方程就是一个隐函数,比如 `x^2 + y^2 = 5^2`,下面需要求圆上一点的斜率(不考虑几何方法)
- ![](../assets/TIM截图20180628104522.png)
+ ![](../_assets/TIM截图20180628104522.png)
- 因为这里的曲线并不是一个函数图像,所以不能单纯对其求导——它不存在变量 x 的微小变化对函数值 y 的微小变化
- 当然,如果我们的目标只是求 `dy/dx`,那么对等式两边同时求导可以解决:
- [![](../assets/公式_20180628110309.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&d(x^2+y^2)=d(5^2)\\\Rightarrow&space;&2xdx+2ydy=0\\\Rightarrow&space;&\frac{dy}{dx}=\frac{-x}{y}&space;\end{aligned})
+ [![](../_assets/公式_20180628110309.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&d(x^2+y^2)=d(5^2)\\\Rightarrow&space;&2xdx+2ydy=0\\\Rightarrow&space;&\frac{dy}{dx}=\frac{-x}{y}&space;\end{aligned})
- **为什么这么做?**
@@ -357,7 +357,7 @@
---
- 这是一个更实际的例子:开始时,梯子上端距地面 4m(`y=4`),下端距墙 3m(`x=3`)。如果梯子的上端以 `1 m/s` 的速度下滑,那么下端左滑的速度是多少?
- ![](../assets/TIM截图20180628110920.png)
+ ![](../_assets/TIM截图20180628110920.png)
- 等式的左边可以看做是一个关于时间 `t` 的函数,于是对**表达式左边**求导的含义相当于在问“经过短暂的时间 `dt`,`y` 会减少一点,`x` 会增加一点,那么整体的变化量是多少?”,而**表达式右边**告诉我们这个变化量为 `0`。
- 带入 `x(t)=3, y(t)=4, dy/dt=1`,就能求出 `dx/dt` 了。
@@ -369,15 +369,15 @@
>
> 在隐函数的导数中,原来的变量看做常数,比如这里 `2xdx + 2ydy = 0` 中的 `x` 和 `y`
- ![](../assets/TIM截图20180628120153.png)
- ![](../assets/TIM截图20180628120634.png)
+ ![](../_assets/TIM截图20180628120153.png)
+ ![](../_assets/TIM截图20180628120634.png)
> 显然,(左)的正体变化量就不满足使 S 保持不变
**示例 3:`sin(x)y^2 = x`**
---
- 该函数的图像是一系列 U 型曲线
- ![](../assets/TIM截图20180628121250.png)
+ ![](../_assets/TIM截图20180628121250.png)
> 有了这个等式,就能方便求出 `dy/dx` 了。
- 对表达式的两边求导,就可以得到导数的隐函数,它对 `x` 和 `y` 的整体微小变化量作出了限制。
@@ -385,7 +385,7 @@
**示例 4:`ln(x)`的导数——从已有的导函数推算出其他函数的导函数**
- 根据指数函数与对数函数的关系,有
- [![](../assets/公式_20180628141926.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&y=\ln(x)\\\Rightarrow&space;&e^y=x\\\Rightarrow&space;&e^ydy=dx\\\Rightarrow&space;&\frac{dy}{dx}=\frac{1}{e^y}=\frac{1}{e^{\ln(x)}}=\frac{1}{x}\\\Rightarrow&space;&\frac{d\ln(x)}{dx}=\frac{1}{x}&space;\end{aligned})
+ [![](../_assets/公式_20180628141926.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;&y=\ln(x)\\\Rightarrow&space;&e^y=x\\\Rightarrow&space;&e^ydy=dx\\\Rightarrow&space;&\frac{dy}{dx}=\frac{1}{e^y}=\frac{1}{e^{\ln(x)}}=\frac{1}{x}\\\Rightarrow&space;&\frac{d\ln(x)}{dx}=\frac{1}{x}&space;\end{aligned})
**多元微积分**
- 隐函数求导是**多元微积分**的入门。两者的要点是一样的,需要理解这多个变量是如何联系在一起变化的。
@@ -398,15 +398,15 @@
## 导数的正式定义
- 在[[2.2. 导数的定义与计算](#22-导数的定义与计算)]已经给出了导数的计算公式:
- [![](../assets/公式_20180628143525.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\underbrace{\frac{f(x+dx)-f(x)}{dx}}_{dx\rightarrow&space;0}&space;\end{aligned})
+ [![](../_assets/公式_20180628143525.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\underbrace{\frac{f(x+dx)-f(x)}{dx}}_{dx\rightarrow&space;0}&space;\end{aligned})
导数的正式定义:
- [![](../assets/公式_20180628144611.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\lim_{\Delta&space;x&space;\to&space;0}\frac{f(x+\Delta&space;x)-f(x)}{\Delta&space;x}&space;\end{aligned})
+ [![](../_assets/公式_20180628144611.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\lim_{\Delta&space;x&space;\to&space;0}\frac{f(x+\Delta&space;x)-f(x)}{\Delta&space;x}&space;\end{aligned})
或
- [![](../assets/公式_20180628144731.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\lim_{h&space;\to&space;0}\frac{f(x+h)-f(x)}{h}&space;\end{aligned})
+ [![](../_assets/公式_20180628144731.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\lim_{h&space;\to&space;0}\frac{f(x+h)-f(x)}{h}&space;\end{aligned})
> 为什么不用 `dx`?——`dx` 本身已经表达了求极限的含义——使用 `dx` 的表示容易将其理解成“无穷小的变化量”;**更正确的**解读应该是把它看做一个具体的、有限小的变化量,并时刻考虑 `dx → 0` 时的情况([3. 用几何来求导](#3-用几何来求导))。
>
@@ -420,12 +420,12 @@
> 设函数`f(x)`在点`x0`的某一**去心邻域**内有定义,如果存在常数`a`,对于任意给定的正数`ϵ`,都`∃δ>0`,使不等式`|f(x)-a| < ϵ`在`|x-x0| ∈ (0,δ)`恒成立,那么`a`就叫做函数`f(x)`当`x→x0`时的极限,记作
>
-> [![](../assets/公式_20180628200345.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\lim_{x&space;\to&space;x_0}f(x)=a&space;\end{aligned})
+> [![](../_assets/公式_20180628200345.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\lim_{x&space;\to&space;x_0}f(x)=a&space;\end{aligned})
**极限存在与不存在的两个例子**
-![](../assets/TIM截图20180628201027.png)
-![](../assets/TIM截图20180628201344.png)
+![](../_assets/TIM截图20180628201027.png)
+![](../_assets/TIM截图20180628201344.png)
> 极限存在的前提是,你总能在距离极限点`x0`距离为`δ(>0)`的取值范围内,找到一系列取值点,使得范围内的任一取值点,它的函数值都在距离`f(x0)`为`ϵ(>0)`的范围内——关键在于这种情况对于任意`ϵ`都成立——无论`ϵ`多小,你总能找到与之对应的`δ`
## 利用导数来求极限——洛必达法则
@@ -434,29 +434,29 @@
如果函数在该点没有定义呢?比如 `sin(πx)/(x^2-1)`,该函数在`x0=±1`处就没有定义。
-![](../assets/TIM截图20180628203925.png)
+![](../_assets/TIM截图20180628203925.png)
**洛必达法则**
- 洛必达法则专门用于求解 `0/0` 型和 `∞/∞` 的极限值。
- 导数是由极限定义的,但反过来,也能利用导数来求极限
- 洛必达法则利用了这样一个性质——当`f(a)=0`时,在`a`的附近,有`f(a+dx)=f'(a+dx)`。如图所示:
- ![](../assets/TIM截图20180628211047.png)
+ ![](../_assets/TIM截图20180628211047.png)
> 当 `dx` 越小,这个比值就越精确
- 洛必达法则:
- [![](../assets/公式_20180628210652.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\lim_{x&space;\to&space;a}\frac{f(x)}{g(x)}=\lim_{x&space;\to&space;a}\frac{f%27(x)}{g%27(x)}=A&space;\end{aligned})
+ [![](../_assets/公式_20180628210652.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\lim_{x&space;\to&space;a}\frac{f(x)}{g(x)}=\lim_{x&space;\to&space;a}\frac{f%27(x)}{g%27(x)}=A&space;\end{aligned})
> 条件:1)`f(x)`和`g(x)`在点`a`处的极限都为 0;2)`f(x)`和`g(x)`在点`a`的某去心领域内可导,且`g'(x)!=0`;3)`A`可以为实数,也可以为`±∞`
>
> 注意,只要满足以上条件,洛必达法则是可以继续进行的
- [![](../assets/公式_20180628211807.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\lim_{x&space;\to&space;a}\frac{f(x)}{g(x)}=\lim_{x&space;\to&space;a}\frac{f%27(x)}{g%27(x)}=\lim_{x&space;\to&space;a}\frac{f%27%27(x)}{g%27%27(x)}=...&space;\end{aligned})
+ [![](../_assets/公式_20180628211807.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\lim_{x&space;\to&space;a}\frac{f(x)}{g(x)}=\lim_{x&space;\to&space;a}\frac{f%27(x)}{g%27(x)}=\lim_{x&space;\to&space;a}\frac{f%27%27(x)}{g%27%27(x)}=...&space;\end{aligned})
- 这么看,实际上,求解导数的过程也是在使用洛必达法则
- [![](../assets/公式_20180628144731.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\lim_{h&space;\to&space;0}\frac{f(x+h)-f(x)}{h}&space;\end{aligned})
+ [![](../_assets/公式_20180628144731.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{df(x)}{dx}=\lim_{h&space;\to&space;0}\frac{f(x+h)-f(x)}{h}&space;\end{aligned})
> 分子分母在 `h→0` 处的极限都为 `0`
@@ -464,7 +464,7 @@
在[1.2. 积分与导数](#12-积分与导数)就提到过,积分其实就是求导的逆运算
-![](../assets/TIM截图20180629094906.png)
+![](../_assets/TIM截图20180629094906.png)
**示例:距离是速度对时间的积分**
---
@@ -472,15 +472,15 @@
- 在[[2.1. 节](#21-瞬时变化率引起的歧义导数的悖论)]介绍这个例子时,是“已知距离函数`s(t)`,来推导速度函数`v(t)`”;现在“已知每个时间点的速度 `v(t)`,来求距离`s(t)`”
- 从数学的角度,前者的问题等价于求“`s(t)`的导数”,于是现在的问题也就是求“哪个函数的导数是`v(t)`”——这通常被称为“求函数的‘**原函数**’(或‘反导数’)”
- ![](../assets/TIM截图20180629100103.png)
+ ![](../_assets/TIM截图20180629100103.png)
- 类比[[1.1. 节](#11-推导圆的面积---积分的直观理解)]中推导圆面积的公式,这个问题可以转化成求解曲线下方的面积
- ![](../assets/TIM截图20180629101348.png)
+ ![](../_assets/TIM截图20180629101348.png)
- 这个过程可以表示为 `v(t)` 的“积分”:
- ![](../assets/TIM截图20180629102412.png)
+ ![](../_assets/TIM截图20180629102412.png)
> 为什么不适用`∑`?——`∫`指的并不是具体的`dt`的加和,而是当`dt→0`时,加和逼近的值,这个逼近的值就是曲线下方的面积;当`dt`越趋近 0,加和就越趋近精确解。
>
> 积分的含义就是将所有小量“累积”在一起
@@ -494,27 +494,27 @@
- 如果固定左端点,将右端点当做一个变量 `T`,那么这个积分可以看做以**上限为自变量**的函数 `s(T)`——这是距离关于时间的导数,同时也是图形下方的**面积函数**
- 这表明任一**函数图像下方面积函数的导函数等于该函数本身**
- ![](../assets/TIM截图20180629150107.png)
+ ![](../_assets/TIM截图20180629150107.png)
- **从几何的角度看**,矩形的面积为 `ds`,宽为 `dT`,它的高为 `v(T)`,于是有 `ds/dT = v(T)`
- 即**图像所表示的函数就是面积函数的导数**
- 因此,求解积分的过程就是求导的**逆过程**
- ![](../assets/TIM截图20180629150441.png)
- ![](../assets/TIM截图20180629150541.png)
- ![](../assets/TIM截图20180629151001.png)
+ ![](../_assets/TIM截图20180629150441.png)
+ ![](../_assets/TIM截图20180629150541.png)
+ ![](../_assets/TIM截图20180629151001.png)
**每个函数都有无数个原函数**
---
- 因为常数的导数为 0,所以在原函数的基础上加上任意常数,其导数不变——这意味着每个函数的原函数有无数个
- 所以`v(t) = 8t - t^2`正确的原函数应该是
- [![](../assets/公式_20180629153014.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;s(t)=\int&space;v(t)dt=4t^2-\frac{1}{3}t^3+C&space;\end{aligned})
+ [![](../_assets/公式_20180629153014.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;s(t)=\int&space;v(t)dt=4t^2-\frac{1}{3}t^3+C&space;\end{aligned})
- 从图像上来看,曲线上下移动并不会影响其在每一点的斜率
- ![](../assets/TIM截图20180629152708.png)
+ ![](../_assets/TIM截图20180629152708.png)
- 在不同的问题中,一般会有额外的条件帮你决定该使用哪个原函数
- 比如,在本问题中,`t=0` 时,`s(t)=0`,于是 `C=0`
@@ -525,7 +525,7 @@
- 积分值就等于原函数在上限时的值减去其在下限时的值。
- 这个过程就是“微积分基本定理”
- ![](../assets/TIM截图20180629153515.png)
+ ![](../_assets/TIM截图20180629153515.png)
- 积分异于常识的一点在于:它**连续地**遍历了从下限到上限中的每一个自变量的值,而我们在利用原函数求值时,只需要关注上限与下限两个自变量
@@ -533,7 +533,7 @@
---
- 如果图像有部分出现在横轴的下方,那么这部分就是**负面积**
- ![](../assets/TIM截图20180629160418.png)
+ ![](../_assets/TIM截图20180629160418.png)
> 有符号的面积
- 积分计算的不是真正的面积,而是图像与横轴围城的带有正负的面积。
@@ -547,7 +547,7 @@
- 问题等价于求图像下方面积的平均高度
- 如果把面积作为一个整体来看,这是一个很简单的问题——`平均高度 = 积分面积 / 上下限宽度`
- ![](../assets/TIM截图20180629193011.png)
+ ![](../_assets/TIM截图20180629193011.png)
- 值得注意的是,`(F(b)-F(a))/(b-a)` 实际上也是原函数`F(x)`在 `x=a` 和 `x=b` 两点连线的斜率
- 这表明在某一区间上所有点处切线的**平均斜率**等于起点和终点连线的斜率
@@ -571,7 +571,7 @@
**二阶导数描述的是曲线的弯曲程度**
- 根据导数的定义,二阶导数也就是导数的微小变化率,即斜率的变化率——直观来看,也就是**曲线的弯曲程度**
- ![](../assets/TIM截图20180629210933.png)
+ ![](../_assets/TIM截图20180629210933.png)
- 考虑函数的一个取值 `x`,然后向右连续的增加两个小量 `dx`
- 第一个增量是函数产生了第一个变化量 `df1`,第二个同理,记 `df2`
- 这两个变化量的差也就是**函数值变化量的变化量**,记 `d(df)`. 它和 `(dx)^2` 成正比
@@ -579,22 +579,22 @@
- 用符号表示为
- [![](../assets/公式_20180629211135.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\underbrace{\frac{d(\frac{df}{dx})}{dx}=\frac{d(df)}{(dx)^2}=\frac{d^2f}{dx^2}}_{dx&space;\to&space;0}&space;\end{aligned})
+ [![](../_assets/公式_20180629211135.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\underbrace{\frac{d(\frac{df}{dx})}{dx}=\frac{d(df)}{(dx)^2}=\frac{d^2f}{dx^2}}_{dx&space;\to&space;0}&space;\end{aligned})
> 其实中间的写法才是最正确的,但为了书写方便,通常写成最右侧的形式
- 一个理解二阶导数的现实示例就是加速度
- ![](../assets/TIM截图20180629211550.png)
+ ![](../_assets/TIM截图20180629211550.png)
> 二阶导数为正,说明车在加速;反之,为负,说明在减速
## 泰勒多项式与泰勒级数
泰勒级数的作用——函数近似工具。比如,在 `x=0` 附近,有:
-![](../assets/TIM截图20180630094515.png)
-![](../assets/TIM截图20180630094555.png)
-![](../assets/TIM截图20180630094715.png)
-![](../assets/TIM截图20180630094826.png)
+![](../_assets/TIM截图20180630094515.png)
+![](../_assets/TIM截图20180630094555.png)
+![](../_assets/TIM截图20180630094715.png)
+![](../_assets/TIM截图20180630094826.png)
泰勒级数利用**多项式函数**去近似复杂抽象的函数,从而化简问题
- 多项式函数的优势:易计算、易求导、易积分
@@ -609,23 +609,23 @@
- 二阶导数描述的是曲线的弯曲程度,那么让两个图像在 `x=0` 处的弯曲程度相同应该会更近似,`cos(x)` 的二阶导是 `-cos(x)`,于是 `2c2=-cos(0)=-1 -> c2=-1/2`
- 还可以用更高次的多项式去近似,比如
- ![](../assets/TIM截图20180630110837.png)
+ ![](../_assets/TIM截图20180630110837.png)
- 在非 0 点,有类似的结果,如 `x=π`
- ![](../assets/TIM截图20180630113240.png)
+ ![](../_assets/TIM截图20180630113240.png)
> 带入 `x=π` 就能消去所有无关项
- “**泰勒多项式**”小结
- 在对高阶多项式求导时,自然而然的出现了**阶乘**的形式
- 当然,真正的系数需要除以这个阶乘
- ![](../assets/TIM截图20180630111742.png)
+ ![](../_assets/TIM截图20180630111742.png)
- 在向近似多项式中添加更高次的项时,不会影响低次项
- 因此,多项式任意 n 阶的导数在 `x=0` 时的值都由唯一的系数控制
- ![](../assets/TIM截图20180630113040.png)
+ ![](../_assets/TIM截图20180630113040.png)
- 这样的多项式就称为“泰勒多项式”
@@ -636,43 +636,43 @@
宏观来讲:泰勒级数把某一点处高阶导数的信息转化成了在那一点**附近**的函数值信息
- `x=0` 时,它的常数项能让它与 `f(0)` 的值相等
- ![](../assets/TIM截图20180630153013.png)
+ ![](../_assets/TIM截图20180630153013.png)
- 它的一次项让两者的斜率相等
- ![](../assets/TIM截图20180630153808.png)
+ ![](../_assets/TIM截图20180630153808.png)
- 二次项让两者斜率的变化率相同
- ![](../assets/TIM截图20180630153907.png)
+ ![](../_assets/TIM截图20180630153907.png)
- 以此类推,项数越多,近似就越精确
- ![](../assets/TIM截图20180630154029.png)
+ ![](../_assets/TIM截图20180630154029.png)
- ![](../assets/TIM截图20180630154212.png)
+ ![](../_assets/TIM截图20180630154212.png)
**从几何角度看二阶泰勒多项式**
- 考虑如何近似曲线下的面积函数 `f_area(x)`
- ![](../assets/TIM截图20180630194836.png)
+ ![](../_assets/TIM截图20180630194836.png)
- 当 `dx → 0` 时,我们可以将增长的部分近似为矩形
- 但如果想将面积的变化近似得更准确,就需要考虑那块**近似三角形**的部分
- 假设已知面积函数 `f` 在 `a` 点的导数信息,想要近似在 `x` 时的面积
- ![](../assets/TIM截图20180630201849.png)
+ ![](../_assets/TIM截图20180630201849.png)
> 三角形的高 = `斜率 * 底`,斜率 = 曲线在 a 点的导数 = `f''(a)`
**任意函数的泰勒多项式**
---
- 函数`f(x)`在`x=0`处的泰勒多项式
- [![](../assets/公式_20180630152255.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;P(x)=f(0)+\frac{f%27(0)}{1!}x+\frac{f%27%27(0)}{2!}x^2+\frac{f^{(3)}(0)}{3!}x^3+\cdots&space;\end{aligned})
+ [![](../_assets/公式_20180630152255.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;P(x)=f(0)+\frac{f%27(0)}{1!}x+\frac{f%27%27(0)}{2!}x^2+\frac{f^{(3)}(0)}{3!}x^3+\cdots&space;\end{aligned})
- 函数`f(x)`在`x=a`处的泰勒多项式
- [![](../assets/公式_20180630152454.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;P(x)=f(a)+\frac{f%27(a)}{1!}(x-a)+\frac{f%27%27(a)}{2!}(x-a)^2+\frac{f^{(3)}(a)}{3!}(x-a)^3+\cdots&space;\end{aligned})
+ [![](../_assets/公式_20180630152454.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;P(x)=f(a)+\frac{f%27(a)}{1!}(x-a)+\frac{f%27%27(a)}{2!}(x-a)^2+\frac{f^{(3)}(a)}{3!}(x-a)^3+\cdots&space;\end{aligned})
**级数的概念**
---
@@ -683,19 +683,19 @@
---
- **级数的收敛(Converges)与发散(diverges)、收敛半径**
- ![](../assets/TIM截图20180630202744.png)
+ ![](../_assets/TIM截图20180630202744.png)
> 无限累加下去的和就“等于”级数收敛到的值;这里 `x=1`
- 一些级数无论你带入什么值,它的级数都会收敛,比如 `e^x` 在 `x=0` 处的泰勒级数
- ![](../assets/TIM截图20180630203750.png)
- ![](../assets/TIM截图20180630203959.png)
+ ![](../_assets/TIM截图20180630203750.png)
+ ![](../_assets/TIM截图20180630203959.png)
> 无论 `x` 取何值,`e^x` 都等于该泰勒级数
- 但有些级数就只会在一定取值范围内才会收敛,比如 `ln(x)` 在 `x=1` 处的泰勒级数
- ![](../assets/TIM截图20180630204148.png)
- ![](../assets/TIM截图20180630204303.png)
+ ![](../_assets/TIM截图20180630204148.png)
+ ![](../_assets/TIM截图20180630204303.png)
- 只有当 `x∈(0,2]`时,该级数才会收敛
- 换言之,在 `x=1` 处取得的导数信息无法拓展到更广的取值范围
- 这个泰勒级数的**收敛半径**为 `1`,即`x∈(0, 2]`
diff --git "a/\346\225\260\345\255\246/B-\346\267\261\345\272\246\345\255\246\344\271\240\347\232\204\346\240\270\345\277\203.md" "b/B-\346\225\260\345\255\246/B-\346\267\261\345\272\246\345\255\246\344\271\240\347\232\204\346\240\270\345\277\203.md"
similarity index 77%
rename from "\346\225\260\345\255\246/B-\346\267\261\345\272\246\345\255\246\344\271\240\347\232\204\346\240\270\345\277\203.md"
rename to "B-\346\225\260\345\255\246/B-\346\267\261\345\272\246\345\255\246\344\271\240\347\232\204\346\240\270\345\277\203.md"
index 88812636..81488c27 100644
--- "a/\346\225\260\345\255\246/B-\346\267\261\345\272\246\345\255\246\344\271\240\347\232\204\346\240\270\345\277\203.md"
+++ "b/B-\346\225\260\345\255\246/B-\346\267\261\345\272\246\345\255\246\344\271\240\347\232\204\346\240\270\345\277\203.md"
@@ -45,7 +45,7 @@
**示例:一个用于数字手写识别的神经网络**
-![](../assets/TIM截图20180701210407.png)
+![](../_assets/TIM截图20180701210407.png)
> 这个示例相当于深度学习领域中的 "Hello World".
## 神经元(隐藏单元)与隐藏层
@@ -55,14 +55,14 @@
需要强调的是,激活值的值域取决于使用的激活函数,大多数激活函数的值域都是**正值**
- ![](../assets/TIM截图20180701211429.png)
+ ![](../_assets/TIM截图20180701211429.png)
> 如果使用 sigmoid 激活函数,那么这个数字就在 0 到 1 之间;但通常来说,无论你使用哪种激活函数,这个数字都比较小
- 输入层也可以看做是一组神经元,它的激活值就是输入本身
- ![](../assets/TIM截图20180701211850.png)
- ![](../assets/TIM截图20180701214914.png)
+ ![](../_assets/TIM截图20180701211850.png)
+ ![](../_assets/TIM截图20180701214914.png)
> 基本的神经网络只能处理向量型的输入,所以需要将这个 28*28 的像素图(矩阵),重排成长为 784 的向量
>
> 如果使用卷积神经网络,则可以直接处理矩阵型的输入
@@ -71,12 +71,12 @@
> 如果使用了 `softmax` 函数,那么整个输出层可以看作每个类别的概率分布
- 所谓的“**神经元被激活**”实际上就是它获得了一个较大的激活值
- ![](../assets/TIM截图20180701212340.png)
+ ![](../_assets/TIM截图20180701212340.png)
**隐藏层**
- 包含于输入层与输出层之间的网络层统称为“隐藏层”
- ![](../assets/TIM截图20180701212657.png)
+ ![](../_assets/TIM截图20180701212657.png)
> 在这个简单的网络中,有两个隐藏层,每层有 16 个神经元
>
> 为什么是两层和 16 个?——层数的大小与问题的复杂度有关,而神经元的数量目前来看是随机的——网络的结构在实验时有很大的调整余地
@@ -85,36 +85,36 @@
- 神经网络在运作的时候,隐藏层可以视为一个“黑箱”
- 每一层的激活值将通过某种方式计算出下一层的激活值——神经网络处理信息的核心机制
- ![](../assets/TIM截图20180701213151.png)
+ ![](../_assets/TIM截图20180701213151.png)
> 每一层被激活的神经元不同,(可能)会导致下一层被激活的神经元也不同
**为什么神经网络的分层结构能起作用?**
---
- 人在初识数字时是如何区分的?——**组合**数字的各个部分
- ![](../assets/TIM截图20180702092532.png)
+ ![](../_assets/TIM截图20180702092532.png)
- **在理想情况下**,我们希望神经网络倒数第二层中的各隐藏单元能对应上每个**基本笔画**(pattern)
- ![](../assets/TIM截图20180702093050.png)
+ ![](../_assets/TIM截图20180702093050.png)
- 当输入是 9 或 8 这种**顶部带有圆圈**的数字时,某个神经元将被激活(激活值接近 1)
- 不光是 9 和 8,所有顶部带有圆圈的图案都能激活这个隐藏单元
- 这样从倒数第二层到输出层,我们的问题就简化成了“学习哪些部件能组合哪些数字”
- 类似的,基本笔画也可以由更基础的部件构成
- ![](../assets/TIM截图20180702094246.png)
+ ![](../_assets/TIM截图20180702094246.png)
- **理想情况下**,神经网络的处理过程
- ![](../assets/TIM截图20180702094455.png)
+ ![](../_assets/TIM截图20180702094455.png)
> 从输入层到输出层,**网络的抽象程度越来越高**
**深度学习的本质:通过组合简单的概念来表达复杂的事物**
---
- 神经网络是不是这么做的,我们不得而知(所以是一个“黑箱”),但大量实验表明:神经网络确实在做类似的工作——**通过组合简单的概念来表达复杂的事物**
- ![](../assets/TIM截图20180702095428.png)
+ ![](../_assets/TIM截图20180702095428.png)
> 语音识别:原始音频 → 音素 → 音节 → 单词
**隐藏单元是如何被激活的?**
@@ -126,9 +126,9 @@
- 根据激活的含义,当激活值接近 1 时,表示该区域存在一条边,反之不存在
- **怎样的数学公式能够表达出这个含义?**
- ![](../assets/TIM截图20180702112135.png)
- ![](../assets/TIM截图20180702113031.png)
- ![](../assets/TIM截图20180702113631.png)
+ ![](../_assets/TIM截图20180702112135.png)
+ ![](../_assets/TIM截图20180702113031.png)
+ ![](../_assets/TIM截图20180702113631.png)
- 考虑对所有输入单元加权求和
- 图中每条连线关联一个权值:绿色表示正值,红色表示负值,颜色越暗表示越接近 0
- 此时,只需将需要关注的像素区域对应的权值设为正,其余为 0
@@ -136,7 +136,7 @@
- 为了使隐藏单元真正被“激活”,加权和还需要经过某个**非线性函数**,也就是“激活函数”
- 早期最常用的激活函数是 `sigmoid` 函数(又称 logistic/逻辑斯蒂曲线)
- ![](../assets/TIM截图20180702114132.png)
+ ![](../_assets/TIM截图20180702114132.png)
> 从 `sigmoid` 的角度看,它实际上在对加权和到底有多“正”进行打分
- 但有时,可能加权和大于 10 时激活才有意义;
@@ -147,8 +147,8 @@
- 每个隐藏单元又会各自带有一个**偏置**
> 偏置和权重统称为网络参数
- ![](../assets/TIM截图20180702150309.png)
- ![](../assets/TIM截图20180702151423.png)
+ ![](../_assets/TIM截图20180702150309.png)
+ ![](../_assets/TIM截图20180702151423.png)
> 每一层都带有自己的权重与偏置,这样一个小小的网络,就有 13002 个参数
**权重与偏置的实际意义**
@@ -164,7 +164,7 @@
- 类似的,所有偏置也作为一列**向量** `b`
- 最后,将 `Wa + b` 一起传入激活函数
- ![](../assets/TIM截图20180702155142.png)
+ ![](../_assets/TIM截图20180702155142.png)
> `sigmoid`会对结果向量中的每个值都取一次`sigmoid`
- 所谓“矢量化编程”,实际上就是将向量作为基本处理单元,避免使用 for 循环处理标量
@@ -174,7 +174,7 @@
---
当我们在讨论机器如何“学习”时,实际上指的是机器如何正确设置这些参数
-![](../assets/TIM截图20180702152216.png)
+![](../_assets/TIM截图20180702152216.png)
## 非线性激活函数
@@ -182,7 +182,7 @@
- 每个神经元可以看作是一个函数,其输入是上一层所有单元的输出,然后输出一个激活值
- 宏观来看,神经网络也是一个函数
- ![](../assets/TIM截图20180702151423.png)
+ ![](../_assets/TIM截图20180702151423.png)
> 一个输入 784 个值,输出 10 个值的函数;其中有 13000 个参数
- 早期最常用的激活函数是 `sigmoid` 函数,它是一个**非线性函数**
@@ -211,16 +211,16 @@
这里简单说下 sigmoid 的问题:
- `sigmoid` 函数在输入取绝对值非常大的正值或负值时会出现**饱和现象**,此时函数会对输入的微小改变会变得不敏感
- ![](../assets/TIM截图20180702114132.png)
+ ![](../_assets/TIM截图20180702114132.png)
> 饱和现象:在图像上表现为函数值随自变量的变化区域平缓(斜率接近 0)
- 饱和现象会导致**基于梯度的学习**变得困难,并在传播过程中丢失信息(**梯度消失**)
**线性整流单元 ReLU**
-- [![](../assets/公式_20180702171411.png)](http://www.codecogs.com/eqnedit.php?latex=\text{ReLU}(a)=\max(0,a))
+- [![](../_assets/公式_20180702171411.png)](http://www.codecogs.com/eqnedit.php?latex=\text{ReLU}(a)=\max(0,a))
- ![](../assets/TIM截图20180702171146.png)
+ ![](../_assets/TIM截图20180702171146.png)
- `ReLU` 取代 `sigmoid` 的主要原因就是:使神经网络更容易训练(**减缓梯度消失**)
- 此外,一种玄学的说法是,早期引入 `sigmoid` 的原因之一就是为了模仿生物学上神经元的激发
@@ -237,7 +237,7 @@
网络示例依然是那个手写识别的例子:
-![](../assets/TIM截图20180701210407.png)
+![](../_assets/TIM截图20180701210407.png)
**神经网络是怎样学习的?**
---
@@ -259,8 +259,8 @@
- 此时需要定义一个“**损失函数**”来告诉计算机:正确的输出应该只有标签对应的那个神经元是被激活的
- 比如这样定义单个样本的损失:
- ![](../assets/TIM截图20180702194825.png)
- ![](../assets/TIM截图20180702195301.png)
+ ![](../_assets/TIM截图20180702194825.png)
+ ![](../_assets/TIM截图20180702195301.png)
- 当网络分类正确时,这个值就越小
- 这里使用的损失函数为“均方误差”(mean-square error, MSE)
@@ -275,14 +275,14 @@
**神经网络与损失函数的关系**
- 神经网络本身相当于一个函数
- ![](../assets/TIM截图20180702195902.png)
+ ![](../_assets/TIM截图20180702195902.png)
> 输入是一个向量,输出是一个向量,参数是所有权重和偏置
- 损失函数在神经网络的基础上,还要再抽象一层:
所有权重和偏置作为它的输入,输出是单个数值,表示当前网络的性能;参数是所有训练样例(?)
- ![](../assets/TIM截图20180702201513.png)
+ ![](../_assets/TIM截图20180702201513.png)
- 从这个角度看,损失函数并不是神经网络的一部分,而是训练神经网络时需要用到的工具
@@ -296,8 +296,8 @@
如果函数很复杂的话,问题就不那么直接了,更遑论上万个参数的情况
- ![](../assets/TIM截图20180702202810.png)
- ![](../assets/TIM截图20180702203041.png)
+ ![](../_assets/TIM截图20180702202810.png)
+ ![](../_assets/TIM截图20180702203041.png)
- **一个启发式的思路是**:先随机选择一个值,然后考虑向左还是向右,函数值会减小;
@@ -307,7 +307,7 @@
最后,就可能逼近函数的某个**局部极小值**点
- ![](../assets/TIM截图20180702203401.png)
+ ![](../_assets/TIM截图20180702203401.png)
- 这个想法最明显的问题是:由于无法预知最开始的值在什么位置,导致最终会到达不同的局部极小值;
@@ -315,14 +315,14 @@
这也是神经网络最大的问题:
- ![](../assets/TIM截图20180702204047.png)
+ ![](../_assets/TIM截图20180702204047.png)
**示例 2:考虑两个参数的情况**
- 输入空间是一个 XY 平面,代价函数是平面上方的曲面
此时的问题是:在输入空间沿哪个方向移动,能使输出结果下降得最快
- ![](../assets/TIM截图20180702210202.png)
+ ![](../_assets/TIM截图20180702210202.png)
- 如果你熟悉**多元微积分**,那么应该已经有了答案:
@@ -338,21 +338,21 @@
- 直观来看,梯度下降法能够让函数值收敛到损失函数图像中的某一个“坑”中
- ![](../assets/TIM截图20180703102940.png)
+ ![](../_assets/TIM截图20180703102940.png)
### 理解梯度下降法的另一种思路
- 梯度下降法的一般处理方式:
- 将所有网络参数放在一个列向量中,那么损失函数的负梯度也是一个向量
- ![](../assets/TIM截图20180703103735.png)
+ ![](../_assets/TIM截图20180703103735.png)
- 负梯度中的每一项实际传达了两个信息
1. 正负号在告诉输入向量应该调大还是调小——因为是**负梯度**,所以正好对应调大,负号调小
1. 每一项的相对大小表明每个输入值对函数值的影响程度;换言之,也就是调整各权重对于网络的影响
- ![](../assets/TIM截图20180703103757.png)
- ![](../assets/TIM截图20180703104845.png)
+ ![](../_assets/TIM截图20180703103757.png)
+ ![](../_assets/TIM截图20180703104845.png)
- 宏观来看,可以把梯度向量中的每个值理解为各参数(权重和偏置)的相对重要度,
@@ -360,7 +360,7 @@
- 这个理解思路同样可以反馈到图像中
- ![](../assets/TIM截图20180703105249.png)
+ ![](../_assets/TIM截图20180703105249.png)
- 一种思路是在点 `(1,1)` 处沿着 `[3,1]` 方向移动,函数值增长最快
- 另一种解读就是变量 `x` 的重要性是 `y` 的三倍;
@@ -435,12 +435,12 @@
第一个隐藏层能够识别短边,第二个隐藏层能够将短边拼成圆圈等基本笔画,最后将这些部件拼成数字
- ![](../assets/TIM截图20180702094455.png)
+ ![](../_assets/TIM截图20180702094455.png)
- 利用**权重与所有输入像素对应相乘**的方法,可以还原每个神经元对应的图案
- ![](../assets/TIM截图20180703115843.png)
- ![](../assets/TIM截图20180703115823.png)
+ ![](../_assets/TIM截图20180703115843.png)
+ ![](../_assets/TIM截图20180703115823.png)
> 期望(左)与现实(右)
- 事实上,与其说它们能识别各种散落的短边,它们不过都是一些松散的图案
@@ -455,7 +455,7 @@
但实际上,它总会会给出一个确切的答案
- ![](../assets/TIM截图20180703121303.png)
+ ![](../_assets/TIM截图20180703121303.png)
> 它能将一张真正的 "5" 识别成 5,也能把一张随机的噪声识别成 5
- 或者说,这个神经网络**知道怎么识别数字,但它不知道怎么写数字**
@@ -472,7 +472,7 @@
但如果你使用了**结构化**的数据,虽然一开始的损失会上下浮动,但接下来会快速下降;也就是很容易就找到了某个局部最小值——这表明神经网络能更快学习**结构化的数据**。
- ![](../assets/TIM截图20180703143800.png)
+ ![](../_assets/TIM截图20180703143800.png)
## 推荐阅读
- Neural Networks and Deep Learning: http://neuralnetworksanddeeplearning.com/
@@ -497,7 +497,7 @@
**梯度向量中的每一项不光告诉我们每个参数应该增大还是减小,还指示了调整每个参数的“性价比”**
- ![](../assets/TIM截图20180703103757.png)
+ ![](../_assets/TIM截图20180703103757.png)
**示例:单个训练样本对参数调整的影响**
---
@@ -510,15 +510,15 @@
- 一个简单的**直觉**是:激活值**变动的幅度**应该与**当前值和目标值之间的误差**成正比
- ![](../assets/TIM截图20180703210401.png)
- ![](../assets/TIM截图20180703210941.png)
+ ![](../_assets/TIM截图20180703210401.png)
+ ![](../_assets/TIM截图20180703210941.png)
> 我们希望第三个输出值增大,其他减小
>
> 显然,这里增加 "2" 的激活值比减少 "8" 的激活值更重要;因为后者已经接近它的目标了
- 激活值的计算公式指明了调整的方向
- ![](../assets/TIM截图20180704095607.png)
+ ![](../_assets/TIM截图20180704095607.png)
- 以 "2" 对应的神经元为例,如果需要**增大当前激活值**,可以:
1. 增大偏置
@@ -552,7 +552,7 @@
这些期待变化,不仅对应权重的倍数,也是每个神经元激活值改变量的倍数。
- ![](../assets/TIM截图20180704111141.png)
+ ![](../_assets/TIM截图20180704111141.png)
- 这其实就是在实现“反向传播”的理念了——
@@ -562,8 +562,8 @@
不严格的来说,这就是梯度下降中的需要的“**负梯度**”
- ![](../assets/TIM截图20180704111911.png)
- ![](../assets/TIM截图20180704112743.png)
+ ![](../_assets/TIM截图20180704111911.png)
+ ![](../_assets/TIM截图20180704112743.png)
> `η` 表示倍数
### BP 算法小结
@@ -592,7 +592,7 @@
### 示例:每层只有一个神经元的网络
-![](../assets/TIM截图20180704161115.png)
+![](../_assets/TIM截图20180704161115.png)
- 从最后两个神经元开始:
@@ -602,26 +602,26 @@
则该网络对于单个训练样本的损失,可以表示为:
- ![](../assets/TIM截图20180704193558.png)
+ ![](../_assets/TIM截图20180704193558.png)
-
其中
- ![](../assets/TIM截图20180704193742.png)
+ ![](../_assets/TIM截图20180704193742.png)
-
+
为了方便,记加权和为 `z`,于是有
- ![](../assets/TIM截图20180704193955.png)
+ ![](../_assets/TIM截图20180704193955.png)
-
+
- 整个流程可以概括为:
- ![](../assets/TIM截图20180704164022.png)
+ ![](../_assets/TIM截图20180704164022.png)
- 先使用前一个激活值和权重 `w` 以及偏置 `b` 计算出 `z`
- 再将 `z` 传入激活函数计算出 `a`
- 最后利用 `a` 和目标值 `y` 计算出损失
@@ -632,45 +632,45 @@
- 以 `w^(L)` 为例,求 `C` 对 `w^(L)`的(偏)导数,记作:
- ![](../assets/TIM截图20180704194111.png)
+ ![](../_assets/TIM截图20180704194111.png)
> 把 `∂w^(L)` 看作对 `w` 的微小扰动,比如 0.001;把 `∂C` 看作“**改变 `w` 对 `C` 造成的变化**”
-
+
这实际上就是在计算 `C` 对 `w^(L)` 的微小变化有多敏感;
> 3B1B - [微积分系列视频](./微积分的本质.md)
- 根据链式法则,有
- ![](../assets/TIM截图20180704194548.png)
+ ![](../_assets/TIM截图20180704194548.png)
-
+
- 进一步分解到每个比值,有
- ![](../assets/TIM截图20180704194635.png)
+ ![](../_assets/TIM截图20180704194635.png)
-
+
- 类似的,对偏置的偏导:
- ![](../assets/TIM截图20180704194726.png)
+ ![](../_assets/TIM截图20180704194726.png)
对上层激活值的偏导:
- ![](../assets/TIM截图20180704200743.png)
+ ![](../_assets/TIM截图20180704200743.png)
-
+
-
+
- 更上层的权重与偏置也是类似的方法,只是链的长度会更长而已
- ![](../assets/TIM截图20180704174134.png)
+ ![](../_assets/TIM截图20180704174134.png)
- 一个直观的理解,考虑将它们分别对应到一个数轴上;
- ![](../assets/TIM截图20180704165624.png)
+ ![](../_assets/TIM截图20180704165624.png)
- `w^(L)` 的微小变化会导致 `z^(L)` 的微小变化
- `z^(L)` 的微小变化会导致 `a^(L)` 的微小变化
- `a^(L)` 的微小变化最终会影响到损失值 `C`
@@ -678,15 +678,15 @@
- 以上只是单个训练的损失对 `w^(L)` 的导数,实践中需要求出一个 mini-batch 中所有样本的平均损失
- ![](../assets/TIM截图20180704194944.png)
+ ![](../_assets/TIM截图20180704194944.png)
-
+
- 进一步的,`∂C/∂w^(L)` 只是梯度向量 `▽C` 的一个分量;
而梯度向量本身有损失函数对每个参数的偏导构成:
- ![](../assets/TIM截图20180704172524.png)
+ ![](../_assets/TIM截图20180704172524.png)
> 本系列视频称损失函数为“代价函数”,所以使用 `C` 表示代价(Cost);更多会用 `L` 表示损失(Loss);二者没有区别,但这里已经使用 L 表示网络的层数,所以使用 `C` 表示损失函数
@@ -694,19 +694,19 @@
- 更复杂的神经网络在公式上并没有复杂很多,只有少量符号的变化
- 首先,利用**下标**来区分同一层不同的神经元和权重
- ![](../assets/TIM截图20180704195120.png)
+ ![](../_assets/TIM截图20180704195120.png)
以下的推导过程几乎只是符号的改变:
- ![](../assets/TIM截图20180704195859.png)
+ ![](../_assets/TIM截图20180704195859.png)
然后求偏导:
- ![](../assets/TIM截图20180704200316.png)
+ ![](../_assets/TIM截图20180704200316.png)
唯一改变的是,对 `(L-1)` 层的偏导:
- ![](../assets/TIM截图20180704200453.png)
+ ![](../_assets/TIM截图20180704200453.png)
> 此时激活值可以通过不同的途径影响损失函数
只要计算出倒数第二层损失函数对激活值的敏感度,就可以重复以上过程,计算喂给倒数第二层的权重和偏置。
@@ -725,13 +725,13 @@
- **标量形式**:
- [![](../assets/公式_20180705190236.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705190236.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\end{aligned})
- [![](../assets/公式_20180705134851.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Red}&space;\partial&space;a_j^{(l)}}}={\color{Teal}\sum_{k=0}^{n_l-1}}&space;\frac{\partial&space;z_k^{(l+1)}}{{\color{Red}&space;\partial&space;a_j^{(l)}}}&space;\frac{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}{\partial&space;z_k^{(l+1)}}&space;\frac{\partial&space;C}{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705134851.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Red}&space;\partial&space;a_j^{(l)}}}={\color{Teal}\sum_{k=0}^{n_l-1}}&space;\frac{\partial&space;z_k^{(l+1)}}{{\color{Red}&space;\partial&space;a_j^{(l)}}}&space;\frac{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}{\partial&space;z_k^{(l+1)}}&space;\frac{\partial&space;C}{{\color{Blue}&space;\partial&space;a_k^{(l+1)}}}&space;\end{aligned})
- [![](../assets/公式_20180705154543.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705154543.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;w_{j,k}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
- [![](../assets/公式_20180705154650.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705154650.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}=\frac{\partial&space;z_j^{(l)}}{{\color{Magenta}&space;\partial&space;b_{j}^{(l)}}}\frac{{\color{Red}\partial&space;a_j^{(l)}}}{\partial&space;z_j^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a_j^{(l)}}}&space;\end{aligned})
> 其中,上标 `(l)` 表示网络的层次,`(L)` 表示输出层(最后一层);下标 `j` 和 `k` 指示神经元的位置;
>
@@ -739,7 +739,7 @@
以 **均方误差(MSE)** 损失函数为例,有
- [![](../assets/公式_20180705190536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\\&space;&=\frac{\partial&space;\left&space;(&space;\frac{1}{2}({\color{Red}a_j^{(L)}}-y_j)^2&space;\right&space;)&space;}{\partial&space;{\color{Red}a_j^{(L)}}}={\color{Red}a_j^{(L)}}-y&space;\end{aligned})
+ [![](../_assets/公式_20180705190536.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\\&space;&=\frac{\partial&space;\left&space;(&space;\frac{1}{2}({\color{Red}a_j^{(L)}}-y_j)^2&space;\right&space;)&space;}{\partial&space;{\color{Red}a_j^{(L)}}}={\color{Red}a_j^{(L)}}-y&space;\end{aligned})
根据以上公式,就可以反向求出所有损失函数对所有参数的偏导了
@@ -747,23 +747,23 @@
在标量形式的基础上,修改下标即可
- [![](../assets/公式_20180705190657.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{&space;\partial&space;{\color{Red}&space;a_j^{(L)}}}=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705190657.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{&space;\partial&space;{\color{Red}&space;a_j^{(L)}}}=\frac{\partial&space;C({\color{Red}&space;a_j^{(L)}},y_j)}{\partial&space;{\color{Red}&space;a_j^{(L)}}}&space;\end{aligned})
- [![](../assets/公式_20180705162428.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Red}&space;\partial&space;a^{(l)}}}=\frac{\partial&space;z^{(l+1)}}{{\color{Red}&space;\partial&space;a^{(l)}}}&space;\frac{{\color{Blue}&space;\partial&space;a^{(l+1)}}}{\partial&space;z^{(l+1)}}&space;\frac{\partial&space;C}{{\color{Blue}&space;\partial&space;a^{(l+1)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705162428.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Red}&space;\partial&space;a^{(l)}}}=\frac{\partial&space;z^{(l+1)}}{{\color{Red}&space;\partial&space;a^{(l)}}}&space;\frac{{\color{Blue}&space;\partial&space;a^{(l+1)}}}{\partial&space;z^{(l+1)}}&space;\frac{\partial&space;C}{{\color{Blue}&space;\partial&space;a^{(l+1)}}}&space;\end{aligned})
- [![](../assets/公式_20180705162521.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;w_{j}^{(l)}}}=\frac{\partial&space;z^{(l)}}{{\color{Magenta}&space;\partial&space;w_{j}^{(l)}}}\frac{{\color{Red}\partial&space;a^{(l)}}}{\partial&space;z^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a^{(l)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705162521.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;w_{j}^{(l)}}}=\frac{\partial&space;z^{(l)}}{{\color{Magenta}&space;\partial&space;w_{j}^{(l)}}}\frac{{\color{Red}\partial&space;a^{(l)}}}{\partial&space;z^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a^{(l)}}}&space;\end{aligned})
- [![](../assets/公式_20180705162633.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;b^{(l)}}}=\frac{\partial&space;z^{(l)}}{{\color{Magenta}&space;\partial&space;b^{(l)}}}\frac{{\color{Red}\partial&space;a^{(l)}}}{\partial&space;z^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a^{(l)}}}&space;\end{aligned})
+ [![](../_assets/公式_20180705162633.png)](http://www.codecogs.com/eqnedit.php?latex=\begin{aligned}&space;\frac{\partial&space;C}{{\color{Magenta}&space;\partial&space;b^{(l)}}}=\frac{\partial&space;z^{(l)}}{{\color{Magenta}&space;\partial&space;b^{(l)}}}\frac{{\color{Red}\partial&space;a^{(l)}}}{\partial&space;z^{(l)}}\frac{\partial&space;C}{{\color{Red}\partial&space;a^{(l)}}}&space;\end{aligned})
**注意**:其中向量相乘都是以**按元素相乘**的形式,一般用 `⊙` 符号表示。
- 以上是纯微积分形式的表达,一些机器学习相关书籍上总结了更简洁的形式,比如:
- ![](../assets/TIM截图20180705162841.png)
+ ![](../_assets/TIM截图20180705162841.png)
> [The four fundamental equations behind backpropagation](http://neuralnetworksanddeeplearning.com/chap2.html#the_four_fundamental_equations_behind_backpropagation)
**注意**:前两个公式为**矢量形式**,后两个具体到单个参数的是**标量形式**。
其中,符号 `⊙` 按元素相乘:
- ![](../assets/TIM截图20180705164018.png)
\ No newline at end of file
+ ![](../_assets/TIM截图20180705164018.png)
\ No newline at end of file
diff --git "a/\346\225\260\345\255\246/README.md" "b/B-\346\225\260\345\255\246/README.md"
similarity index 87%
rename from "\346\225\260\345\255\246/README.md"
rename to "B-\346\225\260\345\255\246/README.md"
index 3aa7e12b..06772eaf 100644
--- "a/\346\225\260\345\255\246/README.md"
+++ "b/B-\346\225\260\345\255\246/README.md"
@@ -22,7 +22,7 @@
- 使用积分计算该概率
- [![](../assets/公式_20180624211704.png)](http://www.codecogs.com/eqnedit.php?latex=\int_{0}^{\pi}\frac{\theta&space;}{2\pi}\cdot&space;\frac{1}{\pi}=\frac{\theta^2}{4\pi^2}\Big|^\pi_0=\frac{1}{4})
+ [![](../_assets/公式_20180624211704.png)](http://www.codecogs.com/eqnedit.php?latex=\int_{0}^{\pi}\frac{\theta&space;}{2\pi}\cdot&space;\frac{1}{\pi}=\frac{\theta^2}{4\pi^2}\Big|^\pi_0=\frac{1}{4})
> [在一圆周上任意取三个点构成锐角三角形的概率是多少](https://zhidao.baidu.com/question/1884315387170029428.html) - 百度知道
> [【官方双语】如何优雅地解答最难数学竞赛的压轴题? 1:50-4:25, 5:40-7:50](https://www.bilibili.com/video/av17275211) - bilibili
diff --git "a/\347\256\227\346\263\225/README.md" "b/B-\347\256\227\346\263\225/README.md"
similarity index 100%
rename from "\347\256\227\346\263\225/README.md"
rename to "B-\347\256\227\346\263\225/README.md"
diff --git "a/\347\256\227\346\263\225/README_bak.md" "b/B-\347\256\227\346\263\225/README_bak.md"
similarity index 100%
rename from "\347\256\227\346\263\225/README_bak.md"
rename to "B-\347\256\227\346\263\225/README_bak.md"
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204.md"
similarity index 99%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204.md"
index 7da4ac8e..f1bb00bd 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204.md"
@@ -76,7 +76,7 @@ public:
约定空树不是任意一个树的子结构。
```
- 图示
-
+
**思路**
- 递归
diff --git "a/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_Advanced.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_Advanced.md"
new file mode 100644
index 00000000..2060b0a2
--- /dev/null
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_Advanced.md"
@@ -0,0 +1,156 @@
+专题-高级数据结构
+===
+
+Index
+---
+
+
+- [树状数组](#树状数组)
+ - [树状数组的构建(以区间和问题为例)](#树状数组的构建以区间和问题为例)
+ - [树状数组的特点](#树状数组的特点)
+ - [相关问题](#相关问题)
+ - [相关阅读](#相关阅读)
+- [线段树](#线段树)
+- [字典树(Trie)](#字典树trie)
+
+
+
+
+## 树状数组
+- 树状数组是一种用于维护**前缀信息**的数据结构
+
+
+- 树状数组 `C` 在物理空间上是连续的;
+- 对于数组中的两个位置 `C[x], C[y]`,若满足 `y = x + 2^k`(**其中 `k` 表示 `x` 二进制中末尾 0 的个数**),则定义 `C[x], C[y]` 为一组父子关系;
+ ```
+ 4 的二进制为 100,则 k = 2
+ 所以 4 是 4 + 2^2 = 8 的孩子
+ 5 的二进制位 101,则 k = 0
+ 所以 5 是 5 + 2^0 = 6 的孩子
+ ```
+- 由以上定义,可知**奇数**下标的位置一定是叶子节点
+
+**C[i] 的直观含义**
+- `C[i]` 实际上表示原数组中一段**区间**内的**某个统计意义**(区间和、区间积、区间最值等等);
+- 该区间为 `[i-2^k+1, i]`,是一个闭区间;
+- 以**区间和**为例
+ ```
+ 1=(001) C[1]=A[1];
+ 2=(010) C[2]=A[1]+A[2];
+ 3=(011) C[3]=A[3];
+ 4=(100) C[4]=A[1]+A[2]+A[3]+A[4];
+ 5=(101) C[5]=A[5];
+ 6=(110) C[6]=A[5]+A[6];
+ 7=(111) C[7]=A[7];
+ 8=(1000) C[8]=A[1]+A[2]+A[3]+A[4]+A[5]+A[6]+A[7]+A[8];
+ ```
+
+### 树状数组的构建(以区间和问题为例)
+> LeetCode - [307. 区域和检索 - 数组可修改](https://leetcode-cn.com/problems/range-sum-query-mutable/description/)
+
+**问题描述**
+ ```
+ 给定一个数组,支持两种操作:
+ 1.查询区间和
+ 2.修改某个元素的值
+
+ 示例:
+ Given nums = [1, 3, 5]
+
+ sumRange(0, 2) -> 9
+ update(1, 2)
+ sumRange(0, 2) -> 8
+ ```
+- 构建树状数组的过程即初始化数组 `C` 的过程
+- 基本操作:
+ - `lowbit(x)` ——求 2^k,其中 k 表示 x 二进制位中后缀 0 的个数
+ - `updateC(x, delta)` ——更新 C 数组中 A[x] 的祖先
+ - 如果是初始化阶段 delta = A[i],
+ - 如果是更新 A[i],则 delta = new_val - A[i]
+ - `sumPrefix(x)` ——求前缀区间 [1, x] 的和
+ - `update(i, val)` ——更新 A[i] = val,同时也会更新所有 A[i] 的祖先
+ - `sumRange(lo, hi)` ——求范围 [lo, hi] 的区间和
+
+**C++**
+```C++
+class NumArray {
+ int n;
+ vector A;
+ vector C;
+
+ // 求 2^k,其中 k 表示 x 二进制位中后缀 0 的个数
+ int lowbit(int x) {
+ return x & (-x);
+ }
+
+ // 更新 C 数组,对 A[x] 的每个祖先都加上 delta:
+ // 如果是初始化阶段 delta = A[i],如果是更新 A[i],则 delta = new_val - A[i]
+ void updateC(int x, int delta) {
+ for (int i = x; i <= n; i += lowbit(i)) {
+ C[i] += delta;
+ }
+ }
+
+ // 求前缀区间 [1, x] 的和
+ int sumPrefix(int x) {
+ int res = 0;
+ for (int i = x; i > 0; i -= lowbit(i)) {
+ res += C[i];
+ }
+ return res;
+ }
+public:
+ // 初始化
+ NumArray(vector nums) {
+ n = nums.size();
+ A.resize(n + 1, 0);
+ C.resize(n + 1, 0);
+ for (int i = 1; i <= n; i++) {
+ A[i] = nums[i - 1]; // 树状数组的内部默认从 1 开始计数
+ updateC(i, A[i]);
+ }
+ }
+
+ // 将 A[i] 的值更新为 val
+ void update(int i, int val) {
+ i++; // 树状数组的内部默认从 1 开始计数,如果外部默认从 0 开始计数,则需要 +1;
+ updateC(i, val - A[i]); // 更新 A[i] 的所有祖先节点,加上 val 与 A[i] 的差即可
+ A[i] = val;
+ }
+
+ // 求范围 [lo, hi] 的区间和
+ int sumRange(int lo, int hi) {
+ lo++; hi++; // 树状数组的内部默认从 1 开始计数,如果外部默认从 0 开始计数,则需要 +1;
+ return sumPrefix(hi) - sumPrefix(lo - 1);
+ }
+};
+
+void solve() {
+ vector nums{1, 3, 5};
+ auto na = NumArray(nums);
+ int ret;
+ ret = na.sumRange(0, 2);
+ na.update(1, 2);
+ ret = na.sumRange(0, 2);
+}
+```
+
+### 树状数组的特点
+- 线段树不能解决的问题,树状数组也无法解决;
+- 树状数组和线段树的时间复杂度相同:初始化 `O(n)`,查询和修改 `O(logn)`;但实际效率要高于线段树;
+- 直接维护前缀信息也能解决查询问题,但是修改的时间复杂度会比较高;
+
+
+### 相关问题
+- [665. 二维区域和检索 - 矩阵不可变](https://www.lintcode.com/problem/range-sum-query-2d-immutable/description) - LintCode
+- [817. 二维区域和检索 - 矩阵可变](https://www.lintcode.com/problem/range-sum-query-2d-mutable/description) - LintCode
+- [249. 统计前面比自己小的数的个数](https://www.lintcode.com/problem/count-of-smaller-number-before-itself/description) - LintCode
+- [248. 统计比给定整数小的数的个数](https://www.lintcode.com/problem/count-of-smaller-number/description) - LintCode
+- [532. 逆序对](https://www.lintcode.com/problem/reverse-pairs/description) - LintCode
+
+### 相关阅读
+- [夜深人静写算法(三)- 树状数组](https://blog.csdn.net/WhereIsHeroFrom/article/details/78922383) - CSDN博客
+
+## 线段树
+
+## 字典树(Trie)
\ No newline at end of file
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\345\255\227\347\254\246\344\270\262.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\345\255\227\347\254\246\344\270\262.md"
similarity index 96%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\345\255\227\347\254\246\344\270\262.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\345\255\227\347\254\246\344\270\262.md"
index 0ba572d4..a19f30f0 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\345\255\227\347\254\246\344\270\262.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\345\255\227\347\254\246\344\270\262.md"
@@ -9,7 +9,8 @@ Index
- [10进制转任意进制](#10进制转任意进制)
- [任意进制转10进制](#任意进制转10进制)
- [长地址转短地址](#长地址转短地址)
-- [功能函数 atoi()](#功能函数-atoi)
+- [功能函数](#功能函数)
+ - [`atoi()`](#atoi)
- [表达式转化(中缀,后缀,前缀)](#表达式转化中缀后缀前缀)
- [中缀转后缀](#中缀转后缀)
@@ -79,9 +80,9 @@ def any2ten(s, base=62):
**重复长地址怎么处理?**
- 如果要求相同的长地址要对应唯一的短地址,那么唯一的方法就是维护一个映射表
-- 但是维护一个映射表反而比忽略重复需要更多的空间
+- 但是维护一个映射表可能比忽略重复需要更多的空间
- 一个**折衷**的方法是——维护一个“最近”的长对短映射,比如采用一小时过期的机制来实现 LRU 淘汰
- - 当一个地址被频繁使用,那么它会一直在这个 key-value 表中,总能返回当初生成那个短地址
+ - 当一个地址被频繁使用,那么它始终在这个 key-value 表中,总能返回当初生成那个短地址
- 如果它使用并不频繁,那么长对短的 key 会过期,LRU 机制就会自动淘汰掉它
**如何保证发号器的大并发高可用?**
@@ -91,7 +92,9 @@ def any2ten(s, base=62):
- 或者实现 1000 个发号器,分别发尾号为 0 到 999 的号;每发一个号,每个发号器加 1000,而不是加 1
-## 功能函数 atoi()
+## 功能函数
+
+### `atoi()`
**功能简述**
- 将字符串(C风格)转换成整型;
- 会跳过前面的空格字符,直到遇上数字或正负号才开始转换;
@@ -191,9 +194,9 @@ int atoi_my(const char* const cs) {
- 从左到右遍历中缀表达式,遇到**操作数**则输出;遇到操作符,若当前操作符的**优先级大于**栈顶操作符优先级,进栈;否则,弹出栈顶操作符,当前操作符进栈。(这只是一段比较**粗糙**的描述,更多细节请参考链接或下面的源码)
> [中、前、后缀表达式](https://blog.csdn.net/lin74love/article/details/65631935) - CSDN博客
-**C++**
-- 只测试了部分样例,如果有**未通过的样例**请告诉我
-- 以下代码中有一些**循环**可能是多余的;如果字符串合法,应该只需要判断一次,而不需要循环处理(未验证)
+**C++**(未测试)
+
```C++
#include
#include
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_Advanced.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\350\256\276\350\256\241.md"
similarity index 98%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_Advanced.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\350\256\276\350\256\241.md"
index 13513ed1..8f2737d0 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_Advanced.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-A-\346\225\260\346\215\256\347\273\223\346\236\204_\350\256\276\350\256\241.md"
@@ -1,4 +1,4 @@
-专题-高级数据结构与数据结构设计
+专题-数据结构设计
===
- [LeetCode 设计专题](https://leetcode-cn.com/tag/design/)
@@ -10,6 +10,7 @@ Index
+
## LRU(最近最少使用)缓存机制
> LeetCode-[146. LRU缓存机制](https://leetcode-cn.com/problems/lru-cache/description/)
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-B-\345\212\250\346\200\201\350\247\204\345\210\222.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-B-\345\212\250\346\200\201\350\247\204\345\210\222.md"
similarity index 99%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-B-\345\212\250\346\200\201\350\247\204\345\210\222.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-B-\345\212\250\346\200\201\350\247\204\345\210\222.md"
index fd5d933c..53ceb375 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-B-\345\212\250\346\200\201\350\247\204\345\210\222.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-B-\345\212\250\346\200\201\350\247\204\345\210\222.md"
@@ -484,7 +484,7 @@ int main() {
```
**思路 - 暴力求解**
-
+
> [Longest common substring problem](https://en.wikipedia.org/wiki/Longest_common_substring_problem) - Wikipedia
@@ -589,7 +589,7 @@ int main() {
- **DP 优化**:空间复杂度 `O(1)`
- 两个字符串的比较总是按一行一行或一列一列来比较,因此至少要保存一行的数据
- 而如果是按照斜向遍历,其实只要保存一个数据即可
-
+
斜向遍历的策略很多,下面的代码是从右上角(`row=0, col=m-1`)开始遍历
```C++
diff --git "a/B-\347\256\227\346\263\225/\344\270\223\351\242\230-B-\346\225\260\345\255\246.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-B-\346\225\260\345\255\246.md"
new file mode 100644
index 00000000..3d59c002
--- /dev/null
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-B-\346\225\260\345\255\246.md"
@@ -0,0 +1,66 @@
+专题-数学
+===
+
+Index
+---
+
+
+- [直线上最多的点数](#直线上最多的点数)
+
+
+
+### 直线上最多的点数
+> LeetCode - [149. 直线上最多的点数](https://leetcode-cn.com/problems/max-points-on-a-line/description/)
+
+**问题描述**
+
+**思路**
+- ~~根据 `y=kx+b`,计算每两个点的 `(k, b)` 对,配合 map 存储~~
+- 使用 `(k,b)` 可能存在精度问题,更好的方法是使用 `ax+by+c=0`
+- 两者本质上没有区别,实际上就是把 `k` 分为 `a/b` 存储
+- 注意:将 `{a, b}` 作为 key 时应该先利用**最大公约数**缩小 `a` 和 `b`
+
+**C++**
+```C++
+class Solution {
+ int gcd(int a, int b) {
+ return b == 0 ? a : gcd(b, a%b);
+ }
+public:
+ int maxPoints(vector& P) {
+ int n = P.size();
+ if (n <= 2) return n;
+
+ int ret = 0;
+ for (int i = 0; i < n; i++) {
+ map, int> line;
+ int tmp = 0; // 保存与 P[i] 共线的点
+ int dup = 0; // 记录重复点
+ int col = 0; // 跟 P[i] 垂直的点
+
+ for (int j = i + 1; j < n; j++) {
+ if (P[i].x == P[j].x && P[i].y == P[j].y) {
+ dup += 1;
+ }
+ else if (P[i].x == P[j].x) {
+ col += 1;
+ tmp = max(tmp, col);
+ }
+ else {
+ int a = P[i].y - P[j].y;
+ int b = P[i].x - P[j].x;
+
+ int t = gcd(a, b); // 利用最大公约数缩小
+ a /= t;
+ b /= t;
+ line[{a, b}]++;
+ tmp = max(tmp, line[{a, b}]);
+ }
+ }
+ ret = max(ret, tmp + dup + 1);
+ }
+
+ return ret;
+ }
+};
+```
\ No newline at end of file
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-C-\345\214\272\351\227\264\351\227\256\351\242\230.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\345\214\272\351\227\264\351\227\256\351\242\230.md"
similarity index 98%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-C-\345\214\272\351\227\264\351\227\256\351\242\230.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\345\214\272\351\227\264\351\227\256\351\242\230.md"
index f8b358c3..cccfd143 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-C-\345\214\272\351\227\264\351\227\256\351\242\230.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\345\214\272\351\227\264\351\227\256\351\242\230.md"
@@ -87,7 +87,7 @@ public:
- 所有开始时间标记 `+1`,结束时间标记 `-1`;
- 每当扫描线经过一个节点(开始或结束)时,就累计该节点的标记值;
- 累计值的**最大值**即为答案;
-
+
**C++**
```C++
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\216\222\345\210\227\347\273\204\345\220\210.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\216\222\345\210\227\347\273\204\345\220\210.md"
similarity index 90%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\216\222\345\210\227\347\273\204\345\220\210.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\216\222\345\210\227\347\273\204\345\220\210.md"
index d6c7e008..64068d2a 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\216\222\345\210\227\347\273\204\345\220\210.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\216\222\345\210\227\347\273\204\345\220\210.md"
@@ -6,7 +6,6 @@ Index
- [排列](#排列)
- - [【注】字典序](#注字典序)
- [下一个排列](#下一个排列)
- [上一个排列](#上一个排列)
- [STL 提供的实现(下一个排列、上一个排列) TODO](#stl-提供的实现下一个排列上一个排列-todo)
@@ -24,33 +23,18 @@ Index
- [组合总和(数字不重复但可重复使用)](#组合总和数字不重复但可重复使用)
- [组合总和 2(存在重复数字但每个数字只能使用一次)](#组合总和-2存在重复数字但每个数字只能使用一次)
- [组合总和 3(数字不重复且指定数量)](#组合总和-3数字不重复且指定数量)
- - [组合总和 4(动态规划)](#组合总和-4动态规划)
-- [【注】关于 `for(i=0;..)` 与 `for(i=step;..)` 的说明](#注关于-fori0-与-foristep-的说明)
-- [【注】关于 `dfs(step+1)`、`dfs(i+1)`、`dfs(i)` 的说明](#注关于-dfsstep1dfsi1dfsi-的说明)
- - [`dfs(step+1)` 和 `dfs(i+1)`](#dfsstep1-和-dfsi1)
- - [`dfs(i+1)` 和 `dfs(i)`](#dfsi1-和-dfsi)
+- [【说明】](#说明)
+ - [字典序](#字典序)
+ - [关于 `for(i=0;..)` 与 `for(i=step;..)` 的说明](#关于-fori0-与-foristep-的说明)
+ - [【注】关于 `dfs(step+1)`、`dfs(i+1)`、`dfs(i)` 的说明](#注关于-dfsstep1dfsi1dfsi-的说明)
+ - [`dfs(step+1)` 和 `dfs(i+1)`](#dfsstep1-和-dfsi1)
+ - [`dfs(i+1)` 和 `dfs(i)`](#dfsi1-和-dfsi)
## 排列
-### 【注】字典序
-- 在处理排列问题时,通常时根据**字典序**来生成下一个排列
-- 在字典序中,记序列的**升序**为第一个排列,**降序**为最后一个排列
-
-**高位与低位**
-- 对序列中任意两个位置而言,靠近左侧的为**高位**,靠近右侧的为低位
-- 生成排列的过程就是不断增大**高位**,减小**低位**的过程
- ```
- 1 2 3
- 1 3 2
- 2 1 3
- 2 3 1
- 3 1 2
- 3 2 1
- ```
-
### 下一个排列
> LeetCode - [31. 下一个排列](https://leetcode-cn.com/problems/next-permutation/description/)
@@ -69,8 +53,9 @@ Index
```
**思路**
-- 关键:**相邻的两个排列有最长公共前缀**,然后找到需要交换的**高位和低位**
-- 根据字典序说明,
+- **相邻的两个排列有最长公共前缀**,然后找到需要交换的**高位**和**低位**
+- 根据字典序的定义,依照如下步骤寻找下一个排列
+ > [字典序](#字典序)
1. 从后往前找需要改变的**高位** hi,即**第一个降序**元素的位置
```
1 5 8 4 7 6 5 3 1
@@ -230,12 +215,12 @@ public:
```
**思路**
-- 因为本题有序的性质,不需要求出前 k-1 个序列
+- 因为字典序的性质,实际不需要求出前 k-1 个序列
- 整体思路有点像**桶排序**
-- 以 `{1 2 3 4 5}` 为例,找出其中第 14 个序列
+- 以 `{1 2 3 4 5}` 为例,找出其中第 `14` 个序列
```
首先,可以先按第一个位置的元素,把所有序列依次到对应的桶中
- 在开始之前,先 k--,因为序列的 index 是从 0 开始的,k=13(下面会说明为什么需要减 1)
+ 在开始之前,先 k--,因为计算机计数是从 0 开始的,此时 k=13(下面会说明为什么需要减 1)
第 1 轮:剩余 5 个元素,有 5 个桶
第0个桶:以 1 开头,剩余元素 {2 3 4 5}
第1个桶:以 2 开头,剩余元素 {1 3 4 5}
@@ -354,9 +339,9 @@ class Solution {
return;
}
- for (int i = 0; i < n; i++) {
- if (used[i]) continue; // 如果使用了,跳过
-
+ for (int i = 0; i < n; i++) { // i 每次从 0 开始,因为元素可以重复使用
+ if (used[i]) continue; // 但是在每一轮中,如果用过了需要跳过
+ // 每一轮指的是生成一次排列的过程
used[i] = 1; // 标记使用
tmp.push_back(nums[i]);
dfs(nums, step + 1);
@@ -375,6 +360,7 @@ public:
}
};
```
+> [【注】关于 `for(i=0;..)` 与 `for(i=step;..)` 的说明](#注关于-fori0-与-foristep-的说明)
#### 基于交换的写法
- 基于交换的写法,代码比较简洁,但个人认为有一点不好理解
@@ -382,14 +368,14 @@ public:
class Solution {
vector > ret;
- //void dfs(vector nums, int step) {
- void dfs(vector& nums, int step) {
+ //void dfs(vector nums, int step) { // 值传递
+ void dfs(vector& nums, int step) { // 引用传递
if (step >= nums.size()) {
ret.push_back(nums);
return;
}
- for (int i = step; i < nums.size(); i++) {
+ for (int i = step; i < nums.size(); i++) { // 注意:这里 i 从 step 开始
swap(nums[step], nums[i]);
dfs(nums, step + 1);
swap(nums[step], nums[i]); // 如果 nums 是值传入,则不需要这步;否则不能省略
@@ -472,7 +458,7 @@ class Solution {
vector > ret;
//void dfs(vector& nums, int step) { // 传引用无法得出正确结果
- void dfs(vector nums, int step) { // 注意这里使用了**值传递**
+ void dfs(vector nums, int step) { // 注意这里应该使用**值传递**
int n = nums.size();
if (step >= n - 1) {
ret.push_back(nums);
@@ -611,6 +597,7 @@ public:
}
};
```
+> [【注】关于 `dfs(step+1)`、`dfs(i+1)`、`dfs(i)` 的说明](#注关于-dfsstep1dfsi1dfsi-的说明)
### 组合总和 2(存在重复数字但每个数字只能使用一次)
> LeetCode - [40. 组合总和 II](https://leetcode-cn.com/problems/combination-sum-ii/description/)
@@ -634,7 +621,7 @@ class Solution {
}
for (int i = step; i < nums.size(); i++) {
- if (i > step && nums[i] == nums[i - 1]) // > 代码说明 1
+ if (i > step && nums[i] == nums[i - 1]) // 代码说明 1
continue;
cur += nums[i];
@@ -660,9 +647,9 @@ public:
```
if (i > step && nums[i] == nums[i - 1])
```
-- 以 ![](../assets/公式_20180905213339.png) 为例
-- 这段代码实际上并不会过滤 ![](../assets/公式_20180905213323.png) ——`i == step` 的情况
-- 真正重复的情况是 ![](../assets/公式_20180905213258.png) 和 ![](../assets/公式_20180905213158.png),而这段代码的目的是过滤 ![](../assets/公式_20180905213158.png) ——`i > step` 的情况
+- 以 ![](../_assets/公式_20180905213339.png) 为例
+- 这段代码实际上并不会过滤 ![](../_assets/公式_20180905213323.png) ——`i == step` 的情况
+- 真正重复的情况是 ![](../_assets/公式_20180905213258.png) 和 ![](../_assets/公式_20180905213158.png),而这段代码的目的是过滤 ![](../_assets/公式_20180905213158.png) ——`i > step` 的情况
### 组合总和 3(数字不重复且指定数量)
> LeetCode - [216. 组合总和 III](https://leetcode-cn.com/problems/combination-sum-iii/description/)
@@ -698,7 +685,7 @@ class Solution {
void dfs(int n, int step) {
if (cur >= n) {
- if (cur == n && tmp.size() == K)
+ if (cur == n && tmp.size() == K) // 同时满足才加入结果集
ret.push_back(tmp);
return;
}
@@ -707,7 +694,7 @@ class Solution {
cur += i;
tmp.push_back(i);
- dfs(n, i + 1);
+ dfs(n, i + 1); // 因为数字不能重复使用,所以是 dfs(i+1)
tmp.pop_back();
cur -= i;
}
@@ -723,7 +710,8 @@ public:
};
```
-### 组合总和 4(动态规划)
+
+
+## 【说明】
+### 字典序
+- 在处理排列问题时,通常时根据**字典序**来生成下一个排列
+- 在字典序中,记序列的**升序**为第一个排列,**降序**为最后一个排列
+
+**高位与低位**
+- 对序列中任意两个位置而言,靠近左侧的为**高位**,靠近右侧的为低位
+- 生成排列的过程就是不断增大**高位**,减小**低位**的过程
+ ```
+ 1 2 3
+ 1 3 2
+ 2 1 3
+ 2 3 1
+ 3 1 2
+ 3 2 1
+ ```
-## 【注】关于 `for(i=0;..)` 与 `for(i=step;..)` 的说明
+### 关于 `for(i=0;..)` 与 `for(i=step;..)` 的说明
- `for(i=0;..)` 需配合 `used` 标记使用
- [全排列(无重复,基于插入的写法)](#基于插入的写法)
- [全排列(有重复,基于插入的写法)](#基于插入的写法-1)
@@ -800,10 +806,10 @@ public:
```
- 一般不需要 `used` 标记
-## 【注】关于 `dfs(step+1)`、`dfs(i+1)`、`dfs(i)` 的说明
+### 【注】关于 `dfs(step+1)`、`dfs(i+1)`、`dfs(i)` 的说明
(以下均为个人小结,并没有严格验证)
-### `dfs(step+1)` 和 `dfs(i+1)`
+#### `dfs(step+1)` 和 `dfs(i+1)`
- 简单来说,`dfs(step+1)` 指的是生成 `tmp` 序列中的第 `step+1` 个位置;`dfs(i+1)` 指的是使用 `nums` 中的第 `i+1` 个元素
- 在[排列(无重复)](#全排列无重复)问题中,使用的是 `dfs(step+1)`
- 在[组合(无重复)](#组合n-选-k无重复)问题中,使用的是 `dfs(i+1)`
@@ -841,7 +847,7 @@ public:
```
- 正是由于这个区别导致**排列**中应该使用 `dfs(step+1)`,而**组合**中应该使用 `dfs(i+1)`
-### `dfs(i+1)` 和 `dfs(i)`
+#### `dfs(i+1)` 和 `dfs(i)`
- 在[组合总和](#组合总和)问题中,还用到了 `dfs(i)`
```
for (int i = step; i < nums.size(); i++) {
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\264\227\347\211\214\343\200\201\351\207\207\346\240\267\343\200\201\351\232\217\346\234\272\346\225\260.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\264\227\347\211\214\343\200\201\351\207\207\346\240\267\343\200\201\351\232\217\346\234\272\346\225\260.md"
similarity index 99%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\264\227\347\211\214\343\200\201\351\207\207\346\240\267\343\200\201\351\232\217\346\234\272\346\225\260.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\264\227\347\211\214\343\200\201\351\207\207\346\240\267\343\200\201\351\232\217\346\234\272\346\225\260.md"
index 00cf6003..220159c5 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\264\227\347\211\214\343\200\201\351\207\207\346\240\267\343\200\201\351\232\217\346\234\272\346\225\260.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-C-\346\264\227\347\211\214\343\200\201\351\207\207\346\240\267\343\200\201\351\232\217\346\234\272\346\225\260.md"
@@ -271,7 +271,7 @@ PS: 假设提供一个能返回**大随机整数**的函数`rand()`
### 查表法(有放回)
- 图示
-
+
- 上面的线段按频度进行分割,下面为等距分割
- 往下方的线段随机打点(均匀分布),根据点所落在的区间对应到上方的线段,来确定采样的对象
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-\344\275\215\350\277\220\347\256\227.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-\344\275\215\350\277\220\347\256\227.md"
similarity index 100%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-\344\275\215\350\277\220\347\256\227.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-\344\275\215\350\277\220\347\256\227.md"
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-\345\244\247\346\225\260\350\277\220\347\256\227.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-\345\244\247\346\225\260\350\277\220\347\256\227.md"
similarity index 95%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-\345\244\247\346\225\260\350\277\220\347\256\227.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-\345\244\247\346\225\260\350\277\220\347\256\227.md"
index cc2c9e9a..9bb59835 100644
--- "a/\347\256\227\346\263\225/\344\270\223\351\242\230-\345\244\247\346\225\260\350\277\220\347\256\227.md"
+++ "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-\345\244\247\346\225\260\350\277\220\347\256\227.md"
@@ -15,7 +15,7 @@ Index
## 大数取模
### 取模运算的性质
-
+
- 因为 `(a%n) - (b%n)` 可能小于 `n`,所以 `+n`
- 因为 `(a%n)(b%n)` 可能溢出,计算前应该强转为 `long long`
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-\345\261\200\351\203\250\346\225\217\346\204\237\345\223\210\345\270\214.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-\345\261\200\351\203\250\346\225\217\346\204\237\345\223\210\345\270\214.md"
similarity index 100%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-\345\261\200\351\203\250\346\225\217\346\204\237\345\223\210\345\270\214.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-\345\261\200\351\203\250\346\225\217\346\204\237\345\223\210\345\270\214.md"
diff --git "a/\347\256\227\346\263\225/\344\270\223\351\242\230-\346\265\267\351\207\217\346\225\260\346\215\256\345\244\204\347\220\206.md" "b/B-\347\256\227\346\263\225/\344\270\223\351\242\230-\346\265\267\351\207\217\346\225\260\346\215\256\345\244\204\347\220\206.md"
similarity index 100%
rename from "\347\256\227\346\263\225/\344\270\223\351\242\230-\346\265\267\351\207\217\346\225\260\346\215\256\345\244\204\347\220\206.md"
rename to "B-\347\256\227\346\263\225/\344\270\223\351\242\230-\346\265\267\351\207\217\346\225\260\346\215\256\345\244\204\347\220\206.md"
diff --git "a/\347\256\227\346\263\225/\345\244\207\345\277\230-IO\346\250\241\346\235\277.md" "b/B-\347\256\227\346\263\225/\345\244\207\345\277\230-IO\346\250\241\346\235\277.md"
similarity index 100%
rename from "\347\256\227\346\263\225/\345\244\207\345\277\230-IO\346\250\241\346\235\277.md"
rename to "B-\347\256\227\346\263\225/\345\244\207\345\277\230-IO\346\250\241\346\235\277.md"
diff --git "a/\347\256\227\346\263\225/\345\244\207\345\277\230-\345\277\205\345\244\207\347\256\227\346\263\225.md" "b/B-\347\256\227\346\263\225/\345\244\207\345\277\230-\345\277\205\345\244\207\347\256\227\346\263\225.md"
similarity index 100%
rename from "\347\256\227\346\263\225/\345\244\207\345\277\230-\345\277\205\345\244\207\347\256\227\346\263\225.md"
rename to "B-\347\256\227\346\263\225/\345\244\207\345\277\230-\345\277\205\345\244\207\347\256\227\346\263\225.md"
diff --git "a/\347\256\227\346\263\225/\351\242\230\350\247\243-LeetCode.md" "b/B-\347\256\227\346\263\225/\351\242\230\350\247\243-LeetCode.md"
similarity index 100%
rename from "\347\256\227\346\263\225/\351\242\230\350\247\243-LeetCode.md"
rename to "B-\347\256\227\346\263\225/\351\242\230\350\247\243-LeetCode.md"
diff --git "a/\347\256\227\346\263\225/\351\242\230\350\247\243-\345\211\221\346\214\207Offer.md" "b/B-\347\256\227\346\263\225/\351\242\230\350\247\243-\345\211\221\346\214\207Offer.md"
similarity index 98%
rename from "\347\256\227\346\263\225/\351\242\230\350\247\243-\345\211\221\346\214\207Offer.md"
rename to "B-\347\256\227\346\263\225/\351\242\230\350\247\243-\345\211\221\346\214\207Offer.md"
index 01b74a50..fdc2f09d 100644
--- "a/\347\256\227\346\263\225/\351\242\230\350\247\243-\345\211\221\346\214\207Offer.md"
+++ "b/B-\347\256\227\346\263\225/\351\242\230\350\247\243-\345\211\221\346\214\207Offer.md"
@@ -782,7 +782,7 @@ public:
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。
```
- 例如下面的矩阵包含了一条 bfce 路径。
-
+
**思路**
- 深度优先搜索(DFS)
@@ -1008,7 +1008,7 @@ public:
**思路**
- 位运算 - 快速幂
-
+
- 示例
```
@@ -1105,10 +1105,10 @@ void PrintNumber(char* number) {
- 因为不能遍历,所以只能通过修改节点的值来实现这个操作
- 简单来说,就是将该节点的值修改为其下一个节点的值,**实际上删除的是该节点的下一个节点**(题目的描述可能会带来误导)
- 如果该节点不是尾节点,那么按上述操作即可——时间的复杂度为 `O(1)`
-
+
- 如果该节点是尾节点,此时必须通过遍历来找到该节点的前一个节点,才能完成删除——时间复杂度为 `O(N)`
-
+
- 如果是 C++,一定要注意 **delete 指针指向的内存后,必须将指针重新指向 nullptr**
```C++
@@ -1499,7 +1499,7 @@ public:
**思路**
- 快慢双指针
- 快指针 fast 每次移动 2 步,慢指针 slow 每次 1 步;因为存在环,fast 和 slow 总会相遇,此时 fast 刚好比 slow 多走一圈(?)
-
+
- 如图,假设他们相遇在 z1 点,此时将 fast/slow 之一重新指向头结点,继续每次一步移动,它们再次相遇的点就是入口
@@ -1663,7 +1663,7 @@ public:
约定空树不是任意一个树的子结构。
```
- 图示
-
+
**思路**
- 递归
@@ -1706,7 +1706,7 @@ public:
操作给定的二叉树,将其变换为源二叉树的镜像。
```
- 图示
-
+
**思路**
- 前序遍历,每次交换节点的左右子树;即必须先交换节点的左右子树后,才能继续遍历
@@ -1777,7 +1777,7 @@ public:
下图的矩阵顺时针打印结果为:1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10
```
- 图示
-
+
- 注意,不是蛇形打印,而是一层一层顺时针打印
@@ -1907,7 +1907,7 @@ public:
例如,以下二叉树层次遍历的结果为:1,2,3,4,5,6,7
```
- 图示
-
+
**思路**
- 广度优先搜索 + 队列
@@ -2220,11 +2220,11 @@ public:
- 问题的难点在于不知道特殊指针所指的节点在新链表中位置
- 一个**经典的方法**:
- 第一步,复制每个节点,如:原来是 `A->B->C` 变成 `A->A'->B->B'->C->C'`;
-
+
- 第二步,遍历链表,使:`A'->random = A->random->next`;
-
+
- 第三步,拆分链表
-
+
**Code**
```C++
@@ -2275,7 +2275,7 @@ public:
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。
要求不能创建任何新的结点,只能调整树中结点指针的指向。
```
-
+
**思路**
- 因为要求是有序链表,因此考虑**中序遍历**
diff --git "a/\347\256\227\346\263\225/\351\242\230\350\247\243-\351\235\242\350\257\225\347\234\237\351\242\230.md" "b/B-\347\256\227\346\263\225/\351\242\230\350\247\243-\351\235\242\350\257\225\347\234\237\351\242\230.md"
similarity index 100%
rename from "\347\256\227\346\263\225/\351\242\230\350\247\243-\351\235\242\350\257\225\347\234\237\351\242\230.md"
rename to "B-\347\256\227\346\263\225/\351\242\230\350\247\243-\351\235\242\350\257\225\347\234\237\351\242\230.md"
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/README.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/README.md"
similarity index 100%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/README.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/README.md"
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-360-180827.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-360-180827.md"
similarity index 100%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-360-180827.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-360-180827.md"
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\255\227\350\212\202\350\267\263\345\212\250-180812.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\255\227\350\212\202\350\267\263\345\212\250-180812.md"
similarity index 82%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\255\227\350\212\202\350\267\263\345\212\250-180812.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\255\227\350\212\202\350\267\263\345\212\250-180812.md"
index 981ea96e..416169df 100644
--- "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\255\227\350\212\202\350\267\263\345\212\250-180812.md"
+++ "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\255\227\350\212\202\350\267\263\345\212\250-180812.md"
@@ -19,8 +19,8 @@ Index
## 1. 世界杯开幕式
-
-
+
+
**思路**
- dfs 搜索联通区域
@@ -74,8 +74,8 @@ print(str(P) + ',' + str(Q))
```
## 2. 文章病句标识
-
-
+
+
**思路**
- 区间合并
@@ -113,8 +113,8 @@ print(s)
```
## 3. 积分卡牌游戏
-
-
+
+
**思路**
- 动态规划
@@ -150,13 +150,13 @@ else:
- 这段代码能过 90% 真是运气
## 4. 区间最大最小值 TODO
-
-
+
+
## 5. 直播爱好者
-
-
-
+
+
+
**思路**
- 贪心选择结束时间最早的直播
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\272\246\345\260\217\346\273\241-180913.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\272\246\345\260\217\346\273\241-180913.md"
similarity index 86%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\272\246\345\260\217\346\273\241-180913.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\272\246\345\260\217\346\273\241-180913.md"
index 6bba2673..52e6c37f 100644
--- "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\272\246\345\260\217\346\273\241-180913.md"
+++ "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\272\246\345\260\217\346\273\241-180913.md"
@@ -8,8 +8,8 @@ Index
## 火车站台
-
-
+
+
**思路**
- 求区间最大重叠数
@@ -59,7 +59,7 @@ print(mx)
```
## 商品交易
-
+
**思路**
- LeetCode原题
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\277\253\346\211\213-180910.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\277\253\346\211\213-180910.md"
similarity index 84%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\277\253\346\211\213-180910.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\277\253\346\211\213-180910.md"
index bf149935..01bbc34f 100644
--- "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\277\253\346\211\213-180910.md"
+++ "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\345\277\253\346\211\213-180910.md"
@@ -15,7 +15,7 @@ Index
### 字符串归一化
-
+
**Python**(AC)
```
@@ -33,8 +33,8 @@ print(res)
```
### 魔法深渊
-
-
+
+
**Python**(AC)
```
@@ -59,9 +59,9 @@ for i in range(N):
```
### 善变的同伴
-
-
-
+
+
+
**思路**
```
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\346\213\233\350\241\214-180830.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\346\213\233\350\241\214-180830.md"
similarity index 68%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\346\213\233\350\241\214-180830.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\346\213\233\350\241\214-180830.md"
index 25521ab2..238d07ae 100644
--- "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\346\213\233\350\241\214-180830.md"
+++ "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\346\213\233\350\241\214-180830.md"
@@ -14,7 +14,7 @@ Index
## 重叠的装饰
**题目描述**
-
+
**思路**
- 线段树
@@ -24,6 +24,6 @@ Index
## 推倒吧骨牌
> LeetCode 原题:https://leetcode-cn.com/problems/push-dominoes/description/
>> **题解**:../算法/LeetCode题解/[838. 推多米诺](../算法/题解-LeetCode.md#838-推多米诺)
-
-
+
+
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\347\231\276\345\272\246-180911.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\347\231\276\345\272\246-180911.md"
similarity index 65%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\347\231\276\345\272\246-180911.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\347\231\276\345\272\246-180911.md"
index 001fb098..f24b6579 100644
--- "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\347\231\276\345\272\246-180911.md"
+++ "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\347\231\276\345\272\246-180911.md"
@@ -6,7 +6,7 @@ Index
---
## 1.
-
+
样例说明:
```
@@ -16,7 +16,7 @@ Index
> [百度A题_笔经面经](https://www.nowcoder.com/discuss/107402?type=2&order=0&pos=10&page=1)_牛客网
## 2. 蘑菇传奇
-
+
样例:
```
diff --git "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\350\277\205\351\233\267-180912.md" "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\350\277\205\351\233\267-180912.md"
similarity index 81%
rename from "\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\350\277\205\351\233\267-180912.md"
rename to "C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\350\277\205\351\233\267-180912.md"
index 5a991ce6..65fcba5c 100644
--- "a/\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\350\277\205\351\233\267-180912.md"
+++ "b/C-\347\254\224\350\257\225\351\235\242\347\273\217/\347\254\224\350\257\225-\350\277\205\351\233\267-180912.md"
@@ -12,7 +12,7 @@ Index
## AI-A-01
-
+
**Python**(AC)
```python
@@ -34,7 +34,7 @@ else:
## AI-A-02
-
+
**Python**(AC)
```
diff --git "a/\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\237\272\347\241\200\347\237\245\350\257\206.md" "b/C-\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\237\272\347\241\200\347\237\245\350\257\206.md"
similarity index 100%
rename from "\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\237\272\347\241\200\347\237\245\350\257\206.md"
rename to "C-\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\237\272\347\241\200\347\237\245\350\257\206.md"
diff --git "a/\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\267\246\345\200\274\344\270\216\345\217\263\345\200\274.md" "b/C-\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\267\246\345\200\274\344\270\216\345\217\263\345\200\274.md"
similarity index 99%
rename from "\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\267\246\345\200\274\344\270\216\345\217\263\345\200\274.md"
rename to "C-\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\267\246\345\200\274\344\270\216\345\217\263\345\200\274.md"
index 8efdb3df..0831c603 100644
--- "a/\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\267\246\345\200\274\344\270\216\345\217\263\345\200\274.md"
+++ "b/C-\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\345\267\246\345\200\274\344\270\216\345\217\263\345\200\274.md"
@@ -160,7 +160,7 @@ auto&& t = x; // OK
- 其中左值和消亡值统称**泛左值**(glvalue);
消亡值和纯右值统称**右值**(rvalue)。
-
+
## 右值引用的特点
diff --git "a/\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\351\235\242\345\220\221\345\257\271\350\261\241\347\274\226\347\250\213.md" "b/C-\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\351\235\242\345\220\221\345\257\271\350\261\241\347\274\226\347\250\213.md"
similarity index 100%
rename from "\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\351\235\242\345\220\221\345\257\271\350\261\241\347\274\226\347\250\213.md"
rename to "C-\347\274\226\347\250\213\350\257\255\350\250\200/Cpp-\351\235\242\345\220\221\345\257\271\350\261\241\347\274\226\347\250\213.md"
diff --git "a/\347\274\226\347\250\213\350\257\255\350\250\200/README.md" "b/C-\347\274\226\347\250\213\350\257\255\350\250\200/README.md"
similarity index 100%
rename from "\347\274\226\347\250\213\350\257\255\350\250\200/README.md"
rename to "C-\347\274\226\347\250\213\350\257\255\350\250\200/README.md"
diff --git a/assets/LSTM3-SimpleRNN.png b/_assets/LSTM3-SimpleRNN.png
similarity index 100%
rename from assets/LSTM3-SimpleRNN.png
rename to _assets/LSTM3-SimpleRNN.png
diff --git a/assets/LSTM3-chain.png b/_assets/LSTM3-chain.png
similarity index 100%
rename from assets/LSTM3-chain.png
rename to _assets/LSTM3-chain.png
diff --git a/assets/LSTM3-focus-C.png b/_assets/LSTM3-focus-C.png
similarity index 100%
rename from assets/LSTM3-focus-C.png
rename to _assets/LSTM3-focus-C.png
diff --git a/assets/LSTM3-focus-f.png b/_assets/LSTM3-focus-f.png
similarity index 100%
rename from assets/LSTM3-focus-f.png
rename to _assets/LSTM3-focus-f.png
diff --git a/assets/LSTM3-focus-i.png b/_assets/LSTM3-focus-i.png
similarity index 100%
rename from assets/LSTM3-focus-i.png
rename to _assets/LSTM3-focus-i.png
diff --git a/assets/LSTM3-focus-o.png b/_assets/LSTM3-focus-o.png
similarity index 100%
rename from assets/LSTM3-focus-o.png
rename to _assets/LSTM3-focus-o.png
diff --git a/assets/LSTM3-var-GRU.png b/_assets/LSTM3-var-GRU.png
similarity index 100%
rename from assets/LSTM3-var-GRU.png
rename to _assets/LSTM3-var-GRU.png
diff --git "a/assets/TIM\345\233\276\347\211\20720180811181406.png" "b/_assets/TIM\345\233\276\347\211\20720180811181406.png"
similarity index 100%
rename from "assets/TIM\345\233\276\347\211\20720180811181406.png"
rename to "_assets/TIM\345\233\276\347\211\20720180811181406.png"
diff --git "a/assets/TIM\345\233\276\347\211\20720180811182142.png" "b/_assets/TIM\345\233\276\347\211\20720180811182142.png"
similarity index 100%
rename from "assets/TIM\345\233\276\347\211\20720180811182142.png"
rename to "_assets/TIM\345\233\276\347\211\20720180811182142.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180608171710.png" "b/_assets/TIM\346\210\252\345\233\27620180608171710.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180608171710.png"
rename to "_assets/TIM\346\210\252\345\233\27620180608171710.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180608172312.png" "b/_assets/TIM\346\210\252\345\233\27620180608172312.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180608172312.png"
rename to "_assets/TIM\346\210\252\345\233\27620180608172312.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180608195851.png" "b/_assets/TIM\346\210\252\345\233\27620180608195851.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180608195851.png"
rename to "_assets/TIM\346\210\252\345\233\27620180608195851.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180608204913.png" "b/_assets/TIM\346\210\252\345\233\27620180608204913.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180608204913.png"
rename to "_assets/TIM\346\210\252\345\233\27620180608204913.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180608205223.png" "b/_assets/TIM\346\210\252\345\233\27620180608205223.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180608205223.png"
rename to "_assets/TIM\346\210\252\345\233\27620180608205223.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180608212808.png" "b/_assets/TIM\346\210\252\345\233\27620180608212808.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180608212808.png"
rename to "_assets/TIM\346\210\252\345\233\27620180608212808.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180610131620.png" "b/_assets/TIM\346\210\252\345\233\27620180610131620.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180610131620.png"
rename to "_assets/TIM\346\210\252\345\233\27620180610131620.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180610132602.png" "b/_assets/TIM\346\210\252\345\233\27620180610132602.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180610132602.png"
rename to "_assets/TIM\346\210\252\345\233\27620180610132602.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180610194353.png" "b/_assets/TIM\346\210\252\345\233\27620180610194353.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180610194353.png"
rename to "_assets/TIM\346\210\252\345\233\27620180610194353.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180610203703.png" "b/_assets/TIM\346\210\252\345\233\27620180610203703.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180610203703.png"
rename to "_assets/TIM\346\210\252\345\233\27620180610203703.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180610210251.png" "b/_assets/TIM\346\210\252\345\233\27620180610210251.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180610210251.png"
rename to "_assets/TIM\346\210\252\345\233\27620180610210251.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611150734.png" "b/_assets/TIM\346\210\252\345\233\27620180611150734.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611150734.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611150734.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611152559.png" "b/_assets/TIM\346\210\252\345\233\27620180611152559.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611152559.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611152559.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611171103.png" "b/_assets/TIM\346\210\252\345\233\27620180611171103.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611171103.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611171103.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611171213.png" "b/_assets/TIM\346\210\252\345\233\27620180611171213.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611171213.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611171213.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611172657.png" "b/_assets/TIM\346\210\252\345\233\27620180611172657.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611172657.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611172657.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611194754.png" "b/_assets/TIM\346\210\252\345\233\27620180611194754.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611194754.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611194754.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611195027.png" "b/_assets/TIM\346\210\252\345\233\27620180611195027.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611195027.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611195027.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611203427.png" "b/_assets/TIM\346\210\252\345\233\27620180611203427.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611203427.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611203427.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611204215.png" "b/_assets/TIM\346\210\252\345\233\27620180611204215.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611204215.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611204215.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611204503.png" "b/_assets/TIM\346\210\252\345\233\27620180611204503.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611204503.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611204503.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611211649.png" "b/_assets/TIM\346\210\252\345\233\27620180611211649.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611211649.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611211649.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611211753.png" "b/_assets/TIM\346\210\252\345\233\27620180611211753.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611211753.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611211753.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611214508.png" "b/_assets/TIM\346\210\252\345\233\27620180611214508.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611214508.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611214508.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611215422.png" "b/_assets/TIM\346\210\252\345\233\27620180611215422.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611215422.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611215422.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611215923.png" "b/_assets/TIM\346\210\252\345\233\27620180611215923.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611215923.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611215923.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180611220109.png" "b/_assets/TIM\346\210\252\345\233\27620180611220109.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180611220109.png"
rename to "_assets/TIM\346\210\252\345\233\27620180611220109.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180612104740.png" "b/_assets/TIM\346\210\252\345\233\27620180612104740.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180612104740.png"
rename to "_assets/TIM\346\210\252\345\233\27620180612104740.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180612120851.png" "b/_assets/TIM\346\210\252\345\233\27620180612120851.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180612120851.png"
rename to "_assets/TIM\346\210\252\345\233\27620180612120851.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180612121301.png" "b/_assets/TIM\346\210\252\345\233\27620180612121301.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180612121301.png"
rename to "_assets/TIM\346\210\252\345\233\27620180612121301.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180612154333.png" "b/_assets/TIM\346\210\252\345\233\27620180612154333.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180612154333.png"
rename to "_assets/TIM\346\210\252\345\233\27620180612154333.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180612213144.png" "b/_assets/TIM\346\210\252\345\233\27620180612213144.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180612213144.png"
rename to "_assets/TIM\346\210\252\345\233\27620180612213144.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180613101802.png" "b/_assets/TIM\346\210\252\345\233\27620180613101802.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180613101802.png"
rename to "_assets/TIM\346\210\252\345\233\27620180613101802.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180613150111.png" "b/_assets/TIM\346\210\252\345\233\27620180613150111.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180613150111.png"
rename to "_assets/TIM\346\210\252\345\233\27620180613150111.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180613150711.png" "b/_assets/TIM\346\210\252\345\233\27620180613150711.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180613150711.png"
rename to "_assets/TIM\346\210\252\345\233\27620180613150711.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180613151014.png" "b/_assets/TIM\346\210\252\345\233\27620180613151014.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180613151014.png"
rename to "_assets/TIM\346\210\252\345\233\27620180613151014.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180613151356.png" "b/_assets/TIM\346\210\252\345\233\27620180613151356.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180613151356.png"
rename to "_assets/TIM\346\210\252\345\233\27620180613151356.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180613200023.png" "b/_assets/TIM\346\210\252\345\233\27620180613200023.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180613200023.png"
rename to "_assets/TIM\346\210\252\345\233\27620180613200023.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180613211935.png" "b/_assets/TIM\346\210\252\345\233\27620180613211935.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180613211935.png"
rename to "_assets/TIM\346\210\252\345\233\27620180613211935.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180614103628.png" "b/_assets/TIM\346\210\252\345\233\27620180614103628.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180614103628.png"
rename to "_assets/TIM\346\210\252\345\233\27620180614103628.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180614104032.png" "b/_assets/TIM\346\210\252\345\233\27620180614104032.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180614104032.png"
rename to "_assets/TIM\346\210\252\345\233\27620180614104032.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180614111241.png" "b/_assets/TIM\346\210\252\345\233\27620180614111241.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180614111241.png"
rename to "_assets/TIM\346\210\252\345\233\27620180614111241.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180614111712.png" "b/_assets/TIM\346\210\252\345\233\27620180614111712.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180614111712.png"
rename to "_assets/TIM\346\210\252\345\233\27620180614111712.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180614203447.png" "b/_assets/TIM\346\210\252\345\233\27620180614203447.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180614203447.png"
rename to "_assets/TIM\346\210\252\345\233\27620180614203447.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180615111903.png" "b/_assets/TIM\346\210\252\345\233\27620180615111903.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180615111903.png"
rename to "_assets/TIM\346\210\252\345\233\27620180615111903.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180615150955.png" "b/_assets/TIM\346\210\252\345\233\27620180615150955.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180615150955.png"
rename to "_assets/TIM\346\210\252\345\233\27620180615150955.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180617140439.png" "b/_assets/TIM\346\210\252\345\233\27620180617140439.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180617140439.png"
rename to "_assets/TIM\346\210\252\345\233\27620180617140439.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180617141056.png" "b/_assets/TIM\346\210\252\345\233\27620180617141056.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180617141056.png"
rename to "_assets/TIM\346\210\252\345\233\27620180617141056.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180617141502.png" "b/_assets/TIM\346\210\252\345\233\27620180617141502.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180617141502.png"
rename to "_assets/TIM\346\210\252\345\233\27620180617141502.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619104551.png" "b/_assets/TIM\346\210\252\345\233\27620180619104551.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619104551.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619104551.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619104649.png" "b/_assets/TIM\346\210\252\345\233\27620180619104649.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619104649.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619104649.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619104914.png" "b/_assets/TIM\346\210\252\345\233\27620180619104914.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619104914.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619104914.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619113501.png" "b/_assets/TIM\346\210\252\345\233\27620180619113501.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619113501.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619113501.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619114844.png" "b/_assets/TIM\346\210\252\345\233\27620180619114844.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619114844.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619114844.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619193332.png" "b/_assets/TIM\346\210\252\345\233\27620180619193332.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619193332.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619193332.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619193540.png" "b/_assets/TIM\346\210\252\345\233\27620180619193540.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619193540.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619193540.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619205103.png" "b/_assets/TIM\346\210\252\345\233\27620180619205103.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619205103.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619205103.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619214629.png" "b/_assets/TIM\346\210\252\345\233\27620180619214629.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619214629.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619214629.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180619214735.png" "b/_assets/TIM\346\210\252\345\233\27620180619214735.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180619214735.png"
rename to "_assets/TIM\346\210\252\345\233\27620180619214735.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180620164337.png" "b/_assets/TIM\346\210\252\345\233\27620180620164337.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180620164337.png"
rename to "_assets/TIM\346\210\252\345\233\27620180620164337.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180620171300.png" "b/_assets/TIM\346\210\252\345\233\27620180620171300.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180620171300.png"
rename to "_assets/TIM\346\210\252\345\233\27620180620171300.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180620171915.png" "b/_assets/TIM\346\210\252\345\233\27620180620171915.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180620171915.png"
rename to "_assets/TIM\346\210\252\345\233\27620180620171915.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180620190555.png" "b/_assets/TIM\346\210\252\345\233\27620180620190555.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180620190555.png"
rename to "_assets/TIM\346\210\252\345\233\27620180620190555.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180620191137.png" "b/_assets/TIM\346\210\252\345\233\27620180620191137.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180620191137.png"
rename to "_assets/TIM\346\210\252\345\233\27620180620191137.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180620211714.png" "b/_assets/TIM\346\210\252\345\233\27620180620211714.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180620211714.png"
rename to "_assets/TIM\346\210\252\345\233\27620180620211714.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180625113016.png" "b/_assets/TIM\346\210\252\345\233\27620180625113016.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180625113016.png"
rename to "_assets/TIM\346\210\252\345\233\27620180625113016.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180625150305.png" "b/_assets/TIM\346\210\252\345\233\27620180625150305.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180625150305.png"
rename to "_assets/TIM\346\210\252\345\233\27620180625150305.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180625150437.png" "b/_assets/TIM\346\210\252\345\233\27620180625150437.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180625150437.png"
rename to "_assets/TIM\346\210\252\345\233\27620180625150437.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180625151928.png" "b/_assets/TIM\346\210\252\345\233\27620180625151928.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180625151928.png"
rename to "_assets/TIM\346\210\252\345\233\27620180625151928.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180625160257.png" "b/_assets/TIM\346\210\252\345\233\27620180625160257.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180625160257.png"
rename to "_assets/TIM\346\210\252\345\233\27620180625160257.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180625162938.png" "b/_assets/TIM\346\210\252\345\233\27620180625162938.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180625162938.png"
rename to "_assets/TIM\346\210\252\345\233\27620180625162938.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626105733.png" "b/_assets/TIM\346\210\252\345\233\27620180626105733.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626105733.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626105733.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626105919.png" "b/_assets/TIM\346\210\252\345\233\27620180626105919.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626105919.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626105919.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626111112.png" "b/_assets/TIM\346\210\252\345\233\27620180626111112.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626111112.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626111112.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626111415.png" "b/_assets/TIM\346\210\252\345\233\27620180626111415.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626111415.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626111415.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626111458.png" "b/_assets/TIM\346\210\252\345\233\27620180626111458.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626111458.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626111458.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626112002.png" "b/_assets/TIM\346\210\252\345\233\27620180626112002.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626112002.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626112002.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626112123.png" "b/_assets/TIM\346\210\252\345\233\27620180626112123.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626112123.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626112123.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626114634.png" "b/_assets/TIM\346\210\252\345\233\27620180626114634.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626114634.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626114634.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626152514.png" "b/_assets/TIM\346\210\252\345\233\27620180626152514.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626152514.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626152514.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626211340.png" "b/_assets/TIM\346\210\252\345\233\27620180626211340.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626211340.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626211340.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626211449.png" "b/_assets/TIM\346\210\252\345\233\27620180626211449.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626211449.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626211449.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626213324.png" "b/_assets/TIM\346\210\252\345\233\27620180626213324.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626213324.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626213324.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626214855.png" "b/_assets/TIM\346\210\252\345\233\27620180626214855.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626214855.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626214855.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180626221601.png" "b/_assets/TIM\346\210\252\345\233\27620180626221601.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180626221601.png"
rename to "_assets/TIM\346\210\252\345\233\27620180626221601.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627100028.png" "b/_assets/TIM\346\210\252\345\233\27620180627100028.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627100028.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627100028.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627103330.png" "b/_assets/TIM\346\210\252\345\233\27620180627103330.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627103330.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627103330.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627103720.png" "b/_assets/TIM\346\210\252\345\233\27620180627103720.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627103720.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627103720.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627104200.png" "b/_assets/TIM\346\210\252\345\233\27620180627104200.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627104200.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627104200.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627111545.png" "b/_assets/TIM\346\210\252\345\233\27620180627111545.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627111545.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627111545.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627114343.png" "b/_assets/TIM\346\210\252\345\233\27620180627114343.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627114343.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627114343.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627155759.png" "b/_assets/TIM\346\210\252\345\233\27620180627155759.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627155759.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627155759.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627155845.png" "b/_assets/TIM\346\210\252\345\233\27620180627155845.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627155845.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627155845.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627155928.png" "b/_assets/TIM\346\210\252\345\233\27620180627155928.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627155928.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627155928.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627160125.png" "b/_assets/TIM\346\210\252\345\233\27620180627160125.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627160125.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627160125.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627161532.png" "b/_assets/TIM\346\210\252\345\233\27620180627161532.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627161532.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627161532.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627210731.png" "b/_assets/TIM\346\210\252\345\233\27620180627210731.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627210731.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627210731.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627212338.png" "b/_assets/TIM\346\210\252\345\233\27620180627212338.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627212338.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627212338.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180627213951.png" "b/_assets/TIM\346\210\252\345\233\27620180627213951.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180627213951.png"
rename to "_assets/TIM\346\210\252\345\233\27620180627213951.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628104522.png" "b/_assets/TIM\346\210\252\345\233\27620180628104522.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628104522.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628104522.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628110615.png" "b/_assets/TIM\346\210\252\345\233\27620180628110615.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628110615.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628110615.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628110920.png" "b/_assets/TIM\346\210\252\345\233\27620180628110920.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628110920.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628110920.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628120153.png" "b/_assets/TIM\346\210\252\345\233\27620180628120153.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628120153.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628120153.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628120634.png" "b/_assets/TIM\346\210\252\345\233\27620180628120634.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628120634.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628120634.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628121250.png" "b/_assets/TIM\346\210\252\345\233\27620180628121250.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628121250.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628121250.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628201027.png" "b/_assets/TIM\346\210\252\345\233\27620180628201027.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628201027.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628201027.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628201344.png" "b/_assets/TIM\346\210\252\345\233\27620180628201344.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628201344.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628201344.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628203925.png" "b/_assets/TIM\346\210\252\345\233\27620180628203925.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628203925.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628203925.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628205802.png" "b/_assets/TIM\346\210\252\345\233\27620180628205802.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628205802.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628205802.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180628211047.png" "b/_assets/TIM\346\210\252\345\233\27620180628211047.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180628211047.png"
rename to "_assets/TIM\346\210\252\345\233\27620180628211047.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629094906.png" "b/_assets/TIM\346\210\252\345\233\27620180629094906.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629094906.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629094906.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629100103.png" "b/_assets/TIM\346\210\252\345\233\27620180629100103.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629100103.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629100103.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629101348.png" "b/_assets/TIM\346\210\252\345\233\27620180629101348.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629101348.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629101348.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629102412.png" "b/_assets/TIM\346\210\252\345\233\27620180629102412.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629102412.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629102412.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629114258.png" "b/_assets/TIM\346\210\252\345\233\27620180629114258.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629114258.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629114258.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629114604.png" "b/_assets/TIM\346\210\252\345\233\27620180629114604.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629114604.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629114604.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629150107.png" "b/_assets/TIM\346\210\252\345\233\27620180629150107.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629150107.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629150107.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629150441.png" "b/_assets/TIM\346\210\252\345\233\27620180629150441.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629150441.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629150441.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629150541.png" "b/_assets/TIM\346\210\252\345\233\27620180629150541.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629150541.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629150541.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629150705.png" "b/_assets/TIM\346\210\252\345\233\27620180629150705.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629150705.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629150705.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629150816.png" "b/_assets/TIM\346\210\252\345\233\27620180629150816.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629150816.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629150816.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629151001.png" "b/_assets/TIM\346\210\252\345\233\27620180629151001.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629151001.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629151001.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629152708.png" "b/_assets/TIM\346\210\252\345\233\27620180629152708.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629152708.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629152708.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629153515.png" "b/_assets/TIM\346\210\252\345\233\27620180629153515.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629153515.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629153515.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629155530.png" "b/_assets/TIM\346\210\252\345\233\27620180629155530.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629155530.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629155530.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629160418.png" "b/_assets/TIM\346\210\252\345\233\27620180629160418.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629160418.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629160418.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629164908.png" "b/_assets/TIM\346\210\252\345\233\27620180629164908.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629164908.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629164908.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629165317.png" "b/_assets/TIM\346\210\252\345\233\27620180629165317.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629165317.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629165317.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629193011.png" "b/_assets/TIM\346\210\252\345\233\27620180629193011.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629193011.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629193011.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629210220.png" "b/_assets/TIM\346\210\252\345\233\27620180629210220.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629210220.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629210220.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629210933.png" "b/_assets/TIM\346\210\252\345\233\27620180629210933.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629210933.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629210933.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180629211550.png" "b/_assets/TIM\346\210\252\345\233\27620180629211550.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180629211550.png"
rename to "_assets/TIM\346\210\252\345\233\27620180629211550.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630094515.png" "b/_assets/TIM\346\210\252\345\233\27620180630094515.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630094515.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630094515.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630094555.png" "b/_assets/TIM\346\210\252\345\233\27620180630094555.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630094555.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630094555.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630094715.png" "b/_assets/TIM\346\210\252\345\233\27620180630094715.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630094715.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630094715.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630094826.png" "b/_assets/TIM\346\210\252\345\233\27620180630094826.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630094826.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630094826.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630095121.png" "b/_assets/TIM\346\210\252\345\233\27620180630095121.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630095121.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630095121.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630095210.png" "b/_assets/TIM\346\210\252\345\233\27620180630095210.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630095210.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630095210.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630110837.png" "b/_assets/TIM\346\210\252\345\233\27620180630110837.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630110837.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630110837.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630111742.png" "b/_assets/TIM\346\210\252\345\233\27620180630111742.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630111742.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630111742.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630113040.png" "b/_assets/TIM\346\210\252\345\233\27620180630113040.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630113040.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630113040.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630113240.png" "b/_assets/TIM\346\210\252\345\233\27620180630113240.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630113240.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630113240.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630153013.png" "b/_assets/TIM\346\210\252\345\233\27620180630153013.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630153013.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630153013.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630153808.png" "b/_assets/TIM\346\210\252\345\233\27620180630153808.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630153808.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630153808.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630153907.png" "b/_assets/TIM\346\210\252\345\233\27620180630153907.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630153907.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630153907.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630154029.png" "b/_assets/TIM\346\210\252\345\233\27620180630154029.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630154029.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630154029.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630154212.png" "b/_assets/TIM\346\210\252\345\233\27620180630154212.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630154212.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630154212.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630194836.png" "b/_assets/TIM\346\210\252\345\233\27620180630194836.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630194836.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630194836.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630201849.png" "b/_assets/TIM\346\210\252\345\233\27620180630201849.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630201849.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630201849.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630202744.png" "b/_assets/TIM\346\210\252\345\233\27620180630202744.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630202744.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630202744.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630203750.png" "b/_assets/TIM\346\210\252\345\233\27620180630203750.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630203750.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630203750.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630203959.png" "b/_assets/TIM\346\210\252\345\233\27620180630203959.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630203959.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630203959.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630204148.png" "b/_assets/TIM\346\210\252\345\233\27620180630204148.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630204148.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630204148.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180630204303.png" "b/_assets/TIM\346\210\252\345\233\27620180630204303.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180630204303.png"
rename to "_assets/TIM\346\210\252\345\233\27620180630204303.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180701210407.png" "b/_assets/TIM\346\210\252\345\233\27620180701210407.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180701210407.png"
rename to "_assets/TIM\346\210\252\345\233\27620180701210407.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180701211429.png" "b/_assets/TIM\346\210\252\345\233\27620180701211429.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180701211429.png"
rename to "_assets/TIM\346\210\252\345\233\27620180701211429.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180701211850.png" "b/_assets/TIM\346\210\252\345\233\27620180701211850.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180701211850.png"
rename to "_assets/TIM\346\210\252\345\233\27620180701211850.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180701212340.png" "b/_assets/TIM\346\210\252\345\233\27620180701212340.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180701212340.png"
rename to "_assets/TIM\346\210\252\345\233\27620180701212340.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180701212657.png" "b/_assets/TIM\346\210\252\345\233\27620180701212657.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180701212657.png"
rename to "_assets/TIM\346\210\252\345\233\27620180701212657.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180701213151.png" "b/_assets/TIM\346\210\252\345\233\27620180701213151.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180701213151.png"
rename to "_assets/TIM\346\210\252\345\233\27620180701213151.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180701214914.png" "b/_assets/TIM\346\210\252\345\233\27620180701214914.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180701214914.png"
rename to "_assets/TIM\346\210\252\345\233\27620180701214914.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702092532.png" "b/_assets/TIM\346\210\252\345\233\27620180702092532.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702092532.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702092532.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702093050.png" "b/_assets/TIM\346\210\252\345\233\27620180702093050.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702093050.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702093050.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702094246.png" "b/_assets/TIM\346\210\252\345\233\27620180702094246.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702094246.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702094246.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702094455.png" "b/_assets/TIM\346\210\252\345\233\27620180702094455.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702094455.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702094455.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702095428.png" "b/_assets/TIM\346\210\252\345\233\27620180702095428.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702095428.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702095428.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702111411.png" "b/_assets/TIM\346\210\252\345\233\27620180702111411.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702111411.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702111411.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702112135.png" "b/_assets/TIM\346\210\252\345\233\27620180702112135.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702112135.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702112135.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702113031.png" "b/_assets/TIM\346\210\252\345\233\27620180702113031.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702113031.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702113031.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702113631.png" "b/_assets/TIM\346\210\252\345\233\27620180702113631.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702113631.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702113631.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702114132.png" "b/_assets/TIM\346\210\252\345\233\27620180702114132.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702114132.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702114132.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702150309.png" "b/_assets/TIM\346\210\252\345\233\27620180702150309.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702150309.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702150309.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702151423.png" "b/_assets/TIM\346\210\252\345\233\27620180702151423.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702151423.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702151423.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702152216.png" "b/_assets/TIM\346\210\252\345\233\27620180702152216.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702152216.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702152216.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702155142.png" "b/_assets/TIM\346\210\252\345\233\27620180702155142.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702155142.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702155142.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702171146.png" "b/_assets/TIM\346\210\252\345\233\27620180702171146.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702171146.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702171146.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702194825.png" "b/_assets/TIM\346\210\252\345\233\27620180702194825.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702194825.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702194825.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702195301.png" "b/_assets/TIM\346\210\252\345\233\27620180702195301.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702195301.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702195301.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702195902.png" "b/_assets/TIM\346\210\252\345\233\27620180702195902.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702195902.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702195902.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702201513.png" "b/_assets/TIM\346\210\252\345\233\27620180702201513.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702201513.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702201513.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702202810.png" "b/_assets/TIM\346\210\252\345\233\27620180702202810.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702202810.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702202810.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702203041.png" "b/_assets/TIM\346\210\252\345\233\27620180702203041.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702203041.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702203041.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702203401.png" "b/_assets/TIM\346\210\252\345\233\27620180702203401.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702203401.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702203401.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702204047.png" "b/_assets/TIM\346\210\252\345\233\27620180702204047.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702204047.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702204047.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180702210202.png" "b/_assets/TIM\346\210\252\345\233\27620180702210202.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180702210202.png"
rename to "_assets/TIM\346\210\252\345\233\27620180702210202.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703102940.png" "b/_assets/TIM\346\210\252\345\233\27620180703102940.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703102940.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703102940.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703103735.png" "b/_assets/TIM\346\210\252\345\233\27620180703103735.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703103735.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703103735.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703103757.png" "b/_assets/TIM\346\210\252\345\233\27620180703103757.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703103757.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703103757.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703104845.png" "b/_assets/TIM\346\210\252\345\233\27620180703104845.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703104845.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703104845.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703105249.png" "b/_assets/TIM\346\210\252\345\233\27620180703105249.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703105249.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703105249.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703115823.png" "b/_assets/TIM\346\210\252\345\233\27620180703115823.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703115823.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703115823.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703115843.png" "b/_assets/TIM\346\210\252\345\233\27620180703115843.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703115843.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703115843.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703121303.png" "b/_assets/TIM\346\210\252\345\233\27620180703121303.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703121303.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703121303.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703143800.png" "b/_assets/TIM\346\210\252\345\233\27620180703143800.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703143800.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703143800.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703210401.png" "b/_assets/TIM\346\210\252\345\233\27620180703210401.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703210401.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703210401.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180703210941.png" "b/_assets/TIM\346\210\252\345\233\27620180703210941.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180703210941.png"
rename to "_assets/TIM\346\210\252\345\233\27620180703210941.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704095607.png" "b/_assets/TIM\346\210\252\345\233\27620180704095607.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704095607.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704095607.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704111141.png" "b/_assets/TIM\346\210\252\345\233\27620180704111141.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704111141.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704111141.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704111911.png" "b/_assets/TIM\346\210\252\345\233\27620180704111911.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704111911.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704111911.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704112122.png" "b/_assets/TIM\346\210\252\345\233\27620180704112122.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704112122.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704112122.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704112743.png" "b/_assets/TIM\346\210\252\345\233\27620180704112743.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704112743.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704112743.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704161115.png" "b/_assets/TIM\346\210\252\345\233\27620180704161115.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704161115.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704161115.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704164022.png" "b/_assets/TIM\346\210\252\345\233\27620180704164022.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704164022.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704164022.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704165624.png" "b/_assets/TIM\346\210\252\345\233\27620180704165624.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704165624.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704165624.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704172524.png" "b/_assets/TIM\346\210\252\345\233\27620180704172524.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704172524.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704172524.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704174134.png" "b/_assets/TIM\346\210\252\345\233\27620180704174134.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704174134.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704174134.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704193558.png" "b/_assets/TIM\346\210\252\345\233\27620180704193558.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704193558.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704193558.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704193742.png" "b/_assets/TIM\346\210\252\345\233\27620180704193742.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704193742.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704193742.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704193955.png" "b/_assets/TIM\346\210\252\345\233\27620180704193955.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704193955.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704193955.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704194111.png" "b/_assets/TIM\346\210\252\345\233\27620180704194111.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704194111.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704194111.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704194548.png" "b/_assets/TIM\346\210\252\345\233\27620180704194548.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704194548.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704194548.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704194635.png" "b/_assets/TIM\346\210\252\345\233\27620180704194635.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704194635.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704194635.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704194726.png" "b/_assets/TIM\346\210\252\345\233\27620180704194726.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704194726.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704194726.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704194944.png" "b/_assets/TIM\346\210\252\345\233\27620180704194944.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704194944.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704194944.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704195120.png" "b/_assets/TIM\346\210\252\345\233\27620180704195120.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704195120.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704195120.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704195711.png" "b/_assets/TIM\346\210\252\345\233\27620180704195711.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704195711.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704195711.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704195859.png" "b/_assets/TIM\346\210\252\345\233\27620180704195859.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704195859.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704195859.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704200316.png" "b/_assets/TIM\346\210\252\345\233\27620180704200316.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704200316.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704200316.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704200453.png" "b/_assets/TIM\346\210\252\345\233\27620180704200453.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704200453.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704200453.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180704200743.png" "b/_assets/TIM\346\210\252\345\233\27620180704200743.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180704200743.png"
rename to "_assets/TIM\346\210\252\345\233\27620180704200743.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180705162841.png" "b/_assets/TIM\346\210\252\345\233\27620180705162841.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180705162841.png"
rename to "_assets/TIM\346\210\252\345\233\27620180705162841.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180705164018.png" "b/_assets/TIM\346\210\252\345\233\27620180705164018.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180705164018.png"
rename to "_assets/TIM\346\210\252\345\233\27620180705164018.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180710112848.png" "b/_assets/TIM\346\210\252\345\233\27620180710112848.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180710112848.png"
rename to "_assets/TIM\346\210\252\345\233\27620180710112848.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180719220242.png" "b/_assets/TIM\346\210\252\345\233\27620180719220242.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180719220242.png"
rename to "_assets/TIM\346\210\252\345\233\27620180719220242.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180720101423.png" "b/_assets/TIM\346\210\252\345\233\27620180720101423.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180720101423.png"
rename to "_assets/TIM\346\210\252\345\233\27620180720101423.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180724200255.png" "b/_assets/TIM\346\210\252\345\233\27620180724200255.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180724200255.png"
rename to "_assets/TIM\346\210\252\345\233\27620180724200255.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180725213025.png" "b/_assets/TIM\346\210\252\345\233\27620180725213025.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180725213025.png"
rename to "_assets/TIM\346\210\252\345\233\27620180725213025.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180728212444.png" "b/_assets/TIM\346\210\252\345\233\27620180728212444.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180728212444.png"
rename to "_assets/TIM\346\210\252\345\233\27620180728212444.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180728212554.png" "b/_assets/TIM\346\210\252\345\233\27620180728212554.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180728212554.png"
rename to "_assets/TIM\346\210\252\345\233\27620180728212554.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180728213300.png" "b/_assets/TIM\346\210\252\345\233\27620180728213300.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180728213300.png"
rename to "_assets/TIM\346\210\252\345\233\27620180728213300.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180728215749.png" "b/_assets/TIM\346\210\252\345\233\27620180728215749.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180728215749.png"
rename to "_assets/TIM\346\210\252\345\233\27620180728215749.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180729232751.png" "b/_assets/TIM\346\210\252\345\233\27620180729232751.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180729232751.png"
rename to "_assets/TIM\346\210\252\345\233\27620180729232751.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180730145559.png" "b/_assets/TIM\346\210\252\345\233\27620180730145559.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180730145559.png"
rename to "_assets/TIM\346\210\252\345\233\27620180730145559.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180730155523.png" "b/_assets/TIM\346\210\252\345\233\27620180730155523.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180730155523.png"
rename to "_assets/TIM\346\210\252\345\233\27620180730155523.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180730155611.png" "b/_assets/TIM\346\210\252\345\233\27620180730155611.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180730155611.png"
rename to "_assets/TIM\346\210\252\345\233\27620180730155611.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180730195253.png" "b/_assets/TIM\346\210\252\345\233\27620180730195253.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180730195253.png"
rename to "_assets/TIM\346\210\252\345\233\27620180730195253.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180731101152.png" "b/_assets/TIM\346\210\252\345\233\27620180731101152.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180731101152.png"
rename to "_assets/TIM\346\210\252\345\233\27620180731101152.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180731103855.png" "b/_assets/TIM\346\210\252\345\233\27620180731103855.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180731103855.png"
rename to "_assets/TIM\346\210\252\345\233\27620180731103855.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180731113917.png" "b/_assets/TIM\346\210\252\345\233\27620180731113917.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180731113917.png"
rename to "_assets/TIM\346\210\252\345\233\27620180731113917.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180731145306.png" "b/_assets/TIM\346\210\252\345\233\27620180731145306.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180731145306.png"
rename to "_assets/TIM\346\210\252\345\233\27620180731145306.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180801113329.png" "b/_assets/TIM\346\210\252\345\233\27620180801113329.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180801113329.png"
rename to "_assets/TIM\346\210\252\345\233\27620180801113329.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180801114036.png" "b/_assets/TIM\346\210\252\345\233\27620180801114036.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180801114036.png"
rename to "_assets/TIM\346\210\252\345\233\27620180801114036.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180801114059.png" "b/_assets/TIM\346\210\252\345\233\27620180801114059.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180801114059.png"
rename to "_assets/TIM\346\210\252\345\233\27620180801114059.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180801150958.png" "b/_assets/TIM\346\210\252\345\233\27620180801150958.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180801150958.png"
rename to "_assets/TIM\346\210\252\345\233\27620180801150958.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180803225602.png" "b/_assets/TIM\346\210\252\345\233\27620180803225602.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180803225602.png"
rename to "_assets/TIM\346\210\252\345\233\27620180803225602.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180805212441.png" "b/_assets/TIM\346\210\252\345\233\27620180805212441.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180805212441.png"
rename to "_assets/TIM\346\210\252\345\233\27620180805212441.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180805231056.png" "b/_assets/TIM\346\210\252\345\233\27620180805231056.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180805231056.png"
rename to "_assets/TIM\346\210\252\345\233\27620180805231056.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180805234123.png" "b/_assets/TIM\346\210\252\345\233\27620180805234123.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180805234123.png"
rename to "_assets/TIM\346\210\252\345\233\27620180805234123.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180806141616.png" "b/_assets/TIM\346\210\252\345\233\27620180806141616.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180806141616.png"
rename to "_assets/TIM\346\210\252\345\233\27620180806141616.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180806144052.png" "b/_assets/TIM\346\210\252\345\233\27620180806144052.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180806144052.png"
rename to "_assets/TIM\346\210\252\345\233\27620180806144052.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180806151406.png" "b/_assets/TIM\346\210\252\345\233\27620180806151406.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180806151406.png"
rename to "_assets/TIM\346\210\252\345\233\27620180806151406.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180806161221.png" "b/_assets/TIM\346\210\252\345\233\27620180806161221.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180806161221.png"
rename to "_assets/TIM\346\210\252\345\233\27620180806161221.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180806165750.png" "b/_assets/TIM\346\210\252\345\233\27620180806165750.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180806165750.png"
rename to "_assets/TIM\346\210\252\345\233\27620180806165750.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180806172158.png" "b/_assets/TIM\346\210\252\345\233\27620180806172158.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180806172158.png"
rename to "_assets/TIM\346\210\252\345\233\27620180806172158.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807094759.png" "b/_assets/TIM\346\210\252\345\233\27620180807094759.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807094759.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807094759.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807144435.png" "b/_assets/TIM\346\210\252\345\233\27620180807144435.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807144435.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807144435.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807151212.png" "b/_assets/TIM\346\210\252\345\233\27620180807151212.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807151212.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807151212.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807152158.png" "b/_assets/TIM\346\210\252\345\233\27620180807152158.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807152158.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807152158.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807152241.png" "b/_assets/TIM\346\210\252\345\233\27620180807152241.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807152241.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807152241.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807152306.png" "b/_assets/TIM\346\210\252\345\233\27620180807152306.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807152306.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807152306.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807152431.png" "b/_assets/TIM\346\210\252\345\233\27620180807152431.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807152431.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807152431.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807152459.png" "b/_assets/TIM\346\210\252\345\233\27620180807152459.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807152459.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807152459.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807152530.png" "b/_assets/TIM\346\210\252\345\233\27620180807152530.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807152530.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807152530.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807203305.png" "b/_assets/TIM\346\210\252\345\233\27620180807203305.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807203305.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807203305.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807210029.png" "b/_assets/TIM\346\210\252\345\233\27620180807210029.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807210029.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807210029.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180807210133.png" "b/_assets/TIM\346\210\252\345\233\27620180807210133.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180807210133.png"
rename to "_assets/TIM\346\210\252\345\233\27620180807210133.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180808105242.png" "b/_assets/TIM\346\210\252\345\233\27620180808105242.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180808105242.png"
rename to "_assets/TIM\346\210\252\345\233\27620180808105242.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180808110903.png" "b/_assets/TIM\346\210\252\345\233\27620180808110903.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180808110903.png"
rename to "_assets/TIM\346\210\252\345\233\27620180808110903.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180808111835.png" "b/_assets/TIM\346\210\252\345\233\27620180808111835.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180808111835.png"
rename to "_assets/TIM\346\210\252\345\233\27620180808111835.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180808112920.png" "b/_assets/TIM\346\210\252\345\233\27620180808112920.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180808112920.png"
rename to "_assets/TIM\346\210\252\345\233\27620180808112920.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180808114753.png" "b/_assets/TIM\346\210\252\345\233\27620180808114753.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180808114753.png"
rename to "_assets/TIM\346\210\252\345\233\27620180808114753.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180808135512.png" "b/_assets/TIM\346\210\252\345\233\27620180808135512.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180808135512.png"
rename to "_assets/TIM\346\210\252\345\233\27620180808135512.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180808232139.png" "b/_assets/TIM\346\210\252\345\233\27620180808232139.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180808232139.png"
rename to "_assets/TIM\346\210\252\345\233\27620180808232139.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100103.png" "b/_assets/TIM\346\210\252\345\233\27620180812100103.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100103.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100103.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100122.png" "b/_assets/TIM\346\210\252\345\233\27620180812100122.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100122.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100122.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100344.png" "b/_assets/TIM\346\210\252\345\233\27620180812100344.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100344.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100344.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100356.png" "b/_assets/TIM\346\210\252\345\233\27620180812100356.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100356.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100356.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100416.png" "b/_assets/TIM\346\210\252\345\233\27620180812100416.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100416.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100416.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100436.png" "b/_assets/TIM\346\210\252\345\233\27620180812100436.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100436.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100436.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100503.png" "b/_assets/TIM\346\210\252\345\233\27620180812100503.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100503.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100503.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100524.png" "b/_assets/TIM\346\210\252\345\233\27620180812100524.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100524.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100524.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100550.png" "b/_assets/TIM\346\210\252\345\233\27620180812100550.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100550.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100550.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100606.png" "b/_assets/TIM\346\210\252\345\233\27620180812100606.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100606.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100606.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180812100617.png" "b/_assets/TIM\346\210\252\345\233\27620180812100617.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180812100617.png"
rename to "_assets/TIM\346\210\252\345\233\27620180812100617.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180816113922.png" "b/_assets/TIM\346\210\252\345\233\27620180816113922.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180816113922.png"
rename to "_assets/TIM\346\210\252\345\233\27620180816113922.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180816144609.png" "b/_assets/TIM\346\210\252\345\233\27620180816144609.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180816144609.png"
rename to "_assets/TIM\346\210\252\345\233\27620180816144609.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180817192259.png" "b/_assets/TIM\346\210\252\345\233\27620180817192259.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180817192259.png"
rename to "_assets/TIM\346\210\252\345\233\27620180817192259.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180817204652.png" "b/_assets/TIM\346\210\252\345\233\27620180817204652.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180817204652.png"
rename to "_assets/TIM\346\210\252\345\233\27620180817204652.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180817214034.png" "b/_assets/TIM\346\210\252\345\233\27620180817214034.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180817214034.png"
rename to "_assets/TIM\346\210\252\345\233\27620180817214034.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180819110834.png" "b/_assets/TIM\346\210\252\345\233\27620180819110834.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180819110834.png"
rename to "_assets/TIM\346\210\252\345\233\27620180819110834.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180819132752.png" "b/_assets/TIM\346\210\252\345\233\27620180819132752.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180819132752.png"
rename to "_assets/TIM\346\210\252\345\233\27620180819132752.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180822104132.png" "b/_assets/TIM\346\210\252\345\233\27620180822104132.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180822104132.png"
rename to "_assets/TIM\346\210\252\345\233\27620180822104132.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180822104942.png" "b/_assets/TIM\346\210\252\345\233\27620180822104942.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180822104942.png"
rename to "_assets/TIM\346\210\252\345\233\27620180822104942.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180823213211.png" "b/_assets/TIM\346\210\252\345\233\27620180823213211.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180823213211.png"
rename to "_assets/TIM\346\210\252\345\233\27620180823213211.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180823220850.png" "b/_assets/TIM\346\210\252\345\233\27620180823220850.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180823220850.png"
rename to "_assets/TIM\346\210\252\345\233\27620180823220850.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180826113534.png" "b/_assets/TIM\346\210\252\345\233\27620180826113534.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180826113534.png"
rename to "_assets/TIM\346\210\252\345\233\27620180826113534.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180828165510.png" "b/_assets/TIM\346\210\252\345\233\27620180828165510.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180828165510.png"
rename to "_assets/TIM\346\210\252\345\233\27620180828165510.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180829133724.png" "b/_assets/TIM\346\210\252\345\233\27620180829133724.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180829133724.png"
rename to "_assets/TIM\346\210\252\345\233\27620180829133724.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180829134331.png" "b/_assets/TIM\346\210\252\345\233\27620180829134331.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180829134331.png"
rename to "_assets/TIM\346\210\252\345\233\27620180829134331.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180829134659.png" "b/_assets/TIM\346\210\252\345\233\27620180829134659.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180829134659.png"
rename to "_assets/TIM\346\210\252\345\233\27620180829134659.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180829145622.png" "b/_assets/TIM\346\210\252\345\233\27620180829145622.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180829145622.png"
rename to "_assets/TIM\346\210\252\345\233\27620180829145622.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180829161149.png" "b/_assets/TIM\346\210\252\345\233\27620180829161149.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180829161149.png"
rename to "_assets/TIM\346\210\252\345\233\27620180829161149.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180829162307.png" "b/_assets/TIM\346\210\252\345\233\27620180829162307.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180829162307.png"
rename to "_assets/TIM\346\210\252\345\233\27620180829162307.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180829172245.png" "b/_assets/TIM\346\210\252\345\233\27620180829172245.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180829172245.png"
rename to "_assets/TIM\346\210\252\345\233\27620180829172245.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180830195819.png" "b/_assets/TIM\346\210\252\345\233\27620180830195819.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180830195819.png"
rename to "_assets/TIM\346\210\252\345\233\27620180830195819.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180830195912.png" "b/_assets/TIM\346\210\252\345\233\27620180830195912.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180830195912.png"
rename to "_assets/TIM\346\210\252\345\233\27620180830195912.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180830195925.png" "b/_assets/TIM\346\210\252\345\233\27620180830195925.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180830195925.png"
rename to "_assets/TIM\346\210\252\345\233\27620180830195925.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180903222433.png" "b/_assets/TIM\346\210\252\345\233\27620180903222433.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180903222433.png"
rename to "_assets/TIM\346\210\252\345\233\27620180903222433.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180903224842.png" "b/_assets/TIM\346\210\252\345\233\27620180903224842.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180903224842.png"
rename to "_assets/TIM\346\210\252\345\233\27620180903224842.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180907105826.png" "b/_assets/TIM\346\210\252\345\233\27620180907105826.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180907105826.png"
rename to "_assets/TIM\346\210\252\345\233\27620180907105826.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180908103901.png" "b/_assets/TIM\346\210\252\345\233\27620180908103901.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180908103901.png"
rename to "_assets/TIM\346\210\252\345\233\27620180908103901.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180908212911.png" "b/_assets/TIM\346\210\252\345\233\27620180908212911.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180908212911.png"
rename to "_assets/TIM\346\210\252\345\233\27620180908212911.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180908224213.png" "b/_assets/TIM\346\210\252\345\233\27620180908224213.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180908224213.png"
rename to "_assets/TIM\346\210\252\345\233\27620180908224213.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180909132343.png" "b/_assets/TIM\346\210\252\345\233\27620180909132343.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180909132343.png"
rename to "_assets/TIM\346\210\252\345\233\27620180909132343.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180909132723.png" "b/_assets/TIM\346\210\252\345\233\27620180909132723.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180909132723.png"
rename to "_assets/TIM\346\210\252\345\233\27620180909132723.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180909133015.png" "b/_assets/TIM\346\210\252\345\233\27620180909133015.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180909133015.png"
rename to "_assets/TIM\346\210\252\345\233\27620180909133015.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180909161143.png" "b/_assets/TIM\346\210\252\345\233\27620180909161143.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180909161143.png"
rename to "_assets/TIM\346\210\252\345\233\27620180909161143.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180909161708.png" "b/_assets/TIM\346\210\252\345\233\27620180909161708.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180909161708.png"
rename to "_assets/TIM\346\210\252\345\233\27620180909161708.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910135921.png" "b/_assets/TIM\346\210\252\345\233\27620180910135921.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910135921.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910135921.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910193357.png" "b/_assets/TIM\346\210\252\345\233\27620180910193357.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910193357.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910193357.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910193451.png" "b/_assets/TIM\346\210\252\345\233\27620180910193451.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910193451.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910193451.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910193521.png" "b/_assets/TIM\346\210\252\345\233\27620180910193521.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910193521.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910193521.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910193636.png" "b/_assets/TIM\346\210\252\345\233\27620180910193636.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910193636.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910193636.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910193716.png" "b/_assets/TIM\346\210\252\345\233\27620180910193716.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910193716.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910193716.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910193739.png" "b/_assets/TIM\346\210\252\345\233\27620180910193739.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910193739.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910193739.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180910220336.png" "b/_assets/TIM\346\210\252\345\233\27620180910220336.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180910220336.png"
rename to "_assets/TIM\346\210\252\345\233\27620180910220336.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911151229.png" "b/_assets/TIM\346\210\252\345\233\27620180911151229.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911151229.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911151229.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911153132.png" "b/_assets/TIM\346\210\252\345\233\27620180911153132.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911153132.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911153132.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911163940.png" "b/_assets/TIM\346\210\252\345\233\27620180911163940.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911163940.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911163940.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911164443.png" "b/_assets/TIM\346\210\252\345\233\27620180911164443.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911164443.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911164443.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911174700.png" "b/_assets/TIM\346\210\252\345\233\27620180911174700.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911174700.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911174700.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911212438.png" "b/_assets/TIM\346\210\252\345\233\27620180911212438.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911212438.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911212438.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911212613.png" "b/_assets/TIM\346\210\252\345\233\27620180911212613.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911212613.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911212613.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180911222910.png" "b/_assets/TIM\346\210\252\345\233\27620180911222910.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180911222910.png"
rename to "_assets/TIM\346\210\252\345\233\27620180911222910.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180912115327.png" "b/_assets/TIM\346\210\252\345\233\27620180912115327.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180912115327.png"
rename to "_assets/TIM\346\210\252\345\233\27620180912115327.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180912193245.png" "b/_assets/TIM\346\210\252\345\233\27620180912193245.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180912193245.png"
rename to "_assets/TIM\346\210\252\345\233\27620180912193245.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180912193315.png" "b/_assets/TIM\346\210\252\345\233\27620180912193315.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180912193315.png"
rename to "_assets/TIM\346\210\252\345\233\27620180912193315.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180912202657.png" "b/_assets/TIM\346\210\252\345\233\27620180912202657.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180912202657.png"
rename to "_assets/TIM\346\210\252\345\233\27620180912202657.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180912210803.png" "b/_assets/TIM\346\210\252\345\233\27620180912210803.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180912210803.png"
rename to "_assets/TIM\346\210\252\345\233\27620180912210803.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180912212748.png" "b/_assets/TIM\346\210\252\345\233\27620180912212748.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180912212748.png"
rename to "_assets/TIM\346\210\252\345\233\27620180912212748.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180912230713.png" "b/_assets/TIM\346\210\252\345\233\27620180912230713.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180912230713.png"
rename to "_assets/TIM\346\210\252\345\233\27620180912230713.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180913154830.png" "b/_assets/TIM\346\210\252\345\233\27620180913154830.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180913154830.png"
rename to "_assets/TIM\346\210\252\345\233\27620180913154830.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180913154842.png" "b/_assets/TIM\346\210\252\345\233\27620180913154842.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180913154842.png"
rename to "_assets/TIM\346\210\252\345\233\27620180913154842.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180913154909.png" "b/_assets/TIM\346\210\252\345\233\27620180913154909.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180913154909.png"
rename to "_assets/TIM\346\210\252\345\233\27620180913154909.png"
diff --git "a/assets/TIM\346\210\252\345\233\27620180913212155.png" "b/_assets/TIM\346\210\252\345\233\27620180913212155.png"
similarity index 100%
rename from "assets/TIM\346\210\252\345\233\27620180913212155.png"
rename to "_assets/TIM\346\210\252\345\233\27620180913212155.png"
diff --git a/assets/arbitrary_padding_no_strides.gif b/_assets/arbitrary_padding_no_strides.gif
similarity index 100%
rename from assets/arbitrary_padding_no_strides.gif
rename to _assets/arbitrary_padding_no_strides.gif
diff --git a/assets/arbitrary_padding_no_strides_transposed.gif b/_assets/arbitrary_padding_no_strides_transposed.gif
similarity index 100%
rename from assets/arbitrary_padding_no_strides_transposed.gif
rename to _assets/arbitrary_padding_no_strides_transposed.gif
diff --git a/assets/confusion_matrix.png b/_assets/confusion_matrix.png
similarity index 100%
rename from assets/confusion_matrix.png
rename to _assets/confusion_matrix.png
diff --git a/assets/contours_evaluation_optimizers.gif b/_assets/contours_evaluation_optimizers.gif
similarity index 100%
rename from assets/contours_evaluation_optimizers.gif
rename to _assets/contours_evaluation_optimizers.gif
diff --git a/assets/conv_dilation.gif b/_assets/conv_dilation.gif
similarity index 100%
rename from assets/conv_dilation.gif
rename to _assets/conv_dilation.gif
diff --git a/assets/conv_no_padding_no_strides_transposed.gif b/_assets/conv_no_padding_no_strides_transposed.gif
similarity index 100%
rename from assets/conv_no_padding_no_strides_transposed.gif
rename to _assets/conv_no_padding_no_strides_transposed.gif
diff --git a/assets/dilation.gif b/_assets/dilation.gif
similarity index 100%
rename from assets/dilation.gif
rename to _assets/dilation.gif
diff --git a/assets/full_padding_no_strides.gif b/_assets/full_padding_no_strides.gif
similarity index 100%
rename from assets/full_padding_no_strides.gif
rename to _assets/full_padding_no_strides.gif
diff --git a/assets/full_padding_no_strides_transposed.gif b/_assets/full_padding_no_strides_transposed.gif
similarity index 100%
rename from assets/full_padding_no_strides_transposed.gif
rename to _assets/full_padding_no_strides_transposed.gif
diff --git a/assets/no_padding_no_strides.gif b/_assets/no_padding_no_strides.gif
similarity index 100%
rename from assets/no_padding_no_strides.gif
rename to _assets/no_padding_no_strides.gif
diff --git a/assets/no_padding_no_strides_transposed.gif b/_assets/no_padding_no_strides_transposed.gif
similarity index 100%
rename from assets/no_padding_no_strides_transposed.gif
rename to _assets/no_padding_no_strides_transposed.gif
diff --git a/assets/no_padding_strides.gif b/_assets/no_padding_strides.gif
similarity index 100%
rename from assets/no_padding_strides.gif
rename to _assets/no_padding_strides.gif
diff --git a/assets/no_padding_strides_transposed.gif b/_assets/no_padding_strides_transposed.gif
similarity index 100%
rename from assets/no_padding_strides_transposed.gif
rename to _assets/no_padding_strides_transposed.gif
diff --git a/assets/padding_strides.gif b/_assets/padding_strides.gif
similarity index 100%
rename from assets/padding_strides.gif
rename to _assets/padding_strides.gif
diff --git a/assets/padding_strides_odd.gif b/_assets/padding_strides_odd.gif
similarity index 100%
rename from assets/padding_strides_odd.gif
rename to _assets/padding_strides_odd.gif
diff --git a/assets/padding_strides_odd_transposed.gif b/_assets/padding_strides_odd_transposed.gif
similarity index 100%
rename from assets/padding_strides_odd_transposed.gif
rename to _assets/padding_strides_odd_transposed.gif
diff --git a/assets/padding_strides_transposed.gif b/_assets/padding_strides_transposed.gif
similarity index 100%
rename from assets/padding_strides_transposed.gif
rename to _assets/padding_strides_transposed.gif
diff --git a/assets/saddle_point_evaluation_optimizers.gif b/_assets/saddle_point_evaluation_optimizers.gif
similarity index 100%
rename from assets/saddle_point_evaluation_optimizers.gif
rename to _assets/saddle_point_evaluation_optimizers.gif
diff --git a/assets/same_padding_no_strides.gif b/_assets/same_padding_no_strides.gif
similarity index 100%
rename from assets/same_padding_no_strides.gif
rename to _assets/same_padding_no_strides.gif
diff --git a/assets/same_padding_no_strides_transposed.gif b/_assets/same_padding_no_strides_transposed.gif
similarity index 100%
rename from assets/same_padding_no_strides_transposed.gif
rename to _assets/same_padding_no_strides_transposed.gif
diff --git a/assets/seq2seq-attention.gif b/_assets/seq2seq-attention.gif
similarity index 100%
rename from assets/seq2seq-attention.gif
rename to _assets/seq2seq-attention.gif
diff --git a/assets/seq2seq-text.jpg b/_assets/seq2seq-text.jpg
similarity index 100%
rename from assets/seq2seq-text.jpg
rename to _assets/seq2seq-text.jpg
diff --git a/assets/seq2seq.png b/_assets/seq2seq.png
similarity index 100%
rename from assets/seq2seq.png
rename to _assets/seq2seq.png
diff --git "a/assets/\345\205\254\345\274\217_20180610212719.png" "b/_assets/\345\205\254\345\274\217_20180610212719.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610212719.png"
rename to "_assets/\345\205\254\345\274\217_20180610212719.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610213145.png" "b/_assets/\345\205\254\345\274\217_20180610213145.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610213145.png"
rename to "_assets/\345\205\254\345\274\217_20180610213145.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610213218.png" "b/_assets/\345\205\254\345\274\217_20180610213218.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610213218.png"
rename to "_assets/\345\205\254\345\274\217_20180610213218.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610213349.png" "b/_assets/\345\205\254\345\274\217_20180610213349.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610213349.png"
rename to "_assets/\345\205\254\345\274\217_20180610213349.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610213428.png" "b/_assets/\345\205\254\345\274\217_20180610213428.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610213428.png"
rename to "_assets/\345\205\254\345\274\217_20180610213428.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610213451.png" "b/_assets/\345\205\254\345\274\217_20180610213451.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610213451.png"
rename to "_assets/\345\205\254\345\274\217_20180610213451.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610214123.png" "b/_assets/\345\205\254\345\274\217_20180610214123.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610214123.png"
rename to "_assets/\345\205\254\345\274\217_20180610214123.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610214502.png" "b/_assets/\345\205\254\345\274\217_20180610214502.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610214502.png"
rename to "_assets/\345\205\254\345\274\217_20180610214502.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610214846.png" "b/_assets/\345\205\254\345\274\217_20180610214846.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610214846.png"
rename to "_assets/\345\205\254\345\274\217_20180610214846.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610214926.png" "b/_assets/\345\205\254\345\274\217_20180610214926.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610214926.png"
rename to "_assets/\345\205\254\345\274\217_20180610214926.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215029.png" "b/_assets/\345\205\254\345\274\217_20180610215029.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215029.png"
rename to "_assets/\345\205\254\345\274\217_20180610215029.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215150.png" "b/_assets/\345\205\254\345\274\217_20180610215150.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215150.png"
rename to "_assets/\345\205\254\345\274\217_20180610215150.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215222.png" "b/_assets/\345\205\254\345\274\217_20180610215222.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215222.png"
rename to "_assets/\345\205\254\345\274\217_20180610215222.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215308.png" "b/_assets/\345\205\254\345\274\217_20180610215308.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215308.png"
rename to "_assets/\345\205\254\345\274\217_20180610215308.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215339.png" "b/_assets/\345\205\254\345\274\217_20180610215339.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215339.png"
rename to "_assets/\345\205\254\345\274\217_20180610215339.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215417.png" "b/_assets/\345\205\254\345\274\217_20180610215417.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215417.png"
rename to "_assets/\345\205\254\345\274\217_20180610215417.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215445.png" "b/_assets/\345\205\254\345\274\217_20180610215445.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215445.png"
rename to "_assets/\345\205\254\345\274\217_20180610215445.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215522.png" "b/_assets/\345\205\254\345\274\217_20180610215522.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215522.png"
rename to "_assets/\345\205\254\345\274\217_20180610215522.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215554.png" "b/_assets/\345\205\254\345\274\217_20180610215554.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215554.png"
rename to "_assets/\345\205\254\345\274\217_20180610215554.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215623.png" "b/_assets/\345\205\254\345\274\217_20180610215623.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215623.png"
rename to "_assets/\345\205\254\345\274\217_20180610215623.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215656.png" "b/_assets/\345\205\254\345\274\217_20180610215656.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215656.png"
rename to "_assets/\345\205\254\345\274\217_20180610215656.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215732.png" "b/_assets/\345\205\254\345\274\217_20180610215732.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215732.png"
rename to "_assets/\345\205\254\345\274\217_20180610215732.png"
diff --git "a/assets/\345\205\254\345\274\217_20180610215812.png" "b/_assets/\345\205\254\345\274\217_20180610215812.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180610215812.png"
rename to "_assets/\345\205\254\345\274\217_20180610215812.png"
diff --git "a/assets/\345\205\254\345\274\217_20180611194550.png" "b/_assets/\345\205\254\345\274\217_20180611194550.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180611194550.png"
rename to "_assets/\345\205\254\345\274\217_20180611194550.png"
diff --git "a/assets/\345\205\254\345\274\217_20180611194704.png" "b/_assets/\345\205\254\345\274\217_20180611194704.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180611194704.png"
rename to "_assets/\345\205\254\345\274\217_20180611194704.png"
diff --git "a/assets/\345\205\254\345\274\217_20180611195622.png" "b/_assets/\345\205\254\345\274\217_20180611195622.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180611195622.png"
rename to "_assets/\345\205\254\345\274\217_20180611195622.png"
diff --git "a/assets/\345\205\254\345\274\217_20180611210928.png" "b/_assets/\345\205\254\345\274\217_20180611210928.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180611210928.png"
rename to "_assets/\345\205\254\345\274\217_20180611210928.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613164438.png" "b/_assets/\345\205\254\345\274\217_20180613164438.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613164438.png"
rename to "_assets/\345\205\254\345\274\217_20180613164438.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613164637.png" "b/_assets/\345\205\254\345\274\217_20180613164637.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613164637.png"
rename to "_assets/\345\205\254\345\274\217_20180613164637.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613170734.png" "b/_assets/\345\205\254\345\274\217_20180613170734.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613170734.png"
rename to "_assets/\345\205\254\345\274\217_20180613170734.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613171757.png" "b/_assets/\345\205\254\345\274\217_20180613171757.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613171757.png"
rename to "_assets/\345\205\254\345\274\217_20180613171757.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613201829.png" "b/_assets/\345\205\254\345\274\217_20180613201829.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613201829.png"
rename to "_assets/\345\205\254\345\274\217_20180613201829.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613210141.png" "b/_assets/\345\205\254\345\274\217_20180613210141.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613210141.png"
rename to "_assets/\345\205\254\345\274\217_20180613210141.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613211004.png" "b/_assets/\345\205\254\345\274\217_20180613211004.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613211004.png"
rename to "_assets/\345\205\254\345\274\217_20180613211004.png"
diff --git "a/assets/\345\205\254\345\274\217_20180613211437.png" "b/_assets/\345\205\254\345\274\217_20180613211437.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180613211437.png"
rename to "_assets/\345\205\254\345\274\217_20180613211437.png"
diff --git "a/assets/\345\205\254\345\274\217_20180620160408.png" "b/_assets/\345\205\254\345\274\217_20180620160408.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180620160408.png"
rename to "_assets/\345\205\254\345\274\217_20180620160408.png"
diff --git "a/assets/\345\205\254\345\274\217_20180620160538.png" "b/_assets/\345\205\254\345\274\217_20180620160538.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180620160538.png"
rename to "_assets/\345\205\254\345\274\217_20180620160538.png"
diff --git "a/assets/\345\205\254\345\274\217_20180620204006.png" "b/_assets/\345\205\254\345\274\217_20180620204006.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180620204006.png"
rename to "_assets/\345\205\254\345\274\217_20180620204006.png"
diff --git "a/assets/\345\205\254\345\274\217_20180620205055.png" "b/_assets/\345\205\254\345\274\217_20180620205055.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180620205055.png"
rename to "_assets/\345\205\254\345\274\217_20180620205055.png"
diff --git "a/assets/\345\205\254\345\274\217_20180620210025.png" "b/_assets/\345\205\254\345\274\217_20180620210025.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180620210025.png"
rename to "_assets/\345\205\254\345\274\217_20180620210025.png"
diff --git "a/assets/\345\205\254\345\274\217_20180620213601.png" "b/_assets/\345\205\254\345\274\217_20180620213601.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180620213601.png"
rename to "_assets/\345\205\254\345\274\217_20180620213601.png"
diff --git "a/assets/\345\205\254\345\274\217_20180624211704.png" "b/_assets/\345\205\254\345\274\217_20180624211704.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180624211704.png"
rename to "_assets/\345\205\254\345\274\217_20180624211704.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625144700.png" "b/_assets/\345\205\254\345\274\217_20180625144700.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625144700.png"
rename to "_assets/\345\205\254\345\274\217_20180625144700.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625164050.png" "b/_assets/\345\205\254\345\274\217_20180625164050.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625164050.png"
rename to "_assets/\345\205\254\345\274\217_20180625164050.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625191951.png" "b/_assets/\345\205\254\345\274\217_20180625191951.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625191951.png"
rename to "_assets/\345\205\254\345\274\217_20180625191951.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625201230.png" "b/_assets/\345\205\254\345\274\217_20180625201230.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625201230.png"
rename to "_assets/\345\205\254\345\274\217_20180625201230.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625201755.png" "b/_assets/\345\205\254\345\274\217_20180625201755.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625201755.png"
rename to "_assets/\345\205\254\345\274\217_20180625201755.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625202144.png" "b/_assets/\345\205\254\345\274\217_20180625202144.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625202144.png"
rename to "_assets/\345\205\254\345\274\217_20180625202144.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625205043.png" "b/_assets/\345\205\254\345\274\217_20180625205043.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625205043.png"
rename to "_assets/\345\205\254\345\274\217_20180625205043.png"
diff --git "a/assets/\345\205\254\345\274\217_20180625205349.png" "b/_assets/\345\205\254\345\274\217_20180625205349.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180625205349.png"
rename to "_assets/\345\205\254\345\274\217_20180625205349.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626195202.png" "b/_assets/\345\205\254\345\274\217_20180626195202.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626195202.png"
rename to "_assets/\345\205\254\345\274\217_20180626195202.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626195929.png" "b/_assets/\345\205\254\345\274\217_20180626195929.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626195929.png"
rename to "_assets/\345\205\254\345\274\217_20180626195929.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626200311.png" "b/_assets/\345\205\254\345\274\217_20180626200311.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626200311.png"
rename to "_assets/\345\205\254\345\274\217_20180626200311.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626200340.png" "b/_assets/\345\205\254\345\274\217_20180626200340.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626200340.png"
rename to "_assets/\345\205\254\345\274\217_20180626200340.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626200536.png" "b/_assets/\345\205\254\345\274\217_20180626200536.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626200536.png"
rename to "_assets/\345\205\254\345\274\217_20180626200536.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626212313.png" "b/_assets/\345\205\254\345\274\217_20180626212313.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626212313.png"
rename to "_assets/\345\205\254\345\274\217_20180626212313.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626212536.png" "b/_assets/\345\205\254\345\274\217_20180626212536.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626212536.png"
rename to "_assets/\345\205\254\345\274\217_20180626212536.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626213915.png" "b/_assets/\345\205\254\345\274\217_20180626213915.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626213915.png"
rename to "_assets/\345\205\254\345\274\217_20180626213915.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626223957.png" "b/_assets/\345\205\254\345\274\217_20180626223957.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626223957.png"
rename to "_assets/\345\205\254\345\274\217_20180626223957.png"
diff --git "a/assets/\345\205\254\345\274\217_20180626224325.png" "b/_assets/\345\205\254\345\274\217_20180626224325.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180626224325.png"
rename to "_assets/\345\205\254\345\274\217_20180626224325.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627104751.png" "b/_assets/\345\205\254\345\274\217_20180627104751.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627104751.png"
rename to "_assets/\345\205\254\345\274\217_20180627104751.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627113753.png" "b/_assets/\345\205\254\345\274\217_20180627113753.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627113753.png"
rename to "_assets/\345\205\254\345\274\217_20180627113753.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627154353.png" "b/_assets/\345\205\254\345\274\217_20180627154353.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627154353.png"
rename to "_assets/\345\205\254\345\274\217_20180627154353.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627154921.png" "b/_assets/\345\205\254\345\274\217_20180627154921.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627154921.png"
rename to "_assets/\345\205\254\345\274\217_20180627154921.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627160852.png" "b/_assets/\345\205\254\345\274\217_20180627160852.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627160852.png"
rename to "_assets/\345\205\254\345\274\217_20180627160852.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627204933.png" "b/_assets/\345\205\254\345\274\217_20180627204933.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627204933.png"
rename to "_assets/\345\205\254\345\274\217_20180627204933.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627205326.png" "b/_assets/\345\205\254\345\274\217_20180627205326.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627205326.png"
rename to "_assets/\345\205\254\345\274\217_20180627205326.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627210310.png" "b/_assets/\345\205\254\345\274\217_20180627210310.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627210310.png"
rename to "_assets/\345\205\254\345\274\217_20180627210310.png"
diff --git "a/assets/\345\205\254\345\274\217_20180627213245.png" "b/_assets/\345\205\254\345\274\217_20180627213245.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180627213245.png"
rename to "_assets/\345\205\254\345\274\217_20180627213245.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628110309.png" "b/_assets/\345\205\254\345\274\217_20180628110309.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628110309.png"
rename to "_assets/\345\205\254\345\274\217_20180628110309.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628141742.png" "b/_assets/\345\205\254\345\274\217_20180628141742.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628141742.png"
rename to "_assets/\345\205\254\345\274\217_20180628141742.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628141926.png" "b/_assets/\345\205\254\345\274\217_20180628141926.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628141926.png"
rename to "_assets/\345\205\254\345\274\217_20180628141926.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628143525.png" "b/_assets/\345\205\254\345\274\217_20180628143525.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628143525.png"
rename to "_assets/\345\205\254\345\274\217_20180628143525.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628144611.png" "b/_assets/\345\205\254\345\274\217_20180628144611.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628144611.png"
rename to "_assets/\345\205\254\345\274\217_20180628144611.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628144731.png" "b/_assets/\345\205\254\345\274\217_20180628144731.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628144731.png"
rename to "_assets/\345\205\254\345\274\217_20180628144731.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628200345.png" "b/_assets/\345\205\254\345\274\217_20180628200345.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628200345.png"
rename to "_assets/\345\205\254\345\274\217_20180628200345.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628205959.png" "b/_assets/\345\205\254\345\274\217_20180628205959.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628205959.png"
rename to "_assets/\345\205\254\345\274\217_20180628205959.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628210652.png" "b/_assets/\345\205\254\345\274\217_20180628210652.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628210652.png"
rename to "_assets/\345\205\254\345\274\217_20180628210652.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628211741.png" "b/_assets/\345\205\254\345\274\217_20180628211741.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628211741.png"
rename to "_assets/\345\205\254\345\274\217_20180628211741.png"
diff --git "a/assets/\345\205\254\345\274\217_20180628211807.png" "b/_assets/\345\205\254\345\274\217_20180628211807.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180628211807.png"
rename to "_assets/\345\205\254\345\274\217_20180628211807.png"
diff --git "a/assets/\345\205\254\345\274\217_20180629153014.png" "b/_assets/\345\205\254\345\274\217_20180629153014.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180629153014.png"
rename to "_assets/\345\205\254\345\274\217_20180629153014.png"
diff --git "a/assets/\345\205\254\345\274\217_20180629205004.png" "b/_assets/\345\205\254\345\274\217_20180629205004.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180629205004.png"
rename to "_assets/\345\205\254\345\274\217_20180629205004.png"
diff --git "a/assets/\345\205\254\345\274\217_20180629205132.png" "b/_assets/\345\205\254\345\274\217_20180629205132.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180629205132.png"
rename to "_assets/\345\205\254\345\274\217_20180629205132.png"
diff --git "a/assets/\345\205\254\345\274\217_20180629211135.png" "b/_assets/\345\205\254\345\274\217_20180629211135.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180629211135.png"
rename to "_assets/\345\205\254\345\274\217_20180629211135.png"
diff --git "a/assets/\345\205\254\345\274\217_20180630152255.png" "b/_assets/\345\205\254\345\274\217_20180630152255.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180630152255.png"
rename to "_assets/\345\205\254\345\274\217_20180630152255.png"
diff --git "a/assets/\345\205\254\345\274\217_20180630152454.png" "b/_assets/\345\205\254\345\274\217_20180630152454.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180630152454.png"
rename to "_assets/\345\205\254\345\274\217_20180630152454.png"
diff --git "a/assets/\345\205\254\345\274\217_20180702171411.png" "b/_assets/\345\205\254\345\274\217_20180702171411.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180702171411.png"
rename to "_assets/\345\205\254\345\274\217_20180702171411.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704162743.png" "b/_assets/\345\205\254\345\274\217_20180704162743.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704162743.png"
rename to "_assets/\345\205\254\345\274\217_20180704162743.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704163428.png" "b/_assets/\345\205\254\345\274\217_20180704163428.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704163428.png"
rename to "_assets/\345\205\254\345\274\217_20180704163428.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704163659.png" "b/_assets/\345\205\254\345\274\217_20180704163659.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704163659.png"
rename to "_assets/\345\205\254\345\274\217_20180704163659.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704170039.png" "b/_assets/\345\205\254\345\274\217_20180704170039.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704170039.png"
rename to "_assets/\345\205\254\345\274\217_20180704170039.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704170404.png" "b/_assets/\345\205\254\345\274\217_20180704170404.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704170404.png"
rename to "_assets/\345\205\254\345\274\217_20180704170404.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704171334.png" "b/_assets/\345\205\254\345\274\217_20180704171334.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704171334.png"
rename to "_assets/\345\205\254\345\274\217_20180704171334.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704171742.png" "b/_assets/\345\205\254\345\274\217_20180704171742.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704171742.png"
rename to "_assets/\345\205\254\345\274\217_20180704171742.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704173348.png" "b/_assets/\345\205\254\345\274\217_20180704173348.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704173348.png"
rename to "_assets/\345\205\254\345\274\217_20180704173348.png"
diff --git "a/assets/\345\205\254\345\274\217_20180704173511.png" "b/_assets/\345\205\254\345\274\217_20180704173511.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180704173511.png"
rename to "_assets/\345\205\254\345\274\217_20180704173511.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705113619.png" "b/_assets/\345\205\254\345\274\217_20180705113619.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705113619.png"
rename to "_assets/\345\205\254\345\274\217_20180705113619.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705115436.png" "b/_assets/\345\205\254\345\274\217_20180705115436.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705115436.png"
rename to "_assets/\345\205\254\345\274\217_20180705115436.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705115935.png" "b/_assets/\345\205\254\345\274\217_20180705115935.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705115935.png"
rename to "_assets/\345\205\254\345\274\217_20180705115935.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705120102.png" "b/_assets/\345\205\254\345\274\217_20180705120102.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705120102.png"
rename to "_assets/\345\205\254\345\274\217_20180705120102.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705120324.png" "b/_assets/\345\205\254\345\274\217_20180705120324.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705120324.png"
rename to "_assets/\345\205\254\345\274\217_20180705120324.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705134851.png" "b/_assets/\345\205\254\345\274\217_20180705134851.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705134851.png"
rename to "_assets/\345\205\254\345\274\217_20180705134851.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705154543.png" "b/_assets/\345\205\254\345\274\217_20180705154543.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705154543.png"
rename to "_assets/\345\205\254\345\274\217_20180705154543.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705154650.png" "b/_assets/\345\205\254\345\274\217_20180705154650.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705154650.png"
rename to "_assets/\345\205\254\345\274\217_20180705154650.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705160142.png" "b/_assets/\345\205\254\345\274\217_20180705160142.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705160142.png"
rename to "_assets/\345\205\254\345\274\217_20180705160142.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705161525.png" "b/_assets/\345\205\254\345\274\217_20180705161525.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705161525.png"
rename to "_assets/\345\205\254\345\274\217_20180705161525.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705161725.png" "b/_assets/\345\205\254\345\274\217_20180705161725.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705161725.png"
rename to "_assets/\345\205\254\345\274\217_20180705161725.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705162428.png" "b/_assets/\345\205\254\345\274\217_20180705162428.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705162428.png"
rename to "_assets/\345\205\254\345\274\217_20180705162428.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705162521.png" "b/_assets/\345\205\254\345\274\217_20180705162521.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705162521.png"
rename to "_assets/\345\205\254\345\274\217_20180705162521.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705162633.png" "b/_assets/\345\205\254\345\274\217_20180705162633.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705162633.png"
rename to "_assets/\345\205\254\345\274\217_20180705162633.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705190236.png" "b/_assets/\345\205\254\345\274\217_20180705190236.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705190236.png"
rename to "_assets/\345\205\254\345\274\217_20180705190236.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705190536.png" "b/_assets/\345\205\254\345\274\217_20180705190536.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705190536.png"
rename to "_assets/\345\205\254\345\274\217_20180705190536.png"
diff --git "a/assets/\345\205\254\345\274\217_20180705190657.png" "b/_assets/\345\205\254\345\274\217_20180705190657.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180705190657.png"
rename to "_assets/\345\205\254\345\274\217_20180705190657.png"
diff --git "a/assets/\345\205\254\345\274\217_20180706115540.png" "b/_assets/\345\205\254\345\274\217_20180706115540.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180706115540.png"
rename to "_assets/\345\205\254\345\274\217_20180706115540.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709113033.png" "b/_assets/\345\205\254\345\274\217_20180709113033.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709113033.png"
rename to "_assets/\345\205\254\345\274\217_20180709113033.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709113237.png" "b/_assets/\345\205\254\345\274\217_20180709113237.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709113237.png"
rename to "_assets/\345\205\254\345\274\217_20180709113237.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709113352.png" "b/_assets/\345\205\254\345\274\217_20180709113352.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709113352.png"
rename to "_assets/\345\205\254\345\274\217_20180709113352.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709113552.png" "b/_assets/\345\205\254\345\274\217_20180709113552.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709113552.png"
rename to "_assets/\345\205\254\345\274\217_20180709113552.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709113801.png" "b/_assets/\345\205\254\345\274\217_20180709113801.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709113801.png"
rename to "_assets/\345\205\254\345\274\217_20180709113801.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709114801.png" "b/_assets/\345\205\254\345\274\217_20180709114801.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709114801.png"
rename to "_assets/\345\205\254\345\274\217_20180709114801.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709114953.png" "b/_assets/\345\205\254\345\274\217_20180709114953.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709114953.png"
rename to "_assets/\345\205\254\345\274\217_20180709114953.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709142838.png" "b/_assets/\345\205\254\345\274\217_20180709142838.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709142838.png"
rename to "_assets/\345\205\254\345\274\217_20180709142838.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709152101.png" "b/_assets/\345\205\254\345\274\217_20180709152101.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709152101.png"
rename to "_assets/\345\205\254\345\274\217_20180709152101.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709152707.png" "b/_assets/\345\205\254\345\274\217_20180709152707.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709152707.png"
rename to "_assets/\345\205\254\345\274\217_20180709152707.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709153307.png" "b/_assets/\345\205\254\345\274\217_20180709153307.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709153307.png"
rename to "_assets/\345\205\254\345\274\217_20180709153307.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709154956.png" "b/_assets/\345\205\254\345\274\217_20180709154956.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709154956.png"
rename to "_assets/\345\205\254\345\274\217_20180709154956.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709155736.png" "b/_assets/\345\205\254\345\274\217_20180709155736.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709155736.png"
rename to "_assets/\345\205\254\345\274\217_20180709155736.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709160115.png" "b/_assets/\345\205\254\345\274\217_20180709160115.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709160115.png"
rename to "_assets/\345\205\254\345\274\217_20180709160115.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709160743.png" "b/_assets/\345\205\254\345\274\217_20180709160743.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709160743.png"
rename to "_assets/\345\205\254\345\274\217_20180709160743.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709160950.png" "b/_assets/\345\205\254\345\274\217_20180709160950.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709160950.png"
rename to "_assets/\345\205\254\345\274\217_20180709160950.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709161030.png" "b/_assets/\345\205\254\345\274\217_20180709161030.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709161030.png"
rename to "_assets/\345\205\254\345\274\217_20180709161030.png"
diff --git "a/assets/\345\205\254\345\274\217_20180709162840.png" "b/_assets/\345\205\254\345\274\217_20180709162840.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180709162840.png"
rename to "_assets/\345\205\254\345\274\217_20180709162840.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713111021.png" "b/_assets/\345\205\254\345\274\217_20180713111021.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713111021.png"
rename to "_assets/\345\205\254\345\274\217_20180713111021.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713111140.png" "b/_assets/\345\205\254\345\274\217_20180713111140.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713111140.png"
rename to "_assets/\345\205\254\345\274\217_20180713111140.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713111647.png" "b/_assets/\345\205\254\345\274\217_20180713111647.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713111647.png"
rename to "_assets/\345\205\254\345\274\217_20180713111647.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713111746.png" "b/_assets/\345\205\254\345\274\217_20180713111746.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713111746.png"
rename to "_assets/\345\205\254\345\274\217_20180713111746.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713112312.png" "b/_assets/\345\205\254\345\274\217_20180713112312.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713112312.png"
rename to "_assets/\345\205\254\345\274\217_20180713112312.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713114026.png" "b/_assets/\345\205\254\345\274\217_20180713114026.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713114026.png"
rename to "_assets/\345\205\254\345\274\217_20180713114026.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713114504.png" "b/_assets/\345\205\254\345\274\217_20180713114504.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713114504.png"
rename to "_assets/\345\205\254\345\274\217_20180713114504.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713114855.png" "b/_assets/\345\205\254\345\274\217_20180713114855.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713114855.png"
rename to "_assets/\345\205\254\345\274\217_20180713114855.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713131851.png" "b/_assets/\345\205\254\345\274\217_20180713131851.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713131851.png"
rename to "_assets/\345\205\254\345\274\217_20180713131851.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713132107.png" "b/_assets/\345\205\254\345\274\217_20180713132107.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713132107.png"
rename to "_assets/\345\205\254\345\274\217_20180713132107.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713132400.png" "b/_assets/\345\205\254\345\274\217_20180713132400.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713132400.png"
rename to "_assets/\345\205\254\345\274\217_20180713132400.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713132655.png" "b/_assets/\345\205\254\345\274\217_20180713132655.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713132655.png"
rename to "_assets/\345\205\254\345\274\217_20180713132655.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713133045.png" "b/_assets/\345\205\254\345\274\217_20180713133045.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713133045.png"
rename to "_assets/\345\205\254\345\274\217_20180713133045.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713133601.png" "b/_assets/\345\205\254\345\274\217_20180713133601.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713133601.png"
rename to "_assets/\345\205\254\345\274\217_20180713133601.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713134322.png" "b/_assets/\345\205\254\345\274\217_20180713134322.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713134322.png"
rename to "_assets/\345\205\254\345\274\217_20180713134322.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713134514.png" "b/_assets/\345\205\254\345\274\217_20180713134514.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713134514.png"
rename to "_assets/\345\205\254\345\274\217_20180713134514.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713141712.png" "b/_assets/\345\205\254\345\274\217_20180713141712.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713141712.png"
rename to "_assets/\345\205\254\345\274\217_20180713141712.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713141808.png" "b/_assets/\345\205\254\345\274\217_20180713141808.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713141808.png"
rename to "_assets/\345\205\254\345\274\217_20180713141808.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713141843.png" "b/_assets/\345\205\254\345\274\217_20180713141843.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713141843.png"
rename to "_assets/\345\205\254\345\274\217_20180713141843.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713142639.png" "b/_assets/\345\205\254\345\274\217_20180713142639.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713142639.png"
rename to "_assets/\345\205\254\345\274\217_20180713142639.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713142726.png" "b/_assets/\345\205\254\345\274\217_20180713142726.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713142726.png"
rename to "_assets/\345\205\254\345\274\217_20180713142726.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713143545.png" "b/_assets/\345\205\254\345\274\217_20180713143545.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713143545.png"
rename to "_assets/\345\205\254\345\274\217_20180713143545.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713143622.png" "b/_assets/\345\205\254\345\274\217_20180713143622.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713143622.png"
rename to "_assets/\345\205\254\345\274\217_20180713143622.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713143756.png" "b/_assets/\345\205\254\345\274\217_20180713143756.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713143756.png"
rename to "_assets/\345\205\254\345\274\217_20180713143756.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713151730.png" "b/_assets/\345\205\254\345\274\217_20180713151730.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713151730.png"
rename to "_assets/\345\205\254\345\274\217_20180713151730.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713152150.png" "b/_assets/\345\205\254\345\274\217_20180713152150.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713152150.png"
rename to "_assets/\345\205\254\345\274\217_20180713152150.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713152255.png" "b/_assets/\345\205\254\345\274\217_20180713152255.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713152255.png"
rename to "_assets/\345\205\254\345\274\217_20180713152255.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713192430.png" "b/_assets/\345\205\254\345\274\217_20180713192430.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713192430.png"
rename to "_assets/\345\205\254\345\274\217_20180713192430.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713193142.png" "b/_assets/\345\205\254\345\274\217_20180713193142.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713193142.png"
rename to "_assets/\345\205\254\345\274\217_20180713193142.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713193328.png" "b/_assets/\345\205\254\345\274\217_20180713193328.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713193328.png"
rename to "_assets/\345\205\254\345\274\217_20180713193328.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713194600.png" "b/_assets/\345\205\254\345\274\217_20180713194600.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713194600.png"
rename to "_assets/\345\205\254\345\274\217_20180713194600.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713194803.png" "b/_assets/\345\205\254\345\274\217_20180713194803.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713194803.png"
rename to "_assets/\345\205\254\345\274\217_20180713194803.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713195055.png" "b/_assets/\345\205\254\345\274\217_20180713195055.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713195055.png"
rename to "_assets/\345\205\254\345\274\217_20180713195055.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713195135.png" "b/_assets/\345\205\254\345\274\217_20180713195135.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713195135.png"
rename to "_assets/\345\205\254\345\274\217_20180713195135.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713200326.png" "b/_assets/\345\205\254\345\274\217_20180713200326.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713200326.png"
rename to "_assets/\345\205\254\345\274\217_20180713200326.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713200405.png" "b/_assets/\345\205\254\345\274\217_20180713200405.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713200405.png"
rename to "_assets/\345\205\254\345\274\217_20180713200405.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713200734.png" "b/_assets/\345\205\254\345\274\217_20180713200734.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713200734.png"
rename to "_assets/\345\205\254\345\274\217_20180713200734.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713200756.png" "b/_assets/\345\205\254\345\274\217_20180713200756.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713200756.png"
rename to "_assets/\345\205\254\345\274\217_20180713200756.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713200840.png" "b/_assets/\345\205\254\345\274\217_20180713200840.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713200840.png"
rename to "_assets/\345\205\254\345\274\217_20180713200840.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713202223.png" "b/_assets/\345\205\254\345\274\217_20180713202223.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713202223.png"
rename to "_assets/\345\205\254\345\274\217_20180713202223.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713202306.png" "b/_assets/\345\205\254\345\274\217_20180713202306.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713202306.png"
rename to "_assets/\345\205\254\345\274\217_20180713202306.png"
diff --git "a/assets/\345\205\254\345\274\217_20180713203827.png" "b/_assets/\345\205\254\345\274\217_20180713203827.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180713203827.png"
rename to "_assets/\345\205\254\345\274\217_20180713203827.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715132127.png" "b/_assets/\345\205\254\345\274\217_20180715132127.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715132127.png"
rename to "_assets/\345\205\254\345\274\217_20180715132127.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715132515.png" "b/_assets/\345\205\254\345\274\217_20180715132515.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715132515.png"
rename to "_assets/\345\205\254\345\274\217_20180715132515.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715132840.png" "b/_assets/\345\205\254\345\274\217_20180715132840.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715132840.png"
rename to "_assets/\345\205\254\345\274\217_20180715132840.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715132906.png" "b/_assets/\345\205\254\345\274\217_20180715132906.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715132906.png"
rename to "_assets/\345\205\254\345\274\217_20180715132906.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715133122.png" "b/_assets/\345\205\254\345\274\217_20180715133122.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715133122.png"
rename to "_assets/\345\205\254\345\274\217_20180715133122.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715133256.png" "b/_assets/\345\205\254\345\274\217_20180715133256.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715133256.png"
rename to "_assets/\345\205\254\345\274\217_20180715133256.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715134037.png" "b/_assets/\345\205\254\345\274\217_20180715134037.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715134037.png"
rename to "_assets/\345\205\254\345\274\217_20180715134037.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715134916.png" "b/_assets/\345\205\254\345\274\217_20180715134916.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715134916.png"
rename to "_assets/\345\205\254\345\274\217_20180715134916.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715135300.png" "b/_assets/\345\205\254\345\274\217_20180715135300.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715135300.png"
rename to "_assets/\345\205\254\345\274\217_20180715135300.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715135456.png" "b/_assets/\345\205\254\345\274\217_20180715135456.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715135456.png"
rename to "_assets/\345\205\254\345\274\217_20180715135456.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715135945.png" "b/_assets/\345\205\254\345\274\217_20180715135945.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715135945.png"
rename to "_assets/\345\205\254\345\274\217_20180715135945.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715140300.png" "b/_assets/\345\205\254\345\274\217_20180715140300.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715140300.png"
rename to "_assets/\345\205\254\345\274\217_20180715140300.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715140328.png" "b/_assets/\345\205\254\345\274\217_20180715140328.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715140328.png"
rename to "_assets/\345\205\254\345\274\217_20180715140328.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715141210.png" "b/_assets/\345\205\254\345\274\217_20180715141210.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715141210.png"
rename to "_assets/\345\205\254\345\274\217_20180715141210.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715142042.png" "b/_assets/\345\205\254\345\274\217_20180715142042.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715142042.png"
rename to "_assets/\345\205\254\345\274\217_20180715142042.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715212915.png" "b/_assets/\345\205\254\345\274\217_20180715212915.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715212915.png"
rename to "_assets/\345\205\254\345\274\217_20180715212915.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715214352.png" "b/_assets/\345\205\254\345\274\217_20180715214352.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715214352.png"
rename to "_assets/\345\205\254\345\274\217_20180715214352.png"
diff --git "a/assets/\345\205\254\345\274\217_20180715230941.png" "b/_assets/\345\205\254\345\274\217_20180715230941.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180715230941.png"
rename to "_assets/\345\205\254\345\274\217_20180715230941.png"
diff --git "a/assets/\345\205\254\345\274\217_20180716142855.png" "b/_assets/\345\205\254\345\274\217_20180716142855.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180716142855.png"
rename to "_assets/\345\205\254\345\274\217_20180716142855.png"
diff --git "a/assets/\345\205\254\345\274\217_20180716143232.png" "b/_assets/\345\205\254\345\274\217_20180716143232.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180716143232.png"
rename to "_assets/\345\205\254\345\274\217_20180716143232.png"
diff --git "a/assets/\345\205\254\345\274\217_20180716143509.png" "b/_assets/\345\205\254\345\274\217_20180716143509.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180716143509.png"
rename to "_assets/\345\205\254\345\274\217_20180716143509.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717101425.png" "b/_assets/\345\205\254\345\274\217_20180717101425.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717101425.png"
rename to "_assets/\345\205\254\345\274\217_20180717101425.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717110557.png" "b/_assets/\345\205\254\345\274\217_20180717110557.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717110557.png"
rename to "_assets/\345\205\254\345\274\217_20180717110557.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717112341.png" "b/_assets/\345\205\254\345\274\217_20180717112341.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717112341.png"
rename to "_assets/\345\205\254\345\274\217_20180717112341.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717114628.png" "b/_assets/\345\205\254\345\274\217_20180717114628.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717114628.png"
rename to "_assets/\345\205\254\345\274\217_20180717114628.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717115204.png" "b/_assets/\345\205\254\345\274\217_20180717115204.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717115204.png"
rename to "_assets/\345\205\254\345\274\217_20180717115204.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717115402.png" "b/_assets/\345\205\254\345\274\217_20180717115402.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717115402.png"
rename to "_assets/\345\205\254\345\274\217_20180717115402.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717115616.png" "b/_assets/\345\205\254\345\274\217_20180717115616.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717115616.png"
rename to "_assets/\345\205\254\345\274\217_20180717115616.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717144338.png" "b/_assets/\345\205\254\345\274\217_20180717144338.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717144338.png"
rename to "_assets/\345\205\254\345\274\217_20180717144338.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717144904.png" "b/_assets/\345\205\254\345\274\217_20180717144904.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717144904.png"
rename to "_assets/\345\205\254\345\274\217_20180717144904.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717145223.png" "b/_assets/\345\205\254\345\274\217_20180717145223.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717145223.png"
rename to "_assets/\345\205\254\345\274\217_20180717145223.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717145448.png" "b/_assets/\345\205\254\345\274\217_20180717145448.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717145448.png"
rename to "_assets/\345\205\254\345\274\217_20180717145448.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717145625.png" "b/_assets/\345\205\254\345\274\217_20180717145625.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717145625.png"
rename to "_assets/\345\205\254\345\274\217_20180717145625.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717145841.png" "b/_assets/\345\205\254\345\274\217_20180717145841.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717145841.png"
rename to "_assets/\345\205\254\345\274\217_20180717145841.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717212747.png" "b/_assets/\345\205\254\345\274\217_20180717212747.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717212747.png"
rename to "_assets/\345\205\254\345\274\217_20180717212747.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717214302.png" "b/_assets/\345\205\254\345\274\217_20180717214302.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717214302.png"
rename to "_assets/\345\205\254\345\274\217_20180717214302.png"
diff --git "a/assets/\345\205\254\345\274\217_20180717223137.png" "b/_assets/\345\205\254\345\274\217_20180717223137.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180717223137.png"
rename to "_assets/\345\205\254\345\274\217_20180717223137.png"
diff --git "a/assets/\345\205\254\345\274\217_20180718103749.png" "b/_assets/\345\205\254\345\274\217_20180718103749.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180718103749.png"
rename to "_assets/\345\205\254\345\274\217_20180718103749.png"
diff --git "a/assets/\345\205\254\345\274\217_20180718104559.png" "b/_assets/\345\205\254\345\274\217_20180718104559.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180718104559.png"
rename to "_assets/\345\205\254\345\274\217_20180718104559.png"
diff --git "a/assets/\345\205\254\345\274\217_20180718105408.png" "b/_assets/\345\205\254\345\274\217_20180718105408.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180718105408.png"
rename to "_assets/\345\205\254\345\274\217_20180718105408.png"
diff --git "a/assets/\345\205\254\345\274\217_20180718105727.png" "b/_assets/\345\205\254\345\274\217_20180718105727.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180718105727.png"
rename to "_assets/\345\205\254\345\274\217_20180718105727.png"
diff --git "a/assets/\345\205\254\345\274\217_2018071891909.png" "b/_assets/\345\205\254\345\274\217_2018071891909.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_2018071891909.png"
rename to "_assets/\345\205\254\345\274\217_2018071891909.png"
diff --git "a/assets/\345\205\254\345\274\217_2018071893503.png" "b/_assets/\345\205\254\345\274\217_2018071893503.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_2018071893503.png"
rename to "_assets/\345\205\254\345\274\217_2018071893503.png"
diff --git "a/assets/\345\205\254\345\274\217_2018071895945.png" "b/_assets/\345\205\254\345\274\217_2018071895945.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_2018071895945.png"
rename to "_assets/\345\205\254\345\274\217_2018071895945.png"
diff --git "a/assets/\345\205\254\345\274\217_20180719142639.png" "b/_assets/\345\205\254\345\274\217_20180719142639.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180719142639.png"
rename to "_assets/\345\205\254\345\274\217_20180719142639.png"
diff --git "a/assets/\345\205\254\345\274\217_201807191434562.png" "b/_assets/\345\205\254\345\274\217_201807191434562.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_201807191434562.png"
rename to "_assets/\345\205\254\345\274\217_201807191434562.png"
diff --git "a/assets/\345\205\254\345\274\217_20180719144515.png" "b/_assets/\345\205\254\345\274\217_20180719144515.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180719144515.png"
rename to "_assets/\345\205\254\345\274\217_20180719144515.png"
diff --git "a/assets/\345\205\254\345\274\217_20180720110804.png" "b/_assets/\345\205\254\345\274\217_20180720110804.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180720110804.png"
rename to "_assets/\345\205\254\345\274\217_20180720110804.png"
diff --git "a/assets/\345\205\254\345\274\217_20180720113735.png" "b/_assets/\345\205\254\345\274\217_20180720113735.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180720113735.png"
rename to "_assets/\345\205\254\345\274\217_20180720113735.png"
diff --git "a/assets/\345\205\254\345\274\217_20180720114917.png" "b/_assets/\345\205\254\345\274\217_20180720114917.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180720114917.png"
rename to "_assets/\345\205\254\345\274\217_20180720114917.png"
diff --git "a/assets/\345\205\254\345\274\217_20180720120400.png" "b/_assets/\345\205\254\345\274\217_20180720120400.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180720120400.png"
rename to "_assets/\345\205\254\345\274\217_20180720120400.png"
diff --git "a/assets/\345\205\254\345\274\217_20180720172427.png" "b/_assets/\345\205\254\345\274\217_20180720172427.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180720172427.png"
rename to "_assets/\345\205\254\345\274\217_20180720172427.png"
diff --git "a/assets/\345\205\254\345\274\217_20180723153506.png" "b/_assets/\345\205\254\345\274\217_20180723153506.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180723153506.png"
rename to "_assets/\345\205\254\345\274\217_20180723153506.png"
diff --git "a/assets/\345\205\254\345\274\217_20180728195601.png" "b/_assets/\345\205\254\345\274\217_20180728195601.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180728195601.png"
rename to "_assets/\345\205\254\345\274\217_20180728195601.png"
diff --git "a/assets/\345\205\254\345\274\217_20180728201614.png" "b/_assets/\345\205\254\345\274\217_20180728201614.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180728201614.png"
rename to "_assets/\345\205\254\345\274\217_20180728201614.png"
diff --git "a/assets/\345\205\254\345\274\217_20180728202629.png" "b/_assets/\345\205\254\345\274\217_20180728202629.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180728202629.png"
rename to "_assets/\345\205\254\345\274\217_20180728202629.png"
diff --git "a/assets/\345\205\254\345\274\217_20180728205525.png" "b/_assets/\345\205\254\345\274\217_20180728205525.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180728205525.png"
rename to "_assets/\345\205\254\345\274\217_20180728205525.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805203945.png" "b/_assets/\345\205\254\345\274\217_20180805203945.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805203945.png"
rename to "_assets/\345\205\254\345\274\217_20180805203945.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805204149.png" "b/_assets/\345\205\254\345\274\217_20180805204149.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805204149.png"
rename to "_assets/\345\205\254\345\274\217_20180805204149.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805204435.png" "b/_assets/\345\205\254\345\274\217_20180805204435.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805204435.png"
rename to "_assets/\345\205\254\345\274\217_20180805204435.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805210533.png" "b/_assets/\345\205\254\345\274\217_20180805210533.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805210533.png"
rename to "_assets/\345\205\254\345\274\217_20180805210533.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805211457.png" "b/_assets/\345\205\254\345\274\217_20180805211457.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805211457.png"
rename to "_assets/\345\205\254\345\274\217_20180805211457.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805211530.png" "b/_assets/\345\205\254\345\274\217_20180805211530.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805211530.png"
rename to "_assets/\345\205\254\345\274\217_20180805211530.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805211644.png" "b/_assets/\345\205\254\345\274\217_20180805211644.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805211644.png"
rename to "_assets/\345\205\254\345\274\217_20180805211644.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805211936.png" "b/_assets/\345\205\254\345\274\217_20180805211936.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805211936.png"
rename to "_assets/\345\205\254\345\274\217_20180805211936.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805212222.png" "b/_assets/\345\205\254\345\274\217_20180805212222.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805212222.png"
rename to "_assets/\345\205\254\345\274\217_20180805212222.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805231532.png" "b/_assets/\345\205\254\345\274\217_20180805231532.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805231532.png"
rename to "_assets/\345\205\254\345\274\217_20180805231532.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805231849.png" "b/_assets/\345\205\254\345\274\217_20180805231849.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805231849.png"
rename to "_assets/\345\205\254\345\274\217_20180805231849.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805235203.png" "b/_assets/\345\205\254\345\274\217_20180805235203.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805235203.png"
rename to "_assets/\345\205\254\345\274\217_20180805235203.png"
diff --git "a/assets/\345\205\254\345\274\217_20180805235444.png" "b/_assets/\345\205\254\345\274\217_20180805235444.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180805235444.png"
rename to "_assets/\345\205\254\345\274\217_20180805235444.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806100848.png" "b/_assets/\345\205\254\345\274\217_20180806100848.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806100848.png"
rename to "_assets/\345\205\254\345\274\217_20180806100848.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806100950.png" "b/_assets/\345\205\254\345\274\217_20180806100950.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806100950.png"
rename to "_assets/\345\205\254\345\274\217_20180806100950.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806102047.png" "b/_assets/\345\205\254\345\274\217_20180806102047.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806102047.png"
rename to "_assets/\345\205\254\345\274\217_20180806102047.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806115306.png" "b/_assets/\345\205\254\345\274\217_20180806115306.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806115306.png"
rename to "_assets/\345\205\254\345\274\217_20180806115306.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806115533.png" "b/_assets/\345\205\254\345\274\217_20180806115533.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806115533.png"
rename to "_assets/\345\205\254\345\274\217_20180806115533.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806115820.png" "b/_assets/\345\205\254\345\274\217_20180806115820.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806115820.png"
rename to "_assets/\345\205\254\345\274\217_20180806115820.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806120054.png" "b/_assets/\345\205\254\345\274\217_20180806120054.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806120054.png"
rename to "_assets/\345\205\254\345\274\217_20180806120054.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806120247.png" "b/_assets/\345\205\254\345\274\217_20180806120247.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806120247.png"
rename to "_assets/\345\205\254\345\274\217_20180806120247.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806145103.png" "b/_assets/\345\205\254\345\274\217_20180806145103.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806145103.png"
rename to "_assets/\345\205\254\345\274\217_20180806145103.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806145459.png" "b/_assets/\345\205\254\345\274\217_20180806145459.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806145459.png"
rename to "_assets/\345\205\254\345\274\217_20180806145459.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806145813.png" "b/_assets/\345\205\254\345\274\217_20180806145813.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806145813.png"
rename to "_assets/\345\205\254\345\274\217_20180806145813.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806150512.png" "b/_assets/\345\205\254\345\274\217_20180806150512.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806150512.png"
rename to "_assets/\345\205\254\345\274\217_20180806150512.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806150727.png" "b/_assets/\345\205\254\345\274\217_20180806150727.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806150727.png"
rename to "_assets/\345\205\254\345\274\217_20180806150727.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806150816.png" "b/_assets/\345\205\254\345\274\217_20180806150816.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806150816.png"
rename to "_assets/\345\205\254\345\274\217_20180806150816.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806162119.png" "b/_assets/\345\205\254\345\274\217_20180806162119.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806162119.png"
rename to "_assets/\345\205\254\345\274\217_20180806162119.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806165417.png" "b/_assets/\345\205\254\345\274\217_20180806165417.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806165417.png"
rename to "_assets/\345\205\254\345\274\217_20180806165417.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806170304.png" "b/_assets/\345\205\254\345\274\217_20180806170304.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806170304.png"
rename to "_assets/\345\205\254\345\274\217_20180806170304.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806170618.png" "b/_assets/\345\205\254\345\274\217_20180806170618.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806170618.png"
rename to "_assets/\345\205\254\345\274\217_20180806170618.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806172840.png" "b/_assets/\345\205\254\345\274\217_20180806172840.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806172840.png"
rename to "_assets/\345\205\254\345\274\217_20180806172840.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806173111.png" "b/_assets/\345\205\254\345\274\217_20180806173111.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806173111.png"
rename to "_assets/\345\205\254\345\274\217_20180806173111.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806175337.png" "b/_assets/\345\205\254\345\274\217_20180806175337.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806175337.png"
rename to "_assets/\345\205\254\345\274\217_20180806175337.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806193111.png" "b/_assets/\345\205\254\345\274\217_20180806193111.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806193111.png"
rename to "_assets/\345\205\254\345\274\217_20180806193111.png"
diff --git "a/assets/\345\205\254\345\274\217_20180806200601.png" "b/_assets/\345\205\254\345\274\217_20180806200601.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180806200601.png"
rename to "_assets/\345\205\254\345\274\217_20180806200601.png"
diff --git "a/assets/\345\205\254\345\274\217_2018080694809.png" "b/_assets/\345\205\254\345\274\217_2018080694809.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_2018080694809.png"
rename to "_assets/\345\205\254\345\274\217_2018080694809.png"
diff --git "a/assets/\345\205\254\345\274\217_2018080695721.png" "b/_assets/\345\205\254\345\274\217_2018080695721.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_2018080695721.png"
rename to "_assets/\345\205\254\345\274\217_2018080695721.png"
diff --git "a/assets/\345\205\254\345\274\217_2018080695819.png" "b/_assets/\345\205\254\345\274\217_2018080695819.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_2018080695819.png"
rename to "_assets/\345\205\254\345\274\217_2018080695819.png"
diff --git "a/assets/\345\205\254\345\274\217_20180807150747.png" "b/_assets/\345\205\254\345\274\217_20180807150747.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180807150747.png"
rename to "_assets/\345\205\254\345\274\217_20180807150747.png"
diff --git "a/assets/\345\205\254\345\274\217_20180807151738.png" "b/_assets/\345\205\254\345\274\217_20180807151738.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180807151738.png"
rename to "_assets/\345\205\254\345\274\217_20180807151738.png"
diff --git "a/assets/\345\205\254\345\274\217_20180808110452.png" "b/_assets/\345\205\254\345\274\217_20180808110452.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180808110452.png"
rename to "_assets/\345\205\254\345\274\217_20180808110452.png"
diff --git "a/assets/\345\205\254\345\274\217_20180808110741.png" "b/_assets/\345\205\254\345\274\217_20180808110741.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180808110741.png"
rename to "_assets/\345\205\254\345\274\217_20180808110741.png"
diff --git "a/assets/\345\205\254\345\274\217_20180808114308.png" "b/_assets/\345\205\254\345\274\217_20180808114308.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180808114308.png"
rename to "_assets/\345\205\254\345\274\217_20180808114308.png"
diff --git "a/assets/\345\205\254\345\274\217_20180808201548.png" "b/_assets/\345\205\254\345\274\217_20180808201548.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180808201548.png"
rename to "_assets/\345\205\254\345\274\217_20180808201548.png"
diff --git "a/assets/\345\205\254\345\274\217_20180808201943.png" "b/_assets/\345\205\254\345\274\217_20180808201943.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180808201943.png"
rename to "_assets/\345\205\254\345\274\217_20180808201943.png"
diff --git "a/assets/\345\205\254\345\274\217_20180810211954.png" "b/_assets/\345\205\254\345\274\217_20180810211954.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180810211954.png"
rename to "_assets/\345\205\254\345\274\217_20180810211954.png"
diff --git "a/assets/\345\205\254\345\274\217_20180811211940.png" "b/_assets/\345\205\254\345\274\217_20180811211940.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180811211940.png"
rename to "_assets/\345\205\254\345\274\217_20180811211940.png"
diff --git "a/assets/\345\205\254\345\274\217_20180811215806.png" "b/_assets/\345\205\254\345\274\217_20180811215806.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180811215806.png"
rename to "_assets/\345\205\254\345\274\217_20180811215806.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817210106.png" "b/_assets/\345\205\254\345\274\217_20180817210106.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817210106.png"
rename to "_assets/\345\205\254\345\274\217_20180817210106.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817210758.png" "b/_assets/\345\205\254\345\274\217_20180817210758.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817210758.png"
rename to "_assets/\345\205\254\345\274\217_20180817210758.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817211749.png" "b/_assets/\345\205\254\345\274\217_20180817211749.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817211749.png"
rename to "_assets/\345\205\254\345\274\217_20180817211749.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817211903.png" "b/_assets/\345\205\254\345\274\217_20180817211903.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817211903.png"
rename to "_assets/\345\205\254\345\274\217_20180817211903.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817212111.png" "b/_assets/\345\205\254\345\274\217_20180817212111.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817212111.png"
rename to "_assets/\345\205\254\345\274\217_20180817212111.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817220004.png" "b/_assets/\345\205\254\345\274\217_20180817220004.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817220004.png"
rename to "_assets/\345\205\254\345\274\217_20180817220004.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817223923.png" "b/_assets/\345\205\254\345\274\217_20180817223923.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817223923.png"
rename to "_assets/\345\205\254\345\274\217_20180817223923.png"
diff --git "a/assets/\345\205\254\345\274\217_20180817230314.png" "b/_assets/\345\205\254\345\274\217_20180817230314.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180817230314.png"
rename to "_assets/\345\205\254\345\274\217_20180817230314.png"
diff --git "a/assets/\345\205\254\345\274\217_20180819113203.png" "b/_assets/\345\205\254\345\274\217_20180819113203.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180819113203.png"
rename to "_assets/\345\205\254\345\274\217_20180819113203.png"
diff --git "a/assets/\345\205\254\345\274\217_20180819203034.png" "b/_assets/\345\205\254\345\274\217_20180819203034.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180819203034.png"
rename to "_assets/\345\205\254\345\274\217_20180819203034.png"
diff --git "a/assets/\345\205\254\345\274\217_20180819204052.png" "b/_assets/\345\205\254\345\274\217_20180819204052.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180819204052.png"
rename to "_assets/\345\205\254\345\274\217_20180819204052.png"
diff --git "a/assets/\345\205\254\345\274\217_20180819204219.png" "b/_assets/\345\205\254\345\274\217_20180819204219.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180819204219.png"
rename to "_assets/\345\205\254\345\274\217_20180819204219.png"
diff --git "a/assets/\345\205\254\345\274\217_20180819204612.png" "b/_assets/\345\205\254\345\274\217_20180819204612.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180819204612.png"
rename to "_assets/\345\205\254\345\274\217_20180819204612.png"
diff --git "a/assets/\345\205\254\345\274\217_20180820104712.png" "b/_assets/\345\205\254\345\274\217_20180820104712.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180820104712.png"
rename to "_assets/\345\205\254\345\274\217_20180820104712.png"
diff --git "a/assets/\345\205\254\345\274\217_20180820230435.png" "b/_assets/\345\205\254\345\274\217_20180820230435.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180820230435.png"
rename to "_assets/\345\205\254\345\274\217_20180820230435.png"
diff --git "a/assets/\345\205\254\345\274\217_20180820232647.png" "b/_assets/\345\205\254\345\274\217_20180820232647.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180820232647.png"
rename to "_assets/\345\205\254\345\274\217_20180820232647.png"
diff --git "a/assets/\345\205\254\345\274\217_20180821162706.png" "b/_assets/\345\205\254\345\274\217_20180821162706.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180821162706.png"
rename to "_assets/\345\205\254\345\274\217_20180821162706.png"
diff --git "a/assets/\345\205\254\345\274\217_20180823231624.png" "b/_assets/\345\205\254\345\274\217_20180823231624.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180823231624.png"
rename to "_assets/\345\205\254\345\274\217_20180823231624.png"
diff --git "a/assets/\345\205\254\345\274\217_20180824102139.png" "b/_assets/\345\205\254\345\274\217_20180824102139.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180824102139.png"
rename to "_assets/\345\205\254\345\274\217_20180824102139.png"
diff --git "a/assets/\345\205\254\345\274\217_20180824130328.png" "b/_assets/\345\205\254\345\274\217_20180824130328.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180824130328.png"
rename to "_assets/\345\205\254\345\274\217_20180824130328.png"
diff --git "a/assets/\345\205\254\345\274\217_20180824140303.png" "b/_assets/\345\205\254\345\274\217_20180824140303.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180824140303.png"
rename to "_assets/\345\205\254\345\274\217_20180824140303.png"
diff --git "a/assets/\345\205\254\345\274\217_20180824141327.png" "b/_assets/\345\205\254\345\274\217_20180824141327.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180824141327.png"
rename to "_assets/\345\205\254\345\274\217_20180824141327.png"
diff --git "a/assets/\345\205\254\345\274\217_2018082492318.png" "b/_assets/\345\205\254\345\274\217_2018082492318.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_2018082492318.png"
rename to "_assets/\345\205\254\345\274\217_2018082492318.png"
diff --git "a/assets/\345\205\254\345\274\217_20180826160514.png" "b/_assets/\345\205\254\345\274\217_20180826160514.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180826160514.png"
rename to "_assets/\345\205\254\345\274\217_20180826160514.png"
diff --git "a/assets/\345\205\254\345\274\217_20180826161333.png" "b/_assets/\345\205\254\345\274\217_20180826161333.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180826161333.png"
rename to "_assets/\345\205\254\345\274\217_20180826161333.png"
diff --git "a/assets/\345\205\254\345\274\217_20180826203915.png" "b/_assets/\345\205\254\345\274\217_20180826203915.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180826203915.png"
rename to "_assets/\345\205\254\345\274\217_20180826203915.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828112616.png" "b/_assets/\345\205\254\345\274\217_20180828112616.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828112616.png"
rename to "_assets/\345\205\254\345\274\217_20180828112616.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828174727.png" "b/_assets/\345\205\254\345\274\217_20180828174727.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828174727.png"
rename to "_assets/\345\205\254\345\274\217_20180828174727.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828175013.png" "b/_assets/\345\205\254\345\274\217_20180828175013.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828175013.png"
rename to "_assets/\345\205\254\345\274\217_20180828175013.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828175518.png" "b/_assets/\345\205\254\345\274\217_20180828175518.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828175518.png"
rename to "_assets/\345\205\254\345\274\217_20180828175518.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828175623.png" "b/_assets/\345\205\254\345\274\217_20180828175623.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828175623.png"
rename to "_assets/\345\205\254\345\274\217_20180828175623.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828195828.png" "b/_assets/\345\205\254\345\274\217_20180828195828.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828195828.png"
rename to "_assets/\345\205\254\345\274\217_20180828195828.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828200432.png" "b/_assets/\345\205\254\345\274\217_20180828200432.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828200432.png"
rename to "_assets/\345\205\254\345\274\217_20180828200432.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828200604.png" "b/_assets/\345\205\254\345\274\217_20180828200604.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828200604.png"
rename to "_assets/\345\205\254\345\274\217_20180828200604.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828215204.png" "b/_assets/\345\205\254\345\274\217_20180828215204.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828215204.png"
rename to "_assets/\345\205\254\345\274\217_20180828215204.png"
diff --git "a/assets/\345\205\254\345\274\217_20180828225607.png" "b/_assets/\345\205\254\345\274\217_20180828225607.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180828225607.png"
rename to "_assets/\345\205\254\345\274\217_20180828225607.png"
diff --git "a/assets/\345\205\254\345\274\217_20180829104207.png" "b/_assets/\345\205\254\345\274\217_20180829104207.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180829104207.png"
rename to "_assets/\345\205\254\345\274\217_20180829104207.png"
diff --git "a/assets/\345\205\254\345\274\217_20180829114415.png" "b/_assets/\345\205\254\345\274\217_20180829114415.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180829114415.png"
rename to "_assets/\345\205\254\345\274\217_20180829114415.png"
diff --git "a/assets/\345\205\254\345\274\217_20180829114459.png" "b/_assets/\345\205\254\345\274\217_20180829114459.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180829114459.png"
rename to "_assets/\345\205\254\345\274\217_20180829114459.png"
diff --git "a/assets/\345\205\254\345\274\217_20180829145336.png" "b/_assets/\345\205\254\345\274\217_20180829145336.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180829145336.png"
rename to "_assets/\345\205\254\345\274\217_20180829145336.png"
diff --git "a/assets/\345\205\254\345\274\217_20180829145525.png" "b/_assets/\345\205\254\345\274\217_20180829145525.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180829145525.png"
rename to "_assets/\345\205\254\345\274\217_20180829145525.png"
diff --git "a/assets/\345\205\254\345\274\217_20180829150659.png" "b/_assets/\345\205\254\345\274\217_20180829150659.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180829150659.png"
rename to "_assets/\345\205\254\345\274\217_20180829150659.png"
diff --git "a/assets/\345\205\254\345\274\217_20180831165516.png" "b/_assets/\345\205\254\345\274\217_20180831165516.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180831165516.png"
rename to "_assets/\345\205\254\345\274\217_20180831165516.png"
diff --git "a/assets/\345\205\254\345\274\217_20180831165546.png" "b/_assets/\345\205\254\345\274\217_20180831165546.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180831165546.png"
rename to "_assets/\345\205\254\345\274\217_20180831165546.png"
diff --git "a/assets/\345\205\254\345\274\217_20180902220459.png" "b/_assets/\345\205\254\345\274\217_20180902220459.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180902220459.png"
rename to "_assets/\345\205\254\345\274\217_20180902220459.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903203229.png" "b/_assets/\345\205\254\345\274\217_20180903203229.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903203229.png"
rename to "_assets/\345\205\254\345\274\217_20180903203229.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903210625.png" "b/_assets/\345\205\254\345\274\217_20180903210625.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903210625.png"
rename to "_assets/\345\205\254\345\274\217_20180903210625.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903212935.png" "b/_assets/\345\205\254\345\274\217_20180903212935.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903212935.png"
rename to "_assets/\345\205\254\345\274\217_20180903212935.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903213109.png" "b/_assets/\345\205\254\345\274\217_20180903213109.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903213109.png"
rename to "_assets/\345\205\254\345\274\217_20180903213109.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903213410.png" "b/_assets/\345\205\254\345\274\217_20180903213410.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903213410.png"
rename to "_assets/\345\205\254\345\274\217_20180903213410.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903220828.png" "b/_assets/\345\205\254\345\274\217_20180903220828.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903220828.png"
rename to "_assets/\345\205\254\345\274\217_20180903220828.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903223427.png" "b/_assets/\345\205\254\345\274\217_20180903223427.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903223427.png"
rename to "_assets/\345\205\254\345\274\217_20180903223427.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903224323.png" "b/_assets/\345\205\254\345\274\217_20180903224323.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903224323.png"
rename to "_assets/\345\205\254\345\274\217_20180903224323.png"
diff --git "a/assets/\345\205\254\345\274\217_20180903224557.png" "b/_assets/\345\205\254\345\274\217_20180903224557.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180903224557.png"
rename to "_assets/\345\205\254\345\274\217_20180903224557.png"
diff --git "a/assets/\345\205\254\345\274\217_20180904113355.png" "b/_assets/\345\205\254\345\274\217_20180904113355.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180904113355.png"
rename to "_assets/\345\205\254\345\274\217_20180904113355.png"
diff --git "a/assets/\345\205\254\345\274\217_20180905213158.png" "b/_assets/\345\205\254\345\274\217_20180905213158.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180905213158.png"
rename to "_assets/\345\205\254\345\274\217_20180905213158.png"
diff --git "a/assets/\345\205\254\345\274\217_20180905213258.png" "b/_assets/\345\205\254\345\274\217_20180905213258.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180905213258.png"
rename to "_assets/\345\205\254\345\274\217_20180905213258.png"
diff --git "a/assets/\345\205\254\345\274\217_20180905213323.png" "b/_assets/\345\205\254\345\274\217_20180905213323.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180905213323.png"
rename to "_assets/\345\205\254\345\274\217_20180905213323.png"
diff --git "a/assets/\345\205\254\345\274\217_20180905213339.png" "b/_assets/\345\205\254\345\274\217_20180905213339.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180905213339.png"
rename to "_assets/\345\205\254\345\274\217_20180905213339.png"
diff --git "a/assets/\345\205\254\345\274\217_20180911214858.png" "b/_assets/\345\205\254\345\274\217_20180911214858.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180911214858.png"
rename to "_assets/\345\205\254\345\274\217_20180911214858.png"
diff --git "a/assets/\345\205\254\345\274\217_20180911215014.png" "b/_assets/\345\205\254\345\274\217_20180911215014.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180911215014.png"
rename to "_assets/\345\205\254\345\274\217_20180911215014.png"
diff --git "a/assets/\345\205\254\345\274\217_20180911224527.png" "b/_assets/\345\205\254\345\274\217_20180911224527.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180911224527.png"
rename to "_assets/\345\205\254\345\274\217_20180911224527.png"
diff --git "a/assets/\345\205\254\345\274\217_20180911225643.png" "b/_assets/\345\205\254\345\274\217_20180911225643.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180911225643.png"
rename to "_assets/\345\205\254\345\274\217_20180911225643.png"
diff --git "a/assets/\345\205\254\345\274\217_20180911232200.png" "b/_assets/\345\205\254\345\274\217_20180911232200.png"
similarity index 100%
rename from "assets/\345\205\254\345\274\217_20180911232200.png"
rename to "_assets/\345\205\254\345\274\217_20180911232200.png"
diff --git "a/assets/\345\205\261\347\216\260\347\237\251\351\230\265.png" "b/_assets/\345\205\261\347\216\260\347\237\251\351\230\265.png"
similarity index 100%
rename from "assets/\345\205\261\347\216\260\347\237\251\351\230\265.png"
rename to "_assets/\345\205\261\347\216\260\347\237\251\351\230\265.png"
diff --git "a/assets/\346\225\260\346\215\256\346\270\205\346\264\227\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206.jpg" "b/_assets/\346\225\260\346\215\256\346\270\205\346\264\227\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206.jpg"
similarity index 100%
rename from "assets/\346\225\260\346\215\256\346\270\205\346\264\227\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206.jpg"
rename to "_assets/\346\225\260\346\215\256\346\270\205\346\264\227\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206.jpg"
diff --git "a/assets/\346\231\256\351\200\232\345\215\267\347\247\257\344\270\216\350\206\250\350\203\200\345\215\267\347\247\257.png" "b/_assets/\346\231\256\351\200\232\345\215\267\347\247\257\344\270\216\350\206\250\350\203\200\345\215\267\347\247\257.png"
similarity index 100%
rename from "assets/\346\231\256\351\200\232\345\215\267\347\247\257\344\270\216\350\206\250\350\203\200\345\215\267\347\247\257.png"
rename to "_assets/\346\231\256\351\200\232\345\215\267\347\247\257\344\270\216\350\206\250\350\203\200\345\215\267\347\247\257.png"
diff --git "a/assets/\351\227\250\345\215\267\347\247\257.jpg" "b/_assets/\351\227\250\345\215\267\347\247\257.jpg"
similarity index 100%
rename from "assets/\351\227\250\345\215\267\347\247\257.jpg"
rename to "_assets/\351\227\250\345\215\267\347\247\257.jpg"
diff --git "a/assets/\351\227\250\345\215\267\347\247\257.png" "b/_assets/\351\227\250\345\215\267\347\247\257.png"
similarity index 100%
rename from "assets/\351\227\250\345\215\267\347\247\257.png"
rename to "_assets/\351\227\250\345\215\267\347\247\257.png"
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\344\270\223\351\242\230-A-\345\217\245\345\220\221\351\207\217.md" b/_codes/README.md
similarity index 100%
rename from "\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/NLP-\344\270\223\351\242\230-A-\345\217\245\345\220\221\351\207\217.md"
rename to _codes/README.md
diff --git "a/codes/cpp/\351\235\242\345\220\221\345\257\271\350\261\241-\344\270\215\351\200\232\350\277\207\347\273\247\346\211\277\345\256\236\347\216\260\345\244\232\346\200\201-\345\212\250\346\200\201\345\272\217\345\210\227.cpp" "b/_codes/cpp/\351\235\242\345\220\221\345\257\271\350\261\241-\344\270\215\351\200\232\350\277\207\347\273\247\346\211\277\345\256\236\347\216\260\345\244\232\346\200\201-\345\212\250\346\200\201\345\272\217\345\210\227.cpp"
similarity index 100%
rename from "codes/cpp/\351\235\242\345\220\221\345\257\271\350\261\241-\344\270\215\351\200\232\350\277\207\347\273\247\346\211\277\345\256\236\347\216\260\345\244\232\346\200\201-\345\212\250\346\200\201\345\272\217\345\210\227.cpp"
rename to "_codes/cpp/\351\235\242\345\220\221\345\257\271\350\261\241-\344\270\215\351\200\232\350\277\207\347\273\247\346\211\277\345\256\236\347\216\260\345\244\232\346\200\201-\345\212\250\346\200\201\345\272\217\345\210\227.cpp"
diff --git a/codes/machine_learning/KMeans/data.txt b/_codes/machine_learning/KMeans/data.txt
similarity index 100%
rename from codes/machine_learning/KMeans/data.txt
rename to _codes/machine_learning/KMeans/data.txt
diff --git a/codes/machine_learning/KMeans/kmeans.py b/_codes/machine_learning/KMeans/kmeans.py
similarity index 100%
rename from codes/machine_learning/KMeans/kmeans.py
rename to _codes/machine_learning/KMeans/kmeans.py
diff --git "a/codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/a.txt" "b/_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/a.txt"
similarity index 100%
rename from "codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/a.txt"
rename to "_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/a.txt"
diff --git "a/codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/b.txt" "b/_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/b.txt"
similarity index 100%
rename from "codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/b.txt"
rename to "_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/b.txt"
diff --git "a/codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/c.txt" "b/_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/c.txt"
similarity index 100%
rename from "codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/c.txt"
rename to "_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/data/c.txt"
diff --git "a/codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/inverse_index.py" "b/_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/inverse_index.py"
similarity index 100%
rename from "codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/inverse_index.py"
rename to "_codes/model/\345\200\222\346\216\222\347\264\242\345\274\225/inverse_index.py"
diff --git a/codes/my_tensorflow/README.md b/_codes/my_tensorflow/README.md
similarity index 100%
rename from codes/my_tensorflow/README.md
rename to _codes/my_tensorflow/README.md
diff --git a/_codes/my_tensorflow/src/__init__.py b/_codes/my_tensorflow/src/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/codes/my_tensorflow/src/activations/__init__.py b/_codes/my_tensorflow/src/activations/__init__.py
similarity index 100%
rename from codes/my_tensorflow/src/activations/__init__.py
rename to _codes/my_tensorflow/src/activations/__init__.py
diff --git a/codes/my_tensorflow/src/activations/relu.py b/_codes/my_tensorflow/src/activations/relu.py
similarity index 100%
rename from codes/my_tensorflow/src/activations/relu.py
rename to _codes/my_tensorflow/src/activations/relu.py
diff --git a/codes/my_tensorflow/src/initializers/__init__.py b/_codes/my_tensorflow/src/initializers/__init__.py
similarity index 100%
rename from codes/my_tensorflow/src/initializers/__init__.py
rename to _codes/my_tensorflow/src/initializers/__init__.py
diff --git a/codes/my_tensorflow/src/layers/__init__.py b/_codes/my_tensorflow/src/layers/__init__.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/__init__.py
rename to _codes/my_tensorflow/src/layers/__init__.py
diff --git a/codes/my_tensorflow/src/layers/attention.py b/_codes/my_tensorflow/src/layers/attention.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/attention.py
rename to _codes/my_tensorflow/src/layers/attention.py
diff --git a/codes/my_tensorflow/src/layers/cnn.py b/_codes/my_tensorflow/src/layers/cnn.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/cnn.py
rename to _codes/my_tensorflow/src/layers/cnn.py
diff --git a/codes/my_tensorflow/src/layers/dense.py b/_codes/my_tensorflow/src/layers/dense.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/dense.py
rename to _codes/my_tensorflow/src/layers/dense.py
diff --git a/codes/my_tensorflow/src/layers/embedding/__init__.py b/_codes/my_tensorflow/src/layers/embedding/__init__.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/embedding/__init__.py
rename to _codes/my_tensorflow/src/layers/embedding/__init__.py
diff --git a/codes/my_tensorflow/src/layers/embedding/char_cnn.py b/_codes/my_tensorflow/src/layers/embedding/char_cnn.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/embedding/char_cnn.py
rename to _codes/my_tensorflow/src/layers/embedding/char_cnn.py
diff --git a/codes/my_tensorflow/src/layers/highway.py b/_codes/my_tensorflow/src/layers/highway.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/highway.py
rename to _codes/my_tensorflow/src/layers/highway.py
diff --git a/codes/my_tensorflow/src/layers/match/__init__.py b/_codes/my_tensorflow/src/layers/match/__init__.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/match/__init__.py
rename to _codes/my_tensorflow/src/layers/match/__init__.py
diff --git a/codes/my_tensorflow/src/layers/match/attention_flow.py b/_codes/my_tensorflow/src/layers/match/attention_flow.py
similarity index 100%
rename from codes/my_tensorflow/src/layers/match/attention_flow.py
rename to _codes/my_tensorflow/src/layers/match/attention_flow.py
diff --git a/codes/my_tensorflow/src/regularizers/L1L2.py b/_codes/my_tensorflow/src/regularizers/L1L2.py
similarity index 100%
rename from codes/my_tensorflow/src/regularizers/L1L2.py
rename to _codes/my_tensorflow/src/regularizers/L1L2.py
diff --git a/codes/my_tensorflow/src/regularizers/__init__.py b/_codes/my_tensorflow/src/regularizers/__init__.py
similarity index 100%
rename from codes/my_tensorflow/src/regularizers/__init__.py
rename to _codes/my_tensorflow/src/regularizers/__init__.py
diff --git a/codes/my_tensorflow/src/utils/__init__.py b/_codes/my_tensorflow/src/utils/__init__.py
similarity index 100%
rename from codes/my_tensorflow/src/utils/__init__.py
rename to _codes/my_tensorflow/src/utils/__init__.py
diff --git a/codes/my_tensorflow/src/utils/array_op.py b/_codes/my_tensorflow/src/utils/array_op.py
similarity index 100%
rename from codes/my_tensorflow/src/utils/array_op.py
rename to _codes/my_tensorflow/src/utils/array_op.py
diff --git a/codes/my_tensorflow/src/utils/math_op.py b/_codes/my_tensorflow/src/utils/math_op.py
similarity index 100%
rename from codes/my_tensorflow/src/utils/math_op.py
rename to _codes/my_tensorflow/src/utils/math_op.py
diff --git a/codes/my_tensorflow/test_layer.ipynb b/_codes/my_tensorflow/test_layer.ipynb
similarity index 100%
rename from codes/my_tensorflow/test_layer.ipynb
rename to _codes/my_tensorflow/test_layer.ipynb
diff --git a/_notes/probability.pdf b/_notes/probability.pdf
new file mode 100644
index 00000000..90c1b781
Binary files /dev/null and b/_notes/probability.pdf differ
diff --git "a/notes/\344\270\223\351\242\230-Bash\345\221\275\344\273\244.md" "b/_notes/\344\270\223\351\242\230-Bash\345\221\275\344\273\244.md"
similarity index 100%
rename from "notes/\344\270\223\351\242\230-Bash\345\221\275\344\273\244.md"
rename to "_notes/\344\270\223\351\242\230-Bash\345\221\275\344\273\244.md"
diff --git "a/notes/\345\244\207\345\277\230-Markdown\345\260\217\346\212\200\345\267\247.md" "b/_notes/\345\244\207\345\277\230-Markdown\345\260\217\346\212\200\345\267\247.md"
similarity index 84%
rename from "notes/\345\244\207\345\277\230-Markdown\345\260\217\346\212\200\345\267\247.md"
rename to "_notes/\345\244\207\345\277\230-Markdown\345\260\217\346\212\200\345\267\247.md"
index a0fbbaba..b0ee6d91 100644
--- "a/notes/\345\244\207\345\277\230-Markdown\345\260\217\346\212\200\345\267\247.md"
+++ "b/_notes/\345\244\207\345\277\230-Markdown\345\260\217\346\212\200\345\267\247.md"
@@ -18,11 +18,11 @@ Index
## 图片居中
- 不带链接
```
-
+
```
- 带链接
```
-
+
```
- `height=""`用于控制图片的大小
diff --git "a/notes/\345\244\207\345\277\230-Python\347\233\270\345\205\263\345\267\245\345\205\267.md" "b/_notes/\345\244\207\345\277\230-Python\347\233\270\345\205\263\345\267\245\345\205\267.md"
similarity index 100%
rename from "notes/\345\244\207\345\277\230-Python\347\233\270\345\205\263\345\267\245\345\205\267.md"
rename to "_notes/\345\244\207\345\277\230-Python\347\233\270\345\205\263\345\267\245\345\205\267.md"
diff --git "a/notes/\345\244\207\345\277\230-\345\270\270\347\224\250\345\255\220\345\207\275\346\225\260.md" "b/_notes/\345\244\207\345\277\230-\345\270\270\347\224\250\345\255\220\345\207\275\346\225\260.md"
similarity index 100%
rename from "notes/\345\244\207\345\277\230-\345\270\270\347\224\250\345\255\220\345\207\275\346\225\260.md"
rename to "_notes/\345\244\207\345\277\230-\345\270\270\347\224\250\345\255\220\345\207\275\346\225\260.md"
diff --git "a/papers/A-\346\234\272\345\231\250\345\255\246\344\271\240/README.md" "b/_papers/A-\346\234\272\345\231\250\345\255\246\344\271\240/README.md"
similarity index 100%
rename from "papers/A-\346\234\272\345\231\250\345\255\246\344\271\240/README.md"
rename to "_papers/A-\346\234\272\345\231\250\345\255\246\344\271\240/README.md"
diff --git "a/papers/A-\346\267\261\345\272\246\345\255\246\344\271\240/README.md" "b/_papers/A-\346\267\261\345\272\246\345\255\246\344\271\240/README.md"
similarity index 100%
rename from "papers/A-\346\267\261\345\272\246\345\255\246\344\271\240/README.md"
rename to "_papers/A-\346\267\261\345\272\246\345\255\246\344\271\240/README.md"
diff --git "a/papers/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/README.md" "b/_papers/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/README.md"
similarity index 100%
rename from "papers/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/README.md"
rename to "_papers/A-\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/README.md"
diff --git "a/papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\346\221\230\350\246\201.md" "b/_papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
similarity index 100%
rename from "papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
rename to "_papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
diff --git "a/papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\347\273\274\350\277\260.md" "b/_papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\347\273\274\350\277\260.md"
similarity index 93%
rename from "papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\347\273\274\350\277\260.md"
rename to "_papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\347\273\274\350\277\260.md"
index d84cbf07..d07df128 100644
--- "a/papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\347\273\274\350\277\260.md"
+++ "b/_papers/QA-\350\247\206\350\247\211\351\227\256\347\255\224-A-\347\273\274\350\277\260.md"
@@ -96,7 +96,7 @@ Index
>> 实例分割:[14]、[15]、[16]
**标签歧义**
-
+
> 【图1】目标检测 和 语义分割
- **语义分割**或**实例分割**都不足以全面理解整个场景;
@@ -126,7 +126,7 @@ Index
#### DenseCap
- DenseCap 全称为 Dense image captioning,它在一定程度上缓解了普适标题的问题;
- DenseCap 会在图像的不同局部位置生成密集的注释;
-
+
- 即使如此,这些短描述也存在自动评价的问题;
- 此外,这些只针对局部信息的描述也不能提供空间信息或对象关系。
@@ -192,16 +192,16 @@ Index
**COCO-VQA 的问题**
- 由于语言上的偏见,许多问题**无需使用图像**就能回答;
-
+
- Q: "What color are the trees?" —— A: "green."
- 在数据集中,这个问题出现了 73 次,其中 70 个的答案都是 "green"
- 存在许多主观问题,没有准确的答案;
-
+
- Q: "Would you like to fly in that?" —— A: "yes"(4), "No"(6)
- 许多问题需要解释或冗长的描述,这类问题难以自动评价;
-
+
- Q: "Why would you say this woman is strong?" —— A: "yes"(5), can lift up on arms, headstand, handstand, can stand on her head, she is standing upside down on stool.
@@ -218,7 +218,7 @@ Index
- 包含两种模式:
- **free-form method**:可以针对图像提出任意问题;人类标注者通常会趋向于提出类似的问题。
- **regionspecific method**:针对图像的指定区域提问;
-
+
- Free form QA: What does the sky look like?
- Region based QA: What color is the horse?
@@ -233,7 +233,7 @@ Index
- 两类问题
- ‘telling’ questions:答案是基于文本的
- ‘pointing’ questions:以 Which 开头的问题,对于这些问题,算法必须在备选方案中选择正确的边界框。
-
+
- Q: Which object can you stab food with?
@@ -289,7 +289,7 @@ Index
- **基于分类的基本框架**
- **基于分类的 VQA 基本框架**
-
+
- 不同做法的差异主要体现在**如何整合图像和文本的特征**
- **整合图像和问题特征的方法**
@@ -326,7 +326,7 @@ Index
**[40]**
- LSTM + GoogleNet;
- 本文将图像特征拼接到问题的每个词之后,共同作为 LSTM 的输入;问题结束后的时间步被用于生成答案。
-
+
**[33]**
- Seq2Seq 生成模型,本文采用的是 Encoder-Decoder 框架
@@ -345,7 +345,7 @@ Index
- 本文基于这样一个直觉(insight),通过问题可以预测**答案的类型**。
- 基于此,将开放性问题转化为多选择问题;
- skip-thought vectors + ResNet-152
-
+
## 基于 Attention 的模型
> 相关论文: [63, 49, 52, 48, 54, 51, 46, 55]
@@ -361,7 +361,7 @@ Index
- 一种是类似语义分割的方式,生成**边缘框**(Edge Boxes [68]),对每个框生成特征
- 一种是使用**均匀网格**(**Uniform Grid**)把图像分成若干区域,然后利用 CNN 生成每个网格区域的图像特征,然后计算每个区域与问题中每个词的相关度得到 Attention 权重矩阵。
> 这个过程实际上跟**卷积**本身很像。
-
+
**Attention 的作用**
@@ -372,7 +372,7 @@ Index
- 模型输入:所有 box 区域的 CNN 特征、问题特征、答案
- 模型对每个候选答案生成一个分数,经过**排序**后得到最终答案
- 打分部分由一个全连接层完成。
-
+
**[51]** A focused dynamic attention model for visual question answering(FDA)
- 模型建议只使用与问题相关的 box 区域。
@@ -383,7 +383,7 @@ Index
- 然后使用 Word2Vec 计算问题中的单词与对象标签之间的相似度。
- 只要相似度大于 0.5 则认为是相关的。
- 问题和图像序列分别使用 LSTM 建模,得到特征后送入全连接层分类得到答案。
-
+
- 在最后一个时间步,模型还输入了图像的全局特征,用于访问全局以及局部特征。
@@ -393,12 +393,12 @@ Index
#### [49] Stacked Attention Networks for Image Question Answering(SAN)
- 模型提取 VGG19 最后一个 Pooling 层的 feature map 作为区域特征,其大小为 `14*14*512`。
- 相当于把原始 `448*448` 的图像均匀划分为 `14*14` 个网格(grid),每个网格使用一个 `512` 维的向量表示其特征。
-
+
- **Attention 层**
- Attention 层的主要作用是计算每个网格与问题的相关度
- 公式:
-
+
> 其中 `vI: [14*14,512]` 为图像特征,`vQ: [512]` 为问题特征;最后 `pI: [14*14]` 即问题在每个网格处的关注度
@@ -423,14 +423,14 @@ Index
- 在得到每个网格与问题的相关度后,对所有网格进行加权求和,从而得到整个图像加权后的全局特征;
- 整合图像特征与问题特征后进行分类(本文采用整合方法为按位求和)
-
+
**Stacked Attention**(堆叠 Attention)
- 对于复杂的问题,**单一的 Attention 层并不足以定位正确的答案预测区域**。
-
+
- 本文使用多个 Attention 层迭代上述过程
-
+
> 本文取 `K=2`
@@ -440,7 +440,7 @@ Index
- `V = {v1, v2, .., vT}: [T, d_v]`,其中 v_i 为问题中每个词的词向量,`T` 表示问题的(最大)长度,不足该长度的补充全 0 词向量;
- `S = {s1, s2, .., sL}: [L, d_s]`,其中 s_i 为每个网格的特征向量,`L` 表示网格数;
- 则相关系数矩阵 `C: [T, L]` 为
-
+
- 基于以上想法,本文提出了两种模型 "One-Hop Model" 和 "Two-Hop Model"
- One-Hop Model 使用整合后的问题特征和加权视觉特征来预测答案;
@@ -453,7 +453,7 @@ Index
- **输入模块**
- **文本问答**的输入为一系列**可能**与问题相关的**情景句子**(上下文);
- **视觉问答**的输入为**网格划分**后的图像,每一块网格作为**可能**与问题相关的**情景**
-
+
- **情景记忆模块**用于提取输入中的相关事实;每次迭代时更新内部记忆单元;
- **回答模块**通过整合最终的记忆单元与问题的表示来生成答案(RNN)。
@@ -465,14 +465,14 @@ Index
- **parallel co-attention** 同时关注问题和图像;
- **alternative co-attention** 同时在关注问题或图像间交替进行;
- 最终的答案通过由低到高依次融合三个层级的特征来预测。
-
+
#### [56] Dual attention networks for multimodal reasoning and matching
- 本文的主要思想是允许问题于图像互相 Attention,从而直接关注关键词或关键区域。
> 思想跟 co-attention 类似,但是做法不同。
- 为了实现这一点,本文先将图像特征和问题特征整合为**记忆向量**(按位乘),然后利用该记忆向量**分别**对问题和图像构建 Attention 向量。
- 该过程可以递归的进行,下一轮的输入为上一轮得到两个 Attention 向量;
-
+
> 但是作者建议迭代 2 次即可。
@@ -489,7 +489,7 @@ Index
- 如果直接对图像和问题进行外积会导致特征维度不可控,因此 MCB 在一个**低维的空间**下进行外积运算;
- 文本计算 Attention 的做法类似 [[49]](#49-stacked-attention-networks-for-image-question-answeringsan),区别在于使用 **MCB 操作**代替**双线性 Attention**
> 双线性 Attention,即 `Q·W·V`——使用一个权重矩阵 `W` 作为两个向量 `Q` 和 `V` 的交互中介。
-
+
- 本文模型是 2016 VQA 比赛的获胜模型
@@ -519,7 +519,7 @@ Index
### [55] Training recurrent answering units with joint loss minimization for VQA
- 本文提出的 Recurrent Answering Units(RAU)模型可以在不依赖外部语言分析器的情况下隐式地执行组合推理。
- 本文将所有用于回答子问题的模块以 RNN 的方式顺序排列,利用类似门机制的方式来自动选择由哪些模块回答问题。
-
+
## 其他模型 TODO
diff --git "a/papers/QA-\351\227\256\347\255\224-A-\346\221\230\350\246\201.md" "b/_papers/QA-\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
similarity index 83%
rename from "papers/QA-\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
rename to "_papers/QA-\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
index be9b2969..242f559a 100644
--- "a/papers/QA-\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
+++ "b/_papers/QA-\351\227\256\347\255\224-A-\346\221\230\350\246\201.md"
@@ -15,6 +15,6 @@ Index
- 本文将**动态记忆网络**(Dynamic Memory Networks, DMN)引入 QA 问题。
- DMN 主要分为四个模块:问题模块、输入模块、情景记忆模块、回答模块
-
+
-
\ No newline at end of file
diff --git a/papers/README.md b/_papers/README.md
similarity index 100%
rename from papers/README.md
rename to _papers/README.md
diff --git a/papers/^assets/README.md b/_papers/^assets/README.md
similarity index 100%
rename from papers/^assets/README.md
rename to _papers/^assets/README.md
diff --git "a/papers/pdf/[2014-ECCV].Edge Boxes\357\274\232Locating Object Proposals from Edges.pdf" "b/_papers/pdf/[2014-ECCV].Edge Boxes\357\274\232Locating Object Proposals from Edges.pdf"
similarity index 100%
rename from "papers/pdf/[2014-ECCV].Edge Boxes\357\274\232Locating Object Proposals from Edges.pdf"
rename to "_papers/pdf/[2014-ECCV].Edge Boxes\357\274\232Locating Object Proposals from Edges.pdf"
diff --git "a/papers/pdf/[2015-ICCV].Bilinear CNN Models for Fine-grained Visual Recognition.\357\274\210\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v6.pdf" "b/_papers/pdf/[2015-ICCV].Bilinear CNN Models for Fine-grained Visual Recognition.\357\274\210\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v6.pdf"
similarity index 100%
rename from "papers/pdf/[2015-ICCV].Bilinear CNN Models for Fine-grained Visual Recognition.\357\274\210\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v6.pdf"
rename to "_papers/pdf/[2015-ICCV].Bilinear CNN Models for Fine-grained Visual Recognition.\357\274\210\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v6.pdf"
diff --git a/papers/pdf/[2015-NIPS].Skip-Thought Vectors.v1.pdf b/_papers/pdf/[2015-NIPS].Skip-Thought Vectors.v1.pdf
similarity index 100%
rename from papers/pdf/[2015-NIPS].Skip-Thought Vectors.v1.pdf
rename to _papers/pdf/[2015-NIPS].Skip-Thought Vectors.v1.pdf
diff --git "a/papers/pdf/[2016-CVPR].Compact Bilinear Pooling.\357\274\210\345\216\213\347\274\251\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v2.pdf" "b/_papers/pdf/[2016-CVPR].Compact Bilinear Pooling.\357\274\210\345\216\213\347\274\251\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v2.pdf"
similarity index 100%
rename from "papers/pdf/[2016-CVPR].Compact Bilinear Pooling.\357\274\210\345\216\213\347\274\251\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v2.pdf"
rename to "_papers/pdf/[2016-CVPR].Compact Bilinear Pooling.\357\274\210\345\216\213\347\274\251\345\217\214\347\272\277\346\200\247\346\261\240\345\214\226\357\274\211.v2.pdf"
diff --git "a/papers/pdf/[2016].DenseCap.\357\274\210\346\235\216\351\243\236\351\243\236\357\274\211.pdf" "b/_papers/pdf/[2016].DenseCap.\357\274\210\346\235\216\351\243\236\351\243\236\357\274\211.pdf"
similarity index 100%
rename from "papers/pdf/[2016].DenseCap.\357\274\210\346\235\216\351\243\236\351\243\236\357\274\211.pdf"
rename to "_papers/pdf/[2016].DenseCap.\357\274\210\346\235\216\351\243\236\351\243\236\357\274\211.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2014-NIPS].A Multi-World Approach to Question Answering about Real-World Scenes based on Uncertain Input.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2014-NIPS].A Multi-World Approach to Question Answering about Real-World Scenes based on Uncertain Input.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2014-NIPS].A Multi-World Approach to Question Answering about Real-World Scenes based on Uncertain Input.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2014-NIPS].A Multi-World Approach to Question Answering about Real-World Scenes based on Uncertain Input.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].Ask Your Neurons\357\274\232A Neural-based Approach to Answering Questions about Images.v7.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].Ask Your Neurons\357\274\232A Neural-based Approach to Answering Questions about Images.v7.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].Ask Your Neurons\357\274\232A Neural-based Approach to Answering Questions about Images.v7.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].Ask Your Neurons\357\274\232A Neural-based Approach to Answering Questions about Images.v7.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].VQA\357\274\232Visual Question Answering.v7.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].VQA\357\274\232Visual Question Answering.v7.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].VQA\357\274\232Visual Question Answering.v7.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2015-ICCV].VQA\357\274\232Visual Question Answering.v7.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Answer-Type Prediction for Visual Question Answering.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Answer-Type Prediction for Visual Question Answering.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Answer-Type Prediction for Visual Question Answering.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Answer-Type Prediction for Visual Question Answering.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Deep Compositional Question Answering with Neural Module Networks.v4.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Deep Compositional Question Answering with Neural Module Networks.v4.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Deep Compositional Question Answering with Neural Module Networks.v4.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Deep Compositional Question Answering with Neural Module Networks.v4.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Stacked Attention Networks for Image Question Answering.v2.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Stacked Attention Networks for Image Question Answering.v2.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Stacked Attention Networks for Image Question Answering.v2.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Stacked Attention Networks for Image Question Answering.v2.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Where To Look\357\274\232Focus Regions for Visual Question Answering.v2.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Where To Look\357\274\232Focus Regions for Visual Question Answering.v2.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Where To Look\357\274\232Focus Regions for Visual Question Answering.v2.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-CVPR].Where To Look\357\274\232Focus Regions for Visual Question Answering.v2.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ECCV].Ask, Attend and Answer\357\274\232Exploring Question-Guided Spatial Attention for Visual Question Answering.v2.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ECCV].Ask, Attend and Answer\357\274\232Exploring Question-Guided Spatial Attention for Visual Question Answering.v2.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ECCV].Ask, Attend and Answer\357\274\232Exploring Question-Guided Spatial Attention for Visual Question Answering.v2.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ECCV].Ask, Attend and Answer\357\274\232Exploring Question-Guided Spatial Attention for Visual Question Answering.v2.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-EMNPL].Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding.v3.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-EMNPL].Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding.v3.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-EMNPL].Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding.v3.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-EMNPL].Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding.v3.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ICML].Dynamic Memory Networks for Visual and Textual Question Answering.V1.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ICML].Dynamic Memory Networks for Visual and Textual Question Answering.V1.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ICML].Dynamic Memory Networks for Visual and Textual Question Answering.V1.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-ICML].Dynamic Memory Networks for Visual and Textual Question Answering.V1.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-NIPS].Hierarchical Question-Image Co-Attention for Visual Question Answering.v5.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-NIPS].Hierarchical Question-Image Co-Attention for Visual Question Answering.v5.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-NIPS].Hierarchical Question-Image Co-Attention for Visual Question Answering.v5.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016-NIPS].Hierarchical Question-Image Co-Attention for Visual Question Answering.v5.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].A Focused Dynamic Attention Model for Visual Question Answering.v1.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].A Focused Dynamic Attention Model for Visual Question Answering.v1.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].A Focused Dynamic Attention Model for Visual Question Answering.v1.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].A Focused Dynamic Attention Model for Visual Question Answering.v1.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Revisiting Visual Question Answering Baselines.\357\274\210\346\225\260\346\215\256\345\201\217\345\267\256\343\200\201Facebook\357\274\211.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Revisiting Visual Question Answering Baselines.\357\274\210\346\225\260\346\215\256\345\201\217\345\267\256\343\200\201Facebook\357\274\211.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Revisiting Visual Question Answering Baselines.\357\274\210\346\225\260\346\215\256\345\201\217\345\267\256\343\200\201Facebook\357\274\211.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Revisiting Visual Question Answering Baselines.\357\274\210\346\225\260\346\215\256\345\201\217\345\267\256\343\200\201Facebook\357\274\211.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Training Recurrent Answering Units with Joint Loss Minimization for VQA.v2.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Training Recurrent Answering Units with Joint Loss Minimization for VQA.v2.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Training Recurrent Answering Units with Joint Loss Minimization for VQA.v2.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Training Recurrent Answering Units with Joint Loss Minimization for VQA.v2.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Visual Question Answering.\357\274\210\347\273\274\350\277\260\357\274\232\346\225\260\346\215\256\343\200\201\350\257\204\344\273\267\343\200\201\347\256\227\346\263\225\357\274\211.v4.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Visual Question Answering.\357\274\210\347\273\274\350\277\260\357\274\232\346\225\260\346\215\256\343\200\201\350\257\204\344\273\267\343\200\201\347\256\227\346\263\225\357\274\211.v4.pdf"
similarity index 99%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Visual Question Answering.\357\274\210\347\273\274\350\277\260\357\274\232\346\225\260\346\215\256\343\200\201\350\257\204\344\273\267\343\200\201\347\256\227\346\263\225\357\274\211.v4.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Visual Question Answering.\357\274\210\347\273\274\350\277\260\357\274\232\346\225\260\346\215\256\343\200\201\350\257\204\344\273\267\343\200\201\347\256\227\346\263\225\357\274\211.v4.pdf"
index 379a5491..ff293474 100644
Binary files "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Visual Question Answering.\357\274\210\347\273\274\350\277\260\357\274\232\346\225\260\346\215\256\343\200\201\350\257\204\344\273\267\343\200\201\347\256\227\346\263\225\357\274\211.v4.pdf" and "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2016].Visual Question Answering.\357\274\210\347\273\274\350\277\260\357\274\232\346\225\260\346\215\256\343\200\201\350\257\204\344\273\267\343\200\201\347\256\227\346\263\225\357\274\211.v4.pdf" differ
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Dual Attention Networks for Multimodal Reasoning and Matching.v2.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Dual Attention Networks for Multimodal Reasoning and Matching.v2.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Dual Attention Networks for Multimodal Reasoning and Matching.v2.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Dual Attention Networks for Multimodal Reasoning and Matching.v2.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Making the V in VQA Matter\357\274\232Elevating the Role of Image Understanding in Visual Question Answering.\357\274\210\346\225\260\346\215\256\351\233\206\357\274\211.v3.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Making the V in VQA Matter\357\274\232Elevating the Role of Image Understanding in Visual Question Answering.\357\274\210\346\225\260\346\215\256\351\233\206\357\274\211.v3.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Making the V in VQA Matter\357\274\232Elevating the Role of Image Understanding in Visual Question Answering.\357\274\210\346\225\260\346\215\256\351\233\206\357\274\211.v3.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-CVPR].Making the V in VQA Matter\357\274\232Elevating the Role of Image Understanding in Visual Question Answering.\357\274\210\346\225\260\346\215\256\351\233\206\357\274\211.v3.pdf"
diff --git "a/papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-ICLR].Hadamard Product for Low-rank Bilinear Pooling.v4.pdf" "b/_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-ICLR].Hadamard Product for Low-rank Bilinear Pooling.v4.pdf"
similarity index 100%
rename from "papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-ICLR].Hadamard Product for Low-rank Bilinear Pooling.v4.pdf"
rename to "_papers/pdf/\350\247\206\350\247\211\351\227\256\347\255\224\357\274\210VisualQA\357\274\211/[2017-ICLR].Hadamard Product for Low-rank Bilinear Pooling.v4.pdf"
diff --git "a/papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-ICML].Ask Me Anything\357\274\232Dynamic Memory Networks for Natural Language Processing.V5.pdf" "b/_papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-ICML].Ask Me Anything\357\274\232Dynamic Memory Networks for Natural Language Processing.V5.pdf"
similarity index 100%
rename from "papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-ICML].Ask Me Anything\357\274\232Dynamic Memory Networks for Natural Language Processing.V5.pdf"
rename to "_papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-ICML].Ask Me Anything\357\274\232Dynamic Memory Networks for Natural Language Processing.V5.pdf"
diff --git "a/papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-NAACL].Learning to Compose Neural Networks for Question Answering.v4.pdf" "b/_papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-NAACL].Learning to Compose Neural Networks for Question Answering.v4.pdf"
similarity index 100%
rename from "papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-NAACL].Learning to Compose Neural Networks for Question Answering.v4.pdf"
rename to "_papers/pdf/\351\227\256\347\255\224\357\274\210QA\357\274\211/[2016-NAACL].Learning to Compose Neural Networks for Question Answering.v4.pdf"
diff --git "a/_papers/\344\270\223\351\242\230-A-Attention\346\234\272\345\210\266.md" "b/_papers/\344\270\223\351\242\230-A-Attention\346\234\272\345\210\266.md"
new file mode 100644
index 00000000..77747cc9
--- /dev/null
+++ "b/_papers/\344\270\223\351\242\230-A-Attention\346\234\272\345\210\266.md"
@@ -0,0 +1,17 @@
+专题-Attention机制
+===
+
+Index
+---
+
+
+- [双线性交互](#双线性交互)
+- [Reference](#reference)
+
+
+
+## 双线性交互
+
+
+## Reference
+- [1]
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\344\270\223\351\242\230-XGBoost.md" "b/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\344\270\223\351\242\230-XGBoost.md"
deleted file mode 100644
index dbce9283..00000000
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/ML-\344\270\223\351\242\230-XGBoost.md"
+++ /dev/null
@@ -1,24 +0,0 @@
-ML-专题-XGBoost
-===
-
-预备知识
-- [集成学习](./ML-机器学习算法.md#集成学习)
-- [决策树](./ML-机器学习算法.md#决策树)
-
-Index
----
-
-
-- [AdaBoost](#adaboost)
-- [GDBT](#gdbt)
-- [XGBoost](#xgboost)
-
-
-
-## AdaBoost
-
-
-## GDBT
-
-
-## XGBoost
diff --git "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/README.md" "b/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/README.md"
deleted file mode 100644
index d488415b..00000000
--- "a/\346\234\272\345\231\250\345\255\246\344\271\240-\346\267\261\345\272\246\345\255\246\344\271\240-NLP/README.md"
+++ /dev/null
@@ -1,27 +0,0 @@
-机器学习 & 深度学习
-===
-
-## 机器学习
-- [机器学习基础](./ML-机器学习基础.md)
-- [机器学习算法](./ML-机器学习算法.md)
-- [机器学习实践](./ML-机器学习实践.md)
-
-## 深度学习
-- [深度学习基础](./DL-A-深度学习基础.md)
-- 深度学习实践 TODO
-- [专题-CNN](./DL-B-专题-CNN.md)
-- [专题-RNN](./DL-B-专题-RNN.md)
-- [专题-优化算法](./Base-A-专题-优化算法.md)
- - SGD
- - 带动量的 SGD
- - 自适应学习率的 SGD(Adam 等)
-- 专题-损失函数 TODO
-
-## 自然语言处理
-- [NLP 基础](NLP-自然语言处理基础.md)
-- NLP 实践 TODO
-- [专题-词向量](./NLP-专题-词向量.md)
-- [专题-序列建模](./NLP-专题-序列建模.md)
-
-
-## 公共基础 TODO
\ No newline at end of file