zoukankan      html  css  js  c++  java
  • assignment2

     assignment2

    Q1: Fully-connected Neural Network (25 points)

    • “独立完成” Fully-connected Neural Network  作业,还是挺开心的
    • 5 层 Fully-connected Neural Network 加上 dropout 后的准确效率为 52% 左右,加了 batch_norm 后的准确率只有 10% 。 另外一个同学的作业结果刚好相反,他的加上 batch norm 效果会很好, 但是他的加上 dropout 后的准确率只有 10%。一直不理解这是为什么? 经过一番努力总算修改加上 batch norm 后准确率只有 10% 的问题(应该是之前修改下标越界, bn_param 赋值为 self.bn_params[0]. 导致 running_var 和 running_mean 这两个变量在后续得不到有效的更新——一直在瞎更新)。batch norm 能有效地加快学习速度, dropout 则是能起到一定抑制过拟合的作用

    Q2: Batch Normalization (25 points)

    • 看着别人的答案才写出来的
    • 最后的三张图分析:weight_scale 初始化矩阵 w 的系数,可以看出 weight_scale 和 train_loss、val_loss 有很大关系,在 weight_loss 达到一定值时  没有经过  batch norm 的计算无法收敛。先不说原因吧,就图中现象而言—— weight scale 最好取 10-2 左右。现在来看下网络结构和 weight_scale 的关系,  简单地改下网络结构发现 图片中的现象没有变化(待会找下,看看有没有论文解释这个现象)。将初始网络结构由 [50, 50, 50, 50, 50, 50, 50 ] 中的 50 全修改为 200, 结论依然成立且因为网络过于复杂经过 batch norm 的模型产生了过拟合弱数据关系中可能隐藏着强数据关系。以上采用的优化器是 adam, 采用 sgd_momentum 和 rmsprop 优化器也出现了类似的现象。 将 batch norm 版本和非 batch norm 版本的权重矩阵打印出来可以看出 2 个有意思的现象:1)batch norm 版本基本每次迭代都会更新 7 层矩阵数值, 非 batch norm 大部分时候都是更新最后一层的系数(需要好好研究一下 solver 这个函数的工作原理)。 2) batch norm 版本的 权重矩阵有点特殊, 基本是 2 种数值分布矩阵交替迭代 一个是近似 全 1 矩阵, 另外一个矩阵的数值基本分布在 0.01 ~ 0.03 间。还需要好好研究为什么~

    Q3: Dropout (10 points)

    Q4: Convolutional Networks (30 points)

    •  layers.py 中的卷积网络代码 copy 自网络, 因为这些代码原理简单但是实现复杂,所以 copy from the network。 batch normalization 和 dropu out 的代码是自己写的(是为了了解这 2 个概念到底是怎么实现的, 但是卷积网络的概念已经理解,没有必要死磕!)
    • 对 numpy 的要求还是挺高的,如果 numpy 功底不够。写的代码会很繁琐(我现在的 numpy 功底不够,不如抄一题答案,消化后再解答下一题)。
    • spatial batch normalization : forward 是自己写的, backward 是抄的
    • cnn.py 直接放弃,不想写。累的荒。还是自己写吧!
    • 收获: 会用 tuple 版本的 axis !layers.py 的卷积部分共 2 个函数是抄网友的, max_pool 和其它部分则是自己写的。如果以后有机会可以使用 cs231n 中自带的 im2col 加快卷积计算速度

    Q5: PyTorch / TensorFlow on CIFAR-10 (10 points)

    Q6: Do something extra! (up to +10 points)

    探索项目

    • 图片的风格转换
    • 用卷积网络代替传统的图片处理方法处理图片——暂不限项目
    • 卷积为了在图像处理上有哪些好玩的点子
    • 做 assignment3 时才发现,原来 assignment2 中很多题目在 assignment3 都有答案!!
  • 相关阅读:
    Qt之根据扩展名获取文件图标、类型
    C++根据扩展名获取文件图标、类型
    Qt之QFileIconProvider(根据扩展名获取文件图标、类型)
    Qt之QTemporaryFile
    Qt之QFileIconProvider
    Qt之字典划词
    Qt之滚动字幕
    Qt之QThread
    Python 安装 httplib2
    Qt之QTimer
  • 原文地址:https://www.cnblogs.com/tmortred/p/8641498.html
Copyright © 2011-2022 走看看