rnn實時預測期貨價格
1. 實在忍不住,告訴大家光波預測88是什麼吧
我立志發一個之家有史以來最長的水貼,不要和我搶,因為沒人搶得過我!雖然很長,但絕對不是懶婆娘的裹腳布,相反,非常經典。我敢打賭,沒有文中提到的這些人,我們現在還生活在科學的黑暗中!獻給壇上熱愛科學的乖小孩!:D好下面開始:上帝擲骰子嗎——量子物理史話 本文的作者好像是上海的某位網友,他通過通俗而引人入盛的語言,將量子力學的歷史娓娓道來,完全沒有講述歷史搬枯燥乏味,同時通過一些恰當的比方,將一些復雜的道理講的透徹而易理解。是難得的科普讀物。比起那些大講某某定理,動輒讓人頭暈目眩的長篇的公式,這篇確是它們的典範。 序 如果要評選物理學發展史上最偉大的那些年代,那麼有兩個時期是一定會入選的:17世紀末和20世紀初。前者以牛頓《自然哲學之數學原理》的出版為標志,宣告了現代經典物理學的正式創立;而後者則為我們帶來了相對論和量子論,並最徹底地和重建了整個物理學體系。所不同的是,今天當我們再談論起牛頓的時代,心中更多的已經只是對那段光輝歲月的懷舊和祭奠;而相對論和量子論卻仍然深深地影響和困擾著我們至今,就像兩顆青澀的橄欖,嚼得越久,反而更加滋味無窮。 我在這里先要給大家講的是量子論的故事。這個故事更像一個傳奇,由一個不起眼的線索開始,曲徑通幽,漸漸地落英繽紛,亂花迷眼。正在沒個頭緒處,突然間峰迴路轉,天地開闊,如河出伏流,一泄。然而還未來得及一覽美景,轉眼又大起大落,誤入白雲深處不知歸路……量子力學的發展史是物理學上最激動人心的篇章之一,我們會看到物理大廈在狂風暴雨下轟然坍塌,卻又在熊熊烈焰中得到了洗禮和重生。我們會看到最革命的思潮席捲大地,帶來了讓人驚駭的電閃雷鳴,同時卻又展現出震撼人心的美麗。我們會看到科學如何在荊棘和沼澤中艱難地走來,卻更加堅定了對勝利的信念。 量子理論是一個復雜而又難解的謎題。她像一個神秘的少女,我們天天與她相見,卻始終無法猜透她的內心世界。今天,我們的現代文明,從電腦,電視,到核能,,生物技術,幾乎沒有哪個領域不依賴於量子論。但量子論究竟帶給了我們什麼?這個問題至今卻依然難以回答。在自然哲學觀上,量子論帶給了我們前所未有的沖擊和震動,甚至改了整個物理世界的基本思想。它的觀念是如此地革命,乃至最不保守的科學家都在潛意識里對它懷有深深的懼意。現代文明的繁盛是理性的勝利,而量子論無疑是理性的最高成就之一。但是它被賦予的力量太過強大,以致有史以來第一次,我們的理性在勝利中同時埋下了能夠毀滅它自身的種子。以致量子論的奠基人之一玻爾(Niels Bohr)都要說:「如果誰不為量子論而感到困惑,那他就是沒有理解量子論。」 掐指算來,量子論創立至今已經超過年,但它的一些基本思想卻仍然不為普通的大眾所熟知。那麼,就讓我們再次回到那個偉大的年代,再次回顧一下那場史詩般壯麗的革命,再次去穿行於那驚濤駭浪之間,領略一下暈眩的感覺吧。我們的快艇就要出發,當你感到恐懼或者震驚時,請務必抓緊舷邊。但大家也要時刻記住,當年,物理史上最偉大的天才們也走過同樣的航線,而他們的感覺,和我們是一模一樣的。 第一章 黃金時代 一 我們的故事要從年的德國開始。位於萊茵河邊的卡爾斯魯厄是一座風景秀麗的城,它的城中心,矗立著著名的18世紀的宮殿。鬱郁蔥蔥的森林和溫暖的氣候也使得這座小城成為了歐洲的一個旅遊名勝。然而這些怡人的景色似乎沒有分散海因里希·魯道夫·赫茲(Heinrich Rudolf Hertz)的注意力:現在他正在卡爾斯魯厄大學的一間實驗室里專心致志地擺弄他的儀器。那時候,赫茲剛剛30歲,也許不會想到他將在科學史上成為和他的老師赫耳姆霍茲(Hernnvon Helmholtz)一樣鼎鼎有名的人物,不會想到他將和卡爾·本茨(Carl Benz)一樣成為這個小城的驕傲。現在他的心思,只是完完全全地傾注在他的那套裝置上。 赫茲的裝置在今天看來是很簡單的:它的主要部分是一個電火花發生器,有兩個相隔很近的小銅球作為電容。赫茲全神貫注地注視著這兩個相對而視的銅球,然後合上了電路開關。 頓時,電的魔力開始在這個簡單的系統里展現出來:無形的電流穿過裝置里的感應線圈,並開始對銅球電容進行充電。赫茲冷冷地注視著他的裝置,在心裏面想像著電容兩段電壓不斷上升的情形。在電學的領域攻讀了那麼久,赫茲對自己的知識是有充分信心的,他知道,隨著電壓的上升,很快兩個小球之間的空氣就會被擊穿,然後整個系統就會形成一個高頻的振盪迴路(LC迴路),但是,他現在想要觀察的不是這個。 果然,過了一會兒,隨著細微的「啪」的一聲,一束美麗的藍色電花爆開在兩個銅球之間,整個系統形成了一個完整的迴路,細小的電流束在空氣中不停地扭動,綻放出幽幽的熒光。 赫茲反而更加緊張了,他盯著那串電火花,還有電火花旁邊的空氣,心裏面想像了一幅又一幅的圖景。他不是要看這個裝置如何產生火花短路,他這個實驗的目的,是為了求證那虛無飄渺的「電磁波」的存在。那是一種什麼樣的東西啊,它看不見,摸不著,到那時為止誰也沒有見過,驗證過它的存在。可是,赫茲是堅信它的存在的,因為它是麥克斯韋(Maxwell)理論的一個預言。而麥克斯韋理論……哦,它在數學上簡直完美得像一個奇跡!彷彿是上帝的手寫下的一首詩。這樣的理論,很難想像它是錯誤的。赫茲吸了一口氣,又笑了:不管理論怎樣無懈可擊,它畢竟還是要通過實驗來驗證的呀。他站在那裡看了一會兒,在心裏面又推想了幾遍,終於確定自己的實驗無誤:如果麥克斯韋是對的話,那麼在兩個銅球之間就應該產生一個振盪的電場,同時引發一個向外傳播的電磁波。赫茲轉過頭去,在實驗室的另一邊,放著一個開口的銅環,在開口處也各鑲了一個小銅球。那是電磁波的接收器,如果麥克斯韋的電磁波真的存在的話,那麼它就會穿越這個間到達另外一端,在接收器那裡感生一個振盪的電動勢,從而在接收器的開口處也激發出電火花來。 實驗室裡面靜悄悄地,赫茲一動不動地站在那裡,彷彿他的眼睛已經看見那無形的電磁波在空間穿越。銅環接受器突然顯得有點異樣,赫茲簡直不住要大叫一聲,他把自己的鼻子湊到銅環的前面,明明白白地看見似乎有微弱的火花在兩個銅球之間的空氣里飄浮:赫茲飛快地跑到窗口,把所有的窗簾都拉上,現在更清楚了:淡藍色的電花在銅環的缺口不斷地綻開,而整個銅環卻是一個隔離的系統,既沒有連接電池也沒有任何的能量來源。赫茲注視了足足有一分鍾之久,在他眼裡,那些藍色的火花顯得如此地美麗。終於他揉了揉眼睛,直起腰來:現在不用再懷疑了,電磁波真真實實地存在於空間之中,正是它激發了接收器上的電火花。他勝利了,成功地解決了這個8年前由柏林普魯士科學院提出懸賞的問題;同時,麥克斯韋的理論也勝利了,物理學的一個新高峰——電磁理論終於被建立起來。偉大的法拉第(Michael Faraday)為它打下了地基,偉大的麥克斯韋建造了它的主體,而今天,他——偉大的赫茲——為這座大廈封了頂。 赫茲小心地把接受器移到不同的位置,電磁波的表現和理論預測的絲毫不爽。根據實驗數據,赫茲得出了電磁波的波長,把它乘以電路的振盪頻率,就可以計算出電磁波的前進速。這個數值精確地等於30萬公里/秒,也就是光速。麥克斯韋驚人的預言得到了證實:原來電磁波一點都不神秘,我們平時見到的光就是電磁波的一種,只不過它的頻率限定在某一個范圍內,而能夠為我們所見到罷了。 無論從哪一個意義上來說,這都是一個了不起的發現。古老的光學終於可以被完全包容於新興的電磁學裡面,而「光是電磁波的一種」的論斷,也終於為爭論已久的光本性的問題下了一個似乎是不可的定論(我們馬上就要去看看這場曠日持久的精彩大戰)。電磁波的反射、衍射和干涉實驗很快就做出來了,這些實驗進一步地證實了電磁波和光波的一致性,無疑是電磁理論的一個巨大成就。 赫茲的名字終於可以被閃光地鐫刻在科學史的名人堂里,可是,作為一個純粹的嚴肅的科學家,赫茲當時卻沒有想到他的發現裡面所蘊藏的巨大的商業意義。在卡爾斯魯厄大學的那間實驗室里,他想的只是如何可以更加靠近大自然的終極奧秘,根本沒有料到他的實驗會帶來一場怎麼樣的時代革命。赫茲英年早逝,還不到37歲就離開了這個他為之醉心的世界。然而,就在那一年,一位在倫巴底度假的20歲義大利青年讀到了他的關於電磁波的論文;兩年後,這個青年已經在公開場合進行了無線電的通訊表演,不久他的成立,並成功地拿到了專利證。到了年,赫茲死後的第7年,無線電報已經可以穿越大西洋,實現實時通訊了。這個來自義大利的年輕人就是古格列爾莫·馬可尼(GuglielmoMarconi),與此同時的波波夫(Aleksandr Popov)也在無線通訊領域做了同樣的貢獻。他們掀起了一場革命的風暴,把整個人類帶進了一個嶄新的「信息時代」。不知赫茲如果身後有知,又會做何感想? 但仍然覺得赫茲只會對此置之一笑。他是那種純粹的科學家,把對真理的追求當作人生最大的價值。恐怕就算他想到了電磁波的商業前景,也會不屑去把它付諸實踐的吧?也許,在美麗的森林和湖泊間散步,思考自然的終極奧秘,在秋天落葉的校園里,和學生探討學術問題,這才是他真正的人生吧。今天,他的名字已經成為頻率這個物理量的單位,被每個人不斷地提起,可是,或許他還會嫌我們打擾他的安寧呢? 二 上次我們說到,年,赫茲的實驗證實了電磁波的存在,也證實了光其實是電磁波的一種,兩者具有共同的波的特性。這就為光的本性之爭畫上了一個似乎已經是不可更改的句。 說到這里,我們的故事要先回一回頭,穿越時空去回顧一下有關於光的這場大戰。這也許是物理史上持續時間最長,程度最激烈的一場論戰。它幾乎貫穿於整個現代物理的發展過程中,在歷史上燒灼下了永不磨滅的烙印。 光,是每個人見得最多的東西(「見得最多」在這里用得真是一點也不錯)。自古以來,它就被理所當然地認為是這個宇宙最原始的事物之一。在遠古的神話中,往往是「一道亮光」劈開了混沌和黑暗,於是世界開始了運轉。光在人們的心目中,永遠代表著生命,活力和希望。在《聖經》里,神要創造世界,首先要創造的就是光,可見它在這個宇宙中所佔的獨一無二的地位。 可是,光究竟是一種什麼東西?或者,它究竟是不是一種「東西」呢? 遠古時候的人們似乎是不把光作為一種實在的事物的,光亮與黑暗,在他們看來只是一種環境的不同罷了。只有到了古希臘,科學家們才開始好好地注意起光的問題來。有一樣事情是肯定的:我們之所以能夠看見東西,那是因為光在其中作用的結果。人們於是猜想,光是一種從我們的眼睛裡發射出去的東西,當它到達某樣事物的時候,這樣事物就被我們所「看見」了。比如恩培多克勒(empedocles)就認為世界是由水、火、氣、土四大元素組成的,而人的眼睛是女神阿芙羅狄忒(aphrodite)用火點燃的,當火元素(也就是光。古時候往往光、火不分)從人的眼睛裡噴出到達物體時,我們就得以看見事物。 但顯而易見,這種解釋是不夠的。它可以說明為什麼我們睜著眼可以看見,而閉上眼睛就不行;但它解釋不了為什麼在暗的地方,我們即使睜著眼睛也看不見東西。為了解決這個困難,人們引進了復雜得多的假設。比如認為有三種不同的光,分別來源於眼睛,被看到的物體和光源,而視覺是三者綜合作用的結果。 這種假設無疑是太復雜了。到了羅馬時代,偉大的學者盧克萊修(lucretius)在其不朽著作《物性論》中提出,光是從光源直接到達人的眼睛的,但是他的觀點卻始終不為人們所接受。對光成像的正確認識直到公元年左右才被一個波斯的科學家阿爾\;哈桑(al-haytham)所提出:原來我們之所以能夠看到物體,只是由於光從物體上反射到我們眼睛裡的結果。他提出了許多證據來證明這一點,其中最有力的就是小孔成像的實驗,當我們親眼看到光通過小孔後成了一個倒立的像,我們就無可懷疑這一說法的正確性了。 關於光的一些性質,人們也很早就開始研究了。基於光總是走直線的假定,歐幾里德(euclid)在《反射光學》(catoptrica)一書裡面就研究了光的反射問題。托勒密(ptolemy)、哈桑和開普勒(johannes kepler)都對光的折射作了研究,而荷蘭物理學家斯涅耳(w.snell)則在他們的工作基礎上於年總結出了光的折射定律。最後,光的種種性質終於被有「業余數學之王」之稱的費爾馬(pierre de fert)所歸結為一個簡單的法則,那就是「光總是走最短的路線」。光學終於作為一門物理學科被正式確立起來。 但是,當人們已經對光的種種行為了如指掌的時候,卻依然有一個最基本的問題沒有得到解決,那就是:「光在本質上到底是一種什麼東西?」這個問題看起來似乎並沒有那麼難回答,但人們大概不會想到,對於這個問題的探究居然會那樣地曠日持久,而這一探索的過程,對物理學的影響竟然會是那麼地深遠和重大,其意義超過當時任何一個人的想像。 古希臘時代的人們總是傾向於把光看成是一種非常細小的粒子流,換句話說光是由一粒粒非常小的「光原子」所組成的。這種觀點一方面十分符合當時流行的元素說,另外一方面,當時的人們除了粒子之外對別的物質形式也了解得不是太多。這種理論,我們把它稱之為光的「微粒說」。微粒說從直觀上看來是很有道理的,首先它就可以很好地解釋為什麼光總是沿著直線前進,為什麼會嚴格而經典地反射,甚至折射現象也可以由粒子流在不同介質里的速度變化而得到解釋。但是粒子說也有一些顯而易見的困難:比如人們當時很難說清為什麼兩道光束相互碰撞的時候不會互相彈開,人們也無法得知,這些細小的光粒子在點上燈火之前是隱藏在何處的,它們的數量是不是可以無限多,等等。 當黑暗的中世紀過去之後,人們對自然世界有了進一步的認識。波動現象被深入地了解和研究,聲音是一種波動的認識也逐漸為人們所接受。人們開始懷疑:既然聲音是一種波,為什麼光不能夠也是波呢?十七世紀初,笛卡兒(des cartes)在他《方》的三個附錄之一《折光學》中率先提出了這樣的可能:光是一種壓力,在媒質里傳播。不久後,義大利的一位數學教授格里馬第(francesco ria grildi)做了一個實驗,他讓一束光穿過兩個小孔後照到暗室里的屏幕上,發現在投影的邊緣有一種明暗條紋的圖像。格里馬第馬上聯想起了水波的衍射(這個大家在中學物理的插圖上應該都見過),於是提出:光可能是一種類似水波的波動,這就是最早的光波動說。 波動說認為,光不是一種物質粒子,而是由於介質的振動而產生的一種波。我們想像一下水波,它不是一種實際的傳遞,而是沿途的水面上下振動的結果。光的波動說容易解釋投影里的明暗條紋,也容易解釋光束可以互相穿過互不幹擾。關於直線傳播和反射的問題,人們很快就認識到光的波長是很短的,在大多數情況下,光的行為就猶同經典粒子一樣。而衍射實驗則更加證明了這一點。但是波動說有一個基本的難題,那就是任何波動都需要有介質才能夠傳遞,比如聲音,在真空里就無法傳播。而光則不然,它似乎不需要任何媒介就可以任意地前進。舉一個簡單的例子,星光可以穿過幾乎虛無一物的太空來到地球,這對波動說顯然是非常不利的。但是波動說巧妙地擺脫了這個難題:它假設了一種看不見摸不著的介質來實現光的傳播,這種介質有一個十分響亮而讓人印象深刻的名字,叫做「以太」(aether)。 就在這樣一種奇妙的氣氛中,光的波動說登上了歷史舞台。我們很快就會看到,這個新生力量似乎是微粒說的前世冤家,它命中註定要與後者開展一場長達數個世紀之久的戰爭。他們兩個的命運始終互相糾纏在一起,如果沒有了對方,誰也不能說自己還是完整的。到了後來,他們簡直就是為了對手而存在著。這出精彩的戲劇從一開始的伏筆,經過兩個起落,到達令人眼花繚亂的。而最後絕妙的結局則更讓我們相信,他們的對話幾乎是一種可遇而不可求的緣分。17世紀中期,正是科學的黎明到來之前那最後的黑暗,誰也無法預見這兩朵小火花即將要引發一場熊熊大火。 ******** 飯後閑話:說說「以太」(aether)。 正如我們在上面所看到的,以太最初是作為光波媒介的假設而提出的。但「以太」一詞的由來則早在古希臘:亞里士多德在《論天》一書里闡述了他對天體的認識。他認為日月星辰圍繞著地球運轉,但其組成卻不同與地上的四大元素水火氣土。天上的事物應該是完美無缺的,它們只能由一種更為純潔的元素所構成,這就是亞里士多德所謂的「第五元素」——以太(希臘文的αηθηρ)。而自從這個概念被借用到科學里來之後,以太在歷史上的地位可以說是相當微妙的,一方面,它曾經扮演過如此重要的角色,以致成為整個物理學的基礎;另一方面,當它榮耀不再時,也曾受盡嘲笑。雖然它不甘心地再三掙扎,改換頭面,賦予自己新的意義,卻仍然逃不了最終被拋棄的命運,甚至有段時間幾乎成了偽科學的專用詞。但無論怎樣,以太的概念在科學史上還是佔有它的地位的,它曾經代表的光媒以及絕對參考系,雖然已經退出了舞台,但直到今天,仍然能夠喚起我們對那段黃金歲月的懷念。它就像是一張泛黃的照片,記載了一個貴族光榮的過去。今天,以太(ether)作為另外一種概念用來命名一種網路協議(ethernet),看到這個詞的時候,是不是也每每生出幾許慨嘆? 向以太致敬。
2. 如何將自己的數據轉化成tensorflow的rnn需要的數據
就一個abcd作為一條樣本即可,a b c d 的每一步都會計算loss的,所以拆開也沒啥用 另外你這個不是序列標注,因為你是要預測下一個,而不是給整體一個最佳序列
3. nlp 中rnn怎麼將單詞轉化為固定維度的向量
所有的QA對問題的邏輯都比較簡單,所以命名為Simple QA。僅僅依賴於KB裡面的一個facts,這樣做的好處是可以簡化模型的推理過程。
數據量大,包含十萬多個QA對,而且都是人工生成,語法相對而言更貼近自然語言,而且問題覆蓋面廣,類型較全。
所有QA對都依賴於KB中的實體和facts。保證了KB的覆蓋性。
存儲KB,第一步是使用Input組件解析知識庫並將其存入Memory之中。
訓練,第二步是使用Simple QA數據集的所有QA對作為輸入,經過Input、Output、Response三個組件進行預測並使用反向傳播訓練網路中的參數
泛化,最後使用Reverb數據集直接接入模型(不在進行重新訓練),使用Generalization模塊將其與Memory中已經存在的facts關聯,看最終效果如何
接下來我們介紹一下論文使用的模型,仍然沿用Memory Networks提出的I、G、O、R四組件的架構,其工作流程如下
4. 實際波動率的概念
要明確實際波動率,首先要從波動率的概念入手。波動率(Volatility):是指關於資產未來價格不確定性的度量。它通常用資產回報率的標准差來衡量。也可以指某一證券的一年最高價減去最低價的值再除以最低價所得到的比率。業內將波動率定義為價格比率自然對數的標准差。波動率的種類有:實際波動率,隱含波動率,歷史波動率等等,實際波動率便是波動率的一種。
5. 什麼是波動率指數
1987的全球股災後,為穩定股市與保護投資者,紐約證券交易所(NYSE)於1990年引進了斷路器機制(Circuit-breakers),當股價發生異常變動時,暫時停止交易,試圖降低市場的波動性來恢復投資者的信心。但斷路器機制引進不久,對於如何衡量市場波動性市場產生了許多新的認識,漸漸產生了動態顯示市場波動性的需求。因此,在NYSE採用斷路器來解決市場過度波動問題不久,芝加哥期權交易所從1993年開始編制市場波動率指數(Market Volatility Index,VIX),以衡量市場的波動率。
CBOE 在1973年4月開始股票期權交易後,就一直有通過期權價格來構造波動率指數的設想,以反映市場對於的未來波動程度的預期。其間有學者陸續提出各種計算方法,Whaley(1993)[1] 提出了編制市場波動率指數作為衡量未來股票市場價格波動程度的方法。同年,CBOE開始編制VIX 指數,選擇S&P100 指數期權的隱含波動率為編制基礎,同時計算買權與賣權的隱含波動率,以考慮交易者使用買權或賣權的偏好。
VIX表達了期權投資者對未來股票市場波動性的預期,當指數越高時,顯示投資者預期未來股價指數的波動性越劇烈;當VIX指數越低時,代表投資者認為未來的股價波動將趨於緩和。由於該指數可反應投資者對未來股價波動的預期,並且可以觀察期權參與者的心理表現,也被稱為「投資者情緒指標」(The investor fear gauge )。經過十多年的發展和完善,VIX指數逐漸得到市場認同,CBOE於2001年推出以NASDAQ 100指數為標的的波動性指標 (NASDAQ Volatility Index ,VXN); CBOE2003年以S&P500指數為標的計算VIX指數,使指數更貼近市場實際。2004年推出了第一個波動性期貨(Volatility Index Futures)VIX Futures, 2004年推出第二個將波動性商品化的期貨,即方差期貨 (Variance Futures),標的為三個月期的S&P500指數的現實方差(Realized Variance)。2006年,VIX指數的期權開始在芝加哥期權交易所開始交易
計算波動率指數(VIX)需要的核心數據是隱含波動率,隱含波動率由期權市場上最新的交易價格算出,可以反映市場投資者對於未來行情的預期。其概念類似於債券的到期收益率(Yield To Maturity):隨著市場價格變動,利用適當的利率將債券的本金和票息貼現,當債券現值等於市場價格時的貼現率即為債券的到期收益率,也就是債券的隱含報酬率。在計算過程中利用債券評價模型,通過使用市場價格可反推出到期收益率,這一收益率即為隱含的到期收益率。
6. 如何用Tensorflow實現RNN
class TextLoader():
def __init__(self, data_dir, batch_size, seq_length, encoding='utf-8'):
self.data_dir = data_dir
self.batch_size = batch_size
self.seq_length = seq_length
self.encoding = encoding
#第一次運行程序時只有input.txt一個文件,剩下兩個文件是運行之後產生的
input_file = os.path.join(data_dir, "input.txt")
vocab_file = os.path.join(data_dir, "vocab.pkl")
tensor_file = os.path.join(data_dir, "data.npy")
#如果是第一次執行則調用preprocess函數,否則調用load_preprocessed函數。
if not (os.path.exists(vocab_file) and os.path.exists(tensor_file)):
print("reading text file")
self.preprocess(input_file, vocab_file, tensor_file)
else:
print("loading preprocessed files")
self.load_preprocessed(vocab_file, tensor_file)
self.create_batches()
self.reset_batch_pointer()
def preprocess(self, input_file, vocab_file, tensor_file):
with codecs.open(input_file, "r", encoding=self.encoding) as f:
data = f.read()
#使用Counter函數對輸入數據進行統計。counter保存data中每個字元出現的次數
counter = collections.Counter(data)
#對counter進行排序,出現次數最多的排在前面
count_pairs = sorted(counter.items(), key=lambda x: -x[1])
#將data中出現的所有字元保存,這里有65個,所以voacb_size=65
self.chars, _ = zip(*count_pairs)
self.vocab_size = len(self.chars)
#按照字元出現次數多少順序將chars保存,vocab中存儲的是char和順序,這樣方便將data轉化為索引
self.vocab = dict(zip(self.chars, range(len(self.chars))))
with open(vocab_file, 'wb') as f:
#保存chars
cPickle.mp(self.chars, f)
#將data中每個字元轉化為索引下標。
self.tensor = np.array(list(map(self.vocab.get, data)))
np.save(tensor_file, self.tensor)
def load_preprocessed(self, vocab_file, tensor_file):
#如果是第二次運行,則可以直接讀取之前保存的chars和tensor
with open(vocab_file, 'rb') as f:
self.chars = cPickle.load(f)
self.vocab_size = len(self.chars)
self.vocab = dict(zip(self.chars, range(len(self.chars))))
self.tensor = np.load(tensor_file)
self.num_batches = int(self.tensor.size / (self.batch_size *
self.seq_length))
def create_batches(self):
#首先將數據按batch_size切割,然後每個batch_size在按照seq_length進行切割
self.num_batches = int(self.tensor.size / (self.batch_size *
self.seq_length))
if self.num_batches == 0:
assert False, "Not enough data. Make seq_length and batch_size small."
self.tensor = self.tensor[:self.num_batches * self.batch_size * self.seq_length]
xdata = self.tensor
#構造target,這里使用上一個詞預測下一個詞,所以直接將x向後一個字元即可
ydata = np.(self.tensor)
ydata[:-1] = xdata[1:]
ydata[-1] = xdata[0]
#將數據進行切分,這里我們假設數據總長度為10000,batch_size為100, seq_length為10.
# 所以num_batches=10,所以,xdata在reshape之後變成[100, 100],然後在第二個維度上切成10份,
# 所以最終得到[100, 10, 10]的數據
self.x_batches = np.split(xdata.reshape(self.batch_size, -1),
self.num_batches, 1)
self.y_batches = np.split(ydata.reshape(self.batch_size, -1),
self.num_batches, 1)
def next_batch(self):
x, y = self.x_batches[self.pointer], self.y_batches[self.pointer]
self.pointer += 1
return x, y
def reset_batch_pointer(self):
self.pointer = 0
7. 深度學習的主要分類是什麼呀這些網路cnn dbn dnm rnn是怎樣的關系
簡單來說:
1)深度學習(Deep Learning)只是機器學習(Machine Learning)的一種類別,一個子領域。機器學習 > 深度學習
2)大數據(Big Data)不是具體的方法,甚至不算具體的研究學科,而只是對某一類問題,或需處理的數據的描述
具體來說:
1)機器學習(Machine Learning)是一個大的方向,裡麵包括了很多種 approach,比如 deep learning, GMM, SVM, HMM, dictionary learning, knn, Adaboosting...不同的方法會使用不同的模型,不同的假設,不同的解法。這些模型可以是線性,也可以是非線性的。他們可能是基於統計的,也可能是基於稀疏的....
不過他們的共同點是:都是 data-driven 的模型,都是學習一種更加 abstract 的方式來表達特定的數據,假設和模型都對特定數據廣泛適用。好處是,這種學習出來的表達方式可以幫助我們更好的理解和分析數據,挖掘數據隱藏的結構和關系。
Machine Learning 的任務也可以不同,可以是預測(prediction),分類(classification),聚類(clustering),識別(recognition),重建(reconstruction),約束(regularization),甚至降噪(denoising),超分辨(super-resolution),除馬賽克(Demosaicing)等等....
2)深度學習(Deep Learning)是機器學習的一個子類,一般特指學習高層數的網路結構。這個結構中通常會結合線性和非線性的關系。
Deep Learning 也會分各種不同的模型,比如 CNN, RNN, DBN...他們的解法也會不同。
Deep Learning 目前非常流行,因為他們在圖像,視覺,語音等各種應用中表現出了很好的 empirical performance。並且利用 gpu 的並行運算,在模型相當復雜,數據特別大量的情況下,依然可以達到很理想的學習速度。
因為 Deep Learning 往往會構建多層數,多節點,多復雜度的模型,人們依然缺乏多裡面學習的結構模型的理解。很多時候,Deep Learning 甚至會被認為擁有類似於人類神經網路的結構,並且這種類似性被當做 deep learning 居然更大 potential 的依據。但答主個人認為,其實這略有些牽強...聽起來更像是先有了這種 network 的結構,再找一個類似性。當然,這僅僅是個人觀點...(私貨私貨)
3)大數據(Big Data,我們也叫他逼格數據....)是對數據和問題的描述。通常被廣泛接受的定義是 3 個 V 上的「大」:Volume(數據量), Velocity(數據速度)還有 variety(數據類別)。大數據問題(Big-data problem)可以指那種在這三個 V 上因為大而帶來的挑戰。
Volume 很好理解。一般也可以認為是 Large-scale data(其實學術上用這個更准確,只是我們出去吹逼的時候就都叫 big data 了...)。「大」可以是數據的維度,也可以是數據的 size。一般 claim 自己是 big-data 的演算法會比較 scalable,復雜度上對這兩個不敏感。演算法和系統上,人們喜歡選擇並行(Parallel),分布(distributed)等屬性的方法來增加 capability。
ITjob----採集
8. python培訓需要多久
人工智慧市場的火熱導致python開發工程師崗位薪資水漲船高,且在各行各業的大中小型企業中都很搶手,就業方向非常廣。既可進軍當前正流行的人工智慧行業,也可研究大數據做數據分析人才。那python培訓需要學多久?今天我們一起來探討一下這個問題。
python憑借其突出的語言優勢與特性,已經融入到各行各業的每個領域。一般來說,python培訓需要脫產學習5個月左右,這樣的時長才能夠讓學員既掌握工作所需的技能,還能夠積累一定的項目經驗。當然如果你想要在人工智慧的路上越走越遠,則需要不斷的積累和學習。
python培訓的5個月時間里,有相當大一部分時間是在實戰做項目,第一階段是為期一個月學習python的核心編程,主要是python的語言基礎和高級應用,幫助學員獲得初步軟體工程知識並樹立模塊化編程思想。學完這一階段的內容,學員已經能夠勝任python初級開發工程師的職位。
第二個階段也是為期一個月,主要學習python全棧開發基礎,通過本模塊的學習,學生不僅能夠掌握js在網路前端中的使用,還能夠把js作為一門通用語言來運用,為學生將來從事全棧工作打下堅實的基礎。
第三個階段是全棧開發項目實戰,整個階段需要1.5個月的時間學習,是整個培訓時間佔比比較長的一個階段,時間更長、案例更多、
實用性更強,在這個階段主要是做項目,學案例,學完這個階段,學員就可勝任python全棧開發工程師的職位。
第四個階段的學習是網路爬蟲,學習三周,主要是掌握數據的爬取,學完這個階段可選擇的職位有網路爬蟲工程師或者是數據採集工程師,第五階段的學習是數據分析+人工智慧,主要是掌握機器學習演算法的匹配方法,深入理解演算法原理與實現步驟,學習三周,這個階段結束學員可選擇的崗位就更多了,數據分析師、演算法工程師、人工智慧工程師等都可以直接勝任。
最後一周的學習時間是就業指導,主要是清晰了解職業發展規劃,明確自身定位,找到適合自身發展的工作,同時提高自己的面試能力,獲得更好的工作機會。
python培訓5個月,只要你好好學習,找到一份滿意的工作不是難題,優就業的python全棧+人工智慧課程,以企業需求為導向,引入企業較熱門技術,項目實戰模擬實際企業開發流程,讓你更加了解真實的企業項目開發,避免你在學習的路上多走彎路