<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                http://blog.csdn.net/zouxy09/article/details/8775488 [TOC] 因為我們要學習的是特征的表達,那么關于特征,或者說關于這個層級特征,我們需要了解地更深入點。所以在說Deep Learning之前,我們有必要再啰嗦下特征(呵呵,實際上是看到那么好的對特征的解釋,不放在這里有點可惜,所以就塞到這了)。 ? **四、關于特征** ??????? 特征是機器學習系統的原材料,對最終模型的影響是毋庸置疑的。如果數據被很好的表達成了特征,通常線性模型就能達到滿意的精度。那對于特征,我們需要考慮什么呢? **4.1、特征表示的粒度** ??????? 學習[算法](http://lib.csdn.net/base/datastructure "算法與數據結構知識庫")在一個什么粒度上的特征表示,才有能發揮作用?就一個圖片來說,像素級的特征根本沒有價值。例如下面的摩托車,從像素級別,根本得不到任何信息,其無法進行摩托車和非摩托車的區分。而如果特征是一個具有結構性(或者說有含義)的時候,比如是否具有車把手(handle),是否具有車輪(wheel),就很容易把摩托車和非摩托車區分,學習算法才能發揮作用。 ![](http://img.my.csdn.net/uploads/201304/09/1365438575_9396.jpg) ?![](http://img.my.csdn.net/uploads/201304/09/1365438590_4831.jpg) ? **4.2、初級(淺層)特征表示** ??????? 既然像素級的特征表示方法沒有作用,那怎樣的表示才有用呢? ??????? 1995 年前后,Bruno Olshausen和 David Field 兩位學者任職 Cornell University,他們試圖同時用生理學和計算機的手段,雙管齊下,研究視覺問題。 ??????? 他們收集了很多黑白風景照片,從這些照片中,提取出400個小碎片,每個照片碎片的尺寸均為 16x16 像素,不妨把這400個碎片標記為 S[i], i = 0,.. 399。接下來,再從這些黑白風景照片中,隨機提取另一個碎片,尺寸也是 16x16 像素,不妨把這個碎片標記為 T。 ????????他們提出的問題是,如何從這400個碎片中,選取一組碎片,S[k], 通過疊加的辦法,合成出一個新的碎片,而這個新的碎片,應當與隨機選擇的目標碎片 T,盡可能相似,同時,S[k] 的數量盡可能少。用數學的語言來描述,就是: ??????? Sum_k (a[k] * S[k]) --> T,???? 其中 a[k] 是在疊加碎片 S[k] 時的權重系數。 ??????? 為解決這個問題,Bruno Olshausen和 David Field 發明了一個算法,稀疏編碼(Sparse Coding)。 ??????? 稀疏編碼是一個重復迭代的過程,每次迭代分兩步: 1)選擇一組 S[k],然后調整 a[k],使得Sum_k (a[k] * S[k]) 最接近 T。 2)固定住 a[k],在 400 個碎片中,選擇其它更合適的碎片S’[k],替代原先的 S[k],使得Sum_k (a[k] * S’[k]) 最接近 T。 ????????經過幾次迭代后,最佳的 S[k] 組合,被遴選出來了。令人驚奇的是,被選中的 S[k],基本上都是照片上不同物體的邊緣線,這些線段形狀相似,區別在于方向。 ??????? Bruno Olshausen和 David Field 的算法結果,與 David Hubel 和Torsten Wiesel 的生理發現,不謀而合! ??????? 也就是說,復雜圖形,往往由一些基本結構組成。比如下圖:一個圖可以通過用64種正交的edges(可以理解成正交的基本結構)來線性表示。比如樣例的x可以用1-64個edges中的三個按照0.8,0.3,0.5的權重調和而成。而其他基本edge沒有貢獻,因此均為0 。 ![](http://img.my.csdn.net/uploads/201304/09/1365438649_2577.jpg) ??????? 另外,大牛們還發現,不僅圖像存在這個規律,聲音也存在。他們從未標注的聲音中發現了20種基本的聲音結構,其余的聲音可以由這20種基本結構合成。 ![](http://img.my.csdn.net/uploads/201304/09/1365438664_7093.jpg) **?![](http://img.my.csdn.net/uploads/201304/09/1365438678_4293.jpg)** ? **4.3、結構性特征表示** ??????? 小塊的圖形可以由基本edge構成,更結構化,更復雜的,具有概念性的圖形如何表示呢?這就需要更高層次的特征表示,比如V2,V4。因此V1看像素級是像素級。V2看V1是像素級,這個是層次遞進的,高層表達由底層表達的組合而成。專業點說就是基basis。V1取提出的basis是邊緣,然后V2層是V1層這些basis的組合,這時候V2區得到的又是高一層的basis。即上一層的basis組合的結果,上上層又是上一層的組合basis……(所以有大牛說Deep learning就是“搞基”,因為難聽,所以美其名曰Deep learning或者Unsupervised Feature Learning) ![](http://img.my.csdn.net/uploads/201304/09/1365438722_9668.jpg) [](http://photo.blog.sina.com.cn/showpic.html#blogid=593af2a70101bqyo&url=http://s11.sinaimg.cn/orignal/593af2a7gd8d57a0dcd9a) ??????? 直觀上說,就是找到make sense的小patch再將其進行combine,就得到了上一層的feature,遞歸地向上learning feature。 ??????? 在不同object上做training是,所得的edge basis 是非常相似的,但object parts和models 就會completely different了(那咱們分辨car或者face是不是容易多了): ![](http://img.my.csdn.net/uploads/201304/09/1365438750_9009.jpg) ??????? 從文本來說,一個doc表示什么意思?我們描述一件事情,用什么來表示比較合適?用一個一個字嘛,我看不是,字就是像素級別了,起碼應該是term,換句話說每個doc都由term構成,但這樣表示概念的能力就夠了嘛,可能也不夠,需要再上一步,達到topic級,有了topic,再到doc就合理。但每個層次的數量差距很大,比如doc表示的概念->topic(千-萬量級)->term(10萬量級)->word(百萬量級)。 ??????? 一個人在看一個doc的時候,眼睛看到的是word,由這些word在大腦里自動切詞形成term,在按照概念組織的方式,先驗的學習,得到topic,然后再進行高層次的learning。 ? **4.4、需要有多少個特征?** ?????? 我們知道需要層次的特征構建,由淺入深,但每一層該有多少個特征呢? 任何一種方法,特征越多,給出的參考信息就越多,準確性會得到提升。但特征多意味著計算復雜,探索的空間大,可以用來訓練的數據在每個特征上就會稀疏,都會帶來各種問題,并不一定特征越多越好。 [](http://photo.blog.sina.com.cn/showpic.html#blogid=593af2a70101bqyo&url=http://s8.sinaimg.cn/orignal/593af2a7gd8d590c565c7) ?![](http://img.my.csdn.net/uploads/201304/09/1365438778_9193.jpg) ?????? ?????? 好了,到了這一步,終于可以聊到Deep learning了。上面我們聊到為什么會有Deep learning(讓機器自動學習良好的特征,而免去人工選取過程。還有參考人的分層視覺處理系統),我們得到一個結論就是Deep learning需要多層來獲得更抽象的特征表達。那么多少層才合適呢?用什么[架構](http://lib.csdn.net/base/architecture "大型網站架構知識庫")來建模呢?怎么進行非監督訓練呢?
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看