国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

深度學習在股票市場的應用

Yangder / 1265人閱讀

摘要:在過去的幾個月中,我對深度學習非常著迷,特別是它在自然語言處理中的應用。對這篇文章可以簡單總結如下如果我們學習莎士比亞的作品,然后一個字一個字的進行學習。然后這個模型會產生一大堆看起來像莎士比亞風格的文字。

作者:chen_h
微信號 & QQ:862251340
微信公眾號:coderpai
簡書地址:http://www.jianshu.com/p/f9ca...


本文的代碼請點擊這里。Talk is cheap, show me the code.

在過去的幾個月中,我對深度學習非常著迷,特別是它在自然語言處理中的應用。我的大部分職業生涯都是在金融領域度過的,特別是在算法交易和交易數據替換方面。

我寫這篇文章的想法直接來自我的工作經驗。我作為一名“深度學習”的愛好者時,對于深度學習我沒有很深入的了解。但是我希望我的理解可以表達到位,并且可以幫助到你。

為什么股票預測與 NLP 存在關聯性?

在很多的 NLP 問題中,我們最終會把序列編碼成一個固定大小的表示,然后將這個編碼再解碼成另一個序列。例如,我們可能會在文本中進行實體標記,從英文翻譯成法語,或將音頻轉換成文本。在這些領域都出現了大量的工作,并且很多成果都取得了最先進的表現。

在我看來,NLP 與金融數據分析之間的最大不同在于,語言有一定的結構性,雖然這個結構性比較模糊難懂。另一方面,金融市場數據可能是沒有任何結構可以學習的。

在這個文章中,我們假設金融市場數據是存在結構性的,當然這個假設可能是不成立的,我們這個文章可能也會直接推翻這個假設。我們按照 NLP 的語義編碼模型來類比這個市場結構,如果你覺得這個想法沒有意義,那么請閱讀下去,我相信你會覺得會有意義的。

詞向量

詞向量的模型有很多的,Richard Socher 的講座是一個非常好的教程。簡而言之,我們可以用語言模型來描述所有的單詞,并且在坐標圖中進行顯示,并且利用幾何圖形來捕捉單詞之間的關聯性。有一個經典的例子是 “King - man + woman = Queen” ,或者類似別的例子。

詞嵌入是非??岬囊粋€應用,因為我們可以利用一個很濃縮的方式來表示一個詞信息。比較傳統的詞嵌入方法是構建一個包含所有單詞的詞表,如果當前詞是查詢詞,那么該位置設置為 1 ,其余設置為 0 。但是這不是一個有效的方法,而且也沒有任何詞關聯意義。但是通過詞嵌入,我們用一個固定維度的向量來表示一個單詞,然后利用更高維度的幾何特性來尋找詞之間的關聯性。

下圖展示了一個例子。詞向量的模型是需要一個大型的語料庫進行訓練。經過幾天的高密度訓練,每個詞都會得到一個高維度的詞向量。這個“空間”向量會有類似于“距離”的概念,所以我們可以計算哪些詞是互相接近的。該方法的作者舉了一個例子(就是下圖),用來計算跟 Frog 距離近的詞。

但是除了詞,我們對別的事物也可以進行高維度的編碼,比如我們接下來要介紹的金融市場數據。

Market2Vec

第一個我聽說的詞嵌入算法是 word2vec 。我想在金融市場數據上面得到相同的效果,雖然我會使用一些比較不同于 word2vec 的算法。我的輸入數據是 csv 格式的。第一類表示日期,另外的 4*1000 列對應于 1000 只股票的高低開倉價。那么,我們的輸入向量就是 4000 維度的,這個維度太大了。所以,我們第一件事就是把這個高維度的向量壓縮到一個低維度的向量,比如說 300 維度(因為我們喜歡這個電影 ^_^)。

如果你覺得把一個 4000 維度的向量壓縮到 300 維度是一件很難的事,那么你就大錯特錯了。其實這很簡單,我們只需要乘以一個矩陣,矩陣就相當于一個巨大的 excel 表格,每個單元格中都會有一個數字,并且不存在任何的格式。想象一下,我們有一個 4000 列和 300 行的 excel 表格,我們把這個表格與上面的 4000 維度向量進行相乘,那么我們就可以得到一個 300 維度的向量。這個就是最基礎的線性代數知識,你肯定能明白。

