Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【第10章降维与度量学习】待推导或待解析公式征集+答疑专区 #69

Open
Sm1les opened this issue Jul 25, 2019 · 36 comments

Comments

@Sm1les
Copy link
Contributor

Sm1les commented Jul 25, 2019

在这里,你可以:
1.评论留下西瓜书第10章你觉得需要补充推导细节或者解析的公式编号,我们看到后会尽快进行补充;
2.评论留下你对南瓜书第10章里相关内容的疑问,我们看到后会尽快进行答疑。

@johnmaster
Copy link

公式(10.24)是怎么化简的?这块不明白。

@Sm1les
Copy link
Contributor Author

Sm1les commented Aug 28, 2019

@johnmaster 同学你好,公式10.24的推导已经补充上去了,请查阅 :)

@johnmaster
Copy link

@Sm1les 有一个问题,在公式(10.24)的推导过程中倒数第5行至倒数第6行过程中,矩阵Z是如何约掉的,这块不明白。

@Sm1les
Copy link
Contributor Author

Sm1les commented Aug 28, 2019

@johnmaster 同学你好,刚才补充的推导有误,现已更正,请查阅 :)

@johnmaster
Copy link

@Sm1les 十分感谢!^_^!

@johnmaster
Copy link

@Sm1les 请问公式(10.28)推导过程中倒数第三行是如何得来的,这块有些不明白,倒数第六行中的lambda撇,应为lambda吧。

@johnmaster
Copy link

@Sm1les 同学,我想问一下,在公式(10.14)推导过程中,Zi的转置与Zi的点积为什么可以转化为求迹的运算,就是倒数第四行至倒数第三行的转换是如何进行的。十分感谢!

@Ggmatch
Copy link
Contributor

Ggmatch commented Sep 2, 2019

@Sm1les 请问公式(10.28)推导过程中倒数第三行是如何得来的,这块有些不明白,倒数第六行中的lambda撇,应为lambda吧。

谢谢指出,这里写错了,应该是lambda的。

@johnmaster
Copy link

@Ggmatch 同学,十分感谢,能顺便帮我解答下上面的问题嘛?

@Ggmatch
Copy link
Contributor

Ggmatch commented Sep 5, 2019

@Ggmatch 同学,十分感谢,能顺便帮我解答下上面的问题嘛?

同学你好,你可以看下这篇博客https://blog.csdn.net/guoyunfei20/article/details/78292537,再去详细了解下矩阵的范数与迹运算。

@johnmaster
Copy link

@Ggmatch 好的,同学,十分感谢你!

@IntegerLuoHua
Copy link

公式(10.28)倒数第10行应该是同时左乘吧?另外下一行好像应该是I^{\mathrm{T}}\omega_i?
另外倒数第4行C^{-1}_{jk}的貌似也有点问题?

@Sm1les
Copy link
Contributor Author

Sm1les commented Oct 20, 2019

@IntegerLuoHua 同学你好,这两处确实是写错了,现已更正,感谢你的反馈 :)

@Michael-Chao
Copy link

不好意思又翻了前面的看懂了,打扰了,之前提的问题就删了

@ljp1997
Copy link

ljp1997 commented Nov 26, 2019

你好,请问(10-11)结果是怎么得到的呢

@zfhxi
Copy link

zfhxi commented Aug 11, 2020

公式(10-28)推到中,西瓜书中已知了C_jk是XtX矩阵的第j行k列,南瓜书中怎么得出XtX的逆矩阵的j行k列是C_jk的倒数的?

@Sm1les
Copy link
Contributor Author

Sm1les commented Aug 16, 2020

@zfhxi 同学你好,那个C_jk^{-1}里面的-1只是一个记号,并不表示就是倒数,为了沿用西瓜书式10-28的结果符号表示,我们采用了这个-1

@archwalker
Copy link
Member

你好,请问(10-11)结果是怎么得到的呢

你好,这部分推导已经补充上去了,请查阅

@HuangXuanlun
Copy link

HuangXuanlun commented Nov 15, 2020

你好,10.14中z=WTx,WTx是d维的向量,z是d'维的向量,这里为什么相等了?
同样的问题出现在西瓜书中+const那行的公式,zTWTx两者的维度都不一样,不是很懂这里怎么相乘

