想學習深度學習需要什麼樣的基礎?

2021-02-08 InfoQ
很多小夥伴對深度學習的理解都有一些誤解,今天就為你一一解答。

很多人第一反應是深度學習特別高大上,需要一定基礎才能學習,但是關於需要學習深度學習所需要的基礎其實存在很多誤區。

迷茫於在網上雖然能找到各類深度學習課程和資料,但是是不是適合自己,如何能在一堆裡面找到系統的、深入的、落地的學習內容,這對很多人來說都是橫在學習面前的一道坎。

我們經過 2 個月的精心打磨,生產出這樣一門適合基礎研發人員也能學習的課程,它能在這以下幾個方面回答大家對於深度學習的疑惑。

只會 Java 語言,不會 C/C++/Python 能學習嗎?或者學過 C/C++/Python,但是沒有實際應用過,或者基礎不好,是否可以學?是否有 Python 學習教程推薦?如果 C++/Python 基礎比較薄弱,是否可以學?

【回答】完全可以。

我們會跟隨實際的代碼編寫,一步一步進行指導。在數據科學、大數據和機器學習(深度學習)領域,Python 被視作最為簡潔和直接的腳本程式語言,被科研領域和工程領域廣泛採用,因此 本課程也會針對 Python 程式語言本身,跟隨編程實戰,與大家一起編程的過程中逐步講解

事實上 Java 程式語言在大數據處理和機器學習領域的應用也十分廣泛,課程中涉及到 真實工程代碼 的部分,我們會將 C++ 與 Java 版本一同展示和講解。由於這不是一門教學程式語言的課程,更注重於實際應用的編寫,因此程式語言特性方面的門檻較低

本課程著眼於海量數據實時處理和深度神經網絡架構和編程,程式語言這塊不會是瓶頸。並且,大家會跟隨老師一起,編寫機器學習代碼,也會因此熟悉 Python 編程,事實上這對未來的個人發展和工作具有非常大的幫助。

在課程後半段,我們將會使用前半段課程編寫的實驗程序,轉化為實際的工業級代碼和產品,這時將涉及 C/C++ 和 Java 代碼的編寫。由於 Java 在面向對象的基本結構上與 C++ 十分相似,因此這一塊也應當不是問題。

正如前面所闡述的,我們也會同時展示 Java 版本的高層應用實現。最終,同學們會發現這些代碼雖然由不同程式語言實現,但大體相當,並無過多區別。另外,針對程式語言方面的疑慮,老師也會手把手從最基本的代碼開始編寫,並儘可能詳細講解每一段重要的代碼。

全課程不僅從理論方面會由淺入深的講解,編程實戰也同樣會從最基礎部分(包含語言的部分)開始講解。希望能夠打消同學們的疑慮。通過學習本課程,不僅對整個機器學習、深度學習和分布式大數據實時處理有一個全面的認識,而且在非常實際的工程實踐,將來找工作和職業發展,都將會有非常大的提升。

如果有其他語言的基礎,但是沒有 C++和 python 基礎也是完全可以學習的,語言只是工具,有其他語言基礎學習新語言很快,尤其是 Python 這種語言很簡單,而 Java 和 C++ 相比之下可能需要花費更多時間去學習。但本門課程在工程實踐環節也會針對編寫的代碼進行詳解,儘可能確保打消大家對這一方面的顧慮。

這個課需要大數據基礎嗎?

【回答】不需要。

本門課程不僅會講解機器學習領域的經典理論、算法和工程實踐,還有一大特色便是講解大數據或海量數據的高性能分布式處理,通過這兩大領域的學習和碰撞,會為大家未來職業發展和規划起到如虎添翼的作用,這一點在其他課程中較難體現,也是本門課程的主要特色之一。

本課程的老師擁有多年雲計算和分布式實時處理方面的經驗,同時撰寫了相關書籍以及開源的大數據處理框架,擁有豐富經驗,以此基礎上再講解機器學習和深度神經網絡,讓同學們對這一領域的幾個關鍵點都一個較為全面的學習和掌握。

