導航:首頁 > 程序命令 > ng程序員

ng程序員

發布時間:2022-10-10 16:27:32

A. 沒考上大學,學點什麼技術好呢ng

學廚師是很不錯的,現在隨著人們生活品質的提高,外出就餐的頻率也越來越多了,所現在餐飲業的發展很是迅速,廚師這個行業現在的需求量是很大的。
廚師還是很有優勢的:
1、學廚師 熱門行業、高薪職業、永不失業。作為人們的需求,它不是新興產業,不會被淘汰。只有菜品的舉一反三,不會存在產品的更新換代。
2、學廚師 發展好,提升空間大。廚師長、行政總廚等都是目前緊缺的人才,也是學廚師一直努力的目標,高薪緊缺的職位,只有在餐飲界才會出現,廚師永遠都是你的首選。
3、 學廚師 投入小,回報大。不論你出身在哪裡,不論你貧窮富貴,只要你肯努力,不用投資上百萬,你就可以擁有自己的事業。
4、學廚師 花費時間少,就業成才快。易學、易懂、起點為零。從基礎開始,不用你懂電路圖,也不需要你會編程,只要動手去做,課程都能學會。
5、 餐飲業的飛速發展,訂單式培養,不用再去人才濟濟的雙選會,你就可以成為高薪人士。
新東方烹飪學校有大專學歷的。目前的話,一年制以上專業,推薦就業的。兩年制和三年制專業,都是大中專學歷

B. 關於後端程序員寫前端用什麼框架更好

前端框架好不好用還是要具體情況具體分析,我這邊給你推薦11個前端常用的框架,你可以按需使用。

1、vue-element-admin

一個基於vue2.0和Element的控制面板UI框架,這是使用vue技術棧開發的前端程序員的首選管理系統模板,模板已經非常成熟了,並且有相關的社區和維護人員,開發時遇到問題也不要慌。

2、AdmimLTE

非常流行的基於Bootstrap 3.x的免費的後台UI框架,這是一個非常老牌的後台管理系統模板,每個頁面都是單獨的html網頁,適合前端入門新手來做項目。

3、ant-design-pro

這個就不多說了,選擇react技術棧的童鞋們必然離不開這個優秀的開箱即用的中台前端/設計解決方案,文檔齊全,組件豐富,一鍵生成模板,更支持開啟復制粘貼模式哦。

4:ng2-admin

這是基於 Angular 2, Bootstrap 4 和 Webpack的後台管理面板框架,要說前面已經有了react和vue技術棧的模板,那怎麼能少的了ng的?雖然在國外用的比較多,國內較少使用,但絲毫不影響ng作為前端框架三大巨頭之一的地位呀。

9:material-dashboard

基於 Bootstrap 4 和 Material 風格的控制面板。Material Dashboard 是一個開源的 Material

Bootstrap Admin,其設計靈感來自谷歌的 Material Design 。

10:d2-admin

D2Admin 是一個完全 開源免費 的企業中後台產品前端集成方案,基於 vue.js 和 ElementUI 的管理系統前端解決方案 ,小於 60kb的本地首屏 js 載入,已經做好大部分項目前期准備工作

11:vuestic-admin

vuestic-admin管理台儀表盤是一個響應式的儀表盤模板,採用Bootstrap4和Vue.js構建。這個精美的管理台模板提供了自定義元素組件,如地圖,聊天,個人資料卡,圖標,進度條等,以及用於登錄和注冊的預建頁面。

C. Angular有何優勢為何備受程序猿喜愛

Angular是目前前端開發使用率比較高的一個框架,它開發簡單,不用做過多的頁面,擴展性強,讓很多程序員都非常喜愛。

單頁面模式讓程序員快速開發

很久以前開發前端頁面都需要一個頁面一個頁面的編寫。比如一個網站有商品列表頁,商品詳情頁,以往的開發方式都是編寫2個頁面,加重了程序員開發的壓力。而Angular則比較注重單頁面模式,程序員可以快速的搭建頁面,不用在一個頁面一個頁面的寫了。

針對Angular的優勢你還知道哪些點呢?歡迎大家在底下留言評論,大家一起學習吧!

D. 一個前段程序員一年會接觸多少項目

一般一年接觸2個小項目,並做好就差不多了吧!
請採納! 如有疑問,請及時溝通!

E. 程序員為什麼要學深度學習

費良宏:程序員為什麼要學深度學習?

深度學習本身是一個非常龐大的知識體系。本文更多想從程序員的視角出發,讓大家觀察一下深度學習對程序員意味著什麼,以及我們如何利用這樣一個高速發展的學科,來幫助程序員提升軟體開發的能力。
本文根據費良宏在2016QCon全球軟體開發大會(上海)上的演講整理而成。
前言
1973年,美國上映了一部熱門的科幻電影《WestWorld》,三年之後又有一個續集叫做《FutureWorld》。這部電影在80年代初被引進到中國叫《未來世界》。那部電影對我來講簡直可以說得上是震撼。影片中出現了很多機器人,表情豐富的面部下面都是集成電路板。這讓那時候的我覺得未來世界都是那麼遙遠、那麼神秘。
時間到了2016年,很多朋友可能都在追看HBO斥巨資拍攝的同一題材的系列劇《WestWorld》。如果前兩部電影還是局限在機器人、人工智慧這樣的話題,2016年的新劇則在劇情和人工智慧的思考方面有了很大的突破。不再渲染機器人是否會威脅到人類,而是在探討「Dreamsaremainlymemories」這一類更具哲理的問題。
「記憶究竟如何影響了智能」這個話題非常值得我們去思考,也給我們一個很好的啟示——今天,人工智慧領域究竟有了怎樣的發展和進步。
今天我們探討的話題不僅僅是簡單的人工智慧。如果大家對深度學習感興趣,我相信各位一定會在搜索引擎上搜索過類似相關的關鍵字。我在Google上以deeplearning作為關鍵字得到了2,630萬個搜索的結果。這個數字比一周之前足足多出了300多萬的結果。這個數字足以看得出來深度學習相關的內容發展的速度,人們對深度學習的關注也越來越高。

從另外的一個角度,我想讓大家看看深度學習在市場上究竟有多麼熱門。從2011年到現在一共有140多家專注人工智慧、深度學習相關的創業公司被收購。僅僅在2016年這種並購就發生了40多起。
其中最瘋狂的是就是Google,已經收購了 11 家人工智慧創業公司,其中最有名的就是擊敗了李世石九段的 DeepMind。排名之後的就要數 Apple、Intel以及Twitter。以Intel 公司為例,僅在今年就已經收購了 3 家創業公司,Itseez、Nervana 和 Movidius。這一系列大手筆的並購為了布局人工智慧以及深度學習的領域。
當我們去搜索深度學習話題的時候,經常會看到這樣的一些晦澀難懂的術語:Gradient descent(梯度下降演算法)、Backpropagation(反向傳播演算法)、Convolutional Neural Network(卷積神經網路)、受限玻耳茲曼機(Restricted Boltzmann Machine)等。
如打開任何一篇技術文章,你看到的通篇都是各種數學公式。大家看到如下左邊的圖,其實並不是一篇高水準的學術論文,而僅僅是維基網路關於玻耳茲曼機的介紹。維基網路是科普層面的內容,內容復雜程度就超過了大多數數學知識的能力。

