MLP là một loại mạng nơ-ron nhân tạo (ANN). MLP đơn giản nhất bao gồm ít nhất ba lớp nút: lớp đầu vào, lớp ẩn và lớp đầu ra.
Ảnh của Robina Weermeijer trên Unsplash
Trong thế giới của học sâu, TensorFlow, Keras, Bộ công cụ nhận thức của Microsoft (CNTK) và PyTorch rất phổ biến. Hầu hết chúng ta có thể không nhận ra rằng thư viện học máy rất phổ biến Scikit-learning cũng có khả năng tạo mô hình học sâu cơ bản. Trong bài viết này, tôi sẽ thảo luận về các lĩnh vực của tính khả thi của mô hình học sâu trong Scikit-learning và những hạn chế. Hơn nữa, tôi sẽ thảo luận về việc triển khai thực hành với hai ví dụ.
Điểm nổi bật điển hình nổi bật của Multilayer Perceptron ( MLP ) trong Scikit-learning
- Không có chức năng kích hoạt trong lớp đầu ra.
- Đối với các tình huống hồi quy, sai số bình phương là hàm mất mát và entropy chéo là hàm mất mát cho phân loại
- Nó có thể hoạt động với hồi quy giá trị mục tiêu cũng như đơn lẻ.
- Không giống như các gói phổ biến khác, Keras thích việc triển khai MLP trong Scikit không hỗ trợ GPU.
- Chúng tôi không thể tinh chỉnh các thông số như các chức năng kích hoạt khác nhau, bộ khởi tạo trọng lượng, v.v. cho mỗi lớp.
Bước 1: Trong gói Scikit-Learn, MLPRegressor được triển khai trong mô-đun neural_network. Chúng tôi sẽ nhập các mô-đun khác như “train_test_split” để chia tập dữ liệu thành tập huấn luyện và huấn luyện để kiểm tra mô hình, “fetch_california_housing” để lấy dữ liệu và “StandardScaler” để chia tỷ lệ dữ liệu vì các tính năng khác nhau (biến độc lập) có giá trị rộng thang đo phạm vi. Điều rất quan trọng là mở rộng quy mô dữ liệu được sử dụng để đào tạo mô hình.
Bạn hoàn toàn có thể khám phá thêm về những tỷ suất khác nhau trong bài viết Tỷ lệ tính năng – Hiệu ứng của những bộ chia tỷ suất Scikit-Learn khác nhau : Lặn sâu
"""Import the required modules"""
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import train_test_split
from sklearn.datasets import fetch_california_housing
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import r2_score
import pandas as pd
cal_housing = fetch_california_housing()
X = pd.DataFrame(cal_housing.data,columns=cal_housing.feature_names)
y = cal_housing.target
X_train, X_test, y_train, y_test = train_test_split(X, y,random_state=1, test_size=0.2)
sc_X = StandardScaler()
X_trainscaled=sc_X.fit_transform(X_train)
X_testscaled=sc_X.transform(X_test)
reg = MLPRegressor(hidden_layer_sizes=(64,64,64),activation="relu" ,random_state=1, max_iter=2000).fit(X_trainscaled, y_train)
Bước 5 : Trong đoạn mã dưới đây, quy mô đã giảng dạy được sử dụng để Dự kiến những giá trị đích của tập tài liệu thử nghiệm dành riêng, mà quy mô này chưa từng thấy trước đây .
y_pred=reg.predict(X_testscaled)
print("The Score with ", (r2_score(y_pred, y_test))
Chúng ta đã thấy một ví dụ về hồi quy. Tiếp theo, tất cả chúng ta sẽ đi qua một ví dụ phân loại. Trong Scikit-learning, “ MLPClassifier ” có sẵn cho những trường hợp phân loại Multilayer Perceptron ( MLP ) .
Bước 1: Giống như mọi khi, chúng tôi sẽ nhập các mô-đun mà chúng tôi sẽ sử dụng trong ví dụ. Chúng tôi sẽ sử dụng cơ sở dữ liệu Iris và MLPClassifierfrom cho ví dụ phân loại.
from sklearn.datasets import load_iris
from sklearn.neural_network import MLPClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScaler
import pandas as pd
from sklearn.metrics import plot_confusion_matrix
import matplotlib.pyplot as plt
iris_data = load_iris()
X = pd.DataFrame(iris_data.data, columns=iris_data.feature_names)
y = iris_data.target
X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=1, test_size=0.2)
sc_X = StandardScaler()
X_trainscaled=sc_X.fit_transform(X_train)
X_testscaled=sc_X.transform(X_test)
clf = MLPClassifier(hidden_layer_sizes=(256,128,64,32),activation="relu",random_state=1).fit(X_trainscaled, y_train)
y_pred=clf.predict(X_testscaled)
print(clf.score(X_testscaled, y_test))
Bạn hoàn toàn có thể đọc thêm về nguyên do tất cả chúng ta nên sử dụng ma trận nhầm lẫn để nhìn nhận độ đúng chuẩn của quy mô phân loại trong “ Trực quan hóa độ đúng mực : Thuật toán phân loại học máy được giám sát ” .
Bước 5 : Chúng tôi sẽ vẽ một ma trận nhầm lẫn để hiểu những phân loại được triển khai không đúng mực bởi quy mô .
fig=plot_confusion_matrix(clf, X_testscaled, y_test,display_labels=["Setosa","Versicolor","Virginica"])
fig.figure_.suptitle("Confusion Matrix for Iris Dataset")
plt.show()
Kết luận : Chúng ta có thể thực hiện mô hình phân loại và hồi quy deep learning đơn giản trong Scikit-learning. Theo quan điểm của tôi, nó không phù hợp với bất kỳ mô hình quy mô lớn ngoài đời thực nào vì không có hỗ trợ GPU và các tùy chọn rất hạn chế để tinh chỉnh các thông số.
Bạn trọn vẹn hoàn toàn có thể mày mò thêm về kỹ thuật hình ảnh hóa học sâu trong bài viết Hình ảnh hóa độ đúng mực trong học tập sâu
Source: https://swing.com.vn
Category: Wiki