• 文章總列表
  • 統計分析
    • 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: Deep Generation

by wenwu 2021-07-22

Unsupervised Learning: Deep Generation

今日的課程來自於: Unsupervised Learning - Deep Generative Model (Part I)
ML Lecture 18: Unsupervised Learning - Deep Generative Model (Part II)

Introduction

What I cannot create, I do not understand — Richard Reynman
Richard Reynman說”我無法創造出我無法理解的東西”。就像機器無法劃出一隻貓或是狗,因為他們無法真正理解他。 今天將介紹三種generative models。


Generative Models:

  • Pixal RNN
  • Variational Antoencoder(VAE)
  • Generative Adversarial Network

PixelRNN

RNN可以處理長度不同的input,他的主要概念是根據過去的狀態來推測下一個狀態。
PixelRNN的基本思想是每次只畫一個pixel,這個pixel是由過去所有已產生的Pixel共同決定的

training PixelRNN 是很簡單的,這是完全的unsupervised。你可以會想說這麼簡單的方法怎麼會有用但是在不同generate image的方法裡pixelRNN是最清晰的

PixelRNN 還可以用在聲音跟影像的生成,給定前面的音訊,在predict 下一個sample 結果,再丟到model 中,一直硬train 下去


ex: pokemon creation

我們可以不用抓寶可夢,我們直接用 pixelRNN 創造寶可夢
Don’t catch them! create them!

使用PixelRNN生成寶可夢,有幾個tips:

  • 為了減少運算量,將40*40的圖像減少成20*20
  • 如果將每個Pixel都以[R,G,B]的vector表示的話
    • 生成的圖像都是灰的,因為比較亮的顏色,通常RGB的差異會很大
    • 如果用sigmoid function ,最終生成的RGB都是0.5左右,所以色彩不鮮艷
    • 解決方法:將所有的色彩集合成一個1-of-N encoder,由於色彩種類比較多,因此先對類似的顏色做clustering ,最後獲得167個色彩向量

使用PixelRNN訓練好的模型之後,給它看沒有被放在training data的三個圖像的一部分,分別遮住原圖的50%或75%,得到原圖的預測結果的對比如下:

其實效果還不錯,提供比較多圖案的效果當然比較好
我們也可以不提供圖片,只是需要設定不同的機率,不然跑出來的圖都一樣


VAE

VAE, Variantional Autoencoder,可變自動編碼器
上一篇已經介紹過Autoencoder 的基本思想,我們拿出其中的decoder,給它隨機輸入數據,就可以生成對應的圖像
但是普通的Decoder生成的效果並不好,VAE可以得到更好的效果

在VAE中,很像encoder,但是加了小trick。code不再直接等於encoder的輸出,這裡假設目標降維空間為三維,那我們使Encoder分別輸出m1、m2、m3 和σ1、σ2、σ3 ,此外我們從常態分布中隨機挑選出三個點 e1、 e2、 e3 ,最後的結果如下:

ci = eσi  ⋅ ei + mi

此時,我們訓練目標不僅是要最小化input和output之間的差距,同時還要最小化下面的式子:

與pixelRNN不同的是,VAE畫出的圖一班都是不太清晰的,但是在某種程度上我們可以控制生成的圖像


write poetry

VAE還可以用來寫詩,只需要某兩句話對應的code,然後在降維後的空間中得到這兩個code所在點的連線,從中取樣,並輸入給Decoder,就可以得到類似下圖中的效果

上圖可以看到,我們只給了第一句和最後一句,中間的過程,就是training的結果


Why VAE ?

為什麼要使用VAE呢? VAE與傳統的Autoencoder相比,有甚麼優勢嗎?
實際上,VAE就是加了noise的Autoencoder,它的抗干擾能力更強,過度生成能力也更強

對原先的Autoencoder來說,假設我們得到了滿月和弦月的code,從兩者連線中隨機獲
取一個點並映射回原來的空間,得到的圖像很可能是完全不一樣的東西

而對VAE來說,它要保證在降維後的空間中,加了noise的一段範圍內的所有點都能夠映
射到目標圖像,如下圖所示,當某個點既被要求映射到滿月、又被要求映射到弦月,則它
最終映射出來的結果就很有可能是兩者之間的過渡圖像

