Trang Chủ Tài chính Cá nhân ĐấU tranh với Overfitting trong Học máy - núm vú

ĐấU tranh với Overfitting trong Học máy - núm vú

Mục lục:

Video: 16. Learning: Support Vector Machines 2025

Video: 16. Learning: Support Vector Machines 2025
Anonim

Với cấu trúc mạng nơron, bạn có thể tưởng tượng thuật toán có thể học hầu như bất cứ điều gì từ dữ liệu một cách dễ dàng, đặc biệt nếu bạn thêm vào quá nhiều lớp. Trên thực tế, thuật toán thực hiện tốt các dự đoán của nó thường bị ảnh hưởng bởi một biến thể ước lượng cao được gọi là overfitting. Việc sử dụng quá mức làm cho mạng nơ ron học được mọi chi tiết của các ví dụ huấn luyện, làm cho nó có thể lặp lại chúng trong giai đoạn dự đoán. Nhưng ngoài bộ đào tạo, nó sẽ không bao giờ chính xác dự đoán bất cứ điều gì khác nhau.

Trước tiên, bạn cẩn thận phân chia dữ liệu của bạn thành các tập huấn, xác nhận và thử nghiệm. Trước khi thuật toán học được từ dữ liệu, bạn phải đánh giá sự tốt đẹp của các tham số của bạn: kiến ​​trúc (số lớp và các nút trong chúng); chức năng kích hoạt; tham số học tập; và số lần lặp. Đặc biệt, kiến ​​trúc cung cấp những cơ hội tuyệt vời để tạo ra các mô hình tiên đoán mạnh mẽ có nguy cơ bị overfitting cao. Tham số học tập kiểm soát tốc độ mạng học được từ dữ liệu, nhưng nó có thể không đủ để ngăn ngừa việc overfitting dữ liệu huấn luyện.

Giải pháp đầu tiên là

regularisation

, như trong hồi quy tuyến tính và hậu cần. Bạn có thể tổng hợp tất cả các hệ số kết nối, bình phương hoặc giá trị tuyệt đối, để phạt các mô hình có quá nhiều hệ số với các giá trị cao (đạt được bằng cách lập biểu L2) hoặc với các giá trị khác với số không (đạt được bằng cách định chuẩn L1).

  • Giải pháp thứ hai cũng hiệu quả vì nó kiểm soát khi quá tải. Nó được gọi là early-stop và hoạt động bằng cách kiểm tra chức năng chi phí trên bộ xác nhận khi thuật toán học được từ tập huấn luyện.
  • Bạn có thể không nhận ra khi mô hình của bạn bắt đầu quá mức. Chức năng chi phí được tính bằng cách sử dụng tập huấn luyện tiếp tục được cải thiện khi quá trình tối ưu hóa tiến triển. Tuy nhiên, ngay khi bạn bắt đầu ghi lại tiếng ồn từ dữ liệu và ngừng học tập các quy tắc chung, bạn có thể kiểm tra chức năng chi phí trên mẫu ngoài (ví dụ xác nhận). Tại một số điểm, bạn sẽ nhận thấy rằng nó ngừng cải tiến và bắt đầu xấu đi, có nghĩa là mô hình của bạn đã đạt đến giới hạn học tập. Mở hộp đen của mạng thần kinh
Cách tốt nhất để học làm thế nào để xây dựng mạng thần kinh là xây dựng một mạng lưới thần kinh. Python cung cấp một sự giàu có của sự triển khai có thể cho mạng nơ-ron và học tập sâu. Python có các thư viện như Theano, cho phép tính toán phức tạp ở mức độ trừu tượng, và các gói thực hành hơn, chẳng hạn như Lasagne, cho phép bạn xây dựng mạng nơron, mặc dù nó vẫn đòi hỏi một số trừu tượng. Vì lý do này, bạn cần các bộ bao gói, chẳng hạn như nolearn, tương thích với scikit-learn, hoặc Keras, cũng có thể bao bọc thư viện TensorFlow do Google phát hành và có tiềm năng để thay thế Theano như một thư viện phần mềm để tính toán thần kinh.

R cung cấp cho các thư viện ít phức tạp hơn và dễ tiếp cận hơn, chẳng hạn như nnet, AMORE, và neuralnet. Các ví dụ ngắn gọn trong R thể hiện cách đào tạo cả mạng phân loại (trên bộ dữ liệu Iris) và mạng hồi quy (trên bộ dữ liệu của Boston). Bắt đầu từ phân loại, đoạn mã sau nạp bộ dữ liệu và chia thành tập huấn luyện và kiểm tra:

thư viện (mạng thần kinh)

