機器學習和深度學習之數(shù)學基礎-線性代數(shù) 第一節(jié) 向量及線性映射

本文為原創(chuàng)文章,歡迎轉載帚湘,但請務必注明出處。

線性代數(shù)是機器學習和深度學習算法的數(shù)學基礎之一甚淡,這個系列的文章主要描述在AI算法中可能涉及的線性代數(shù)相關的基本概念和運算大诸。本文主要參考Garrett Thomas(2018),Marc Peter Deisenroth(2018)贯卦,Strang(2003)资柔,José Miguel Figueroa-O’Farrill, Isaiah Lankham(UCD, MAT67,2012)等教授的相關講座和教材撵割。本文的主要內容包括向量的基本概念建邓,向量空間,線性組合睁枕、線性無關官边、線性相關、基以及線性映射外遇。

1注簿、向量的基本概念

線性代數(shù)的研究對象是向量(vector),在數(shù)學上通常稱之為“幾何向量(geometric vector)”跳仿,使用“字母頭上一個箭頭”(必須要吐槽一下簡書的編輯器诡渴,不支持Latex)來表示(如圖一所示),這個時候菲语,向量就可以表示為空間的一個點妄辩。而在計算機領域,向量通常使用黑體小寫字母表示山上,如 xy 眼耀。

圖一: 二維空間的兩個向量∨搴叮空間內的向量可以用空間中對應的點表示

通常哮伟,滿足以下兩個運算條件的對象都可以看成是向量:

  • 對象之間可以進行相加運算干花;
  • 對象可以乘以一個標量得到同樣類型的另一個對象。

比如向量 xy 可以相加: x + y = z楞黄, 那么 z 也是向量池凄; 另外,向量 x 乘以標量 λ∈? 得到 λx 也是向量鬼廓。從這個角度來說肿仑,多項式(polynomials)也是向量(兩個多項式相加仍是多項式,一個多項式乘以一個標量同樣還是多項式)碎税。 還有尤慰,任何數(shù)字信號也是向量。

圖二表示了向量相加及向量與標量相乘蚣录,其中(a)表示兩個向量相加,其結果向量的長度是是兩個向量組成的平行四邊形的對角線的長度眷篇,方向與兩個向量的方向相同萎河;(b)是向量與標量相乘,其結果向量與原向量在同一個直線上蕉饼,方向由標量的符號決定(正為同方向虐杯,負為反方向),結果向量的長度由標量的絕對值決定昧港,如果標量的絕對值在0和1之間擎椰,那么向量的長度被同比例壓縮;如果標量的絕對值的絕對值大于或等于1创肥,那么向量的長度被同比拉升达舒;(c)是表示了一個三維空間的向量。三維空間里叹侄,兩個向量(如果不在一個直線上)可以確定一個平面巩搏,3個向量(如果不在同一個直線或同一個平面上)可以確定一個立體柱體。

圖二:向量相加及向量與標量相乘

需要說明的是向量和計算機語言中的數(shù)組是不同概念趾代。數(shù)組是計算機編程語言的一種數(shù)據結構贯底,不具有向量的運算特性,比如python中list 和 numpy 中的array 是有本質區(qū)別的撒强,雖然他們都有類似的編程訪問特性(比如都可以根據下標隨機訪問任何一個元素禽捆,可以切片訪問一個子序列等),但是只有array 實現(xiàn)了向量的運算(比如向量的內積運算等)飘哨。

2胚想、向量空間

向量空間(vector space,又稱為線性空間)是線性代數(shù)的基本概念之一芽隆。本文開始提到了成為向量所需要的兩種運算條件(或兩個特性)顿仇,而向量空間的定義就是基于這兩個特性淘正。向量空間定義:一個向量空間 V 是向量的集合,在這個集合上定義了向量的兩種運算:

  • 向量之間可以相加臼闻,即x+y∈V鸿吆, 其中 x,y∈V;
  • 向量可以乘以一個稱為標量(scalar)的實數(shù)述呐,即αx∈V惩淳, 其中x∈V,α∈?。