再回頭看VAE的結構:

  • mi其實就代表原本的code
  • ci則代表加了noise以後的code
  • σi則代表了noise的variance,描述了noise的大小,這是由NN學習到的參數
  • ei 是常態分佈中隨機採樣的點

注意:如果loss function 只讓input和output的差距最小是不夠的,因為variance是由機器決定的。
如果不加以約束,機器就會讓variance=0,這樣就跟普通的autoencoder沒有差別了

用下面的塗寫是函數的意思:

下圖中,藍線代表eσi ,紅線代表1+σi ,兩者相減得到綠線
綠線的最低點σi=0,則variance eσi=1,此時loss 最低
而(mi )2 項則是對code的L2 ,讓他比較sparse,不容易過擬合

problems of VAE

VAE有一個缺點,它只是在努力做到讓生成的圖像與數據集裡的圖像盡可能相似,卻從來
沒有想過怎麼樣真的產生一張新的圖像,因此由VAE生成的圖像大多是數據集中圖像的線
性變化,而很難自主生成全新的圖像

VAE產生的image,都是data裡的image的linear combination,因為它從來沒有學過產生image

VAE做到的只是模仿,而不是創造,GAN的誕生,就是為了創造


GAN

GAN的概念,有點像擬態的演化
枯葉蝶是怎麼變得更菇業一模一樣呢? 假設原本枯葉蝶原本是彩色的,但是他的天敵: 波波鳥會吃這個蝴蝶。那枯葉蝶就近畫成為棕色的,接下來他的天敵也進化了,波坡變成比比鳥,比比鳥知道,蝴蝶是沒有葉脈的,所以他會吃沒有葉脈的東西。最後枯葉蝶跟天敵都會一再的演化

GAN 的概念是這個樣子。首先,有一個第一代的 Generator,第一代的 Generator 它很廢,它可能根本就是 random 的,它會 generate 一大堆奇怪的東西,看起來不像是真正的 image。假如我們現在叫它 Generate 4 個 digit,那接下來有一個的第一代 Discriminator,他就是那個天敵,Discriminator 做的事情是,他會根據real 的 image跟 Generator 所產生的 image去調整它裡面的參數,去評斷說,一張 image 是真正的 image,還是 Generator 所產生的 image。

接下來呢,這個 Generator 根據這個 Discriminator調整了他的參數,所以,第二代的 Generator產生的 digit 就可能就更像真的。接下來,Discriminator 會再根據第二代的Generator的image去 update 他的參數。接下來,有了第二代的Discriminator,就會再產生第三代的 Generator,第三代 Generator 產生的數字又更像真正的這個數字。第三代 Generator 他產生的這些數字,可以騙過第二代的 Discriminator,第二代產生的這些數字,可以騙過第一代的 Generator。

要注意的是: Generator 從來沒有看過真正的 image長什麼樣子,Discriminator 有看過真正的 image 長什麼樣子,它會比較真正的 image 跟 Generator 的 output 的不同


GAN – Generator & Discriminator

GAN 組要由Ganerator 和 Discriminator組成:

  • 對Discriminator的訓練: 把Generator產生的圖像標記為0,真實圖像標記為1
  • 對Generator的訓練: 調整生成器的參數,使產生的圖像能夠騙過Discriminator
  • Discriminator和Generator 結合,其實就是一個很大的neural network
  • 只是我們只要選Generator的參數,而Discriminator的參數要鎖定,不然就不能運作了

GAN的問題: 他們有一個清楚的訓練目標,你不知道discriminator標記的答案是否正確,也沒有辦法使用loss function來判斷,所以必須在訓練時,同時查看訓練的狀況

2021-07-22 0 comment
0 FacebookTwitterPinterestEmail
閱讀筆記

