日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

tf 如何进行svd_Tensorflow快餐教程(6) - 矩阵分解

發(fā)布時(shí)間:2023/12/1 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tf 如何进行svd_Tensorflow快餐教程(6) - 矩阵分解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

摘要: 特征分解,奇異值分解,Moore-Penrose廣義逆

矩陣分解

特征向量和特征值

我們?cè)凇毒€性代數(shù)》課學(xué)過(guò)方陣的特征向量和特征值。

定義:設(shè)A∈Fn×n是n階方陣。如果存在非零向量X∈Fn×1使AX=λX對(duì)某個(gè)常數(shù)λ∈F成立,則稱λ是A的特征值(eigenvalue),X是屬于特征值λ的特征向量。

設(shè)σ是數(shù)域F上向量空間V上的線性變換,如果某個(gè)非零向量u∈V被σ映射到自己的常數(shù)倍σ(u)=λu,則稱常數(shù)λ∈F是σ的特征值,向量u是屬于特征值λ的特征向量。

又找λ又找A確實(shí)不是一件容易事。好在,我們可以把這事兒交給Tensorflow去解決。我們可以用tf.self_adjoint_eigvals來(lái)求特征值,相當(dāng)于MATLAB的eig函數(shù),只不過(guò)名字長(zhǎng)了點(diǎn)。

例:

>>> A1 = tf.constant([[3,2,1],[0,-1,-2],[0,0,3]],dtype=tf.float64)

>>> sess.run(A1)

array([[ 3., 2., 1.],

[ 0., -1., -2.],

[ 0., 0., 3.]])

>>> sess.run(tf.self_adjoint_eigvals(A1))

array([-1., 3., 3.])

附:MATLAB例:

> A1 = [3,2,1;0,-1,-2;0,0,3]

A1 =

3 2 1

0 -1 -2

0 0 3

> eig(A1)

ans =

3

-1

3

也就是說(shuō),A1矩陣有3個(gè)特征值-1,3,3。

特征分解

我們把用self_adjoint_eigvals求出來(lái)的向量轉(zhuǎn)換成對(duì)角矩陣:

>>> sess.run(tf.diag(tf.self_adjoint_eigvals(A1)))

array([[-1., 0., 0.],

[ 0., 3., 0.],

[ 0., 0., 3.]])

同樣,我們把每個(gè)特征向量組成一個(gè)矩陣,假設(shè)為V.

這樣,我們可以得到一個(gè)公式:A=Vdiag(λ)V?1

按照上面公式方法對(duì)矩陣A所做的操作叫做A的特征分解(eigen decomposition)

不是每一個(gè)矩陣都可以分解成特征值和特征向量。在某些情況下,特征分解存在,但是值是復(fù)數(shù)而不是實(shí)數(shù)。幸運(yùn)的是,機(jī)器學(xué)習(xí)中遇到的方陣基本都可以分解成A=QΛQT,其中Q是特征向量構(gòu)成的正交矩陣,Λ是對(duì)角矩陣。

奇異值分解

對(duì)于多數(shù)方陣,我們可以進(jìn)行特征值分解。如果對(duì)于非方陣該怎么辦呢?答案是我們有類似的奇異向量(Singular vector)和奇異值(singular value). 通過(guò)奇異向量和奇異值,我們可以把非方陣進(jìn)行奇異值分解(singular value decomposition),簡(jiǎn)稱svd.

SVD將矩陣分解為三個(gè)矩陣的乘積:A=UDVT。其中,U和V都定義為正交矩陣。D是對(duì)角矩陣,雖然不一定是方陣。

如果A是一個(gè)mn的矩陣,那么U是一個(gè)mm的矩陣,V是一個(gè)nn的矩陣,D與A一樣是mn的矩陣。

我們可以通過(guò)tf.svd函數(shù)來(lái)做奇異值分解,例:

>>> As =tf.constant( [[1,2,3],[4,5,6]], dtype=tf.float64)

>>> sess.run(As)

array([[1., 2., 3.],

[4., 5., 6.]])

>>> sess.run(tf.svd(As, full_matrices=True))

(array([9.508032 , 0.77286964]), array([[-0.3863177 , -0.92236578],

[-0.92236578, 0.3863177 ]]), array([[-0.42866713, 0.80596391, 0.40824829],

[-0.56630692, 0.11238241, -0.81649658],

[-0.7039467 , -0.58119908, 0.40824829]]))

As矩陣是23的矩陣。所以U是22的,而V是3*3的。第1個(gè)值是奇異值,[9.508032 , 0.77286964],它是D的對(duì)角線上值,其它位置為0.

D的完整值為:

array([[9.508032 , 0. , 0. ],

[0. , 0.77286964, 0. ]])

三個(gè)矩陣的完整值為:

#U

array([[-0.3863177 , -0.92236578],

[-0.92236578, 0.3863177 ]])

#D

array([[9.508032 , 0. , 0. ],

[0. , 0.77286964, 0. ]])

#V

array([[-0.42866713, 0.80596391, 0.40824829],

[-0.56630692, 0.11238241, -0.81649658],

[-0.7039467 , -0.58119908, 0.40824829]])

我們來(lái)驗(yàn)算一下這個(gè)奇異值分解是不是正確的,別忘了V是要轉(zhuǎn)置的:

>>> sess.run(U @ D @ tf.transpose(V))

array([[0.99999997, 1.99999999, 2.99999997],

[3.99999997, 5.00000001, 5.99999996]])

雖然是有點(diǎn)浮點(diǎn)計(jì)算誤差,但是結(jié)果還確實(shí)是我們分解前的那個(gè)。關(guān)于計(jì)算誤差的問(wèn)題,在機(jī)器學(xué)習(xí)中也自然是重要問(wèn)題,后面會(huì)討論。