有的同學有數學基礎,但是缺乏 C++/Python 程式語言;有的同學沒有數學基礎,是否可以學?數學基礎需要到什麼程度?如果提前學習是否有資料推薦?

【回答】首先學習本門課程並不需要特別高的數學基礎,只需要掌握大學本科階段學習的高等數學、線性代數和概率論等課程。

雖然從應用角度上來看:

實際上,如果你是一個工科生,你會發現學習數學最難的地方就是不理解這些數學工具到底能幫助我們去解決什麼問題,因為大學老師大多數都是數學專業老師,並不會從學生各自專業的角度來講解數學問題。但是當你知道你需要用數學工具做什麼,有一個明確目標後,你會發現你的動力和學習能力將會有一個突破,你不會覺得這些數學知識是枯燥乏味的。因此哪怕你的數學基礎相對薄弱,有一個明確的目的,再去補充這些數學知識,相信學員自己一定能解決這個問題。數學也絕對不是學習這門課的障礙,但是如果你想以其作為職業,去打好這個數學的底子是不可或缺的。

最後,如果你是數學專業,或者覺得自己數學很好的學生,你們也更不用擔心不會 1、2 門語言,因為計算機語言只是一種工具,最關鍵的還是訓練自己的思維,這種思維的核心就是數學和算法。如果你數學很好,學習這些語言是很快的,而且本門課程中除了最後的 C++ 開發,也不會應用到什麼特別的語法特性。

但是另一方面也不要忽視學習好這些工具的重要性,只是希望學生自己能夠權衡。對數學好的同學來說,可能最致命的是一個誤區,因為計算機的基礎是數學,所以完全使用數學思維去解決計算機問題是沒問題的,我這裡只能說計算機有自己的思維模式,哪怕是那些基於數學原理的算法問題,所以數學專業的同學必須要學會認識到這種思維的差異並學會使用計算機的思維來解決問題,而機器學習則是計算機思維的一個典型代表,這個將會在課程中具體討論。

至於需要的數學基礎,肯定是希望同學能夠學習高等數學中的微積分,線性代數和概率論的相關知識,對於沒有實際編程經驗的學生則推薦深入學習一下離散數學(無關乎是否精於數學)。本門課程需要的數學基礎也就是這些了。

深度學習和機器學習的關係是什麼?很多同學以為要先學機器學習再學深度學習是這樣嗎?

【回答】機器學習肯定是深度學習的基礎,因為深度學習就是深度神經網絡,而人工神經網絡則是機器學習的一大經典模型。但是我們要認識到機器學習領域包含的算法和模型太多,因此想要專精深度學習不一定要學會其他許多的機器學習算法和理論。所以我們會在課程中安排機器學習相關的內容,只不過都是機器學習中和深度學習相關的必備基礎知識。

但是如果你想要以後往算法工程師發展,去學習熟悉其他的機器學習模型也是必不可少的,只不過本門課程並沒有這種要求,所有需要的機器學習知識都會在課程的前半部分詳細講解。

Caffe 框架和 TensorFlow 框架都要學嗎?

【回答】首先本門課程主要應用的是 Caffe,但是同樣會講解 TensorFlow 的基本用法,並會進行簡單演示。在我們的日常工作中發現 TensorFlow 是目前最強大的機器學習框架,沒有之一,而且有 Google 公司的支持,有最龐大的社區,一旦有什麼新模型都會有 TensorFlow 的實現可以使用(得益於 TensorFlow 的架構設計)。用 TensorFlow 來進行快速實驗是非常好的選擇。

但是我們也發現 TensorFlow 有兩個比較大的問題,第一個問題是 TensorFlow 的單機執行效率低,尤其是和 Caffe 相比,對於資金並不是很充足的創業公司,在有一定量數據的情況下,並無法支撐一個可以快速運行 TensorFlow 訓練的集群,這個時候 Caffe 以及其各種改版往往是更好的選擇,而我們日常工作的實驗場景就被此局限,因此更偏向於實際使用 Caffe。

