Dropout Là Gì

1. Dropout là gì, nó có ý nghĩa sâu sắc gì vào mạng neural network

Theo Wikipedia, thuật ngữ “dropout” đề cập đến sự việc bỏ qua những đơn vị (unit) (cả hai hidden unit với visible unit) trong mạng neural network.

Bạn đang xem: Dropout là gì

Bạn đã xem: Dropout là gì

Hiểu đối kháng thuần là, trong mạng neural network, chuyên môn dropout là bài toán tất cả bọn họ sẽ bỏ lỡ một vài ba unit vào suốt quá trình train vào quy mô, số đông unit bị bỏ lỡ được lựa chọn ngẫu nhiên. Ở đây, tất cả chúng ta hiểu “ bỏ qua – ignoring ” là unit đó sẽ không tham gia và đóng góp thêm phần vào quy trình giảng dạy và huấn luyện ( Viral tiến và Viral ngược ) .

Về mặt kỹ thuật, trên mỗi quá trình huấn luyện, từng node có xác suất bị làm lơ là 1-p và tỷ lệ được lựa chọn là p


2. Sản xuất sao bọn họ cần dropout2. Tạo ra sao tất cả chúng ta cần dropoutGiả sử rằng bạn hiểu trọn vẹn hồ hết gì đang nói ở chỗ 1, thắc mắc đặt ra là vì sao tất cả chúng ta cần mang lại dropout, nguyên nhân tất cả chúng ta cần phải vô hiệu một vài đông đảo unit nào đó trong mạng neural network ?

Câu trả lời cho thắc mắc này là để phòng over-fitting

Khi vớ cả chúng ta sử dụng full connected layer, những neural sẽ phụ thuộc vào “ táo tợn ” cho nhau trong suốt quy trình huấn luyện và giảng dạy, vấn đề đó làm giảm sức mạng cho mỗi neural và dẫn đến bị over-fitting tập train .3. Dropout3. DropoutĐọc đến đây, bạn đã sở hữu một có mang cơ bản về dropout và động lực – động cơ để tất cả bọn họ sử dụng nó. Nếu khách hàng chỉ mong muốn có ánh nhìn tổng quan tiền về dropout trong neural network, nhì sections bên trên đã cung ứng vừa đủ thông tin cho bạn, chúng ta hoàn toàn rất có thể dừng tại đây. Phần tiếp theo, vớ cả họ sẽ nói kỹ rộng về phương diện kỹ thuật của dropout .Trước đây, trong machine learning, fan ta thường thực hiện regularization nhằm ngăng chặn over-fititng. Regularization làm sút over-fitting bằng phương pháp thêm nhân tố “ phát ” vào hàm độ lỗi ( loss function ). Bằng câu hỏi thêm vào điểm phạt này, đồ sộ được giảng dạy và đào tạo để giúp đỡ những features weights giảm đi sự phụ thuộc vào lẫn nhau. Đối với những ai đó đã sử dụng Logistic Regression rồi thì vẫn không không quen với thuật ngữ phạt L1 ( Laplacian ) cùng L2 ( Gaussian ) .Dropout là 1 trong những kỹ thuật khác, một cách tiếp cận khác nhằm regularization trong mạng neural netwoks .Kỹ thuật dropout được xúc tiến như sau :


Trong trộn train: với từng hidden layer, với mỗi trainning sample, với những lần lặp, chọn tình cờ p tỷ lệ số node và làm lơ nó (bỏ qua luôn hàm kích hoạt cho các node bị bỏ qua).

Xem thêm: Morocco Danh Sách Cầu Thủ Đội Tuyển Bóng Đá Maroc, Đội Tuyển Bóng Đá Quốc Gia Maroc

Trong pha test: Sử dụng cục bộ activations, nhưng bớt chúng với xác suất p (do họ bị miss p% hàm activation trong quá trình train).

*
Mô tả về kiến trúc mạng gồm và không tồn tại dropout4. Một số đặc điểm rút ra được khi giảng dạy nhiều tế bào hình khác biệt sử dụng dropout4. Một trong những đặc thù đúc rút được khi đào tạo và giảng dạy và đào tạo nhiều quy mô khác biệt sử dụng dropout

Dropout ép mạng neural bắt buộc tìm ra nhiều robust features hơn, với điểm lưu ý là chúng đề nghị hữu ích hơn, tốt hơn, ngon hơn khi kết phù hợp với nhiều neuron khác.


