Mô hình Markov ẩn so với Mạng thần kinh tái phát


12

Những vấn đề đầu vào tuần tự phù hợp nhất cho từng vấn đề? Liệu kích thước đầu vào xác định cái nào phù hợp hơn? Các vấn đề đòi hỏi "bộ nhớ dài hơn" có phù hợp hơn với LSTM RNN không, trong khi các vấn đề với mô hình đầu vào theo chu kỳ (thị trường chứng khoán, thời tiết) dễ dàng được giải quyết hơn bằng HMM?

Có vẻ như có rất nhiều sự chồng chéo; Tôi tò mò những gì khác biệt tinh tế tồn tại giữa hai.


+1 nhưng câu hỏi có thể quá rộng ... Ngoài ra, theo hiểu biết của tôi thì chúng khá khác nhau ..
Haitao Du

tôi đã thêm vào làm rõ hơn
khắc phục

Là một lưu ý phụ, bạn có thể đặt CRF trên đầu RNN, ví dụ như github.com/Franck-Dernoncourt/NeuroNER
Franck Dernoncourt

Câu trả lời:


8

Tóm lược

Các mô hình Markov ẩn (HMM) đơn giản hơn nhiều so với Mạng thần kinh tái phát (RNN) và dựa trên các giả định mạnh mẽ có thể không phải lúc nào cũng đúng. Nếu các giả định đúng thì bạn có thể thấy hiệu suất tốt hơn từ HMM vì nó ít bị phạt hơn khi hoạt động.

Một RNN có thể hoạt động tốt hơn nếu bạn có một tập dữ liệu rất lớn, vì sự phức tạp thêm có thể tận dụng tốt hơn thông tin trong dữ liệu của bạn. Điều này có thể đúng ngay cả khi các giả định của HMM là đúng trong trường hợp của bạn.

Cuối cùng, không bị hạn chế chỉ hai mô hình này cho nhiệm vụ chuỗi của bạn, đôi khi các hồi quy đơn giản hơn (ví dụ ARIMA) có thể thắng, và đôi khi các phương pháp phức tạp khác như Mạng thần kinh chuyển đổi có thể là tốt nhất. (Có, CNN có thể được áp dụng cho một số loại dữ liệu chuỗi giống như RNN.)

Như mọi khi, cách tốt nhất để biết mô hình nào là tốt nhất là tạo ra các mô hình và đo lường hiệu suất trên một bộ thử nghiệm được tổ chức.

Giả định mạnh mẽ của HMM

Chuyển đổi trạng thái chỉ phụ thuộc vào trạng thái hiện tại, không phụ thuộc vào bất cứ điều gì trong quá khứ.

Giả định này không có trong nhiều lĩnh vực tôi quen thuộc. Ví dụ, giả vờ bạn đang cố gắng dự đoán cho mỗi phút trong ngày cho dù một người đã thức hay ngủ từ dữ liệu chuyển động. Cơ hội của một ai đó việc chuyển khỏi giấc ngủ để tỉnh táo tăng sự còn người đã được trong giấc ngủ trạng thái. Về mặt lý thuyết, một RNN có thể tìm hiểu mối quan hệ này và khai thác nó để có độ chính xác dự đoán cao hơn.

Bạn có thể cố gắng khắc phục điều này, ví dụ bằng cách đưa trạng thái trước làm tính năng hoặc xác định trạng thái tổng hợp, nhưng độ phức tạp được thêm vào không phải lúc nào cũng làm tăng độ chính xác dự đoán của HMM và chắc chắn nó không giúp tính toán thời gian.

Bạn phải xác định trước tổng số trạng thái.

Quay trở lại ví dụ về giấc ngủ, nó có thể xuất hiện như thể chỉ có hai trạng thái chúng ta quan tâm. Tuy nhiên, ngay cả khi chúng ta chỉ quan tâm đến việc dự đoán thứcngủ , mô hình của chúng ta có thể được hưởng lợi từ việc tìm ra các trạng thái bổ sung như lái xe, tắm, v.v. (ví dụ như tắm thường đến ngay trước khi ngủ). Một lần nữa, một RNN về mặt lý thuyết có thể học được một mối quan hệ như vậy nếu cho thấy đủ các ví dụ về nó.

Khó khăn với RNNs

Có vẻ như ở trên, RNN luôn vượt trội. Tuy nhiên, tôi cần lưu ý rằng RNN có thể khó hoạt động, đặc biệt là khi tập dữ liệu của bạn nhỏ hoặc trình tự của bạn rất dài. Cá nhân tôi đã gặp rắc rối khi khiến các RNN đào tạo trên một số dữ liệu của mình và tôi có một nghi ngờ rằng hầu hết các phương pháp / hướng dẫn RNN được công bố đều được điều chỉnh theo dữ liệu văn bản . Khi cố gắng sử dụng RNN trên dữ liệu phi văn bản, tôi đã phải thực hiện tìm kiếm siêu tham số rộng hơn tôi quan tâm để có kết quả tốt trên các bộ dữ liệu cụ thể của mình.

Trong một số trường hợp, tôi đã tìm thấy mô hình tốt nhất cho dữ liệu tuần tự thực sự là kiểu UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Mô hình Mạng thần kinh chuyển đổi vì nó dễ dàng hơn và nhanh hơn để đào tạo và có thể để xem xét toàn bộ bối cảnh của tín hiệu.


1

Trước tiên chúng ta hãy xem sự khác biệt giữa HMM và RNN.

Từ bài viết này: Hướng dẫn về các mô hình Markov ẩn và các ứng dụng được chọn trong nhận dạng giọng nói, chúng ta có thể biết rằng HMM nên được đặc trưng bởi ba vấn đề cơ bản sau:

Bài toán 1 (Khả năng): Cho HMM = (A, B) và trình tự quan sát O, xác định khả năng P (O |).
Bài toán 2 (Giải mã): Cho chuỗi quan sát O và HMM λ = (A, B), khám phá chuỗi trạng thái ẩn tốt nhất Q.
Bài 3 (Học): Đưa ra chuỗi quan sát O và tập hợp các trạng thái trong HMM, tìm hiểu các tham số HMM A và B.

Chúng ta có thể so sánh HMM với RNN từ ba quan điểm đó.

Khả năng

tổng hợp trên tất cả các chuỗi ẩn Khả năng thích ứng trong mô hình ngôn ngữ HMM (Ảnh A.5) trong RNN
chỉ cần xác suất từ ​​các hàm softmax

P(O)=QP(O,Q)=QP(O|Q)P(Q)Q1p(X)=t=1T1p(xt|x(t1),...,x(1))T

Giải mã

vt(j)=maxi=1Nvt1(i)aijb(ot)P(y1,...,yO|x1,...,xT)=o=1OP(yo|y1,...,yo1,co)YX

con đường táo bạo
Giải mã trong HMM (Hình A.10)

phần giải mã
Giải mã trong RNN

Học tập

Việc học trong HMM phức tạp hơn nhiều so với RNN. Trong HMM, nó thường sử dụng thuật toán Baum-Welch (một trường hợp đặc biệt của thuật toán Tối đa hóa kỳ vọng) trong khi trong RNN, nó thường là độ dốc giảm dần.

Đối với các câu hỏi con của bạn:

Những vấn đề đầu vào tuần tự phù hợp nhất cho từng vấn đề?

Khi bạn không có đủ dữ liệu, hãy sử dụng HMM và khi bạn cần tính xác suất chính xác thì HMM cũng sẽ phù hợp hơn (nhiệm vụ tổng quát mô hình hóa cách tạo ra dữ liệu). Nếu không, bạn có thể sử dụng RNN.

Liệu kích thước đầu vào xác định cái nào phù hợp hơn?

Tôi không nghĩ vậy, nhưng HMM có thể mất nhiều thời gian hơn để tìm hiểu nếu các trạng thái ẩn quá lớn vì độ phức tạp của thuật toán (lùi về phía sau và Viterbi) về cơ bản là bình phương của số lượng trạng thái rời rạc.

Các vấn đề đòi hỏi "bộ nhớ dài hơn" có phù hợp hơn với LSTM RNN không, trong khi các vấn đề với mô hình đầu vào theo chu kỳ (thị trường chứng khoán, thời tiết) dễ dàng được giải quyết hơn bằng HMM?

Trong HMM, trạng thái hiện tại cũng bị ảnh hưởng bởi các trạng thái và quan sát trước đó (bởi trạng thái cha mẹ) và bạn có thể thử Mô hình Markov ẩn thứ hai cho "bộ nhớ dài hơn".

Tôi nghĩ bạn có thể sử dụng RNN để làm gần như

người giới thiệu

  1. Xử lý ngôn ngữ tự nhiên với Deep Learning CS224N / Ling284
  2. Mô hình Markov ẩn

Nhưng trong tài liệu tham khảo có nói rằng HMM có trạng thái ẩn, mặc dù là trạng thái rời rạc?
Oleg Afanasyev

@OlegAfanasyev Vâng. Tôi nghĩ rằng tôi đã sai, nhưng tôi sẽ quay lại câu trả lời này sau.
Lerner Zhang

Điều này đã được sửa chữa?
GENIVI-LEARNER

1
@ GENIVI-LEARNER Tôi đã viết lại câu trả lời và hy vọng rằng nó sẽ giúp ích cho bạn và cũng hy vọng rằng bạn sẽ cung cấp cho tôi một số đề xuất về cách làm cho nó tốt hơn.
Lerner Zhang

0

Tôi tìm thấy câu hỏi này, bởi vì tôi đã tự hỏi về sự tương đồng và khác biệt của họ quá. Tôi nghĩ rất quan trọng khi tuyên bố rằng Mô hình Markov ẩn (HMM) không có đầu vào và đầu ra theo nghĩa chặt chẽ nhất.

HMM được gọi là mô hình thế hệ , nếu bạn có HMM, bạn có thể tạo ra một số quan sát từ nó. Điều này về cơ bản khác với RNN, vì ngay cả khi bạn có RNN được đào tạo, bạn cần có đầu vào cho nó.

Một ví dụ thực tế trong đó điều này quan trọng là tổng hợp lời nói. Các trạng thái ẩn Markov cơ bản là điện thoại và các sự kiện xác suất phát ra là âm học. Nếu bạn có một mô hình từ được đào tạo, bạn có thể tạo ra nhiều nhận thức khác nhau về nó như bạn muốn.

Nhưng với RNN, bạn cần cung cấp ít nhất một số hạt giống đầu vào để có được đầu ra của mình. Bạn có thể lập luận rằng trong HMM bạn cũng cần cung cấp phân phối ban đầu, vì vậy nó tương tự. Nhưng nếu chúng ta gắn bó với ví dụ tổng hợp giọng nói ,, thì không phải vì phân phối ban đầu sẽ được sửa (bắt đầu luôn từ điện thoại đầu tiên của từ).

Với RNN, bạn có được một chuỗi đầu ra xác định cho một mô hình được đào tạo, nếu bạn luôn sử dụng cùng một hạt giống đầu vào. Với HMM, bạn không được vì các chuyển đổi và khí thải luôn được lấy mẫu từ phân phối xác suất.

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.