Thông số tự động thưa thớt [Hyper]


8

Tôi mới bắt đầu sử dụng gói autoencoder trong R.

Các đầu vào cho autoencode()hàm bao gồm lambda, beta, rho và epsilon.

Giới hạn cho các giá trị này là gì? Chúng có khác nhau cho từng chức năng kích hoạt không? Có phải các tham số này được gọi là "siêu đường kính"?

Giả sử một bộ mã hóa tự động thưa thớt, rho = .01 có tốt cho chức năng kích hoạt logistic và rho = -. 9 có tốt cho chức năng kích hoạt tiếp tuyến hyperbol không?

Tại sao hướng dẫn đặt epsilon thành 0,001? Nếu tôi nhớ chính xác, "Backpropagation hiệu quả" của LeCun khuyên bạn nên bắt đầu các giá trị không gần bằng không.

Bao nhiêu giá trị "tốt" cho vấn đề beta?

Có "quy tắc ngón tay cái" nào cho việc chọn số lượng nueron trong lớp ẩn không? Ví dụ: nếu các lớp đầu vào có N nút, có hợp lý không khi có 2N nueron trong lớp ẩn?

Bạn có thể giới thiệu một số tài liệu về việc sử dụng thực tế của autoencoder?

Câu trả lời:


10

Các autoencodergói chỉ là một thực hiện các autoencoder được mô tả trong Andrew Ng của ghi chú lớp , mà có thể là một điểm khởi đầu tốt để đọc thêm. Bây giờ, để giải quyết câu hỏi của bạn


Mọi người đôi khi phân biệt giữa các tham số , thuật toán học tự tính toán và siêu đường kính , điều khiển quá trình học tập đó và cần được cung cấp cho thuật toán học tập. Điều quan trọng là phải nhận ra rằng KHÔNG CÓ GIÁ TRỊ TUYỆT VỜI cho các siêu đường kính. Giá trị tối ưu sẽ khác nhau, tùy thuộc vào dữ liệu bạn tạo mô hình: bạn sẽ phải thử chúng trên dữ liệu của mình.

a) Lambda ( ) kiểm soát cách thức các trọng số được cập nhật trong quá trình truyền ngược. Thay vì chỉ cập nhật các trọng số dựa trên sự khác biệt giữa sản lượng của mô hình và sự thật cơ bản), hàm chi phí bao gồm một thuật ngữ phạt các trọng số lớn (thực tế là giá trị bình phương của tất cả các trọng số). Lambda kiểm soát tầm quan trọng tương đối của thời hạn phạt này, có xu hướng kéo trọng lượng về 0 và giúp tránh tình trạng thừa.λ

b) Độ thưa thớt kiểm soát Rho ( và beta ). Rho là kích hoạt dự kiến ​​của một đơn vị ẩn (tính trung bình trên toàn tập huấn luyện). Các đại diện sẽ trở nên thưa thớt và thưa thớt hơn khi nó trở nên nhỏ hơn. Độ thưa thớt này được áp đặt bằng cách điều chỉnh thuật ngữ sai lệch và beta kiểm soát kích thước của các bản cập nhật. (Có vẻ như thực sự chỉ giảm tốc độ học tập chung .)( beta beta alphaρ)(ββα

c) Epsilon ( kiểm soát các giá trị trọng lượng ban đầu, được rút ngẫu nhiên từ .N ( 0 , ε 2 )ϵ)N(0,ϵ2)

Giá trị rho của bạn dường như không hợp lý vì cả hai đều ở gần cuối phạm vi của hàm kích hoạt (0 đến 1 cho logistic, -1 đến 1 cho tanh). Tuy nhiên, điều này rõ ràng phụ thuộc vào mức độ thưa thớt bạn muốn và số lượng đơn vị ẩn bạn sử dụng.


Mối quan tâm lớn của LeCunn với trọng lượng nhỏ rằng bề mặt lỗi trở nên rất phẳng gần gốc tọa độ nếu bạn đang sử dụng sigmoid đối xứng. Ở đâu đó trong bài báo đó, ông khuyên nên khởi tạo với các trọng số được rút ngẫu nhiên từ một phân phối bình thường với giá trị trung bình bằng 0 và độ lệch chuẩn , trong đó là số lượng kết nối mà mỗi đơn vị nhận được. mm1/2m


Có rất nhiều "quy tắc ngón tay cái" để chọn số lượng đơn vị ẩn. Dự đoán ban đầu của bạn (đầu vào 2x) có vẻ phù hợp với hầu hết trong số họ. Điều đó nói rằng, những dự đoán này là phỏng đoán nhiều hơn so với ước tính. Giả sử bạn đã có sức mạnh xử lý, tôi sẽ đứng về phía các đơn vị ẩn hơn, sau đó thực thi độ thưa thớt với giá trị rho thấp.
Một cách sử dụng bộ tạo tự động rõ ràng là tạo ra các biểu diễn tính năng nhỏ gọn hơn cho các thuật toán học tập khác. Một hình ảnh thô có thể có hàng triệu pixel, nhưng bộ mã hóa tự động (thưa thớt) có thể biểu diễn lại nó trong một không gian nhỏ hơn nhiều. Geoff Hinton (và những người khác) đã chỉ ra rằng họ tạo ra các tính năng hữu ích để phân loại tiếp theo. Một số công việc học tập sâu sử dụng bộ điều khiển tự động hoặc tương tự để xử lý trước mạng. Vincent và cộng sự. sử dụng bộ tự động trực tiếp để thực hiện phân loại.

