ai-450Đọc toàn bộ đề miễn phí

Cập nhật trạng thái ẩn của RNN

Một tầng hồi tiếp (RNN) mang theo một vector trạng thái ẩn h và làm mới nó ở mỗi bước

AICơ bản12 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

numpyrnnsequence-modelingentry-ramp

Kiến thức tiên quyết: python-basics, numpy-matrix-multiplication.

Nội dung đề bài

Mô tả bài toán

Một tầng hồi tiếp (RNN) mang theo một vector trạng thái ẩn h và làm mới nó ở mỗi bước thời gian bằng công thức h' = tanh(Wh h + Wx x + b). Đây là phép tính cốt lõi mà mọi mạng hồi tiếp, từ RNN đơn giản cho tới GRU/LSTM, đều dựa vào.

Yêu cầu

Viết hàm rnnhiddenstep(h, x, wh, wx, b) trả về trạng thái ẩn mới h' dưới dạng danh sách số thực.

Quy ước nộp bài

Nộp hàm rnn_hidden_step trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.

Input

  • h: vector trạng thái ẩn cũ (danh sách số thực, độ dài bằng kích thước ẩn).
  • x: vector đầu vào (danh sách số thực, độ dài bằng kích thước vào).
  • wh: ma trận trọng số ẩn, kích thước (ẩn x ẩn).
  • wx: ma trận trọng số vào, kích thước (ẩn x vào).
  • b: vector độ lệch, độ dài bằng kích thước ẩn.

Output

Danh sách số thực h' với h'[k] = tanh( (Wh h)[k] + (Wx x)[k] + b[k] ).

Ràng buộc

  • Các kích thước phải khớp nhau; nếu không thì hàm ném ValueError.
  • Chỉ dùng NumPy cho tích ma trận và tanh, không viết vòng lặp nhân từng phần tử.

Ví dụ 1

Input

rnn_hidden_step(h=[1, 0], x=[0, 1], w_h=[[0, 1], [1, 0]], w_x=[[1, 1], [0, 1]], b=[0, 0])

Output

[0.7615941559557649, 0.9640275800758169]

Ví dụ 2

Input

rnn_hidden_step(h=[0, 0], x=[0, 0], w_h=[[0, 1], [1, 0]], w_x=[[1, 1], [0, 1]], b=[0, 0])

Output

[0.0, 0.0]

Giải thích

Với h = [1, 0], x = [0, 1], wh = [[0, 1], [1, 0]], wx = [[1, 1], [0, 1]] và b = [0, 0] thì Wh h = [0, 1], Wx x = [1, 1], tổng trước kích hoạt = [1, 2], nên h' = [tanh(1), tanh(2)] = [0.7615941559557649, 0.9640275800758169].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Nhóm Zalo