A. RPR,ACA,TORCH,HCY是什麼意思
RPR的簡稱Resilient Packet Ring彈性分組環
ACA是The Associate Chartered Accountant英國特許會計師的簡稱
TORCH是指可導致先天性宮內感染及圍產期感染而引起圍產兒畸形的病原體
HCY是指同型半胱氨酸(homocysteine, hCY)
具體看下面都是貼過來的,不過出處太多就不一一說明了
RPR的簡稱Resilient Packet Ring彈性分組環, 從字眼我們可以看出這個技術的三個特點,
首先是彈性的,這個比價復雜我們後面慢慢談談這些彈性的優點。
再次是Packet,這個技術基於包的傳送。
最後是Ring,包的傳送要建立在Ring這種拓撲結構上。而且是一種雙環結構,每個環上最大的帶寬1.25Gbit/s, 雙環最大帶寬2.5Gbit/s. 外環攜帶內環數據包的管理位元組,內環攜帶外環的管理位元組。這樣,雙環互為保護和備份。
我們來談談「彈性」帶來的優點:
1 業務分級,將業務分為3級A,B,C. 其中A細分為兩級,B細分為兩級。數據類型實際上被分為5級,每一級有不同的QoS,保證業務的區分度,分別對應實時業務,非實時業務和盡力傳送。
2拓撲自動發現,保證了對環上新增和移去的節點,動態實現拓撲結構更新。如果要增加或者減少RPR上的總帶寬,則可以結合LCAS功能來實現。使用LCAS可以動態的調整帶寬,而不影響原有業務。
3空間重用,RPR單播幀在目的節點剝離的機制,實現了環上帶寬的空間重用。環上帶寬可以幾個點的業務共用,帶寬利用率提高。
4公平演算法,RPR內環和外環都支持獨立的公平演算法。公平演算法保證了低優先順序的B_EIR和C類業務在RPR環上的公平接入。通過設置公平演算法的權重,可以使不同的結點具有不同的接入速率。節點可以分別在外環和內環上設置不同的權重。
5保護:wrapping+string, wrapping相當於斷纖處環回,倒換時間快,但是路徑不是最優。String保護模式倒換時間慢,但選擇最優路徑。
ACA是The Associate Chartered Accountant(英國特許會計師)的簡稱
ACA 專業資格在國際上享有極高聲譽, 它將使你在同行中脫穎而出:在英國擔任高級職務的會計師中,具有ACA 資格的人數多於具有其他任何會計師資格的人數。據2006 年4 月的一項統計, 在英國前一百家最大的上市公司中,具有會計師資格的首席財務官,財務總監及公司秘書有101 人,具有ACA 資格的人數佔70%,是具有其他會計師資格人數的5 倍。
ACA 專業資格可以幫助你加速到達事業的頂峰,而且在職場上極具競爭力:在英國,由於ACA 挑選最優秀的人才參加培訓,絕大多數學員都能一次考試合格。2004 年,78% 的ACA 學員一次考試合格,高於任何其他會計師資格考試。大部分ACA學員在取得資格後很快晉升為事務所的合夥人或公司的財務總監,還有一些人擁有自己的公司,供職於政府部門或被公司派到海外工作。
ACA 專業資格獲得全世界的認可:英國特許會計師協會與下列國家的會計師協會簽有會員互認協議:加拿大,澳大利亞,紐西蘭,歐共體成員國,香港和南非;允許其會員申請成為這些協會的會員(在滿足某些特定條件的前提下)。世界上140 個國家都有ACA 在那裡工作。作為世界上唯一一家設有專家小組的協會,這些專家在會員終生的事業發展過程中提供技術上,經驗上和政策更新方面的幫助。協會的網站為會員提供大量的信息資源。國際會員小組在世界上許多國家都非常活躍,定期組織活動,為會員提供交流和聯誼的機會。
TORCH是指可導致先天性宮內感染及圍產期感染而引起圍產兒畸形的病原體,它是一組病原微生物的英文名稱縮寫,其中T(Toxopasma)是弓形蟲,R(Rubella.Virus)是風疹病毒,C(Cytomegalo.Virus)是巨細胞,H(Herpes.Virus)即是單純皰疹I/II型。
這組微生物感染有著共同的特徵,即可造成母嬰感染。孕婦由於內分泌改變和免疫力下降易發生原發感染,既往感染的孕婦體內潛在的病毒也容易被激活而發生復發感染。孕婦發生病毒血症時,病毒可通過胎盤或產道傳播感染胎兒,引起早產、流產、死胎或畸胎等,以及引起新生兒多個系統、多個器官的損害,造成不同程度的智力障礙等症狀。特別在懷孕初的三個月胚胎處於器官形成期,此時受病毒感染,可破壞細胞或抑制細胞的分裂和增值。器官形成期以後感染病毒,可破壞組織和器官結構,並可形成持續感染,出生後繼續排毒,能引起相應的病變。固TORCH的感染影響者人口素質,與優生優育有重要關系。
【TORCH的感染】
風疹(RV)感染:RV主要通過呼吸道傳播,孕婦感染後能使胎兒致畸,主要圍先天性白內障、先天性心臟病和神經性耳聾,20周後感染者幾乎無影響。
巨細胞(CMV):感染後能引起宮內胎兒生長遲緩、小頭形、腦炎、視網膜脈膜炎、黃疸、肝脾腫大、溶血性貧血等,新生兒死亡率較高,圍產期母乳排毒所致的CMV感染率為63%。單純皰疹(HSV I、II型)感染:HSV通常潛伏在神經節。妊娠時母體的生理變化使HSV活化,孕早期感染能破壞胚芽面導致流產,孕中晚期雖少發畸胎,但可引起胎兒和新生兒發病。
【TORCH檢測意義】
TORCH綜合症患者造成孕婦流產、死胎,出生後有嚴重的智力障礙,生活不能自理,造成極大的精神及經濟負擔。我國每年約有26000個TORCH患兒出生,平均每小時就有3人,對優生優育與人口素質構成極大的威脅,因此它的感染診治工作引起普遍關注。
【TORCH檢測的方法】
目前,國際上公認的最方便、最先進的早期篩查方法是採用ELISA酶免診斷技術。ELISA酶免檢測方法是檢測人體血清中的特異性IgM、IgG抗體,由於IgM為早期感染指標,對胎兒影響巨大,所以IgM的檢測備受關注,胎盤中特異性IgM的檢測是診斷胎兒宮內感染的可靠依據。ELISA試劑因其穩定、靈敏度高、特異性強、成本低等優點而在普通實驗室中廣泛採用。
hcy 同型半胱氨酸是人體內含硫氨基酸的一個重要的代謝中間產物,可能是動脈粥樣硬化等心血管疾病發病的一個獨立危險因子。血漿中同型半胱氨酸含量與遺傳因素、營養因素、雌激素水平、年齡因素等有關,與同型半胱氨酸代謝有關的N5N10-亞甲基四氫葉酸還原酶和胱硫醚-β-合成酶的基因突變,酶活性下降,也可引起高同型半胱氨酸血症。
B. ubuntu下怎麼安裝torch
Torch簡介
Torch是一個廣泛支持機器學習演算法的科學計算框架,由於採用簡單而快速的腳本語言LuaJIT和一個底層的C/CUDA實現,Torch易於使用且高效。
Torch安裝
首先,值得注意的是,最新版的Torch支持Ubuntu,Fedora20,Fedora22,Centos7。但不支持Fedora21,Centos6。
參考官網安裝流程安裝,如下所示,
# in a terminal, run the commands
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh12341234
在執行bash install-deps安裝依賴時並未出錯,但執行./install.sh時會出一些錯誤,見下面。
Torch安裝問題匯總
錯誤1
錯誤類似於:
nvcc error : '***' died e to signal 2
解決方案:sudo ./install.sh
錯誤2
Error: Build error: Failed building.
Updating manifest for /root/torch/install/lib/luarocks/rocks
fftw3 scm-1 is now built and installed in /root/torch/install/ (license: BSD)123123
錯誤3
Error: Failed installing dependency: https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luacrypto-0.3.2-1.src.rock - Could not find header file for OPENSSL
No file openssl/evp.h in /usr/local/include
No file openssl/evp.h in /usr/include
You may have to install OPENSSL in your system and/or pass OPENSSL_DIR or OPENSSL_INCDIR to the luarocks command.
Example: luarocks install luacrypto OPENSSL_DIR=/usr/local1234512345
參照Problem with Torch #86,執行sudo apt-get install -y libssl-dev安裝libssl-dev,之後重新安裝Torch即可。
錯誤4
提示缺少依賴lbase64 ,luacrypto,uuid 等,可直接執行luarocks install missed-package解決。
C. 優就業大數據好還是尚觀好
一,題記
要說當下IT行業什麼最火?ABC無出其右。所謂ABC者,AI + Big Data + Cloud也,即人工智慧、大數據和雲計算(雲平台)。每個領域目前都有行業領袖在引領前行,今天我們來討論下大數據Big Data這個方向。如果您感覺閱讀文字太累,可以點擊下面音頻!
二,大數據裡面的角色
角色一:大數據工程
大數據工程需要解決數據的定義、收集、計算與保存的工作,因此大數據工程師們在設計和部署這樣的系統時首要考慮的是數據高可用的問題,即大數據工程系統需要實時地為下游業務系統或分析系統提供數據服務;
角色二:大數據分析
大數據分析角色定位於如何利用數據——即從大數據工程系統中接收到數據之後如何為企業或組織提供有產出的數據分析,並且確實能夠幫助到公司進行業務改善或提升服務水平,所以對於大數據分析師來說,他們首要解決的問題是發現並利用數據的價值,具體可能包括:趨勢分析、模型建立以及預測分析等。
這兩類角色相互依存但又獨立運作,何意?沒有大數據工程,大數據分析便無從談起;但倘若沒有大數據分析,我也實在想不出大數據工程存在的理由。這就類似於結婚和談戀愛——戀愛的目的是為了結婚,且不以結婚為目的的談戀愛都是耍流氓。
簡單總結一下,大數據工程角色需要考慮數據的收集、計算(或是處理)和保存;大數據分析角色則是執行數據的高級計算。
三,大數據工程師
針對角色一:大數據工程說,對應的工作崗位就叫大數據工程師,對於大數據工程師而言,您至少要掌握以下技能:
linux基礎
因為大數據體系,基本都是開源軟體,這些開源軟體都是在開源的linux系統上運行的,所以你必須會基本的linux操作,比如用戶管理,許可權,shell編程之類的
一門JVM系語言:
當前大數據生態JVM系語言類的比重極大,某種程度上說是壟斷也不為過。這里我推薦大家學習Java或Scala,至於Clojure這樣的語言上手不易,其實並不推薦大家使用。另外,如今是「母以子貴」的年代,某個大數據框架會帶火它的編程語言的流行,比如Docker之於Go、Kafka之於Scala。
因此這里建議您至少要精通一門JVM系的語言。值得一提的,一定要弄懂這門語言的多線程模型和內存模型,很多大數據框架的處理模式其實在語言層面和多線程處理模型是類似的,只是大數據框架把它們引申到了多機分布式這個層面。
建議:學習Java或Scala
計算處理框架:
嚴格來說,這分為離線批處理和流式處理。流式處理是未來的趨勢,建議大家一定要去學習;而離線批處理其實已經快過時了,它的分批處理思想無法處理無窮數據集,因此其適用范圍日益縮小。事實上,Google已經在公司內部正式廢棄了以MapRece為代表的離線處理。
因此如果要學習大數據工程,掌握一門實時流式處理框架是必須的。當下主流的框架包括:Apache Samza, Apache Storm, Apache Spark Streaming以及最近一年風頭正勁的Apache Flink。當然Apache Kafka也推出了它自己的流式處理框架:Kafka Streams
建議:學習Flink、Spark Streaming或Kafka Streams中的一個。
分布式存儲框架:
雖說MapRece有些過時了,但Hadoop的另一個基石HDFS依然堅挺,並且是開源社區最受歡迎的分布式存儲,絕對您花時間去學習。
資源調度框架:
Docker可是整整火了最近一兩年。各個公司都在發力基於Docker的容器解決方案,最有名的開源容器調度框架就是K8S了,但同樣著名的還有Hadoop的YARN和Apache Mesos。後兩者不僅可以調度容器集群,還可以調度非容器集群,非常值得我們學習。
分布式協調框架:
有一些通用的功能在所有主流大數據分布式框架中都需要實現,比如服務發現、領導者選舉、分布式鎖、KV存儲等。這些功能也就催生了分布式協調框架的發展。最古老也是最有名的當屬Apache Zookeeper了,新一些的包括Consul,etcd等。學習大數據工程,分布式協調框架是不能不了解的, 某種程度上還要深入了解。
列式存儲資料庫:
曾經花了很長的時間學習Oracle,但不得不承認當下關系型資料庫已經慢慢地淡出了人們的視野,有太多的方案可以替代rdbms了。人們針對行式存儲不適用於大數據ad-hoc查詢這種弊端開發出了列式存儲,典型的列式存儲資料庫就是開源社區的HBASE。
消息隊列:
大數據工程處理中消息隊列作為「削峰填谷」的主力系統是必不可少的,當前該領域內的解決方案有很多,包括ActiveMQ,Kafka等。國內阿里也開源了RocketMQ。這其中的翹楚當屬Apache Kafka了。Kafka的很多設計思想都特別契合分布流式數據處理的設計理念。這也難怪,Kafka的原作者Jay Kreps可是當今實時流式處理方面的頂級大神。
建議:學習Kafka,不僅僅好找工作(幾乎所有大數據招聘簡歷都要求會Kafka:-) ),還能觸類旁通進一步理解基於備份日誌方式的數據處理范型
四,大數據分析師Or數據科學家
針對角色二:大數據分析,對應的工作崗位就叫大數據分析師或者數據科學家,作為數據科學家的我們必須要掌握以下技能:
數學功底:
微積分是嚴格要掌握的。不一定要掌握多元微積分,但一元微積分是必須要熟練掌握並使用的。另外線性代數一定要精通,特別是矩陣的運算、向量空間、秩等概念。當前機器學習框架中很多計算都需要用到矩陣的乘法、轉置或是求逆。雖然很多框架都直接提供了這樣的工具,但我們至少要了解內部的原型原理,比如如何高效判斷一個矩陣是否存在逆矩陣並如何計算等。
重溫同濟版《高等數學》,有條件可以去Coursea學習賓夕法尼亞大學的微積分課程
推薦學習Strang的線性代數:《Introction to Linear Algebra》——這是最經典的教材,沒有之一!
數理統計:
概率和各種統計學方法要做到基本掌握,比如貝葉斯概率如何計算?概率分布是怎麼回事?雖不要求精通,但對相關背景和術語一定要了解
找一本《概率論》重新學習下
互動式數據分析框架:
這里並不是指SQL或資料庫查詢,而是像Apache Hive或Apache Kylin這樣的分析交互框架。開源社區中有很多這樣類似的框架,可以使用傳統的數據分析方式對大數據進行數據分析或數據挖掘。
有過使用經驗的是Hive和Kylin。不過Hive特別是Hive1是基於MapRece的,性能並非特別出色,而Kylin採用數據立方體的概念結合星型模型,可以做到很低延時的分析速度,況且Kylin是第一個研發團隊主力是中國人的Apache孵化項目,因此日益受到廣泛的關注。
首先學習Hive,有時間的話了解一下Kylin以及背後的數據挖掘思想。
機器學習框架:
機器學習當前真是火爆宇宙了,人人都提機器學習和AI,但筆者一直認為機器學習恰似幾年前的雲計算一樣,目前雖然火爆,但沒有實際的落地項目,可能還需要幾年的時間才能逐漸成熟。
不過在現在就開始儲備機器學習的知識總是沒有壞處的。說到機器學習的框架,大家耳熟能詳的有很多種, 信手拈來的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow領銜。
當前建議大家選取其中的一個框架進行學習,但以我對這些框架的了解,這些框架大多很方便地封裝了各種機器學習演算法提供給用戶使用,但對於底層演算法的了解其實並沒有太多可學習之處。因此還是建議可以從機器學習演算法的原理來進行學習
D. torch中的7*7的矩陣怎麼寫
這個簡單
1
2
3
4
5
6
7
8
9
10
a=[1,2,3,4;2,3,4,1;3,4,1,2;4,1,2,3];
b=[3,4,4,1];%小矩陣
N=size(a);
M=size(b);
for i=1:N(1)-M(1)+1
for j=1:N(2)-M(2)+1
if(a(i:i+M(1)-1,j:j+M(2)-1)==b)
fprintf('位置在大矩陣的%d行%d列到%d行%d列',i,j,i+M(1)-1,j+M(2)-1))
end
end
E. 如何選擇深度學習框架 TensorFlow/Torch/Mxnet/Theano
符號計算構架(如 CNTK,MXNET,TensorFlow,Theano)被定義為一個向量運算符的符號圖,例如矩陣的加法/乘法或卷積。一個層僅是這些運算符的組合。構造塊(運算符)良好的粒度允許用戶在不需要在低級語言(如在 Caffe 中)中實現的情況下,開發新的復雜層類型。
F. torch比numpy慢
torch比numpy慢。
numpy是python中處理數據的模塊,可以處理各種的矩陣(matrix)。
Torch自稱為神經網路中的numpy。它會將torch產生的tensor放在GPU中加速運算,就像numpy會把array放在CPU中加速運算。
G. 普通程序員如何向人工智慧方向轉型
當下,人工智慧已經成為越來越火的一個方向。普通程序員,如何轉向人工智慧方向,是知乎上的一個問題。
這個學習路線是這樣設計的:首先了解這個領域,建立起全面的視野,培養起充足的興趣,然後開始學習機器學習的基礎,這里選擇一門由淺入深的課程來學習,課程最好有足夠的實驗能夠進行實戰。基礎打下後,對機器學習已經有了充足的了解,可以用機器學習來解決一個實際的問題。
這時還是可以把機器學習方法當作一個黑盒子來處理的。實戰經驗積累以後,可以考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前最火熱的機器學習方向,其中一些方法已經跟傳統的機器學習不太一樣,因此可以單獨學習。除了深度學習以外,機器學習還包括統計學習,集成學習等實用方法。
如果條件足夠,可以同時學習兩者,一些規律對兩者是共通的。學習完後,你已經具備了較強的知識儲備,可以進入較難的實戰。這時候有兩個選擇,工業界的可以選擇看開源項目,以改代碼為目的來讀代碼;學術界的可以看特定領域的論文,為解決問題而想發論文。
無論哪者,都需要知識過硬,以及較強的編碼能力,因此很能考察和鍛煉水平。經過這個階段以後,可以說是踏入AI領域的門了。「師傅領進門,修行在個人」。之後的路就要自己走了。
下面是關於每個階段的具體介紹:
0.領域了解
在學習任何一門知識之前,首先第一步就是了解這個知識是什麼?它能做什麼事?它的價值在什麼地方?如果不理解這些的話,那麼學習本身就是一個沒有方向的舟,不知道駛向何處,也極易有沉船的風險。了解這些問題後,你才能培養出興趣,興趣是最好的引路人,學習的動力與持久力才能讓你應付接下來的若干個階段。關於機器學習是什麼,能做什麼,它與深度學習以及人工智慧的關系,可以看我寫的博客從機器學習談起。
1.知識准備
如果你離校過久,或者覺得基礎不牢,最好事先做一下准備復習工作。「工欲善其事,必先利其器」。以下的准備工作不多,但足以應付後面階段的學習。
數學:復習以下基本知識。線性代數:矩陣乘法;高數:求導;概率論:條件與後驗概率。其他的一些知識可以在後面的學習的過程中按需再補;
英文:常備一個在線英文詞典,例如愛詞霸,能夠不吃力的看一些英文的資料網頁;
FQ:可以隨時隨地上Google,這是一個很重要的工具。不是說網路查的不能看,而是很多情況下Google搜出來的資料比網路搜的幾十頁的資料還管用,尤其是在查英文關鍵字時。節省時間可是很重要的學習效率提升;
2.機器學習
機器學習的第一門課程首推Andrew Ng的機器學習。這門課程有以下特點:難度適中,同時有足夠的實戰例子,非常適合第一次學習的人。cs229這門課程我這里不推薦,為什麼,原因有以下:
時間:cs229的時間太早,一些知識已經跟不上當今的發展,目前最為火熱的神經網路一筆帶過。而Cousera上神經網路可是用了兩個課時去講的!而且非常詳細;教學:Ng在cs229時候的教學稍顯青澀,可能是面對網路教學的原因。有很多問題其實他都沒有講清楚,而且下面的人的提問其實也很煩躁,你往往不關心那些人的問題。這點在Coursera上就明顯得到了改善,你會發現Ng的教學水平大幅度改善了,他會對你循循善誘,推心置腹,由淺入深的教學,在碰到你不明白的單詞術語時也會叫你不要擔心,更重要的,推導與圖表不要太完善,非常細致清晰,這點真是強力推薦;字幕:cs229的字幕質量比Coursera上的差了一截。Coursera上中文字幕翻譯經過了多人把關,質量很有保證;作業:cs229沒有作業,雖然你可以做一些,但不會有人看。這點遠不如Coursera上每周有deadline的那種作業,而且每期作業提交上去都有打分。更重要的是,每期作業都有實際的例子,讓你手把手練習,而且能看到自己的成果,成就感滿滿!
3.實踐做項目
學習完了基礎課程,你對機器學習就有了初步了解。現在使用它們是沒有問題的,你可以把機器學習演算法當作黑盒子,放進去數據,就會有結果。在實戰中你更需要去關心如何獲取數據,以及怎麼調參等。如果有時間,自己動手做一個簡單的實踐項目是最好的。
這里需要選擇一個應用方向,是圖像(計算機視覺),音頻(語音識別),還是文本(自然語言處理)。這里推薦選擇圖像領域,這裡面的開源項目較多,入門也較簡單,可以使用OpenCV做開發,裡面已經實現好了神經網路,SVM等機器學習演算法。項目做好後,可以開源到到 Github 上面,然後不斷完善它。實戰項目做完後,你可以繼續進一步深入學習,這時候有兩個選擇,深度學習和繼續機器學習;
4.深度學習
深度學習:深度學習是目前最火熱的研究方向。有以下特點:知識更新快,較為零碎,沒有系統講解的書。因此學習的資源也相對零散,下面是一些資源介紹。其中不推薦的部分並不代表不好,而是在這個初學階段不合適:
推薦,UFLDL:非常好的DL基礎教程,也是Andrew Ng寫的。有很詳盡的推導,有翻譯,且翻譯質量很高;推薦,Deep learning (paper):2015年Nature上的論文,由三位深度學習界的大牛所寫,讀完全篇論文,給人高屋建瓴,一覽眾山小的感覺,強烈推薦。如果只能讀一篇論文了解深度學習,我推薦此篇。這篇論文有同名的中文翻譯;推薦,Neural networks and deep learning:這本書的作者非常擅長以淺顯的語言表達深刻的道理,雖然沒有翻譯,但是閱讀並不困難;推薦,Recurrent Neural Networks:結合一個實際案例告訴你RNN是什麼,整篇教程學完以後,會讓你對RNN如何產生作用的有很清晰的認識,而這個效果,甚至是讀幾篇相關論文所沒有的;不推薦,Neural Networks for Machine Learning University of Toronto Coursera:深度學習創始人教的課,最大的問題是太難,而且老先生的吐字有時不是很標准;不推薦,Deep Learning (book):同樣也是由深度學習大牛所寫的書,但感覺就像是第二作者,也就是他的學生所寫的。很多內容都講了,但是感覺也沒講出什麼內容來,只是告訴你來自那篇論文,這樣的話可能直接閱讀論文更合適。不推薦,cs231n:李菲菲的課程,很有名,專門講CNN。但是這門課程有一個最大的問題,就是沒有字幕,雖然有youtube的自動翻譯字幕,但有還不如沒有。
5.繼續機器學習
深度學習未必就是未來的一定主流,至少一些大牛是這么認為的。傳統的機器學習有如下特點,知識系統化,有相對經典的書。其中統計學習(代表SVM)與集成學習(代表adaboost)是在實踐中使用非常多的技術。下面是相關資源:
推薦,機器學習(周志華):如果是在以前,機器學習方面的經典教材首推PRML,但現在周老師的書出來以後,就不再是這樣了。首先推薦讀周老師的書。這本書有一個特點,那就是再難的道理也能用淺顯精煉的語言表達出來。正如周老師的名言:「體現你水平的地方是把難的東西講容易了,而不是把容易的東西講難,想把一個東西講難實在太簡單」;
不推薦,Pattern Recognition And Machine Learning:當前階段不推薦。PRML是以貝葉斯的觀點看待很多機器學習方法,這也是它的一大特色。但對於初學者來說,這種觀點其實並無必要。而且此書沒有中文翻譯,當前階段硬啃很容易放棄;
6.開源項目
當知識儲備較為充足時,學習可以再次轉入實踐階段。這時候的實踐仍然可以分兩步走,學習經典的開源項目或者發表高質量的論文。開源項目的學習應該以盡量以優化為目的,單純為讀代碼而學習效果往往不太好。好的開源項目都可以在Github 里搜索。這里以深度學習為例。深度學習的開源優秀庫有很多,例如torch,theano等等,這里列舉其中的兩個:
推薦,DeepLearnToolbox:較早的一個深度學習庫,用matlab語言撰寫,較為適合從剛學習的課程轉入學習。遺憾的是作者不再維護它了;
推薦,tensorflow:Google的開源庫,時至今日,已經有40000多個star,非常驚人,支持移動設備;
7.會議論文
較好的課程都會推薦你一些論文。一些著名的技術與方法往往誕生於一些重要的會議。因此,看往年的會議論文是深入學習的方法。在這時,一些論文中的內容會驅使你學習數學中你不擅長的部分。有時候你會覺得數學知識儲備不夠,因此往往需要學習一些輔助課程。
當你看完足夠的論文以後,在這個階段,如果是在校學生,可以選擇某個課題,以發論文為目的來學習研究。一般來說,論文是工作的產物。有時候一篇基於實驗的論文往往需要你寫代碼或者基於開源項目。因此開源項目的學習與會議論文的工作兩者之間是有相關的。
兩者可以同時進行學習。關於在哪裡看論文,可以看一下CCF推薦排名,了解一下這個領域里有哪些優秀的會議。
下面介紹兩個圖像與機器學習領域的著名頂級會議:
CVPR:與另兩個會議ICCV和ECCV合稱計算機視覺領域的三大會,注意會議每年的主頁是變動的,因此搜索需要加上年份;Conference on Neural Information Processing Systems:簡稱NIPS,許多重要的工作發表在這上面,例如關於CNN的一篇重要論文就是發表在上面;
8.自由學習
到這里了,可以說是進入這個門了。下面可以依據興趣來自由學習。前階段不推薦的學習資源也可隨意學習,下面是點評:
cs229:Ng寫的講義很不錯,其中關於SVM的推導部分很清晰,想學習SVM推薦;Neural Networks for Machine Learning:大牛的視角跟人就是不一樣,看看Hinton對神經網路是怎麼看的,往往會讓你有種原來如此的感悟。其實看這門課程也等同於讀論文,因為幾乎每節課的參考資料里都有論文要你讀;CS231n: Convolutional Neural Networks for Visual Recognition:最新的知識,還有詳細的作業。國內應該有團隊對字幕進行了翻譯,可以找找;PRML:作為一門經典的機器學習書籍,是很有閱讀必要的,會讓你對機器學習擁有一個其他的觀察視角;
五.總結
本文的目的是幫助對AI領域了解不深,但又想進入的同學踏入這個門。這里只說踏入,是因為這個領域的專精實在非常困難,需要數年的積累與努力。在進行領域學習前,充分認識自己的特點,制定合適的學習方法是十分重要的。
首先得對這個領域進行充分了解,培養興趣。在學習時,保持著循序漸進的學習方針,不要猛進的學習過難資源;結合著學習與實踐相輔的策略,不要只讀只看,實際動手才有成就感。學習某個資源時要有充分的目的,不是為了學開源項目而看代碼,而是為了寫開源項目而看;不是為了發論文而寫論文,而是為了做事情而寫論文。
本文來自公眾號:「大技術技術匯」,guanzhu了解大數據行業學習大數據技術和學習路線,還有免費學習資料放送。
如果一個學習資源對你過難,並不代表一定是你的問題,可能是學習資源的演講或撰寫人的問題。能把難的問題講簡單的人才是真正有水平的人。所以,一定要學習優質資源,而不是不分青紅皂白的學習。最後,牢記以興趣來學習。學習的時間很長,過程也很艱難,而只有興趣才是讓你持之以恆,攻克難關的最佳助力。
H. 數據科學家要具備哪些能力
數學功底:微積分是嚴格要掌握的。不一定要掌握多元微積分,但一元微積分是必須要熟練掌握並使用的。另外線性代數一定要精通,特別是矩陣的運算、向量空間、秩等概念。當前機器學習框架中很多計算都需要用到矩陣的乘法、轉置或是求逆。雖然很多框架都直接提供了這樣的工具,但我們至少要了解內部的原型原理,比如如何高效判斷一個矩陣是否存在逆矩陣並如何計算等。
數理統計:概率論和各種統計學方法要做到基本掌握,比如貝葉斯概率如何計算,概率分布是怎麼回事,雖不要求精通,但對相關背景和術語一定要了解。
互動式數據分析框架:這里並不是指SQL或資料庫查詢,而是像Apache Hive或Apache Kylin這樣的分析交互框架。開源社區中有很多這樣類似的框架,可以使用傳統的數據分析方式對大數據進行數據分析或數據挖掘。筆者有過使用經驗的是Hive和Kylin。不過Hive特別是Hive1是基於MapRece的,性能並非特別出色,而Kylin採用數據立方體的概念結合星型模型,可以做到很低延時的分析速度,況且Kylin是第一個研發團隊主力是中國人的Apache孵化項目,因此日益受到廣泛的關注。
機器學習框架:機器學習當前真是火爆宇宙了,人人都提機器學習和AI,但筆者一直認為機器學習恰似幾年前的雲計算一樣,目前雖然火爆,但沒有實際的落地項目,可能還需要幾年的時間才能逐漸成熟。不過在現在就開始儲備機器學習的知識總是沒有壞處的。說到機器學習的框架,大家耳熟能詳的有很多種, 信手拈來的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow領銜。筆者當前建議大家選取其中的一個框架進行學習,但以我對這些框架的了解,這些框架大多很方便地封裝了各種機器學習演算法提供給用戶使用,但對於底層演算法的了解其實並沒有太多可學習之處。因此筆者還是建議可以從機器學習演算法的原理來進行學習。
I. Pytorch損失函數問題X輸入8*n的矩陣,y輸入8*1的矩陣,損失函數如何計算是計算每一個數
摘要 這個比較簡單,沒有太多好說的,就是兩者做差取絕對值,然後求和取平均。
J. TensorFlow的優勢和缺點有哪些
很多神經網路框架已開源多年,支持機器學習和人工智慧的專有解決方案也有很多。多年以來,開發人員在Github上發布了一系列的可以支持圖像、手寫字、視頻、語音識別、自然語言處理、物體檢測的機器學習框架,但並沒有一種框架可以完美地解決你所有的需求。那麼該如何選擇最適合你的開源框架呢?希望下面帶有描述的圖表以及分析可以帶給你以啟發,以此來選擇最適合你的業務需求的框架。
下圖總結了絕大多數Github上的開源深度學習框架項目,根據項目在Github的Star數量來評級,數據採集於2017年5月初。
圖片描述
TensorFlow
TensorFlow框架的前身是Google的DistBelief V2,是谷歌大腦項目的深度網路工具庫,一些人認為TensorFlow是借鑒Theano重構的。
Tensorflow一經開源,馬上引起了大量開發者的跟進。Tensorflow廣泛支持包括圖像、手寫字、語音識別、預測和自然語言處理等大量功能。TensorFlow遵循Apache 2.0開源協議。
TensorFlow在2017年2月15號發布了其1.0版本,這個版本是對先前八個不完善版本的整合。以下是TensorFlow取得成功的一些列原因:
TensorFLow提供這些工具:
TensorBroad是一個設計優良的可視化網路構建和展示工具;
TensorFlow Serving通過保持相同的伺服器架構和API,可以方便地配置新演算法和環境。TensorFlow Serving 還提供開箱即用的模型,並且可以輕松擴展以支持其他的模型和數據。
TensorFlow編程介麵包括Python和C++,Java,Go,R和Haskell語言的介面也在alpha版中支持。另外,TensorFlow還支持谷歌和亞馬遜的雲環境。
TensorFlow的0.12版本支持Windows 7, 8, Server 2016系統。由於採用C++ Eigen庫,TensorFlow類庫可以在ARM架構平台上編譯和優化。這意味著你可以不需要額外實現模型解碼器或者Python解釋器就可以在多種伺服器和移動設備上部署訓練好的模型。
TensorFlow提供細致的網路層使用戶可以構建新的復雜的層結構而不需要自己從底層實現它們。子圖允許用戶查看和恢復圖的任意邊的數據。這對復雜計算的Debug非常有用。
分布式TensorFlow在0.8版本推出,提供了並行計算支持,可以讓模型的不同 部分在不同設備上並行訓練。
TensorFlow在斯坦福大學,伯克利學院,多倫多大學和Udacity(2016年3月成立的在線學校)均有教學。
TensorFlow的缺點有:
每個計算流必須構建成圖,沒有符號循環,這樣使得一些計算變得困難;
沒有三維卷積,因此無法做視頻識別;
即便已經比原有版本(0.5)快了58倍,但執行性能仍然不及它的競爭者。
Caffe
Caffe是賈揚清的作品,目前,賈揚清是Facebook AI平台的Lead。始於2013年末,Caffe可能是第一個主流的工業級的深度學習工具包。Caffe具有卓越的卷積模型,是計算機視覺領域最受歡迎的工具之一,且2014年ImageNet 大賽的獲獎作品使用的就是Caffe框架。Caffe遵循BSD 2-Clasuse 協議。
Caffe的高速使得它非常適合於科研和商業領域。利用一個NVIDIA K40 GPU,Caffe可以每天處理60M張圖片,即推斷1毫秒一張,訓練4毫秒一張。使用最新的版本,甚至可以更快。
Caffe底層是用C++實現的,可以在各種設備上編譯。Caffe是跨平台的並且提供Windows介面,它提供C++,Python和Matlab語言介面。Caffe擁有著龐大的用戶社區,並且有大量深度網路模型在社區上貢獻,被稱為「Model Zoo」。其中,AlexNet和GoogleNet是最著名的兩個。
Caffe是視覺識別的流行框架,然而Caffe不提供像TensorFlow,CNTK或Theano一樣細粒度的層結構。你必須編寫底層代碼來構建復雜的層結構。由於它的固有架構,Caffe對循環網路和語言模型的支持不力。
Caffe2
賈揚清和他的團隊目前在Facebook致力於Caffe2的研發。2017年4月18號,Facebook基於BSD協議開源了Caffe2。Caffe2聚焦於模塊化,在移動設備和大規模部署均表現出色。和TensorFlow一樣,Caffe2頁使用C++ Eigen以支持ARM架構。
Caffe的模型可以通過腳本輕松轉化成Caffe2模型。Caffe在設計上的傾向使得它特別適合視覺相關的問題,Caffe2沿襲了它對視覺問題的強大支持,同時還加入了RNN和LSTM以更好地支持自然語言處理,手寫字識別和時間序列預測。
可以預見在不遠的將來Caffe2將會替代Caffe在深度學習社區的地位。
Microsoft Cognitive Toolkit
Microsoft Cognitive Toolkit(CNTK)設計的初衷是用於語音識別領域。CNTK支持RNN(循環神經網路)和CNN(卷積神經網路),因此他有能力勝任圖像、手寫字和語音識別問題。CNTK支持64位Linux和Windows系統,提供Python和C++語言介面,遵循MIT協議。
CNTK與TensorFlow和Theano有著類似的設計理念——把網路定義成向量操作的語義圖,向量操作例如矩陣加法、矩陣乘法以及卷積。同時,CNTK也提供細粒度的網路層設計,允許用戶使用它們設計新的復雜網路。
和Caffe一樣,CNTK底層也是C++實現並具有跨平台CPU/GPU支持。搭載在Azure GPU Lab上,CNTK能發揮出最高的分布式計算性能。目前,CNTK由於不支持ARM架構,限制了其在移動端的應用。
MXNet
MXNet源自於卡內基梅隆大學和華盛頓大學。MXNet是一個極具特色,可編程,可擴展的深度學習框架。MXNet可以混合多種語言的模型和代碼,包括Python, C++, R, Scala, Julia, Matlab, JavaScript。2017年1月30號,MXNet被納為Apache基金會孵化項目。
MXNet支持CNN、RNN、LSTM, 提供對圖像,手寫字,語音識別,預測和自然語言問題的強大支持。有人認為,MXNet是世界上最好的圖像分類器。
MXNet具有出色的可擴展性,例如GPU並行計算,存儲映像,高速開發和可移植性。另外,MXNet可以和Apache Hadoop YARN結合,YARN是一個通用分布式應用管理框架,這一特性使得MXNet成為TensorFlow的競爭者。
MXNet的一個獨特之處是它是少有的幾個支持對抗生成網路(GAN)的框架之一。這個模型被用於實驗經濟學方法中的「納什均衡」。
另一個特殊之處是,亞馬遜的CTO Werner Vogels宣布了對MXNet的支持:「今天,我們宣布MXNet將成為亞馬遜的深度學習框架選擇。我們將在現有和未來將出現的服務中使用MXNet。」蘋果公司的部分傳聞也表示該公司將會使用MXNet作為其深度學習框架。
Torch
Torch由Facebook的Royan Collobert、Soumith Chintala、曾任於Twitter現任於Nvidia的Clement Farabet和Google Deep Mind 的Koray Kavukcuoglu共同開發。其主要貢獻者是Facebook、Twitter和Nvidia。 Torch遵守BSD 3 clause 開源協議。然而,Facebook近期宣布將轉向Caffe2作為其首選深度學習框架因為它支持移動設備開發。
Torch由Lua語言實現,Lua是一種小眾語言,因此若你不熟悉這門語言,會影響到整個工作的效率。
Torch缺少像TensorFlow、MXNet on YARN和Deeplearning4J那樣的的分布式支持,缺少多種語言介面同樣限制了它的受眾。
DeepLearning4J
DeepLearning4J(DL4J)是基於Apache 2.0協議的分布式開源神經網路類庫,它由Java和Scala實現。DL4J是SkyMind的Adam Gibson開發的,它是唯一的商品級深度學習網路,可以和Hadoop、Spark結合構建多用戶多線程服務。DL4J是唯一使用Map-Rece訓練網路而使用其他類庫進行大規模矩陣操作的框架。
DL4J擁有內建的GPU支持,這一重要特性能夠支持YARN上的訓練過程。DL4J擁有豐富的深度神經網路架構支持,包括RBM,DBN,CNN,RNN,RNTN和LSTM。DL4J還支持一個向量計算庫——Canova。
由於是由Java實現,DL4J先天比Python塊,它使用多GPU執行圖像識別任務和Caffe一樣快。該框架可以出色完成圖像識別,欺詐檢測和自然語言處理任務。
Theano
Theano主要由蒙特利爾大學學習演算法研究所(MILA)創立。Yoshua Bengio是Theano的開創者,同時領導這個實驗室,該實驗室在深度學習研究領域做出巨大的貢獻,培養出約100名相關學生和從業者。Theano支持高效機器學習演算法的快速開發,遵守BSD開源協議。
Theano不像TensorFlow那樣優雅,但它提供了支持循環控制(被稱為scan)的API,可以輕松實現RNN。
Theano提供多種支持手寫字識別、圖像分類(包括醫學圖像)的卷積模型。Theano還提供三維卷積和池化用於視頻分類。在語言方面,Theano能勝任例如理解、翻譯和生成等自然語言處理任務。Theano還支持生成對抗網路(GAN),GAN即是由MILA的一位學生提出的。
Theano支持多GPU並行計算並且自帶分布式框架。Theano只支持一種開發語言,比TensorFlow速度快很多,是一種學術研究的有力工具。然而,其不支持移動平台以及沒有多種語言介面的缺陷限制了它在企業的廣泛應用。
開源與專利軟體之爭
隨著深度學習逐漸成熟,可以預知到我們將見證TensorFlow,Caffe2和MXNet的競賽。同時,軟體供應商也在提供先進的AI產品使你從數據中獲取更多價值。問題是:你會購買帶有專利的AI產品還是使用開源框架。如果使用開源框架,你將會面臨哪種框架最適合你的問題的選擇困難。而選擇專利軟體,你又將怎樣制定退出策略?任何一種選擇都需要長遠考慮。