2 Matching Annotations
  1. Sep 2018
    1. Normalization

      一列数字,如果每个数字都减去平均值,则新形成的数列均值为0.

      一列数字,如果每个数字都除以标准差,则新形成的数列标准差为1.

      如果我要构造一个均值为0,标准差为 0.1 的数列怎么做?

      1. \(x_i \leftarrow x_i - \mu\)

      2. \(x_i \leftarrow x_i / \sigma\)

      3. \(x_i \leftarrow x_i * 0.1\)

      经过这三步归一化的动作,既能保持原来分布的特点,又能做到归一化为均值为0,标准差为 0.1 的分布。

    2. Why deep is better?

      deep means 模组化(modularize)

      模组化的意思是不直接解原始问题,而是找到一些中间量作为推论'桥'再过渡到原始问题。

      每多一层隐含层,就多了一次 萃取推理

      1 hidden layer: 原始数据 -> 解析特征 -> 通过特征推理结果

      2 hidden layer: 原始数据 -> 解析特征的特征 -> 通过特征的特征推理特征 -> 通过特征推理结果

      ...

      每多一层隐含层,就多了一次抽取特征通过特征进行推理

      实例说明:

      四分类问题,把样本分成四类:

      1. 长发男(样本极少)
      2. 长发女
      3. 短发男
      4. 短发女

      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只有一层,你大概只能做简单的转换,没办法形成层次结果和复用。