tensorflow machine learning cookbook的小知识点

2018年12月28日

最后修改时间: 2019-01-10

知识点

[ch6]神经网络activation funciton

  • sigmoid
    • 同类型函数:
      • tanh: 可通过sigmoid线性变化得到。0均值,可解决收敛慢的问题
    • 优点: 压缩数据使数据幅度不会出现问题,适合向前传播
    • 缺点: 收敛慢(因为是非0均值), 幂运算耗时, 容易梯度消失(当导数接近0)
  • relu
    • 同类型函数:
      • leakly relu: max(0.01x, x), 用来解决神经坏死
      • elu, softplus
    • 优点: 收敛快,不会梯度消失,运算快,适合向后传播
    • 缺点: 非零均值,神经坏死(永远在负数部分为0),不压缩导致的数据幅度不断扩大

[ch6]TensorFlow中CNN的两种padding方式“SAME”和“VALID”

  • 参考地址
  • 简单说明:当valid发现余下的窗口无法卷积时直接舍弃多余列,而same方式会以0填充新的列
  • 以height为例,新的height的shape的公式:
    • valid: new_height = ceil((W-F+1)/S)
    • same: new_height = ceil(W/S)

[ch7]word2vec

  • 很好的参考文章
  • 一些创新(只有第三点书中用到了)
    • 常见的单词组合可作为单个词处理
    • 高频词单词抽样,限制样本出现次数
    • 对输出层进行负采样,提升计算效率
  • skip-gram和CBOW的区别(书的结论和网上找的不一致)
    • skip-gram:一个学生(输入)多个老师(输出),结果更准确但更耗时
    • CBOW: 多个输入一个输出
  • word2vec训练的好坏?
    • 词聚类: 可以采用 kmeans 聚类,看聚类簇的分布
    • 词cos 相关性
    • Analogy对比:a:b 与 c:d的cos距离 (man-king woman-queen )
    • 使用tnse,pca等降维可视化展示(tensorboard或matplotlib)

[ch8] Retrain Existing CNNs models

  • tensorflow hub Image Retrain
  • 获取一个分类模型有三种方式(后两种成为迁移学习):
    • train from scratch: 从头训练
    • Fine-tune model: 所以参数都可变化
    • retrain model: 只训练模型最后一层softmax层,其余层参数全部固化; 实际使用中, 计算每张图片的bottleneck(倒数第二层)并保存

[ch10] Taking TF to production tips

  • tf.reset_default_graph()
  • 使用tf.train.Saver() 保存checkpoint
  • save之前确保每个variable都有name
  • tf.app.flags设置命令行参数
  • tf.set_verbosity()设置内置的log级别

一些质疑

[ch6]井字棋

最后的井字棋用demo训练出来的结果很烂, 而且既然已经枚举出了所有情况,又何必用机器学习呢?总之不是一个好例子

[ch7]Working with Bag of Words

learn.preprocessing.VocabularyProcessor应该先用fit,再transform,否则会导致sentence_size和min_word_freq两个参数失效

[ch7]Implementing TF-IDF

TF-IDF简单的说是在本文中出现的多且在所有文章出现的少的词的权重高,但我认为在这个预测是否spam的例子中,使用TF-IDF是没有意义的。

[ch7]Working with skip-gram

  • 结果随机性太高,和随机出来的初始值关系很大
  • 结果可理解为算近义词,但是肉眼看来和算命似的,你说他像也行不像也行..

[ch8]Implementing an Adcanced CNN(cifar-10)

  • model_learning_rate的衰减,因为generation_num没有放入tf.train.GradientDescentOptimizer().minimize(),或者使用feed_dict,导致未生效

知识共享许可协议
crouchred的博客Chen Xuyuan 创作,采用 知识共享 署名-非商业性使用 4.0 国际 许可协议进行许可。
© 2016-2020. All rights reserved by Chen Xuyuan. Powerd by Jekyll & li2's Theme