Mô tả trực quan để đào tạo LSTM (với cổng quên / lổ nhìn trộm)?


9

Tôi là một sinh viên CS (nhưng tôi không biết nhiều về AI, mặc dù không tham gia khóa học nào về nó và chắc chắn không có gì về NN cho đến gần đây), người sắp làm một dự án trường học về AI, vì vậy tôi chọn một chủ đề liên quan cảm ứng ngữ pháp (của ngôn ngữ không ngữ cảnh và có lẽ một số tập hợp con của ngôn ngữ nhạy cảm ngữ cảnh) sử dụng học tập củng cố trên mạng lưới thần kinh. Tôi bắt đầu nghiên cứu cách tiếp cận thành công trước đó để xem liệu chúng có thể được điều chỉnh hay không, và bây giờ tôi đang cố gắng hiểu cách tiếp cận bằng cách học có giám sát với Bộ nhớ dài hạn. Tôi đang đọc "Học cách quên: Dự đoán liên tục với LSTM". Tôi cũng đang đọc bài báo về lổ nhìn trộm, nhưng nó thậm chí còn phức tạp hơn và tôi chỉ đang thử một cái gì đó đơn giản hơn trước. Tôi nghĩ rằng tôi nhận được chính xác làm thế nào các tế bào bộ nhớ và cấu trúc liên kết mạng hoạt động. Những gì tôi không nhận được ngay bây giờ là thuật toán đào tạo. Vì vậy, tôi có một số câu hỏi để hỏi:

  • Làm thế nào chính xác để đầu vào khác nhau được phân biệt? Rõ ràng mạng không được thiết lập lại sau mỗi đầu vào và không có ký hiệu đặc biệt để phân định đầu vào khác nhau. Có phải mạng chỉ nhận được một chuỗi liên tục mà không có bất kỳ manh mối nào về nơi kết thúc đầu vào và chuỗi tiếp theo bắt đầu?

  • Độ trễ thời gian giữa đầu vào và đầu ra mục tiêu tương ứng là gì? Chắc chắn một số lượng thời gian trễ là bắt buộc, và do đó, mạng không bao giờ có thể được đào tạo để có được đầu ra mục tiêu từ đầu vào mà nó không có đủ thời gian để xử lý. Nếu đó không phải là ngữ pháp Reber đã được sử dụng, nhưng một thứ phức tạp hơn có khả năng cần nhiều thông tin hơn để được lưu trữ và truy xuất, lượng thời gian cần để truy cập thông tin có thể thay đổi tùy thuộc vào đầu vào, điều gì đó có lẽ không thể dự đoán được trong khi chúng tôi quyết định độ trễ thời gian để làm đào tạo.

  • Có một lời giải thích trực quan hơn về thuật toán đào tạo? Tôi cảm thấy khó khăn để tìm ra những gì đang diễn ra đằng sau tất cả các công thức phức tạp và tôi sẽ cần phải hiểu nó bởi vì tôi cần phải điều chỉnh nó thành một thuật toán học tăng cường sau này.

  • Ngoài ra, bài báo đã không đề cập bất cứ điều gì liên quan đến dữ liệu đào tạo ồn ào . Tôi đã đọc ở một nơi khác rằng mạng có thể xử lý dữ liệu thử nghiệm rất ồn. Bạn có biết nếu LSTM có thể xử lý tình huống trong đó dữ liệu đào tạo có một số cơ hội bị hỏng / bị treo với thông tin không cần thiết không?


3
Đây là một câu hỏi rất lớn có thể khiến một số độc giả sợ hãi. Tôi đề nghị chia nó thành nhiều phần (có lẽ mỗi điểm đạn của bạn). Ngoài ra, chủ đề này kết nối Khoa học Máy tínhXác thực chéo ; bạn có thể cân nhắc hỏi về các khía cạnh liên quan đến CS nhiều hơn ở đây trên Khoa học máy tính và các câu hỏi liên quan đến thống kê nhiều hơn về Xác thực chéo (nhưng vui lòng không đăng cùng một câu hỏi trên cả hai trang web).
Gilles 'SO- đừng trở nên xấu xa'

một số tài liệu tham khảo có thể hỗ trợ bạn: lstm.iupr.com/files nntutorial-lstm.pdf trên trang đó có thể giúp ích đặc biệt ở đây
Brian Jack

Tái bút: ai đó có thể giải mã các epsilon và deltas trong phần phụ lục có thể xuống một cái gì đó tôi có thể hiểu chỉ với phép tính năm đầu tiên không?
Brian Jack