mục tiêu <- mô hình. matrix (~ Species & # x00A0; - 1, data = iris)

colnames (target) <- c (setosa, versicolor, virginica). hạt giống (101)

chỉ số <- mẫu (1: nrow (iris), 100)

train_predictors <- iris [index, 1: 4]

test_predictors <- iris [-index, 1: 4]

Bởi vì các mạng nơ-ron dựa vào gradient xuôi, bạn cần chuẩn hóa hoặc chuẩn hóa các đầu vào. Bình thường hóa tốt hơn để tối thiểu là 0 và tối đa là một cho mỗi tính năng. Đương nhiên, bạn học làm thế nào để thực hiện chuyển đổi số bằng cách sử dụng tập huấn luyện chỉ để tránh bất kỳ cơ hội sử dụng thông tin từ bài kiểm tra ngoài mẫu.

min_vector <- áp dụng (train_predictors, 2, min)

range_vector <- áp dụng (train_predictors, 2, max) -

apply (train_predictors, 2, min)

train_scaled <- cbind (scale (( min_vector, range_vector),

min_vector, range_vector),

target [chỉ mục,])

test_scaled <- cbind (quy mô (test_predictors,

min_vector, range_vector),

mục tiêu [-index] summary (train_scaled)

Khi tập huấn luyện đã sẵn sàng, bạn có thể huấn luyện mô hình để đoán ba biến nhị phân, với mỗi biến thể đại diện cho một lớp học. Đầu ra là một giá trị cho mỗi loại tỷ lệ với xác suất của nó là lớp thực. Bạn chọn một dự đoán bằng cách lấy giá trị cao nhất. Bạn cũng có thể hình dung mạng lưới bằng cách sử dụng lô nội bộ và do đó nhìn thấy kiến ​​trúc mạng thần kinh và trọng lượng được giao.

thiết lập. Hạt giống (102)

nn_iris <- Mạng lưới thần kinh (setosa + versicolor + virginica ~ Sepal) + Chiều dài + cánh hoa rộng dữ liệu = train_scaled, hidden = c (9)>

tuyến tính

tuyến tính

dự đoán <- tính toán (nn_iris, test_scaled [1: 4])

y_predicted <- áp dụng (dự đoán $ net. kết quả, 1, tối đa)

y_true <- áp dụng (test_scaled [5: 7], 1, tối đa)

confusion_matrix <- bảng (y_true, y_predicted)

chính xác <- tổng (

print (confusion_matrix)

print (paste ("Độ chính xác:", độ chính xác))

Bạn có thể vẽ một mạng nơron được huấn luyện.

Ví dụ sau minh họa cách dự đoán giá trị của nhà ở Boston, sử dụng bộ dữ liệu Boston. Thủ tục cũng giống như trong phân loại trước, nhưng ở đây bạn có một đơn vị đầu ra duy nhất. Mã cũng vẽ kết quả dự đoán của bộ test với các giá trị thực để xác minh sự phù hợp tốt của mô hình.

các thành phần <- nrow (Boston)

<- colnames (Boston)

. (9)>

, 2, min)

range_vector <- áp dụng (đào tạo, 2, tối đa) - áp dụng (đào tạo, 2, phút)

scaled_train <- scale (tàu, min_vector, range_vector)

scaled_test <- scale kiểm tra, min_vector, range_vector)

công thức = dán ("medv ~", dán (các tính năng [1: 13], collapse = '&';))

nn_boston <- neuralnet (công thức, dữ liệu = hidden = c (5, 3), tuyến tính = = 999 dự đoán <- tính (nn_boston, scaled_test [1: 13])

predicted_values ​​<- (dự đoán $ net. kết quả *

range_vector [14]) + min_vector [14]

RMSE <- sqrt (trung bình ((kiểm tra [14] - predicted_values) ^ 2))

in (dán ("RMSE: RMSE))

lô (test [14], predicted_values, cex = 1. 5)

abline (0, 1, lwd = 1)

ĐấU tranh với Overfitting trong Học máy - núm vú

Lựa chọn của người biên tập

Quản trị mạng: Làm thế nào Các Tác vụ DHCP - núm vú

Quản trị mạng: Làm thế nào Các Tác vụ DHCP - núm vú

Bạn có thể cấu hình và sử dụng Dynamic Host Configuration Protocol (DHCP) các chi tiết về cách cấu hình máy khách DHCP thực sự hoạt động. Tuy nhiên, sự hiểu biết cơ bản về quá trình này có thể giúp bạn hiểu được DHCP thực sự đang làm gì. Sự hiểu biết này không chỉ đơn giản là sáng tỏ, mà nó còn có thể giúp ích khi bạn đang khắc phục sự cố DHCP. Các

Quản trị mạng: Cấu hình FTP - núm vú

Quản trị mạng: Cấu hình FTP - núm vú

Bạn cấu hình vsftpd mặc dù tệp cấu hình có tên vsftpd. conf, nằm trong / etc. Mặc định vsftpd. conf được hiển thị như sau. Bạn có thể học hỏi rất nhiều về cách vsftpd hoạt động đơn giản bằng cách đọc qua tập tin cấu hình này. Vsftpd. conf File # Ví dụ tập tin cấu hình / etc / vsftpd. conf # # Mặc định biên soạn trong các cài đặt khá paranoid. ...

Quản trị mạng: Cài đặt và Cấu hình Máy chủ DHCP - núm vú

Quản trị mạng: Cài đặt và Cấu hình Máy chủ DHCP - núm vú

Các bước chính xác mà bạn nên làm khi cấu hình và quản lý máy chủ DHCP (Dynamic Host Configuration Protocol) tùy thuộc vào hệ điều hành mạng mà bạn đang sử dụng. Các thủ tục sau đây cho bạn thấy làm thế nào để làm việc với một máy chủ DHCP trong Windows Server 2008. Thủ tục cho các hệ điều hành khác cũng tương tự. Để cài đặt DHCP ...

Lựa chọn của người biên tập

Các công cụ để trò chuyện với cộng đồng trực tuyến của bạn - những người có núm vú

Các công cụ để trò chuyện với cộng đồng trực tuyến của bạn - những người có núm vú

Cuộc trò chuyện trực tiếp rất có giá trị để phát triển cộng đồng trực tuyến của bạn và tạo sự tin tưởng giữa bạn, công ty bạn làm việc, và những người tạo nên cộng đồng của bạn. Xin lưu ý rằng những buổi này đòi hỏi một chút cam kết vì bạn phải quảng bá sự kiện, mời cộng đồng và kiểm duyệt cuộc trò chuyện. Ở đó ...

Theo dõi ý tưởng Blog của bạn với Evernote - núm vú

Theo dõi ý tưởng Blog của bạn với Evernote - núm vú

Nếu bảng nội thất làm bằng tay hoặc một trên Pinterest dường như không hấp dẫn, hãy thử Evernote để thu thập các mặt hàng cho bảng thiết kế blog. Evernote là một chương trình giúp bạn dễ dàng lưu trữ các bài viết, hình ảnh và thậm chí các bản ghi âm của riêng bạn ở một nơi. Evernote cũng có một ứng dụng mạnh mẽ cho điện thoại thông minh.

Theo dõi Các liên kết liên kết để cải thiện mẹ Blog Sales - núm vú

Theo dõi Các liên kết liên kết để cải thiện mẹ Blog Sales - núm vú

Sub-ID, SID, bit của văn bản mà bạn có thể thêm vào hầu hết các liên kết liên kết sẽ được theo dõi trong quá trình bán hàng. Khi bạn bắt đầu thiết lập được bằng cách sử dụng các liên kết liên kết, bạn sẽ thấy các trường hợp mà bạn muốn biết chi tiết hơn về cách bán hàng diễn ra như thế nào. Đặc biệt nếu bạn sử dụng

Lựa chọn của người biên tập

Tránh Hacks với Linux Test Tools - núm vú

Tránh Hacks với Linux Test Tools - núm vú

Bạn có thể sử dụng nhiều công cụ an ninh UNIX để kiểm tra các hệ thống Linux của bạn . Một số tốt hơn nhiều so với những người khác. Dù bằng cách nào, bạn cần phải có biện pháp chống lại tin tặc và kiểm tra hệ thống của bạn! Các công cụ thương mại dựa trên Windows dường như làm tốt công việc như bất kỳ. Một số mục yêu thích như sau: Bộ công cụ BackTrack Linux trên một đĩa CD có khả năng khởi động ...

Banner Grabs có thể cho một Hacker Thông tin để tấn công E-mail - núm vú

Banner Grabs có thể cho một Hacker Thông tin để tấn công E-mail - núm vú

Khi hacker một máy chủ e-mail, một đơn hàng đầu tiên của hacker đang thực hiện một banner cơ bản để xem liệu anh ta có thể phát hiện được phần mềm máy chủ thư điện tử nào đang chạy. Đây là một trong những bài kiểm tra quan trọng nhất để tìm ra thế giới biết về máy chủ SMTP, POP3 và IMAP của bạn. Thu thập thông tin Bạn có thể ...

Các Thiết lập Mạng Mac cơ bản - núm vú

Các Thiết lập Mạng Mac cơ bản - núm vú

Hầu hết các thiết lập mạng trên hệ điều hành OS X của Mac đều tự động. Nếu bạn muốn, bạn có thể xem và thay đổi cài đặt mạng mặc định bằng cách làm theo các bước sau: