1. 程式人生 > >想學AI?沒那麼簡單、但也沒那麼難!(內附技術圖譜)

想學AI?沒那麼簡單、但也沒那麼難!(內附技術圖譜)

本文作者:智亮

Google Tensorflow框架的Contributor。在計算機視覺領域有深厚的工業經驗,帶領團隊開發的“花伴侶”植物識別App,上線數月即在0推廣的情況下達到百萬使用者,並獲得阿里巴巴2017雲棲大會API Solution大賽一等獎,團隊受邀成為騰訊微信公開課北京站九位演講嘉賓之一。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

每一波浪潮的到來,都意味一片無人佔領的藍海,也意味著眾多新成長起來的巨頭,還意味著什麼?大量的技術人員需求,供不應求的開發市場,以及從業者的高薪與眾多的機會。

我們最常做的事情是目送著上一次浪潮的餘波遠去,感嘆自己生不逢時,卻沒有意識到,下一波浪潮已經到了我們腳下。

沒錯,我們說的就是AI。

身在IT圈中的人,應該都有著直觀的認識。目前國內知名的網際網路企業無一不在建立自己的人工智慧技術團隊,以期用AI技術,提升產品的體驗和智慧化程度

但與此同時,各種不明覺厲的名詞也嚇退了很多非科班出身的開發者。什麼叫卷積神經網路?什麼叫凸優化?是不是還要回去重讀高數,線代,概率?那麼一大堆公式,感覺完全看不懂啊?聽說沒個名校博士出身都搞不了這個?

在很久以前的一篇知乎回答中提過,作為開發人員,AI領域界在我看來會分成這麼幾個層次

1.學術研究者 

他們的工作是從理論上詮釋機器學習的各個方面,試圖找出“這樣設計模型/引數為什麼效果更好”,並且為其他從業者提供更優秀的模型,甚至將理論研究向前推進一步。 能夠做到這一步的人,可以說鳳毛麟角,天賦是繞不過去的大山,機遇和努力也缺一不可。 

2.演算法改進者 

他們也許無法回答出“我的方法為什麼work”,也許沒有Hinton,LeCun那樣足以載入史冊的重大成果,但是卻能根據經驗和一些奇思妙想,將現有的模型玩出更好的效果,或者提出一些改進的模型。這些人通常都是各個機器學習巨頭公司的中堅力量或者成長中的獨角獸,使用什麼模型對他們來講也不是問題,根據所處的環境,通常都有固定的幾個選擇。在這個層面,insight和idea才是重要的東西,各種工具的區別,影響真的沒那麼大。可能會讓一個結果早得到或者晚得到幾天或者幾周,卻不可能影響“有沒有成果”。 

3.工業實現者 

這些人基本上不會在演算法領域涉入太深,也就是了解一下各個演算法的實現,各個模型的結構。他們更多地是根據論文去復現優秀的成果,或者使用其他人復現出來的成果,並且試圖去在工業上應用它。

對於大部分IT人來說,做到第三類,也就是工業實現這個層面,已經足夠好了,至少,我們已經有了親身參與這個大時代的機會,僅就這一點來說,便已經擊敗了全國99%的人(斜眼笑的表情)。

不光是普通程式猿這麼說,文藝的程式猿和……額,高大上的程式猿也都這麼說。

我說,呵呵。

答案只有一個:Just Do IT(去搞IT吧,少年)

成為人工智慧工程師,在我看來,要把機器學習、深度學習掌握好,就可以入行拼搏了!另外,理論必須要結合專案實戰:因為作為程式設計師,讀十遍書不如跑一遍程式,與其花費大量的時間去啃書本,不如親手完成自己的程式並執行它。我們在寫出程式碼的同時,就會了解到自己還有哪些地方不夠清楚,從而針對性地學習。

640?wx_fmt=png 

我們先來說說,機器學習應該學習哪些。

學習任何東西,勿在浮沙築高臺(對這句話眼熟的請舉手),有一些基礎的知識還是需要掌握的。例如在計算機視覺領域,根據我們團隊內部培訓的經驗,為了能夠獨立進行機器學習的開發工作,最好首先完成這麼幾項課程:

1入門機器學習:

熟悉機器學習領域的經典演算法、模型及實現的任務等,同時學習搭建和配置機器學習環境,並學會用 線性迴歸 解決一個實際問題。

2Logistic迴歸分析、神經網路、SVM:

掌握資料集探索;理解分類任務演算法(Logistic迴歸、神經網路、SVM)原理;學會在scikit-learn框架下采用各分類演算法分類具體任務。

3決策樹模型與整合學習演算法:

損失函式:資訊增益、Gini係數;劃分:窮舉搜尋、近似搜尋;正則:L2/L1;預防過擬合:預剪枝及後剪枝;Bagging原理;Boosting原理;流行的GBDT工具:XGBoost和LightGBM

4聚類、降維、矩陣分解:

主成分分析(PCA);獨立成分分析(ICA);非負矩陣分解(NFM);隱因子模型(LFM);KMeans聚類和混合高斯模型GMM(EM演算法);吸引子傳播聚類演算法(Affinity Propagation聚類演算法)

5特徵工程、模型融合& 推薦系統實現

學會常用資料預處理方法及特徵編碼方法;學習特徵工程的一般處理原則;組合各種特徵工程技術和機器學習演算法實現推薦系統。

上面的課程大概會消耗你1個月多的所有業餘時間。但是相信我,這是值得的。

如果實在連一兩個月的業餘時間都拿不出來,好吧,我來偷偷告訴你最最最基本的一個要求,滿足了這個要求,你就能夠算是機器學習入門了: 會算矩陣乘法

別笑,說正經的,在這個框架高度封裝的年代,梯度不需要自己算,損失不需要自己求,反向傳導更是被處理得妥妥的,在不求甚解的情況下,你甚至只需要知道這麼幾個概念就可以開始著手寫第一個程式了:

它就是通過一系列矩陣運算(或者類似的一些其他運算)將輸入空間對映到輸出空間而已。參與運算的矩陣的值稱為權重,是需要通過不斷迭代來尋找到最優值。 

  • 當前的權重值離最優值還差多遠,用一個數值來表示,這個值就叫損失,計算這個值的函式叫損失函式。 

  • 當前的權重值應該調大還是調小,這個值通過對損失函式求導來判斷,這個求導得到的函式叫做梯度。 

  • 通過損失和梯度來更新權重的方法叫做反向傳導。 

  • 迭代的方法稱為梯度下降。 

雖然這麼寫出來的程式一定是不知其所以然,但是其實20年前我第一次用C++寫Hello world的時候也是一臉懵逼的,我相信,每個能夠投身機器學習開發工作的程式猿,都是有大毅力大勇氣的,自然不會欠缺繼續學習的動力和決心。

640?wx_fmt=png

我們再來說說,深度學習應該學習哪些。

深度學習著重掌握卷積神經網路和迴圈神經網路,使用大量真實的資料集,結合實際場景和案例介紹深度學習技術的應用範圍與效果。

1神經網路入門及深度學習環境配置:

熟悉神經網路領域的常用術語、安裝並配置深度學習框架Tensorflow,學會用Tensorflow解決一個實際問題。

2神經網路基礎及卷積神經網路原理:

使用不同結構的神經網路結構驗證網路結構對效果的影響;瞭解卷積神經網路的相關概念和基礎知識,並通過實戰案例理解CNN區域性相關性與權值共享等特性。

3卷積神經網路實戰:

影象分類及檢測任務:學習影象分類任務及檢測任務目前主要模型演算法,並通過兩個實戰案例學習在Tensorflow框架下訓練CNN模型。

4卷積神經網路之影象分割例項:

掌握分割任務簡介、反捲積(deconv/transpose-conv)、FCN

5迴圈神經網路原理:

  • RNN基本原理

  • 門限迴圈單元(GRU)

  • 長短期記憶單元(LSTM)

  • 詞向量提取:Word2Vec

  • 編碼器—解碼器結構

  • 注意力機制模型:Attention Model

  • 圖片標註(Image Captioning)

  • 圖片問答(Visual Question Answering)

640?wx_fmt=png

恭喜你,成為人工智慧工程師群中的一員了。

接下來就可以收集一些自己的資料,並且訓練一些自己的識別引擎;或者嘗試著優化這個模型,感受一下所謂調參黨的痛苦;又或者直接嘗試實現ResNet、Inception這些更為先進的網路來刷刷Cifar;再不然可以嘗試著向NLP或者強化學習方向去學習一下。總之,這些事情遠沒有看起來那麼難。

當然,不論那條路,學習,進步和自我鞭策都是逃避不掉的必修課。一個新生的領域,勃勃的生機必然也意味著新成果的層出不窮。完成我上面提到的三門課程只能讓一個人從門外漢變成圈裡人,有了進入這個領域,趕上這波浪潮的基本資格,至於到底是成為弄潮兒還是直接被大浪吞沒,還是那句話,不勞苦必然無所得。努力學習不一定能修成正果,而不去努力學習,則註定是一無所獲。