第二個問題是 TensorFlow 過於龐大,實際開發產品 SDK 的時候,我們希望訓練出來的模型能夠直接放到產品中使用,因此訓練和產品 SDK 使用的深度學習框架往往是一致或者可以互相轉換的。而 TensorFlow 過於龐大複雜,還需要使用專門的構建工具,在實際產品應用集成中往往要使用能夠完全掌控的工具和框架並進行修改,TensorFlow 的複雜性正和這種要求背道而馳。當然也可能是我們的工作場景和人員限制導致我們沒有人力對 TensorFlow 進行深度研究、裁剪和維護,這也就是我們產品中使用 Caffe 的原因。

學習了課程,掌握了這個技能,能不能找到工作,是否有匹配的崗位?

【回答】肯定可以!

不過自己平時更多地去實踐是成為某一領域專家的必經之路,這門課程的最大作用之一是讓你知道該去學習什麼,還有學習的思路、方法,以及平時難以接觸到的大型企業實際的工程經驗和架構方法,這將對同學們的未來工作和職業發展提供極大幫助。

通過學習本課程,可以匹配到以下幾個崗位:

這個實際崗位在很多公司中往往是算法工程師

大數據分析和處理方面的崗位

雲計算應用或平臺的開發工程師

機器學習或深度學習應用或平臺的研發工程師

而算法工程部門的工程師一般會有兩類人(除去部門負責人等高級職位):

一類是能夠較熟練運用 1 到 2 門語言(比如 Python、Java 或 C++),數學功底好,熟悉機器學習和深度學習的人,他們的任務是不斷優化機器學習模型,進行訓練測試,調整參數等,這個過程中也需要編寫相當多的腳本來幫助自己解決各種問題。最後要能夠編寫實際的產品代碼,不需要有非常好的架構和設計思想,關鍵是能夠高效地實現某種算法。

一類是有好的編程功底,同時又能夠基本理解機器學習和深度學習的人,他們的任務往往是負責封裝改良第一類人實現的功能模塊,從時間、空間和代碼質量上改良模塊的實現,同時負責維護完整的算法 SDK,這類 SDK 往往要求能夠快速迭代更新,能夠配上完整的訓練和測試流程,需要開發者具有較強的工程能力還有架構、設計思維。

至於崗位問題同學應該完全不用擔心,尤其現在有許多以人工智慧為核心的公司如爆發式增長,以及傳統 IT 企業向海量數據處理、機器學習和深度學習領域不斷加大投入,對這類工程師的需求量極大。

大公司還是小公司需要這種崗位?機器學習工程師的薪資待遇如何?

現在大公司和小公司都有,尤其是以人工智慧為主的公司。至於崗位問題同學應該完全不用擔心,尤其現在有許多以人工智慧為核心的公司如爆發式增長,以及傳統 IT 企業向海量數據處理、機器學習和深度學習領域不斷加大投入,對這類工程師的需求量極大。

至於薪資待遇方面,由於目前以及可預期的未來很長一段時間,這類崗位的需求和缺口都非常大,相信同學們在學習完本課程後,再加上自己對該領域的實踐和工作經驗,能夠獲得高於市場的薪酬水平。

如果你想快速掌握各方面的專業技能,不落後這個人工智慧的時代,這絕對是一門你無法忽視的課程。如果你的機器學習基礎非常薄弱,沒有在工程實踐中使用過機器學習,沒有實時數據處理的經驗,那麼,就是它了。

送你價值 200 元 本課程優惠碼【FCXTG3BGYX】,僅限使用 10

趕快上車,點  「 閱讀原文 」!

