Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Mạng nơron đầu tiên
Trong bài tập này, chúng ta sẽ huấn luyện mạng nơron nhỏ đầu tiên.
Mạng nơron sẽ cung cấp cho chúng ta cách tìm hiểu các mô hình phi tuyến tính mà không cần
việc sử dụng nhiều tính năng rõ ràng.
Nhiệm vụ 1: Mô hình như trên kết hợp hai tính năng đầu vào thành một
nơron đơn nhân. Mô hình này có học được bất kỳ hành vi phi tuyến tính nào không? Hãy chạy mã này để xác nhận
đoán.
Nhiệm vụ 2: Thử tăng số lượng nơron trong lớp ẩn từ
1 sang 2, đồng thời thử thay đổi từ kích hoạt Tuyến tính sang kích hoạt phi tuyến tính
như ReLU. Bạn có thể tạo một mô hình có thể tìm hiểu các phi tuyến tính không? Mô hình có thể
dữ liệu một cách hiệu quả?
Nhiệm vụ 3: Thử tăng số lượng nơron trong lớp ẩn từ
2 đến 3, sử dụng kích hoạt phi tuyến tính như ReLU. Công cụ này có thể lập mô hình dữ liệu không
một cách hiệu quả? Chất lượng mô hình khác nhau như thế nào giữa các lần chạy?
Nhiệm vụ 4: Tiếp tục thử nghiệm bằng cách thêm hoặc xóa các lớp ẩn
và nơron trên mỗi lớp. Bạn cũng có thể thay đổi tốc độ học tập,
điều chỉnh tần suất cũng như các chế độ học khác. Quảng cáo nhỏ nhất là gì
số lượng nơron và lớp bạn có thể sử dụng để gây ra tổn thất kiểm thử
từ 0,177 trở xuống?
Việc tăng kích thước mô hình có cải thiện sự phù hợp hay tốc độ hội tụ của mô hình không?
Sự thay đổi này có thay đổi tần suất chuyển đổi thành một mô hình tốt không? Ví dụ: hãy thử
cấu trúc sau:
Lớp ẩn đầu tiên có 3 nơron.
Lớp ẩn thứ hai có 3 nơron.
Lớp ẩn thứ ba có 2 nơron.
(Câu trả lời sẽ xuất hiện ngay bên dưới bài tập).
Nhấp vào biểu tượng dấu cộng để xem câu trả lời cho Nhiệm vụ 1.
Trạng thái Kích hoạt được đặt thành Tuyến tính nên mô hình này không thể học
bất kỳ phi tuyến tính nào. Tổn thất rất cao và chúng tôi nói rằng mô hình quần áo
dữ liệu.
Nhấp vào biểu tượng dấu cộng để xem câu trả lời cho Nhiệm vụ 2.
Hàm kích hoạt phi tuyến có thể tìm hiểu các mô hình phi tuyến. Tuy nhiên,
một lớp ẩn có 2 nơron không thể phản ánh tất cả các tính phi tuyến tính trong
tập dữ liệu này và sẽ có mức tổn thất cao ngay cả khi không bị nhiễu: nó vẫn
không áp dụng đúng dữ liệu. Đây là những bài tập không nhất định, vì vậy, một số bài tập chạy
sẽ không học được mô hình hiệu quả, trong khi các lần chạy khác sẽ hoạt động khá tốt.
Mô hình tốt nhất có thể không có hình dạng như bạn mong đợi!
Nhấp vào biểu tượng dấu cộng để xem câu trả lời cho Nhiệm vụ 3.
Bài tập này thể hiện rõ bản chất bất định của Playground. Đáp
một lớp ẩn có 3 nơron là đủ để lập mô hình tập dữ liệu (không có
nhiễu), nhưng không phải tất cả các lần chạy sẽ đều quy về một mô hình tốt.
3 nơron là đủ vì hàm XOR có thể được biểu thị dưới dạng sự kết hợp của 3 nửa mặt phẳng (kích hoạt ReLU). Bạn có thể thấy điều này khi xem
hình ảnh nơron cho thấy kết quả của từng nơron. Mô hình tốt
với 3 nơron và kích hoạt ReLU, sẽ có 1 hình ảnh có
đường thẳng đứng, phát hiện X1 có giá trị dương (hoặc âm; dấu này có thể
chuyển đổi), 1 hình ảnh có một đường gần như nằm ngang, phát hiện dấu hiệu
X2 và 1 hình ảnh có một đường chéo, phát hiện
tương tác.
Tuy nhiên, không phải tất cả các lần chạy đều quy về một mô hình tốt. Một số lần chạy sẽ không
tốt hơn mô hình có 2 nơron và bạn có thể thấy các nơron trùng lặp trong
trường hợp.
Nhấp vào biểu tượng dấu cộng để xem câu trả lời cho Nhiệm vụ 4.
Một lớp ẩn có 3 nơron có thể lập mô hình dữ liệu, nhưng không có
dư thừa, vì vậy, khi chạy nhiều lần, nó sẽ mất đi nơron và không học được
mô hình tốt. Một lớp có nhiều hơn 3 nơron có khả năng dự phòng cao hơn và
do đó có nhiều khả năng hội tụ thành một mô hình tốt hơn.
Như chúng ta đã thấy, một lớp ẩn duy nhất chỉ có 2 nơron không thể mô hình hoá dữ liệu
tốt. Nếu thử, bạn có thể thấy rằng tất cả các mục trong lớp đầu ra
chỉ có thể là các hình dạng bao gồm các đường từ hai nút đó. Trong trường hợp này,
mạng sâu hơn có thể lập mô hình tập dữ liệu tốt hơn so với lớp ẩn đầu tiên một mình:
nơron đơn lẻ trong lớp thứ hai có thể mô hình hoá các hình dạng phức tạp hơn, như
góc phần tư phía trên bên phải, bằng cách kết hợp các nơron trong lớp đầu tiên. Trong khi thêm nội dung đó
lớp ẩn thứ hai vẫn có thể mô hình hoá tập dữ liệu tốt hơn lớp ẩn đầu tiên
chỉ có lớp riêng, có thể sẽ hợp lý hơn nếu thêm nhiều nút vào lớp đầu tiên để
hãy để các dòng khác là một phần của bộ công cụ mà từ đó lớp thứ hai tạo
hình dạng.
Tuy nhiên, một mô hình có 1 nơron trong lớp ẩn đầu tiên không thể học được
mô hình này bất kể độ sâu của mô hình đó. Điều này là do dữ liệu đầu ra của
chỉ thay đổi theo một chiều (thường là một đường chéo), vốn không phải là
đủ để lập mô hình tập dữ liệu này một cách hiệu quả. Các lớp sau không thể bù đắp cho điều này, không
phức tạp đến mức nào; thông tin trong dữ liệu đầu vào không thể khôi phục được
thua.
Điều gì sẽ xảy ra nếu thay vì cố gắng có một mạng nhỏ, chúng tôi có nhiều lớp với
rất nhiều nơron, cho một bài toán đơn giản như thế này không? Như chúng ta đã thấy, đầu tiên
sẽ có khả năng thử nhiều độ dốc của đường khác nhau. Và thứ hai
lớp sẽ có khả năng tích luỹ chúng thành nhiều hình dạng khác nhau,
với rất nhiều hình dạng cho qua các lớp tiếp theo.
Bằng cách cho phép mô hình xem xét nhiều hình dạng khác nhau thông qua rất nhiều
nơron ẩn khác nhau, bạn đã tạo đủ không gian để mô hình bắt đầu
dễ dàng điều chỉnh bổ sung tiếng ồn trong tập huấn luyện, cho phép
để phù hợp với kết quả của dữ liệu huấn luyện thay vì
thông tin thực tế khái quát. Trong ví dụ này, mô hình lớn hơn có thể có
để khớp với các điểm dữ liệu chính xác. Trong các trường hợp nghiêm trọng, mô hình lớn
có thể học một đảo xung quanh một điểm nhiễu sóng riêng lẻ, được gọi là
ghi nhớ dữ liệu. Bằng cách cho phép mô hình lớn hơn rất nhiều, bạn sẽ
thấy rằng nó thực sự thường hoạt động tệ hơn mô hình đơn giản hơn với
đủ nơron để giải quyết vấn đề.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2024-08-22 UTC."],[[["This exercise explores training a neural network to learn nonlinearities and model data effectively."],["Increasing the number of neurons and using nonlinear activation functions like ReLU improves model performance."],["A single hidden layer with 3 neurons using ReLU can sufficiently model the data, but model quality varies between runs."],["Deeper and wider networks risk overfitting, potentially memorizing noise instead of generalizing patterns."],["While adding layers can improve model performance, redundant layers and neurons might lead to worse results compared to a simpler, well-structured model."]]],[]]