在這樣的背景之下,我今天的的話題可以歸納成三點:第一,我們為什麼要學習深度學習;第二,深度學習最核心的關鍵概念就是神經網路,那麼究竟什麼是神經網路;第三,作為程序員,當我們想要成為深度學習開發者的時候,我們需要具備怎樣的工具箱,以及從哪裡著手進行開發。
為什麼要學習深度學習
首先,我們談談為什麼要學習深度學習。在這個市場當中,最不缺乏的就是各種概念以及各種時髦新技術的詞彙。深度學習有什麼不一樣的地方?我非常喜歡AndrewNg(吳恩達)曾經用過的一個比喻。
他把深度學習比喻成一個火箭。這個火箭有一個最重要的部分,就是它的引擎,目前來看在這個領域裡面,引擎的核心就是神經網路。大家都知道,火箭除了引擎之外還需要有燃料,那麼大數據其實就構成了整個火箭另外的重要組成部分——燃料。以往我們談到大數據的時候,更多是強調存儲和管理數據的能力,但是這些方法和工具更多是對於以往歷史數據的統計、匯總。
而對於今後未知的東西,這些傳統的方法並不能夠幫助我們可以從大數據中得出預測的結論。如果考慮到神經網路和大數據結合,我們才可能看清楚大數據真正的價值和意義。AndrewNg就曾經說過「我們相信(神經網路代表的深度學習)是讓我們獲得最接近於人工智慧的捷徑」。這就是我們要學習深度學習的一個最重要的原因。

其次,隨著我們進行數據處理以及運算能力的不斷提升,深度學習所代表的人工智慧技術和傳統意義上人工智慧技術比較起來,在性能上有了突飛猛進的發展。這主要得益於在過去幾十間計算機和相關產業不斷發展帶來的成果。在人工智慧的領域,性能是我們選擇深度學習另一個重要的原因。

這是一段Nvidia在今年公布的關於深度學習在無人駕駛領域應用的視頻。我們可以看到,將深度學習應用在自動駕駛方面,僅僅經歷了3千英里的訓練,就可以達到什麼樣的程度。在今年年初進行的實驗上,這個系統還不具備真正智能能力,經常會出現各種各樣的讓人提心吊膽的狀況,甚至在某些情況下還需要人工干預。
但經過了3千英里的訓練之後,我們看到在山路、公路、泥地等各種復雜的路況下面,無人駕駛已經有了一個非常驚人的表現。請大家注意,這個深度學習的模型只經過了短短幾個月、3千英里的訓練。
如果我們不斷完善這種模型的話,這種處理能力將會變得何等的強大。這個場景裡面最重要的技術無疑就是深度學習。我們可以得出一個結論:深度學習可以為我們提供強大的能力,如果程序員擁有了這個技術的話,無異於會讓每個程序員如虎添翼。
神經網路快速入門
如果我們對於學習深度學習沒有任何疑慮的話,接下來就一定會關心我需要掌握什麼樣的知識才能讓我進入到這個領域。這裡面最重要的關鍵技術就是「神經網路」。說起「神經網路」,容易混淆是這樣兩個完全不同的概念。
一個是生物學神經網路,第二個才是我們今天要談起的人工智慧神經網路。可能在座的各位有朋友在從事人工智慧方面的工作。當你向他請教神經網路的時候,他會拋出許多陌生的概念和術語讓你聽起來雲里霧里,而你只能望而卻步了。
對於人工智慧神經網路這個概念,大多數的程序員都會覺得距離自己有很大的距離。因為很難有人願意花時間跟你分享神經網路的本質究竟是什麼。而你從書本上讀的到的理論和概念,也很讓你找到一個清晰、簡單的結論。
今天就我們來看一看,從程序員角度出發神經網路究竟是什麼。我第一次知道神經網路這個概念是通過一部電影——1991年上映的《終結者2》。男主角施瓦辛格有一句台詞:
「MyCPUisaneural-netprocessor;alearningcomputer.」(我的處理器是一個神經處理單元,它是一台可以學習的計算機)。從歷史來看人類對自身智力的探索,遠遠早於對於神經網路的研究。
1852年,義大利學者因為一個偶然的失誤,將人類的頭顱掉到硝酸鹽溶液中,從而獲得第一次通過肉眼關注神經網路的機會。這個意外加速了對人類智力奧秘的探索,開啟了人工智慧、神經元這樣概念的發展。
生物神經網路這個概念的發展,和今天我們談的神經網路有什麼關系嗎?我們今天談到的神經網路,除了在部分名詞上借鑒了生物學神經網路之外,跟生物學神經網路已經沒有任何關系,它已經完全是數學和計算機領域的概念,這也是人工智慧發展成熟的標志。這點大家要區分開,不要把生物神經網路跟我們今天談到的人工智慧有任何的混淆。

90年代中期,由Vapnik等人提出了支持向量機演算法(Support Vector Machines,支持向量機)。很快這個演算法就在很多方面體現出了對比神經網路的巨大優勢,例如:無需調參、高效率、全局最優解等。基於這些理由,SVM演算法迅速打敗了神經網路演算法成為那個時期的主流。而神經網路的研究則再次陷入了冰河期。
在被人摒棄的十年裡面,有幾個學者仍然在堅持研究。其中很重要的一個人就是加拿大多倫多大學的Geoffery Hinton教授。2006年,他的在著名的《Science》雜志上發表了論文,首次提出了「深度信念網路」的概念。
與傳統的訓練方式不同,「深度信念網路」有一個「預訓練」(pre-training)的過程,這可以方便的讓神經網路中的權值找到一個接近最優解的值,之後再使用「微調」(fine-tuning)技術來對整個網路進行優化訓練。這兩個技術的運用大幅度減少了訓練多層神經網路的時間。在他的論文裡面,他給多層神經網路相關的學習方法賦予了一個新名詞— 「深度學習」。
很快,深度學習在語音識別領域嶄露頭角。接著在2012年,深度學習技術又在圖像識別領域大展拳腳。Hinton與他的學生在ImageNet競賽中,用多層的卷積神經網路成功地對包含一千個類別的一百萬張圖片進行了訓練,取得了分類錯誤率15%的好成績,這個成績比第二名高了將近11個百分點。
這個結果充分證明了多層神經網路識別效果的優越性。從那時起,深度學習就開啟了新的一段黃金時期。我們看到今天深度學習和神經網路的火熱發展,就是從那個時候開始引爆的。

