Drop out là gì và cấu trúc cụm từ drop out trong câu tiếng anh

      12

*
Trong bài viết này, mình xin phép reviews về Dropout (Bỏ học) vào mạng Neural, tiếp nối là mình sẽ có 1 số đoạn code để xem Dropout tác động thế làm sao đến công suất của mạng Neural.

Bạn đang xem: Drop out là gì và cấu trúc cụm từ drop out trong câu tiếng anh

1. Lý thuyết

1.1. Dropout trong mạng Neural là gì

Theo Wikipedia -Thuật ngữ "Dropout" đề cập đến việc bỏ qua các đơn vị (units) ẩn với hiện trong một mạng Neural.

Hiểu một cách đơn giản thì Dropout là câu hỏi bỏ qua các đơn vị (tức là 1 trong những nút mạng) trong quy trình đào tạo một cách ngẫu nhiên. Bằng vấn đề bỏ qua này thì đơn vị chức năng đó sẽ không còn được chăm chú trong quá trình forward và backward.Theo đó, phường được hotline là phần trăm giữ lại 1 nút mạng trong những giai đoạn huấn luyện, vì thế xác suất nó bị loại bỏ là (1 - p).

1.2. Tại sao lại yêu cầu Dropout

Câu hỏi là: lý do phải tắt một số nút mạng theo như đúng nghĩa black trong quy trình huấn luyện ?
Câu vấn đáp là: Tránh học tủ (Over-fitting)

Nếu 1 lớp fully connected có vô số tham số với chiếm phần đông tham số, những nút mạng vào lớp đó quá phụ thuộc vào lẫn nhau trong quá trình huấn luyện thì đang hạn chế sức mạnh của mỗi nút, dẫn mang đến việc kết hợp quá mức.

1.3. Những kỹ thuật khác

Nếu bạn muốn biết Dropout là gì, thì chỉ 2 phần kim chỉ nan phía bên trên là đủ. Ở phần này bản thân cũng ra mắt 1 số kỹ thuật tất cả cùng tác dụng với Dropout.

Trong Machine Learning, việc chính quy hóa (regularization) đang làm sút over-fitting bằng phương pháp thêm 1 khoảng tầm giá trị "phạt" vào hàm loss. Bằng phương pháp thêm 1 quý giá như vậy, quy mô của các bạn sẽ không học không ít sự phụ thuộc giữa những trọng số. Có lẽ rằng nhiều bạn đã biết đến Logistic Regression thì đều biết đến L1 (Laplacian) cùng L2 (Gaussian) là 2 nghệ thuật "phạt".

Quá trình training:Đối với mỗi lớp ẩn, từng example, mỗi vòng lặp, ta sẽ bỏ học 1 cách ngẫu nhiên với tỷ lệ (1 - p) cho từng nút mạng.

Quá trình test:Sử dụng toàn bộ các kích hoạt, cơ mà sẽ giảm sút 1 hệ số p. (để tính cho các kích hoạt bị vứt học).

Xem thêm: Tìm hiểu sự khác nhau giữa "parfum" và "perfume", eau de toilette là gì

*

1.4. Một số nhận xét

Dropout sẽ tiến hành học thêm các tính năng khỏe khoắn hữu ích
Nó gần như tăng gấp hai số epochs quan trọng để hội tụ. Tuy nhiên, thời gian cho mỗi epoch là ít hơn.Ta có H đơn vị chức năng ẩn, với phần trăm bỏ học cho mỗi đơn vị là (1 - p) thì ta rất có thể có 2^H mô hình có thể có. Nhưng mà trong giai đoạn test, toàn bộ các nút mạng nên được xét đến, với mỗi activation sẽ sụt giảm 1 hệ số p.2. Thực hành

Nói thì hơi cực nhọc hiểu, đề nghị mình đang code 2 phần để thấy Dropout là như vậy nào.

Đặt vấn đề: các bạn đi coi 1 trận đấu bóng đá và chúng ta thử dự đoán xem thủ môn bớt vào vị trí nào thì ước thủ nhà tiến công đầu được quả bóng.