tại thời điểm này tôi đang tránh backprop cho một thuật toán đào tạo tiến hóa / đột biến chỉ vì tính toán cho backprop trông hơi đáng sợ. Tôi đã thử một vấn đề dự đoán văn bản thử nghiệm nhỏ với backpropMinus lstm ở PyBrain nhưng nó gặp khó khăn khi hội tụ ngay cả khi chỉ có một chuỗi đầu vào 3 ký tự - đào tạo đột biến và loại bỏ thể lực (trên MSE về lỗi đầu ra so với dân số đào tạo) có thể cho phép nhiều hơn phân tích khu vực tìm kiếm sáng tạo
Brian Jack

Câu trả lời:


1

LSTM được thiết kế để xử lý một luồng các khối dữ liệu (mỗi khối là tập hợp đầu vào cho mạng tại thời điểm này) đến theo thời gian và quan sát các tính năng xảy ra trong dữ liệu và mang lại kết quả đầu ra. Độ trễ thời gian (độ trễ) giữa sự xuất hiện của các tính năng để nhận biết có thể khác nhau và có thể được kéo dài.

Sau đó, người ta sẽ huấn luyện mạng bằng cách truyền các ví dụ đào tạo theo thứ tự ngẫu nhiên, cũng sẽ có một số nhiễu timeshift được thêm vào dưới dạng không tải (có kích hoạt mạng khi đầu vào ở giá trị nhàn rỗi, ví dụ: khi không có âm thanh trong trường hợp phát biểu bộ xử lý) [ngoại lệ: nếu bất kỳ dữ liệu đào tạo nào phải tuân theo các mẫu chuyển đổi thời gian định kỳ như âm nhạc thì tiếng ồn chuyển đổi thời gian sẽ được đồng bộ hóa chuyển đổi thời gian, ví dụ: trong âm nhạc đảm bảo một ví dụ đào tạo bắt đầu đo lường không được chuyển sang giữa chừng và vì vậy ra]

Cũng có thể có một thiết lập bán giám sát trong đó mạng luôn ở trong cấu hình đào tạo và nó được đào tạo với các ví dụ dự kiến ​​đầu ra của một giá trị nhàn rỗi khi không có hình ảnh hoặc giá trị dự kiến ​​phù hợp khi một tính năng được trình bày để đào tạo).

Nếu đào tạo định dạng phản hồi là mong muốn, nó có thể được mô phỏng bởi:

  1. lưu trạng thái nội bộ (thời gian t)
  2. kích hoạt mạng trên các đầu vào hiện tại (hiện tại t + 1)
  3. quá trình giám sát đánh giá đầu ra thu được tại t
    • 3a nếu cần chỉnh sửa trước tiên hãy tua lại trạng thái đã lưu (tua lại mạng trở lại t)
    • 3b tạo ra một ví dụ đào tạo với sự điều chỉnh
    • 3c chạy một chuyến tàu (backprop) cho lát này thay vì kích hoạt

do đó, người ta thực hiện một hệ thống kiểu phản hồi vì các ví dụ đào tạo về cơ bản chỉ được tạo ra trong khi mạng "đang hiểu sai". Định dạng phản hồi rất hữu ích nếu một người muốn mạng thử ứng biến (như ví dụ âm nhạc của Schmidhuber).

  • cần chỉ ra rằng một phần của phản hồi điều chỉnh (và do đó, ví dụ đào tạo) nhất thiết phải bao gồm những phần thực thi đầu ra có giá trị nhàn rỗi khi các tính năng không có mặt tại thời điểm hiện tại

OP đã đề cập rằng [không có sự phân tách đầu vào] ngoại trừ thực tế là có. Nếu người ta nghĩ về một kịch bản nhận dạng giọng nói, người ta có những khoảng thời gian phát âm (tính năng mà LSTM sẽ phát hiện) xen kẽ với khoảng thời gian dài im lặng. Vì vậy, để giải quyết mối quan tâm, thật công bằng khi nói rằng những khoảng thời gian im lặng đó thực tế là tách các nhóm đầu vào được giải trình tự (những khoảng im lặng đó thực sự là một tính năng mà mạng cần phát hiện và học cách đáp ứng với đầu ra có giá trị nhàn rỗi, ví dụ: học cách làm không có gì khi im lặng).

Một lưu ý về việc đặt lại mạng

Bất kỳ thiết lập lại hoặc gọi lại trạng thái mạng đã lưu theo nghĩa LSTM đều có nghĩa là "quay ngược thời gian", do đó hoàn tác bất kỳ việc học LSTM nào được thực hiện trước khi thiết lập lại.

Do đó, bạn đã đúng khi nêu các LSTM không được thiết lập lại trước mỗi mẫu đào tạo cũng như không phải là kỷ nguyên. Các LSTM muốn dữ liệu của họ được truyền phát hoặc được cung cấp theo cách 'trực tuyến', có thể nói là như vậy.

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.