利用神經網路構建分類器,這個神經網路的結構是怎樣的?

其實這個結構非常簡單,我們看到這個圖就是簡單神經網路的示意圖。神經網路本質上就是一種「有向圖」。圖上的每個節點借用了生物學的術語就有了一個新的名詞 – 「神經元」。連接神經元的具有指向性的連線(有向弧)則被看作是「神經」。這這個圖上神經元並不是最重要的,最重要的是連接神經元的神經。每個神經部分有指向性,每一個神經元會指向下一層的節點。
節點是分層的,每個節點指向上一層節點。同層節點沒有連接,並且不能越過上一層節點。每個弧上有一個值,我們通常稱之為」權重「。通過權重就可以有一個公式計算出它們所指的節點的值。這個權重值是多少?我們是通過訓練得出結果。它們的初始賦值往往通過隨機數開始,然後訓練得到的最逼近真實值的結果作為模型,並可以被反復使用。這個結果就是我們說的訓練過的分類器。
節點分成輸入節點和輸出節點,中間稱為隱層。簡單來說,我們有數據輸入項,中間不同的多個層次的神經網路層次,就是我們說的隱層。之所以在這樣稱呼,因為對我們來講這些層次是不可見的。輸出結果也被稱作輸出節點,輸出節點是有限的數量,輸入節點也是有限數量,隱層是我們可以設計的模型部分,這就是最簡單的神經網路概念。
如果簡單做一個簡單的類比,我想用四層神經網路做一個解釋。左邊是輸入節點,我們看到有若干輸入項,這可能代表不同蘋果的RGB值、味道或者其它輸入進來的數據項。中間隱層就是我們設計出來的神經網路,這個網路現在有不同的層次,層次之間權重是我們不斷訓練獲得一個結果。
最後輸出的結果,保存在輸出節點裡面,每一次像一個流向一樣,神經是有一個指向的,通過不同層進行不同的計算。在隱層當中,每一個節點輸入的結果計算之後作為下一層的輸入項,最終結果會保存在輸出節點上,輸出值最接近我們的分類,得到某一個值,就被分成某一類。這就是使用神經網路的簡單概述。

除了從左到右的形式表達的結構圖,還有一種常見的表達形式是從下到上來表示一個神經網路。這時候,輸入層在圖的最下方,輸出層則在圖的最上方。從左到右的表達形式以AndrewNg和LeCun的文獻使用較多。而在Caffe框架里則使用的則是從下到上的表達。
簡單來說,神經網路並不神秘,它就是有像圖,利用圖的處理能力幫助我們對特徵的提取和學習的過程。2006年Hinton的那篇著名的論文中,將深度學習總結成三個最重要的要素:計算、數據、模型。有了這三點,就可以實現一個深度學習的系統。
程序員需要的工具箱
對於程序員來說,掌握理論知識是為了更好的編程實踐。那就讓我們看看,對於程序員來說,著手深度學習的實踐需要准備什麼樣的工具。
硬體
從硬體來講,我們可能需要的計算能力,首先想到的就是CPU。除了通常的CPU架構以外,還出現了附加有乘法器的CPU,用以提升計算能力。此外在不同領域會有DSP的應用場景,比如手寫體識別、語音識別、等使用的專用的信號處理器。還有一類就是GPU,這是一個目前深度學習應用比較熱門的領域。最後一類就是FPGA(可編程邏輯門陣列)。
這四種方法各有其優缺點,每種產品會有很大的差異。相比較而言CPU雖然運算能力弱一些,但是擅長管理和調度,比如讀取數據,管理文件,人機交互等,工具也豐富。DSP相比而言管理能力較弱,但是強化了特定的運算能力。
這兩者都是靠高主頻來解決運算量的問題,適合有大量遞歸操作以及不便拆分的演算法。GPU的管理能力更弱一些,但是運算能力更強。但由於計算單元數量多,更適合整塊數據進行流處理的演算法。
FPGA在管理與運算處理方面都很強,但是開發周期長,復雜演算法開發難度較大。就實時性來說,FPGA是最高的。單從目前的發展來看,對於普通程序員來說,現實中普遍採用的計算資源就還是是CPU以及GPU的模式,其中GPU是最熱門的領域。

這是我前天為這次分享而准備的一個AWS 上p2的實例。僅僅通過幾條命令就完成了實例的更新、驅動的安裝和環境的設置,總共的資源創建、設置時間大概在10分鍾以內。而之前,我安裝調試前面提到的那台計算機,足足花了我兩天時間。

另外,從成本上還可以做一個對比。p2.8xLarge 實例每小時的費用是7.2美元。而我自己那台計算機總共的花費了是¥16,904元。這個成本足夠讓我使用350多個小時的p2.8xLarge。在一年裡使用AWS深度學習站就可以抵消掉我所有的付出。隨著技術的不斷的升級換代,我可以不斷的升級我的實例,從而可以用有限的成本獲得更大、更多的處理資源。這其實也是雲計算的價值所在。
雲計算和深度學習究竟有什麼關系?今年的8月8號,在IDG網站上發表了一篇文章談到了這個話題。文章中做了這樣一個預言:如果深度學習的並行能力不斷提高,雲計算所提供的處理能力也不斷發展,兩者結合可能會產生新一代的深度學習,將帶來更大影響和沖擊。這是需要大家考慮和重視的一個方向!
軟體
深度學習除了硬體的基礎環境之外。程序員會更關心與開發相關的軟體資源。這里我羅列了一些曾經使用過的軟體框架和工具。

