神經網絡技術棧介紹——PyTorch,Transformer,NLP,CV,Embedding 原創
“ 神經網絡是神經網絡,具體任務是具體任務,不能混為一談 ”
學習了一段時間神經網絡技術之后發現對很多東西理解還不夠深刻,所以今天就來梳理一下神經網絡的技術棧,深入了解一下不同的工具在神經網絡中所處的位置,以及其扮演的角色。
先說一句廢話,神經網絡僅僅只是神經網絡,它不涉及具體的任務,只是一個神經網絡模型;神經網絡要解決實際問題就需要和不同的任務領域相結合。
神經網絡技術棧
要了解或者說要學習神經網絡,首先要從兩個方面去入手——技術原理和應用場景。
神經網絡是基于人工智能領域中,機器學習的深化——深度學習,通過模仿人類的大腦神經的行為來實現人工智能的一種技術手段。
因此,基于這種思想誕生了神經網絡模型;既然是模仿人類大腦的神經網絡模型,那么具體的數學模型應該是什么樣的呢?
因此,這里就產生了神經網絡模型中幾種常見的神經網絡架構及其變種,RNN——循環神經網絡,CNN——卷積神經網絡和Transformer——自注意力模型。
為什么會有多種不同的神經網絡架構模型?
因為人類還無法真正模擬出人類的大腦神經網絡,因此只能根據不同的任務類型設計能夠處理不同任務的神經網絡模型;比如說Transformer擅長處理NLP任務,CNN適合處理圖像任務等。
所以說可以簡單把神經網絡技術理解成一種實現人工智能的思想,而RNN,CNN與Transformer等神經網絡架構是其中的幾種實現方式,也可以理解成數學模型。
而有了思想還要有具體的實現,因為神經網絡的本質是數學模型,因此需要進行大量的數學計算;所以,谷歌和meta公司分別開發了一款神經網絡的開發框架,Tensorflow和PyTorch,也就是一個科學計算框架,里面封裝了大量的數學計算公式等。
因此,如果說RNN,CNN和Transformer是一種實現思想;那么PyTorch就是實現這些思想的具體工具;有了PyTorch和Tensorflow技術人員在開發神經網絡時就會簡單很多。
以上是神經網絡中純粹的技術問題,網絡模型是理論,PyTorch和Tensorflow負責具體實現。
而從實際的價值來說,技術的作用是解決問題,也就是應用;因此,需要把神經網絡技術與其它領域的任務相結合,去解決實際問題,這樣才能發揮神經網絡的真正價值。
而作為一個人工智能,最基礎的功能當然就是要能夠和人類進行正常交流;因此,神經網絡就必須能夠理解語言,圖像,視頻;并且能夠生成新的內容。
所以,神經網絡與自然語言處理(NLP)任務相結合就有了自然語言處理的神經網絡模型;而神經網絡與圖像,視頻處理的任務相結合,就有了CV——計算機視覺處理。
所以說,NLP和CV是神經網絡技術的兩個主要應用方向;但NLP和CV并不是依賴于神經網絡技術而存在,NLP和CV是兩項獨立的技術領域;只不過神經網絡技術在這兩個領域中表現還不錯。
神經網絡與NLP和CV的關系就類似于農村地鍋和城市里的天然氣類似;做飯可以用地鍋,也可以用天然氣;只不過天氣熱用起來更簡單方便。神經網絡就相當于天然氣,但不用神經網絡還有其它方法研究NLP和CV。
這也是為什么,明明你學了pyTorch和Transformer,你依然不知道該怎么解決NLP和CV的問題;原因就在于神經網絡只是研究NLP和CV的一種工具。這就相當于你學會了使用天然氣,但就代表你會做菜了嗎? 畢竟天然氣和做菜是兩個領域的問題。
那現在應該知道神經網絡與NLP,CV的關系了吧?以及神經網絡的幾種經典架構模型;但Embedding又是什么東西?
Embedding中文叫做嵌入,簡單來說就是一種數據格式轉換工具;在神經網絡中,主要的數據格式是向量(張量);而在人類的交流中主要是文字,圖片,視頻等數據格式。
因此,使用神經網絡模型就需要把人類認識的文字,圖片,視頻等格式的數據,轉換成神經網絡能難過處理的數據格式——也就是張量(向量)。而這個過程就是Embedding要做的事情,數據格式轉換。
本文轉載自公眾號AI探索時代 作者:DFires