最後,祝福,祝福各位能在AI領域裡大放異彩。(技術圖譜原文裡下載

640?wx_fmt=png

最後,一個個小小的推薦

後,做一個小小的推薦。

本文作者智亮老師在CSDN學院開設的《人工智慧工程師》實訓班即將開車了。

這是一個100天的學習計劃,目標是:能讓你從AI小白直接晉級為具備一年經驗的人工智慧工程師。

內容包括剛才智亮老師寫的機器學習和深度學習需要掌握的知識和系統圖譜,每節課配有實戰案例,提供GPU雲實驗平臺進行案例實操,將理論知識與實際案例應用相結合,反覆鞏固,助力你成為AI工程師。

如果你渴望學習AI技術,想要系統性學習,那麼來吧, 4個月的攜手實戰,相信你收穫不一樣的自己,人工智慧工程師。

以下為課程特色(官方臉):

  • 課程內容分成三個階段:機器學習、深度學習、還有我們的四個工業級實戰專案(可選)及成果展示!全程實戰案例,從機器學習原理到推薦系統實現,從深度學習入門到影象語義分割及寫詩機器人,再到專屬GPU雲平臺上的四大工業級實戰專案。

  • 有專人來跟蹤你的學習進度,並根據你的數學和程式設計基礎來制定專屬學習計劃,保證不掉隊。兩位大咖講師在計算機視覺的產業界和學術界分別都有著深厚的經驗,產、學、研結合緊密。

  • 學成之日,會有來自AI產業界的專業講師來做就業指導,甚至還有可能直接推薦就業並全額返還學費。

640?wx_fmt=png

不再多說,

這是天堂。

這是地獄。

我們已經在這裡等你,來嗎,少年?

掃碼瞭解詳情

640?wx_fmt=png

相關推薦

AI那麼簡單那麼技術圖譜

本文作者:智亮 Google Tensorflow框架的Contributor。在計算機視覺領域有深厚的工業經驗,帶領團隊開發的“花伴侶”植物識別App,上線數月即在0推廣的情況下達到百萬使用者,並獲得阿里巴巴2017雲棲大會API Solution大賽一等獎,團隊受邀成為騰訊微信公開課北京站九位

如何更加安全高效地選擇開源項目詳解

編譯 com 再次 即時聊天 能力 時代 核心 只需要 重新編譯   前言在平時的開發過程中,難免會遇到這樣那樣的難題,或者一些繁瑣且不想純手工完成的功能,對於這些問題,解決的姿勢有很多種,可以通過同事間的交流、上網查資料、去官網找文檔等,隨著開源的推動和完善,尋找合適的開

高效易用功能強大的 api 管理平臺彩蛋

運維 接口管理 centos linux 前言導讀 實際環境的需求可以說是:只有你沒想到,沒有實現不了的,征對於目前實際開發、測試、生產等環境中,需要用到各類的接口可達幾十、甚至上百個,因此,必須需要一個統一管理的工具平臺來統一管理這類接口,從而方便後續使用。那麽今天來簡單介紹下開源的接口

行銷文案寫不出來?知道目標客群最新話題?你需要一個機器人祕書 Python 程式碼

行銷文案寫不出來?想知道目標客群最新話題?你需要一個機器人祕書! (內附 Python 程式碼)文案今天就要生出來,但頭腦卻一片空白?對於天天要寫文案的行銷人來說,想必上述的情況並不陌生。時常為了文案的撰寫想破頭也沒有好的議題可以發揮。認真的行銷人一定不想認輸,開始上網搜尋最近有什麼熱門話題。但時限又擺在那裡

如何更加安全高效地選擇開源專案詳解

前言 在平時的開發過程中,難免會遇到這樣那樣的難題,或者一些繁瑣且不想純手工完成的功能,對於這些問題,解決的姿勢有很多種,可以通過同事間的交流、上網查資料、去官網找文件等,隨著開源的推動和完善,尋找合適的開源專案支援,絕對是一個很好的方法。 如今市面上的開源專案魚龍混雜,並且有一

面試官:執行緒池如何按照coremaxqueue的執行循序去執行?詳細解析

### 前言 **這是一個真實的面試題。** 前幾天一個朋友在群裡分享了他剛剛面試候選者時問的問題:**"執行緒池如何按照core、max、queue的執行循序去執行?"**。 我們都知道執行緒池中程式碼執行順序是:**corePool->workQueue->maxPool**,原始碼我都看過,你現在

人工智慧將改變世界 AI首選Python語言

  人工智慧將改變世界,想學AI首選Python語言。大家知道:人工智慧改變的不僅是商業運作的方式,還涉及到社會的方方面面。從使用影象識別技術增強公共安全,到藉助自然語言處理提供自動的人性化服務,人工智慧都起到了很大的作用。那麼,人工智慧培訓就業前景如何?   人工智慧發展前景很好,中國正在產業

Glide在listview中使用時getview中圖片不顯示,報錯

在4.3.1版本中 implementation 'com.github.bumptech.glide:glide:4.3.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.3.1' 在getview中都跟以前寫法一樣,

Ajax幾個簡單的案例ajax_使用者唯一驗證ajax_返回xml資料的處理包括分頁處理

Ajax幾個簡單的案例(ajax_使用者唯一驗證、ajax_返回xml資料的處理(包括分頁處理) 當然開發的前提是把相應的包匯入專案中(開發環境myeclipse) ajax_使用者唯一驗證(servlet): 如圖在myeclipse中的ajax_servlet專案中的index.jsp實現頁面的顯

簡單的VUE在線調試網站不需搭建環境

http html編輯器 手工 html todo src 2.0 .com 直觀 jsbin.com提供簡單、直觀、易用的vue調試功能,最大的好處不需要自己搭建環境就可以學習VUE1、打開http://jsbin.com/joxinumota/edit?html,js,

vue簡單的下拉刷新分頁全部代碼展示

加載數據 操作 ring light page 記錄 rdl else timeout html 頁面 <div class="page" id=‘body‘ v-cloak> <div class=‘page__bd‘> &l

我覺得我這個問題,還有檢測問題,但是輸出窗口卻結果,求解

rdlc app sin http gin yam mage inf mcs K誌680醞5郝gw俗http://t.docin.com/zmjod27329 20群悔40棠q鴉4mhttp://huiyi.docin.com/slq170 z6M輛0e2扛咨0HFht

錢,一樣引爆產品推廣營銷推廣幹貨

網站建設 網站推廣 網站優化 咱們都知道,在資金不足的情況下,假如能有產品方以外的單位為產品進行二次傳達實在是濟困扶危。   那麽二次傳達怎樣取得?   本文將從結構下手處理這個問題,但限於篇幅以及閱覽體會,無法全部打開。該文本較長,信息量較大,但肯定幹貨。閱覽並了解大約需求15分鐘的時刻,一起每

3開機流程存分布

開機流程 內存分布內存可以分為三段第一段空間是BIOS:BIOS的ROM加載到內存過程,然後執行硬件檢測,也正是因為有這一段才加電自檢第二段空間是內核:加載內核的,也就是kernel space第三段空間才是各個應用程序的使用內存當然內存沒有我們想象的這麽簡單,這只是表面的介紹內存的分塊 http://bl

詳解postfix郵箱服務器安裝配置及其工作原理源碼包

zhang 關閉防火墻 互聯 分享 接收郵件 目錄 ifconfig shutdown 數字 簡介 postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要為使用最廣泛的sendmai

尤拉定理拓展尤拉定理及其應用尤拉降冪法

摘要   本文主要介紹了數論中的尤拉定理,進而介紹尤拉定理的拓展及應用,結合例題展示如何使用拓展尤拉定理實現降冪取模。   在數論中,尤拉定理,(也稱費馬-尤拉定理)是一個關於同餘的性質定理。瞭解尤拉定理之前先來看一下費馬小定理:     a是不能被質數p整除的正整數,則有a^(p

歐拉定理拓展歐拉定理及其應用歐拉降冪法

就是 hid phi layout microsoft img ide ans 使用 摘要   本文主要介紹了數論中的歐拉定理,進而介紹歐拉定理的拓展及應用,結合例題展示如何使用拓展歐拉定理實現降冪取模。   在數論中,歐拉定理,(也稱費馬-歐拉定理)是一個關於同余的性質

hive安裝建資料庫derby

hive是一個數據倉庫工具,建立在hadoop之上,它的存在是為了讓大資料的查詢和分析更加的方便。hive提供簡單的sql查詢功能,並最終轉換為mapreduce任務執行。 一、環境 JDK1.8+官方推薦新版JDK,否則可能存在不同版本不相容問題 hadoop採用2.0+版本,否則hive2.

SpringCloud五大神獸之Eureka服務註冊與發現

 ps:此工程為服務提供者叢集的建立並且註冊到eureka中,同時測試服務的發現,由於主要講解eureka知識,因此本例中一些其餘資料庫操作等例子不一一指出,在系列文章結尾會提供完整版例子下載。 1、pom檔案編寫: <dependencies> <

一個簡單的英語到漢語的翻譯過程搜尋二叉樹

英語到漢語的翻譯: 原理:在我看來,既可以運用陣列,也可以運用搜索二叉樹,或者是其它任意一種儲存結構應該都可以完成這個操作,但應用搜索二叉樹,效率會更高,因為每一次搜尋,就會排除許多無用的資料。      例如,在上圖中查詢1,只需要通過上圖的3次比較就可以得出結果,每