Mình import những thư viện bắt buộc thiết

# import packagesimport numpy as npimport matplotlib.pyplot as pltfrom reg_utils import sigmoid, relu, plot_decision_boundary, initialize_parameters, load_2D_dataset, predict_decfrom reg_utils import compute_cost, predict, forward_propagation, backward_propagation, update_parametersimport sklearnimport sklearn.datasetsimport scipy.iofrom test
Cases import *%matplotlib inlineplt.rc
Params<"figure.figsize"> = (7.0, 4.0) # phối default kích cỡ of plotsplt.rc
Params<"image.interpolation"> = "nearest"plt.rc
Params<"image.cmap"> = "gray"Visualize dữ liệu 1 chút

train_X, train_Y, test_X, test_Y = load_2D_dataset()Ta được kết quả

*

Dấu chấm đỏ là mong thủ nhà đã có lần đánh đầu, chấm xanh là mong thủ bạn đánh đầu. Việc bọn họ là dự đoán xem thủ môn đề nghị sút láng vào khu vực nào để mong thủ nhà tấn công đầu được. Nhìn có vẻ như như chỉ việc kẻ 1 con đường thẳng để phân loại 2 khu vực là được.

2.1. Mô hình không tồn tại chính quy hóa

def model(X, Y, learning_rate = 0.3, num_iterations = 30000, print_cost = True): """ thực hiện mạng cùng với 3 layer: LINEAR->RELU->LINEAR->RELU->LINEAR->SIGMOID. Tham số: X -- dữ liệu đầu vào, size (input size, number of examples) Y -- 1 vector (1 là chấm xanh / 0 là chấm đỏ), form size (output size, number of examples) learning_rate -- xác suất học num_iterations -- Số epochs print_cost -- giả dụ là True, in ra coss cho từng 10000 vòng lặp Returns: parameters -- Tham số học tập được, được dùng để dự đoán """ grads = costs = <> # to lớn keep track of the cost m = X.shape<1> # number of examples layers_dims = , 20, 3, 1> # Initialize parameters ttmn.mobi. Parameters = initialize_parameters(layers_dims) # Loop (gradient descent) for i in range(0, num_iterations): # Forward propagation: LINEAR -> RELU -> LINEAR -> RELU -> LINEAR -> SIGMOID. A3, cache = forward_propagation(X, parameters) # Cost function cost = compute_cost(a3, Y) grads = backward_propagation(X, Y, cache) # Update parameters. Parameters = update_parameters(parameters, grads, learning_rate) # Print the loss every 10000 iterations if print_cost và i % 10000 == 0: print("Cost after iteration : ".format(i, cost)) if print_cost & i % 1000 == 0: costs.append(cost) # plot the cost plt.plot(costs) plt.ylabel("cost") plt.xlabel("iterations (x1,000)") plt.title("Learning rate =" + str(learning_rate)) plt.show() return parameters
Hàm dự đoán

print("On the training set:")predictions_train = predict(train_X, train_Y, parameters)print("On the chạy thử set:")predictions_test = predict(test_X, test_Y, parameters)Xem kết quả

Cost after iteration 0: 0.6557412523481002Cost after iteration 10000: 0.16329987525724216Cost after iteration 20000: 0.13851642423255986...On the training set:Accuracy: 0.947867298578On the test set:Accuracy: 0.915

*

Có thể thấy độ đúng đắn ở tập training là 94% và tập demo là 91% (khá cao). Ta sẽ visualize 1 chút

*

Khi không tồn tại chính quy hóa, ta thấy đường phân chia vẽ rất đưa ra tiết, có nghĩa là nó vẫn over-fitting.

2.2. Quy mô chính quy hóa với Dropout

2.2.1. Quy trình Forward Propagation

