多项式的矩阵化?

来源:2-5 实战分类模型之数据归一化

慕神4535282

2021-04-16

老师,下午好!
请教一个问题?这个问题文章我反复看了4,5天了,在最后的这一部分怎么都算不出来,具体链接在此:
https://www.jianshu.com/p/c7e642877b0e

具体不明白的是下面这段文字:
图片描述

麻烦老师具体写一下 “代价函数转化为矩阵向量相乘” 的过程,
图片描述

麻烦老师了,非常感谢!!!

写回答

3回答

正十七

2021-05-05

同学你好,这里的矩阵化具体是这样的:

原来h(x) = theata0 + theata1 * x1, 

甚至可以泛化一下:

h(x) = theata0 + theata1 * x1 + theata2 * x2 + ... + theatak * xk

然后将其向量化,令x = [1, x1, x2, x3, ..., xk], theata = [theata0, theata1, ..., theatak], 所以:

h(x) = x * theata.

这样h就表达成了两个向量的乘积。以下为了渐变,假设x和theata的长度都是n。

然后,我有m个样本,所以输入是m个长度为n的向量,也就是mxn的一个矩阵,设为X。此时我可以通过矩阵乘以一个向量来一下子计算m个样本的输出,即h(X) = X * theata. X的shape是mxn, theata的shape是nx1, (注意,原来theata是一个长度为n的向量,这里为了计算矩阵乘机,我给它加了一维)。根据矩阵乘法,h(X)的输出是一个mx1的矩阵。

目标值Y,原来也是长度为m的向量(即m个样本的目标值),为了矩阵运算,也给它加一维,变成mx1的矩阵。然后h(X) - Y就是mx1的矩阵。

在你给的那篇文章中,想要的h(X)-Y中的每个值的平方的和的均值。所以在这里,用到一个常用技巧,就是(h(X) - Y)^T * (h(X) - T). 前面的部分是 1xm的矩阵, 后面的部分是mx1 的矩阵,根据矩阵乘法,得到的就是1x1的矩阵,就是平方和。

0
1
慕神4535282
非常感谢!
2021-05-06
共1条回复

慕神4535282

提问者

2021-04-20

这是我自己研究出来的结果,不想是否正确,烦请老师指教,图中的 x, y, 和 //img.mukewang.com/szimg/607e953009ceb8cb00320050.jpg,的矩阵对吗?

//img.mukewang.com/szimg/607e94a809e848fe06620342.jpg

谢谢老师指导

0
0

正十七

2021-04-19

同学你好,发现你问的问题很多都是外面的网址里的,请尽量问我们课程上的内容哈。

0
1
慕神4535282
我也不想的呀,关键是这门课没有讲到背后的原理,我一开始学习这门课真是一头雾水。知其然而不知其所以然,知其然而不知其所以然,知其然而不知其所以然。 我也想快点学习后面的课程,但是这样子根基不牢固。 而且,在售前我也详细问了你 “我有C++基础,问是否可以学习本门课程的”,在得到了你的肯定答复后我才报名本课的。当然,我自己也有责任,我本人不适合走这种学习路线。我个人适合先学习背后的原理,再适合这个原理进行编写程序 这样的学习路线。 我估计老师你很忙,如果你不愿意解答整个过程,那你可以回答一下上面的回答吗?直接说x, y , sita的分值是多少即可,谢谢!我是实在花了很多时间也解不出来才找的你。
2021-04-20
共1条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程