『壹』 什麼是量化交易
量化交易是指以先進的數學模型替代人為的主觀判斷,利用計算機技術磨氏族從龐大的歷史數據中海核燃選能帶來超額收益的多種「大概率」事件以制定策略,極大地減少了投資者情緒瞎弊波動的影響,避免在市場極度狂熱或悲觀的情況下作出非理性的投資決策。
『貳』 中遠海控半年大賺647億元,為何股價卻遲遲不漲
7月6日晚,中遠海控發布2022年上半年的業績預告,預計上半年實現歸母凈利潤約647.16億元,同比增長旦橘約74.45%;扣非凈利潤約644.36億元,同比增長約74.06%。次日,中遠海控早盤高開,一度漲超7%,但隨後回落,此後半個月持續走低。業內觀點認為,中遠海控被深度低估。
自疫情之後,整個航運市場迎來了難得一遇的牛市,中遠海控等全球航運巨頭也在這兩年賺得盆滿缽滿。今年上半年,中遠海控的業績延續上年的「運數」,歸母凈利潤在去年上半年業績爆發的基礎上實現74.45%的高增長,平均日賺約3.6億元。
中遠海控在公告中稱,本期業績預增的主要原因是2022年上半年,國際集裝箱運輸供求關系較為緊張,主幹航線出口運價保持鉛困高位運行。報告期內,中國出口集裝箱運價綜合指數(CCFI)均值為3286.03點,同比增長59%。
但在股市上,中遠海運卻並未獲得同樣的好運。
股價與業績背離的現象,不僅出現在中遠海控一家航運巨頭身上。根據丹麥南方銀行Sydbank的計算,今年上半年,長榮、赫伯羅特、馬士基、陽明、HMM五大航運公司的總市值損失達420億美元。
對於這一現象,有分析稱,一是因為航運行業為周期性行業,目前市場景氣度似乎已經見頂;二是中遠海控2021年的分紅方案存在爭議。根據中遠海控2021年年度權益分派實施公告,中遠海控2021年全年凈利潤約900億元,但分紅比例卻不高,每股分紅還不到9毛錢(含稅)。
近日中信建投的一份報告也顯示,截至2022年7月6日,根據2022年一季度數據,中遠海控A股凈現金/凈資產為1.11,凈現金/凈市值為0.86,PB僅為1.52;中遠海控港股PB已破凈至0.88。預計2022年底A股將破凈至0.96,港股PB將深度破凈至約0.59,港股賬面凈現金約為市值的2倍,企業價值已經為負,處於深度低估狀態。
對於長期跌破凈資產的情況,中遠海控董秘回答稱,從長期來看,市場是有效的,最終決定公司市場價值的是公司所在行業的景氣度、競爭格局、公司經營業績的持續性及核心競爭力。
Sydbank分析稱,雖然收益繼續增長,但航運公司的股價受到了投資者對於未來時間和航運公司未來收益的緊張情緒的影響。
今年上半年,國際海運運價持續下滑,盡管全球港口仍在擁堵,運價卻未能像去年一樣一路飛漲。
注冊國際投資分析師賈亦真分析稱,中遠海控股價疲軟的最重要原因,是行業預期海運的市場將要見頂,見頂之後會再次步入虧損期。他進一步分析,2021年中遠海控的市凈率為2.25倍,而根據今年年中業績的數據,上半年中遠海控的市凈率是1.19倍,「這一數據充分反映了市場看到了未來海運市場運價回落,包括未來全球經濟衰退下滑帶來的風險。」
與此同時,市場下滑所帶來的焦慮情緒也傳導至股民身上。在近期關於中遠海控的投資者提問中,有不少投資者就美西航線運價下滑、消費萎靡等提出疑問。
克拉克森在今年6月13日的一份研究也顯示,目前已將全球海運集裝箱貿易量增長預測下調至1.3%(以TEU計),同時箱海里貿易預測下調至0.5%。全球集運貿易面臨的風險和不確定因素持續增多,當前預測仍存在繼續下調的可能。
Sydbank高級分析師Mikkel Emil Jensen也表示:「隨著利率上升和通脹加劇,消費者的購買力正在被吸走。因此,對商品的需求將減少。與此同時,消費模式也開始從電視、傢具和建築材料轉向旅行等服務。」
市場下行的趨勢已經十分明顯,但需要注意的是,包括中遠海運在內的航運公司自去年開始加大了簽訂長約協議的比重,從而穩定航運公司的收入,緩解即期運價大幅波動造成的影響。
中遠海控副總經理陳帥在今年5月27日舉行的股東大會上也表示,今年公司的簽約目標已經全部完成,簽約價格也較往年有了非常大的提升。
賈亦真分析,長約協議的運價同比至少翻番,歐線一年期的合約價格同比增長或達200%-400%。
據悉,中遠海控的運價收入包括即期協議運價和長約協議運價兩部分,但兩種協議的具體佔比公司不作披露。參考馬士基71%的長約協議,中遠海控的長約協議佔比應該也不低,有分析認為可能槐遲念超過60%。如此一來,即便即期市場運價下滑,長約協議仍然起到托底作用,維持業績。
「這就解釋了為什麼二季度海運費價格高位回落,但中遠海控中報的業績卻出現了進一步增長,創出了單季度盈利的一個峰值。」賈亦真說。
『叄』 02 隱馬爾可夫模型 - HMM的三個問題 - 概率計算問題
01 隱馬爾可夫模型 - 馬爾可夫鏈、HMM參數和性質
假設有三個盒子,編號為1,2,3;每個盒子都裝有黑白兩種顏色的小球,球的比例。如下:
按照下列規則的方式辯姿虧進行有放回的抽取小球,得到球顏色的觀測序列:
1、按照π的概率選擇一個盒子,從盒子中隨機抽取出一個球,記錄顏色後放回盒子中;
2、按照某種條件概率選擇新的盒子,重復該操作;
3、最終得到觀測序列:「白黑白白黑」
例如: 每次抽盒子按一定的概率來抽,也可以理解成隨機抽。
第1次抽了1號盒子①,第2次抽了3號盒子③,第3次抽了2號盒子②.... ; 最終如下:
①→③→②→②→③ 狀態值
白→黑→白→白→黑 觀測值
1、 狀態集合: S={盒子1,盒子2,盒子3}
2、 觀測集合: O={白,黑}
3、 狀態序列和觀測序列的長度 T=5 (我抽了5次)
4、 初始概率分布: π 表示初次抽時,抽到1盒子的概率是0.2,抽到2盒子的概率是0.5,抽到3盒子的概率是0.3。
5、 狀態轉移概率矩陣 A:a11=0.5 表示當前我抽到1盒子,下次還抽到1盒子的概率是0.5;
6、 觀測概率矩陣 - 混淆矩陣 - 為了不和之前的混淆矩陣概冊猛念沖突,可以稱攜神之為發射矩陣,即從一個狀態發射到另一個狀態: B:如最初的圖,b11=第一個盒子抽到白球概率0.4,b12=第一個盒子抽到黑球概率0.6;
在給定參數π、A、B的時候,得到觀測序列為「白黑白白黑」的概率是多少?
這個時候,我們不知道隱含條件,即不知道狀態值:①→③→②→②→③ ;
我們如何根據π、A、B求出測序列為「白黑白白黑」的概率?
下面給出解決方案。
前向-後向演算法 給定模型λ=(A,B,π)和觀測序列Q={q1,q2,...,qT},計算模型λ下觀測到序列Q出現的概率P(Q|λ);
回顧上面的案例 ,λ=(A,B,π)已知。觀測到序列 Q=白→黑→白→白→黑,但我們不知道 狀態序列 I=①→③→②→②→③;我們要求解 P(Q|λ) ,即Q=白→黑→白→白→黑 這個觀測序列發生的概率。 可以用前向-後向演算法來實現 。
Baum-Welch演算法(狀態未知) 已知觀測序列Q={q1,q2,...,qT},估計模型λ=(A,B,π)的參數,使得在該模型下觀測序列P(Q|λ)最大。
Baum-Welch演算法是EM演算法的一個特例,專門用來 求解 隱馬爾科夫中隱狀態參數 λ=(A,B,π) 。即:根據已知的 觀測到序列 Q=白→黑→白→白→黑,去尋找整個模型的一組隱狀態參數λ=(A,B,π),使得在模型中 觀測序列 發生的可能性P(Q|λ)最大。
Viterbi演算法 給定模型λ=(A,B,π)和觀測序列Q={q1,q2,...,qT},求給定觀測序列條件概率P(I|Q,λ)最大的狀態序列I。
已知 觀測到序列 Q=白→黑→白→白→黑,當我們得到λ=(A,B,π)後,我們用 Viterbi演算法 求出在哪一種 狀態序列 發生的可能性最大,即,求出 狀態序列 I=①→③→②→②→③;即,抽取什麼樣的盒子順序,更可能得到白→黑→白→白→黑這種結果。
1、直接計演算法(暴力演算法)
2、前向演算法
3、後向演算法
類似KNN計算最近鄰時候的演算法。《 01 KNN演算法 - 概述 》
也就是說, 暴力演算法 需要一個個遍歷所有的狀態去計算當前狀態發生的概率。
按照概率公式,列舉所有可能的長度為T的狀態序列I={i1,i2,...,iT},求各個狀態序列I與觀測序列Q={q1,q2,...,qT}的聯合概率P(Q,I;λ),然後對所有可能的狀態序列求和,從而得到最終的概率P(Q;λ);
分析: 先思考這樣一個問題:生成「白-黑-白-白-黑」這樣的結果,是不是會有很多種盒子組合的序列來抽取,都會生成這樣一個結果?我把這些可能出現「白-黑-白-白-黑」結果的盒子序列的聯合概率求出來-P(Q,I;λ),即∑P(Q,I) = P(Q) ,P(Q) 是我們觀測到「白-黑-白-白-黑」結果時,符合這個結果的所有狀態序列I出現的概率。
公式運用:
設狀態序列 I=③→②→①→①→②; T=5;
P(I;λ) = π 3 a 32 a 21 a 11 a 12
因為: 在給定狀態序列I後,Q中的每個觀測值都獨立。(貝葉斯網路原理) 貝葉斯網路
所以: P(Q|I;λ)可以用聯乘的方式表示 (獨立可以使用聯合概率)
I = ③→②→①→①→②
Q=白→黑→白→白→黑
P(Q|I;λ) = b 3白 b 2黑 b 1白 b 1白 b 2黑
P(Q,I;λ) = P(Q|I;λ) × P(I;λ)
= b 3白 b 2黑 b 1白 b 1白 b 2黑 × π 3 a 32 a 21 a 11 a 12
若:
I 1 = ③→②→①→①→②
I 2 = ①→②→③→①→②
...
I T = ②→②→①→③→②
都能得出:
Q = 白→黑→白→白→黑
因為我所有的盒子都能取出黑球和白球,所以T的值=3 5 ;
∑P(Q,I;λ) 計算的是 I 1 ~ I T 這些狀態序列情況下,求出的P(Q,I;λ)的和。
前向 和 後向 演算法是運用某種遞歸(遞推)的方式,幫助我們盡快得求解最終結果。
解析: 如果 t 這一時刻觀察到的狀態是 q t = 雨天;其中y={干,濕,濕... 濕}共t個狀態。
先不考慮λ。
α t 是 1時刻~t時刻 所有觀測值y1,y2,...yt ,qt 出現的聯合概率。
β t 是 t+1時刻~T時刻 所有觀測值y t+1 ,y t+2 ,...y T 出現的聯合概率。
前向概率-後向概率 指的其實是在一個觀測序列中,時刻t對應的狀態為si的概率值轉換過來的信息。
分析2~3步的推導: 因為q 1 ~ q t 這些條件對 q t+1 ~ q T 的產生沒有影響 (理由:貝葉斯網路),所以這些條件可以去掉。
定義:給定λ,定義到時刻t部分觀測序列為q1,q2,...,qt且狀態為si的概率為 前向概率 。
記做:
在給定參數π、A、B的時候,得到觀測序列為「白黑白白黑」的概率是多少?
定義:給定λ,定義到時刻t狀態為si的前提下,從t+1到T部分觀測序列為qt+1,qt+2,...,qT的概率為 後向概率 。
記做:
分析上面的公式:
如果一共只有t個時間點,t+1的時刻不存在。那麼t+1以後發生的是必然事件。
所以 β t (i) = P(q t+1 ,q t+2 ,...,q T ) = 1;
如果實在不理解也沒關系,我們姑且認為認為定義了一個初始值,即 β T (i) = 1 ;
從T-1時刻,倒推到1時刻。
首先,β t+1 (j)是什麼?是t+1時刻,在狀態sj的前提下,下圖中圈起來這部分的聯合概率。
β t (j)是什麼?是t時刻,在狀態sj的前提下,下圖中圈起來這部分的聯合概率。
求給定模型λ和觀測序列Q的情況下,在時刻t處於狀態si的概率,記做:
單個狀態概率的意義主要是用於判斷在每個時刻最可能存在的狀態,從而可以得到一個狀態序列作為最終的預測結果。
求給定模型λ和觀測序列Q的情況下,在時刻t處於狀態si並時刻t+1處於狀態sj概率,記做:
03 隱馬爾可夫模型 - HMM的三個問題 - 學習問題
『肆』 關於入行AI的幾個常見問題
這個問題經常被問其。有不少朋友,工作了幾年之後,想轉向AI技術崗位。但感覺自己年紀比較大了,或者有生活壓力,考全日制的研究生不太現實。
偏偏大多數公司招AI工程師的時候,要求應聘者有相關專業碩士學位等學術背書。作為轉行者,應該怎樣提高專業背景?
針對這種情況,筆者的建議是: 從自己原來的專業領域入手 。
比如,一位原本製造業的自動化工程師,肯定對各種工業生產設備比較熟悉,了解各種各樣的電機、感測器,知道這些設備御慶櫻輸出信號的物理含義。
那麼,當工業領域運用機器學習方法時,自動化工程師在特徵工程方面就具備了相當的優勢,這些領域知識,不是純粹搞機器學習的人能比的。
至少在現階段,機器學習、深度學習的實際落地都以數據為主——能夠把實際問題轉化成數值拿去運算,比把運算本身(演算法)做得精巧要來的重要。
因此,轉行的人員如果能夠充分利用之前的專業背景,而不是拋棄它,以前的專業就會成為加分項。以此為突破轉向AI,反而可能比去讀一個學位更容易。
另外,現在許多行業都在嘗試AI+,把AI技術應用於傳統業務。這種大背景之下,如果想 轉向AI崗位,不妨先在自己本行業內尋找機會 。
也許自己現在的單位就在做或者准備做AI+的項目,那麼可以先爭取加入進去。畢竟,在單位內部謀求一份新的工作內容,一般都比跳槽容易。
很多企業在嘗試AI轉型時,會聘用一些有AI背景的咨詢人員,為他們做規劃和解決方案。
外聘人員有機器學習方面的知識和技能,但是他們對業務領域不熟悉,需要本行業的人協助——在這個時候看看能不能成為他們的協助者,通過和專業人員合作來學習AI在實際領域的應用。
假設能夠有這種經歷,或者至少對自己行業的數據有足夠深入的了解,對於業務應用有思考和嘗試,就擁有了XX行業AI實踐經驗。而不必非要通過讀書或者打比賽來提升背景。
這個問題也是蠻典型的。
客觀的來講,一個人去報考一個人工智慧相關專業的研究生,或者自己在家安安心心的學兩三年,之後再去求職,是不是的真的競爭能力就會提高?
雖然學術背景確實是加分項,但是筆者並不推薦「等兩年再入職」這種做法。
首先,當一個人有這個想法的時候,其實是畏難情緒的體現。說白了「等兩年」是一差胡種逃避,而非計劃。
現在不動手,往往並不是真的去學習了,而是從此就放棄了。
另外,就算有些人沒有放棄,真的是去埋頭學了,也不要忘了, 任何行業的高速上升都是有窗口期的 。
目前,人工智慧正處在這樣的一個窗口期。因為需求遠大於供給,因此給大量沒有學術背景的人提供了入行機會。
然而,這樣的窗口稍縱即逝。很可能短則一兩年,長則也不過三四年後就會關閉。等到那個時候,想入職AI,就不是光自學就可以,而是真的必須要有畢業證了。
想入行而不去搶時間點,趁著窗口期趕緊進去,反而說要在那裡等,那麼大概率的結果是將機會錯過。
應該說,在行業內部逆難度而上逐步達到職位升級的概率不是零,但是實際上可能性很小的。
對一個個人而言,以「做數據」的崗位入行,就已經給自己打上了一個標簽,而別人也會以此來對TA進行歸類。
難度不同的崗位,原本門檻不同,人們自然會為它們劃定界限。要從做數據的崗位晉升到做工程,就要沖破一層天花板。
現實當中,真的能夠沖破天花板的人極少。更何況這種原本已經很小的可能性,還受制於行業大勢的。
當行業的崗位缺口開得很大的時候,進去相對還容易一點。
如果是在幾年前,一個鎮叢人從做數據標注工作入行,能接觸到很多演算法專家、機器學習工程師,一邊借著做項目的過程拚命學習,一邊等待機會——像機器學習工程師這類崗位,在一個時期內會非常急需人才——一旦遇到做工程的崗位空缺,就趕緊沖上去。
老闆了解這是一個靠譜的人,願意學習,有學習能力,又做過數據方面的工作,也許確實會給TA一個進階的機會。
但隨著時間的推移,越往後,行業缺口越小,這種職位躍遷的可能性也就隨之加倍縮小。
所以,筆者建議:想做機器學習工程師,就應該以此為目標努力學習,不要猶豫,不要等待,更不要逃避,從現在開始趕緊去學!
大家首先要區分開研究和工程實踐這兩件事。
如果你是想去做研究——在高校、科研院所,或者大公司的研究院里做演算法科學家,那麼可以把重點放在某一項具體的技術上面,比如強化學習。
假設你就是想研究強化學習,那你可以去大學、研究所,還有一些這方面走在比較前沿的公司,諸如Facebook,DeepMind等等,到那裡去求職,做演算法研究。當然,一般走到這一步都至少要有個博士學位才行。
但是如果你想做的是工程,准備求職的是工程類技術崗位,就不是用某一種技術來做區分的了。
在工業界,領域的區分是產品導向的,對標的是一個個應用方向,比如人臉識別、語音識別等。
在應用方向之下,具體用什麼樣的技術則要看當時的需求。並不是說要去做計算機視覺,就只會用cnn就行了。要解決實際問題,往往會將各種學術界的成果結合起來使用,並根據具體的限制與要求進行改進。
在這個過程中,會不會用到某一種技術,決定因素非常多樣,要看該技術能否支持需求解決;客觀的設備、人員、時間是否允許採用這種技術;你的老闆是否有動力做這方面的嘗試等……
做工程的過程中要用到的工具有很多,而無論做工程還是做研究,都要具備最基礎的知識!
經典的機器學習模型,常見的深度學習網路,以及模型訓練和推斷(預測)的整個流程,都必須掌握。
如果你就是對某一種應用特別感興趣,比如就是想要預測股票,那你完全可以自己先試一試,畢竟股票數據到處都有。
雖然早就已經有許多人才和機構嘗試用機器學習的辦法解決投資股票的問題,但直到現在,就長期的股票預測而言,機器還是完敗給人類的。
你要做互聯網金融,或者想去金融企業做機器學習,都還有對應崗位可找,但好像並沒有某一類工業界的職位是讓你一天到晚坐在那兒只預測股票價格的。
至於AI在醫療方面的落地,更多不是技術問題,而是體制壁壘和數據獲取的問題。
要做醫療AI,首先得能和醫院對接上。就算有渠道做到這一步,大量的病例都是手寫的,而且大夫的那種手寫體,有什麼辦法把它電子化,用計算機管理起來?
這獲取數據的第一步,就是目前AI+醫療都還沒有解決的問題。連最基礎的數據管理和統計都沒有,還談什麼數據分析,談什麼AI?
說到筆試和面試,所有的筆試和面試一定會從基礎的知識問起。
比如,面試時面試官往往會選定一種經典模型(早些年是線性回歸,前兩年是邏輯回歸,現在可能已經到了SVM了),問你它的模型函數是什麼?目標函數是什麼?最優化演算法有哪些?然後看你能否把函數公式寫清楚,能否把過程一步步說清楚。
大家不必太功利。有具體的職業目標是好的,但在這個目標之前, 先要把基礎掌握好 。
先學會那些最經典的模型,例如:Linear Regression,Logistic Regression,Naive Bayes,Decision Tree, SVM,HMM,CRF,Clustering,GMM,PCA等。
沉下心來把基礎打牢,到了面試的時候,自然就能對答如流了 。
『伍』 怎樣理解fama french三因子模型
Fama 和French 1993年指出可以建立一個三因子模型來解釋股票回報率。模型認為,一個投資組合(包括單個股票)的超額回報率可由它對三個因子的暴露來解釋,這三個因子是:市場資產組合(Rm− Rf)、市值因子(SMB)、賬面市值比因子(HML)。這個多因子均衡定價模型可以表示為:
E(Rit) − Rft= βi[E(Rmt− Rft] + siE(SMBt) + hiE(HMIt)
其中Rft表示時間t的無風險收益率;Rmt表示時間t的市場收益率;Rit表示資產i在時間t的收益率;E(Rmt) − Rft是市場風險溢價,SMBt為時間t的市值(Size)因子的模擬組合收益率(Small minus Big),HMIt為時間t的賬面市值比(book—to—market)因子的模擬組合收益率(High minus Low)。
β、si和hi分別是三個因子的系數,回歸模型表示如下:
Rit− Rft= ai+ βi(Rmt− Rft) + SiSMBt+ hiHMIt+ εit
但是,我們應該看到,三因子模型並不代表資本定價模型的完結,在最近的研究發現,三因子模型中還有很多未被解釋的部分,如短期反轉、中期動量、波動、偏度、賭博等因素。
『陸』 RSI選股策略詳解
(1)RSI金叉:股票的多頭力量開始強於空頭力量,股價將大幅揚升,這是RSI指標指示的中線買入信號。(2)突破均線,放量:當股票同時帶量向上突破中長期均線時出現的買入信號比較准確,投資者可逢低買入。
『柒』 01 隱馬爾可夫模型 - 馬爾可夫鏈、HMM參數和性質
先直白得講性質: 當前的狀態只和上一時刻有關,在上一時刻之前的任何狀態都和我無關。我們稱其 符合 馬爾可夫性質。
下面是理論化的闡述:
設{X(t), t ∈ T}是一個 隨機過程 ,E為其狀態空間,若對於任意的t1<t2< ...<tn<t,任意的x1,x2,...,xn,x∈E,隨機變數X(t)在已知變數X(t1)=x1,...,X(tn)=xn之下的條件分布函數只與X(tn)=xn有關,而與X(t1)=x1,...,X(tn-1)=xn-1無關,即條件分布函數 滿足 下列等式,此性質稱為 馬爾可夫性 ;如果隨機過程 滿足 馬爾可夫性,則該過程稱為馬爾可夫過程。
馬爾可夫鏈 是指具有馬爾可夫性質的隨機過程。在過程中,在給定當前信息的情況下,過去的信息狀態對於預測將來 狀態 是無關的。
例子: 在今天這個時間點而言,過去的股價走勢對我預測未來的股價是毫無幫助的。
PS:上面馬爾可夫鏈中提到的 狀態 ,在本例指的是 股價 。
在馬爾可夫鏈的每一步,系統根據 概率分布 ,可以從一個狀態變成另外一個狀態,也可以保持當前狀態不變。狀態的改變叫做 轉移 ,狀態改變的相關概率叫做 轉移概率 。
例子: 當前時間狀態下的股價,可以轉變成下一時刻的股價,股價的轉變即 狀態的改變 。這個狀態現在可以上升(股價提高),狀態也可以下降。我可以根據當前股票的價格去決定下一刻股價上升、下降、不變的概率。這種股價變動的概率稱為 狀態轉移概率 。
馬爾可夫鏈中的 三元素是 :狀態空間S、轉移概率矩陣P、初始概率分布π。
1、狀態空間S - 例: S是一個集合,包含所有的狀態 S 股價 ={高,中,低} ;
2、初始概率分布π - 例:
股價剛發行的時候有一個初始價格,我們認為初始價格為高的概率為50%,初始價格為中的概率是30%,初始價格為低的概率是20%。我們記股票價格的初始概率分布為:π=(0.5,0.3,0.2);對應狀態:(高、中、低); 初始概率分布是一個向量 ,如果有n個狀態,π是n維向量。
3、轉移概率矩陣P - 例:
現在有個股價為中,下一個時刻狀態轉變的可能性有三種,中→高、中→低、中→中;將三種轉變的概率。此外當前時刻也有股票的價格屬於低,對應的轉變可能包括低→高、低→低、低→中;即每種狀態都有可能轉變成其他的狀態,若一共有n個狀態,形成的 轉移概率矩陣 應該是n×n階矩陣。這里需要注意的是,股價從高→低,和低→高的概率是不同的。
設將天氣狀態分為晴、陰、雨三種狀態,假定某天的天氣狀態只和上一天的天氣狀態有關,狀態使用1(晴)、2(陰)、3(雨)表示,轉移概率矩陣P如下:
第n+1天天氣狀態為j的概率為:
因此,矩陣P即為條件概率轉移矩陣。矩陣P的第i行元素表示,在上一個狀態為i的時候的分布概率,即每行元素的和必須為1。
隱馬爾可夫模型(Hidden Markov Model, HMM)是一種統計模型,在語音識別、行為識別、NLP、故障診斷等領域具有高效的性能。
HMM是關於時序的概率模型,描述一個含有未知參數的馬爾可夫鏈所生成的不可觀測的狀態隨機序列,再由各個狀態生成觀測隨機序列的過程。
HMM是一個雙重隨機過程---具有一定狀態的隱馬爾可夫鏈和隨機的觀測序列。
HMM隨機生成的狀態隨機序列被稱為狀態序列;每個狀態生成一個觀測,由此產生的觀測隨機序列,被稱為觀測序列。
思考: z1,z2...,zn是 不可觀測的狀態,x1,x2,...xn是 可觀測到的序列 ;不可觀測的狀態覺得可觀測序列的值(z的取值決定x的取值);
1、在 z1、z2 不可觀測 的情況下,x1和z2獨立嗎?x1和x2獨立嗎?
回答: 這個問題可以回顧之前的 貝葉斯網路 來理解。
首先z1,z2都是離散的值,但x1的值可能是離散的也可能是連續的。比如z是天氣情況,每天天氣的改變是離散的。x是因為天氣而改變的一些其他狀態,比如x=(地面是否潮濕、路上行人數量、雨傘銷售數量...);
在z1和z2不可觀測的情況下,x1和z2不獨立,x1和x2也是不獨立的。
2、 在 z1、z2可觀測 的情況下,x1和z2獨立嗎?x1和x2獨立嗎?
回答: 在z1和z2可觀測的情況下,因為x1和z2的取值只和z1有關,所以就獨立了。同樣在給定了z1和z2的情況下,x1和x2也獨立。
請回顧貝葉斯網路中的獨立性問題來思考這個問題。
04 貝葉斯演算法 - 貝葉斯網路
回顧:
一般而言,貝葉斯網路的有向無環圖中的節點表示隨機變數,可以是可觀察到的變數,或隱變數,未知參數等等。連接兩個節點之間的箭頭代表兩個隨機變數之間的因果關系(也就是這兩個隨機變數之間非條件獨立);如果兩個節點間以一個單箭頭連接在一起,表示其中一個節點是「因」,另外一個節點是「果」,從而兩節點之間就會產生一個條件概率值。
PS:每個節點在給定其直接前驅的時候,條件獨立於其非後繼。
HMM 由隱含狀態S、可觀測狀態O、初始狀態概率矩陣π、隱含狀態轉移概率矩陣A、可觀測值轉移矩陣B(又稱為混淆矩陣,Confusion Matrix);
π和A決定了狀態序列,B決定觀測序列,因此HMM可以使用三元符號表示,稱為HMM的三元素:
S可以統計歷史出現的所有狀態;
初始概率分布π,統計S中各個狀態各自出現的概率作為我們的初始概率分布π向量值;
S是所有可能的狀態集合,O是所有可能的觀測集合:
I是長度為T的狀態序列,Q是對應的觀測序列:
S={下雨,陰天,晴天};O={地上干,地上濕}
I = {晴,雨,雨,陰,晴,陰}
Q={干,濕,濕,濕,干,干}
A是隱含狀態轉移概率矩陣:
其中aij是在時刻t處於狀態si的條件下時刻t+1轉移到狀態sj的概率。
a 晴雨 = 某天是晴天條件下,下一天是雨天的概率。 (某一時刻→下一時刻)
B是可觀測值轉移概率矩陣:
其中bij是在時刻t處於狀態si的條件下生成觀測值oj的概率。
b 晴干 = 某天是晴天條件下,某天是地是乾的的概率。 (同一時刻)
π是初始狀態概率向量:
其中πi是在時刻t=1處於狀態si的概率。
π 晴 = 初始第一天是晴天的概率;
π 雨 = 初始第一天是雨天的概率;
p(i t | .....) 表示在從 t-1時刻的觀測值q t-1 ,一直到第1時刻觀測值q1 的條件下,在第t時刻發生狀態的概率。
性質1: 最終分析結果發現,在第t時刻發生狀態的概率it只和t-1時刻有關。
性質2: 第t時刻的觀測值qt只和第t時刻的狀態it有關。
假設有三個盒子,編號為1,2,3;每個盒子都裝有黑白兩種顏色的小球,球的比例。如下:
按照下列規則的方式進行有放回的抽取小球,得到球顏色的觀測序列:
1、按照π的概率選擇一個盒子,從盒子中隨機抽取出一個球,記錄顏色後放回盒子中;
2、按照某種條件概率選擇新的盒子,重復該操作;
3、最終得到觀測序列:「白黑白白黑」
例如: 每次抽盒子按一定的概率來抽,也可以理解成隨機抽。
第1次抽了1號盒子①,第2次抽了3號盒子③,第3次抽了2號盒子②.... ; 最終如下:
①→③→②→②→③ 狀態值
白→黑→白→白→黑 觀測值
1、 狀態集合: S={盒子1,盒子2,盒子3}
2、 觀測集合: O={白,黑}
3、 狀態序列和觀測序列的長度 T=5 (我抽了5次)
4、 初始概率分布: π 表示初次抽時,抽到1盒子的概率是0.2,抽到2盒子的概率是0.5,抽到3盒子的概率是0.3。
5、 狀態轉移概率矩陣 A:a11=0.5 表示當前我抽到1盒子,下次還抽到1盒子的概率是0.5;
6、 觀測概率矩陣 B:如最初的圖,b11=第一個盒子抽到白球概率0.4,b12=第一個盒子抽到黑球概率0.6;
在給定參數π、A、B的時候,得到觀測序列為「白黑白白黑」的概率是多少?
這個時候,我們不知道隱含條件,即不知道狀態值:①→③→②→②→③ ;
我們如何根據π、A、B求出測序列為「白黑白白黑」的概率?
02 隱馬爾可夫模型 - HMM的三個問題 - 概率計算、學習、預測
『捌』 隱性馬爾科夫模型簡介,只聊原理, (保證沒有數學)
隱馬爾科夫模型(Hidden Markov Model,HMM)通常用於處理時間序列數據,即樣本之間有時間序列關系的數據。學生的作答信息是天然的、有時間屬性的序列,非常適合用HMM進行建模。其他的場景還有股票時長,天氣,等等
為了更好地理解HMM,我們可以先從"一階馬爾科夫模型"說起 [1] 一階馬爾科夫模型的基本思想是,一系列事件會相繼發生,後一個事件發生的概率僅僅取決於前一個事件的狀態。這一系列事件就像串起來的珠子。下圖表示一個簡單的馬爾科夫模型,x1 是第一個事件,第二個事件x2 是否發生,以及如何發生,都依賴於x1。依次類推,x3的情況僅僅依賴於x2,x4的情況僅僅依賴於x3 ... ...
然而很多實際問題的依賴關系往往沒有這么簡單,x4的情況可能不僅依賴於x3,還與x2有關。為了表達當前狀態與更早的狀態之間的關系(例如 x4 和 x2),可以引入高階馬爾科夫。概括來說,M階馬爾科夫性是指當前狀態取決於之相鄰的前M個狀態,但是與更早的狀態無關。高階馬爾科夫性雖然達到了關聯當前狀態與更早的狀態的目的,但是因為模型參數呈指數性爆炸,計算復雜度大大增加。
那麼,有沒有一種方法即能將當前狀態與更早的狀態關聯起來,又不需要那麼多參數呢?當然,這里有一種非常強猛銷大的手段,即引入隱變數。這里如果假設隱變數構成一階馬爾科夫模型 (z1, z2, z3, z4, ... ),而在每一吵擾個時間點上我們所觀測到的情況僅僅和當前的隱變數有關 (x1 和 z1 相關,x2 和 z2 相關 .... )。這個就是HMM模型。這里隱變數 (z)就是我們無法觀測的,比如學生對知識點的掌握情況: 不會,不熟練 等等。 而可見變數(x)就是我們從學生作答中看到的,比如 作答正確,選擇錯誤選項B,選擇錯誤答案C,等等。
HMM模型有三個非常重要的參數: 初始概率分布 (start probability)、 轉移概率模型 (transition matrix)和 發射概率矩陣 (emission matrix)。對狀態空間模型建模實際就是對這三者進行建模。而且此時觀測變數(x)之間不再具有任何馬爾科夫性。
我有兩個色子,一個是正常的包含1,2,3,4,5,6 這六個個點 (A),一個是特殊的,有1,2,3,4,四個點(B),下圖展示了各種色子:
一個完整的可用的HMM模型就是需要知道上邊的三個參數比如:
初始概率分布 : 初始選擇A色子的概率是 0.45 ,那麼選擇B色子的概率是0.55 即 , 需要滿足
轉移概率 : 如果前一個是A色子,那麼接下來40%的概率還是A 60% 的概率是B, 如果前一個是B色子,50% 的概率是A,50% 的概率是B,這個是一個矩陣
結合上邊的數字就是:
發射概率矩陣 : 也是一個矩陣,表示從色子的類別,到觀察到的點數的概率,針對我們這個情況,他的形式如下
因為色子是均勻的,我們可以得到
那麼模型的完整工作流程是下邊這樣的:
已知上述三個參數,和當前觀測序列,求解隱藏狀態的變化
所有參數未知,只有數據,如何獲得三個參數
python 提供了hmmlearn包,可以非常方便的實現以上兩個問題,我們會在下一個文章中介紹如何實現
上述升知旦案例的實現,具體看這個文章
https://www.jianshu.com/p/deb71e926ccc
[1] . farewell (2018.4.22), 隱馬爾科夫模型, 知乎 [blog post]. Retrieved from https://zhuanlan.hu.com/p/27907806