Ứng dụng mạng nơron trong dự báo ARIMA

Dịch vụ Mẹo vặt Phân tích

Ứng dụng mạng nơron trong dự báo ARIMA, trong bài viết này chúng tôi tập trung và các định nghĩa và các bước thực hiện dự báo ARIMA khi kết hợp mạng nơ-ron (Neural Network) trong dự báo ARIMA, mà chúng tôi không tập trung vào hướng dẫn các bạn dự báo bằng ARIMA vì có nhiều bài viết về chủ đề này rồi, các bạn có thể xem : Dự báo ARIMA trên SPSS, Dự báo ARIMA trên Eviews, Dự báo ARIMA tự động trên R ….Để tham khảo về cách dự báo ARIMA , trong bài viết này chúng tôi tập trung vào ứng dụng mạng nơ-ron để dự báo ARIMA.

ANN là gì ?

Artificial Neural Network (ANN) gồm 3 thành phần chính: Input layer và output layer chỉ gồm 1 layer , hidden layer có thể có 1 hay nhiều layer tùy vào bài toán cụ thể. ANN hoạt động theo hướng mô tả lại cách hoạt động của hệ thần kinh với các neuron được kết nối với nhau.

Trong ANN, trừ input layer thì tất cả các node thuộc các layer khác đều full-connected với các node thuộc layer trước nó. Mỗi node thuộc hidden layer nhận vào ma trận đầu vào từ layer trước và kết hợp với trọng số để ra được kết quả. Ở trong course của Andrew Ng trên coursera, thầy sử dụng Logistic Regression ở các node.

 

FFNN là gì ?

Một mạng truyền thẳng là một mạng lưới thần kinh nhân tạo trong đó các kết nối giữa các nút làm không tạo chu kỳ.  Như vậy, nó khác với hậu duệ của nó: mạng lưới thần kinh tái phát . Mạng thần kinh feedforward là loại mạng thần kinh nhân tạo đầu tiên và đơn giản nhất được phát minh. Trong mạng này, thông tin chỉ di chuyển theo một hướng, chuyển tiếp, từ các nút đầu vào, thông qua các nút ẩn (nếu có) và đến các nút đầu ra. Không có chu kỳ hoặc vòng lặp trong mạng.

Trong những năm gần đây, nhiều nghiên cứu đã áp dụng các mô hình mạng nơron nhân tạo trong dự báo chuỗi thời gian và đạt được một số kết quả nhất định. Bogdan Oancea đã cài đặt mô hình mạng nơron với hai kiến trúc mạng là FFNN (Feedforward Neural Network)  và RNN (Recurrent Neural Network) cho việc dự báo chuỗi thời gian. Tác giả chạy thực nghiệm trên tập dữ liệu tỷ giá hối đoái giữa đồng EUR/RON và USD/RON. Đầu tiên, tác giả chuẩn hóa dữ liệu bằng công thức logarit tự nhiên để nâng cao độ chính xác dự báo. Sau đó, mô hình FFNN được xây dựng với 20 nơron ở lớp đầu vào (input layer), 40 nơron ở lớp ẩn (hidden layer) và 1 nơron ở lớp đầu ra (output layer) là giá trị dự báo cho thời gian tiếp theo t+1. Tác giả chia tập dữ liệu với 80% cho huấn luyện (training) và 20% cho thử nghiệm (testing). Kế tiếp, mạng RNN được cài đặt với 20 nơron ở lớp đầu vào, 10 nơron trong lớp ẩn hồi quy và 1 nơron ở lớp đầu ra. Sau khi thực nghiệm, tác giả khẳng định mô hình RNN cho kết quả dự báo tốt hơn FFNN trên tập dữ liệu tỷ giá hối đoái.

Đọc thêm:   Hướng dẫn viết luận văn thạc sĩ tốt nghiệp

