普通程序員如何向人工智能靠攏?
作者:子夜™
來源:https://www.cnblogs.com/chy2055/p/8205931.html
一、普通程序員如何向人工智能靠攏?
0. 領域瞭解:在學習任何一門知識之前,首先第一步就是了解這個知識是什麼?它能做什麼事?它的價值在什麼地方?
1. 準備工作:如果你離校過久,或者覺得基礎不牢,最好事先做一下準備複習工作。“工欲善其事,必先利其器”。數學、英文和FQ。
2. 機器學習:機器學習的第一門課程首推Andrew Ng的機器學習.這門課程有以下特點:難度適中,同時有足夠的實戰例子,非常適合第一次學習的人。
3. 實踐做項目:學習完了基礎課程,你對機器學習就有了初步瞭解。現在使用它們是沒有問題的,你可以把機器學習算法當作黑盒子,放進去數據,就會有結果。需要選擇一個應用方向,是圖像(計算機視覺),音頻(語音識別),還是文本(自然語言處理)。
4. 深度學習:深度學習是目前最火熱的研究方向。有以下特點:知識更新快,較爲零碎,沒有系統講解的書。
5. 繼續機器學習:傳統的機器學習有如下特點,知識系統化,有相對經典的書。其中統計學習(代表SVM)與集成學習(代表adaboost)是在實踐中使用非常多的技術。
6. 開源項目:當知識儲備較爲充足時,學習可以再次轉入實踐階段。這時候的實踐仍然可以分兩步走,學習經典的開源項目或者發表高質量的論文。
7. 會議論文:一般較好的課程都會推薦你一些論文。一些著名的技術與方法往往誕生於一些重要的會議。因此,看往年的會議論文是深入學習的方法。
8. 自由學習:到這裏了,可以說是進入這個門了。下面可以依據興趣來自由學習。
二、機器學習領域是否已經達到飽和?
機器學習人才大致可以分爲兩類:一類是研究型人才,側重在發明算法; 另一類爲應用型人才,着重於使用算法。
我們絕大部分人恐怕屬於應用型人才,當然,這裏應用其實就是指垂直領域的綜合性應用,而不是mnist這類samples。
如果只是調用機器學習的包(比如sklearn)做一些簡單的例子, 或者在caffe或tensorflow跑幾個例子,設計(修改)一下網絡,調整一下超參數,拿數據訓練及測試一下,這類人才將來肯定會飽和的。工作量不大,又沒有太多創新的話,可替代性就高了。
那麼哪種人纔不容易被淘汰呢?以個人的經驗看,大致有這麼三種:
1.一種是具有一定的機器學習基礎,又對某個領域具有深刻認識的人才。這類人在某個行業紮根很深很久,熟知其痛點和需求,尤其清楚有哪些坑。既可以在公司裏做產品經理,時機成熟也可以創業,可謂進可攻退可守。
2.另一種是技術基礎紮實,學習能力強,具有一定的理論基礎。尤其是算法實現能力強,甚至可以對框架進行優化,而且速度快的人,老闆最喜歡了。你可以打聽一下,有多少公司在討(zhuang)論(bi)AI,但就是不知道怎麼做。數一數,恐怕有一大堆吧。
3.第三種是產品開發型人才,這類人可能不一定很懂算法,但很清楚怎麼做機器學習應用,怎麼把產品做到極致,好用。比如人臉識別系統,算法只是一小部分,更重要的是整個系統架構,做一個demo當然容易,但一個端到端的人臉識別系統包括視頻採集,解碼,人臉檢測,特徵提取與人臉數據庫(檢索),業務邏輯,聯動報警,分佈式多級部署等等。
以上第一類人才側重於"我們要做什麼,哪個方向",第二類人才側重於"怎麼做",第三類人才負責"怎麼把產品做好"。
三、深度學習如何入門?
首先是數學基礎,雖然這塊的要求並不需要學的很深入,但基本的瞭解還是要的
1. 線性代數,矩陣和張量的計算
2. 微積分
3. 概率,統計和隨機過程
第二塊是機器學習的基礎知識。深度學習是機器學習的一個分支,由於在圖像識別、語音識別、機器翻譯等多個地方的效果卓越而流行起來的。
1. 數據,training, validation和testing
2. 線性模型,classification和regression
3. 貝葉斯網絡,SVM,馬爾科夫隨機場
4. cluster,k-means
5. 神經網絡
第三塊是編程。紙上得來終覺淺,絕知此事要編程。
同時,深度學習在目前階段,還是需要很大的計算力來支持的,對於稍微有點規模有點實用的場景,分佈式和GPU都是需要涉及到的。
編程語言的話,C/C++肯定會涉及,Python估計也無法避免會遇到,java和lua等其他語言會一些則更好,至於世界上最好的語言PHP不會倒無關緊要。
第四塊是深度學習框架。
掌握了以上三塊後,要是從0開始搭建能應用級別的深度學習項目,簡直苦不堪言。
好在互聯網提供了很多深度學習框架,幫助我們進行快速部署應用。
1、TensorFlow
TensorFlow是谷歌基於DistBelief進行研發的第二代人工智能學習系統,其命名來源於本身的運行原理。
Tensor(張量)意味着N維數組,Flow(流)意味着基於數據流圖的計算,TensorFlow爲張量從流圖的一端流動到另一端計算過程。
TensorFlow是將複雜的數據結構傳輸至人工智能神經網中進行分析和處理過程的系統。
TensorFlow可被用於語音識別或圖像識別等多項機器深度學習領域,對2011年開發的深度學習基礎架構DistBelief進行了各方面的改進,它可在小到一部智能手機、大到數千臺數據中心服務器的各種設備上運行。
TensorFlow將完全開源,任何人都可以用。
CS 20SI: Tensorflow for Deep Learning Research
2、Torch
Torch是一個有大量機器學習算法支持的科學計算框架,其誕生已經有十年之久,但是真正起勢得益於Facebook開源了大量Torch的深度學習模塊和擴展。
Torch另外一個特殊之處是採用了編程語言Lua(該語言曾被用來開發視頻遊戲)。
3、Caffe
Caffe由加州大學伯克利的PHD賈揚清開發,全稱Convolutional Architecture for Fast Feature Embedding,是一個清晰而高效的開源深度學習框架,目前由伯克利視覺學中心(Berkeley Vision and Learning Center,BVLC)進行維護。(賈揚清曾就職於MSRA、NEC、Google Brain,他也是TensorFlow的作者之一,目前任職於Facebook FAIR實驗室。)
當然更有成熟應用產品,騰訊的DI-X深度學習平臺
https://cloud.tencent.com/product/dix
DI-X(Data Intelligence X)是基於騰訊雲強大計算能力的一站式深度學習平臺。它通過可視化的拖拽佈局,組合各種數據源、組件、算法、模型和評估模塊,讓算法工程師和數據科學家在其之上,方便地進行模型訓練、評估及預測。
目前支持 TensorFlow、Caffe、Torch 三大深度學習框架,並提供相應的常用深度學習算法和模型。DI-X 可以幫助您快速接入人工智能的快車道,釋放數據潛力。
--------------------
參考:
深度學習如何入門?
https://www.zhihu.com/question/26006703/answer/91161384
普通程序員如何向人工智能靠攏?
https://www.zhihu.com/question/51039416/answer/126821822
機器學習領域是否已經達到飽和?
https://www.zhihu.com/question/54003912/answer/261459354
深度學習——你需要了解的八大開源框架
https://www.leiphone.com/news/201608/5kCJ4Vim3wMjpBPU.html