作為乙個機器學習深度學習方面零基礎的人,選修的深度學習課程,老師全程在預設大家都有專案經驗的基礎上上課,還沒入門,就已綜述?。沒辦法,只能從入門級別看起。先從把我繞暈的概念寫起。所以,深度學習為什麼這麼難!!!!!!數學+計算機就是這麼難嗎!!!!!!
人工智慧(ai)是電腦科學的乙個分支,事實上,它不止包含電腦科學,還包括心理學,哲學等等各類學科。是研究使計算機來模擬人的某些思維過程和智慧型行為(如學習、推理、思考、規劃等)的學科。它包括自然語言處理、計算機視覺、智慧型機械人、機器學習、自動程式設計、智慧型搜尋、資料探勘、專家系統等研究領域。
機器學習(machine learning)是人工智慧的乙個研究領域,實際上,也是比較核心的領域。它也是一種實現人工智慧的方法,可以應用在人工智慧的其他研究領域。機器學習主要有如下幾類:監督學習,半監督學習,無監督學習,強化學習。傳統機器學習的研究方向主要包括決策樹、隨機森林、人工神經網路、貝葉斯、支援向量機以及近年來比較火的深度學習等。神經網路與深度神經網路的區別在與隱藏層級,通常兩層或兩層以上隱藏層的網路叫做深度神經網路。
深度學習(deep learning)是機器學習的乙個領域,也可以說是一種實現機器學習的演算法,實際上就是將原來的人工神經網路層數進行了增加。常用的深度學習模型有:深度置信網路(deep belief network dbn),層疊自動去噪編碼機(stacked denoising autoencoder sda),以及卷積神經網路(convolutional neural network cnn)等。
關於神經網路的具體分類:
cnn的基本結構包括兩層,其一為特徵提取層,每個神經元的輸入與前一層的區域性接受域相連,並提取該區域性的特徵。一旦該區域性特徵被提取後,它與其他特徵間的位置關係也隨之確定下來;其二是特徵對映層,網路的每個計算層由多個特徵對映組成,每個特徵對映是乙個平面,平面上所有神經元的權值相等。特徵對映結構採用影響函式核小的sigmoid函式作為卷積網路的啟用函式,使得特徵對映具有位移不變性。
參考:如果採用經典的神經網路模型,則需要讀取整幅影象作為神經網路模型的輸入(即全連線的方式),當影象的尺寸越大時,其連線的引數將變得很多,從而導致計算量非常大。這也是最初的傳統人工神經網路發展受到限制的原因,層數越多,相關的引數也將越多。而對於cnn來說,其採用了區域性連線的模式,對影象的區域性進行「感知」(區域性感受野),然後在更高層將區域性的資訊進行綜合,得到全域性的資訊,這種方式減少了引數數目,為神經網路加深提供了可能。
先通過卷積得到feature map,經過啟用函式後,再通過池化(pooling)減少計算量,這三者組合起來的操作可以認為是「一層」網路。可以通過增加更多的層數,即對卷積和啟用函式,池化等操作進行組合,得到深度神經網路。在深度神經網路之後,會有全連線層(fully connected layers),全連線層在整個卷積神經網路中起到「分類器」的作用,對整個的結果進行識別和分類。全連線層也可以有多個。一般來說當網路的層數增加時,結果會更準確。
卷積網路本質上是一種輸入到輸出的對映,它能夠學習大量的輸入與輸出之間的對映關係,而不需要任何輸入和輸出之間精確的數學表示式,只要用已知的模式對卷積網路加以訓練,網路就具有了輸入與輸出之間的對映能力。
常見的幾種卷積神經網路:(具體參考自
lenet,alexnet,vggnet,googlenet,resnet等。
目前影象處理中在目標檢測領域應用較好的faster r-cnn,分割領域中的mask-rcnn,unet(常用於醫學影象分割)和經典的fcn都是在基礎的卷積神經網路上發展起來的。
fcn(fully convolutional network)全卷積網路與經典的cnn在卷積層之後使用全連線層得到固定長度的特徵向量進行分類不同,fcn可以接受任意尺寸的輸入影象,採用反卷積層對最後乙個卷積層的feature map進行上取樣,使它恢復到與輸入影象相同的尺寸,從而可以對每個畫素都產生乙個**,同時保留了原始輸入影象中的空間資訊,最後在上取樣的特徵圖上進行逐畫素分類。簡單來說,fcn與cnn的區別就在於把cnn最後的全連線層換成卷積層,輸出的是一張已經label好的。
各種網路結構的概念比較龐雜,有的網路結構以某些基礎的網路為基礎,作了層數或是連線方式、取樣等的改進,成為了一種新的網路結構,達到更好的效果。按我自己的理解,我覺得這些網路之間並非能用單純的並列或是包含關係來描述。目前只學到比較淺層的地方,以後再有新的想法再來修正或補充。
語義分割(semantic segmentation),簡單來說就是給定一張,對中的每乙個畫素點進行分類。fcn,unet,segnet,pspnet,和deeplab都屬於語義分割。
目標檢測(object detection),在一張中對所有的目標進行定位,一般會用box標出。(有分類?)
目標識別(object recognition),檢測用box標註出的目標並標註類別。(一般是一類目標)
參考: &
例項分割(instance segmentation),在語義分割的基礎上,還需要區分出同一類不同的個體。
深度學習發展歷程
一 神經元 1943年,心理學家mcculloch和數學家pitts參考了生物神經元的結構,發表了抽象的神經元模型mp。1 結構 神經元模型是乙個包含輸入,輸出與計算功能的模型。輸入可以模擬為神經元 的樹突,而輸出可以模擬為神經元的軸突,計算則可以模擬為細胞核。下圖是乙個典型的神經元模型 包含有3個...
深度學習的學習歷程
我剛入門深度學習的時候,看了各種深度學習相關的資料,花書 cs231n neural networks and deep learning cs224d等等。看來看去,感覺好像什麼都懂了,不就那些模組嗎,conv lstm pooling fc drop out等等,這些模組的公式早就能背得滾瓜爛熟...
Redis學習歷程(一)
字串 redis裡使用的字串又叫做簡易動態字串,其實這裡它這裡的設計與 c 的 string 類有異曲同工之妙。sds先看看 sds 的定義。struct sdshdr 這裡要說的是,sds 遵循 c 字串的定義模式,末尾以空字元結尾,儲存空字元的 1 位元組長度並不計算在 len 屬性裡。擴容與 ...