首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >研究生 HW1

研究生 HW1

作者头像
平凡的学生族
发布2019-10-08 16:18:01
发布2019-10-08 16:18:01
7520
举报
文章被收录于专栏:后端技术后端技术

HW1.1

题目

参见 textbook p4-12。完成以下任务: (1) 生成正弦序列 s(n); (2) 使用噪声函数对正弦序列加噪 x(n)=s(n)+w(n); (3) 使用多项式回归模型对 x(n)进行拟合,并分析过拟合和欠拟合情况

问题分析

  • 分析textbook中的问题,我们认为是要在[0,1]上取10个点的训练集,原函数设为sin(2πx),进行拟合。
  • 拟合时,可采用np.polyfit函数。

效果

当M=3时:

当M=10时:

当M=20时:

效果分析

  • 当M=3时,训练误差大,属于欠拟合。
  • 当M=10时,训练误差为0,属于较拟合。
  • 当M=20时,训练误差小,但测试集误差很大,拟合效果明显更差,属于过拟合。

HW1.2

1.Generate n = 2,000 points uniformly at random in the two-dimensional unit square. Which point do you expect the centroid to be? (0.5, 0.5) 2.What objective does the centroid of the points optimize? 应当让中心点与所有点的欧式距离最小

化为代码即为

代码语言:javascript
复制
def cost(c, all_points):
    return sum(sum((c - all_points) ** 2, axis=1) ** 0.5)

3.Apply gradient descent (GD) to find the centroid. 先根据损失函数, 写出求导公式

该公式会基于全部点的误差进行迭代。 每次迭代都计算全局误差和梯度,将梯度置于中心点,更新中心点。 重复迭代,直到更新步长小于某个定值为止。 具体见代码。

4.Apply stochastic gradient descent (SGD) to find the centroid. Can you say in simple words, what the algorithm is doing? 需要改变损失函数和迭代逻辑。

可见,使用SGD后,点的更新变得十分曲折。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.09.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HW1.1
    • 题目
    • 问题分析
    • 效果
    • 效果分析
  • HW1.2
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档