版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.機(jī)器學(xué)習(xí)中的數(shù)學(xué) 5 強(qiáng)大的矩陣奇異值分解 SVD機(jī)器學(xué)習(xí)中的數(shù)學(xué)(5)-強(qiáng)大的矩陣奇異值分解(SVD)及其應(yīng)用版權(quán)聲明:本文由LeftNotEasy發(fā)布于本文可以被全部的轉(zhuǎn)載或者部分使用,但請(qǐng)注明出處,如果有問題,請(qǐng)聯(lián)系wheeleast前言:上一次寫了關(guān)于PCA與LDA的文章,PCA的實(shí)現(xiàn)一般有兩種,一種是用特征值分解去實(shí)現(xiàn)的,一種是用奇異值分解去實(shí)現(xiàn)的。在上篇文章中便是基于特征值分解的一種解釋。特征值和奇異值在大部分人的印象中,往往是停留在純粹的數(shù)學(xué)計(jì)算中。而且線性代數(shù)或者矩陣論里面,也很少講任何跟特征值與奇異值有關(guān)的應(yīng)用背景。奇異值分解是一個(gè)有著很明顯的物理意義的一種方法,它可以將一
2、個(gè)比較復(fù)雜的矩陣用更小更簡單的幾個(gè)子矩陣的相乘來表示,這些小矩陣描述的是矩陣的重要的特性。就像是描述一個(gè)人一樣,給別人描述說這個(gè)人長得濃眉大眼,方臉,絡(luò)腮胡,而且?guī)€(gè)黑框的眼鏡,這樣寥寥的幾個(gè)特征,就讓別人腦海里面就有一個(gè)較為清楚的認(rèn)識(shí),實(shí)際上,人臉上的特征是有著無數(shù)種的,之所以能這么描述,是因?yàn)槿颂焐陀兄浅:玫某槿≈匾卣鞯哪芰Γ寵C(jī)器學(xué)會(huì)抽取重要的特征,SVD是一個(gè)重要的方法。在機(jī)器學(xué)習(xí)領(lǐng)域,有相當(dāng)多的應(yīng)用與奇異值都可以扯上關(guān)系,比如做feature reduction的PCA,做數(shù)據(jù)壓縮(以圖像壓縮為代表)的算法,還有做搜索引擎語義層次檢索的LSI(Latent Semantic I
3、ndexing)另外在這里抱怨一下,之前在百度里面搜索過SVD,出來的結(jié)果都是俄羅斯的一種狙擊槍(AK47同時(shí)代的),是因?yàn)榇┰交鹁€這個(gè)游戲里面有一把狙擊槍叫做SVD,而在Google上面搜索的時(shí)候,出來的都是奇異值分解(英文資料為主)。想玩玩戰(zhàn)爭游戲,玩玩COD不是非常好嗎,玩山寨的CS有神馬意思啊。國內(nèi)的網(wǎng)頁中的話語權(quán)也被這些沒有太多營養(yǎng)的帖子所占據(jù)。真心希望國內(nèi)的氣氛能夠更濃一點(diǎn),搞游戲的人真正是喜歡制作游戲,搞Data Mining的人是真正喜歡挖數(shù)據(jù)的,都不是僅僅為了混口飯吃,這樣談超越別人才有意義,中文文章中,能踏踏實(shí)實(shí)談?wù)劶夹g(shù)的太少了,改變這個(gè)狀況,從我自己做起吧。前面說了這么多
4、,本文主要關(guān)注奇異值的一些特性,另外還會(huì)稍稍提及奇異值的計(jì)算,不過本文不準(zhǔn)備在如何計(jì)算奇異值上展開太多。另外,本文里面有部分不算太深的線性代數(shù)的知識(shí),如果完全忘記了線性代數(shù),看本文可能會(huì)有些困難。一、奇異值與特征值基礎(chǔ)知識(shí):特征值分解和奇異值分解在機(jī)器學(xué)習(xí)領(lǐng)域都是屬于滿地可見的方法。兩者有著很緊密的關(guān)系,我在接下來會(huì)談到,特征值分解和奇異值分解的目的都是一樣,就是提取出一個(gè)矩陣最重要的特征。先談?wù)勌卣髦捣纸獍桑?)特征值:如果說一個(gè)向量v是方陣A的特征向量,將一定可以表示成下面的形式:這時(shí)候就被稱為特征向量v對(duì)應(yīng)的特征值,一個(gè)矩陣的一組特征向量是一組正交向量。特征值分解是將一個(gè)矩陣分解成下面的
5、形式:其中Q是這個(gè)矩陣A的特征向量組成的矩陣,是一個(gè)對(duì)角陣,每一個(gè)對(duì)角線上的元素就是一個(gè)特征值。我這里引用了一些參考文獻(xiàn)中的內(nèi)容來說明一下。首先,要明確的是,一個(gè)矩陣其實(shí)就是一個(gè)線性變換,因?yàn)橐粋€(gè)矩陣乘以一個(gè)向量后得到的向量,其實(shí)就相當(dāng)于將這個(gè)向量進(jìn)行了線性變換。比如說下面的一個(gè)矩陣:它其實(shí)對(duì)應(yīng)的線性變換是下面的形式:因?yàn)檫@個(gè)矩陣M乘以一個(gè)向量(x,y)的結(jié)果是:上面的矩陣是對(duì)稱的,所以這個(gè)變換是一個(gè)對(duì)x,y軸的方向一個(gè)拉伸變換(每一個(gè)對(duì)角線上的元素將會(huì)對(duì)一個(gè)維度進(jìn)行拉伸變換,當(dāng)值1時(shí),是拉長,當(dāng)值1時(shí)時(shí)縮短),當(dāng)矩陣不是對(duì)稱的時(shí)候,假如說矩陣是下面的樣子:它所描述的變換是下面的樣子:這其實(shí)是
6、在平面上對(duì)一個(gè)軸進(jìn)行的拉伸變換(如藍(lán)色的箭頭所示),在圖中,藍(lán)色的箭頭是一個(gè)最主要的變化方向(變化方向可能有不止一個(gè)),如果我們想要描述好一個(gè)變換,那我們就描述好這個(gè)變換主要的變化方向就好了。反過頭來看看之前特征值分解的式子,分解得到的矩陣是一個(gè)對(duì)角陣,里面的特征值是由大到小排列的,這些特征值所對(duì)應(yīng)的特征向量就是描述這個(gè)矩陣變化方向(從主要的變化到次要的變化排列)當(dāng)矩陣是高維的情況下,那么這個(gè)矩陣就是高維空間下的一個(gè)線性變換,這個(gè)線性變化可能沒法通過圖片來表示,但是可以想象,這個(gè)變換也同樣有很多的變換方向,我們通過特征值分解得到的前N個(gè)特征向量,那么就對(duì)應(yīng)了這個(gè)矩陣最主要的N個(gè)變化方向。我們利
7、用這前N個(gè)變化方向,就可以近似這個(gè)矩陣(變換)。也就是之前說的:提取這個(gè)矩陣最重要的特征。總結(jié)一下,特征值分解可以得到特征值與特征向量,特征值表示的是這個(gè)特征到底有多重要,而特征向量表示這個(gè)特征是什么,可以將每一個(gè)特征向量理解為一個(gè)線性的子空間,我們可以利用這些線性的子空間干很多的事情。不過,特征值分解也有很多的局限,比如說變換的矩陣必須是方陣。(說了這么多特征值變換,不知道有沒有說清楚,請(qǐng)各位多提提意見。)2)奇異值:下面談?wù)勂娈愔捣纸?。特征值分解是一個(gè)提取矩陣特征很不錯(cuò)的方法,但是它只是對(duì)方陣而言的,在現(xiàn)實(shí)的世界中,我們看到的大部分矩陣都不是方陣,比如說有N個(gè)學(xué)生,每個(gè)學(xué)生有M科成績,這樣
8、形成的一個(gè)N*M的矩陣就不可能是方陣,我們?cè)鯓硬拍苊枋鲞@樣普通的矩陣呢的重要特征呢?奇異值分解可以用來干這個(gè)事情,奇異值分解是一個(gè)能適用于任意的矩陣的一種分解的方法:假設(shè)A是一個(gè)N*M的矩陣,那么得到的U是一個(gè)N*N的方陣(里面的向量是正交的,U里面的向量稱為左奇異向量),是一個(gè)N*M的矩陣(除了對(duì)角線的元素都是0,對(duì)角線上的元素稱為奇異值),V'(V的轉(zhuǎn)置)是一個(gè)N*N的矩陣,里面的向量也是正交的,V里面的向量稱為右奇異向量),從圖片來反映幾個(gè)相乘的矩陣的大小可得下面的圖片那么奇異值和特征值是怎么對(duì)應(yīng)起來的呢?首先,我們將一個(gè)矩陣A的轉(zhuǎn)置*A,將會(huì)得到一個(gè)方陣,我們用這個(gè)方陣求特征值
9、可以得到:這里得到的v,就是我們上面的右奇異向量。此外我們還可以得到:這里的就是上面說的奇異值,u就是上面說的左奇異向量。奇異值跟特征值類似,在矩陣中也是從大到小排列,而且的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上了。也就是說,我們也可以用前r大的奇異值來近似描述矩陣,這里定義一下部分奇異值分解:r是一個(gè)遠(yuǎn)小于m、n的數(shù),這樣矩陣的乘法看起來像是下面的樣子:右邊的三個(gè)矩陣相乘的結(jié)果將會(huì)是一個(gè)接近于A的矩陣,在這兒,r越接近于n,則相乘的結(jié)果越接近于A。而這三個(gè)矩陣的面積之和(在存儲(chǔ)觀點(diǎn)來說,矩陣面積越小,存儲(chǔ)量就越小)要遠(yuǎn)遠(yuǎn)小于原始的矩陣A,我
10、們?nèi)绻胍獕嚎s空間來表示原矩陣A,我們存下這里的三個(gè)矩陣:U、V就好了。二、奇異值的計(jì)算:奇異值的計(jì)算是一個(gè)難題,是一個(gè)O(N3)的算法。在單機(jī)的情況下當(dāng)然是沒問題的,matlab在一秒鐘內(nèi)就可以算出1000*1000的矩陣的所有奇異值,但是當(dāng)矩陣的規(guī)模增長的時(shí)候,計(jì)算的復(fù)雜度呈3次方增長,就需要并行計(jì)算參與了。Google的吳軍老師在數(shù)學(xué)之美系列談到SVD的時(shí)候,說起Google實(shí)現(xiàn)了SVD的并行化算法,說這是對(duì)人類的一個(gè)貢獻(xiàn),但是也沒有給出具體的計(jì)算規(guī)模,也沒有給出太多有價(jià)值的信息。其實(shí)SVD還是可以用并行的方式去實(shí)現(xiàn)的,在解大規(guī)模的矩陣的時(shí)候,一般使用迭代的方法,當(dāng)矩陣的規(guī)模很大(比如說
11、上億)的時(shí)候,迭代的次數(shù)也可能會(huì)上億次,如果使用Map-Reduce框架去解,則每次Map-Reduce完成的時(shí)候,都會(huì)涉及到寫文件、讀文件的操作。個(gè)人猜測Google云計(jì)算體系中除了Map-Reduce以外應(yīng)該還有類似于MPI的計(jì)算模型,也就是節(jié)點(diǎn)之間是保持通信,數(shù)據(jù)是常駐在內(nèi)存中的,這種計(jì)算模型比Map-Reduce在解決迭代次數(shù)非常多的時(shí)候,要快了很多倍。Lanczos迭代就是一種解對(duì)稱方陣部分特征值的方法(之前談到了,解A'*A得到的對(duì)稱方陣的特征值就是解A的右奇異向量),是將一個(gè)對(duì)稱的方程化為一個(gè)三對(duì)角矩陣再進(jìn)行求解。按網(wǎng)上的一些文獻(xiàn)來看,Google應(yīng)該是用這種方法去做的奇
12、異值分解的。請(qǐng)見Wikipedia上面的一些引用的論文,如果理解了那些論文,也"幾乎"可以做出一個(gè)SVD了。由于奇異值的計(jì)算是一個(gè)很枯燥,純數(shù)學(xué)的過程,而且前人的研究成果(論文中)幾乎已經(jīng)把整個(gè)程序的流程圖給出來了。更多的關(guān)于奇異值計(jì)算的部分,將在后面的參考文獻(xiàn)中給出,這里不再深入,我還是focus在奇異值的應(yīng)用中去。三、奇異值與主成分分析(PCA):主成分分析在上一節(jié)里面也講了一些,這里主要談?wù)勅绾斡肧VD去解PCA的問題。PCA的問題其實(shí)是一個(gè)基的變換,使得變換后的數(shù)據(jù)有著最大的方差。方差的大小描述的是一個(gè)變量的信息量,我們?cè)谥v一個(gè)東西的穩(wěn)定性的時(shí)候,往往說要減小方差,
13、如果一個(gè)模型的方差很大,那就說明模型不穩(wěn)定了。但是對(duì)于我們用于機(jī)器學(xué)習(xí)的數(shù)據(jù)(主要是訓(xùn)練數(shù)據(jù)),方差大才有意義,不然輸入的數(shù)據(jù)都是同一個(gè)點(diǎn),那方差就為0了,這樣輸入的多個(gè)數(shù)據(jù)就等同于一個(gè)數(shù)據(jù)了。以下面這張圖為例子:這個(gè)假設(shè)是一個(gè)攝像機(jī)采集一個(gè)物體運(yùn)動(dòng)得到的圖片,上面的點(diǎn)表示物體運(yùn)動(dòng)的位置,假如我們想要用一條直線去擬合這些點(diǎn),那我們會(huì)選擇什么方向的線呢?當(dāng)然是圖上標(biāo)有signal的那條線。如果我們把這些點(diǎn)單純的投影到x軸或者y軸上,最后在x軸與y軸上得到的方差是相似的(因?yàn)檫@些點(diǎn)的趨勢是在45度左右的方向,所以投影到x軸或者y軸上都是類似的),如果我們使用原來的xy坐標(biāo)系去看這些點(diǎn),容易看不出來
14、這些點(diǎn)真正的方向是什么。但是如果我們進(jìn)行坐標(biāo)系的變化,橫軸變成了signal的方向,縱軸變成了noise的方向,則就很容易發(fā)現(xiàn)什么方向的方差大,什么方向的方差小了。一般來說,方差大的方向是信號(hào)的方向,方差小的方向是噪聲的方向,我們?cè)跀?shù)據(jù)挖掘中或者數(shù)字信號(hào)處理中,往往要提高信號(hào)與噪聲的比例,也就是信噪比。對(duì)上圖來說,如果我們只保留signal方向的數(shù)據(jù),也可以對(duì)原數(shù)據(jù)進(jìn)行不錯(cuò)的近似了。PCA的全部工作簡單點(diǎn)說,就是對(duì)原始的空間中順序地找一組相互正交的坐標(biāo)軸,第一個(gè)軸是使得方差最大的,第二個(gè)軸是在與第一個(gè)軸正交的平面中使得方差最大的,第三個(gè)軸是在與第1、2個(gè)軸正交的平面中方差最大的,這樣假設(shè)在N維
15、空間中,我們可以找到N個(gè)這樣的坐標(biāo)軸,我們?nèi)∏皉個(gè)去近似這個(gè)空間,這樣就從一個(gè)N維的空間壓縮到r維的空間了,但是我們選擇的r個(gè)坐標(biāo)軸能夠使得空間的壓縮使得數(shù)據(jù)的損失最小。還是假設(shè)我們矩陣每一行表示一個(gè)樣本,每一列表示一個(gè)feature,用矩陣的語言來表示,將一個(gè)m*n的矩陣A的進(jìn)行坐標(biāo)軸的變化,P就是一個(gè)變換的矩陣從一個(gè)N維的空間變換到另一個(gè)N維的空間,在空間中就會(huì)進(jìn)行一些類似于旋轉(zhuǎn)、拉伸的變化。而將一個(gè)m*n的矩陣A變換成一個(gè)m*r的矩陣,這樣就會(huì)使得本來有n個(gè)feature的,變成了有r個(gè)feature了(r n),這r個(gè)其實(shí)就是對(duì)n個(gè)feature的一種提煉,我們就把這個(gè)稱為featur
16、e的壓縮。用數(shù)學(xué)語言表示就是:但是這個(gè)怎么和SVD扯上關(guān)系呢?之前談到,SVD得出的奇異向量也是從奇異值由大到小排列的,按PCA的觀點(diǎn)來看,就是方差最大的坐標(biāo)軸就是第一個(gè)奇異向量,方差次大的坐標(biāo)軸就是第二個(gè)奇異向量我們回憶一下之前得到的SVD式子:在矩陣的兩邊同時(shí)乘上一個(gè)矩陣V,由于V是一個(gè)正交的矩陣,所以V轉(zhuǎn)置乘以V得到單位陣I,所以可以化成后面的式子將后面的式子與A*P那個(gè)m*n的矩陣變換為m*r的矩陣的式子對(duì)照看看,在這里,其實(shí)V就是P,也就是一個(gè)變化的向量。這里是將一個(gè)m*n的矩陣壓縮到一個(gè)m*r的矩陣,也就是對(duì)列進(jìn)行壓縮,如果我們想對(duì)行進(jìn)行壓縮(在PCA的觀點(diǎn)下,對(duì)行進(jìn)行壓縮可以理解
17、為,將一些相似的sample合并在一起,或者將一些沒有太大價(jià)值的sample去掉)怎么辦呢?同樣我們寫出一個(gè)通用的行壓縮例子:這樣就從一個(gè)m行的矩陣壓縮到一個(gè)r行的矩陣了,對(duì)SVD來說也是一樣的,我們對(duì)SVD分解的式子兩邊乘以U的轉(zhuǎn)置U'這樣我們就得到了對(duì)行進(jìn)行壓縮的式子??梢钥闯?,其實(shí)PCA幾乎可以說是對(duì)SVD的一個(gè)包裝,如果我們實(shí)現(xiàn)了SVD,那也就實(shí)現(xiàn)了PCA了,而且更好的地方是,有了SVD,我們就可以得到兩個(gè)方向的PCA,如果我們對(duì)A'A進(jìn)行特征值的分解,只能得到一個(gè)方向的PCA。四、奇異值與潛在語義索引LSI:潛在語義索引(Latent Semantic Indexin
18、g)與PCA不太一樣,至少不是實(shí)現(xiàn)了SVD就可以直接用的,不過LSI也是一個(gè)嚴(yán)重依賴于SVD的算法,之前吳軍老師在矩陣計(jì)算與文本處理中的分類問題中談到:"三個(gè)矩陣有非常清楚的物理含義。第一個(gè)矩陣X中的每一行表示意思相關(guān)的一類詞,其中的每個(gè)非零元素表示這類詞中每個(gè)詞的重要性(或者說相關(guān)性),數(shù)值越大越相關(guān)。最后一個(gè)矩陣Y中的每一列表示同一主題一類文章,其中每個(gè)元素表示這類文章中每篇文章的相關(guān)性。中間的矩陣則表示類詞和文章雷之間的相關(guān)性。因此,我們只要對(duì)關(guān)聯(lián)矩陣A進(jìn)行一次奇異值分解,w我們就可以同時(shí)完成了近義詞分類和文章的分類。(同時(shí)得到每類文章和每類詞的相關(guān)性)。"上面這段話
19、可能不太容易理解,不過這就是LSI的精髓內(nèi)容,我下面舉一個(gè)例子來說明一下,下面的例子來自LSA tutorial,具體的網(wǎng)址我將在最后的引用中給出:這就是一個(gè)矩陣,不過不太一樣的是,這里的一行表示一個(gè)詞在哪些title中出現(xiàn)了(一行就是之前說的一維feature),一列表示一個(gè)title中有哪些詞,(這個(gè)矩陣其實(shí)是我們之前說的那種一行是一個(gè)sample的形式的一種轉(zhuǎn)置,這個(gè)會(huì)使得我們的左右奇異向量的意義產(chǎn)生變化,但是不會(huì)影響我們計(jì)算的過程)。比如說T1這個(gè)title中就有g(shù)uide、investing、market、stock四個(gè)詞,各出現(xiàn)了一次,我們將這個(gè)矩陣進(jìn)行SVD,得到下面的矩陣:左奇
20、異向量表示詞的一些特性,右奇異向量表示文檔的一些特性,中間的奇異值矩陣表示左奇異向量的一行與右奇異向量的一列的重要程序,數(shù)字越大越重要。繼續(xù)看這個(gè)矩陣還可以發(fā)現(xiàn)一些有意思的東西,首先,左奇異向量的第一列表示每一個(gè)詞的出現(xiàn)頻繁程度,雖然不是線性的,但是可以認(rèn)為是一個(gè)大概的描述,比如book是0.15對(duì)應(yīng)文檔中出現(xiàn)的2次,investing是0.74對(duì)應(yīng)了文檔中出現(xiàn)了9次,rich是0.36對(duì)應(yīng)文檔中出現(xiàn)了3次;其次,右奇異向量中一的第一行表示每一篇文檔中的出現(xiàn)詞的個(gè)數(shù)的近似,比如說,T6是0.49,出現(xiàn)了5個(gè)詞,T2是0.22,出現(xiàn)了2個(gè)詞。然后我們反過頭來看,我們可以將左奇異向量和右奇異向量都取后2維(之前是3維的矩陣),投影到一個(gè)平面上,可以得到:在圖上,每一個(gè)紅色的點(diǎn),都表示一個(gè)詞,每一個(gè)藍(lán)色的點(diǎn),都表示一篇文檔,這樣我們可以對(duì)這些詞和文檔進(jìn)行聚類,比如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度跨境貿(mào)易專用全新抵押合同版本3篇
- 2025年度公廁智能廁所設(shè)備研發(fā)與生產(chǎn)承包施工合同范本3篇
- 二零二五年度股權(quán)眾籌合作協(xié)議范本3篇
- 二零二五年度典當(dāng)行業(yè)務(wù)培訓(xùn)與人才培養(yǎng)合同3篇
- 2025年度公司代個(gè)人繳納社保及補(bǔ)充養(yǎng)老保險(xiǎn)服務(wù)協(xié)議3篇
- 二零二五年度虛擬現(xiàn)實(shí)體驗(yàn)公司轉(zhuǎn)讓合同3篇
- 二零二五年度冷鏈物流中心冷庫租賃服務(wù)合同
- 二零二五年度寵物寄養(yǎng)寵物醫(yī)療一體化服務(wù)合同3篇
- 二零二五年度員工職務(wù)秘密及競業(yè)限制補(bǔ)充協(xié)議3篇
- 二零二五年度農(nóng)村土地流轉(zhuǎn)與農(nóng)業(yè)廢棄物資源化利用合作協(xié)議
- 2023年高二學(xué)業(yè)水平測試生物模擬考試試題
- 力士樂-mtx micro簡明安裝調(diào)試手冊(cè)v4updated
- GB/T 6807-2001鋼鐵工件涂裝前磷化處理技術(shù)條件
- GB/T 15109-1994白酒工業(yè)術(shù)語
- 膜片鉗常見問題匯總(人人都會(huì)膜片鉗)
- 校車安全逃生技能培訓(xùn)學(xué)習(xí)
- (新版)電網(wǎng)規(guī)劃專業(yè)知識(shí)考試題庫(含答案)
- 學(xué)校心理危機(jī)干預(yù)流程圖
- 杏醬生產(chǎn)工藝
- 融資擔(dān)保業(yè)務(wù)風(fēng)險(xiǎn)分類管理辦法
- 靜電場知識(shí)點(diǎn)例題結(jié)合
評(píng)論
0/150
提交評(píng)論