Dropout yên ước phải gấp đôi quy trình đào tạo để đạt được sự quy tụ. Tuy nhiên, thời hạn đào tạo và giảng dạy và đào tạo cho từng epoch sẽ thấp hơn .Với H unit trong quy mô, từng unit đều phải có xác xuất bị bỏ dở hoặc được chọn, vớ cả họ sẽ bao gồm 2 ^ H quy mô hoàn toàn hoàn toàn có thể có. Trong trộn test, một loạt network được thực hiện và từng hàm activation được giảm xuống với thông số p .5. Thực nghiệm vào keras5. Thực nghiệm vào kerasNhững yếu đuối tố nói trên chỉ là triết lý. Hiện thời tất cả chúng ta sẽ hợp tác vào làm trong thực tiễn. Để xem thử dropout hoạt động giải trí như vậy nào, vớ cả họ sẽ thiết kế xây dựng bài bản deep net áp dụng keras và sử dụng tập dữ liệu cifar-10. Mô hình tất cả họ kiến thiết xây dựng gồm 3 hidden layer với size lần lượt là 64, 128, 256 và 1 full connected layer có kích thước 512 và output layer có size 10 ( bởi vì mình gồm 10 lớp ) .Chúng ta áp dụng hàm kích hoạt là ReLU trên đa số hidden layer và sử dụng hàm sigmoid trên đầu ra layer. Thực hiện hàm lỗi categorical cross-entropy .Trong ngôi trường hợp đồ sộ có thực hiện dropout, tất cả họ sẽ mix dropout ở cục bộ những layer và thay đổi tỷ suất dropout nằm trong vòng chừng trường đoản cú 0.0 đến 0.9 với cách nhảy là 0.1 .Mô hình cài đặt với số epochs là 20. Ban đầu xem như thế nào .Đầu tiên, tất cả bọn họ sẽ load một vài tủ sách thiết yếuimport numpy as npimport osimport kerasfrom keras.datasets import cifar10from keras.models import Sequentialfrom keras.layers import Dense, Dropout, Activation, Flattenfrom keras.layers import Convolution2D, MaxPooling2Dfrom keras.optimizers import SGDfrom keras.utils import np_utilsfrom keras.preprocessing.image import ImageDataGeneratorimport matplotlib.pyplot as pltfrom pylab import rcParamsrcParams = 20, đôi mươi from keras.datasets import cifar10 ( X_train, y_train ), ( X_test, y_test ) = cifar10. Load_data ( ) print ( ” Training data : ” ) print ( ” Number of examples : “, X_train. Shape ) print ( ” Number of channels : “, X_train. Shape ) print ( ” Image kích cỡ : “, X_train. Shape , X_train. Shape , X_train. Shape ) print ( ” chạy thử data : ” ) print ( ” Number of examples : “, X_test. Shape ) print ( ” Number of channels : “, X_test. Shape ) print ( ” Image kích cỡ : “, X_test. Shape , X_test. Shape , X_test. Shape ) Kết quảTraining data : Number of examples : 50000N umber of channels : 3I mage kích cỡ : 32 32 3T est data : Number of examples : 10000N umber of channels : 3I mage kích cỡ : 32 32 3C húng ta tất cả 50000 hình train, và 10000 hình test. Mỗi hình là một ảnh RGB có size 33×32 x3 px .

*
dataset cifar 10Tiếp theo, vớ cả họ sẽ chuẩn chỉnh hoá tài liệu. Đây là một bước quan trọng đặc biệt trước khi huấn luyện và giảng dạy quy mô

# In:Specify Training ParametersbatchSize = 512 #– Training Batch Sizenum_classes = 10 #– Number of classes in CIFAR-10 datasetnum_epochs = 100 #– Number of epochs for training learningRate= 0.001 #– Learning rate for the networklr_weight_decay = 0.95 #– Learning weight decay. Reduce the learn rate by 0.95 after epochimg_rows, img_cols = 32, 32 #– input đầu vào image dimensionsY_train = np_utils.to_categorical(y_train, num_classes)Y_test = np_utils.to_categorical(y_test, num_classes)batchSize = 512 #– Training Batch Sizenum_classes = 10 #– Number of classes in CIFAR-10 datasetnum_epochs = 100 #– Number of epochs for training learningRate= 0.001 #– Learning rate for the networklr_weight_decay = 0.95 #– Learning weight decay. Reduce the learn rate by 0.95 after epochimg_rows, img_cols = 32, 32 #– input image dimensionsY_train = np_utils.to_categorical(y_train, num_classes)Y_test = np_utils.to_categorical(y_test, num_classes)# In:VGGnet-10from keras.layers import Conv2Dimport copyresult = y = loss = acc = dropouts = for dropout in dropouts: print(“Dropout: “, (dropout)) model = Sequential() #– layer 1 model.add(Conv2D(64, (3, 3), border_mode=”valid”, input_shape=( img_rows, img_cols,3))) model.add(Dropout(dropout)) model.add(Conv2D(64, (3, 3))) model.add(Dropout(dropout)) model.add(Activation(“relu”)) model.add(MaxPooling2D(pool_size=(2, 2))) ##–layer 2 model.add(Conv2D(128, (3, 3))) model.add(Dropout(dropout)) model.add(Activation(“relu”)) model.add(MaxPooling2D(pool_size=(2, 2))) ##–layer 3 model.add(Conv2D(256, (3, 3))) model.add(Dropout(dropout)) model.add(Activation(“relu”)) model.add(MaxPooling2D(pool_size=(2, 2))) ##– layer 4 model.add(Flatten()) model.add(Dense(512)) model.add(Activation(“relu”)) #– layer 5 model.add(Dense(num_classes)) #– loss model.add(Activation(“softmax”)) sgd = SGD(lr=learningRate, decay = lr_weight_decay) model.compile(loss=”categorical_crossentropy”, optimizer=”sgd”, metrics=) model_cce = model.fit(X_train, Y_train, batch_size=batchSize, epochs=20, verbose=1, shuffle=True, validation_data=(X_test, Y_test)) score = model.evaluate(X_test, Y_test, verbose=0) y = model.predict(X_test) print(“Test score:”, score) print(“Test accuracy:”, score) result = copy.deepcopy(model_cce.history) loss.append(score) acc.append(score)# In: plot dropout import numpy as np import matplotlib.pyplot as pltwidth = 0.1plt.bar(dropouts, acc, width, align=”center”)plt.tick_params(axis=”both”, which=”major”, labelsize=35)plt.tick_params(axis=”both”, which=”minor”, labelsize=35)plt.ylabel(“Accuracy”,size = 30)plt.xlabel(“Dropout”, form size = 30)plt.show()# In: plot non drop outimport numpy as np import matplotlib.pyplot as pltwidth = 0.1plt.bar(dropouts, loss, width, align=”center”,color = “green”)plt.tick_params(axis=”both”, which=”major”, labelsize=35)plt.tick_params(axis=”both”, which=”minor”, labelsize=35)plt.ylabel(“Loss”,size = 30)plt.xlabel(“Dropout”, size = 30)plt.show()

*
Kết quả