M. Raeesi  sử dụng mạng nơron FFNN để dự báo dữ liệu giao thông ở thành phố Monroe, bang Louisiana, Hoa Kỳ. Nghiên cứu này đề xuất một mạng nơron sử dụng dữ liệu giao thông của ngày hôm nay, ngày hôm qua, tuần trước, hai tuần trước, ba tuần trước và một tháng trước để làm đầu vào cho dự báo lưu lượng giao thông của ngày mai. Kết quả thực nghiệm cho thấy mô hình mạng nơron đã xây dựng có thể được sử dụng cho dự báo giao thông tại thành phố Monroe. Tuy nhiên, một vài trường hợp có kết quả dự báo với sai số lớn do những yếu tố bất thường tác động như tai nạn, thời tiết xấu,… Kumar Abhishek  cũng sử dụng mạng nơron FFNN với giải thuật lan truyền ngược (back-propagation) trong dự báo chứng khoán trên tập dữ liệu của tập đoàn Microsoft từ 1/1/2011 đến 31/12/2011 gồm 2 lớp đơn giản trong mạng (10 nơron lớp đầu vào, 1 nơron lớp đầu ra), độ chính xác dự báo lên đến 99%.

Mạng nơron nhân tạo lấy ý tưởng từ việc mô phỏng hoạt động của não bộ con người. Mạng nơron nhân tạo có nhiều kiến trúc khác nhau như mạng nơron truyền thẳng, mạng nơron tích chập, mạng nơron hồi quy. Trong đó, mạng nơron truyền thẳng (FFNN) bao gồm một lớp đầu vào (input layer), một hoặc nhiều lớp ẩn (hidden layer), lớp đầu ra (output layer). Số đặc trưng của tập dữ liệu sẽ tương ứng với số nơron trong lớp đầu vào. Tất cả các nơron này được kết nối với mỗi nơron trong lớp ẩn thông qua các đường liên kết gọi là “khớp thần kinh”. Mỗi “khớp thần kinh” sẽ được gán một trọng số (weight). Các trọng số này sẽ được điều chỉnh trong quá trình học của mạng nơron nhân tạo để mô hình hóa mối liên hệ giữa lớp đầu vào và đầu ra.

Feedforward: tín hiệu chỉ truyền một chiều từ đầu vào tới đầu ra, chúng khá đơn giản và thường áp dụng trong nhận dạng mẫu. Hai kiểu phổ biến là CNN hoặc ConvNet thường được sử dụng trong nhận dạng hình ảnh.

CNN là gì ?

Trong học tập sâu , mạng nơ ron tích chập ( CNN hoặc ConvNet ) là một lớp các mạng thần kinh sâu , thường được áp dụng nhất để phân tích hình ảnh trực quan.  Chúng còn được gọi là mạng nơ ron nhân tạo bất biến hoặc bất biến không gian ( SIANN ), dựa trên kiến ​​trúc trọng số chung và đặc điểm bất biến dịch . [2] [3] Họ có các ứng dụng nhận dạng hình ảnh và video , hệ thống đề xuất ,  phân loại hình ảnh ,phân tích hình ảnh y tế , xử lý ngôn ngữ tự nhiên ,  và chuỗi thời gian tài chính . 

CNN (Convolutional Neural Networks)  là phiên bản chính quy của các tri giác đa lớp . Các tri giác đa lớp thường có nghĩa là các mạng được kết nối đầy đủ, nghĩa là, mỗi nơ-ron trong một lớp được kết nối với tất cả các nơ-ron ở lớp tiếp theo. Tính “kết nối đầy đủ” của các mạng này khiến chúng dễ bị quá tải dữ liệu. Các cách chính quy điển hình bao gồm thêm một số dạng đo cường độ của trọng số vào hàm mất. Các CNN có một cách tiếp cận khác đối với việc chính quy hóa: họ tận dụng mô hình phân cấp trong dữ liệu và lắp ráp các mẫu phức tạp hơn bằng cách sử dụng các mẫu nhỏ hơn và đơn giản hơn. Do đó, trên quy mô kết nối và độ phức tạp, CNN ở mức cực thấp.

Đọc thêm:   phân tích phương sai oneway anova

Mạng chập được lấy cảm hứng bởi sinh học quá trình  trong đó mô hình kết nối giữa các tế bào thần kinh tương tự như việc tổ chức động vật vỏ não thị giác . Các tế bào thần kinh vỏ não riêng lẻ chỉ đáp ứng với các kích thích trong một khu vực hạn chế của lĩnh vực thị giác được gọi là lĩnh vực tiếp nhận . Các lĩnh vực tiếp nhận của các tế bào thần kinh khác nhau chồng lên nhau một phần sao cho chúng bao phủ toàn bộ trường thị giác.

CNN sử dụng tương đối ít tiền xử lý so với các thuật toán phân loại hình ảnh khác . Điều này có nghĩa là mạng tìm hiểu các bộ lọc mà trong các thuật toán truyền thống được thiết kế bằng tay . Sự độc lập này từ kiến ​​thức trước và nỗ lực của con người trong thiết kế tính năng là một lợi thế lớn.

MLP là gì ?

Một Perceptron nhiều lớp  ( multilayer perceptron (MLP) ) là một lớp các feedforward mạng thần kinh nhân tạo (ANN). Thuật ngữ MLP được sử dụng một cách mơ hồ, đôi khi lỏng lẻo đối với bất kỳ ANN tiếp theo nào, đôi khi nghiêm túc để chỉ các mạng bao gồm nhiều lớp tri giác (có kích hoạt ngưỡng); . Các tri giác đa lớp đôi khi được gọi chung là các mạng thần kinh “vanilla”, đặc biệt khi chúng có một lớp ẩn duy nhất. 

Một MLP bao gồm ít nhất ba lớp nút: lớp đầu vào, lớp ẩn và lớp đầu ra. Ngoại trừ các nút đầu vào, mỗi nút là một nơron sử dụng hàm kích hoạt phi tuyến . MLP sử dụng một kỹ thuật học tập có giám sát được gọi là backpropagation để đào tạo.  Nhiều lớp và kích hoạt phi tuyến tính của nó phân biệt MLP với một tri giác tuyến tính . Nó có thể phân biệt dữ liệu không thể phân tách tuyến tính.

RNN là gì ?

Một mạng lưới thần kinh tái phát ( RNN ) là một lớp học của mạng nơ-ron nhân tạo nơi kết nối giữa các nút tạo thành một đồ thị có hướng dọc theo một trình tự thời gian. Điều này cho phép nó thể hiện hành vi năng động tạm thời. Xuất phát từ các mạng thần kinh feedforward , RNN (Recurrent Neural Networks) có thể sử dụng trạng thái bên trong (bộ nhớ) của chúng để xử lý các chuỗi độ dài thay đổi của đầu vào.  Điều này làm cho chúng có thể áp dụng cho các tác vụ như không nhận dạng, nhận dạng chữ viết tay được kết nối  hoặc nhận dạng giọng nói . 

Thuật ngữ mạng nơ-ron tái phát thường xuyên được sử dụng một cách bừa bãi để chỉ hai loại mạng rộng có cấu trúc chung tương tự nhau, trong đó một là xung hữu hạn và một là xung vô hạn . Cả hai lớp của mạng thể hiện hành vi năng động tạm thời .  Mạng tái phát xung hữu hạn là một đồ thị chu kỳ có hướng có thể không được kiểm soát và được thay thế bằng mạng thần kinh cấp dữ liệu nghiêm ngặt, trong khi mạng tái phát xung vô hạn là đồ thị tuần hoàn có hướng không thể kiểm soát được.

Feedback (RNNs): tín hiệu được truyền theo cả hai chiều, nó phức tạp hơn nhiều so với CNN, và luôn luôn thay đổi. Trong thực tế nó ít ảnh hưởng so với Feedforward bởi vì các nghiên cứu còn khá mới mẻ.

Đọc thêm:   tư vấn chỉnh sửa Luận văn Thạc sĩ Đại học

Tóm tắt cho các bạn nghiên cứu thống kê

Cái tóm tắt này là dạng cá nhân nghiên cứu, mới chỉ đúng ở hiện tại, còn tương lai thì chờ các bạn nghiên cứu tiếp:

  • Mạng nơron nào có 3 lớp thì ta gọi nó là ANN
  • Mạng nơron ANN nào chỉ có truyền thẳng 1 hướng gọi là FFNN
  • Mạng nơron ANN nào truyền từ nghiều hướng gọi là RNN
  • Mạng nơron ANN nào có nhiều lớp thì là MLP ( >= 2 lớp ẩn)
  • Những cái còn lại mình thấy ứng dụng cho những ngành khác, chưa thấy cho thống kê.

Dự báo ARIMA

Xây dựng mô hình nghiên cứu

Mô hình ARIMA, như đã nói ở trên chúng tôi không bàn về việc chạy model ARIMA mà chúng chọn mô hình ARIMA là AR(2) (Tức là mô hình chỉ có tự hồi quy AR mà không có trung bình trượt MA)  như vậy chúng ta có mô hình nghiên cứu để dự báo ARIMA như sau:

Y = AR(1) + AR(2) 

  • Y: Chỉ số VNINDEX
  • AR(1) chỉ số vn-index với độ trễ 1
  • AR(2) chỉ số vn-index với độ trễ 2

Chuẩn hoá dữ liệu

Dữ liệu dùng để xây dựng mạng nơron phải là dạng scale và chuẩn hoá min-max ( Chúng ta có thể chuẩn hoá theo logistic [0;1] hay tanh [-1;1] điều được), chúng ta chuẩn hoá min-max theo công thức sau:

Ych = (Y-Ymin )/(Ymax-Ymin)

Ta lấy dữ liệu đã chuẩn hoá chia thành 2 phần: 80% để chạy tập huấn và 20% để chạy kiểm tra ( chúng ta có thể lấy tỉ lệ khác)

Chạy tập huấn dữ liệu

Trước khi bàn về kết quả thì chúng ta thoã thuận trước như sau: 

  • Chúng ta chỉ chạy 1 lớp ẩn  ( các bạn có thể chạy lên 2 hoặc 3…)
  • Chúng ta cần chạy từ 1 đến 100 nơron (node), để tìm model phù hợp nhất, vì tôi đã chạy trước nên số lượng node phù hợp là : 5 ( Các bạn cần phải hạy hết để kiểm tra).

Để thực hiện ví dụ này chúng tôi sử dụng gói neuralne trong phần mềm R

Chạy kiểm tra

Chúng ta test lại với 20% dữ liệu còn lại xem có đúng không?

## thucte uocluong
## 1 0.57895345 0.5563011
## 2 0.28019350 0.5780993
## 3 0.09660974 0.5549046
## 4 0.47131231 0.5667600
## 5 0.39524692 0.5741981
## 6 0.53287267 0.5592369
## 7 0.57997577 0.5623722
## 8 0.29950021 0.5571277
## 9 0.35920811 0.5548869
## 10 0.01758944 0.5660083
## 11 0.45922573 0.5635551
## 12 0.97589064 0.5774018
## 13 0.60854794 0.5607967
## 14 0.58125548 0.5407993
## 15 0.12619105 0.5542512
## 16 0.56120287 0.5546772
## 17 0.79491920 0.5730296
## 18 0.83928584 0.5565283
## 19 1.00000000 0.5480892
## 20 0.67743875 0.5471242
## 21 0.57340480 0.5401839

Chúng ta tính các chỉ số RMSE, MAPE, MAE, ….

  • RMSE = sqrt (sum(thucte – uocluong)/n) = 0.024
  • MAPE = 1/n * sum(|thucte-uocluong|/|thucte|)
  • MAE = 1/n * sum(|thucte-uocluong|)

Như vậy chúng ta có RMSE nhỏ nhất tại 0.024, khi node=5 và hidden layer =1

Giờ dự báo thôi.

Dự báo ARIMA ứng dụng mạng nơron

Cái phần màu xanh blue chính là phần dự báo của mô hình. Đến đây thì chúng ta đã hoàn thành mục tiêu của bài viết này: ứng dụng mạng nơron trong dự báo arima.

Tóm tắt

Trên đây là chúng tôi sử dụng kết họp ứng dụng mạng nơron vào dự báo ARIMA, nếu các bạn có nghiên cứu khoa học liên quan tới mạng nơron, các bạn đừng ngần ngại hãy liên  hệ ngay với chúng tôi để được tư vấn dịch vụ miễn phí.

 

 

 

 

 

Summary
Review Date
Reviewed Item
Tài liệu quá hay
Author Rating
51star1star1star1star1star
Product Name
Hướng dẫn ứng dụng mạng nơron
Price
VND 3000000
Product Availability
Available in Stock