-
1 # 為了一個什麼
-
2 # 騰訊科技
現在人工智慧可以說是非常的火熱,很多同學也想學習。但是剛開始時候總是會覺得比較迷茫,不知道如何開始學,也擔心人工智慧太難,自己可能學不會。其實不用太擔心,因為人工智慧入門其實並不難。這篇文章對如何去學習人工智慧,給出一些建議。
學習AI的大致步驟:
(1)瞭解人工智慧的一些背景知識;
(2)補充數學或程式設計知識;
(3)熟悉機器學習工具庫;
(4)系統的學習AI知識;
(5)動手去做一些AI應用;
1 瞭解人工智慧的背景知識
人工智慧裡面的概念很多,比如機器學習、深度學習、神經網路等等,使得初學者覺得人工智慧很神秘,難以理解。剛開始學習的時候,知道這些名詞大致的意思就行了,不用太深究,學習過一段時間自然也就清楚這些概念具體代表什麼了。
人工智慧是交叉學科,其中數學和計算機程式設計是學習人工智慧最重要的兩個方面。這些在“知雲AI專欄”之前的文章“認識人工智慧”,也為大家介紹過,沒閱讀過的同學可以去看一下。
下圖為人工智慧學習的一般路線:
2 補充數學或程式設計知識
對於已經畢業的工程師來說,在系統學習AI之前,一般要補充一些數學或者程式設計方面的知識。如果你的數學和程式設計比較好,那麼學習人工智慧會輕鬆很多。
很多同學一提到數學就害怕,不過,學習人工智慧,數學可以說是繞不過去的。在入門的階段並不需要太高深的數學,主要是高等數學、線性代數和機率論,也就是說,大一大二學的數學知識已經是完全夠用了。如果想要從事機器學習工程師的工作,或者搞人工智慧的研究,那麼應該多去學習數學知識,數學好將會是工作中的一大優勢。
3 熟悉機器學習工具庫
現在人們實現人工智慧,主要是基於一些機器學習的工具庫的,比如TensorFlow、PyTorch等等。
剛開始學習人工智慧的時候,可以先執行一下工具庫官網的示例,比如MNIST手寫體識別等。這樣會對人工智慧有一個感性的認識,消除最初的陌生感。然後可以看看裡面的程式碼,你會發現,其實神經網路的程式並不複雜,但是會對神經網路的原理和訓練有很多的疑問。這是一件好事,因為帶著問題去學習,會更有成效。
4 系統的學習人工智慧
這裡的人工智慧主要指機器學習,因為目前人工智慧主要是透過機器學習的方式來實現的。
機器學習知識主要有三大塊:
(1)傳統機器學習演算法,比如決策樹、隨機森林、SVM等,這些稱作是傳統機器學習演算法,是相對於深度學習而言的。
(2)深度學習,指的就是深度神經網路,可以說是目前最重要最核心的人工智慧知識。
(3)強化學習,源於控制論,有時候也翻譯成增強學習。深度學習可以和強化學習相結合使用,形成深度強化學習。
在這裡需要知道的是深度學習並不難學,對於一些工科的研究生,一般只需要幾周就可以上手,並可以訓練一些實際應用中的神經網路。但是想要對深入學習有深入理解不是容易的事情,一般需要幾個月的時間。
傳統機器學習演算法的種類非常多,有些演算法會有非常多的數學公式,比如SVM等。這些演算法並不好學,因此可以先學習深度學習,然後再慢慢的補充這些傳統演算法。
強化學習是比較有難度的,一般需要持續學習兩三個月,才能有所領悟。
5 動手去做一些AI應用
學習過幾周的深度學習之後,就可以動手嘗試去做一些AI應用了,比如影象識別,風格遷移,文字詩詞生成等等。邊實踐邊學習效果會好很多,也會逐漸的加深對神經網路的理解。
下圖是人工智慧進階的過程:
對於一些還在學校讀書的同學,時間比較多,可以多去學習各學科的知識。有足夠的知識積累,對於以後的發展是非常有好處的。
-
3 # 愛學習的小懶豬
Python
這兩年風光無限好,不僅可以用來做軟體服務,系統管理,還可以做資料分析和商業智慧,但是發現沒有,只是因為他的庫多且容易入門使用而已,拋開這些,其他Python是上不了檯面的,就像狗肉上不了酒席一樣,目前稍微有點規模的企業應用,其開始考慮的技術棧中不會有Python,最多隻是用Python來做些輔助功能。
仔細觀察,你會發現Python生態的繁盛主要是它容易入門,容易使用,相對的學習時間和成本比其他語言低太多,但是要真正掌握和熟練使用它的精髓,其實是不容易的,說句實在話,如果你非常熟練之後你會發現這種膠水動態型別的指令碼語言要定製一個特殊庫功能的話我也比那些靜態編譯型語言更加繁瑣,寫起來也會漏洞百出。
個人還是推薦Java,C++等傳統語言,如果基於這些語言實現的資料分析庫,人工智慧庫越來越多,越來越容易使用的話,那就沒其他膠水語言什麼事了
個人判斷未來裡面python熱度會降低,至少不會像現在這種熱炒的局面
回覆列表
1. PYTHON第一名毫無疑問是 Python。儘管 Python 有些特性令人不爽(whitespace、Python 2.x 和 Python 3.x 之間的巨大差異、五種不同的包機制都在不同程度上有缺陷)但如果你正在從事 AI 工作,你幾乎肯定會在某些時候用到 Python。
Python 中可用庫的數量是其他語言所無法企及的。NumPy 已經變得如此普遍,以至於幾乎成為了張量運算的標準 API,Pandas 將 R 的強大而靈活的資料幀帶入 Python。對於自然語言處理(NLP),您可以使用久負盛名的 NLTK 和快如閃電的 SpaCy。對於機器學習,有經過實戰檢驗的 Scikit-learn。當談到深度學習時,當前所有的庫(TensorFlow,PyTorch,Chainer,Apache MXNet,Theano等)都是在 Python 上首先實現的專案。
(在LiveEdu上,一位德國的AI開發者教大家如何使用Python開發兩個簡單的機器學習模型)
Python 是人工智慧研究的前沿語言,這是擁有最多機器學習和深度學習框架的語言,也是 AI 研究者幾乎都掌握的語言。由於這些原因,儘管筆者每天都要咒罵一次 whitespace 問題,Python 仍然是人工智慧程式語言之王,您沒法繞過它。
2. JAVA 和相關語言
JVM 系列語言(Java,Scala,Kotlin,Clojure 等)也是 AI 應用開發的絕佳選擇。無論是自然語言處理(CoreNLP)、張量運算(ND4J)還是完整的 GPU 加速深度學習堆疊(DL4J),您都可以使用大量的庫來管理流水線的各個部分。另外,您還可以輕鬆訪問Apache Spark 和 Apache Hadoop 等大資料平臺。
Java 是大多數企業的通用語言,在 Java 8 和 Java 9 中提供了新的語言結構,這使得編寫 Java 程式碼的體驗不再像我們過去所記得的那樣糟糕。使用 Java 編寫人工智慧應用可能會讓人覺得無聊,但它確實能完成工作,並且您可以使用所有現成的 Java 基礎架構來開發、部署和監視。
3. C/C++
在開發 AI 應用時,C / C ++ 不太可能成為您的首選,但如果您在嵌入式環境中工作,並且無法承受 Java 虛擬機器或 Python 直譯器的開銷,那麼 C / C ++ 就是最好的解決方案。當你需要榨乾系統的每一滴效能時,你就得面對可怕的指標世界。
幸運的是,現代 C / C ++ 寫起來體驗還不錯(實話實說!)。您可以從下列方法中選擇一個最適合的:您可以一頭扎進堆疊底部,使用CUDA 等庫來編寫自己的程式碼,這些程式碼將直接在 GPU 上執行;您也可以使用 TensorFlow 或 Caffe 以訪問靈活的高階 API。後者還允許您匯入資料科學家用 Python 寫的模型,然後以 C / C ++ 級別的速度在生產環境中執行它們。
在未來一年中,請密切留意 Rust 在 AI 領域的一些動作。結合 C / C ++ 級別的速度與型別和資料安全性,Rust 是實現產品級效能卻不會造成安全問題的最佳選擇。並且它現在已經可以與 TensorFlow 綁定了。
4. JAVASCRIPT蛤?!JavaScript?我沒聽錯吧?其實,谷歌最近釋出了 TensorFlow.js,這是一個 WebGL 加速庫,允許您在 Web 瀏覽器中訓練和執行機器學習模型。它還包括 Keras API 以及載入和使用在常規 TensorFlow 中訓練過的模型的功能。這可能會吸引大量的 JS 開發者湧入 AI 領域。雖然 JavaScript 目前能夠訪問的機器學習庫與其他語言相比有所侷限,但在不久的將來,開發者在網頁中新增神經網路就和新增 React 元件或 CSS 屬性一樣簡單。這聽上去既強大又恐怖。
TensorFlow.js 仍處於早期階段。目前它可在瀏覽器中執行,但不適用於 Node.js。它還沒有實現完整的 TensorFlow API。不過,我預計到 2018 年底,這兩個問題都將基本得到解決,並且JavaScript 將在不久之後大舉進軍 AI 界。
5. RR 在這份榜單中排名最末,並且看上去將會越來越沒落。R 是資料科學家喜歡的語言。但是,其他程式設計師在第一次接觸 R 時會感到有些困惑,因為它採用了以資料幀為中心的方法。如果您有一組專門的 R 開發者,那麼將 R 與 TensorFlow、Keras 或 H2O 搭配使用,進行研究、原型設計和實驗是有意義的。但基於效能和操作方面的考慮,我不願意推薦將 R 用於生產。雖然您可以寫出能在生產伺服器上部署的高效能 R 程式碼,但將這種用 R 語言編寫的原型重新編碼為 Java 或 Python 肯定會更容易。