那么,現在的難點就是如何去設置這個巨大的表格矩陣,“深度學習” 就是用在這個矩陣的初始化和更新上面。最終,這個電子表格矩陣將會是一個不錯的轉移矩陣,可以將我們的 4000 維度向量轉換成一個簡潔的 300 維度向量。

接下來,我們要做一些比較神奇的事,那就是激活函數。我們要給每一個值加上一個激活函數。將這個激活函數添加到每一個值上面,將每個值的大小歸到 0 到 1 之間。那么,為什么這樣做可以使得我們的向量更加特別,可以學習和理解更加復雜的事。你可以點擊這里進行學習。

那么接下來我們需要處理的重要的事就是如何去找到這個轉移矩陣,使得我們可以損失更少的信息,將高維的股票向量轉換成低維的股票向量。我們希望能利用這個向量來挖掘各個股票之間的相關性,也許我們會發現當某個行業下滑時,另一個行業的股票也會下滑。當然,我們可能也會發現一些別的特征,我認為這對我們將來的研究會非常有用。

初步接觸神經網絡

讓我們先把股票向量放在一邊,來談談語言模型。Andrej Karpathy 寫了一篇很流行的文章 The Unreasonable effectiveness of Recurrent Neural Networks 。對這篇文章可以簡單總結如下:

如果我們學習莎士比亞的作品,然后一個字一個字的進行學習。那么我們可以深度學習來學習一種語言模型。

在這種情況下,語言模型是一個魔術盒。你可以提供一句話的前面幾個字符,模型就會告訴你下一個字符是什么。

如果我們把語言模型的預測結果重新輸入到語言模型,那么我們模型將永遠運行下去。

然后這個模型會產生一大堆看起來像莎士比亞風格的文字。然后,我們也可以將這個思想用在 Linux 源碼上面,然后程序來產生代碼?;蛘?,我們可以用在幾何代數課本上面,讓程序來產生內容。

這個魔術盒的實現機制我們會在后續進行介紹,但是讓我們先來假想一下,Karpathy 是利用前面的一些字符來預測下一個字符,那么我們是否可以根據之前的市場向量,來預測下一個市場表現、市場向量或者別的東西,而這個預測模型就是這個魔術盒。我們還沒有決定我們想要預測的是什么,但是沒有關系,因為我們不會將我們的輸出反饋到我們的輸入中。

更加深入分析 我想指出,從現在開始我們要開始深入的去分析深度學習。到目前為止,我們只是使用單層網絡進行學習,也就是只是使用我們上面設計的按個 4000 * 300 的轉移矩陣。接下來,我們會添加更多的層次,來設計一個深層的神經網絡來設計這個市場向量,這就是深度學習。

所以,Karpathy 向我們介紹了一些 Linux 例子的輸出,下面的代碼就是魔術盒的內容:

static void action_new_function(struct s_stat_info *wb)
{
  unsigned long flags;
  int lel_idx_bit = e->edd, *sys & ~((unsigned long) *FIRST_COMPAT);
  buf[0] = 0xFFFFFFFF & (bit << 4);
  min(inc, slist->bytes);
  printk(KERN_WARNING "Memory allocated %02x/%02x, "
    "original MLL instead
"),
    min(min(multi_run - s->len, max) * num_data_in),
    frame_pos, sz + first_seg);
  div_u64_w(val, inb_p);
  spin_unlock(&disk->queue_lock);
  mutex_unlock(&s->sock->mutex);
  mutex_unlock(&func->mutex);
  return disassemble(info->pending_bh);
}

請注意,該魔術盒可以知道如何去打開和關閉括號,并且能遵守程序的縮進約定,也就是函數代碼的正確縮進,多行 printk 語句也具有正確的內部縮進。這也就意味著這個魔術盒可以理解代碼的遠程依賴關系,即魔術盒可以聯系到前面的代碼進行分析推敲。當它預測在 print 語句中時,它會知道它在一個 print 語句中,并且會記住它是在一個函數中(或者至少記住是在另一個縮進范圍)中。太好了,這就很容易理解,具有捕捉細節和記住長期依賴關系的算法是非常有用的,因為我們也是希望能在市場上找到長期的依賴關系。

