- Sep 2018
-
192.168.199.102:5000 192.168.199.102:5000
-
Normalization
一列数字,如果每个数字都减去平均值,则新形成的数列均值为0.
一列数字,如果每个数字都除以标准差,则新形成的数列标准差为1.
如果我要构造一个均值为0,标准差为 0.1 的数列怎么做?
\(x_i \leftarrow x_i - \mu\)
\(x_i \leftarrow x_i / \sigma\)
\(x_i \leftarrow x_i * 0.1\)
经过这三步归一化的动作,既能保持原来分布的特点,又能做到归一化为均值为0,标准差为 0.1 的分布。
-
Why deep is better?
deep means 模组化(modularize)
模组化的意思是不直接解原始问题,而是找到一些中间量作为推论'桥'再过渡到原始问题。
每多一层隐含层,就多了一次 萃取 和 推理
1 hidden layer: 原始数据 -> 解析特征 -> 通过特征推理结果
2 hidden layer: 原始数据 -> 解析特征的特征 -> 通过特征的特征推理特征 -> 通过特征推理结果
...
每多一层隐含层,就多了一次抽取特征 和 通过特征进行推理。
实例说明:
四分类问题,把样本分成四类:
- 长发男(样本极少)
- 长发女
- 短发男
- 短发女
no hidden layer: dataset -> [1|2|3|4]
很显然,由于分类1的样本太少,分类器处理分类1的错误率就会很高。整体错误率也会较高。
1 hidden layer: dataset -> [长发|短发] + [男|女] -> [1|2|3|4]
这样一来,就可以避免某些样本过少会削弱分类器的问题,虽然长发男很少,但是长发vs短发两者几乎相等,男vs.女也几乎相等,也就是
[长|短]
分类器和[男|女]
分类器都很强。把这两个子分类器的结果作为新的样本(new dataset)
学出[长发男]
的分类器也就很强。模组化(modularize)
在这里就是指可以直接利用子分类器的结果作为新的输入,这就有点像是\(f(g(h(x)))\)一样。可是实现 end to end learning
deep learning 可以只给出 input(样本) 和 output(标签) 而我们并不参与中间具体函数的设计,这些具体的函数是自动学出的,这就是 end to end learning。
可以实现 complex task
现实问题中经常会遇到:
- 很相似的输入,输出却大相径庭
哈士奇和狼的图片作为输入,标签一个是狗,一个是狼
- 很不同的输入,输出却完全一样
正面的火车和侧面的火车作为输入,标签却都是火车
如果你的NN只有一层,你大概只能做简单的转换,没办法形成层次结果和复用。
Tags
Annotators
URL
-