Scikit-learn是最為流行的一個python機器學習庫。它具有如下吸引人的特點:簡單、高效且異常豐富的數據挖掘/數據分析演算法實現; 基於NumPy、SciPy以及matplotlib,從數據探索性分析,數據可視化到演算法實現,整個過程一體化實現;開源,有非常豐富的學習文檔。
Caffe專注在卷及神經網路以及圖像處理。不過Caffe已經很久沒有更新過了。這個框架的一個主要的開發者賈揚清也在今年跳槽去了Google。也許曾經的霸主地位要讓位給他人了。
Theano 是一個非常靈活的Python 機器學習的庫。在研究領域非常流行,使用上非常方便易於定義復雜的模型。Tensorflow 的API 非常類似於Theano。我在今年北京的QCon 大會上也分享過關於Theano 的話題。
Jupyter notebook 是一個很強大的基於ipython的python代碼編輯器,部署在網頁上,可以非常方便的進行互動式的處理,很適合進行演算法研究合數據處理。
Torch 是一個非常出色的機器學習的庫。它是由一個比較小眾的lua語言實現的。但是因為LuaJIT 的使用,程序的效率非常出色。Facebook在人工智慧領域主打Torch,甚至現在推出了自己的升級版框架Torchnet。
深度學習的框架非常之多,是不是有一種亂花漸欲迷人眼的感覺?我今天向各位程序員重點介紹的是將是TensorFlow。這是2015年穀歌推出的開源的面向機器學習的開發框架,這也是Google第二代的深度學習的框架。很多公司都使用了TensorFlow開發了很多有意思的應用,效果很好。
用TensorFlow可以做什麼?答案是它可以應用於回歸模型、神經網路以深度學習這幾個領域。在深度學習方面它集成了分布式表示、卷積神經網路(CNN)、遞歸神經網路(RNN) 以及長短期記憶人工神經網路(Long-Short Term Memory, LSTM)。
關於Tensorflow 首先要理解的概念就是Tensor。在辭典中對於這個詞的定義是張量,是一個可用來表示在一些向量、標量和其他張量之間的線性關系的多線性函數。實際上這個表述很難理解,用我自己的語言解釋Tensor 就是「N維數組」而已。

使用 TensorFlow, 作為程序員必須明白 TensorFlow這樣幾個基礎概念:它使用圖 (Graph) 來表示計算任務;在被稱之為 會話 (Session) 的上下文 (context) 中執行圖;使用 Tensor 表示數據;通過 變數 (Variable) 維護狀態;使用 feed 和 fetch 可以為任意的操作(arbitrary operation) 賦值或者從其中獲取數據。
一句話總結就是,TensorFlow 就是有狀態圖的數據流圖計算環境,每個節點就是在做數據操作,然後提供依賴性和指向性,提供完整數據流。
TensorFlow安裝非常簡單,但官網提供下載的安裝包所支持的CUDA 的版本是7.5。考慮到CUDA 8 的讓人心動的新特以及不久就要正式發布的現狀。或許你想會考慮立即體驗CUDA 8,那麼就只能通過編譯Tensorflow源代碼而獲得。目前TensorFlow已經支持了Python2.7、3.3+。
此外,對於使用Python 語言的程序員還需要安裝所需要的一些庫,例如:numpy、protobuf等等。對於卷積處理而言,cuDNN是公認的性能最好的開發庫,請一定要安裝上。常規的Tensorsorflow的安裝很簡單,一條命令足矣:
$ pip3 install —upgrade https://storage.233.wiki/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp35-cp35m-linux_x86_64.whl
如果想評估一下或者簡單學習一下,還可以通過Docker進行安裝,安裝的命令如下:
$ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow
TensorFlow有很多優點。首先,目前為止,深度學習的開發框架裡面TensorFlow的文檔做的最好,對程序員學習而言是非常好的一點。第二,TensorFlow有豐富的參考實例,作為參考學習起來非常容易。
第三,開發者社區活躍,在任何一個深度學習的社區里,都有大量關於TensorFlow的討論。第四,谷歌的支持力度非常大,從2015年到現在升級速度非常快,這是其他開源框架遠遠達不到的結果。
參考TensorFlow的白皮書,我們會看到未來TensorFlow還將會有巨大的發展潛力。讓我特別感興趣是這兩個方向。第一,支持跨多台機器的 parallelisation。盡管在0.8版本中推出了並行化的能力,但是目前還不完善。隨著未來不斷發展,依託雲計算的處理能力的提升這個特性將是非常讓人振奮的。
第二,支持更多的開發語言,對於開發者來說這是一個絕大的利好,通過使用自己擅長的語言使用TensorFlow應用。這些開發語言將會擴展到Java、Lua以及R 等。
在這里我想給大家展示一個應用Tensorflow 的例子。這個例子的代碼託管在這個網址上 https://github.com/anishathalye/neural-style。白俄羅斯的現代印象派藝術家Leonid Afremov善於用濃墨重彩來表現都市和風景題材,尤其是其雨景系列作品。他習慣用大色塊的鋪陳來營造光影效果,對反光物體和環境色的把握非常精準。
於是我就找到了一張上海東方明珠電視塔的一張攝影作品,我希望通過Tensorflow 去學習一下Leonid Afremov 的繪畫風格,並將這張東方明珠的照片處理成那種光影色彩豐富的作品風格。利用Tensorflow 以及上面提到的那個項目的代碼,在一個AWS 的p2類型的實例上進行了一個一千次的迭代,於是就得到了下圖這樣的處理結果。

這個處理的代碼只有350行里,模型使用了一個成名於2014年ImageNet比賽中的明星 VGG。這個模型非常好,特點就是「go depper」。
TensorFlow 做出這樣的作品,並不僅僅作為娛樂供大家一笑,還可以做更多有意思的事情。將剛才的處理能力推廣到視頻當中,就可以看到下圖這樣的效果,用梵高著名的作品」星月夜「的風格就加工成了這樣新的視頻風格。

可以想像一下,如果這種處理能力在更多領域得以應用,它會產生什麼樣的神奇結果?前景是美好的,讓我們有無限遐想。事實上我們目前所從事的很多領域的應用開發都可以通過使用神經網路和深度學習來加以改變。對於深度學習而言,掌握它並不是難事。每一個程序員都可以很容易的掌握這種技術,利用所具備的資源,讓我們很快成為深度學習的程序開發人員。
結束語
未來究竟是什麼樣,我們沒有辦法預言。有位作家Ray Kurzweil在2005年寫了《奇點臨近》一書。在這本書裡面他明確告訴我們,那個時代很快到來。作為那個時代曙光前的人群,我們是不是有能力加速這個過程,利用我們學習的能力實現這個夢想呢?