深入探索魔術盒

那么這個神奇的魔術盒里面有什么呢?它是一種被稱為 LSTM 的循環神經網絡(RNN)。RNN 是一種深度學習算法,它擅長的是對序列進行操作(如字符序列)。在每一步,它對會對下一個字符進行預測,并且使用一個矩陣記性表示,就像我們之前看到的那樣。因為 RNN 有一些內部的記憶,所以它可以記住一些以前看到的東西。它會使用這個內部記憶來決定下一次輸入中應該如何操作。使用該內存記憶,RNN 可以記住它在一定范圍內的內容,這就是我們為什么可以對輸入文本進行預測處理。


RNN 有一個很好的變體稱為 LSTM,LSTM 巧妙的設計了 RNN 內部的記憶單元,這個單元可以做以下事:

可以選擇性的記住一些東西;

可以選擇性的去忘記一些東西;

選擇應該輸出多少記憶內存;

所以,當一個 LSTM 看到一個 “{” ,并且對自己說“這個非常重要,我應該把它記住” 。而當它這樣做時,它基本上就記住了這是一個嵌套的范圍。一旦看到相應的 “}” ,它就會決定忘記原來的大括號,因此忘記它在一個嵌套的范圍內。

我們可以將幾個 LSTM 堆疊在一起,這樣 LSTM 可以學習到更多的抽象概念?,F在,前一個 LSTM 的輸出變成了下一個 LSTM 的輸入,每個 LSTM 會學習到更加抽象的數據。在上面的例子中(這個只是說明性的猜測解釋),第一層的 LSTM 可能會學習由空格分割的字符,下一層可能會學習像(static void action_new_function)這樣的字符類型,下一層可能會學習函數的概念以及參數等等。雖然 Karpathy 在博客中已經有非常好的說明例子了,但是要清楚的說明每一層的具體任務還是非??嚯y的。

Market2Vec 與 LSTMs 的結合

你可能會注意到,Karpathy 使用字符作為他模型的輸入,而不是詞嵌入(技術上是使用 0-1 編碼)。但是,Lars Eidnes 在 Auto-Generating Clickbait With Recurrent Neural Network 文章中使用詞嵌入來處理。

上圖顯示了他使用的網絡。我們先不考慮 softmax 部分(這部分我們后續介紹),先來看看 LSTM 堆棧和模型的輸入部分。我們發現模型的底部輸入是一系列的單詞向量(記住,一個詞向量表示的是一個單詞的語義)。Lars 輸入一個字向量序列,其中每一個作用如下:

影響第一個 LSTM;

前一個 LSTM 的中間輸出作為下一個 LSTM 的輸入;

前一個 LSTM 輸出的下一個字作為下一個 LSTM 的輸入;

雖然我們要做同樣的事情,但是可能有一點小小的區別,我們不是把字向量作為輸入,而是我們的 Market2Vec ,這個市場向量就是我們之前描述出來的。我們來回顧一下,對于給定的時間點,我們的 MarketVectors 應該包含在這個時間點發生的市場情況的總和。通過 LSTM 的序列化,我們希望能夠捕捉到市場上發生的一個長期依賴關系。通過幾個 LSTM 的堆棧,我們希望可以得到更高層次的市場行為抽象數據。

我們來談談股票

到目前為止,我們還沒有談到算法是如何在實際環境中工作的,我們上面只是談論了如何對數據做巧妙的轉換,把一個高維度的數據轉換成低維度的數據。在接下來的文章中,我們會來具體說如何應用這個算法,但是請記住,正是因為前面的鋪墊才使得后面的應用有了價值。

在 Karpathy 的例子中,LSTM 的輸出是抽象的表示下一個字符的預測向量。在 Eidnes 的例子中,LSTM 是輸出下一個字符向量。這兩種情況的下一步都是將一個抽象的事物表示成一個概率向量,這是一個概率列表,說明每個字符或者單詞在下一個位置出現的可能性。這里則是 softmax 函數在工作了,一旦我們擁有了這個概率列表,我們則需要選擇出最有可能出現的單詞或者字符。

當我們處理“市場預測”的問題時,我們需要問自己,我們真正想要預測的是市場的什么情況?我這里有一些自己的想法,大家可以參考一下:

預測 1000 支股票中每一支股票接下來的價格變化;

預測在接下來的 n 分鐘內,一些指標(S&P,VIX等等)的變化;

預測在接下來的 n 分鐘內,哪些股票的價格將上漲超過 x%;

(我個人最喜歡的)預測哪些股票在接下來的 n 分鐘內,上漲/下跌 2x%,而這段時間內不會下跌/上漲超過 x% ;

(本文將會介紹的)預測在接下來的 n 分鐘,VIX 的值上漲/下跌 2x %,而這段時間內不會下跌/上漲超過 x%;

第一和第二個就是回歸問題,我們必須預測的是一個實際的數字而不是一個特定事件的概率(比如字符 n 出現或者市場上漲)。這個非常準確,但是不是我想做的事。

第三和第四是兩個非常相似的問題,他們都要求預測一個事件(技術術語,就是一個類標簽)。這個事件可能是接下來出現字母是 n ,或者接下來10分鐘內某只股票是否會上升 5%,而不會下降超過 3%。第三和第四之間的權衡關系是,第三個問題更加常見,因此更容易學習到,而第四個問題更加有價值,它不但對利潤有預測,而且對風險也有一定的約束。

第五個問題是我們在這篇文章需要解決的,這個問題跟第三個和第四個問題非常類似,但是它更加容易一些,因為我們有一些機制可以遵循。VIX 指數被稱為恐怖指數,它代表了 S&P 500 指數的股票波動。它是通過觀察指數中每個股票的隱含波動率得出來的。

為什么預測 VIX 指數?

那么我們為什么會去預測 VIX 這個指數呢?原因主要如下:

這只是一個數字,而不是 1000 支股票,這就使得我們在算法設計上會更加簡單,計算成本也會降低很多;

這是多個股票的總結,所以跟大多數股票是相關的;

它不是單純的對我們的輸入數據進行線性組合。隱含的波動率是從一個非常復雜的非線性公式中計算出來的,而 VIX 是基于這個波動率再進行推導得出來的。如果我們可以進行預測,那么這將是一件非常酷的事。

這個是直接可以用來指導交易的額,如果我們真的可以設計出一個有價值的網絡,那么我們就可以直接在線上使用它。

繼續討論 LSTM 和 softmax 函數

在未來幾分鐘內,我們如何使用之前的數據來預測 VIX 的變化呢?對于我們數據集中的每一個點,我會在 5 分鐘后再次看到該數據點的 VIX 變化。如果在那段時間內上升了超過 1%,但是沒有超過 0.5%。那么,我們的模型將輸出 1,否則就是輸出 0。然后我們會得到如下一系列的標簽:

0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0 ….

我們想利用之前壓縮的市場向量,然后輸入到 LSTM 模型中得出最終的概率結果,從技術上來分析,因為我們最終只要輸出一個標簽,我們也可以使用 sigmoid 函數,但是如果我們做二分類結果,還是建議使用 softmax 函數。

所以,在我們深入分析這個算法應用之前,讓我們先來回顧一下我們已經學習了哪些內容:

我們以 1000 支股票的價格作為輸入數據;

數據序列中的每一個時間點都是市場的一個快照反饋。我們使用一個壓縮網絡,將輸入的 4000 維度壓縮到 300 維度;

現在我們有一系列的股票市場向量,我們把這些股票向量輸入堆棧 LSTM 中,然后按照每個時間步驟來進行學習。LSTM 會記住一些市場之前的有效信息,這些信息會影響后續的市場反饋;

我們將第一層 LSTM 的輸出傳遞到另外的 LSTM 結構。這些結構會記住一些更高層次的抽象信息;

最后,我們會根據堆棧 LSTM 的最后輸出,利用 softmax 函數來得到VIX 在接下來5分鐘內上漲 1%,而不下降 0.5%的具體股票;

這個過程是如何選擇的?

現在是最有趣的部分。我們現在所做的一切都可以被稱為是一個前向的過程。當我們訓練算法時,我們也會去做以上的那些步驟,然后部署到生產環境中使用它?,F在我們需要討論的是一個反饋的過程,這個反饋是我們需要在算法中進行學習的過程。

