1.簡述人工智能、機器學習和深度學習三者的聯繫與區別。python
人工智能:機器學習和深度學習都是屬於一個領域的一個子集。可是人工智能是機器學習的首要範疇。機器學習是深度學習的首要範疇。git
機器學習:是人工智能的子領域,也是人工智能的核心。它包括了幾乎全部對世界影響最大的方法(包括深度學習)。機器學習理論主要是設計和分析一些讓計算機能夠自動學習的算法。算法
深度學習:屬於機器學習的子類。利用深度神經網絡來解決特徵表達的一種學習過程網絡
深度學習是機器學習的一個子集,機器學習是人工智能的一個子集機器學習
2. 全鏈接神經網絡與卷積神經網絡的聯繫與區別。學習
聯繫:人工智能
除告終構類似,卷積神經網絡的輸入輸出以及訓練的流程和全鏈接神經網絡也基本一致,以圖像分類爲列,卷積神經網絡的輸入層就是圖像的原始圖像,而輸出層中的每個節點表明了不一樣類別的可信度。這和全鏈接神經網絡的輸入輸出是一致的。spa
區別:設計
每一次feature map的輸入過來必須都得是必定的大小(即與權重矩陣正好能夠相乘的大小),因此網絡最開始的輸入圖像尺寸必須固定,才能保證傳送到全鏈接層的feature map的大小跟全鏈接層的權重矩陣匹配。3d
卷積層就不須要固定大小了,由於它只是對局部區域進行窗口滑動
3.理解卷積計算。
以digit0爲例,進行手工演算。
from sklearn.datasets import load_digits #小數據集8*8
digits = load_digits()
4.理解卷積如何提取圖像特徵。
讀取一個圖像;
如下矩陣爲卷積核進行卷積操做;
顯示卷積以後的圖像,觀察提取到什麼特徵。
1 | 0 | -1 |
1 | 0 | -1 |
1 | 0 | -1 |
1 | 1 | 1 |
0 | 0 | 0 |
-1 | -1 | -1 |
-1 | -1 | -1 |
-1 | 8 | -1 |
-1 | -1 | -1 |
卷積API
scipy.signal.convolve2d
tf.keras.layers.Conv2D
from PIL import Image from pylab import * from scipy.signal import convolve2d a=np.array([[-1,0,1],[-2,0,2],[-1,0,1]]) b=np.array([[1,1,1],[0,0,0],[-1,-1,-1]]) c=np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]]) im = array(Image.open("raicho.jpg").convert('L')) imshow(im) cat0=convolve2d(im,a,boundary='symm',mode='same') cat1=convolve2d(im,b,boundary='symm',mode='same') cat2=convolve2d(im,c,boundary='symm',mode='same') imshow(cat0) imshow(cat1) imshow(cat2)
5. 安裝Tensorflow,keras