以上兩個條件又構成了向量空間的“閉包”(closure)特性乓搬。也就是說思犁,向量空間中的向量進行以上兩種運算后,其結果仍然在該向量空間中进肯。

向量空間 V 必須滿足:

  • 存在加法單位元激蹲,記作 0(即零向量),使得 x+0=x江掩, 這里 x∈V学辱;
  • 對于任意 x∈V, 存在加法逆元(又稱為相反數(shù))环形,記作 -x挂捅,使得 x+(?x)=0卵慰;
  • 在實數(shù)集 ? 中存在乘法單位元抵窒,記為 1丑孩,使得 1x=x,這里 x∈V火本;
  • 交換律(commutativity):x+y=y+x;
  • 結合律(associativity):(x+y)+z=x+(y+z)危队, α(βx)=(αβ)x, 這里 x,y,z∈V,α,β∈?钙畔;
  • 分配律(distributivity):α(x+y)=αxy 和 (α+β)xxx交掏, 這里x,y∈V,α,β∈ ?。

3刃鳄、線性組合盅弛、線性無關、向量張成與向量空間的基

3.1叔锐、線性組合

線性組合(linear combination)定義:對于向量空間 V 中的一組非零向量集 v1,v2,...,vn 挪鹏,有一組標量(即實數(shù))α12,...,αn,則等式:

稱為向量空間 V 中向量集v1,v2,...,vn 的線性組合愉烙。

3.2讨盒、線性無關與線性有關

線性無關(linearly independent)定義:對于向量空間 V 中的一組非零向量集 v1,v2,...,vn ,當且僅當α12=...=αn=0時步责,等式

成立返顺,那么稱非零向量集 v1,v2,...,vn是線性無關的禀苦。

如果存在一個 αi≠0 使得上式成立,那么稱非零向量集 v1,v2,...,vn 是線性相關的 (linearly dependent)遂鹊。 這說明在這 n 個向量中振乏,其中至少有一個向量是剩下的 n?1 個向量的線性組合。比如秉扑,假設α1≠0, 那么根據上式慧邮,有

那么有

v1v2,...,vn 的一個線性組合。

3.3舟陆、張成span

張成(span)定義:向量空間 V中的非零向量集 v1,v2,...,vn 的張成是指v1,v2,...,vn的線性組合所得到的所有向量所組成的集合误澳。用數(shù)學表達就是:

這個集合構成了原向量空間 V的一個子空間(最小子空間)。這里特別說明是最小子空間是因為v1,v2,...,vn 可能存在線性相關性秦躯。

3.4忆谓、向量空間的基

向量空間的基(basis)的定義:如果非零向量集v1,v2,...,vn線性無關,而且span(v1,v2,...,vn)=V(即這些向量集的張成就是整個向量空間)踱承,那么向量集v1,v2,...,vn稱為向量空間V的基倡缠。這也是一個向量集能稱為一個向量空間的基所必須滿足的兩個條件。

如果這些向量之間兩兩相互正交(即向量兩兩垂直勾扭,也即向量之間的內積為0)毡琉,那么稱v1,v2,...,vn是向量空間 V 的正交基(orthogonal basis)铁瞒。如果正交基的向量長度為1(即向量歸一化)妙色,那么稱之為標準正交基或規(guī)范正交基

我們直觀的可以簡單的理解標準正交基就是我們直角坐標系里的兩個軸慧耍。比如二維平面坐標系里的標準正交基是[1,0]? (表示x-軸上的標準正交基身辨,即這個基位于(1,0)點) 和[0,1]?(表示x-軸上的標準正交基,即這個基位于(0,1)點)芍碧,那么平面直角坐標系里的所有向量(或所有點)都可以通過這兩個標準正交基向量的線性組合得到煌珊,也就是說這兩個標準正交基向量的張成是整個二維平面空間。

3.5泌豆、向量空間的維數(shù)

向量空間的維數(shù)(dimension)定義: 在有限維(finite-dimensional)向量空間 V中構成向量空間基的向量的數(shù)量稱為向量空間 V 的維數(shù)定庵, 記作dim(V)。(如果一個向量空間是被有限數(shù)量的向量張成踪危,那么該向量空間被稱為有限維數(shù)finite-dimensional蔬浙,否則稱為無限維數(shù))。

從這里可以看出贞远,空間維數(shù)不能簡單的根據一個向量中含有的元素的個數(shù)來判斷畴博。比如上面說到的二維平面空間,之所以叫二維蓝仲,是因為有2個標準正交基俱病。還有3為立體空間官疲,在3維直角坐標系中,x-軸亮隙,y-軸途凫,z-軸的上的標準正交基分別是[1,0,0]?,[0,1,0]?咱揍,[0,0,1]?颖榜。這三個標準正交基的張成構成了整個3維空間。假設一個平面在這個3為空間中煤裙,我們知道在這個時候平面是2維的掩完,但是為什么是2維呢?因為3維空間中的任何一個平面可以由兩個不在同一條直線上的基向量決定硼砰,所以3維空間中的平面是2維的且蓬。

4、歐氏空間 ?n

通常情況下题翰,在機器學習中我們把多維向量組成的空間稱為歐氏空間(Euclidean space)恶阴,即x∈?n。

一般來說豹障,對于向量空間 ?n冯事, 以下的的一組 n 個向量集:{[1,0,...,0]?,[0,1,...,0]?,...,[0,0,...,1]?} 稱為 ?n 的基, 也稱為空間 ?n 的正則基(canonical basis)血公。這也就說明為什么向量空間 ?n 的維數(shù)是 n昵仅, 這是因為這里有 n 個正則基,所以說向量空間 ?n 的維數(shù)是 n累魔,而不是因為每個正則基有 n 個元素而說向量空間 ?n 的維數(shù)是 n摔笤。 這一點不要混淆。其實垦写,如果我們考慮二維空間 ?2吕世, 它的正則集就是分別沿著x軸和y軸正方向的單位向量:[1,0]? 和 [0,1]?

在機器學習中, 我們一般都是在使用了正則基的歐氏空間 ?n 中討論向量間的各種運算梯投,而且向量通常表示為列向量(沒有別的原因命辖,只是為了方便,你也可以表示為行向量):

于是根據向量空間的閉包性質分蓖,有(歐氏空間可以看成是由標準正交基張成的向量空間):

歐氏空間通常是在數(shù)學上用來表示物理空間尔艇,比如表示空間中兩點(即兩個向量)的距離,向量的長度咆疗,向量之間的夾角等漓帚。

5、子空間

子空間(subspace)的定義: 給定一個向量空間 V午磁, 那么 S?V 被稱為 V 的子空間尝抖,則 S 必須滿足:

  • 0∈S
  • S 對加法閉包:x,y∈S 則 x+y∈S
  • S 對于標量乘法閉包:x∈S,α∈?毡们, 則 αx∈S。

比如昧辽,一條穿過原點的直線是歐氏空間的一個子空間衙熔。

圖三,并不是所有2維空間的子集都構成二維空間的子空間搅荞。這里红氯,圖A和圖C不是子空間,因為他們沒有滿足“閉包”的性質咕痛,圖B沒有包括0點痢甘,所以也不是子空間,只有圖D是子空間茉贡。圖片來自(Marc Peter Deisenroth, et al 2018)

如果 U 和 W 是V 的子空間塞栅,那么他們的和(sum)定義為:

可以看出 U + W 也是V的子空間。如果 U ∩ W = {0}腔丧, 那么這個“和”就稱為 “直和(direct sum)”放椰, 記作 U ⊕ W。任何在 U ⊕ W 中的向量都可以唯一的記作 u + w愉粤, 其中 u∈U,w∈W砾医。 (這是直和的充要條件)。另外衣厘,對于維度有

