-
1 # 認知框架
-
2 # 東東大神
深度學習可以說是這一代人工智慧的核心,驅動著現在最先進的計算機視覺系統,比如影象分類、物體檢測識別等等。推薦演算法、語音識別、自然語言處理、決策制定這些事情也有越來越多的深度學習。
在我看來,深度學習的學習研究分為三個階段:基礎知識 => 解決實際問題 => 發明創造。
階段零:準備工作
要想學習深度學習,我認為首先得至少熟悉一門程式語言,最好是 Python。不然無法上手實驗,容易變成紙上談兵。
硬體方面,建議有一臺計算力較強的電腦,顯示卡使用 NVIDIA GTX1070 以上。深度學習對記憶體(視訊記憶體)和計算量的要求很大,低於這個配置會導致很多經典模型無法執行(比如吃視訊記憶體的 VGG Net)。
此外,如果想要對深度學習的理論有詳細的理解,需要一定的數學基礎。高中數學加上微積分的基本知識(求導、鏈式法則)完全可以幫助你起飛。更好的數學基礎可以讓你在理解複雜模型、複雜的最佳化演算法上游刃有餘,但理解基礎理論不需要太高深的數學。
最後,一個良好的心態可以幫助你更快地學習。深度學習並不困難,它的核心簡單優美,相信自己可以掌握它。
階段一:基礎知識
沒有什麼比看一本簡明扼要的薄書更容易入門。深度學習的資料非常多,但這也成為了深度學習坑最大的地方,學習者很容易迷失在各種資料當中,最後只看了個皮毛。
第一個階段花費的時間因人而異,每個人基礎不同,從兩個星期到幾個月都有可能。
階段二:運用深度學習解決實際問題
在學習基礎知識之後,就可以著手解決具體的問題,有以下幾件事情可以做
找一個好用的主流框架(推薦 Pytorch),把教程和示例程式碼跑一遍。然後使用這套框架去解決你感興趣的問題,比如在你自己的資料集上訓練物體識別。閱讀經典的論文並重復實驗。自己去復現經典論文的演算法非常有助於理解。將演算法融入一個應用當中,比如可以用人臉檢測識別演算法做一個老闆來了的報警器,嘿嘿。或者將深度學習演算法融合到手機當中。這個階段你可能會遇到大量的問題,這個時候你需要發揮搜尋引擎的作用,不斷地搜尋,不斷地閱讀,最終解決問題。我常去各個官方文件、技術論壇、Stack Overflow 和部落格上閱讀資料。經歷了這個過程,你所學的理論知識將得到檢驗,你將成為一名熟練的深度學習工程師。
階段三:發明創造
最後一個階段就是突破前人的領域。在熟悉深度學習之後,你會發現前人的理論有大量解決不了的問題,前人的工具可能並不是100%稱手。所以你需要創造出自己的新知識、新工具,分為兩個方面:
理論創新,解決前人解決不了的問題,或者更好地解決問題,提出新的認識世界的方法。要在理論上有所突破,一個常規的方法是找一個專門的問題開始鑽研,不斷地試驗自己的想法,前人沒有的想法。同時閱讀這個領域最新的文章,嘗試實現。比如你可以挑物體檢測這個問題,既然你對於理論和實踐都已經比較熟練了,你完全可以開始修改別人的網路架構,改變訓練的模式,嘗試把先驗資訊加進來。總之,有很多的玩法都可以實驗。說不定玩著玩著就能寫一篇文章出來發表。工程創造,實現自己的深度學習框架。曾經看過一個觀點,輪子不需要被重新發明,但需要重新創造。理論上的東西,發現一次就夠了,但是工程實現在一次次的迭代中完善進步。對於深度學習,可以嘗試實現一個自己的深度學習框架。目前深度學習離不開 c/c++ 和 cuda,所以你可以從頭寫一個 c/c++ 版本的,把坑自己踩一遍,這樣工程能力肯定大為提高。或者,你也可以利用現有框架的後端實現一個前端,這樣你對於這些框架後端的理解也能夠大為提高。且你的所有的想法都可以寫進這個前端裡面。比如 pytorch 就是用 torch 的後端實現了一個 python 的前端,而且相比於原版的 torch 有了很多改進。 -
3 # 林檎作坊
一句話結論
深度學習就是自動估計倆個事物之間的關係。
人人都能看得懂的解釋舉個例子,比如iPhone X的人臉識別技術,如何知道這張臉是張三,那張臉是李四的呢?這裡例子裡有倆個事物:臉的圖片,人的名字。
【以前】我們都是用祖傳的影象處理方法。簡單說,我們認為面板黑一點,臉大一點的是張三。這樣的話,如果有一萬張臉,我們就要手動定義一萬個標準,工作量大且不可行。
【現在】深度學習的做法是,把圖片和人名都告訴機器,讓機器在數字層面找到倆者的關係。真實場景下的結果驚人,機器找到的這個關係比人找到的“臉大+黑”好得多(準確率高)。所以深度學習同時做到了,既省事(不需要人參與),結果又好(準確率超過人)。
數學版簡易解釋深度學習就是自動估計函式。任何相關事物之間的關係都可以表達成一種函式。真實場景下,這種函式往往復雜到無法寫出公式,不會像y=ax+b這樣簡單,於是就用的神經網路來表達這種函式。
-
4 # 伏城X
作為一個AI司機,回答這個問題簡直義不容辭。
話不多說,直接看Google的兩個教學影片,從CNN到RNN/LSTM都有介紹,深入淺出
回覆列表
今天我談一些經過個人實踐的一些可以落地視角和方法。
深度學習是在設計知識的聯絡,這種聯絡就形成結構。用設計的方法來讀書所謂設計其實是指一個過程,在這個過程中採取一定的思維及思維方法,而深度學習就是要使用一系列的思維及思維方法來設計學到的知識,把學到的知識跟已有的知識聯絡起來,而這種聯絡就會打破原有知識的結構,重新塑造出一個新的知識結構。
在這個設計過程要使用的一些思維及思維方法系統思維
減法思維
還原法思維
假設性思維
創新的思維【水平思維】
通常我們讀書就是學習到書中的知識抱著這個視角會有很大的問題,因為一個人的學習,不僅是學習書中的知識,而且要重構知識,每個人都有現有的知識存量,要把新學到的知識透過設計嵌入到已有的知識系統。
一個根本的方法設計一個簡單的形式來表述知識,形式就是指結構的外形可、視覺化、形象化,並同時形成一種樣式與秩序。而這個設計就要用到一些思維的方法【系統思維、減法思維、還原法思維、等等】。知識要經過自己的設計轉一手,嵌入到已有的知識體系。
深度學習深度學習,就是在你讀書的過程中,不僅是獲取知識,而且還要生成知識,而這個生成的知識,就是透過設計。
知識要變成能用的思維讀書獲取的知識,跟大腦裡能用的思維還有很遠的距離,因為大腦用的思維要簡單,而知識卻是複雜的,知識要設計成簡單的形式就能變成大腦裡可用的思維。很多時候,讀了很多書發現也沒啥用,就是知識跟思維之間的斷層造成的,這個斷層,正是需要設計的地方。透過設計打通知識與思維的通道。知識要做到簡,反過來大腦透過這個【簡】就可以駕馭知識。
結論:深度學習其實是一個對知識重新設計的過程。非設計不足以把知識變成大腦裡的思維。非設計不足以把新學來的知識嵌入已有的知識體系。深度學習乾的是就是一個設計的活,每個人都要或多或少懂一些設計思維,這樣有助於自己更高效、更有深度的去學習。