Khả năng tạo các biểu diễn tính năng cô đọng cũng có thể được sử dụng trong các bối cảnh khác. Đây là một dự án nhỏ gọn trong đó các trạng thái do bộ tạo mã tự động được sử dụng để hướng dẫn thuật toán học tăng cường thông qua các trò chơi Atari .

Cuối cùng, người ta cũng có thể sử dụng bộ tự động để tái tạo lại đầu vào ồn ào hoặc xuống cấp, như vậy , đây có thể là một kết thúc hữu ích trong chính nó.


cảm ơn. Vậy làm thế nào đến beta = 6trong autoencodermã ví dụ?
sức mạnh

1
Có vẻ như đó chỉ là một yếu tố tỷ lệ học tập / tỷ lệ. Nếu bạn nhìn vào phương trình 9 của văn bản, cập nhật của một đơn vị được chia tỷ lệ theo alpha, nhưng cập nhật sai lệch được chia tỷ lệ theo . Nếu , thì xu hướng cập nhật nhanh hơn 6 lần ...beta = 6αββ=6
Matt Krause

1
Cảm ơn sự chấp nhận! Tôi đã suy nghĩ về một cái gì đó tương tự cho công việc và thật vui khi viết nó ra. Trong tương lai, bạn có thể gặp may mắn hơn khi hỏi những câu hỏi nhỏ hơn (ví dụ: hỏi về phạm vi, giá trị bắt đầu và các đơn vị ẩn riêng biệt). Mọi người dường như thích câu trả lời họ có thể loại ra trong mười phút.
Matt Krause

Vâng, có ý nghĩa. Đặc biệt nếu bạn chỉ có 10 phút ngừng hoạt động tại nơi làm việc.
sức mạnh

2

Một số câu trả lời của Matt Krause dường như không đúng với tôi (Lambda và Beta), cũng không đề cập đến epsilon. Trên thực tế bài đăng này nên là một bình luận, nhưng tôi đang trả lời câu hỏi vì hạn chế 50 danh tiếng. Hãy bình luận nếu bạn thấy bất kỳ sai lầm.

Từ http://web.stanford.edu/group/archive/cs/cs294a/cs294a.1104/spudeAutoencoder.pdf Lambda là hệ số của thuật ngữ phân rã trọng lượng mà không khuyến khích trọng lượng đạt được giá trị lớn vì nó có thể vượt quá. Thuật ngữ phân rã trọng lượng (hay thuật ngữ chính quy trọng lượng) là một phần của hàm chi phí như thuật ngữ thưa thớt được giải thích dưới đây.

rho là ràng buộc thưa thớt kiểm soát số lượng kích hoạt trung bình trên lớp ẩn. Nó được bao gồm để làm cho bộ mã hóa tự động hoạt động ngay cả với số lượng đơn vị ẩn tương đối lớn đối với các đơn vị đầu vào. Ví dụ: nếu kích thước đầu vào là 100 và kích thước ẩn là 100 hoặc lớn hơn (thậm chí nhỏ hơn nhưng gần bằng 100), thì đầu ra có thể được xây dựng mà không bị mất, vì các đơn vị ẩn có thể tìm hiểu chức năng nhận dạng. Beta là hệ số của thuật ngữ thưa thớt, là một phần của hàm chi phí. Nó kiểm soát tầm quan trọng tương đối của thuật ngữ thưa thớt. Lambda và Beta chỉ định tầm quan trọng tương đối của các điều khoản của chúng trong hàm chi phí.

Epsilon (nếu họ đã sử dụng cùng một ký hiệu với Andrew Ng) là tham số chính quy cho quy trình làm trắng có hiệu ứng bộ lọc thông thấp cho đầu vào. Điều đó có một số tác dụng quan trọng đối với các phương pháp tái thiết. Kiểm tra các liên kết cho rằng theo mô hình dựa trên tái thiết. Tôi nghĩ rằng họ đã sử dụng kích hoạt tuyến tính cho lớp đầu ra và sử dụng một số loại làm trắng (tính năng đơn biến).

Cập nhật tốc độ của các tham số (trọng số và độ lệch) được gọi là tốc độ học tập và được biểu thị bằng eta nói chung. Tuy nhiên, nó đã được sử dụng dưới dạng alpha bởi Andrew Ng. Kiểm tra liên kết đầu tiên.


Bạn nói đúng - Tôi đã không rõ ràng về lambda và làm cho nó nghe hơi giống với tỷ lệ học tập chung. Tôi hy vọng chỉnh sửa giúp. Tôi nghĩ rằng ký hiệu có phần khác nhau đối với epsilon. Cả ghi chú và mã đều cho thấy đó là độ lệch chuẩn của các giá trị ban đầu, được rút ra từ N (0, ). ϵ2
Matt Krause
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.