diff --git "a/ch12_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203/\347\254\254\345\215\201\344\272\214\347\253\240_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203.md" "b/ch12_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203/\347\254\254\345\215\201\344\272\214\347\253\240_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203.md" index 8b0bae56..7d876c75 100644 --- "a/ch12_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203/\347\254\254\345\215\201\344\272\214\347\253\240_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203.md" +++ "b/ch12_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203/\347\254\254\345\215\201\344\272\214\347\253\240_\347\275\221\347\273\234\346\220\255\345\273\272\345\217\212\350\256\255\347\273\203.md" @@ -31,24 +31,24 @@   此后,ILSVRC挑战赛的名次一直是衡量一个研究机构或企业技术水平的重要标尺。   ILSVRC 2017 已是最后一届举办.2018年起,将由WebVision竞赛(Challenge on Visual Understanding by Learning from Web Data)来接棒。因此,即使ILSVRC挑战赛停办了,但其对深度学习的深远影响和巨大贡献,将永载史册。 -10.3 网络训练有哪些技巧吗? -10.3.1.合适的数据集。 +10.3 网络训练有哪些技巧吗? +10.3.1.合适的数据集。 - 1 没有明显脏数据(可以极大避免Loss输出为NaN)。 - 2 样本数据分布均匀。 -10.3.2.合适的预处理方法。 +10.3.2.合适的预处理方法。   关于数据预处理,在Batch Normalization未出现之前预处理的主要做法是减去均值,然后除去方差。在Batch Normalization出现之后,减均值除方差的做法已经没有必要了。对应的预处理方法主要是数据筛查、数据增强等。 -10.3.3.网络的初始化。 +10.3.3.网络的初始化。   网络初始化最粗暴的做法是参数赋值为全0,这是绝对不可取的。因为如果所有的参数都是0,那么所有神经元的输出都将是相同的,那在back propagation的时候同一层内所有神经元的行为也是相同的,这可能会直接导致模型失效,无法收敛。吴恩达视频中介绍的方法是将网络权重初始化均值为0、方差为1符合的正态分布的随机数据。 -10.3.4.小规模数据试练。 +10.3.4.小规模数据试练。   在正式开始训练之前,可以先用小规模数据进行试练。原因如下: - 1 可以验证自己的训练流程对否。 - 2 可以观察收敛速度,帮助调整学习速率。 - 3 查看GPU显存占用情况,最大化batch_size(前提是进行了batch normalization,只要显卡不爆,尽量挑大的)。 -10.3.5.设置合理Learning Rate。 +10.3.5.设置合理Learning Rate。 - 1 太大。Loss爆炸、输出NaN等。 - 2 太小。收敛速度过慢,训练时长大大延长。 - 3 可变的学习速率。比如当输出准确率到达某个阈值后,可以让Learning Rate减半继续训练。