Hôm nay chúng ta sẽ giới thiệu một ứng dụng đơn giản của HMM (Mô hình Markov) trên cổ phiếu.
Mô hình Markov ẩn, nghe có vẻ cao cấp và không biết nó là gì, hãy lùi lại một bước và xem chuỗi Markov trước.
Chuỗi Markov, được đặt tên theo Andrey Markov (A. A. Markov, 1856-1922), là một quá trình ngẫu nhiên của các sự kiện phân biệt có tính chất Markov trong toán học. Với kiến thức hoặc thông tin hiện tại, quá khứ (tức là trạng thái lịch sử trước hiện tại) không liên quan đến việc dự đoán tương lai (tức là trạng thái tương lai sau hiện tại).
Trong quá trình này, mỗi trạng thái chuyển đổi chỉ phụ thuộc vào n trạng thái trước đó, quá trình này được gọi là mô hình n trạng thái 1, trong đó n là số trạng thái chuyển đổi ảnh hưởng. Các quá trình Markov đơn giản nhất là quá trình một giai đoạn, chuyển đổi của mỗi trạng thái chỉ phụ thuộc vào trạng thái trước đó.
Trong khi đó, các nhà nghiên cứu khác cũng cho rằng, việc sử dụng các biểu thức toán học là như sau:
Để đưa ra một ví dụ từ cuộc sống hàng ngày, chúng ta muốn dự đoán thời tiết trong tương lai dựa trên tình trạng thời tiết hiện tại. Một cách là giả định rằng mỗi trạng thái trong mô hình này chỉ phụ thuộc vào trạng thái trước đó, đó là giả thuyết Markov, giả thuyết này có thể đơn giản hóa vấn đề này rất nhiều. Dĩ nhiên, ví dụ này cũng không thực tế chút nào.
Hình trên cho thấy mô hình chuyển biến thời tiết.
Lưu ý rằng một quá trình giai đoạn một có N trạng thái có N2 chuyển trạng thái. Tỷ lệ xác suất của mỗi chuyển trạng thái được gọi là xác suất chuyển trạng thái, tức là xác suất chuyển từ trạng thái này sang trạng thái khác. Tất cả các xác suất N2 này có thể được thể hiện bằng một ma trận chuyển trạng thái, ma trận chuyển trạng thái trong ví dụ thời tiết ở trên:
Ma trận cho biết nếu ngày hôm qua trời dâng, thì ngày hôm nay có 25% khả năng trời sẽ sáng, 12,5% khả năng trời dâng, 62,5% khả năng mưa, rõ ràng là tổng số của mỗi hàng trong ma trận là 1.
Để khởi tạo một hệ thống như vậy, chúng ta cần một vector xác suất ban đầu:
Vektor này cho thấy ngày đầu tiên là ngày tươi tốt. Đến đây, chúng ta đã xác định ba phần sau đây cho quá trình Markov giai đoạn 1 trên:
Tình trạng: Mùa xuân, mưa.
Đường vector ban đầu: xác định xác suất trạng thái của hệ thống tại thời điểm 0.
Ma trận chuyển trạng thái: xác suất của mọi biến đổi thời tiết. Tất cả các hệ có thể được mô tả như vậy đều là một quá trình Markov.
Tuy nhiên, chúng ta phải làm gì khi quá trình Markov không đủ mạnh? Trong một số trường hợp, quá trình Markov không đủ để mô tả các mô hình mà chúng ta mong muốn tìm thấy.
Ví dụ như thị trường chứng khoán của chúng ta, nếu chỉ quan sát thị trường, chúng ta chỉ có thể biết thông tin về giá cả, khối lượng giao dịch, v.v. trong ngày, nhưng không biết thị trường chứng khoán hiện tại đang ở trạng thái nào (thị trường bò, thị trường gấu, sốc, hồi phục, v.v.), trong trường hợp này chúng ta có hai tập hợp trạng thái, một tập hợp trạng thái quan sát được (thị trường giá cả giao dịch v.v.) và một tập hợp trạng thái ẩn (thị trường chứng khoán). Chúng ta muốn tìm ra một thuật toán có thể dự đoán tình trạng thị trường chứng khoán dựa trên tình trạng giá cổ phiếu và giả thuyết Markov.
Trong các trường hợp trên, các chuỗi trạng thái quan sát được và các chuỗi trạng thái ẩn có liên quan đến xác suất. Vì vậy, chúng ta có thể mô hình hóa một quá trình loại này như một quá trình Markov ẩn và một tập hợp các trạng thái có liên quan đến xác suất quá trình Markov ẩn và có thể quan sát được, đó là mô hình Markov ẩn.
Mô hình ẩn Markov là một mô hình thống kê được sử dụng để mô tả một quá trình Markov chứa các tham số ẩn chưa được biết. Khó khăn là xác định các tham số ẩn của quá trình từ các tham số quan sát được và sau đó sử dụng các tham số này để phân tích thêm. Dưới đây là một biểu đồ chuyển động trạng thái mô hình ẩn Markov ba trạng thái, trong đó x là trạng thái ẩn, y là đầu ra quan sát được, a là xác suất chuyển đổi trạng thái, b là xác suất đầu ra.
Hãy dùng ví dụ của một cái cuồng để giải thích: giả sử tôi có ba cái cuồng khác nhau. Cái cuồng đầu tiên là cuồng bình thường của chúng ta (chọn cuồng này là D6), có 6 mặt, mỗi mặt có khả năng xuất hiện 1, 2, 3, 4, 5, 6). Cái cuồng thứ hai là một hình vuông (chọn cuồng này là D4), mỗi mặt có khả năng xuất hiện 1, 2, 3, 4) và cái cuồng thứ ba có khả năng xuất hiện 8 mặt (chọn cuồng này là D8), mỗi mặt có khả năng xuất hiện 1, 2, 3, 4, 5, 6, 7, 8).
Giả sử chúng ta bắt đầu với một con số, chúng ta chọn một trong ba con số, và xác suất của mỗi con số là 1/3. Sau đó chúng ta chọn con số, một trong số 1, 2, 3, 4, 5, 6, 7, 8.
Dòng số này được gọi là chuỗi trạng thái hiển thị. Nhưng trong mô hình ẩn Markov, chúng ta không chỉ có một chuỗi trạng thái hiển thị mà còn có một chuỗi trạng thái ẩn. Trong ví dụ này, chuỗi trạng thái ẩn là một chuỗi các nốt của bạn. Ví dụ, chuỗi trạng thái ẩn có thể là: D4 D6 D8 D6 D4 D8 D6 D6 D6 D4.
一般来说,HMM中说到的马尔可夫链其实是指隐含状态链,因为隐含状态(骰子)之间存在转换概率。在我们这个例子里,D6的下一个状态是D4,D6,D8的概率都是1/3。D4,D8的下一个状态是D4,D6,D8的转换概率也都一样是1/3。这样设定是为了最开始容易说清楚,但是我们其实是可以随意设定转换概率的。比如,我们可以这样定义,D6后面不能接D4,D6后面是D6的概率是0.9,是D8的概率是0.1。这样就是一个新的HMM。
Tương tự như vậy, mặc dù không có xác suất chuyển đổi giữa các trạng thái hiển thị, nhưng có một xác suất giữa trạng thái ẩn và trạng thái hiển thị được gọi là xác suất đầu ra. Trong ví dụ của chúng tôi, xác suất đầu ra của con số sáu D6 là 1/6. Cơ hội đầu ra 2, 3, 4, 5, 6 cũng là 1/6. Chúng ta cũng có thể định nghĩa khác về xác suất đầu ra.
Trong thực tế, đối với HMM, việc làm mô phỏng khá dễ dàng nếu biết trước xác suất chuyển đổi giữa tất cả các trạng thái ẩn và xác suất đầu ra giữa tất cả các trạng thái ẩn và tất cả các trạng thái hiển thị. Nhưng khi áp dụng mô hình HMM, thường có một phần thông tin bị thiếu, đôi khi bạn biết có một số nốt nốt, mỗi nốt nốt là gì, nhưng không biết chuỗi nốt nốt được tạo ra; đôi khi bạn chỉ nhìn thấy kết quả của nốt nốt nhiều lần và không biết gì về phần còn lại. Nếu áp dụng thuật toán để ước tính thông tin bị thiếu này, đó là một vấn đề quan trọng.
Các thuật toán liên quan đến mô hình HMM được chia thành ba loại, giải quyết ba vấn đề:
Biết rằng có một số con số (số lượng trạng thái ngụ ý) và những gì mỗi con số (khả năng chuyển đổi) và dựa trên kết quả của con số (đường dây trạng thái hiển thị), tôi muốn biết những con số (đường dây trạng thái ngụ ý) được đưa ra mỗi lần.
Và cũng biết rằng có một vài con số của con số ẩn, và những gì mỗi con số là xác suất chuyển đổi, và dựa trên kết quả của con số đó, tôi muốn biết xác suất của kết quả này.
Biết rằng có một số con số (số lượng trạng thái ngụ ý), không biết mỗi con số là gì (khả năng chuyển đổi), quan sát kết quả của nhiều con số (chuỗi trạng thái có thể nhìn thấy), tôi muốn đảo ngược những gì mỗi con số là (khả năng chuyển đổi).
Nếu muốn giải quyết vấn đề trên trên, chúng ta cần giải quyết vấn đề 1 và 3, bài viết tiếp theo sẽ xem làm thế nào.
Được chuyển từ bài viết về Moneycode