所以,我其实觉得书中的W=(w1,w2,...,wd)其实应该是W=(w1,w2,...,wd')才正确,那样整个推导就合理了。
是不是西瓜书那里印错了,我看10.13那里的W就是d',在10.14是d了

@archwalker
Copy link
Member

你好,10.14中z=WTx,WTx是d维的向量,z是d'维的向量,这里为什么相等了?
同样的问题出现在西瓜书中+const那行的公式,zTWTx两者的维度都不一样,不是很懂这里怎么相乘

所以,我其实觉得书中的W=(w1,w2,...,wd)其实应该是W=(w1,w2,...,wd')才正确,那样整个推导就合理了。
是不是西瓜书那里印错了,我看10.13那里的W就是d',在10.14是d了

z_i 是 d'维的列向量,WT是d'*d的矩阵,x_i是d维列向量,这个乘式的维度是正确的

@Tianchi1998
Copy link

你好,我觉得10.31里面的矩阵W和西瓜书内的矩阵W不是同样的矩阵,南瓜书内的W其实是西瓜书定义的W的转置,从而导致了最后南瓜书定义的矩阵M也和西瓜书定义的M不一样。

现在南瓜书定义的矩阵M和西瓜书定义的矩阵M是不一样的,我试了一下把南瓜书的矩阵M内的所有W换成W的转置,也就是保证了南瓜书内矩阵M和西瓜书内矩阵M是相同的矩阵,我就得出了和西瓜书相同的M。现在的南瓜书的推导因此好像在和西瓜书的对应上有点问题。

西瓜书定义的W是(W)ij = wij,也就是每行才是一个样本点的所有近邻点线性重构该样本点所需的所有权重,而不是每一列,所以南瓜书10.31推导的第一行直接取了Wi应该是错误的,实际应该取W的转置的第i列。

如果我说错了,非常抱歉!非常感谢你们的劳动!

@archwalker
Copy link
Member

你好,我觉得10.31里面的矩阵W和西瓜书内的矩阵W不是同样的矩阵,南瓜书内的W其实是西瓜书定义的W的转置,从而导致了最后南瓜书定义的矩阵M也和西瓜书定义的M不一样。

现在南瓜书定义的矩阵M和西瓜书定义的矩阵M是不一样的,我试了一下把南瓜书的矩阵M内的所有W换成W的转置,也就是保证了南瓜书内矩阵M和西瓜书内矩阵M是相同的矩阵,我就得出了和西瓜书相同的M。现在的南瓜书的推导因此好像在和西瓜书的对应上有点问题。

西瓜书定义的W是(W)ij = wij,也就是每行才是一个样本点的所有近邻点线性重构该样本点所需的所有权重,而不是每一列,所以南瓜书10.31推导的第一行直接取了Wi应该是错误的,实际应该取W的转置的第i列。

如果我说错了,非常抱歉!非常感谢你们的劳动!

你好,W^T 的第i列和W的第i行不是一样吗?

@Tianchi1998
Copy link

你好,我觉得10.31里面的矩阵W和西瓜书内的矩阵W不是同样的矩阵,南瓜书内的W其实是西瓜书定义的W的转置,从而导致了最后南瓜书定义的矩阵M也和西瓜书定义的M不一样。
现在南瓜书定义的矩阵M和西瓜书定义的矩阵M是不一样的,我试了一下把南瓜书的矩阵M内的所有W换成W的转置,也就是保证了南瓜书内矩阵M和西瓜书内矩阵M是相同的矩阵,我就得出了和西瓜书相同的M。现在的南瓜书的推导因此好像在和西瓜书的对应上有点问题。
西瓜书定义的W是(W)ij = wij,也就是每行才是一个样本点的所有近邻点线性重构该样本点所需的所有权重,而不是每一列,所以南瓜书10.31推导的第一行直接取了Wi应该是错误的,实际应该取W的转置的第i列。
如果我说错了,非常抱歉!非常感谢你们的劳动!

你好,W^T 的第i列和W的第i行不是一样吗?

你好,按照西瓜书的定义,矩阵Z的维度是d'*m,向量zi是d'*1,10.31推导的第一行用ZIi表示了zi,如果ZIi-ZWi是可以相减的话,则ZIi和ZWi维度应该一致,也就说明ZWi维度也是d'*1,又因为Z的维度为d'm,所以Wi的维度应该是m1,这样才能使ZWi的维度是d'*1。

W^T的第i列和W的第i行肯定是相等的,但是南瓜书这里想用Wi取的是一个维度为m*1的列,可事实上Wi这个符号在10.31推导这里使用的是有问题的。

如果我们把南瓜书里的Wi理解为是取的W的第i行,那么Wi的维度就应该是1*列数,而Z是d'*m,明显Z和Wi是无法相乘的。

如果我们把南瓜书里的Wi理解为是取的W的第i列,则由于西瓜书定义了(W)ij = wij,故W的第i行才是我们真正想要的,而不是Wi,这里Wi是对W取一列,这应该是没有意义的。

所以如果W是按照西瓜书内定义来的话,南瓜书内的Wi无论如何理解都有问题,与西瓜书内对于W的定义相违背。

@archwalker
Copy link
Member

你好,我觉得10.31里面的矩阵W和西瓜书内的矩阵W不是同样的矩阵,南瓜书内的W其实是西瓜书定义的W的转置,从而导致了最后南瓜书定义的矩阵M也和西瓜书定义的M不一样。
现在南瓜书定义的矩阵M和西瓜书定义的矩阵M是不一样的,我试了一下把南瓜书的矩阵M内的所有W换成W的转置,也就是保证了南瓜书内矩阵M和西瓜书内矩阵M是相同的矩阵,我就得出了和西瓜书相同的M。现在的南瓜书的推导因此好像在和西瓜书的对应上有点问题。
西瓜书定义的W是(W)ij = wij,也就是每行才是一个样本点的所有近邻点线性重构该样本点所需的所有权重,而不是每一列,所以南瓜书10.31推导的第一行直接取了Wi应该是错误的,实际应该取W的转置的第i列。
如果我说错了,非常抱歉!非常感谢你们的劳动!

你好,W^T 的第i列和W的第i行不是一样吗?

你好,按照西瓜书的定义,矩阵Z的维度是d'*m,向量zi是d'*1,10.31推导的第一行用ZIi表示了zi,如果ZIi-ZWi是可以相减的话,则ZIi和ZWi维度应该一致,也就说明ZWi维度也是d'*1,又因为Z的维度为d'_m,所以Wi的维度应该是m_1,这样才能使ZWi的维度是d'*1。

W^T的第i列和W的第i行肯定是相等的,但是南瓜书这里想用Wi取的是一个维度为m*1的列,可事实上Wi这个符号在10.31推导这里使用的是有问题的。

如果我们把南瓜书里的Wi理解为是取的W的第i行,那么Wi的维度就应该是1*列数,而Z是d'*m,明显Z和Wi是无法相乘的。

如果我们把南瓜书里的Wi理解为是取的W的第i列,则由于西瓜书定义了(W)ij = wij,故W的第i行才是我们真正想要的,而不是Wi,这里Wi是对W取一列,这应该是没有意义的。

所以如果W是按照西瓜书内定义来的话,南瓜书内的Wi无论如何理解都有问题,与西瓜书内对于W的定义相违背。

你好,看起来这里确有维度不一致的情况,近几天我会对第10章做一个整体的修订,如果你发现其他公式中也有类似的情况请反馈给我,谢谢!

@Shuxiang-Hu
Copy link

image
你好,请问10.14为什么中间这两项可以合并呢?

@archwalker
Copy link
Member

image 你好,请问10.14为什么中间这两项可以合并呢?

因为这两项的结果都是实数(可以按照z w x的维度验证)实数的转置等于其本身,因此可以合并

@liyipeng00
Copy link

liyipeng00 commented Oct 23, 2021

你好,10.14中z=WTx,WTx是d维的向量,z是d'维的向量,这里为什么相等了?
同样的问题出现在西瓜书中+const那行的公式,zTWTx两者的维度都不一样,不是很懂这里怎么相乘
所以,我其实觉得书中的W=(w1,w2,...,wd)其实应该是W=(w1,w2,...,wd')才正确,那样整个推导就合理了。
是不是西瓜书那里印错了,我看10.13那里的W就是d',在10.14是d了

z_i 是 d'维的列向量,WT是d'*d的矩阵,x_i是d维列向量,这个乘式的维度是正确的

请问下,对上面引述,如果看10.14下面这行,西瓜书对W的定义,W = (w1, w2, ... , wd),那么W的维度应该是(anydimension*d),WT为(d*anydimension),您说的WT是d'*d与这里就矛盾了。

@archwalker
Copy link
Member

你好,10.14中z=WTx,WTx是d维的向量,z是d'维的向量,这里为什么相等了?
同样的问题出现在西瓜书中+const那行的公式,zTWTx两者的维度都不一样,不是很懂这里怎么相乘
所以,我其实觉得书中的W=(w1,w2,...,wd)其实应该是W=(w1,w2,...,wd')才正确,那样整个推导就合理了。
是不是西瓜书那里印错了,我看10.13那里的W就是d',在10.14是d了

z_i 是 d'维的列向量,WT是d'*d的矩阵,x_i是d维列向量,这个乘式的维度是正确的

请问下,对上面引述,如果看10.14下面这行,西瓜书对W的定义,W = (w1, w2, ... , wd),那么W的维度应该是(anydimensiond),WT为(danydimension),您说的WT是d'*d与这里就矛盾了。

是的 10.13 和 10.14的W定义不一样,看起来10.13的定义更加符合文章推导 @HuangXuanlun @bird-two

@linwenyu1221
Copy link

(1 + P (c∗|x)) (1 P (c∗|x))
⩽ 2 × (1 P (c∗|x))最后一个式子因为 1 + P²(c∗|x) ⩽ 2。这里是不是有问题啊,不带平方吧?

@archwalker
Copy link
Member

(1 + P (c∗|x)) (1 P (c∗|x)) ⩽ 2 × (1 P (c∗|x))最后一个式子因为 1 + P²(c∗|x) ⩽ 2。这里是不是有问题啊,不带平方吧?

是的,已勘误,谢谢指正

@zhaoyifengf
Copy link

求解
image
时,约束实际分为两部分: 。在10.17中为什么只考虑呢?
image
而且即使只考虑对角线上元素为1的约束也得不到西瓜书上的解,最优解不是前最大的特征值对应的特征向量,而是最大的特征值对应的特征向量,得到的其实是一个秩1矩阵

@archwalker
Copy link
Member

求解 image 时,约束实际分为两部分: 。在10.17中为什么只考虑呢? image 而且即使只考虑对角线上元素为1的约束也得不到西瓜书上的解,最优解不是前最大的特征值对应的特征向量,而是最大的特征值对应的特征向量,得到的其实是一个秩1矩阵

南瓜书10.17解析中有对你疑问的回答,请把解析看完。从“显然,此式为矩阵特征值和特征向量的定义式..."开始,另外,关于这部分推导,b站视频可能更加容易懂,可以看下b站我们的视频教程。

@datawhalechina datawhalechina deleted a comment from Ggmatch Jan 10, 2022
@zhaoyifengf
Copy link

这个解析我已经看过了,中间有很多地方都不合理

@zhaoyifengf
Copy link

求解
image
的约束问题除了对角线上元素为1的约束只外还有非对角线上约束为0 的约束,拉格朗日对偶函数应该是原目标函数减去每个约束与其拉格朗日乘子的乘积。在南瓜书中却只考虑了部分约束:
image
而且,像李航的《统计学习》PCA都是使用一种类似于贪心的算法求解的。先找一个使得样本尽可能分散的投影方向,再找第二个投影方向与第一个投影方向垂直并且使得样本尽可能分散...

@zceolrj
Copy link

zceolrj commented Mar 3, 2024

公式10.31的约数条件 $ZZ^T = I$ 是怎么得到的

@datawhalechina datawhalechina deleted a comment from bghfcd19900 Mar 4, 2024
@datawhalechina datawhalechina deleted a comment from mrxiaojie Mar 4, 2024
@datawhalechina datawhalechina deleted a comment from Ggmatch Mar 4, 2024
@archwalker
Copy link
Member

公式10.31的约数条件 ZZT=I 是怎么得到的

你好,这个约束条件的作用是防止Z出现平凡解0。加上这个约束之后,相当于要求降维后样本各维度特征之间正交。符合降维的物理含义。

@datawhalechina datawhalechina deleted a comment from mrxiaojie Mar 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests