1.簡述人工智慧、機器學習和深度學習三者的聯繫與區別。 人工智慧:機器學習和深度學習都是屬於一個領域的一個子集。但是人工智慧是機器學習的首要範疇。機器學習是深度學習的首要範疇。 機器學習:是人工智慧的子領域,也是人工智慧的核心。它包括了幾乎所有對世界影響最大的方法(包括深度學習)。機器學習理論主要是 ...
1.簡述人工智慧、機器學習和深度學習三者的聯繫與區別。
人工智慧:機器學習和深度學習都是屬於一個領域的一個子集。但是人工智慧是機器學習的首要範疇。機器學習是深度學習的首要範疇。
機器學習:是人工智慧的子領域,也是人工智慧的核心。它包括了幾乎所有對世界影響最大的方法(包括深度學習)。機器學習理論主要是設計和分析一些讓電腦可以自動學習的演算法。
深度學習:屬於機器學習的子類。利用深度神經網路來解決特征表達的一種學習過程
深度學習是機器學習的一個子集,機器學習是人工智慧的一個子集
2. 全連接神經網路與捲積神經網路的聯繫與區別。
聯繫:
除了結構相似,捲積神經網路的輸入輸出以及訓練的流程和全連接神經網路也基本一致,以圖像分類為列,捲積神經網路的輸入層就是圖像的原始圖像,而輸出層中的每一個節點代表了不同類別的可信度。這和全連接神經網路的輸入輸出是一致的。
區別:
每一次feature map的輸入過來必須都得是一定的大小(即與權重矩陣正好可以相乘的大小),所以網路最開始的輸入圖像尺寸必須固定,才能保證傳送到全連接層的feature map的大小跟全連接層的權重矩陣匹配。
捲積層就不需要固定大小了,因為它只是對局部區域進行視窗滑動
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