相關焦點

  • 深度學習的教學設計是什麼樣子?
    上篇分享了「深度學習」和「小學數學深度學習」這兩個熱詞的意義。今天與大家分享「深度學習的教學設計」和「小學數學深度學習的教學設計」,他們會是個什麼樣子的呢?讓我們一起走進馬雲鵬教授主編的《深度學習:走向核心素養》(學科教學指南·小學數學),揭開廬山真面目。
  • 從2019 AI頂會最佳論文,看深度學習的理論基礎
    如果能有一種理論告訴我們什麼樣的模型架構、運算方式能最好地表示某種數據,什麼樣的損失函數、迭代方式能最高效地學習到某種能力,什麼樣的設置又使這種能力能處理各種意外情況。那麼,這樣的深度學習,乃至機器學習,才是理論基礎圓潤的大學科。令人驚喜的是,我們可以看到近來很多前沿研究都越來越系統,越來越有洞見。
  • 深度學習是什麼,如何進行深度學習?
    開展深度學習的研究與實踐正是把握教學本質的一種積極努力,是我國課程教學改革走向深入的必需。 當前,智能機器尤其是智能化穿戴設備的大量出現,部分傳統職業已被替代,甚至有人認為教師和教學也可能被替代而消失。在這樣的情形下,我們不得不思考:在智能化時代,真的不需要教學了嗎?真的不需要教師了嗎?
  • 深度學習入門 | 第一講 深度學習與回歸分析
    在這一講,我想和大家探討一下深度學習與回歸分析之間的關係。深度學習作為人工智慧領域備受關注的模型方法,在媒體上可以看到大量的宣傳材料。客觀地說,很多宣傳其實是有失偏頗的,甚至是誤導的,把深度學習和人工智慧給過度神化了。而回歸分析不一樣,它是當前很多高校學生的必修課。它聽起來不是那麼的高大上,但好處是人們對它非常熟悉。
  • 深度學習入門有多難?這篇帶你零基礎入行
    更重要的是,「深度學習」算法包含精妙的思想,能夠代表這個時代的精神。通過與我們社群內的用戶聊天溝通,發現他們在想入門深度學習都會遇到以下幾個問題。「適不適合轉行深度學習(機器學習)」,「怎麼樣轉行深度學習(機器學習)」,「轉行深度學習需要哪些入門材料?」等等。
  • 深度學習——keras教程系列基礎知識
    有你想要的精彩                大家好,本期我們將開始一個新的專題的寫作,因為有一些小夥伴想了解一下深度學習框架
  • 深度強化學習(一)----深度學習介紹系列
  • 《深度學習》:告訴你,要想成為一流達人,需要哪幾種能力特徵
    學習,也成了一件令人焦慮的事。遇到《深度學習-徹底解決你的知識焦慮》,就像看見了焦慮症的解藥,毫不猶豫的打開它,讀了才發現,這本並不純粹是解決成年人學習的焦慮,而更多的是從教育或者育兒這個角度來論述學習與認知。作者是日本知名認知科學家今井睦美。全書由七個章節和一個終章構成,除了論述還有豐富的事例。
  • 一個鍊金術師的自述:為什麼深度學習的理論基礎不靠譜?
    掌握了一個問題的理論基礎,我們就能提前進行預測,知道什麼樣的設計能成功,什麼樣的設計不用浪費時間嘗試(否則造飛機也要靠隨便設計一個試試看也太危險了吧!);一個設計成功了,我們能分析哪個細節,下次便多用這個細節;如果理論已經能證明一些目標是不可能實現的(比如,永動機),那我們也不必大開腦洞地去試圖實現這個目標;通過理論,我們也能看出新的設計是否只是新瓶裝舊酒,還是真的有實質性突破。
  • 深度學習自學指南:6個月,從基礎知識到模型構建
    當然,雖說的零基礎,但也有一個小門檻,你需要滿足以下條件:在接下來的6個月中,每天花費10-20小時學習已經具備一些編程技巧,懂一些Python和雲的基礎知識有一些數學基礎(代數、幾何等)第一階段如果想學開車,應該坐上車通過模擬真實開車環境學習,而不是首先了解內燃機和離合器的工作原理。學習深度學習亦是如此,我們需要遵循這種自上而下的學習方法。推薦fast.ai上的教程Practical Deep Learning for Coders—Part 1。
  • 深度學習入門
    那麼深度學習到底是什麼,其與傳統的機器學習之間又有什麼樣的關聯。對於想入坑深度學習的同學,又該從哪些方面入手。這就是本文要回答的問題。深度學習的提出       先從深度學習的提出開始說起,深度學習的概念是由Hinton在2006年提出,他當時首次提出了深度信念網絡(DBN),相比之前,他採用無監督方式逐層訓練深層網絡,在深層網絡訓練中取得了跨越式的進展。
  • 【師者心語】立足素養 深度學習--《深度學習:走向核心素養》學習體會
    如何讓我們的課堂從教書走向育人,《深度學習:走向核心素養》這本書進行了系統的闡述。  看到這本書的名字「深度學習」,「問題引領」、「生本課堂」這樣的字眼就在我的腦海中閃過,感覺這幾個字既熟悉又陌生。關於什麼是深度學習,書中有這樣的一段描述「所謂深度學習,就是指在教師引領下,學生圍繞著具有挑戰性的學習主題,全身心積極參與、體驗成功、獲得發展的有意義的學習過程。
  • 淺談實現深度學習的策略和步驟
    實現深度學習的策略是:變低階思維問題為高階思維問題,變低階思維活動為高階思維活動。深度學習內容需要有機整合,要將多種知識和信息間的聯結,包括多學科知識融合及新舊知識聯繫,整合到原有的認知結構中。深度學習過程屬於建構反思,個體在某特定社會環境中互相協作、共同參與某種有目的的活動,最終形成某種觀念、理論或假設等智慧產品。
  • 深度學習的學習歷程
    我覺得初學者最缺的不是深度學習的資料,以及那一堆公式,而是一個指路人,他能用通俗易懂的方式把深度學習在你面前掰開,又親手把它給捏回去,還能告訴你深度學習整個的學習周期是怎樣的,這樣就能讓你少走很多彎路,提高學習的效率。
  • 想學習高大上的深度學習技術麼?快來看看這本書
    這本書是第一本是從深度的角度涵蓋深度學習領域的書,同時,即使是初學者也可以讀懂。本書主要有三個部分。第一部分是數學和機器學習的基本知識。新手閱讀這一部分快速地補充必要的知識,老手也可以通過這一部分進行知識的回顧。該部分簡單介紹了線性代數,概率論,優化(主要是梯度下降,因為它是深度學習中的主導優化算法)的基礎。另外,這一部分還簡單介紹了機器學習的概念。
  • 資源|用Python和NumPy學習《深度學習》中的線性代數基礎
    本文系巴黎高等師範學院在讀博士 Hadrien Jean 的一篇基礎學習博客,其目的是幫助初學者/高級初學者基於深度學習和機器學習來掌握線性代數的概念。掌握這些技能可以提高你理解和應用各種數據科學算法的能力。
  • 深度學習中的Python - NumPy基礎
    深度學習涉及處理大型數據集,當處理大型數據集時,NumPy 數組是一種有效的技術。有幾種不同的方法可以創建 NumPy 數組,一種簡單的方法是使用 array()函數創建它們。您不需要首先顯式地轉換為 NumPy 數組。
  • 【人工智慧】4深度學習基礎(課件摘抄)
    深度學習基礎1.深度學習簡介1.1.AI(人工智慧)挑戰1.1.1.AI早期成功:解決了一些對於人來說
  • 深度學習建模方法,首先需要了解建模的思路
    深度學習建模方法的教學,首先需要講解建模的思路,然後才是使用的計算機建模工具的使用,目前有相關主流程式語言的入門教程,可以推薦華為雲安全部門負責人張勇教授的,其介紹了linux編程環境下如何操作建模機器學習深度學習的環境配置,並分享了多年經驗的建模實踐和驗證過程。
  • AI基礎:機器學習和深度學習的練習數據
    0.導語初學者學習機器學習和深度學習的時候,經常會找不到練習的數據,本文提供了獲取數據的一些方法。>AI基礎:一文看懂BERTAI基礎:入門人工智慧必看的論文AI基礎:走進深度學習AI基礎:卷積神經網絡