2017年4月24日 星期一

翻譯

之前看到Cherry談及blog文被讀者用Google translate整篇翻譯,池某也開始留意一下流量來源是否有這種“怪事”。當然,心裡是不抱什麼期待的。畢竟,程式賭馬、統計賭波,甚至量化投資等等,本來就是鬼佬的玩意,正常人都會看原汁原味的外文文章或英譯中版本,看中譯英版本完全沒有必要。意外的是,“怪事”還是零零星星地發生了,其中在流量來源出現得最多的是這篇:


乍看之下池某也搞不清楚這是哪篇文章,就算睇埋內文,也想不起哪篇blog文是用“四個星期日”開頭的。根據發表日期翻查,才發現被譯作“Small production works”的其實是“小製作 大工程”。而內文的“four Sunday”,則是機器翻譯將“四個星期日以繼夜”分詞錯誤所致。

機器翻譯是否可靠,是個見仁見智的問題。若只以模糊正確為目標,再加上自己的猜想作補救,會較容易接受。有國際版的翻譯員就曾對池某說,Google translate太強大了,英譯中連中國過去的外交政策叫“韜光養晦”也能準確譯出,如果其他錯誤率再降低一些,國際版翻譯員都要失業了。

若把要求提高一些,則不難發現機器翻譯仍有很多未能克服的盲點,除了上述提及的分詞問題,古文、古詩詞(例如那個經典的“松下問童子”的例子)、缺乏上文下理的抽象語句,或者地方的方言俗語等等,機器翻譯都拙於應付。

大概兩三年前,池某公司新來的翻譯員處理一篇鬼佬文章時,練精學懶偷偷用Google translate做來,以為可以“過骨”,結果把內文描述朱鎔基就任總理時當時的美國財長Lawrence Summers仆去北京“kiss Zhu's ring”,直譯成“親吻朱的戒指”,她那不學無術的主管還以為執到寶,學人玩Gimmick直接用這句來起題,氣得池某沒留下半句解釋就把她們的勞動成果刪到垃圾桶。

機器翻譯、語言識別等語言處理問題,早在上世紀八十年代在美國就有富有成果的研究,理論上無論是美式俗語還是英式俗語都應能準確掌握,沒理由經過幾十年發展仍犯這種“低級錯誤”。實際上,機器處理語言的語法規則確實是經歷了幾十年而無顯著突破。因為機器並不能真正“學習”語言,只是根據統計語言模型(Statistical Language Models)來處理語言問題。

所謂統計語言模型,簡單地說,就是利用conditional probability,計算一個文字序列構成某個有意義句子的可能性。咦?聽起來似曾相識,像池某這樣的小賭徒,把文字序列的詞語換成贏馬因素,不就變成可以計算頭馬的可能性嗎?同樣道理,換成股票的升跌因素,應該也能計算股票升跌的可能性。

現實確是這樣的。機器處理語言之所以經歷了幾十年而無突破,原因之一應是上世紀八九十年代在這個領域研究處於領先地位的猛人忽然集體消失了。他們哪裡去了?正正就是把相關理論和技術應用到股票投資,集體轉戰華爾街,還個個賺到盤滿鉢滿。

下回再談。

2017年4月11日 星期二

50+50>100+0

大學時選修普通話課程,赫然發現班裡竟有兩名本來就是說普通話的大陸交換生也來“呃學分”,學期尾考試時證實了果然是“不公平競爭”,試卷很大部份內容是要求把“瞓嚟頸”這類廣東話用語用轉為普通話,連題目都搞不懂的交換生,眾望所歸地包辦了倒數一二名。

後來有一次看新聞,對於社會上批評香港大學生英文水平越來越低的論調,當時有一位大學校長挺身而出為學生辯護,認為語文作為溝通與交流的工具,不能單用英文科的分數來衡量,英文100分能力而中文0分能力的人,和中英文都是50分能力的人,雖然總分都是100分,但肯定是後者的綜合能力較高,因為前者可作溝通交流的範圍要狹窄得多。

對於這種說法,池某的理解是,如果一件事情需要兩門或以上的知識去完成,那麼,要達致最佳效益,不是偏重於某一門知識,也不是看加起來的總分,而是要看所需的多種知識的geometric mean,偏差嚴重的長短腳,走不快也走不穩。

據說,在民國年代,大學的入學試有類似“三角幾何三角,三角三角,幾何幾何”這樣的題目,看得懂的認為是送分,看不懂的罵不絕口。是難是易,正是在於理解的偏差。

最近收到不少blog友的email,詢及賽馬統計模型問題,池某已盡自己所能回覆,但有些技術問題確實是超出了池某的理解能力,池某只能是知之為知之,不知為不知,不會也沒必要扮無所不知的專家,未能回答的,請見諒。

譬如,有IT高手認為,可運用其高超的IT技術,以AI取代人手砌模型,像AlphaGo那樣,不斷自我學習、優化,最終將砌出完美無敵的模型。哇!AI,Artificial Intelligence,人工智能,池某呢個IT白痴識條鐵咩。

問題是AI如何憑空學習?據池某所知,AlphaGo也不是從零開始的,AlphaGo團隊裡的黃士傑博士,本來就是圍棋6段高手,即使是AI,也要先有了基礎,才能透過學習去優化、改良。那麼賽馬統計模型的基礎是什麼?當然就是賽馬知識和database了。

