Trình tự động không thể tìm hiểu các tính năng có ý nghĩa


24

Tôi có 50.000 hình ảnh như hai cái này:

ví dụ dữ liệu ví dụ dữ liệu2

Chúng mô tả đồ thị của dữ liệu. Tôi muốn trích xuất các tính năng từ những hình ảnh này vì vậy tôi đã sử dụng mã tự động mã hóa được cung cấp bởi Theano (deeplearning.net).

Vấn đề là, những bộ tự động này dường như không học được bất kỳ tính năng nào. Tôi đã thử RBM và nó cũng vậy.

Bộ dữ liệu MNIST cung cấp các tính năng hay nhưng dữ liệu của tôi dường như không mang lại kết quả nào. Tôi gửi kèm ví dụ dưới đây:

Các bộ lọc được tạo trên MNIST:

bộ lọc mnist

Các bộ lọc được tạo bằng cách đào tạo về dữ liệu của tôi:

bộ lọc từ dữ liệu của tôi

Tôi đã sử dụng nhiều hoán vị khác nhau của kích thước lớp ẩn và kỷ nguyên đào tạo nhưng kết quả luôn giống nhau.

Tại sao nó không hoạt động? Tại sao không thể tự động trích xuất các tính năng từ những hình ảnh này?

CHỈNH SỬA:

Đối với bất cứ ai có một vấn đề tương tự. Giải pháp thực sự đơn giản và nguyên nhân thực sự ngu ngốc. Tôi chỉ quên nối lại các giá trị pixel từ mã hóa RGB để nổi trong phạm vi 0 - 1.

Thay đổi giá trị giải quyết vấn đề.

Câu trả lời:


15

Gỡ lỗi mạng thần kinh thường liên quan đến việc điều chỉnh các siêu đường kính, trực quan hóa các bộ lọc đã học và vẽ các số liệu quan trọng. Bạn có thể chia sẻ những gì siêu âm bạn đã sử dụng?

  • Cỡ lô của bạn là bao nhiêu?
  • Tỷ lệ học tập của bạn là gì?
  • Có gì loại của autoencoder được bạn đang sử dụng?
  • Bạn đã thử sử dụng Bộ giải mã tự động khử nhiễu chưa? (Những giá trị tham nhũng nào bạn đã thử?)
  • Có bao nhiêu lớp ẩn và có kích thước bao nhiêu?
  • Các kích thước của hình ảnh đầu vào của bạn là gì?

Phân tích nhật ký đào tạo cũng hữu ích. Vẽ đồ thị tổn thất tái thiết của bạn (trục Y) dưới dạng hàm của epoch (trục X). Là mất mát tái thiết của bạn hội tụ hoặc phân kỳ?

Đây là một ví dụ về bộ mã hóa tự động để phân loại giới tính của con người đang phân kỳ, đã bị dừng sau 1500 epoch, đã điều chỉnh siêu âm (trong trường hợp này là giảm tốc độ học tập) và khởi động lại với cùng trọng số đã phân kỳ và cuối cùng được hội tụ.

Đây là một trong đó hội tụ: (chúng tôi muốn điều này)

Vanilla "không bị ràng buộc" có thể gặp phải một vấn đề trong đó họ chỉ đơn giản là tìm hiểu bản đồ nhận dạng. Đó là một trong những lý do tại sao cộng đồng đã tạo ra các hương vị Khử nhiễu, thưa thớt và Tương phản.

Bạn có thể đăng một tập hợp nhỏ dữ liệu của bạn ở đây? Tôi rất sẵn lòng cho bạn xem kết quả từ một trong những bộ tự động của tôi.

Một lưu ý phụ: bạn có thể muốn tự hỏi tại sao bạn lại sử dụng hình ảnh của biểu đồ ở nơi đầu tiên khi những biểu đồ đó có thể dễ dàng được biểu diễn dưới dạng một vectơ dữ liệu. I E,

[0, 13, 15, 11, 2, 9, 6, 5]

Nếu bạn có thể định dạng lại vấn đề như trên, về cơ bản, bạn sẽ làm cho cuộc sống của bộ mã hóa tự động dễ dàng hơn. Trước tiên, bạn không cần phải học cách xem hình ảnh trước khi có thể cố gắng học phân phối tạo.

Theo dõi câu trả lời (đưa ra dữ liệu.)

Dưới đây là các bộ lọc từ 1000 đơn vị ẩn, bộ khử nhiễu tự động một lớp. Lưu ý rằng một số bộ lọc dường như ngẫu nhiên. Đó là bởi vì tôi đã ngừng đào tạo quá sớm và mạng không có thời gian để tìm hiểu các bộ lọc đó.

Dưới đây là các siêu âm mà tôi đã đào tạo nó với:

batch_size = 4
epochs = 100
pretrain_learning_rate = 0.01
finetune_learning_rate = 0.01
corruption_level = 0.2

Tôi đã dừng đào tạo trước sau kỷ nguyên 58 vì các bộ lọc đủ tốt để đăng ở đây. Nếu tôi là bạn, tôi sẽ huấn luyện Bộ giải mã tự động xếp chồng 3 lớp đầy đủ với kiến ​​trúc 1000x1000x1000 để bắt đầu.