在訓練的過程中,我們不僅準備了數年的歷史訓練數據,還手動準備了一系列的預測目標,0 和 1 都是我們對歷史數據進行打的標簽。

為了學習,我們需要將市場數據輸入我們的神經網絡,并且將網絡的輸出結果和我們的標簽數據進行對比,最后得到一個損失值,這個對比函數就是一個損失函數。在我們的例子中這個對比比較簡單,我們可以將我們的損失函數設計如下:

ERROR = (1/2)*(((precomputed)— (predicted probability))2 )

這就是一個損失函數。也就是說,我們可以去計算出深度學習模型的輸出值與準確值之間的誤差有多大。根據這些誤差,我們可以利用一些更新函數來更新一整個網絡的權重,從而得到一個比較好的模型。

該更新過程會一直更新到模型的開始,所以模型會不斷的調整我們的 MarketVectors 向量,以便我們的 MarketVectors 可以表示更多的信息。

LSTM 模型可以選擇去記住哪些內容和忘記哪些內容,以便模型可以分析那些與我們任務最相關的量。

LSTM 模型還可以學習數據的更加抽象表示,以便模型學習數據更多的特征。

這一點是非常讓我吃驚的,因為深度學習可以學習那么多負責和抽象的東西。我們從前都沒有接觸過這種模型。

一些想法

對于這個項目我還有一些更加深入的想法,一些我可能還會嘗試的想法,并且我認為這些想法對實際項目時有用的。

市場流動性和資金的有效利用

一般來說,特定市場的流動性越高資金的利用效率越高。我認為這是一個雞與蛋之前的循環,而市場變得更加的流動,它能夠吸收更多的資本交易,并且資本收到的損害最小。隨著市場變得更加流動,更多的資本可以在市場中使用,你會發現更多復雜的交易玩家會進入市場。

一個快速的推論是,在一個比較不流動的市場中,競爭并不是那么復雜,所以這樣的機制可能會帶來機會,我會在這樣的市場嘗試交易。

股票市場的新應用

這些算法的知識和架構對計算機領域是比較陳舊的,但是在股票金融領域的應用是一個全新的應用。我們假設一些頂級玩家已經在使用這些技術進行套利,并且可能已經很長一段時間了。但是正如我前面提到的,他們可能是在一個流動性很大的市場進行套利工作,他們需要很大的市場資金規模,這樣才能去平攤他們的運營成本。我認為,下一次的市場應用會在那些流動性比較小的市場,這些市場還沒有被開發完全,存在很大的套利空間。

多個時間幀

雖然我在上面提到的是輸入一個單通道的數據流,但我認為一個更加有效的訓練方法是在多個時間通道上面對市場數據進行訓練。也就是說,我目前采用的是 30 秒采樣一次,我希望網絡可以解決幾個小時的數據依賴關系。

我不知道這個想法是否有意義,但是我認為如果我們可以將計算成本降低到一定程度,那么我們可以把多個時間點進行融合訓練。這個融合模型的訓練我還在思考中,目前有點困難。

MarketVectors

當我們在自然語言處理中,使用的詞向量模型都是在一個預訓練模型之上進行微調的。但是在我們的情況下,沒有一個預訓練好的市場向量可以使用,也沒有一個明確的算法去進行訓練。

我原來的想法是使用一個自動編碼器來進行訓練,就好像這篇論文,但是端到端的訓練好像看起來更加酷。

更重要的考慮是,端到端的序列模型在機器翻譯領域已經比較成熟了,也就是說我們可以把一些文本編碼成一個向量,并且進行解碼。在這種觀點下,我所描述的整個架構本質上就是一個編碼器,但是我還沒有真正的設計出一個解碼器。

但是,對于網絡的第一層,我想設計一個特殊層,即我們需要把輸入的 4000 維度向量降維到一個 300 維度的向量。通過這些低維度的向量,我們需要去找到各個股票之間的一些關聯度。

另一個替代的方向是對每個 LSTM 輸入一個數據,然后編碼成一個輸出向量。但我認為這個可能是無效的,因為各個數據模型之間的相關度會下降很多,并且這種方法會需要 10 倍的計算資源,比較浪費。但是從另一方面來說,這種架構可以多個 GPU 進行訓練,可以提高一點速度。

CNNs

