**Mô hình Markov ẩn** (tiếng Anh là *Hidden Markov Model* - **HMM**) là mô hình thống kê trong đó hệ thống được mô hình hóa được cho là một quá trình Markov với các tham số không biết trước và nhiệm vụ là xác định các tham số ẩn từ các tham số quan sát được, dựa trên sự thừa nhận này. Các tham số của mô hình được rút ra sau đó có thể sử dụng để thực hiện các phân tích kế tiếp, ví dụ cho các ứng dụng nhận dạng mẫu.

Trong một mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi người quan sát, và vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất. **Mô hình Markov ẩn** thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các biểu hiện đầu ra có thể. Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra bởi **HMM** không trực tiếp chỉ ra dãy các trạng thái.

Đây là một mô hình toán thống kê có ứng dụng rộng rãi trong Tin sinh học.

Các chuyển tiếp trạng thái trong mô hình Markov ẩn
--------------------------------------------------

Ví dụ mô hình Markov.  

- *x* — Các trạng thái trong mô hình Markov  

- *a* — Các xác suất chuyển tiếp  

- *b* — Các xác suất đầu ra  

- *y* — Các dữ liệu quan sát

Sự tiến hóa của mô hình Markov
------------------------------

Biểu đồ(Markov) trên đây làm nổi bật các chuyển tiếp trạng thái của mô hình Markov ẩn. Nó cũng có ích để biểu diễn rõ ràng sự tiến hóa của mô hình theo thời gian, với các trạng thái tại các thời điểm khác nhau *t*1 và *t*2 được biểu diễn bằng các tham biến khác nhau, *x*(*t*1) và *x*(*t*2).

Sự tiến hóa theo thời gian của mô hình Markov ẩnSự tiến hóa theo thời gian của mô hình Markov ẩn
Trong biểu đồ này, nó được hiểu rằng thời gian chia cắt ra (*x*(*t*), *y*(*t*)) mở rộng tới các thời gian trước và sau đó như một sự cần thiết. Thông thường lát cắt sớm nhất là thời gian *t*=0 hay *t*=1.

Sử dụng các mô hình Markov
--------------------------

Có ba vấn đề cơ bản để giải quyết bằng **HMM**:

* Cung cấp cho mô hình các tham số, tính xác suất của dãy đầu ra cụ thể. Giải bằng thuật toán tiến trước (thuật toán tham lam).
* Cung cấp cho mô hình các tham số, tìm dãy các trạng thái (ẩn) có khả năng lớn nhất mà có thể sinh ra dãy đầu ra đã cung cấp. Giải bằng thuật toán Viterbi.
* Cung cấp dãy đầu ra, tìm tập hợp có khả năng nhất của chuyển tiếp trạng thái và các xác suất đầu ra. Giải bằng thuật toán Baum-Welch.

### Ví dụ cụ thể

Giả sử tôi có một người bạn sống ở rất xa. Hàng ngày chúng tôi gọi điện thoại cho nhau và anh ta kể cho tôi nghe anh ta đã làm gì trong ngày. Người bạn tôi chỉ có 3 công việc mà anh thích làm là 1) đi dạo, 2) đi chợ và 3) dọn phòng. Hiển nhiên là sự lựa chọn phải làm gì thì phụ thuộc trực tiếp vào thời tiết hôm đấy thế nào. Như vậy, tôi không nhận được thông tin cụ thể về thời tiết nơi anh bạn tôi sống nhưng tôi lại biết về xu hướng chung. Dựa vào lời kể của công việc hàng ngày của anh ta, tôi có thể đoán về thời tiết hôm đó.

Như vậy, thời tiết được vận hành như một chuỗi Markov cụ thể. Có 2 trạng thái thời tiết, "Mưa" và "Nắng", nhưng tôi không quan sát trực tiếp, do đó, chúng là *ẩn* đối với tôi. Vào mỗi ngày, anh bạn tôi sẽ làm một trong các việc sau phụ thuộc vào thời tiết hôm đó là "đi dạo", "đi chợ" và "dọn phòng". Vì anh bạn tôi đã tường thuật lại hoạt động của mình, đó là các *dữ liệu quan sát*. Toàn bộ hệ thống này là một *mô hình Markov ẩn* (HMM). 

Tôi biết được xu hướng thời tiết nói chung và tôi cũng biết bạn tôi thường thích làm gì. Nói cách khác, các thông số của HMM đã biết. Thực tế, chúng ta có thể mô tả điều này bằng ngôn ngữ lập trình Python:

  