中國人工智慧的發展
人工智慧的時代無疑已經到來,這個時代需要的當然就是掌握了人工智慧並將其解決具體問題的工程師。坦率的說,市場上這一類的工程師還屬於鳳毛麟角。職場上的薪酬待遇可以看得出來這樣的工程師的搶手的程度。人工智慧這門學科發展到今天,就學術自身而言已經具備了大規模產業化的能力。
所以說,對於工程師而言當務之急就是盡快的掌握應用人工智慧的應用技術。當下在互聯網上關於人工智慧的學習資料可以說已經是「汗牛充棟」,那些具備了快速學習能力的工程師一定會在人工智慧的大潮當中脫穎而出。
中國發展人工智慧產業的環境已經具備。無論從創業環境、人員的素質乃至市場的機遇而言完全具備了產生產業變革的一切條件。與美國相比較,在人工智慧的許多領域中國團隊的表現也可以說是不逞多讓。就人工智慧的技術層面而言,中國的工程師與全球最好的技術團隊正處於同一個起跑線上。
時不我待,中國的工程師是有機會在這個領域大展身手的。不過值得注意的是,要切忌兩點:一是好高騖遠,盲目與國外攀比。畢竟積累有長短,術業有專攻,我們要立足於已有的積累,尋求逐步的突破。二是一擁而上,盲目追求市場的風口。人工智慧的工程化需要大量的基礎性的積累,並非一蹴而就簡單復制就可以成功。
中國的科研技術人員在人工智慧領域的成就有目共睹。在王詠剛的一篇文章裡面,他統計了從2013年到2015年SCI收錄的「深度學習」論文,中國在2014年和2015年超已經超過了美國居於領跑者的位置。
另外一讓我感到驚訝的事情,Google的JeffDean在2016年發表過一篇名為《TensorFlow:Asystemforlarge-scalemachinelearning》的論文。文章的22個作者裡面,明顯是中國名字的作者占已經到了1/5。如果要列舉中國人/華人在人工智慧領域里的大牛,吳恩達、孫劍、楊強、黃廣斌、馬毅、張大鵬……很容易就可以說出一大串。
對於中國來說目前的當務之急是人工智慧技術的產業化,唯有如此我們才可以講科研/智力領域的優勢轉化為整體的、全面的優勢。在這一點上,中國是全球最大的消費市場以及製造業強國,我們完全有機會藉助市場的優勢成為這個領域的領先者。
矽谷創新企業
矽谷雖然去過許多回,但一直無緣在那裡長期工作。在人工智慧領域的市場我們聽到的更多是圍繞Google、Apple、Intel、Amazon這樣的一些大型科技公司的一舉一動。但是在美國市場上還有一大批小型的創業企業在人工智慧這個領域有驚艷的表現。僅以矽谷區域的公司為例:
Captricity,提供了手寫數據的信息提取;
VIVLab,針對語音識別開發了虛擬助手服務;
TERADEEP,利用FPGA提供了高效的卷積神經網路的方案;
還有提供無人駕駛解決方案的NetraDyne。
這個名單還可以很長,還有許許多多正在利用人工智慧技術試圖去創造歷史的團隊正在打造他們的夢想。這些團隊以及他們正在專注的領域是值得我們去學習和體會的。

F. 專業程序員7大特質

成為一個專業人士是所有程序員的目標。在矽谷待了將近3年,在這里近距離觀察了Google,Facebook,
Uber等公司的大拿,並有幸與其中的一部分一起工作。在此分享大牛程序員的行為風格以及我自己的所思所想,希望對大家有所幫助。


承擔責任


這是專業和不專業的分水嶺。對於一般的程序員來說,他的責任就是及時、高質量的完成任務;對於TechLead
來說,其責任就是統領全組,合理安排任務,讓組員各司其職。這里包括3點:


承擔合適的責任。選擇自己能力范圍內、自己喜歡做的。一旦選擇了工作,請承擔完成的責任;


學會說不。經常看到,產品經理或者領導會催促在極短的時間內完成任務,而程序員這個時候總是欲拒還休,說我來試試吧。專業的程序員對於任務有靠譜的預判和掌控力。當完成不了的時候,一定要說不。否則既是對自己不負責任,也是對他人不負責任。


應對最壞的情況。程序員最悲催的莫過於搞不定任務,這個時候一定不要推卸責任。這時候最重要的是給出一個切實可行的補救方案,最好有一個完成任務的時間點。老闆不在乎你為什麼完不成,在乎的是究竟怎樣能完成。


高質量的代碼


沒有Bug,每一段代碼都要有相應測試。很多人不寫測試,那是因為他們抱著僥幸心理覺得自己代碼沒問題,同時寫測試又很浪費時間。實際上保證代碼質量的第一要素就是測試,測試可以讓你檢測不同輸入所產生的輸出,有時候甚至可以推動你去修改開發代碼以提高質量。


可讀性要高。剛學計算機的同學,變數隨性命名,整個文檔看不到注釋。筆者認為,所有public的類、結構體、枚舉、變數、方法都需要注釋,因為
public是外部可見的,極有可能是常見的API,這時候讓別人看懂就十分重要。


可擴展性和解耦性。最好的代碼不僅針對當前特殊的情況,還可以應對其他情況;以後即使對現有的代碼進行大量修改,也不應該影響其他模塊。


代碼上的時間


一個專業的程序員一周的花在計算機上的時間應該為每周60小時。最基本的40小時,要花在工作中。剩下的20小時,要花在提高自己身上。提高可以是多種多樣的:讀博客、做項目、看文檔、上公開課。


有人說沒時間,我們來算一筆賬。一周有168個小時,假設你一天睡8小時,吃喝拉撒2小時,這樣你還剩168-(8+2)x7=
98小時。然後你花在代碼上60個小時,你還剩98-60=
38小時。你完全可以用20個小時陪伴家人(我知道很多人沒有成家),再用10個小時與朋友聚會出遊,就算這樣,你也還有8個小時可以自由支配。


之所以要在代碼上花費這么長時間,是因為軟體這一行這一行變化太快了:喬布斯逝世才5年,Google已經聲稱移動時代已經過去,現在是人工智慧時代;Objective-C還沒火幾年,轉眼Swift已經出到了第3個版本;Html
5剛剛落寞,Facebook又推出了ReactNative試圖整合android和iOS兩個平台。。。技術的進步,總是讓程序員有太多的東西要去學習。


對自己領域的精通


無論是前端、後端、還是移動端,都有自己的一套架構體系。作為一名專業的程序員,我覺得應該至少對自己領域所有的知識都有涉獵了解;對於核心的部分,則要做到爛熟於心的程度。


北大青鳥安卓培訓(android.te.cn)專家提示有一類文章《再不學XXX你就Out了》。這類文章一般都是說新技術又新又酷,鼓勵大家快來學啊。學習新技術的原因永遠不是因為它新、它潮,而是因為它可以更好的解決當前問題。對於深度和廣度兩個維度誰先誰後的問題,我個人永遠支持深度優先。只有本專業弄通的情況下,才能融會貫通。Andrew
Ng出名是因為他在MachineLearning的專長;提到John
Carmack,大家都會想到游戲編程狂人;談起喬布斯,大家都繞不開iPhone。專業程序員能做普通程序員不能做的,這才叫專業。


思維模式


很多程序員平常寫代碼只在乎能快速解決問題,不在乎選擇解決問題的方法和原因,這是典型的不知其所以然。專業的程序員,理應對每一個問題、每一步設計都有自己的理解。


舉個iOS開發中的例子。假如遇到一個新App,你發現整個App運用了大量的RxSwift技術。你就要想為什麼用RxSwift?
是方便測試?是整合邏輯?還是為了解耦架構?再進一步思考,為什麼這個iOSApp用的是RxSwift
而不用ReactiveCocoa?是為了和Android端用RxJava保持一致的代碼風格嗎?


