Câu hỏi khi tiến từ mạng thần kinh Vanilla sang mạng thần kinh tái phát


8

Gần đây tôi đã biết được một mạng lưới thần kinh vanilla sẽ hoạt động như thế nào, với số lượng đầu vào, các nút ẩn và cùng số lượng đầu ra như đầu vào.

Bây giờ tôi đã xem các bài đăng khác nhau liên quan đến mạng thần kinh tái phát và tôi hiểu khái niệm đằng sau nó, nhưng tôi không hiểu được một số phần logic của RNN.

Đây là bốn câu hỏi chính tôi có:

  1. Làm thế nào để lan truyền ngược làm việc trong mạng lưới thần kinh tái phát?
  2. Các trọng số dẫn từ đầu vào đến các nút ẩn có giống nhau cho mọi bước khác không? Điều gì về trọng lượng từ các nút ẩn đến đầu ra?
  3. Làm thế nào để các thiên vị hoạt động chính xác trong một mạng lưới thần kinh tái phát?
  4. Tại sao chức năng tanh thường được sử dụng thay vì chức năng sigmoid như chức năng kích hoạt?

Tôi nhận ra một số câu hỏi này rất cơ bản, nhưng tôi đoán những điều cơ bản là chính xác những gì tôi cần ngay bây giờ.

Ngay cả các liên kết đến video hoặc bài đăng liên quan cũng sẽ cực kỳ hữu ích và các từ khóa google cũng hiển thị kết quả đúng. Bốn câu hỏi này đang cản trở tôi tìm hiểu mã Python mẫu, vì vậy tôi thực sự cần một số trợ giúp.


"cùng số lượng đầu ra như đầu vào". Đợi đã, cái gì? Hãy cẩn thận với điều này - không thường xuyên bạn bắt gặp một NN nơi tuyên bố của bạn là đúng. Những con số này có thể thay đổi một cách dữ dội và tôi không thể nghĩ đến lần cuối cùng tôi làm việc trên NN nơi đầu vào và đầu ra của tôi khớp chính xác. Đầu vào của bạn là bất cứ điều gì bạn muốn chúng dựa trên các tính năng có sẵn, đầu ra của bạn phụ thuộc vào câu trả lời bạn đang cố gắng nhận được (nhị phân, phân loại, v.v.). Rất hiếm khi có hai người đó hợp nhau.
I_Play_With_Data

Câu trả lời:


3

Câu hỏi này nhận được ở một số phẩm chất rất quan trọng của RNN và DNN nói chung. Tôi sẽ trả lời từng câu hỏi phụ của bạn, mặc dù không theo cùng một thứ tự (Tôi sẽ cố gắng làm nổi bật nơi tôi làm)

Chia sẻ thông số

Đầu tiên, chất lượng quan trọng nhất của RNNs được gọi là chia sẻ tham số . Dữ liệu tuần tự thường được nhập vào các lớp riêng biệt. Đối với đầu vào dài 20, mạng RNN sẽ có 20 lớp. Các tham số bên trong giống nhau được sử dụng cho mỗi lớp, vì vậy tất cả 20 lớp sử dụng cùng trọng số và độ lệch b . So sánh điều này với một tri giác đa lớp sẽ có 20 trọng số và độ lệch riêng biệt.Wb

Chia sẻ tham số có một số lợi ích:

  • Bây giờ chúng ta có ít tham số hơn. Có 1 khối lặp lại thay vì 20 lớp riêng biệt. Giảm 20 lần!
  • Điều này có hiệu quả nhân lên dữ liệu đào tạo. Lớp lặp lại được học từ mỗi từ trong một câu ví dụ trong khi mỗi lớp trong MLP học từ một từ duy nhất cho mỗi câu.
  • Mạng của chúng tôi bây giờ linh hoạt hơn nhiều. Chúng tôi có thể đào tạo các câu lên đến 20 từ và sau đó khái quát thành câu 25 từ bằng cách thêm nhiều bước hoặc sử dụng RNN động

Kiến trúc mạng

Bạn hỏi về kích hoạt tanh và sigmoid. Để trả lời điều này, chúng ta phải nói về kiến ​​trúc RNN cụ thể. RNN đơn giản được thảo luận ở trên có một kích hoạt duy nhất. Các RNN đơn giản có xu hướng tạo ra vấn đề biến mất độ dốc (hoặc phát nổ!) Do ứng dụng lặp lại của cùng trọng số và chức năng kích hoạt.

Các khối RNN được kiểm soát (như GRU và LSTM) sử dụng các cơ chế gating để chuyển các kích hoạt vào và ra khỏi trạng thái bộ nhớ và kết hợp các trạng thái bộ nhớ với đầu vào để tạo đầu ra của mỗi khối. Bởi vì điều này, các cổng có thể ngăn chặn độ dốc lan truyền ngược. Sigmoid là một chức năng kích hoạt phổ biến cho các cổng vì nó nén kích hoạt thành (0,1) --- 0 hoàn toàn dừng kích hoạt và 1 cho phép nó đi qua. Bất kỳ chức năng kích hoạt phong nha với một hồ sơ squashing tương tự hoạt động, mặc dù. Giai thoại, sigmoid cứng là khá phổ biến những ngày này.

Ngoài các cổng, các khối RNN có kiểm soát có trạng thái bên trong mà kích hoạt thay đổi khá nhiều. Vì gating giới hạn độ dốc backprop, chúng tôi có rất nhiều tính linh hoạt trong việc kích hoạt này. Chẳng hạn, nó không cần phải bị đè bẹp, và đây là nơi thường thấy các kích hoạt chỉnh lưu (relu, elu, islu, v.v.). Tanh là một lựa chọn hoàn toàn hợp lý là tốt.

Về độ lệch và trọng số, mỗi kích hoạt trong một ô RNN thường có trọng số và độ lệch riêng. Vì vậy, GRU có 3 kích hoạt (ẩn, cập nhật và đặt lại) và mỗi kích hoạt có trọng số và độ lệch riêng. Mặc dù, nhớ lại rằng với tư cách là một RNN, mỗi trong số này được sử dụng lại cho mỗi dấu thời gian.

Đèo ngược

Điều đó bao gồm việc vượt qua khá tốt nhưng bạn cũng hỏi một câu hỏi quan trọng về cách lỗi lan truyền ngược. Có hai phương pháp để tiếp cận điều này.

Buộc giáo viên

Đối với các RNN đưa ra dự đoán ở mỗi bước thời gian (chẳng hạn như dự đoán kết quả của các bước sau, dịch hoặc nhận dạng âm vị), buộc giáo viên là một phương pháp để cô lập từng bước của RNN. Bằng cách loại bỏ các phụ thuộc này, Buộc giáo viên cho phép RNN sử dụng backprop thông thường với quy tắc chuỗi.

txtyt-1tt-1t. Do đó, chúng tôi đã xóa mọi kết nối qua mạng.

yt-1ot-1

Tuyên truyền ngược thời gian

nxhoy

BPTT hoạt động theo các bước sau.

  1. otot,yt
  2. ht
  3. n WtW

đọc thêm

Tôi đặc biệt giới thiệu chương 10 của Goodfellow, Bengio và Courville's Deep Learning để biết thêm thông tin về RNNs. Ngoài ra, sách RNN của Graves là fantstic cho chi tiết cấp cao hơn

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.