Dưới đây là kết quả từ bước tinh chỉnh:

validation error 24.15 percent
test error 24.15 percent

Vì vậy, thoạt nhìn, có vẻ tốt hơn cơ hội, tuy nhiên, khi chúng ta nhìn vào sự cố dữ liệu giữa hai nhãn, chúng ta thấy rằng nó có cùng một tỷ lệ phần trăm (lợi nhuận 75,85% và không có lợi nhuận 24,15%). Vì vậy, điều đó có nghĩa là mạng đã học cách trả lời "có lãi", bất kể tín hiệu là gì. Tôi có thể sẽ đào tạo điều này trong một thời gian dài hơn với một mạng lưới lớn hơn để xem điều gì sẽ xảy ra. Ngoài ra, có vẻ như dữ liệu này được tạo từ một số loại dữ liệu tài chính cơ bản. Tôi khuyên bạn nên xem xét Mạng thần kinh tái phát sau khi cải tổ vấn đề của bạn thành các vectơ như mô tả ở trên. RNN có thể giúp nắm bắt một số phụ thuộc tạm thời được tìm thấy trong dữ liệu thời gian như thế này. Hi vọng điêu nay co ich.


Cỡ lô của tôi là 20. Tỷ lệ học tập được đặt ở mức 0,1. Tôi đã thử hợp đồng và khử nhiễu bộ tự động không thành công. Tôi sử dụng một lớp ẩn. Tôi đã thử mọi thứ từ 50 đến 1000 nơ-ron. Tôi thay đổi hình ảnh thành 25x25 - vì vậy chúng thậm chí còn nhỏ hơn so với mnist. Để biết giá trị của nó, tôi gửi kèm tất cả dữ liệu của mình trong kho lưu trữ này: Bạn có thể cho tôi xem kết quả của bộ tự động và dữ liệu này không?
b93dh44

Kho lưu trữ: mega.co.nz/ Kẻ
b93dh44

OK, tôi đã đào tạo một mạng với dữ liệu đó. Xem chỉnh sửa trong câu trả lời.
sabalaba

Trông thật thú vị. Bạn có thể gửi mã của bạn? Tôi thực sự đánh giá cao nó. Tôi nghĩ rằng tôi có thể có một số lỗi trong mã của tôi ngăn mạng đào tạo. Tôi nhận thấy bạn có giai đoạn tinh chỉnh? Tôi nghĩ bộ tự động mã hóa của tôi chỉ giả bộ mà không có bất kỳ sự hoàn thiện nào. Bạn có thể chỉ cho tôi giải pháp của bạn, nếu bạn không phiền?
b93dh44

Không thể đăng mã của tôi vì đó là công ty của tôi, nhưng tôi có thể chỉ cho bạn hướng dẫn này có mã ví dụ để tạo Bộ giải mã tự động khử nhiễu: deeplearning.net/tutorial/dA.html . Tất cả các lời khuyên siêu tham số sẽ giữ cho mã đó.
sabalaba

3

Tôi không có đủ đại diện để bình luận, vì vậy tôi sẽ đưa ra câu trả lời. Tôi không biết lý do chính xác, tuy nhiên:

  1. Mẫu ở khu vực dưới cùng bên trái trông tương tự như ví dụ thứ hai của bạn và mẫu ở góc dưới bên phải có vẻ rất giống với ví dụ đầu tiên của bạn, khi được kiểm tra chặt chẽ. Câu hỏi là, có bao nhiêu sự đa dạng trong dữ liệu nguồn của bạn? Nếu tất cả 50 000 hình ảnh là các biến thể của cùng một mẫu, 3 bản đồ tính năng có ý nghĩa mà chúng tôi thấy có thể khá đủ để trình tự động giải thích và tái tạo lại tất cả dữ liệu của bạn.

  2. Thứ hai, bạn có thể muốn xem xét lỗi xây dựng lại và hình ảnh được xây dựng lại thực tế. Kết quả tốt như thế nào? Nếu lỗi tái cấu trúc thấp, bạn có thể có biểu hiện quá mức, có thể do các mô tả lại được mô tả bên dưới (hoặc có thể kết hợp cả 3 mẫu này là đủ để mô tả tất cả dữ liệu quan tâm). Mặt khác, bộ mã hóa tự động không thể học cách tái cấu trúc dữ liệu của bạn và bạn cần bộ mã hóa tự động lớn hơn hoặc thuật toán đào tạo tốt hơn.


1. Tôi nghĩ rằng có rất nhiều sự đa dạng trong dữ liệu này. Mỗi một trong số 50.000 biểu đồ này là hơi khác nhau. Tôi nghĩ rằng không thể bộ mã hóa tự động có thể xây dựng lại tất cả chúng chỉ dựa trên 3 bộ lọc. 2. Bất kỳ lời khuyên để ước tính lỗi tái thiết? Mã tôi đang sử dụng cung cấp lỗi nhưng nó thực sự là một con số lớn không cho tôi biết nhiều. Tôi nên so sánh lỗi xây dựng lại với kích thước của đầu vào hoặc số lớp ẩn?
b93dh44
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.