于是如蚜,對于直和的維數(shù)有

這是因為對于直和,有 dim( U ∩ W )=dim( {0} )=0

6头滔、線性映射

線性映射(linear map) 是指通過函數(shù)從一個向量空間映射到另一個向量空間(即線性變換)怖亭。即如果函數(shù) T: V→W 是線性映射涎显,其中 V 和 W 是向量空間坤检,那么函數(shù) T 必須滿足以下條件:

  • T(x+y)=T(x)+T(y), 其中 x,y∈V;
  • T(αx)=αT(x)期吓, 其中 x∈V, α∈?早歇。

也就是說,線性映射兼容向量相加及標量相乘的運算操作(注意讨勤,T(0)=0)箭跳。在習慣上,如果不出現(xiàn)歧義潭千,T(x) 都是記作 Tx (即去掉括號)谱姓。從向量空間V 到向量空間 W 的線性映射函數(shù) T 不止一個,那么所有的線性映射函數(shù)就可以構成從向量空間V 到向量空間 W 的線性映射函數(shù)集刨晴,記作 L(V,W)屉来。如果一個線性映射是從向量空間 V 映射到它自己空間本身(即V=W路翻, L(V,V)=L(V)),那么稱該映射為線性算子(linear operator)茄靠,也被稱為線性轉換(linear transform)茂契,如圖四所示。

圖四:二維平面空間的線性轉換

下面舉例一些線性映射:

  • 零映射(zero map) 0: V→W慨绳, 將 每一個v∈V 映射為 0∈W掉冶,是線性映射;
  • 單元映射(identity map) I: V→V,對每一個 v∈V 有 Iv=v脐雪,是線性映射;
  • 將映射 T:?[z]→?[z] 定義為微分映射 Tp(z)=p′(z)厌小, 那么對于兩個多項式 p(z),q(z)∈?[z] 有

類似的, α∈?,那么

所以微分映射是線性映射。

  • 定義映射 T:?2→?2 為 T(x,y)=(x?2y,3x+y)战秋,那么對于(x,y), (x′,y′)∈?2召锈, 有(注意,這里是用圓括號來表示一個二維向量如(x,y)):

類似的, α∈?,那么

所以這個映射是線性映射获询。

  • 更一般的涨岁,任何映射 T:?n→?m 被定義為(aij∈?):

那么映射 T 就是線性映射。

不是所有的函數(shù)都是線性(映射)的吉嚣,比如指數(shù)函數(shù) f(x)=ex 就不是線性的梢薪,因為 e2x ≠ 2ex。同樣尝哆,函數(shù) f:?→? 定義為 f(x)=x?1 也不是線性的秉撇,因為 f(x+y) = x+y?1 ≠ f(x)+f(y)=x?1+y?1。

線性映射集 L(V,W) 本身就是向量空間秋泄。 假設有兩個線性映射 S,T∈L(V,W), 那么加法定義為:

標量乘法定義為:

這里有一個重要結論:如果給定向量空間的基的值琐馆,那么線性映射是可以完全被確定的,即:

定理1:給定v1,...,vn 是向量空間 V 的一個基恒序, w1,...,wn 是向量空間 W 的任意向量列表瘦麸,那么存在一個唯一的線性映射 T: V→W :
T(vi)=wi,?i=1,2,...,n

另外,線性映射除了可以定義加法和標量乘法歧胁,還可以定義線性映射的合成(composition of linear maps) :給定 U,V,W 是三個向量空間滋饲,假設 S∈L(U,V), T∈L(V,W), 那么定義線性映射的合成T°S∈L(U,W):

T°S 也叫做 T 和 S 的乘積(product),一般記作 TS喊巍。它的性質如下:

  • 交換律(associativity): (T1T2)T3=T1(T2T3), T1∈L(V1,V0), T2∈L(V2,V1), T3∈L(V3,V2).
  • 單元乘積(identity): TI=IT=T, T∈L(V,W)屠缭。這里在 TI 中的 I 是在 (V,V)中的單位映射,而IT 中的 I 是在 L(W,W)中的單位映射崭参, 這點需要區(qū)別呵曹。
  • 分配律(distributivity):(T1+T2)S=T1S+T2S, T(S1+S2)=TS1+TS2,這里 S,S1,S2∈L(U,V)奄喂,T,T1,T2∈L(V,W)

需要注意的是線性映射的乘積一般沒有交換律(commutivity)之剧。例如,假設 T∈L(?[z],?[z])砍聊,定義微分映射函數(shù) Tp(z)=p′(z) 背稼; 另外設S∈L(?[z],?[z]) 定義 Sp(z)=z2p(z), 那么

所以玻蝌,線性映射 T 是通過一個矩陣完成了映射或轉換的操作運算蟹肘。所以,不嚴格的說俯树,線性映射的函數(shù) T 就可以看成矩陣帘腹。上面對線性映射 T 的操作(加法,標量乘法许饿,線性映射合成)對應矩陣的加法阳欲,標量乘法和矩陣之間的乘法(product).

7、零空間(null space)或核(kernel)

對于線性映射 T:V→W陋率, 那么 T 的零空間(null space 或稱為核 kernel) 的定義是在向量空間 V 中使得 Tv=0 的所有向量 v所組成的空間球化,即

例1,假設 T∈L(?[z],?[z]) 是微分映射函數(shù) Tp(z)=p′(z)瓦糟, 那么

例2筒愚,線性映射T(x,y)=(x?2y,3x+y),為了找到null space菩浙,那么需要 T(x,y)=(0,0)巢掺,即求解線性方程組

上面方程組的解為 (x,y)=(0,0), 所以 null(T)={(0,0)}

比如劲蜻,假設一個矩陣A陆淀,那么它的零空間就是所有使得下式成立的所有向量x

8、值域 (range)

線性映射 T:V→W 的值域 (range) 的定義如下:

可以看出先嬉,線性映射 T:V→W 的值域是向量空間 W 的子空間轧苫。

例1: 微分映射 T:?[z]→?[z] 的值域 range(T)=?[z],因為對于任何一個多項式 q∈?[z]坝初,都有一個對應的 p∈?[z] 使得 p′=q浸剩。

例2:線性映射 T(x,y)=(x?2y,3x+y) 的值域是 ?2钾军。 因為對于任意 (z1,z2)∈?2鳄袍, 當 (x,y)=17(z1+2z2,?3z1+z2),那么 T(x,y)=(z1,z2)吏恭。

9拗小、維數(shù)定理

定理2:給定 V 是有限維數(shù)的向量空間,T:V→W 是線性映射樱哼,那么 range(T) 是向量空間 W 的有限維子空間哀九,并且
dim(V)=dim( null(T) )+dim( range(T) )

這個定理將核(kernel)的維數(shù)與值域的維數(shù)聯(lián)系了起來剿配。

線性映射的矩陣

前面我們提到,線性映射可以看成矩陣阅束。那么我們應該怎樣對每個線性映射 T∈L(V,W)(其中 V,W 是有限維數(shù)的向量空間)呼胚,進行矩陣的表示或編碼呢?或者反過來息裸,每一個矩陣是怎么定義了一個線性映射呢蝇更?

給定有限維向量空間 V 和 W,T:V→W 是一個線性映射呼盆。假設 v1,...,vnw1,...,wm 分別是有限維向量空間V和 W 的一個基(basis)年扩,根據定理1,T 是可以通過給定向量 Tv1,...,Tvn∈W 來唯一確定的访圃。由于 w1,...,wm 是 W 的一個基厨幻,那么存在唯一的標量(或實數(shù)) aij∈?, 使得

于是腿时,我們可以組裝這些標量成為了一個 m × n 的矩陣:

通常况脆,上面的M(T) 可以記作 A∈?m×n。需要說明的是批糟,M(T)不僅取決于線性映射 T漠另, 同時也取決于向量空間 V 的基 v1,...,vn 的選擇和 W 的基 w1,...,wm 的選擇。 M(T) 的第 j 列包含了依據據基 w1,...,wm 進行擴展時第 j 個基向量 vj 的各元素對應的系數(shù)(coefficients)跃赚,見下面的例子說明笆搓。

例1:假設線性映射T:?2→?2 的定義是 T(x,y)=(ax+by,cx+dy),a,b,c,d∈?纬傲, 那么對于 二維空間 ?2 的標準正交基為 ((1,0),(0,1))满败,相應的矩陣為:

因為 T(1,0)=(a,c)得到了矩陣第一例,T(0,1)=(b,d)得到了矩陣第二列叹括。

例2:假設線性映射T:?2→?3 的定義是 T(x,y)=(y,x+2y,x+y)算墨,那么關于標準正交基,我們有 T(1,0)=(0,1,1)汁雷,T(0,1)=(1,2,1)净嘀,于是

但是,如果使用 ((1,2),(0,1)) 作為?2的基侠讯,((1,0,0),(0,1,0),(0,0,1))作為?3的基挖藏,那么 T(1,2)=(2,5,3),T(0,1)=(1,2,1)厢漩,于是

例3:假設線性映射S:?2→?2 的定義是 S(x,y)=(y,x)膜眠,如果使用((1,2),(0,1))作為 ?2的基,那么S(1,2)=(2,1)=2(1,2)?3(0,1), S(0,1)=(1,0)=1(1,2)?2(0,1)宵膨, 所以

11架谎、小結

本文主要描述了向量的基本概念,向量空間辟躏,線性組合谷扣、線性無關、線性相關捎琐、線性空間的基以及線性映射抑钟。

  • 線性映射定義了一個函數(shù)。根據這個函數(shù)野哭,向量空間可以被線性映射或轉換到里一個向量空間在塔。
  • 為什么要了解線性映射?因為線性映射的函數(shù)可以看成是通過矩陣完成了映射操作拨黔。所以從這個角度蛔溃,如何定義線性映射是向量空間進行轉換也就是如果定義相應的矩陣。線性映射從一個角度解釋了引入矩陣的物理意義篱蝇,另一個可以引出矩陣概念的是線性方程組贺待。

下一節(jié)介紹矩陣相關的基本概念。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末零截,一起剝皮案震驚了整個濱河市麸塞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涧衙,老刑警劉巖哪工,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異弧哎,居然都是意外死亡雁比,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門撤嫩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偎捎,“玉大人,你說我怎么就攤上這事序攘≤钏” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵程奠,是天一觀的道長丈牢。 經常有香客問我,道長梦染,這世上最難降的妖魔是什么赡麦? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任朴皆,我火速辦了婚禮帕识,結果婚禮上泛粹,老公的妹妹穿的比我還像新娘。我一直安慰自己肮疗,他們只是感情好晶姊,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伪货,像睡著了一般们衙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碱呼,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天蒙挑,我揣著相機與錄音,去河邊找鬼愚臀。 笑死忆蚀,一個胖子當著我的面吹牛,可吹牛的內容都是我干的姑裂。 我是一名探鬼主播馋袜,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼舶斧!你這毒婦竟也來了欣鳖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤茴厉,失蹤者是張志新(化名)和其女友劉穎泽台,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矾缓,經...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡师痕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了而账。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胰坟。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泞辐,靈堂內的尸體忽然破棺而出笔横,到底是詐尸還是另有隱情,我是刑警寧澤咐吼,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布吹缔,位于F島的核電站,受9級特大地震影響锯茄,放射性物質發(fā)生泄漏厢塘。R本人自食惡果不足惜茶没,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晚碾。 院中可真熱鬧抓半,春花似錦、人聲如沸格嘁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糕簿。三九已至探入,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間懂诗,已是汗流浹背蜂嗽。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留殃恒,地道東北人植旧。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像芋类,于是被迫代替她去往敵國和親隆嗅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361