Tôi đang sử dụng hai tri giác đa lớp (MLP) 3 lớp. Với cùng một dữ liệu đầu vào (14 nơ ron đầu vào), tôi thực hiện một phân loại (đúng / sai) và một hồi quy (nếu đúng, "bao nhiêu"). Cho đến thời điểm hiện tại, tôi đã lười biếng sử dụng Matlabs patternnet và fitnet . Thật may mắn, vì tôi đã không dành thời gian để thực sự hiểu chuyện gì đang xảy ra - và tôi nên làm vậy. Hơn nữa, tôi cần thực hiện chuyển đổi sang thư viện OSS (có thể là FANN), điều đó có thể sẽ yêu cầu thiết lập thủ công nhiều hơn so với Hộp công cụ Matlab NN. Do đó, tôi đang cố gắng để hiểu chính xác hơn những gì đang diễn ra.
Các mạng được tạo bởi patternnet
và fitnet
gần như giống hệt nhau: 14 nơ ron đầu vào, 11 nơ ron ẩn, 1 nơ ron đích (2 cho fitnet
, nhưng chỉ có 1 mẩu thông tin). Nhưng, chúng không hoàn toàn giống nhau. Sự khác biệt theo mặc định là:
- Matlab sử dụng một backpropagation gradient liên hợp tỷ lệ cho mạng phân loại (
patternnet
) và backpropagation Levenberg-Marquest cho mạng hồi quy (fitnet
). - Mạng phân loại sử dụng hàm truyền sigmoid tiếp tuyến hyperbolic giữa lớp đầu vào và lớp ẩn và giữa lớp ẩn và lớp đầu ra. Mạng hồi quy (
fitnet
) sử dụng hàm truyền sigmoid tiếp tuyến Hyperbolic giữa lớp đầu vào và lớp ẩn và hàm truyền tuyến tính thuần túy giữa lớp ẩn và lớp đầu ra.
Những sự khác biệt đó có nên không?
Loại hàm backpropagation nào là tối ưu để phân loại, và loại nào cho hồi quy, và tại sao?
Loại hàm truyền nào là tối ưu để phân loại, và loại nào cho hồi quy, và tại sao?
¹ Việc phân loại là dành cho "mây" hay "đám mây miễn phí" (2 mục tiêu bổ sung), hồi quy là để định lượng "bao nhiêu đám mây" (1 mục tiêu).