对图像SVD分解后,USV矩阵的操作没有看懂

对图像SVD分解后,USV矩阵的操作没有看懂

对图像SVD分解后,USV矩阵的操作没有听懂

具体问题

  1. 为什么要使用np.diag,将一维数组转化为对应的对角矩阵?
  2. np.dot的这步骤没有理解取值(U[:,:k],V[:k,:]),以及相乘的意义?
#对图像进行SVD分解
U,S,V = np.linalg.svd(image.astype(np.float64),full_matrices=False)

#定义要保留奇异值数量
k=10
#问题1
s_K=np.diag(S[:k])

#重构图像
#问题2
compressed_image=np.dot(U[:,:k],np.dot(s_K,V[:k,:]))

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Leo健恒 2024-03-14 11:59:47
在图像svd分解中,可以将图像分为三个部分,其中u是左奇异矩阵,s是对角矩阵,v是右奇异矩阵,
他们之间的关系,就像你要把拉链拉开左右两半,左奇异矩阵就是左边的半条拉链,右奇异矩阵就是右边的那半条拉链,对角矩阵就是控制拉链上下的高度值,

如果我们取全部的高度值,代表把拉链拉上,合在一起了,就是原来的拉链,这时候信息没有衰减,

但是如果s的值只取出其中一半,代表拉链只拉到了原来的一半高度,这时候也是拉链,但是会造成信息的衰减。

后续把u和v乘在一起运算,里面还带有参数s的,也就是需要控制拉链到底拉多高,信息恢复成原来的多少。
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
AI人工智能算法工程师
  • 参与学习       484    人
  • 解答问题       142    个

从AI零基础入门,打通视觉,NLP,机器&深度学习,推荐搜索,AIGC,大模型 引领行业知识体系+工业级多领域综合项目+资深专业讲师团+全方位贴心服务 助力你快速成为新时代抢手人才,多领域灵活就业

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师