神經網絡
神經網絡的定義
?????? 百科中定義是一種模仿動物神經網絡行為特征,進行分布式并行信息處理的算法數學模型,翻譯成大白話就是一種模擬神經元有刺激有響應的結構,使用多個這樣的結構在不同層以不同數量、不同權值疊加以求得最開始的輸入與輸出之前關系的網絡。
神經網絡的應用
一個最簡單的神經網絡可以是只有一層,有一個輸入,然后得到一個輸出,如果輸入和輸出之間是線性的關系,就最簡單不過了。比如輸入是商品的數量,輸出時商品的總價格,顯然中間只需要一個乘法就可以做到。即商品的總價格=商品的數量*商品的單價。
但現實生活一個輸出往往與很多因素有關。比如房價,房價可以與房子的位置、房子的大小,人們的購買能力有關,而房子的位置又可以分為在哪個城市,是在大城市(北上廣深)、還是小城市(三四線小縣城),周圍是小學、初中還是大學。于是就可以將模型拓展成城市大小、周圍為第一層節點,二者共同決定位置對房價的作用,然后還可以加入房子的大學、購房能力等指標作為第二層,第二層通過不同的加權值作用于房價(第三層)。
神經學習的本質是監督學習,除了在我們上面提到的預測房價的方面,他在智能廣告、語音識別、自動駕駛、機器翻譯等方面也得到了廣泛的應用。在圖像領域我們常用的是卷積神經網絡(CNN),對于序列數據,例如音頻包含時間序列信息,我們使用循環神經網絡(RNN),當然語言也是一個個相關的序列(詞)組成,因此也使用RNN。自動駕駛可能涉及圖片和序列兩種,于是它一般使用的是混合算法。
同時我們也聽到另一種說法,神經網絡適用于結構化和非結構化數據,結構化數據都有清晰的定義,諸如:房子的尺寸,年齡的大小等等,非結構化數據可能是圖片、視頻或者是代識別的文本中的像素點、或者是單詞,人類更擅長處理非結構化數據,但是由于神經網絡、深度學習,電腦也越來越能在模式識別、圖片識別等領域有很好的表現。
傳統的向量機等模型在數據量小的時候性能隨著數據量的增長穩定增長,在數據量達到一定程度上性能逐漸達到穩定了,但隨著相機被集成在手機登各種移動終端上,人們能獲得的數據爆炸式增長,神經學習的算法被發明,此時規模越大的網絡性能增長約為顯著。也即要得到一個性能較好的網絡可以通過兩種方式:增大網絡的規模或者增加數據量,而大公司例如谷歌等往往朝著兩個方向共同努力,畢竟他們有著天然的數據優勢。近些年來算法的更新也讓神經網絡的運算速度得到很大的提升,比如:相比于之前的sigmoid函數(符號函數)轉變為ReLu函數(在負數部分是固定的,在正的部分線性增長)