問題又來了,如果本身就有賽馬知識也有可用的database,用統計軟件做一次regression就能得到所需的參數了。賽馬模型和圍棋不一樣,圍棋每下一步都有新的、接近無限的可能和變化,故AI大有用武之地;賽馬模型則是越穩定越好,固定下來就很少變化,無所事事了。砌模型這種殺隻雞般的小事情,不斷舞動AI這把牛刀又有何效益呢?

從blog友們的來信來看,這種企圖發揮一技之長以取代其他知識,強行解決問題的思維不在少數。其中最多的傳統的賭馬高手,認為自己眼光獨到、命中率高,希望能掌握一些簡單的數學方法,每場剔除幾匹機會率低的馬匹,就能保持長線盈利云云。這樣的問題同樣令池某難以回答。我們使用統計模型代替主觀決策,就是因為承認自己眼光差,對機率的估算不是高估就是低估。若眼光好、命中率高,何必用程式制肘自己的發揮?

賭馬是一個系統工程,系統工程就是對多種知識和方法的有效整合,若如上述所言,整合的效益最大化就是各種知識geometric mean的最大化,顯然,補短比取長更重要。


2017年4月1日 星期六

賽馬冷知識

這次重砌model在2月底大致完成,參數的數量確定下來後,在過去一個多月只需作少量微調,再沒有大的改動。從2月26日至3月29日,剛好經歷了10個賽馬日,包括了日馬、夜馬、沙田、快活谷、全草地、全泥地和泥草混合,也包括了讓磅賽、平磅賽,跑過好地、好快地、好黏地,開過2倍以下的熱門,也爆過逾100倍的大冷門,算是對model作過全方位的考驗,正好檢討一下model應付不同情況的優點與不足。

賭博遊戲最令人擔心的是大幅虧損,若出現50%的虧損,須取得100%的盈利才能扳回損失,故這次選擇以一個極保守的Kelly比例進行觀察。若逐個賽日作單式計算,共有三個賽日出現虧損,幅度分別是3.5%、5.3%和5.9%,所幸的是,出現虧損的次數和幅度都比盈利低一些,七個盈利賽日的盈利率在4.7%至13.5%之間。

虧損最嚴重的是3月12日沙田賽事。見習騎師巫顯東當日以“獅子聰”和“育成寶貝”兩匹馬“起孖”,由於database裡的紀錄是巫顯東過去上陣100多次僅得1次頭馬,使model無法應付當日的巨大反差;另外,第九場重注馬“美麗寶寶”被“魅力知友”追到平頭,分去一半彩金,也使當日的收入大減。

(圖片來源:香港馬會)

另一個虧損超過5%的日子是3月22日快活谷賽事。本來當日的表現只是窄幅上落,直至第六場重注了排C跑道無敵一檔的“好益善”,看到開閘前變成“綠格”3.7倍次熱門,更是信心滿滿,不料最後三甲不入。賽後獸醫檢查證實“好益善”患有“喘鳴症”。“喘鳴症”,model裡沒有這個factor,也想不到如何設置這種極少樣本的參數。

曾經看過一套紀錄片,講述美國等地的牧場主,絞盡腦汁,以血統、遺傳工程等新舊方法相結合,以期培育出完美的純種競賽馬,在週歲拍賣會中取得天價暴利。不過,很多這些精心傑作,往往會因為一些極細微的外在瑕疵而身價大跌,欲哭無淚。

然而,馬主購買未有上陣紀錄的週歲馬,真正的風險,還不是外表能看出來的。即使拿著伯樂的《伯樂相馬經》按圖索驥,也未必能找到一匹好馬,因為現代賽馬鬥的是極速衝刺,而不需要日行千里。支持一匹體重逾千磅的馬高速奔跑,需要大量的氧氣供應,且要維持良好的血液循環機能,故真正決定一匹速度賽馬成就的,是其外表看不到的部份:心肺功能和呼吸系統。

馬匹的呼吸系統是其供氧環節的瓶頸,從而影響其競賽能力。馬不能用口呼吸,只能用鼻子呼吸,而由鼻孔至肺部的呼吸道又長又窄,鼻孔和喉嚨更是呼吸道兩個最窄的部份。有些馬匹聲帶癱瘓,鬆弛的聲帶阻塞氣管入口,呼吸道在氣流通過時發出異常聲響,就是“喘鳴”。由於“喘鳴”代表馬匹吸入的空氣大大減少,因而會令其表現大打折扣。

同樣原因,說明了為什麼馬匹在陣上流鼻血、氣管有痰、氣管有血、心律不正等內在毛病,影響會比腿部割傷、蹄鐵鬆脫等外傷和意外要大得多。

還有一個冷知識,馬匹奔跑時,是四蹄着地,其前肢與胸腔相連,使得馬匹極速奔跑時不能像人一樣自主調節呼吸,只能一步一呼吸,前蹄離地時展開胸腔吸氣,前蹄着地時呼氣,呼吸頻率受到步頻的制約,也會因氧氣的供不應求令步頻難以一直維持,故馬匹無法作長距離的極速衝刺,大多數都是狂奔二三百米就迅速轉弱。

於是,如何在不同步速的賽事中把握好發力點,把馬匹短暫的爆發力有效發揮出來,成了決定勝負的關鍵,而非必然是強者恆強,同樣的幾匹馬在不同的賽事形勢中互有勝負反而是常態。這些不確定因素,增加了賽馬運動的樂趣,也增加了賽馬博彩的刺激。