Mạng thần kinh tái phát của tôi (LSTM, resp. GRU) hoạt động theo cách mà tôi không thể giải thích. Việc đào tạo bắt đầu và nó đào tạo tốt (kết quả trông khá tốt) khi độ chính xác đột ngột giảm (và mất nhanh chóng tăng) - cả số liệu đào tạo và kiểm tra. Đôi khi, mạng chỉ phát điên và trả về các đầu ra ngẫu nhiên và đôi khi (như trong ba ví dụ cuối cùng), nó bắt đầu trả lại cùng một đầu ra cho tất cả các đầu vào .
Bạn có bất kỳ lời giải thích cho hành vi này ? Bất kỳ ý kiến đều được chào đón. Xin vui lòng, xem mô tả nhiệm vụ và các con số dưới đây.
Nhiệm vụ: Từ một từ dự đoán vectơ word2vec của nó
Đầu vào: Chúng tôi có một mô hình word2vec riêng (chuẩn hóa) và chúng tôi cung cấp cho mạng bằng một từ (từng chữ cái). Chúng tôi đệm các từ (xem ví dụ dưới đây).
Ví dụ: Chúng tôi có một bóng đá từ và chúng tôi muốn dự đoán vector word2vec của nó rộng 100 chiều. Sau đó, đầu vào là $football$$$$$$$$$$
.
Ba ví dụ về hành vi:
LSTM một lớp
model = Sequential([
LSTM(1024, input_shape=encoder.shape, return_sequences=False),
Dense(w2v_size, activation="linear")
])
model.compile(optimizer='adam', loss="mse", metrics=["accuracy"])
GRU một lớp
model = Sequential([
GRU(1024, input_shape=encoder.shape, return_sequences=False),
Dense(w2v_size, activation="linear")
])
model.compile(optimizer='adam', loss="mse", metrics=["accuracy"])
LSTM hai lớp
model = Sequential([
LSTM(512, input_shape=encoder.shape, return_sequences=True),
TimeDistributed(Dense(512, activation="sigmoid")),
LSTM(512, return_sequences=False),
Dense(256, activation="tanh"),
Dense(w2v_size, activation="linear")
])
model.compile(optimizer='adam', loss="mse", metrics=["accuracy"])
Chúng tôi cũng đã trải nghiệm loại hành vi này trong một dự án khác trước đó sử dụng kiến trúc tương tự nhưng mục tiêu và dữ liệu của nó là khác nhau. Do đó, lý do không nên được ẩn trong dữ liệu hoặc trong mục tiêu cụ thể mà là trong kiến trúc.
nan
.
nan
tham số sẽ không dẫn đến mất non-nan. Tôi đoán là độ dốc của bạn xảy ra để phát nổ, điều tương tự đã xảy ra với tôi trong các mạng bình thường không theo đợt.
nan
xuất hiện trong một trong những tính toán và sau đó nó được mặc định thành một giá trị khác khiến mạng phát điên. Nhưng đó chỉ là một phỏng đoán hoang dã. Cảm ơn ý kiến của bạn.