• 文章總列表
  • 統計分析
    • R SAS All
      R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      SAS

      [SAS] Ma…

      2026-09-08

      SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      統計分析

      [SAS] Ma…

      2026-09-08

      統計分析

      [SAS] Ma…

      2026-01-21

      統計分析

      什麼是meta-…

      2024-11-05

      統計分析

      Test-ret…

      2024-06-07

  • SAS
    • SAS

      [SAS] Ma…

      2026-09-08

      SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      SAS

      [SAS]迴歸分…

      2020-02-28

  • R
    • R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      R

      [SAS][R]…

      2019-07-08

  • 機器學習
    • 機器學習

      Unsuperv…

      2021-07-22

      機器學習

      Unsuperv…

      2021-07-12

      機器學習

      Unsuperv…

      2021-05-20

      機器學習

      Unsuperv…

      2021-05-12

      機器學習

      Matrix F…

      2021-04-30

  • 閱讀筆記
    • 閱讀筆記

      [閱讀心得 #2…

      2025-02-05

      閱讀筆記

      [閱讀心得#20…

      2024-10-25

      閱讀筆記

      [閱讀心得#19…

      2024-08-16

      閱讀筆記

      [閱讀心得#18…

      2024-05-10

      閱讀筆記

      [閱讀心得#17…

      2022-01-22

Wenwu's blog
wenwu's blog
  • 請我喝珍奶

Popular Posts

[R]散佈圖...

2019-12-31

[SAS]L...

2020-06-10

[SAS][...

2019-07-08

[R]Log...

2019-10-31

[SAS] ...

2020-01-22

[SAS]線...

2020-02-26

[SAS]存...

2019-12-18

[SAS]迴...

2020-02-28
機器學習

Unsupervised Learning: Word Embedding

by wenwu 2021-05-12

Unsupervised Learning: Word Embedding

Word Embedding(詞嵌入)就是將文字轉成向量的方法,也是降維(Dimension Reducion)的典型應用,那要如何用vector來表示一個word呢?

1-of-N Encoding

最傳統的方法就是1-of-N Encoding,這個vector的維度就等於世界所有單辭的數目,對每個單詞來說,只要某一個維度=1,其他等於0即可。
但是我們無法取得文字資訊,也無法建立同類word的聯繫

Word Class

word class將同類性質的word進行分類(clustering)。但是分類事不夠的,不同class之間的聯繫無法有效的表示出來

Word Embedding

Word Embedding把每一個word都投影到高維空間上,當然這個空間的維度要遠比1-of-N Encoding的維度低,假如後者有10萬維,那前者只需要50~100維就夠了,這實際上也是DimensionReduction的過程

類似語義(semantic)的詞彙,在這個word embedding的投影空間上是比較接近的,而且該空間裡的每一維都可能有特殊的含義。假設詞嵌入的投影空間如下圖所示,則橫軸代表了生物與其它東西之間的區別,而縱軸則代表了會動的東西與靜止的東西之間的差別

word embedding是一個無監督的方法(unsupervised approach),只要讓機器閱讀大量的文章,它就可以知道每一個詞彙embedding之後的特徵向量應該長什麼樣子

我們的任務就是訓練一個neural network,input是詞彙,output則是它所對應的word embedding vector,實際訓練的時候我們只有data的input,該如何解這類問題呢?

basic idea

word embedding 基本的精神就是,每一個詞彙的涵義都可以根據上下文來的到。有兩種做法來找出word embedding 的vector,分別是count based 和 prediction based

count based

假如w_i和w_j這兩個詞彙常常在同一篇文章中出現(co-occur),它們的word vector分別用V(w_i)和V(w_j)來表示,則V(w_i)和V(w_j)會比較接近

假設N_ij是w_i和w_j這兩個詞彙在相同文章裡同時出現的次數,我們希望它與的內積越接近越好,這個思想和之前的文章中提到的矩陣分解(matrix factorization)的思想其實是一樣的

prediction based

給定一個sentence,我們要訓練一個神經網路,他要做的就是根據當前的word : w_i-1,來預測下一個可能出現的word : w_i是什麼

假設我們使用1-of-N encoding把w_i-1表示成feature vector,它作為neural network的input,output的維數和input相等,只不過每一維都是小數,代表在1-of-N編碼中該維為1其餘維為0所對應的word會是下一個word 的概率

把第一個hidden layer的input z_1、z_2、z_3 …. 拿出來,它們所組成的 Z 就是word的另一種表示方式,當我們input不同的詞彙,向量Z就會發生變化

也就是說,第一層hidden layer的維數可以由我們決定,而它的input又唯一確定了一個word,因此提取出第一層hidden layer的input,實際上就得到了一組可以自定義維數的Word Embedding的向量

sharing parameters

詞彙由於搭配的方式千千萬萬,即使是人也無法準確的給出下一個詞彙具體是什麼。我們可以擴展這個問題,使用10個以上的詞彙去預測下一個詞彙,會得到較好的結果

這裡用兩個詞彙舉例,如果是一般神經網路,我們直接把w_i-2、w_i-1相連的weight都綁再一起,簡單來說就是相同dimension對應到第一層hidden layer相同neuron之間的連線擁有相同的weight,在下圖中,用同樣的顏色標註相同的weight:

如果我們不這樣做,不同weight的結果導致得到的Embedding 會是不一樣的,把兩組weight設定相同,使w_i-2、w_i-1的相對位置不會對結果產生影響

除此之外,共享參數還可以有效的減少參數量,不會因為input的詞彙增加而導致參數量暴增

Formulation

假設w_i-2的1-of-N編碼為x_i-2,w_i-1的1-of-N編碼為x_i-1,維數均為|V|,表示數據中的word總數hidden layer 的input 為向量z ,長度為|Z|,表示降為後的維數

其中W1和W2都是|Z|x|V|維的weight matrix,它由|Z|組|V|維的向量構成,第一組|V|維向量與|V|維的x_i-1相乘得到z1,第二組|V|維向量與|V|維的x_i-2相乘得到z2,…,依次類推
我們強迫讓W1=W2=W,此時z=W(x_i-2 + x_i-1)

因此,只要我們得到了這組參數X,就可以與1-of-N編碼x相乘得到word embedding的結果z

In Parctice

在實際操作上,我們如何保證W1和W2一樣呢? 
以下的w_i 與 w_j 為例,我們希望他們的weight是一樣的:

  • 首先在訓練的時候就要給他們一樣的初始值
  • 然後分別計算 loss function C 對 w_i 和 w_j 的偏微分,進行更新
  • 這個時候就會發現,偏微會不一樣,所以我們在後面加了對方的偏微,保證兩者的結果更新必須一致
  • 這個時候,我們保證了w_i 和 w_j始終相等:

如何去訓練這個神經網絡呢?注意到這個NN完全是unsupervised,你只需要上網爬一下文章數據直接餵給它即可


various architectures

除了以上的基本型態,prediction-based 方法還可以有多種變形

  • CBOW(continuous bag of word model) 
    拿前面的詞彙預測中間的詞彙
  • Skip-gram
    拿中間的詞彙預測前後的詞彙
  • Multi-domain Embedding 
    對圖像做embedding
  • Document Embedding 
    對圖像做embedding
  • Subtraction 機器問答
    機器不知道字與字之間的關係,但是可以用簡單的推論(減法)來推論這些關係,像是羅馬之於義大利等於柏林之於什麼,機器可以知道
    V(Germany)≈V(Berlin)-V(Rome)+V(Italy) 
    藉此推論答案時德國
  • Multi-lingual Embedding 
    建立不同文字間的聯繫,我們訓練英文與中文的資料庫是沒有連結的,所以訓練時要使用中英混雜的input,提供機器學習得內容

最後,儘管word vector 是deep learning 的一個應用,但是這個neural network 其實並不是 deep 的,他就只有一個linear 的 hidden layer

我們把1-of-N編碼輸入給NN,經過weight的轉換得到Word Embedding,再通過第一層hidden layer就可以直接得到輸出

其實過去很多人使用過deep model,但這個task不用deep就可以實現,這樣做既可以減少運算量,跑大量的data,又可以節省訓練的時間

2021-05-12 0 comment
0 FacebookTwitterPinterestEmail
機器學習

Matrix Factorization 矩陣分解

by wenwu 2021-04-30

Matrix Factorization 矩陣分解

今日的課程來自於: https://youtu.be/iwh5o_M4BNU?t=4670

本文來介紹矩陣分解的方法。通常我們在尋找兩個變項的關係,而他們之間可能受到某種潛在因素(latent factor)的控制,但是我們通常無法直接知道latent factor是甚麼。

比方,我們可以描述購買者和公仔的屬性,如果這個人與某公仔是match的,他們的vector很像(內積值很大),這個人就很容易買這個公仔

但是! 現實是,我們沒辦法知道購買著與公仔的屬性為何? 所以沒有辦法直接使用latent factor

所以我們可以把每個人的屬性用vector r^A ~ r^E表示,而公仔的屬性是r¹、r²、r³、r⁴ 表示,購買的數量可以用 matrix X表示,X裡面每個元素,都是每個人購買的公仔數量

比方: r^A.r¹ ≈5,表示r^A和r¹的屬性比較貼近

從上圖可以看到 Matrix X ≈ 購買者矩陣(M*K) . 公仔矩陣(K*M)
但是我們不知道K的數量,K= latent factor的數量;這部分需要我們調整

所以我們的目標是使用SVD的訪法,找出兩個矩陣的解(購買者矩陣、公仔矩陣),使兩個矩陣相乘的結果與Matirx X越接近越好


Matrix X 的未知數

有時候,Matrix X可能有missing 的,這時候就難以用SVD精準描述,但是我們可以用gradient descent 來求解,首先寫出loss function

其中 r^i 值的是購買者背後的latent factor, r^j 指的是公仔背後的latent factor,我們要讓這兩個vector的內積與實際購買該公仔的數量n_ij越接近越好,這個方法的關鍵之處在於,計算上式時,可以跳過missing的數據,最終通過gradient descent求得和的值

假設latent factor的數目等於2,則購買者的屬性和公仔的屬性都是2維的vector,這裡實際進行計算後,把屬性中較大值標註出來,可以發現:

  • 購買者:A、B屬於同一組屬性,C、D、E屬於同一組屬性
  • 動漫角色:1、2屬於同一組屬性,3、4屬於同一組屬性
  • 結合動漫角色,可以分析出動漫角色的第一個維度是天然呆屬性,第二個維度是傲嬌屬性
  • 接下來就可以預測未知的值,只需要將人和動漫角色的vector做內積即可
    這也是推薦系統的常用方法

這也是推薦系統常用的方法


more about matrix factorization

除了購買者與公仔之間的關係之外,也有可能存在其他的因素控制購買數量的數值,我們可以將公式更精確的改成:

其中,b_A表示A這個人本身有多喜歡買公仔,b_1是這個公仔有多讓人想購買,這些內容跟屬性vector無關的,此時loss function被寫成:

當然我們也可以加上regulatization去對結果作約束,上面的loss function可使用gradient descent 解

2021-04-30 0 comment
0 FacebookTwitterPinterestEmail
機器學習

Unsupervised Learning: PCA

by wenwu 2021-04-16

Unsupervised Learning: PCA

非監督式學習: 主成分分析(Principal components analysis,PCA)

上篇提到PCA是降維的一種方法,他的input x和output z之間是linear transform,即z=Wx,PCA要做的,就是根據x把W給找出來(z未知)

今日的課程來自於: https://youtu.be/CXgbekl66jc 

PCA for 1-D

為了簡化問題,這裡我們假設z是1維的vector,也就是把x投影到一維空間,此時w是一個row vector : z_1=w¹.x ,其中w¹表示w的第一個row vector,假設w¹的長度為1,即||w¹||_2=1,此時z_1就是x在w¹方向上的投影

基本上,就是將二維的x,投影到一維的z,並且符合z_1=w¹.x
那我們要找甚麼樣的w¹呢?

  • 我們希望找到一個projection的方向,他可以讓projection後的variance越大越好
  • 我們不希望projection使這些data point 通通擠在一起,導致點和點之間的資訊消失
  • 其中,variance的計算公式: Var(z_1)=1/N Σ(z_1-mean(z_1))²,||w¹||_2 = 1

PCA for n-D

當然不只投影到一維空間,還可以投影到更高維的空間

同樣也滿足,z=Wx。只不過 z = z1、z2、….. ,而W也是,並且W 是一個正交矩陣(orthogonal matrix)

找到的w¹必須讓var(z_1)最大,而w²在不等於w¹的情況下,同樣要使var(z_2)最大


Lagrange multiplier

基本上可以使用現有的函數計算,這邊介紹Lagrange multiplier求解PCA的結論

  • w¹ 是S=Cov(x)這個matrix的特徵向量,對應最大的特徵值λ_1
  • 在算w²時,多了w¹一個條件,就是w¹與w²必須正交,也就是w²也是S=Cov(x)這個matrix的特徵向量,對應最大第二特徵值λ_2

PCA-decorrelation

z=W.x
神奇之處在於cov(z)=D,即z的covariance是一個diagonal matrix
PCA可以讓不同dimension之間的covariance變為0,即不同new feature之間是沒有correlation的,這樣做的好處是,減少feature之間的關係從而減少model所需的參數量
如果你把原來的input data通過PCA之後再給其他model使用,那這些model就可以使用簡單的形式,而無需考慮不同dimension之間類似這些交叉項,此時model得到簡化,參數量大大降低,相同的data量可以得到更好的訓練結果,從而可以避免overfitting的發生


Reconstruction Component

假設我們現在考慮是手寫數字識別,這些數字是由一些類似於筆畫的basic component 組成,就是把每個筆畫寫成vector,記成u_1\u_2 … ,以MNIST為例,不同的筆畫都是一個28*28的vector,把某些vector加起來,就組成一個28*28的digit

可以寫成 x≈c_1 * u¹ + c_2 * u²+c_3 * u³+ ….. +x̄

x代表某張digit image的pixel,他等於k個component 的加權和加上所有image的平均值(x̄)

以上圖為例,7就是 x=u¹+u³+u⁵ ,我們可以用[c_1,c_2,c_3,c_4,c_5]^T 來表示一張digit image,如果component的數目k 遠比pixel的數目小,那這個描述是有效的

實際上我們不知道 u¹ ~ u^k 的具體值,因此我們要找到這樣 k個vector,使得 x-x̄ 與 x ^( x 的預估值) 越接近越好

而且用未知component來描述的這部分內容,叫做Reconstruction error ,即|| (x-x̄) – x^ || ,接下來我們去找 k個 vector 去minimize這個error:

回顧 PCA ,z=W.x ,實際上我們通過PCA最終解得到的{w¹,w²,…. w^k }就使reconstruction error 最小化的{u¹,u²,… u^k }


NN for PCA

現在我們已經知道,PCA找出的{w¹,w²,…. w^k }就是k個component{u¹,u²,… u^k },並且{w¹,w²,…. w^k }這k個vector是標準正交化的(orthonormal),因此:

這時候我們可以使用神經網路(NN)來表示整個過程,假設x是三維向量,要投影到k=2維的component上:

  • x-x̄與w^k做inner product的過程類似於neural network,x-x̄在3維空間上的座標就相當於是neuron 的input ,而w¹,w²,w³就是weight,而c_1是neuron的output
  • 得到c_1之後,再乘上w¹,得到 x^的一部分
  • 對c_2進行同樣的操作,乘上w²,貢獻x^的剩餘部分,此時我們已經完整計算出x^三個分量的值
  • 此時,PCA就被表示成了只含一層hidden layer的神經網絡,且這個hidden layer是線性的激活函數,訓練目標是讓這個NN的input x-x̄ 與output x^ 越接近越好,這件事就叫做Autoencoder
  • 注意,通過PCA求解出的與直接對上述的神經網絡做梯度下降所解得的是會不一樣的,因為PCA解出的是相互垂直的(orgonormal),而用NN的方式得到的解無法保證相互垂直,NN無法做到Reconstruction error比PCA小,因此:在linear 的情況下,直接用PCA找W遠比用神經網路的方式還快速。NN的好處是他不只一層,可以做deep autoencoder

Weakness of PCA

PCA有很明顯的弱點:

  • 它是unsupervised的,如果我們要將下圖綠色的點投影到一維空間上,PCA給出的從左上到右下的劃分很有可能使原本屬於藍色和橙色的兩個class的點被merge在一起
    而LDA則是考慮了labeled data之後進行降維的一種方式,但屬於supervised
  • 它是linear的,對於下圖中的彩色曲面,我們期望把它平鋪拉直進行降維,但這是一個non-linear的投影轉換,PCA無法做到這件事情,PCA只能做到把這個曲面打扁壓在平面上,類似下圖,而無法把它拉開

對類似曲面空間的降維投影,需要用到non-linear transformation


PCA for MNIST

再次回到手寫數字識別的問題上來,這個時候我們就可以熟練地把一張數字圖像用多個組件(維度)表示出來了:

這裡的w^i 就表示降維後的其中一個維度,同時也是一個組件,它是由原先28×28維進行加權求和的結果,因此w^i也是一張28×28的圖像,下圖列出了通過PCA得到的前30個組件的形狀:
注:PCA就是求的前30個最大的特徵值對應的特徵向量


PCA for Face

同理,通過PCA找出人臉的前30個組件(維度),如下圖所示:
用這些臉的組件做線性組合就可以得到所有的臉

在對MNIST和Face的PCA結果展示的時候,你可能會注意到我們找到的組件好像並不算是組件,比如MNIST找到的幾乎是完整的數字雛形,而Face找到的也幾乎是完整的人臉雛形,但我們預期的組件不應該是類似於橫折撇捺,眼睛鼻子眉毛這些嗎?
如果你仔細思考了PCA的特性,就會發現得到這個結果是可能的注意到linear combination的weight 可以是正的也可以是負的,因此我們可以通過把組件進行相加或相減來獲得目標圖像,這會導致你找出來的component不是基礎的組件,但是通過這些組件的加加減減肯定可以獲得基礎的組件元素


NMF

Introduction

如果你要一開始就得到類似筆劃這樣的基礎組件,就要使用NMF(non-negative matrix factorization),非負矩陣分解的方法
PCA可以看成對原始矩陣做SVD進行矩陣分解,但並不保證分解後矩陣的正負,實際上當進行圖像處理時,如果部分組件的matrix包含一些負值的話,如何處理負的像素值也會成為一個問題(可以做歸一化處理,但比較麻煩)
而NMF的基本精神是,強迫使所有組件和它的加權值都必須是正的,也就是說所有圖像都必須由組件

在MNIST數據集上,通過NMF找到的前30個組件如下圖所示,可以發現這些組件都是由基礎的筆劃構成,如果應用在臉部辨別的話也是

2021-04-16 0 comment
0 FacebookTwitterPinterestEmail
閱讀筆記

[閱讀心得#5]加速你的FIRE人生

by wenwu 2021-04-12

加速你的FIRE人生

第一次知道FIRE 是在 Yale Chen 的頻道,我必須說我一開始也不喜歡他的語氣,不過發現他講話是有內容的,所以才繼續追蹤下去

FIRE 是什麼呢?FIRE 是就 Financial Independent Retire Early 的縮寫,就是提早達到財富自由。Yale本身就是FIRE族,而且他26歲就達到財富自由了。

我覺得蠻驚人的,達到財富自由,是不是代表需要非常非常多得錢。

說實話,如果我們的慾望很大,絕對沒有足夠的錢讓我們花一輩子
在這本書裡面並沒有投資的完全攻略,讀完只會讓你開始執行FIRE人生


能不能退休,在於你的存款比例

如果你一個月賺一百萬,但是你每個月全部花光,那你比一個薪水兩萬六每個月存6000塊的社會新鮮人還要窮!

依照存款退休表,假設你一個月存50%的薪水,那你17 年後就可以退休了。如果現在你25歲,代表42歲就能退休

你的財富自由數字

還有另一種方法,不過需要先算出你需要存多少錢

你的FU數字=年支出*25

假設你的月支出為2萬,代表FU=2*12*25=600萬。當你達到FU數字,你每年只要提領4%來過生活,你的錢就花不完了

4%法則

Yale 說他在頻道沒有詳細解釋4%法則,但是在書裡有一個section是在介紹4%法則,這裡不多敘述,大家買書來看

寫給20歲的自己

Yale的書很容易可以懂,因為他想要讓20歲的自己也能夠明白,

  1. 算出自己的FU數字
  2. 決定每個月要投資的金額
  3. 開投資卷商的戶頭(建議Firstrade/TD Ameritrade)
  4. 考慮買什麼資產
    可以選擇穩定、低費用的大盤指數
    挑選兩個指數型ETF,75%是股票ETF,25%是在債券ETF
  5. 拿到股息,申請股息再投入計畫

地理駭客

我知道這個概念,但是這是我第一次聽到他的名稱。如果你可以將高幣值國家的錢轉到較低幣值國家去花,就可以瞬間提高生活品質,也可以存到比較多的錢


寫了幾點印像比較深刻的內容與大家分享,我目前沒有任何的投資組合,不過看完Yale的書,我的目標是這個月就要開始行動!

如果你對FIRE也有興趣,我很推薦去買來看看!加速我的FIRE人生

2021-04-12 0 comment
0 FacebookTwitterPinterestEmail
閱讀筆記

[閱讀心得#4] 也許你該找人聊聊 Maybe you should talk to someone

by wenwu 2021-03-22

也許你該找人聊聊 Maybe you should talk to someone

看完這本書實在太過癮了,本書有四個部分共有58節,看完就像做完完整的58節的心理諮詢,心裡滿滿的,好滿足。

這本書的作者是一位心理師,內容就是四位病人與他諮詢的過程,加上他看心理醫師的過程。其實我們每個人所遇到的環境都不太一樣,但是卡在心理的節都很像,往往都是不願意面對 ; 如果你有什麼過不去的關,想試試看心理諮詢,卻又對心理諮詢完全沒有概念,我覺得這本書會帶你了解心理諮詢的過程。或者你裡面帶著什麼關,讀完這本書說不定也有你想要的答案

作者待過電視圈,將他自己的故事與四位病人的故事串連在一起,一節一節有不同的重點,也加入心理學的知識,串連出一整段完整的故事。


要的速度 (chapter 36)

the speed of want

在諮詢時有許多病人希望可以短暫的得到解決,希望能夠用四次的心理諮詢能夠解決問題。作者在受訓的時候,過著緊湊的節奏,就為著趕快受訓結束,能夠成為獨當一面的心理師。受訓的地點在地下室,每天見不到日光,生活苦,卻告訴自己:謝天謝地,我們知道這個階段只是暫時的。

我在讀研究所時,也告訴自己,這是暫時的。兩年內我就會讀完研究所,我就可以拿到學位,就可以做自己想要的事情。

不過腳步越快,看到的越少,因為什麼東西都糊成一團。但是今天不會回來。現代人以為做事不快是損失時間,可是除了殺時間以外,他們並不懂得怎麼運用省下來的時間。

要是想要還是需要?

許多人想要『盡快解決』他們的問題,他們想要在限定時間解決他們找伴侶的問題,趕在情人節之前解決,不過這只是『想要』

來心理諮詢的病人多半都為寂寞所苦,他們渴望、但缺少強韌的人際連結 — 這種要是『需要』的要。

『刺激和回應之間有空間,空間裡是我們選擇回應方式的權利,回應方式裡有我們的成長和自由』 — 維克多・法蘭克 (Viktor Frankl)

今天不會回來…


逗號(chapter 48)

A pause in the conversaion

在書的最後一章,用逗號結束。心理諮商最奇怪的部分是:他是圍繞著結束來安排的。

病人往往感謝心理師帶他們完成一段旅程。不過這都是靠自己,沒有人會救你,除了你自己。人是在與他人的連結裡成長的。

約翰發現好的影集有一個特色:觀眾會覺得每一集之間只是逗號。同樣兩次晤談之間也是逗號。

生命中的關係不會真正結束,即使你再也見不到那個人。
關係親的人會繼續待在你心裡某個地方。
你過去的情人、你的父母、你的朋友、活著的、(象徵上或實際上)逝去的─全都會喚起你的回憶,不論你有沒有察覺。
他們時常讓你看見你如何與自己和他人互動,有時候是你在心中與他們對話,有時候是他們在你夢裡對你說話


最後

除了這兩點之外,我還有很多喜歡的部分,像是作者自己描述她懷孕的過程(他沒有結婚)。還有剛結婚卻發現自己癌症末期的病人:茱莉,過程中如何接受死亡(我每次看都大哭)。還有想在70歲之前人生沒有人和改善就要自殺的麗塔。當然還有自戀傾向的好萊屋製片約翰。

每個人的故事是如此截然不同,卻也環繞著我們對待生命的角度。怎麼面對我們的錯誤,並且擁抱他。

五星推薦這本書,這本書你需要自己體驗,也許你該找人聊聊 Maybe you should talk to someone

2021-03-22 0 comment
0 FacebookTwitterPinterestEmail
機器學習

無監督式學習Unsupervised Learning- Introduction

by wenwu 2021-03-17

無監督式學習Unsupervised Learning- Introduction

今日的課程來自於: https://youtu.be/CXgbekl66jc

在實務上,我們都沒有完整的資料,接下來的內容都是無監督式學習
本篇為無監督式學習的介紹


無監督式學習可以分成兩種 ,通常我們沒有完整label的資料

  • 化繁為簡 : Clustering(聚類) /Dimension Reduction(降維)
    將複雜的input 變成簡單的output,比如把一大堆沒有打上label的樹圖片轉變為一棵抽象的樹,此時training data只有input,而沒有output
  • 無中生有(Generation) 
    無中生有就是隨機給function一個數字,它就會生成不同的圖像,此時training data沒有input,而只有output

Clustering

clustering,顧名思義,就是把相近的樣本分成同一類,比如將沒有label的影像分類,手動標上標籤,這分類過程就是化繁為簡的過程

那…我們要分幾組呢? 
選擇適當的cluster,要empirical的來決定它

K-means 

最常用的就是K-means :

  • 將一堆沒有標籤的資料,將他們分成K個cluster
  • 每一個cluster都要找一個center,初始值可以從training data 裡隨機挑K個object X^n出來做K個center c^i 的初始值
  • 之後的值找出最靠近的cluster,將他分類
  • 更新center: 把每個cluster裡的所有object取平均值作為新的center值
  • 反覆以上動作

如果不是從原先的data set 裡取center 的初始值,可能會導致部分cluster沒有樣本點


HAC (Hierarchical Agglomerative Clustering)層次聚類 

假設我們現在有五個樣本點,想要做clustering:

  • bulid a tree: 
    建立類似Huffman Tree,只不過huffman 是依據詞頻,而HAC是依據相似度建樹
    將五個樣本點兩兩計算相似度,挑出最相似的一對,重複以上動作,直到只剩下一個root 節點
  • pick a threshold 
    選threshold,就是在構造好的tree上橫著切一刀,相連的結點屬於同一個cluster,下圖中,不同顏色的橫線和葉結點上不同顏色的方框對應著切法與cluster的分法

HAC和K-means最大的區別在於如何決定cluster的數量,在K-means裡,K的值是要你直接決定的;而
在HAC裡,你並不需要直接決定分多少cluster,而是去決定這一刀切在樹的哪裡


Dimension Reduction

clustering的缺點就是每一個object都要屬於一個類別,一定要分類一個類別但是物件可能有多種屬性,如果硬分類,就會失去很多信息;我們應該用一個vector來描述該object,這個vector的每一維都代表object的某種屬
性,這種做法就叫做Distributed Representation,或者說,Dimension Reduction

Why Dimension Reduction Help? 

接下來要來看為什麼Dimension Reduction 可能是有用的

假設data為下圖左側中的3D螺旋式分布,你會發現用3D的空間來描述這些data很浪費空間,因為我們可以完全把它攤平,此時只需要用2D的空間可以描述這個3D信息

舉一個極端的例子,下面這幾張表示“3”的image,我們完全可以用中間這張image旋轉角度來描述,也就是說,我們只需要用這一個dimension就可以描述原先28*28 dimension的圖像
你只要抓住角度的變化就可以知道28維空間中的變化,只要用一維就可以描述這個image


How to do Dimension Reduction? 

在Dimension Reduction裡,我們要找一個function,這個function的input是原始的x,output是經過降維之後的z。dim(z)<dim(x)

最簡單的方法是Feature Selection,即直接從原有的dimension裡拿掉一些直觀上就對結果沒有影響的dimension,就做到了降維。

最常見的方法叫做PCA(Principe Component Analysis),下一篇會提到

2021-03-17 0 comment
0 FacebookTwitterPinterestEmail
Load More Posts

近期文章

  • [SAS] Macro Language 2: 內建macro,使用 SQL/DATA step 建立Macro variable
  • [SAS] Macro Language 基礎內容
  • ccClub 讀書會推薦,免費學python
  • [閱讀心得 #21]你願意,人生就會值得
  • 理想生活,該長怎麼樣子?

近期留言

  • 「S kevin」於〈[SAS] Macro Language 2: 內建macro,使用 SQL/DATA step 建立Macro variable〉發佈留言
  • 「S kevin」於〈[SAS] Macro Language 基礎內容〉發佈留言
  • 「peter」於〈多益330 → 多益785 多益成績棕色到藍色證書〉發佈留言
  • 「wenwu」於〈[SAS]存活分析(2) COX regression model〉發佈留言
  • 「joey53111」於〈Statistical Programmer在CRO工作一年的心得〉發佈留言

免費訂閱

不定期更新文章,點一下追蹤就能夠收到最新文章!

一起加入其他 20 位訂閱者的行列

Statistics

  • 20,079
  • 729,825
  • 74
R 線上課程參考

@2019 - All Right Reserved. Designed and Developed by PenciDesign

Wenwu's blog
  • 文章總列表
  • 統計分析
    • R SAS All
      R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      SAS

      [SAS] Ma…

      2026-09-08

      SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      統計分析

      [SAS] Ma…

      2026-09-08

      統計分析

      [SAS] Ma…

      2026-01-21

      統計分析

      什麼是meta-…

      2024-11-05

      統計分析

      Test-ret…

      2024-06-07

  • SAS
    • SAS

      [SAS] Ma…

      2026-09-08

      SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      SAS

      [SAS]迴歸分…

      2020-02-28

  • R
    • R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      R

      [SAS][R]…

      2019-07-08

  • 機器學習
    • 機器學習

      Unsuperv…

      2021-07-22

      機器學習

      Unsuperv…

      2021-07-12

      機器學習

      Unsuperv…

      2021-05-20

      機器學習

      Unsuperv…

      2021-05-12

      機器學習

      Matrix F…

      2021-04-30

  • 閱讀筆記
    • 閱讀筆記

      [閱讀心得 #2…

      2025-02-05

      閱讀筆記

      [閱讀心得#20…

      2024-10-25

      閱讀筆記

      [閱讀心得#19…

      2024-08-16

      閱讀筆記

      [閱讀心得#18…

      2024-05-10

      閱讀筆記

      [閱讀心得#17…

      2022-01-22