也許上面的問題和你工作需要解決的具體問題毫無關系,但是理解清楚個中要害卻是提升內功的關鍵所在。


溝通


很多程序員只想寫代碼,做個安安靜靜的美男子,這當然無可厚非。但是你真的確定,正在在做的東西是老闆希望、客戶期待的嗎?作為一名程序員,理解自己應該做什麼、達到什麼效果、同時讓老闆知道什麼能夠實現、什麼實現不了,才是專業的表現。


舉個Google中工作的實例:


部門經理:我們組A這個項目要趕緊幹完,VP盯著我們。


程序員甲:好,那我趕緊做。


程序員乙:好。但能問一下這個項目為什麼VP盯著?做了對整個組或者Google有什麼好處?A項目的所有功能都要完成嗎?有沒有具體的截止日期?


上面我們可以看到,也許程序員甲和乙技術能力相同,但是甲更偏向於兢兢業業、努力幹活的老黃牛程序員,他寫出的代碼很有可能是他認為非常好的代碼;而乙則更擅長溝通,更有大局觀的程序員,他寫出的代碼就更有可能被大家都認可。他們的專業程度高下立判。


合作


與組員的合作是專業程序員工作學習中重要的一環。除了溝通很重要以外,我想著重談的一點,就是程序員在合作中不能摻雜著辦公室政治。我所認識或者聽說的矽谷的大牛,跟同事皆是坦誠相待,對後輩也是傾囊相授。


為什麼會這樣?因為首先,大家都理解了相關的知識,項目才能快速的推動,整體的工作效率才會提升;再者,自己懂知識,不代表自己能講清楚它,隨著與同事的交流和分享,知識本身會更加完善,對其理解也會更加全面扎實;最後,無私的分享和幫助有利於構建良好的工作環境和團隊氛圍。

G. Github 上有哪些知名的中國程序員

GitHub託管平台的開源和私有軟體項目,因為它只支持Git作為唯一的版本庫格式主辦,故名GitHub。除了Git代碼庫託管和基本的Web管理界面之外,它還提供訂閱、討論組、文本呈現、在線文件編輯器、協作映射(報告)、代碼片段共享(GIST)等功能。目前,注冊用戶已超過350萬,託管版本的數量也非常高。


惠新宸

GitHub可以舉辦各種Git庫提供的Web界面,但不像其他服務如SourceForge或谷歌代碼,GitHub的獨特賣點是分支從另一個項目的簡單。為項目做出貢獻的代碼非常簡單。首先單擊項目站點的「叉」按鈕,然後檢查代碼並將修改添加到剛剛出現的庫中。

最後,將內置的拉請求機制應用於項目經理,以應用代碼合並。GitHub被稱為代碼播放器聚友網。

H. 程序員英語好,在職業上(薪水和職位)會有更大的優勢嗎

程序員的工作主要是程序編寫,而編寫程序的語言命令都是英語單詞,所以英語好自然對於理解和使用命令語句上會有一定的裨益。但是如果是在職位上的優勢來看的話,如果你的公司與國外有業務往來的話,自然會有相對大一些的優勢,但如果沒有這些相關業務的話,英語好就暫時只是你自身技能的優勢了,暫時上——注意,只是「暫時上」的——對你的職業發展不會有很大的推動作用,不過事業的發展是隨時都在變化的,所以自身的能力越強,精通的技能越多自然競爭力就越強,即使一時用不上,也不好說什麼時候就會對你的發展起到很大的作用!
藝不壓身這句老話是至理名言,還是希望你能平日多多學習,鍛煉自身的能力。
是金子總會發光的,對嗎?:)祝你成功啊

I. PG 18 是什麼意思