```
trạng thái = ('Mưa', 'Nắng')

dữ liệu quan sát = ('đi dạo', 'đi chợ', 'dọn phòng')

khả_năng_ban_đầu = {'Mưa': 0.6, 'Nắng': 0.4}

khả_năng_chuyển_dịch = {
   'Mưa' : {'Mưa': 0.7, 'Nắng': 0.3},
   'Nắn' : {'Mưa': 0.4, 'Nắng': 0.6},
   }

khả_năng_loại_bỏ = {
   'Mưa' : {'đi dạo': 0.1, 'đi chợ': 0.4, 'dọn phòng': 0.5},
   'Nắng' : {'đi dạo': 0.6, 'đi chợ': 0.3, 'dọn phòng': 0.1},
   }
```

Trong đoạn câu lệnh trên, `khả_năng_ban_đầu` cho thấy tôi không chắc về trạng thái HMM khi người bạn đầu tiên gọi điện cho tôi (tất cả cái tôi biết là trời có vẻ mưa). `khả_năng_chuyển_dịch` cho thấy những thay đổi về thời tiết trong chuỗi Markov. Trong ví dụ này, chỉ có 30% khả năng ngày mai trời sẽ nắng nếu hôm nay trời mưa. `Khả_năng_loại_bỏ` cho thấy anh bạn thích làm những việc gì mỗi ngày. Nếu trời mưa thì có đến 50% khả năng anh bạn này sẽ dọn phòng, trong khi trời nắng thì 60% khả năng anh ta sẽ đi dạo.

*Ví dụ này được xem xét tỉ mỉ hơn trong trang thuật toán Viterbi*

### Các ứng dụng

* Sự nhận biết lời nói hay sự nhận biết ký tự quang học
* Quy trình ngôn ngữ tự nhiên
* Tin sinh học và hệ gen học
	+ Dự đoán các vùng mang mã (khung đọc mở) trên một trình từ gene.
	+ Xác định các họ gene hoặc họ protein liên quan.
	+ Mô phỏng cấu trúc không gian của protein từ trình tự amino acid.
* *và còn nhiều nữa...*

Xem thêm
--------

* Suy luận Bayes
* Thuật toán Viterbi
* Lượng giá tham số
* Andrey Markov

Tham khảo
---------

* Lawrence Rabiner, 1989. *A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition*.  Lưu trữ 2007-02-09 tại Wayback Machine
* Kristie Seymore, Andrew McCallum, and Roni Rosenfeld. *Learning Hidden Markov Model Structure for Information Extraction*. AAAI 99 Workshop on Machine Learning for Information Extraction, 1999. *(also at CiteSeer:  Lưu trữ 2003-12-08 tại Wayback Machine)*
* Profile hidden Markov models SR Eddy Bioinformatics 1998.

Tham khảo
---------

Liên kết ngoài
--------------

* Hidden Markov Model (HMM) Toolbox for Matlab Lưu trữ 2005-01-07 tại Wayback Machine *(by Kevin Murphy)*
* Hidden Markov Models *(an exposition using basic mathematics)*
* GHMM Library *(home page of the GHMM Library project)*
* A step-by-step tutorial on HMMs Lưu trữ 2017-08-13 tại Wayback Machine *(University of Leeds)*

| * x
* t
* s
Phân ngành sinh học |
| --- |
| 
* Địa chất sinh học
* Địa lý sinh học
* Bệnh lý học
* Cổ sinh vật học
* Công nghệ sinh học
* Di truyền học (Di truyền học biểu sinh, Di truyền học tế bào. Di truyền học sinh thái)
* Dịch tễ học
* Dinh dưỡng
* Dược lý học
* Độc chất học
* Động vật học (Bò sát-lưỡng cư học)
* Giải phẫu học
* Hệ gen học
* Hệ thống sinh học
* Hiện sinh vật học
* Hóa sinh
* Khoa học thần kinh
* Ký sinh trùng học
* Kỹ thuật sinh học
* Lịch sử sinh học
* Lý sinh học (Cơ sinh học)
* Miễn dịch học
* Mô học
* Nấm học
* Phôi thai học
* Quái thai học
* Sinh địa học
* Sinh học bảo tồn
* Sinh học băng quyển
* Sinh học biển
* Sinh học cấu trúc
* Sinh học hệ thống
* Sinh học hóa học
* Sinh học không khí
* Sinh học lượng tử
* Sinh học ngoại vi
* Sinh học người
* Sinh học nước ngọt
* Sinh học phát triển
* Sinh học phân tử
* Sinh học tế bào
* Sinh học thời gian
* Sinh học tiến hóa (Cội nguồn sự sống, Phát sinh chủng loại học, Phân loại sinh học)
* Sinh học tính toán
* Sinh học tổng hợp
* Sinh học vũ trụ
* Sinh học xã hội
* Sinh lý học
* Sinh thái học
* Tảo học
* Thống kê sinh học
* Thực vật học
* Tin sinh học
* Toán sinh học
* Vi sinh vật học (Vi sinh học tế bào)
* Virus học (Vật lý virus)

 |