def forward_propagation_with_dropout(X, parameters, keep_prob=0.5): """ xúc tiến 3 layer: LINEAR -> RELU + DROPOUT -> LINEAR -> RELU + DROPOUT -> LINEAR -> SIGMOID. Arguments: X -- dữ liệu đầu vào, kích thước (2, number of examples) parameters -- những đối số họ có "W1", "b1", "W2", "b2", "W3", "b3": W1 -- weight matrix of shape (20, 2) b1 -- bias vector of shape (20, 1) W2 -- weight matrix of shape (3, 20) b2 -- bias vector of shape (3, 1) W3 -- weight matrix of shape (1, 3) b3 -- bias vector of shape (1, 1) keep_prob - phần trăm giữ lại 1 unit Returns: A3 -- giá bán trị cổng output mô hình, size (1,1) cache -- lưu các đối số nhằm tính bỏ phần Backward Propagation """ np.random.seed(1) # retrieve parameters W1 = parameters<"W1"> b1 = parameters<"b1"> W2 = parameters<"W2"> b2 = parameters<"b2"> W3 = parameters<"W3"> b3 = parameters<"b3"> # LINEAR -> RELU -> LINEAR -> RELU -> LINEAR -> SIGMOID Z1 = np.dot(W1, X) + b1 A1 = relu(Z1) ### START CODE HERE ### (approx. 4 lines) # Steps 1-4 below correspond lớn the Steps 1-4 described above. D1 = np.random.rand(A1.shape<0>, A1.shape<1>) # Step 1: khởi tạo hốt nhiên 1 ma trận kích thước bằng form size A1, quý hiếm (0, 1) D1 = D1

2.2.2. Quy trình Backward Propagation