[閱讀心得#8] 25歲存到100萬-Shin Li 的三十堂理財觀念

by wenwu 2021-07-17

認識 Shin Li 是從youtube看到他的信用卡介紹,而且翻了翻他的頻道,內容還不少,都是講理財的內容
最近想進一步的了解投資理財,找了很多的書來看,很喜歡 Shin Li 在頻道的口才,以及講解的方法,所以買了書回來看
我覺得內容很適合新手,因為對我來說我也是剛剛加入股票的世界,有很多專有名詞我都不懂
但是Shin Li的解釋很清楚,並且有簡單的舉例
下面列出我書中最喜歡的點,和大家分享
書中還有很多內容,大家記得去買書回來看 25歲存到100萬


72法則:計算投資何時會翻倍

72/R = T 

R : 年利率、年投報率 = R%
T : 本金翻倍的年數
要怎麼計算我們投資何時會翻倍呢? 可以用上面的公式來計算
假設銀行的存活是1% ,72/1=72,表示要72年才會翻倍


要存到多少錢,才能投資

如果沒有存到這兩筆錢,千萬別貿然投資

  • 緊急預備金帳戶:至少存滿10萬
  • 儲蓄帳戶:至少存到兩個月的薪水

投資是有賺有賠的,應該劃分存款的一部分投資,而不該全部用來投資
可以使用631法則,將薪水的1/10分到投資帳戶中,等到累積到一定的金額後,再進場也不遲


第一次買股票,該怎麼挑選才好?

  • 公司市值及股本都大
    如果一個公司的股本非常大,代表不會被有心人士炒作。如果股本很小,有心人士只要稍微炒作一下,很容易就跌停或飆高。
  • 護城河多的公司
    如果這個公司是產業的龍頭,就相對穩定,也不容易被取代
    很多人在選擇股票會選擇某產業的龍頭,因為就算賠錢,也不會一次賠很多錢
  • 獲利能力好的公司
    可以去找近十年來穩定的公司。透過股利發放的方式,來評斷這家公司是不是一間持續賺錢的公司。
  • 股利連續十年穩定發放
    如果一間公司穩定,在短時間可能拓展空間有限,基本上也不會有待多增產需求,所以他會選擇把賺到的錢分給股東,而連續且穩定的發放股利
  • 計算本益比(Price-to-Earning Ratio)
    本益比=成本和獲利的比例=你買進股票之後,有多少的時間可以回本
    計算的方式是用現在股票價個除以未來預估的每股盈餘

不同的股票類型

  • 保守型股票:風險小、投報率較低
    建議選擇正確標的,並長期持有,讓時間複利帶領你的財富更上一層樓
  • 穩健型股票:風險中等、投報率中等
    如果你還年輕,可投資的時間還很長,就可以選擇穩健型的投資
  • 積極型股票:風險高、投報率高
    積極型股票會比較偏向”話題股”,有極大的可能大漲或大跌,就需要一直積極的看盤。

總結

一開始在讀這本書時,覺得前面的觀念非常簡單,好像不需要特地買來看。不過看到後面,Shin Li 給了很多很棒的觀念
這本書我會留在身邊,有需要也能夠翻翻內容
25歲存到100萬

[閱讀心得#1]原子習慣
[閱讀心得#2]歡迎來到志祺七七
[閱讀心得#3]為什麼我們這樣生活,那樣工作 The Power of Habit
[閱讀心得#4] 也許你該找人聊聊 Maybe you should talk to someone
[閱讀心得#5]加速你的FIRE人生
[閱讀心得#6]鯨吞億萬 Billion Dollar Whale
[閱讀心得#7]成為1%的創業存活者

2021-07-17 0 comment
0 FacebookTwitterPinterestEmail
機器學習

Unsupervised Learning: Deep Auto-encoder

by wenwu 2021-07-12

Unsupervised Learning: Deep Auto-encoder

今日的課程來自於: https://youtu.be/Tk5B4seA-AU

Auto-encoder 本質上就是一個自我壓縮以及解壓縮的過程,我們想要獲得壓縮後的code,他代表對原始數據的某種緊湊精簡的有效表達,也就是降維結果,其中Auto-encoder需要:

  • Encoder(編碼器): 將原先的圖像壓縮成低維的向量
  • Decoder(解碼器): 可以將壓縮的向量還原

Encoder 跟Decoder 都是 Unsupervised Learning,由於code是未知的,對於Encoder來說,我們手中的數據只能提供圖像作為NN的input,卻不能提供code作為output;對Decoder來說,我們只能提供圖像作為NN的output,卻不能提供code作為input

所以encoder跟decoder需要一起訓練,我們將他們連結,這樣整個NN的input&output都是我們已有的圖像數據,再訓練模型。最後降維的編碼就可以從最中間的hidden layer獲取


Compare with PCA

Auto-encoder跟PCA很相似,PCA本質上就是按組件拆分,再按組件重構的過程

在PCA中,我們先把均一化後的x根據組件W分解到更低維度的c,然後再將組建權重c乘上組件的反制 WT 得到重組後的x̂與原始的x越近越好

如果把這個過程當作是神經網路,那麼原始的x就是input layer,重構x̂就是output layer,中間組件分解權重c就是hidden layer,在PCA中是linear的。

對比於auto-encoder,從 input layer到 hidden layer 的案件分解實際上就是encode的過程,以hidden layer到output layer 按組件重構就是解碼的過程

並且可以加更多層的hidden layer


Deep Auto-encoder

Multi layer

我們可以不只使用一層的hidden layer,使用多層的hidden layer就是通過多層的encoder 跟 多層的decoder

  • 從input layer到bottleneck layer 的部分都屬於 Encoder
  • 從bottleneck layer到output layer 的部分都屬於 Decoder
  • bottleneck layer的output就是自編碼結果code
  • Training 方法: back propagation

如果按照PCA的思路,encoder的參數Wi 需要和Decoder的參數WiT 保持對應的關係,在訓練時可以綁在一起training,這樣就減少一半的參數,降低overfitting 的機率

但這件事情並不是必要的,實際操作時,可以對神經網路進行直接訓練而不用保持參數的一致
常見的做法就是兜個neural network, 用back propagation直接train下去

visualize

下圖為PCA和Deep Auto-encoder對手寫數字的編碼解碼後的結果,可以看出Deep Auto-encoder的方法比較清楚

若使用降維到二維平面做可視化,不同顏色代表不同數字,可以看到

  • 通過PCA降維得到的結果中,不同顏色的數字混在一起
  • 通過Deep Auto-encoder 降維得到的編碼結果中,不同顏色代表的數字被分散

Text Retrieval

Auto-encoder 也可以被用在文字處理上(將一篇文章壓成一個code)

比如我們要文字檢索,最簡單的方式就是Vector Space Model ,把每一篇文章都表示成空間中的一個vector
假設我們要查詢某個詞彙,那我們就把該查詢詞彙也變成空間中的一個點,並計算query的每一篇document之間的內積

Bag-of-word

表示詞彙最簡單的方式就是bag-of-word,如果有十萬個詞彙,就會有十萬維。缺點是很難找出詞彙的相關,每個詞彙都是獨立。

Auto-encoder

雖然bag-of-word 不能直接用於表示文章,但我們可以把它作為Auto-encoder 的input,通過降維來取得有效信息,以獲取有用的vector

同樣為了可視化,這裡將bag-of word 降維到二維平面上,下圖每個點都代表一篇文章,不同文章表示不同的文章類型


Similar Image Search

Auto-encoder 同樣可以被用在圖像檢索上

以圖找圖最簡單的做法就是直接對輸入的圖片與數據庫中的圖片計算pixel的相似度,並挑出最像的圖
片,但這種方法的效果是不好的,因為單純的pixel所能夠表達的信息太少了
我們需要使用Auto-encoder對圖像進行降維和特徵提取,並在編碼得到的code所在空間做檢索

下圖展示了Encoder的過程,並給出了原圖與Decoder後的圖像對比

這麼做的好處如下:

  • Auto-encoder可以通過降維提取出一張圖像中最有用的特徵信息,包括pixel與pixel之間的關係
  • 降維之後數據的size變小了,這意味著模型所需的參數也變少了,同樣的數據量對參數更少的模型來說,可以訓練出更精確的結果,一定程度上避免了過擬合的發生
  • Auto-encoder是一個無監督學習的方法,數據不需要人工打上標籤,這意味著我們只需簡單處理就可以獲得大量的可用數據

下圖給出了分別以原圖的pixel計算相似度和以auto-encoder後的code計算相似度的兩種方法在圖像檢
索上的結果,可以看到,通過pixel檢索到的圖像會出現很多奇怪的物品,而通過code檢索到的圖像則都是人臉

可能有些人臉在原圖的pixel上看起來並不像,但把它們投影到256維的空間中卻是相像的,可能在投影
空間中某一維就代表了人臉的特徵,因此能夠被檢索出來


Pre-training DNN

在訓練神經網絡的時候,我們一般都會對如何初始化參數比較困擾,預訓練(pre-training)是一種尋找比
較好的參數初始化值的方法,而我們可以用Auto-encoder來做pre-training

以MNIST數據集為例,我們對每層hidden layer都做一次auto-encoder,使每一層都能夠提取到上一
層最佳的特徵向量

這裡用 x-z-x 來表示一個自編碼器,其中x表述輸入輸出層的維數, z表示隱藏層的維數

  • 首先使input通過一個784-1000-784的自編碼器,當該自編碼器訓練穩定後,就把參數W1固定住,然後將數據集中所有784維的圖像都轉化為1000維的vector
  • 注意! 如果hidden layer 比input還大的時候(code 比 input 大) ,還要加一個很強的regularization!
    對1000維output做L1 的regularization,會希望這1000維的output是sparse,這1000維裡有幾維是有值的,其他都要是0
    避免auto-encoder直接把input硬背起來,再輸出的問題
  • 接下來再讓這些1000維的vector通過一個 1000-1000-1000 的編碼器,當其訓練穩定後,再把參數W2固定住,對數據集再做一次轉換
  • 接下來再用轉換後的數據集去訓練第三個1000-500-1000的自編碼器,訓練穩定後固定W3,數據集再次更新轉化為500維
  • 此時三個隱藏層的參數W1、W2、W3就是訓練整個神經網絡時的參數初始值
  • 然後隨機初始化最後一個隱藏層到輸出層之間的參數W4
  • 再用反向傳播去調整一遍參數,因為W1、W2、W3都已經是很好的參數值了,這裡只是做微調,這個步驟也因此得名為Find-tune

由於現在訓練機器的條件比以往更好,因此pre-training並不是必要的,但它也有自己的優勢

如果你只有大量的unlabeled data和少量的labeled data,那你可以先用這些unlabeled data把W1、W2
、W3先初始化好,最後再用labeled data去微調W1~W4 即可
因此pre-training在有大量unlabeled data的場景下(如半監督學習)是比較有用的

CNN

CNN as Encoder

處理圖像通常都會用卷積神經網路CNN,他的基本思想是交替使用卷積層(concolution)與池化層(pooling),讓圖像越來越小,最終展平,這個過程跟Encoder是類似的

理論上要實現自編碼器,Decoder只需要做跟Encoder相反的事即可,那對CNN來說,解碼的過程也就
變成了交替使用去卷積層和去池化層即可

那甚麼是Deconvolution和Unpooing呢?

Unpooling

做pooling的時候,假如得到一個4*4的matirx,就把每4個pixel分為一組,從每組中挑一個最大的留下

如果要做Unpooling,就需要提前紀錄pooling所挑選的pixel在原圖中的位置,下圖中用灰色框標註

然後做Unpooling,就要把當前的matrix放大到原來的四倍,也就是把2×2 matrix裡的pixel按照原先記
錄的位置插入放大後的4×4 matrix中,其餘項補0即可

當然這不是唯一的做法,在Keras中,pooling並沒有記錄原先的位置,做Unpooling的時候就是直接把
pixel的值複製四份填充到擴大後的matrix裡即可

Deconvolution

實際上,Deconvolution就是convolution

這裡以一維的Convolution為例,假設輸入是5維,過濾器(filter)的大小是3
卷積的過程就是每三個相鄰的點通過過濾器生成一個新的點,如下圖左側所示

在你的想像中,去卷積的過程應該是每個點都生成三個點,不同的點對生成同一個點的貢獻值相加;但
實際上,這個過程就相當於在周圍補0之後再次做卷積,如下圖右側所示,兩個過程是等價的

卷積和去卷積的過程中,不同點在於,去卷積需要補零且過濾器的weight與卷積是相反的

  • 在卷積的過程中,依續是橘線、藍線、綠線
  • 在去卷積的過程中,依序是綠線、藍線、橘線

因此在實踐過程中,去卷積的時候可以直接做Convolution就可以了

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

[閱讀心得#7]成為1%的創業存活者

by wenwu 2021-06-28

[閱讀心得#7]成為1%的創業存活者

貝克街王繁捷如何以20萬創造5000萬業績?如何用一塊蛋糕年賺千萬

好像是在yale 的 Instagram看到他讀這本書,然後慢慢才對這本書有一點興趣。而且廣告打得很強,害我漸漸想讀這本書,知道王繁捷這個人是誰?他的蛋糕是怎麼賣的?

在讀這本書之前,我不知道貝克街蛋糕,也不知道王繁捷
我是因為這本書才知道,他這個人以及他的蛋糕品牌的。
只能說他的行銷做的很不錯,我不太會花錢買高單價蛋糕,但是也認識了貝克街
而且訂閱貝克街的內容相當不錯,我記得寄到信箱不是廣告,而是一篇行銷內容分享
這反而引起我的興趣,就像書裡寫的,沒有靈魂的廣告是無法吸引人的
讀完這本書的感覺是,他真的將很多創業的內容寫至書中,讓人很輕易的了解創業的細節
但是最重點的是,我真的覺得他很會行銷,看完書好像必須來體驗看看貝克街的商品(整本書就是最好的廣告XD)

如果你要創業一定要讀這本,或者你只想了解創業的血汗史,也可以把書帶回家 成為1%的創業存活者
下面簡單摘入我最喜歡的部分


創業前必備的四個能力

如果你正在想你要不要創業,你可以用這四個實力測試看自己

  • 實力
  • 抗壓力
  • 溝通力
  • 解決力

很多地方可以測試這些能力,像大學社團、各樣的比賽
其實看完第一篇,應該就有很多人打退堂鼓了,因為創業真的不是一件簡單的事情
就像馬克斯說的:如果你需要別人鼓勵,那你不適合創業


不要隨便相信專業

如果你讀完一整本書,你就知道王繁捷有很多事情都自己來:廣告投放、行銷、文案
這些東西都可以外包給別人,但其實自己來也可以達到同樣效果,甚至更好

我很喜歡書裡面寫的,如果你自己下手寫這些東西,才會有你的風格
有時候簡單的東西,就能夠看出這個是你的品牌

有些事,反而自己做比較好


最容易忽略的隱形成本

  • 税:營業稅、營所稅、個人所得稅
  • 勞健保:員工和老闆的勞保、健保、勞退
  • 廣告費:網路行銷、店面租金、廣告公司
  • 老闆自己的薪水

大家很容易忽略這些,尤其是忘記算自己的薪水,如果你一個月做多少產本,就需要將自己的薪水平均在這些產品中


想像一下,如果你做這件事賠錢,你需要多久才能賺回來,幾個月嗎?還是幾年?
如果幾個月的話,王繁捷說他會馬上去做
但是幾年的話,他可能就不會下手了
所有器材買不了最貴,只買得了CP值最高的
這就是創業者需要做出的抉擇,每一步都精打細算,只為了走的長久

在書裡也提到很多創業定位的觀念,簡單而且清楚
我覺得這本書是貝克街最大的廣告 大家不妨買回家看吧
成為1%的創業存活者

2021-06-28 0 comment
0 FacebookTwitterPinterestEmail
閱讀筆記

[閱讀心得#6]鯨吞億萬 Billion Dollar Whale

by wenwu 2021-05-24

鯨吞億萬 Billion Dollar Whale

一位大馬華人,行騙華爾街以及好萊塢的真實故事。

不得不說這真的是一本很精彩的書。沒有想到這場為期十幾年,高達數百億美金的行竊就發生在真實人生,並且劉特佐還逍遙法外。

老實說我對金融的世界並沒有多少的認識,但是這本書從劉特佐小時候開始說起,從頭到尾詳細的敘述劉特佐是如何從一個普通富裕的家庭,攀關係到大馬首相、各國國王以及首相,並輕而易舉的在華爾街、好萊塢中有影響的地位。


首先,必須從青少年的劉特佐說起,劉特佐到別人家的豪宅中,擅自換掉別人家的照片,換成自己與家人的照片,並且留念。劉特佐在大學的時候,開了一場一場的生日配對,令同學誇眼相看,大家都傳說著他是馬來西亞的王子(如果了解馬來西亞就會知道這是一個笑話,馬來西亞根本沒有王子),更傳說他是亞洲gasbey (大亨小傳的主角)。但是其實派對的經費,只付了頭期款,之後還拜託酒吧分期付款,打折才付完。

的確蠻有趣的,劉特佐似乎喜歡過這樣的生活,就算他其實沒有能力,想盡辦法也要過到這種生活。

劉特佐很重視人脈,他也很容易看到人的需要。當初他就是牽線大馬的首相以及沙烏地阿拉伯的王子,開始了這個掏空馬來西亞至少百億美元的一馬企業(一個馬來西亞發展有限公司)

一開始,首相納吉相信,這樣的合作可以帶來馬來西亞的經濟發展,提供十億美元的資金。但是劉特佐並沒有在一馬公司掛名,卻有絕對的權利。在這十幾年的過程中,用無數的空殼公司,騙過金融界的高手,一個洞一個洞鑽。不斷的需要有人提供資金填補漏洞。

在這本書提到很多精彩的過程:

  • 投資“華爾街之狼”,在好萊塢和各大知名明星中走跳
  • 隱匿資金,投資房地產
  • 洗錢,高價購買名畫
  • 發出35億美金的基金、垃圾金融商品
  • ….

到最後,終於有人揭穿一馬公司的真相。但是最倒霉的是馬來西亞的人民…


書中很詳細的提到劉特佐行騙世界各地的惡行。連我這個門外漢也能夠簡單的讀懂。
如果想買新書可以直接從博客來購買喔:鯨吞億萬

2021-05-24 0 comment
1 FacebookTwitterPinterestEmail
機器學習

Unsupervised Learning: Neighbor Embedding

by wenwu 2021-05-20

Unsupervised Learning: Neighbor Embedding

今天要介紹的是一種非線性的降維方法,就是Neighbor Embedding

Manifold Learning

很多時候我們的樣本分佈可能在一個高維空間,但是樣本的分布點可能只是在低維空間裡面,被扭曲到高維空間中。像是地球表面就是一個Manifold,他是一個二維平面,卻被塞到三維空間裡

在Manifold中,只有距離很近的點可以使用歐式距離(Euclidean Distance)。Manifold Learning 要做的就是把塞在高維空間的低維空間攤平。


Locally Linear Embedding

局部線性嵌入,Locally Linear Embedding,簡稱LLE

假設在原來的空間中,樣本點的分佈如下所示,我們關注 x^i 和它的鄰居x^j ,用 w_ij 來描述兩者的關係
假設每一個樣本點都是可以用它的neighbor做linear combination組合而成,那 w_ij 就是拿 x^j 去組合 x^i 時的權重weight,因此找點與點的關係 w_ij 這個問題就轉換成,找一組使得所有樣本點與周圍點線性組合的差距能夠最小的參數 w_ij

接下來就要做Dimension Reduction,把 x^j和 x^i 降維到z^j和 z^i,並且保持降維前後兩個點之間的關係 w_ij 是不變的

LLE的具体做法如下:

  • 在原先的高維空間中找到 x^i 和 x^j 之間的關係 w_ij 以後就把它固定住
  • 使 x^i 和 x^j 降維到新的低維空間上的 z^j和 z^i
  • z^j和 z^i 需要minimize下面的式子:
  • 即在原本的空間裡,x^i 可以由周圍點通過參數 w_ij 進行線性組合得到,則要求在降維後的空間裡, z^i 也可以用同樣的線性組合得到

實際上,LLE並沒有給出明確的降維函數,它沒有明確地告訴我們怎麼從x^i降維到z^i ,只是給出了降維前後的約束條件
在實際應用LLE的時候,對x^i來說,需要選擇合適的鄰居點數目K才會得到好的結果
下圖給出了原始paper中的實驗結果,K太小或太大得到的結果都不太好,注意到在原先的空間裡,只有距離很近的點之間的關係需要被保持住,如果K選的很大,就會選中一些由於空間扭曲才導致距離接近的點,而這些點的關係我們並不希望在降維後還能被保留

222

Laplacian Eigenmaps

另一種方法叫拉普拉斯特徵映射,Laplacian Eigenmaps

如果 x^i 和 x^j 在high density區域上是相近的,即相似度 w_ij 很大,則降 維後的 z^i 和 z^j 也需要很接近,總體來說就是讓下面的式子盡可能越小越好

注意,與LLE不同的是,這裡的 w_ij 表示x^i 和 x^j這兩點的相似度,上式也可以寫成

但光有上面這個式子是不夠的,假如令所有的z相等,比如令z^i=z^j=0,那上式就會直接停止更新

在semi-supervised中,如果所有label z^i 都設成一樣,會使得supervised部分的 ΣC(y^r,y^r(估計值))變得很大,因此lost就會很大,但在這裡少了supervised的約束,因此我們需要給 z 一些額外的約束:

  • 假設降維後 所處的空間為M維,則{z¹,z², … , z^N} =R^M ,我們希望降維後的 z 佔據整個M維的空間,而不希望它活在一個比M更低維的空間裡
  • 最終解出來的 z 其實就是Graph Laplacian L 比較小的特徵值所對應的特徵向量

這也是Laplacian Eigenmaps名稱的由來,我們找的 就是Laplacian matrix的特徵向量 如果通過拉普拉斯特徵映射找到 之後再對其利用K-means做聚類,就叫做譜聚類(spectral clustering)


t-SNE

t-SNE,全稱為T-distributed Stochastic Neighbor Embedding,t分佈隨機鄰居嵌入

shortage of LLE

前面的方法只假設了相鄰的點要接近,卻㡪有假設不相近的點要分開

所以在MNIST使用LLE會遇到下圖的情形,它確實會把同一個class的點都聚集在一起,卻沒有辦法避免不同class的點重疊在一個區域,這就會導致依舊無法區分不同class的現象
COIL-20數據集包含了同一張圖片進行旋轉之後的不同形態,對其使用LLE降維後得到的結 果是,同一個圓圈代表同張圖像旋轉的不同姿態,但許多圓圈之間存在重疊

How t-SNE works

做t-SNE同樣要降維,在原來x的分佈空間上,我們需要計算所有 x^i 與 x^j 之間的相似度 S(x^i,x^j)
然後需要將其做歸一化: P(x^j|x^i),即x^i 與 x^j的相似度佔所有與 x^i 相關的 相似度的比例
將x降維到z ,同樣可以計算相似度S’(z^i,z^j),並作歸一化

注意,這裡的歸一化是有必要的,因為我們無法判斷在 x 和 z 所在的空間裡, S(x^i,x^j) 與S’(z^i,z^j) 的範圍是否是一致的,需要將其映射到一個統一的概率區間
我們希望找到的投影空間 z,可以讓 P(x^j|x^i) 和Q(z^j|z^i)的分佈越接近越好

How to use

t-SNE會計算所有樣本點之間的相似度,運算量會比較大,當數據量大的時候跑起來效率會比較低

常見的做法是對原先的空間用類似PCA的方法先做一次降維,然後用t-SNE對這個簡單降 維空間再做一次更深層次的降維,以期減少運算量

值得注意的是,t-SNE的式子無法對新的樣本點進行處理,一旦出現新的 x^i,就需要重新跑一遍該算法,所以t-SNE通常不是用來訓練模型的,他更適合用於估定數據的可視化

t-SNE常用於將固定的高維數據可視化到二維平面上


Conclusion

  • LLE(Locally Linear Embedding),局部線性嵌入算法,主要思想是降維前後,每個點與周圍鄰居的線性組合關​​係不變
  • Laplacian Eigenmaps,拉普拉斯特徵映射,主要思想是在high density的區域,如果x^i、x^j 這兩個點相似度w_ij 高,則投影后的距離叫小
  • t-SNE(t-distribution Stochastic Neighbor Embedding),t分佈隨機鄰居嵌入,主要思想是,通過降維前後計算相似度由RBF function轉換為t-distribution,在聚集相似點的同時,拉開不相似點的距離,比較適合用在數據固定的可視化領域
2021-05-20 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,064
  • 729,810
  • 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