Moore-Penrose廣義逆

鋪墊了這么多,其實(shí)我們是在為解線性方程組奮斗。我們?cè)诘谝还?jié)Tensorflow的線性回歸例子,還有神經(jīng)網(wǎng)絡(luò)的例子都看到,求解線性方程組是重要的運(yùn)算。

形如Ax=b的線性方程組,如果A有逆矩陣就好辦了,兩邊分別右乘A逆就可以解出方程組。

但是問(wèn)題是,機(jī)器學(xué)習(xí)中有很多方程是欠定的(underdetermined)。

這時(shí)候我們就需要一種類似于逆矩陣的工具 - Moore-Penrose廣義逆(pseudoinverse)。

Moore-Penrose廣義逆定義如下:

A+=limα→0(ATA+αI)?1AT

這個(gè)定義在計(jì)算時(shí)是沒(méi)法使用的,我們使用另一個(gè)公式來(lái)算

A+=VD+UT

這個(gè)公式一看太熟悉了,就是剛才我們學(xué)習(xí)的奇異值分解嘛。

其中D+,D的廣義逆的計(jì)算方法是所有非0值取倒數(shù),然后矩陣轉(zhuǎn)置。

對(duì)于一個(gè)AX=B方程組的最小二乘法解,一般來(lái)講不是唯一的。通常把它們中2-范數(shù)最小的一個(gè)稱為極小最小二乘解,也叫最佳逼近解。

可以證明,AX=B必有唯一的極小最小二乘解,這個(gè)解就是X=A+B

廣義逆簡(jiǎn)史

首先復(fù)習(xí)一下逆陣的概念,如果一個(gè)矩陣有逆陣,條件為:

必須是方陣

行列式不能為0

美國(guó)數(shù)學(xué)家Moore于1920年逆矩陣的概念推廣到任意矩陣上,使用的方法是正交投影算子來(lái)定義的。

1955年,英國(guó)數(shù)學(xué)家Penrose用下面的方程組來(lái)定義廣義逆:

AGA=A,GAG=G,(AG)H=AG(GA)H=GA

其中,H這個(gè)符號(hào)代表矩陣共軛的轉(zhuǎn)置,對(duì)于實(shí)數(shù)就相當(dāng)于T。

不久之后,瑞典大地測(cè)量學(xué)家Arne Bjerhammer證明了Moore廣義逆與Penrose廣義逆的等價(jià)性。所以把它定義為Moore-Penrose廣義逆。除了A+之外,還有A?廣義逆等。

作者:lusing

本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的tf 如何进行svd_Tensorflow快餐教程(6) - 矩阵分解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 九九碰 | 超碰97干 | 69精品在线观看 | 国产一区二区网址 | av在线中文 | 老色驴综合网 | 外国av网站 | 888奇米影视 | 国产主播福利 | 精品人妻一区二区三区在线视频 | 亚洲在线视频免费观看 | 成年人黄色片 | 无码一区二区三区视频 | av天天在线| 中文字幕在线观看高清 | 啊av在线 | 日本精品视频一区 | 国产7777777| 性三级视频 | 蜜芽一区二区 | 青春草在线视频观看 | 99这里有精品视频 | 国产日韩精品在线 | 一区二区三区免费高清视频 | 免费看毛片的网站 | 香蕉久久久久久久av网站 | 一级大片网站 | 久久久久人妻精品一区二区三区 | 日韩福利社 | 中文字幕永久在线播放 | 色播久久 | 午夜丁香婷婷 | 成人黄色一区二区三区 | aaa日韩 | 一级免费片 | 台湾三级伦理片 | 精品一区av | 国产97色在线 | 九色国产在线 | 国产成人a亚洲精v品无码 | 在线观看av一区二区 | 女人扒开腿免费视频app | 亚洲视频一二三四 | 色99999| 青春草在线视频免费观看 | 日韩免费观看一区二区 | 毛片在线视频播放 | 天天操天天干天天爱 | 一区二区三区四区影院 | 人人爽人人射 | 先锋资源中文字幕 | 亚洲第九页| 欧美 日韩 国产在线 | 亚洲情se | 毛茸茸多毛bbb毛多视频 | 国产伦精品一区 | 成人激情五月天 | 久久精品噜噜噜成人88aⅴ | 天天干天天操天天爽 | 97在线免费观看 | 亚洲字幕| 在线免费观看黄网站 | 国产三级网 | 久草资源网 | 久久久久久久综合 | 久久人妻精品白浆国产 | 少妇精品高潮欲妇又嫩中文字幕 | 精品人妻午夜一区二区三区四区 | 在线成人日韩 | 亚洲精品丝袜 | 欧洲视频一区 | 国产原创麻豆 | 欧美67194| 亚洲一区二区网站 | 亚洲一区播放 | 粉嫩av一区二区三区四区五区 | 中文字幕在线影院 | 欧美视频精品 | 911亚洲精选 | 香蕉狠狠爱视频 | 伊人网址 | 白丝美女被草 | 懂色av一区二区三区四区五区 | 成人在线免费视频观看 | 久久综合亚洲精品 | 中文字幕av网 | 婷婷亚洲综合五月天小说 | 永久免费未满蜜桃 | 亚洲av毛片 | 成人av在线网 | 草啪啪 | 日韩高清在线观看一区 | 91性| 国产精品久久久久久妇女6080 | 亚洲精品视频播放 | 性囗交免费视频观看 | 2021av| 国产一级精品视频 | 2024av视频|