def backward_propagation_with_dropout(X, Y, cache, keep_prob): các đối số: X -- tài liệu đầu vào, size (2, number of examples) Y -- kích cỡ (output size, number of examples) cache -- lưu đầu ra của forward_propagation_with_dropout() keep_prob - như forward Returns: gradients -- Đạo hàm của toàn bộ các weight, activation """ m = X.shape<1> (Z1, D1, A1, W1, b1, Z2, D2, A2, W2, b2, Z3, A3, W3, b3) = cache d
Z3 = A3 - Y d
W3 = 1. / m * np.dot(d
Z3, A2.T) db3 = 1. / m * np.sum(d
Z3, axis=1, keepdims=True) d
A2 = np.dot(W3.T, d
Z3) ### START CODE HERE ### (≈ 2 lines of code) d
A2 = d
A2 * D2 # Step 1: Áp dụng D2 nhằm tắt những unit khớp ứng với forward d
A2 = d
A2 / keep_prob # Step 2: ưu đãi giảm giá trị 1 hệ số keep_prob ### end CODE HERE ### d
Z2 = np.multiply(d
A2, np.int64(A2 > 0)) d
W2 = 1. / m * np.dot(d
Z2, A1.T) db2 = 1. / m * np.sum(d
Z2, axis=1, keepdims=True) d
A1 = np.dot(W2.T, d
Z2) ### START CODE HERE ### (≈ 2 lines of code) d
A1 = d
A1 * D1 d
A1 = d
A1 / keep_prob ### over CODE HERE ### d
Z1 = np.multiply(d
A1, np.int64(A1 > 0)) d
W1 = 1. / m * np.dot(d
Z1, X.T) db1 = 1. / m * np.sum(d
Z1, axis=1, keepdims=True) gradients = "d
Z3": d
Z3, "d
W3": d
W3, "db3": db3,"d
A2": d
A2, "d
Z2": d
Z2, "d
W2": d
W2, "db2": db2, "d
A1": d
A1, "d
Z1": d
Z1, "d
W1": d
W1, "db1": db1 return gradients
Sau khi gồm Forward và Backward, ta gắng 2 hàm này vào hàm model của phần trước:

parameters = model(train_X, train_Y, keep_prob=0.86, learning_rate=0.3)print("On the train set:")predictions_train = predict(train_X, train_Y, parameters)print("On the chạy thử set:")predictions_test = predict(test_X, test_Y, parameters)Kết quả:

*

Ta thấy, độ chính xác trong tập chạy thử đã lên tới 95%, mặc dù tập training bị giảm.Thực hiện tại visualize:

plt.title("Model with dropout")axes = plt.gca()axes.set_xlim(<-0.75, 0.40>)axes.set_ylim(<-0.75, 0.65>)plot_decision_boundary(lambda x: predict_dec(parameters, x.T), train_X, train_Y)Ta được

*

Ta thấy mặt đường phân chia không thật chi tiết, đề xuất đã tránh khỏi over-fitting.

2.3. Chú ý

Không cần sử dụng Dropout cho quy trình testÁp dụng Dropout cho tất cả quá trình Forward cùng Backward
Giá trị kích hoạt phải giảm xuống 1 thông số keep_prob, tính cả cho những nút bỏ học.Tham khảo

Medium

to not bởi vì something that you were going to lớn do, or to lớn stop doing something before you have completely finished:
 

Muốn học tập thêm?

Nâng cao vốn từ vựng của bạn với English Vocabulary in Use từ bỏ ttmn.mobi.Học những từ chúng ta cần tiếp xúc một bí quyết tự tin.


Some bidders are rumoured to have dropped out because of the cost of putting the company back on its feet.
alumno que no completa los estudiosalumna que no completa los estudios, marginadomarginada, desertor/ora escolar
*

said when you are frightened to do something again because you had an unpleasant experience doing it the first time

Về câu hỏi này
*

*

*

cách tân và phát triển Phát triển tự điển API Tra cứu bằng phương pháp nháy đúp chuột các tiện ích tìm kiếm dữ liệu cấp phép
trình làng Giới thiệu kĩ năng truy cập ttmn.mobi English ttmn.mobi University Press làm chủ Sự chấp thuận bộ lưu trữ và Riêng bốn Corpus Các lao lý sử dụng
*

English (UK) English (US) Español Español (Latinoamérica) Русский Português Deutsch Français Italiano 中文 (简体) 正體中文 (繁體) Polski 한국어 Türkçe 日本語 giờ Việt
Tiếng Anh Từ điển Người học Tiếng Anh Anh Essential Tiếng Anh Mỹ Essential
English–Dutch Tiếng Hà Lan–Tiếng Anh Tiếng Anh–Tiếng Pháp Tiếng Pháp–Tiếng Anh Tiếng Anh–Tiếng Đức Tiếng Đức–Tiếng Anh Tiếng Anh–Tiếng Indonesia Tiếng Indonesia–Tiếng Anh Tiếng Anh–Tiếng Ý Tiếng Ý-Tiếng Anh Tiếng Anh–Tiếng Nhật Tiếng Nhật-Tiếng Anh Tiếng Anh–Tiếng cha Lan Tiếng bố Lan-Tiếng Anh Tiếng Anh–Tiếng Bồ Đào Nha Tiếng Bồ Đào Nha-Tiếng Anh Tiếng Anh–Tiếng Tây Ban Nha Tiếng Tây Ban Nha–Tiếng Anh
Tiếng Anh–Tiếng Ả Rập Tiếng Anh–Tiếng Catalan Tiếng Anh–Tiếng Trung Quốc (Giản Thể) Tiếng Anh–Tiếng Trung Quốc (Phồn Thể) Tiếng Anh–Tiếng Séc Tiếng Anh–Tiếng Đan Mạch Tiếng Anh–Tiếng Hàn Quốc Tiếng Anh–Tiếng Malay Tiếng Anh–Tiếng na Uy Tiếng Anh–Tiếng Nga Tiếng Anh–Tiếng Thái Tiếng Anh–Tiếng Thổ Nhĩ Kỳ English–Ukrainian Tiếng Anh–Tiếng Việt
English (UK) English (US) Español Español (Latinoamérica) Русский Português Deutsch Français Italiano 中文 (简体) 正體中文 (繁體) Polski 한국어 Türkçe 日本語