美國電影分級制度 籃球術語 其他縮寫 模型版本 生物學術語 重量單位 Unix命令 軟體pg(ProGramer)編輯本段美國電影分級制度G級: (GENERAL AUDIENCES All ages admitted.)大眾級,所有年齡均可觀看大眾級,適合所有年齡段的人觀看——該級別的電影內容可以被父母接受,影片沒有裸體、性愛場面,吸毒和暴力場面非常少。對話也是日常生活中可以經常接觸到的; ·PG級:( PARENTAL GUIDANCE SUGGESTED Some material may not be suitable for children.)普通級, 建議在父母的陪伴下觀看,有些鏡頭可能讓兒童產生不適感.輔導級,一些內容可能不適合兒童觀看——該級別的電影基本沒有性愛、吸毒和裸體場面,即使有時間也很短,此外,恐怖和暴力場面不會超出適度的范圍; ·PG-13級:(PARENTS STRONGLY CAUTIONED Some material may be inappropriate for children under 13. )普通級,但不適於13歲以下兒童.特別輔導級,13歲以下兒童尤其要有父母陪同觀看,一些內容對兒童很不適宜——該級別的電影沒有粗野的持續暴力鏡頭,一般沒有裸體鏡頭,有時會有吸毒鏡頭和臟話; ·R級:(RESTRICTED Under 17 requires accompanying parent or alt guardian.) 限制級,17歲以下必須由父母或者監護陪伴才能觀看.限制級,17歲以下觀眾要求有父母或承認陪同觀看——該級別的影片包含成人內容,裡面有較多的性愛、暴力、吸毒等場面和臟話; ·NC-17級: (NO ONE 17 AND UNDER ADMITTED )17歲或者以下不可觀看 17歲以下觀眾禁止觀看——該級別的影片被定為成人影片,未成年人堅決被禁止觀看。影片中有清楚的性愛場面,大量的吸毒或暴力鏡頭以及臟話等。 另補充幾種特殊的分級: · NR OR U:NR是屬於未經定級的電影,而U是針對1968年以前的電影定的級。 · M,X OR P:這一級中的電影基本上不適合在大院線里公映,都屬於限制類的。 編輯本段籃球術語 1.PG,Point Guard,控球後衛.又稱組織後衛 控球後衛(Point Guard)是球場上拿球機會最多的人。他要把球從後場安全地帶到前場,再把球傳給其他隊友,這才有讓其他人得分的機會。如果說小前鋒是一出戲的主角,那麼控球後衛便是這出戲的導演。 怎樣才算是一個合格的控球後衛呢?首先,他的運球能力是絕對少不了的,他必須要能夠在只有一個人防守他的情況下,毫無問題地將球帶過半場。然後,還要有很好的傳球能力,能夠在大多數的時間里,將球傳到球應該要到的地方:有時候是一個可以投籃的空檔,有時候是一個更好的導球位置。簡單地說,他要讓球流動得順暢,要能將球傳到最容易得分的地方,還要組織隊伍的攻勢,讓隊上的進攻更為流暢。 那麼,對於一個控球後衛還有什麼要求呢?在得分方面,控球員往往是隊上最後一個得分者,也就是說除非其他隊友都沒有好機會出手,否則他是不輕易投籃的。或者以另一個角度說,他本身有頗強的得分能力,而以其得分能力破壞對方的防守,來替隊友製造機會的。總而言之,控球員有一個不變的原則:當場上有任何隊友的機會比他好,他一定將球交給機會更好的隊友。所以,控球員的出手經常何隊友的機會比他好,他一定將球交給機會更好的隊友。所以,控球員的出手經常都是很好的投籃時機,自然我們對他的命中率要求也就比較高,一般而言應該要在五成以上,要比小前鋒和得分後衛高。而在得分能力方面,外線和切入是他必備的兩項利器。 編輯本段其他縮寫2.排骨(這可以是名詞,也可以是形容詞) 3.雜志《電子天下 掌機迷》POCKET GAMER的縮寫 4. 脈沖發生器,Pulse Generator的縮寫。常安裝於電動機轉軸上,用於測量旋轉速度。如光電編碼器(encoder)就是一種PG。工控領域這個縮寫比較常見。 5.PG((PARENTAL GUIDANCE SUGGESTED Some material may not be suitable for children.):電影的一種分級,該級為普通級, 建議在父母的陪伴下觀看,有些鏡頭可能讓兒童產生不適感。輔導級,一些內容可能不適合兒童觀看——該級別的電影基本沒有性愛、吸毒和裸體場面,即使有時間也很短,此外,恐怖和暴力場面不會超出適度的范圍。 6.PG: . . n. 程序制導(程序裝置,試驗靶場,高溫分解石墨) pg : a. 巴布亞紐幾內亞 b. Power Good c. 丙二醇 7、PG:沒食子酸丙酯(proply gallate)的簡稱。白色至淺褐色結晶粉末,或微乳白色針狀結晶。無臭,微有苦味,水溶液無味。是一種常見的抗氧化劑,可用於食品。 編輯本段模型版本8.PG(perfect grade)高達模型的一個版本: PG 系列(Perfect Grade) 比例: 1:60(第一台PG EVA初號機屬於無比例模型) 價格: 12000YEN-20000YEN間,價格為所有高達模型中最昂貴的 特點:目前為止,高達模型裡面最貴的一個系列,全部有全內構,頭部可發光『個別機體身體一些部位也可發光』,五指全可動,可動性也是整個高達模型里最好的一個系列。零件的個數也令人發寒。種類較少。 PG系列歷史介紹: 由於MG的推出大受歡迎,BANDAI遂策劃推出高於MG級別,更能全面展示MS各部分結構,集高完成度、高展示性和高可動性於一體的完美模型系列。 1998年3月,BANDAI以作出"完美高達模型"為目標,開發出了新的模型系列-PG(PERFECT GRADE)。 PG第一款是1:60 RX-78-2 GUNDAM,當時的市場價格是12000日元,可謂是一個天價的奢侈品。那麼PG模型到底值不值這么高的價格呢,相信組裝過PG的人體會的出來:這絕對是一分價錢一分貨。 首先從模型本身說起。PG模型以追求完美作為目標,自然在各個方面都具備完美的素質。MG系列已經應用了多色成型和一體成型,但是PG系列除了承襲MG的特色之外,更將MG的開模和成型特點發揮到了極至。它的內構較MG有更大的進化,採用了完全獨立的骨架結構,好象電影中的終結者一般可以將骨架拆出來,即便裝上裝甲的PG模型,在腿和胸等重要部位仍有可以開啟的結構供玩家展示內構,非常寫實。PG的手部採用了五指全關節可動模式,而且每根手指都是獨立成型的,可以擺出人手能夠做出的所有動作,非常的精細。PG模型的頭部都有獨立的內構,這是MG不具備的。另外在每一款PG模型的頭部都裝有二極體和發光部件,通過線路與身體內部的電池相連,通過開關控制可以使頭部的探測器(眼睛)發光,發光成了PG模型的另一大特色。 PG的說明書非常精美,一般一盒PG模型都付有兩份說明書,一份黑白,一份全彩色。黑白說明書為組裝說明,全彩色的說明書中搜集和列出了關於機體的各類資料、設定圖以及用模型配合背景所拍攝的寫實場景照片,甚至連機體在動畫作品中的所屬部隊、戰績、服役歷史都有介紹,可謂是一份收藏性極高的資料庫。 完全內構,完美造型是PG模型的特點,目前PG模型基本上保持一年一台的出品速度,另外例如MK-II和STRIKE GUNDAM這兩款PG模型還以不同的成型色推出了同類機型,從而增加了愛好者的選擇。 編輯本段生物學術語9.前列腺素(prostaglandin,PG) 1930年,尤勒(von Enler)發現,人、猴、羊的精液中存在一種使平滑肌興奮和血壓降低的物質,當時設想此物質可能是由前列腺所分泌,命名為前列腺素。但實際上,前列腺分泌物中所含前列腺活性物質不多,為誤稱。現證明,精液中前列腺素主要來自精囊,並證明前列腺素是內分泌中的一大類。 存在於動物和人體中的一類不飽和脂肪酸組成的具有多種生理作用的活性物質。最早發現存在於人的精液中,當時以為這一物質是由前列腺釋放的,因而定名為前列腺素。現已證明精液中的前列腺素主要來自精囊,除之全身許多組織細胞都能產生前列腺素。前列腺素(PG)在體內由花生四烯酸所合成,結構為一個五環和兩條側鏈構成的20碳不飽和脂肪酸。按其結構,前列腺素分為A、B、C、D、E、F、G、H、I等類型。不同類型的前列腺素具有不同的功能,如前列腺素E能舒張支氣管平滑肌,降低通氣阻力;而前列腺素F的作用則相反。前列腺素的半衰期極短(1~2分鍾),除前列腺素I2外,其他的前列腺素經肺和肝迅速降解,故前列腺素不像典型的激素那樣,通過循環影響遠距離靶組織的活動,而是在局部產生和釋放,對產生前列腺素的細胞本身或對鄰近細胞的生理活動發揮調節作用。前列腺素對內分泌、生殖、消化、血液呼吸、心血管、泌尿和神經系統均有作用。由於前列腺素能引起子宮頻率而強烈的收縮,故應用於足月妊娠的引產、人工流產以及避孕等方面,取得了一定的效果。前列腺素治療哮喘、胃腸潰瘍病、休克、高血壓及心血管疾病,可能有一定療效,因而引起人們的重視。 前列腺素(PG)廣泛存在於許多組織中,由花生四烯酸轉化而成多種形式的前列腺素。它可能是作用於局部的一組激素。前列腺素的作用極為廣泛復雜。按結構可分為 A、B、C、D、E、F、G、H、I等類型。各類型的前列腺素對不同的細胞可產生完全不同的作用。例如PGE能擴張血管,增加器官血流量,降低外周阻力,並有排鈉作用,從而使血壓下降;而PGF作用比較復雜,可使兔、貓血壓下降,卻又使大鼠、狗的血壓升高。PGE使支氣管平滑肌舒張,降低通氣阻力;而PGF卻使支氣管平滑肌收縮。PGE和PGF對胃液的分泌都有很強的抑製作用;但對胃腸平滑肌卻增強其收縮。它們還能使妊娠子宮平滑肌收縮。此外,PG對於排卵,黃體生成和萎縮,卵和精子的運輸等生殖功能也有密切關系。 前列腺素的生理作用極為廣泛。(1)對生殖系統作用:作用於下丘腦的黃體生成素釋放激素的神經內分泌細胞,增加黃體生成素釋放激素釋放,再刺激垂體前葉黃體生成素和卵泡刺激素分泌,從而使睾丸激素分泌增加。前列腺素也能直接刺激睾丸間質細胞分泌。可增加大鼠睾丸重量、核糖核酸含量、透明質酸酶活性和精子數量,增加精子活動。前列腺素維持雄性生殖器官平滑肌收縮,被認為與射精作用有關。精液中PG使子宮頸肌鬆弛,促進精子在雌性動物生殖道中運行,有利於受精。但大量前列腺素,對雄性生殖機能有抑製作用。(2)對血管和支氣管平滑肌的作用:不同的前列腺素對血管平滑肌和支氣管平滑肌的作用效應不同。前列腺素E和前列腺素F能使血管平滑肌鬆弛,從而減少血流的外周阻力,降低血壓。(3)對胃腸道的作用:可引起平滑肌收縮,抑制胃酸分泌,防止強酸、強鹼、無水酒精等對胃粘膜侵蝕,具細胞保護作用。對小腸、結腸、胰腺等也具保護作用。還可刺激腸液分泌、肝膽汁分泌,以及膽囊肌收縮等。(4)對神經系統作用:廣泛分布於神經系統,對神經?遞質的釋放和活動起調節作用,也有人認為,前列腺素本身即有神經遞質作用。(5)對呼吸系統作用:前列腺素E有鬆弛支氣管平滑肌作用,而前列腺素F相反,是支氣管收縮劑。(6)對內分泌系統的作用:通過影響內分泌細胞內環腺苷酸(cAMP)水平,影響激素的合成與釋放。如促使甲狀腺素分泌和腎上腺皮質激素的合成。也通過降低靶器官的cAMP水平而使激素作用降低。 編輯本段重量單位10.在IT開發部門中... PG(Programer):程序員 SE:系統工程師 PM:項目經理 PL:項目組長 11.韓國組合SS501隊長金賢重 中國FAN的昵稱——PG 12.Pg還是一個重量單位, 1g =1000mg 1mg=1000μg 1μg=1000ng 1ng=1000pg 編輯本段Unix命令命令:pg (page) 格式:pg [option] filename 功能:分頁顯示指定文件的內容。在顯示一頁文件時,最後一行將顯示等待用戶輸入指令。可輸入的指有如下選項。 選項: h 顯示pg命令中可使用的幫助(help)命令。 q 退出pg命令。 [return] 顯示下一頁正文。 1 顯示正文的下一行 [Space] 顯示下一頁 d/[Ctrl-D] 將屏幕滾動半屏。 n 顯示pg命令行中說明的下一個文件。 p 顯示pg命令行中說明的前一個文件。 % 顯示正文當前頁的前面一頁。 /pattern 在文件中向前搜索指定的字元模式。 ?pattern 在文件中向後搜索指定的字元模式。 注釋:當pg命令顯示到文件的末尾時,顯示一個文件結束信息EOF(end of file)。

J. 普通程序員如何向人工智慧方向轉型

當下,人工智慧已經成為越來越火的一個方向。普通程序員,如何轉向人工智慧方向,是知乎上的一個問題。

這個學習路線是這樣設計的:首先了解這個領域,建立起全面的視野,培養起充足的興趣,然後開始學習機器學習的基礎,這里選擇一門由淺入深的課程來學習,課程最好有足夠的實驗能夠進行實戰。基礎打下後,對機器學習已經有了充足的了解,可以用機器學習來解決一個實際的問題。

這時還是可以把機器學習方法當作一個黑盒子來處理的。實戰經驗積累以後,可以考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前最火熱的機器學習方向,其中一些方法已經跟傳統的機器學習不太一樣,因此可以單獨學習。除了深度學習以外,機器學習還包括統計學習,集成學習等實用方法。

如果條件足夠,可以同時學習兩者,一些規律對兩者是共通的。學習完後,你已經具備了較強的知識儲備,可以進入較難的實戰。這時候有兩個選擇,工業界的可以選擇看開源項目,以改代碼為目的來讀代碼;學術界的可以看特定領域的論文,為解決問題而想發論文。

無論哪者,都需要知識過硬,以及較強的編碼能力,因此很能考察和鍛煉水平。經過這個階段以後,可以說是踏入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了解大數據行業學習大數據技術和學習路線,還有免費學習資料放送。

如果一個學習資源對你過難,並不代表一定是你的問題,可能是學習資源的演講或撰寫人的問題。能把難的問題講簡單的人才是真正有水平的人。所以,一定要學習優質資源,而不是不分青紅皂白的學習。最後,牢記以興趣來學習。學習的時間很長,過程也很艱難,而只有興趣才是讓你持之以恆,攻克難關的最佳助力。

閱讀全文

與ng程序員相關的資料

熱點內容
新電腦管家下載好怎麼解壓 瀏覽:524
php獲取介面數據 瀏覽:763
最後的命令 瀏覽:921
如何添加手機app桌面快捷圖標 瀏覽:427
ui設計師與程序員 瀏覽:417
壽司pdf 瀏覽:828
pythonbg是什麼 瀏覽:248
c數值演算法程序大全 瀏覽:785
android整點報時 瀏覽:221
稀土pdf 瀏覽:536
單片機電子鎖 瀏覽:596
通達信機智資金流指標公式源碼 瀏覽:216
php安裝xsl擴展 瀏覽:842
python如何使用help 瀏覽:367
上汽榮威app在哪裡查詢 瀏覽:903
冰櫃壓縮機溫度108 瀏覽:720
阿里雲郵smtp伺服器地址 瀏覽:252
解壓館認知理解 瀏覽:239
為什麼使用非官方伺服器會封號 瀏覽:9
佛山加密文檔軟體 瀏覽:813