博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
人工智能实战2019第三次作业_李大
阅读量:6387 次
发布时间:2019-06-23

本文共 1413 字,大约阅读时间需要 4 分钟。

项目 内容
课程
作业要求
我的课程目标
本次作业作用 熟悉mini_batch的实现、作用

Coding作业

随机选取数据

def GetBatchSamples(X,Y,batch_size,iteration):    num_feature = X.shape[0]    shuffled_sequence = np.arange(0, X.shape[1])    np.random.shuffle(shuffled_sequence)    batch_x = X[0:num_feature, shuffled_sequence[0: batch_size]].reshape(num_feature, batch_size)    batch_y = Y[0:num_feature, shuffled_sequence[0: batch_size]].reshape(num_feature, batch_size)    return batch_x, batch_y
  • 重写GetBatchSamples后直接运行即可,每次获取数据时随机产生一个乱序的index list,取前batch size个index作为构造X和Y时使用的索引

取5,10,15的batch_size运行

  • max_epoch取50,50,100;eta均取0.1,max_iteration = (int)(num_example / batch_size)
  • max_epoch * max_iteration > 800即可,结果比较0=30-800之间loss的变化情况
  • GetSampleBatch使用随机获取

batch_size = 5,总收敛iteration = 48 * (200 / 5) + 37 = 1957

  • loss下降曲线抖动明显,抖动源于样本个体的差异

1613818-20190325135158544-1301822923.png

1613818-20190325135239879-736570157.png

batch_size = 10,总收敛iteration = 41 * 20 + 18 = 838

  • 相比batch_size = 5抖动明显减弱很多,更大的batch平均后越能描述样本整体的性质

1613818-20190325135311867-1410574564.png

1613818-20190325135344396-162793647.png

batch_size = 15,总收敛iteration = 685

  • 抖动更不明显

1613818-20190325135354564-1005333606.png

1613818-20190325135359234-1611542906.png

结论:

  • batch越大收敛iteration总数越少(但每个iteration的计算量越大),抖动越不明显。大batch更反应样本整体的特性,降低个体样本的噪声。

问题

1613818-20190325135416298-1123445251.png

问题2:为什么是椭圆不是圆?如何构造圆图?

1613818-20190325135628167-1883690251.png

  • 上式为均方差损失函数,可以很显然,w和b对J贡献不相等,即J对w和b的偏导数不等的时候J的平面映射图会是椭圆。
  • 要想构造平面映射图为圆的损失函数,显然w和b地位对等,可以对换,即可以写成

1613818-20190325135644432-1815203674.png

  • 则此时J(w,b) 可写成J1(w)或J1(b),为圆图

问题3:为什么中心是个椭圆区域而不是一个点?

  • 理论上均方差损失函数是有唯一最小值点的,但因为计算机计算时的精度有限,同心椭圆中心处在最小精度以下的数域(都四舍五入为同一个值a)计算结果都只能用一样的损失值(a的损失值)表示,故中心是椭圆区域。
  • 据此,计算精度越高,中心的椭圆区域越小。当计算精度无限高(计算时使用无限多位小数时),中心会是一个点。
  • 当步长(学习率)无限小时,loss能收敛到中心点。

转载于:https://www.cnblogs.com/lixiaoda/p/10593315.html

你可能感兴趣的文章
二层交换机、三层交换机、四层交换机
查看>>
Linux常用命令2
查看>>
浅复制 深复制
查看>>
UIWebView一些事儿~
查看>>
KVM虚拟化简易部署
查看>>
解释一个Map.Entry
查看>>
DHCP DHCP中继
查看>>
八皇后问题算法
查看>>
mysql群集搭建案例解析
查看>>
Nat与×××共存配置
查看>>
python操作excel的几种插件对比
查看>>
浅析App Engine
查看>>
×××灯式样的站点链接说明,链接提示
查看>>
Linux下动态IP和静态IP的设置方法
查看>>
mysql 行长度
查看>>
SUSE配置网关
查看>>
【shell】查找二进制文件 strings | grep
查看>>
共享网络打印机抄录
查看>>
MySQL5.5.32生产环境大内存优化配置实例
查看>>
Day09 -postfix nullclient MariaDB
查看>>