[latexpage]
# DNN
给定输入input
* FeedForward
Let a_0 = input vector
For i in 1, 2 ... layers:
$$z_i = W_i * a_{i-1} + b_i$$ $$a_i = f(z_i)$$
通常 $f$ 是 $Sigmoid$ 或 $ReLU$ 函数
$$Sigmoid(z) = \frac{1}{1 + exp[-z]}$$
$$ReLU(z) = z > 0 ? z : 0$$
分类任务输出层通常为 $$Softmax(z_i) = \frac{exp[z_i - z_{max}]}{\sum exp[z_j - z_{max}]}$$,代表input属于各个类的概率。
绝大部分的运算在 $$Wa+b$$ 上,如果一次仅有一个输入,则 $$x / a$$ 的内容为向量, 若一次输入多个(图像batch处理, 语音多帧音频特征),$$x/a$$ 的内容为矩阵。
故在给定 DNN 模型参数的情况下,计算的核心是矩阵运算,*矩阵\*矩阵* 或 *矩阵\*向量*,本文重点介绍 *矩阵\*向量* 的优化。
# DNN
给定输入input
* FeedForward
Let a_0 = input vector
For i in 1, 2 ... layers:
$$z_i = W_i * a_{i-1} + b_i$$ $$a_i = f(z_i)$$
通常 $f$ 是 $Sigmoid$ 或 $ReLU$ 函数
$$Sigmoid(z) = \frac{1}{1 + exp[-z]}$$
$$ReLU(z) = z > 0 ? z : 0$$
分类任务输出层通常为 $$Softmax(z_i) = \frac{exp[z_i - z_{max}]}{\sum exp[z_j - z_{max}]}$$,代表input属于各个类的概率。
绝大部分的运算在 $$Wa+b$$ 上,如果一次仅有一个输入,则 $$x / a$$ 的内容为向量, 若一次输入多个(图像batch处理, 语音多帧音频特征),$$x/a$$ 的内容为矩阵。
故在给定 DNN 模型参数的情况下,计算的核心是矩阵运算,*矩阵\*矩阵* 或 *矩阵\*向量*,本文重点介绍 *矩阵\*向量* 的优化。