最近,字符級的機器翻譯方面出現了很多的論文。這篇論文帶給了我很多的啟發,因為這篇文章試圖采用 CNN 來解決長距離的依賴關系,而不是 RNN 。我還沒有深入的去閱讀這篇論文,但是我們可以假想一下,我們把每個股票當做一個通道(類似于 RGB圖像的三個通道),然后把每個通道輸入卷積模型中進行卷積操作,從而來捕捉市場的長期依賴信息。這種方法跟他們從字符級別上進行語義編碼的方式是相同的。

算法社區直播課:請點擊這里


作者:chen_h
微信號 & QQ:862251340
簡書地址:http://www.jianshu.com/p/f9ca...

CoderPai 是一個專注于算法實戰的平臺,從基礎的算法到人工智能算法都有設計。如果你對算法實戰感興趣,請快快關注我們吧。加入AI實戰微信群,AI實戰QQ群,ACM算法微信群,ACM算法QQ群。長按或者掃描如下二維碼,關注 “CoderPai” 微信號(coderpai)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41086.html

相關文章

  • 計算機視覺中深度學習:技術、市場和5個你想不到未來

    摘要:接下來,介紹了使用深度學習的計算機視覺系統在農業零售業服裝量身定制廣告制造等產業中的應用和趨勢,以及在這些產業中值得關注的企業。 嵌入式視覺聯盟主編Brian Dipert今天發布博文,介紹了2016年嵌入式視覺峰會(Embedded Vision Summit)中有關深度學習的內容:谷歌工程師Pete Warden介紹如何利用TensorFlow框架,開發為Google Translate...

    baukh789 評論0 收藏0
  • 除了Alpha Go 還有哪些“深度學習”值得關注?

    摘要:訓練和建模邏輯的算法既是瓶頸也是突破口,深度學習的未來應用與發展值得矚目。自研發深度學習系統薄言豆豆人機對話成功率達,是目前比較優秀的的中文理解智能系統。 2016正好是人工智能概念誕生60周年。早在1956年,美國達特茅斯(Dartmouth)大學召開的學術會議上就提出了人工智能的概念。60年里,科學技術的積累使得機器學習、模式識別、人機交互這三個基礎支撐可以得到較為廣泛的應用。隨著一個甲...

    airborne007 評論0 收藏0
  • 深度學習時間序列模型評價

    摘要:技術總言這次主要說最近發展的無監督特征學習和深入學習,其對于時間序列模型問題的評價。建模連續數據的傳統方法包括從假定時間序列模型參數的估計,如自回歸模型和線性動力系統,和著名的隱馬爾可夫模型。此外,時間序列對時間變量有明顯依賴性。 技術總言:這次主要說最近發展的無監督特征學習和深入學習,其對于時間序列模型問題的評價。這些技術已經展現了希望對于建模靜態數據,如計算機視覺,把它們應用到時間序列數...

    zhaochunqi 評論0 收藏0
  • 國內首款FPGA云服務器誕生

    摘要:月日,騰訊云宣布,推出國內首款高性能異構計算基礎設施云服務器,以云服務方式將大型公司才能長期支付使用的推廣到更多企業。此舉讓騰訊云成為國內在云端開放計算服務的云服務商。 1月20日,騰訊云宣布,推出國內首款高性能異構計算基礎設施——FPGA云服務器,以云服務方式將大型公司才能長期支付使用的FPGA推廣到更多企業。騰訊云官網現已開放FPGA使用申請通過FPGA云服務器,企業可以進行FPGA硬件...

    liaosilzu2007 評論0 收藏0
  • 深度學習前瞻:吳恩達 + 百度 > 谷歌嗎?

    摘要:百度北京深度學習實驗室主任余凱和吳是朋友,就是他力勸吳恩達加入百度的,余凱說實驗室確實以基礎技術為目標。實驗結果證實,深度學習是開發機器學習軟件的切實可行的辦法。 百度是中國網民上網時的常用工具,它致力于成為影響全球的力量。作為世界上人工智能領域的頂尖研究員,吳恩達先生能否助其成功挑戰硅谷較大的互聯網公司?百老匯音樂廳位于舊金山北海岸,是新古典主義建筑,已擁有95年歷史,歷經歲月磨蝕,四周環...

    dreamGong 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<