這篇主要是針對深度學習原理進行乙個簡單的介紹。讓大家了解一下這個nbhh的方法到底是怎麼實現的。然後介紹一下如何把深度學習應用在這個無人駕駛小車diy專案上面。
開 始之前,我想先讓大家屢清楚三個重要的概念。ai(人工智慧)、機器學習、深度學習。可以這麼理解,ai可以看做是乙個目的,讓機器能夠做一些以往只有人 才能做的智慧型的工作,這個概念其實在很久很久之前普斯茅斯會議上就已經提出來了。然後機器學習可以看做是一種手段,方法,是用來實現ai的。那深度學習 呢?它其實是機器學習這一大類方法裡面的其中一種,由神經網路發展而來。由於它的效果賊好,所以現在實在是太火爆了。。。下面這張圖就可以清晰的反應三個 概念之間的關係。
好 了,下面開始重點講解深度學習原理。由於深度學習可以用在很多領域,影象分類,影象檢測,姿態估計,行為識別,語音識別,自然語言處理等等。我們就從最簡 單的用深度學習做影象分類說起吧。因為我們這個專案其實就用的是影象分類。給你一張當前小車正前方的道路影象,然後判斷出需要進行什麼操作(左轉,右轉, 停止還是直行)。
這裡,我們先舉乙個生活中的小例子來前進行乙個模擬的說明。n年後,浪星的兒子去幼兒園上課。這次上課的題目是《認識霸王龍和劍龍》。然後呢老師投影了下面這張?問浪星兒子:「小朋友,你知道這是什麼龍嗎?」。
浪星兒子摸摸頭,說:「 牙齒尖尖的,是劍龍吧 」。 老師親切的說「不是哦,這是霸王龍」。浪星兒子心裡嘀咕了一下,原來牙齒尖不尖跟劍龍沒什麼關係。於是老師又拿出一張問「那這只是什麼龍呢?」
浪星兒子這次自信的說,爪子這麼尖,那一定是劍龍了吧。老師搖搖頭,這只還是霸王龍哦。浪星兒子又開始嘀咕了,原來尖尖的爪子跟劍龍也沒有半毛錢關係啊。正在這時,老師又拿出了一張,問「這只呢?」
浪星兒子一臉嫌棄的看著這個醜八怪,說,這麼醜的恐龍,難道是劍龍?老師微笑著說「對嘍,這只就是劍龍」。浪星兒子又嘀咕開了,莫不是身上長著鱗片的醜八怪就是劍龍。
如此反覆之後,浪星兒子看完了老師準備的所有之後,自信的學會了分辨霸王龍和劍龍。
後來,浪星給兒子買了乙個玩具恐龍,浪星兒子一眼就認出了,這是醜八怪劍龍!
好了,故事講完了。我們再把剛才浪星兒子認識恐龍的經歷回憶一遍梳理一遍來加深映像:
如果你理解這個學習過程,那麼我們接下來對比使用深度學習讓計算機來識別霸王龍和劍龍的過程,就會非常easy了。
首 先是準備樣本。注意乙個小細節,在學習的過程中,老師準備了很多的霸王龍和劍龍的,並且是有標籤的(有標籤的意思是老師知道哪一張是劍龍還是霸王 龍,並且在浪星兒子**出結果後可以做比對,看浪星兒子是**對了,還是錯了)。那麼在深度學習上面,這些帶有標籤的叫做樣本。下面這張圖就是浪星給 計算機準備的樣本。注意標籤我用數字代替,0表示霸王龍,1表示劍龍:
有 了訓練樣本,我們就要開始設計訓練網路了。我們可以把這個過程抽象一下,把從到**結果看做乙個函式或者說對映。我們就是要學習這個對映過程,使得這 個對映變得更加準確。而設計網路,就是設計這個對映規則的過程。我們姑且把這個對映稱作f(x),x是輸入的。輸出就是它的**值。那麼可以想象,剛 開始f(x)還沒有經過學習,和浪星兒子一樣的笨,所以通常輸出都是錯誤的。但是不用急,我們有標籤,只要把標籤和**值做乙個對比,就知道f(x)** 的偏差有多大,然後我們再調整一下對映f(x)裡面的引數就行了。看看下面這個流程圖:
是 不是和上面的浪星兒子學習過程非常的相似。binggo。就是這麼好理解!but,咱們感性層面認識了之後,如果追究下去,f(x)是怎樣的乙個對映,如 何設計;步驟4是如何根據標籤值和**值的差距來調整f(x)的。那麼恭喜你,你已經快入門了。這兩個過程分別對應深度學習的網路設計和優化方式。這裡我 我就不詳細說了,有興趣的可以自行度娘。如果這篇文章能夠讓你有興趣入門深度學習,那浪星也算是功德一件了。
介 紹完了深度學習的原理之後,我們再來討論一下我們這個無人駕駛小車當中怎麼使用深度學習技術。首先我們使用分類來做。因為我們的小車比較簡單,只需要 左轉,右轉,直行和停止就行,速度是固定的。轉彎也沒有角度區分。所以使用最簡單的分類來做就行了。如果我們把左轉用標籤0來表示,右轉用標籤1來表 示,直行用標籤2來表示,停止用標籤3來表示。那麼首先我們得採集一些訓練樣本,然後給他們打上標籤,就像下面這樣:
Linux 零基礎學習 (5)Linux基礎 D
序號命令 對應英文 作用01 cat 檔名concatenate 檢視檔案內容 建立檔案 檔案合併 追加檔案內容功能 02more 檔名more 分屏 顯示檔案內容 03grep 搜尋文字檔案名grep 搜尋文字檔案內容 選項含義 b對非空輸出行編號 n對輸出的所有行編號 操作鍵功能 空格鍵顯示手冊...
零基礎學習Unity3D的方法
最近這段時間看了很多網上給的如何零基礎自學unity,覺得各種答案都有。本人也是新手,想來談談自己學習unity的方法。首先上來不要急著學習什麼語法或者demo,我是先大致了解unity是如何 生產 遊戲 的 初級框架 對,生產,就是生產遊戲。這個階段不要了解unity裡面的原理,也理解不了,這個階...
零基礎怎麼學習3d遊戲建模?
一 如何學習遊戲建模?1 對於有興趣且有時間的小夥伴,相信都是選擇自學,也許你會在網上尋找大量的資料 教程,然後開始你的探索之旅,當然,在我看來,自學是比科班教學更加有效和更深刻的過程,在其中你收穫到的相信不只是學識,還有自我控制力 毅力,後者對於你的人生的作用是無限的,而前者的作用是有限的,也許看...