Professional Documents
Culture Documents
BÁO CÁO ĐỒ ÁN 2
Ngành: Công nghệ kỹ thuật máy tính
Đề tài:
BÁO CÁO ĐỒ ÁN 2
Ngành: Công nghệ kỹ thuật máy tính
Đề tài:
Để tìm hiểu sâu hơn về trí tuệ nhân tạo nói chung cũng như các kĩ thuật dự
đoán huấn luyện mô hình, chúng tôi quyết định lựa chọn đề tài:“ Dự đoán giá cổ
phiếu ngắn hạn bằng phương pháp tập hợp và Nguồn dữ liệu trực tuyến” Do thời
gian hạn hẹp cũng như việc thiếu nhiều kĩ năng trong xây dựng, hiểu biết ít các mô
hình đã áp dụng cũng như những hiểu biết về AI, đề tài của chúng tôi vẫn còn nhiều
hạn chế. Rất mong nhận được sự đóng góp ý kiến của thầy và các bạn để đề tài ngày
càng hoàn thiện hơn.
LIỆT KÊ HÌNH
Hình 2. 1: quá trình biến đổi một chuỗi thời gian thành hình ảnh GADF và GASF..................2
Hình 4. 5: Mô-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất..................................8
Hình 4. 6: Mô-đun lặp lại trong LSTM chứa bốn lớp tương tác................................................8
Hình 4. 9: Cấu trúc bên trong của ConvLSTM. Bằng phép toán tích chập..............................10
CHƯƠNG 1 : MÃ HÓA CHUỖI THỜI GIAN THÀNH HÌNH ẢNH ĐỂ DỰ BÁO TÀI CHÍNH. .1
I. Giới thiệu...............................................................................................................................1
4. Mô hình mạng...............................................................................................................5
Trang 1
Khoảng cách giữa hai lần quan sát liên tiếp không phải lúc nào cũng giống nhau, do
đó buộc nhà nghiên cứu phải tổng hợp dữ liệu để thống nhất khoảng cách thông qua
toàn bộ chuỗi thời gian. Việc áp dụng Hình ảnh đa độ phân giải là cần thiết.
Để xây dựng hình ảnh GAF, trước tiên thay đổi kích thước đầu vào của quan
sát của chuỗi thời gian thành khoảng [-1,1]
Sau đó, được chuyển thành một tọa độ cực hệ thống bằng cách tính toán
cosin góc của các thành phần đơn lẻ của chuỗi thời gian được chia tỷ lệ
Cuối cùng, trường góc tổng kết Gramian (GASF) và Trường góc khác biệt
Gramian (GADF) có thể dễ dàng thu được bằng tính tổng/chênh lệch giữa các thời
điểm
Hình 2.1 trình bày quá trình biến đổi một chuỗi thời gian thành hình ảnh
GADF và GASF. Điều chú ý là các phương trình trong (3) sẽ tạo ra ma trận 1D làm
đầu ra của quá trình mã hóa có tính chất như một bản đồ nhiệt
Hình 2. 1: quá trình biến đổi một chuỗi thời gian thành hình ảnh GADF và GASF
Trang 2
3. Tạo ảnh GAF từ tập dữ liệu BTC
Trang 3
- Sau khi lọc dữ liệu đầu vào bước tiếp theo là xóa ngày và giờ không giao
dịch. Chỉ lấy các ngày trong tuần, xóa dữ liệu thứ 7 và chủ nhật và các ngày lễ chỉ
lấy các giao dịch nằm trong khung giờ từ 9h đến 16h. Điều này sẽ làm mịn dữ liệu,
loại bỏ sự không nhất quán và giảm mức sử dụng bộ nhớ.
- Tiếp đến sẽ tiến hàng tạo ảnh GAF, bước đầu tiên cần định dạng lại ngày
cho cột Datetime, sau đó loại bỏ các ngày trùng nhau để tạo thành một chuỗi ngày
liên tiếp (đã loại bỏ các ngày cuối tuần và ngày lễ). Tạo vùng lưu ảnh, ảnh sẽ được
phân làm 2 loại Long và Short nếu giá đóng cửa của ngày tiếp theo cao hơn giá
đóng cửa của ngày hiện tại ảnh sẽ được phân vào loại Long và ngược lại.
- Mỗi lần tạo ảnh cần dữ liệu của 20 ngày liên tiếp và sau đó tổng hợp chuỗi
thời gian thành bốn khoảng thời gian khác nhau (một giờ, hai giờ, bốn giờ và một
ngày) sẽ tạo thành 1 ảnh GAF, và dữ liệu hoạt động theo cơ chế thanh trượt, ảnh
tiếp theo sẽ lấy dữ liệu của 20 ngày đầu trượt lên 1 ngày (Ví dụ: ảnh GAF thứ 1 lấy
dữ liệu của ngày thứ 1-20, ảnh GAF thứ 2 sẽ lấy dữ liệu của ngày 2-21)
- Vì 1 ảnh GAF cần dữ liệu của 20 ngày với 4 nhóm thời gian khác nhau, với
nhóm 1 ngày dữ liệu sẽ có 20 dòng, nhóm 1 giờ sẽ có 24x20=480 dòng, nhóm 2 giờ
sẽ có 12x20=240 dòng. Ta thấy các dòng ở mỗi nhóm là khác nhau nhưng để tạo
được ảnh có tỉ lệ bằng nhau cần phải có chung dòng dữ liệu. Giải pháp đưa ra là lấy
dòng dữ liệu nhỏ nhất làm chuẩn (20 dòng) các nhóm sau sẽ lấy 20 dòng dữ liệu
cuối cùng để tạo ảnh.
- Sau khi tạo được ảnh sẽ phân ảnh vừa tạo theo đúng nhóm của chúng gồm
Long và Short dựa trên giá đóng cửa cuối ngày. Và đưa vào mô hình mạng
Trang 6
Hình 4. 4: : Sơ đồ khối mô hình Convolution 2D
Trang 7
4.2. Mô hình mạng LSTM
LSTM[1] Viết tắt của Long-short term memory, là một kiến trúc mạng nơ
ron hồi quy nhân tạo được sử dụng trong deep learning. Không giống như các mạng
truyền thẳng tiêu chuẩn, LSTM có các kết nối phản hồi. Nó không chỉ có khả năng
xử lý các điểm dữ liệu đơn lẻ mà còn xử lý toàn bộ chuỗi dữ liệu mà không gặp phải
vấn đề vanishing gradient.
Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của
mạng nơ-ron. Với mạng RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản,
thường là một tầng tanh.
Hình 4. 5: Mô-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất.
LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó có
cấu trúc khác với mạng RNN chuẩn. Thay vì chỉ có một tầng mạng nơ-ron, chúng
có tới 4 tầng tương tác với nhau một cách rất đặc biệt.
Hình 4. 6: Mô-đun lặp lại trong LSTM chứa bốn lớp tương tác.
LSTM là một bước lớn trong việc sử dụng RNN. Ý tưởng của nó giúp cho tất
cả các bước của RNN có thể truy vấn được thông tin từ một tập thông tin lớn hơn.
Ví dụ, nếu bạn sử dụng RNN để tạo mô tả cho một bức ảnh, nó có thể lấy một phần
ảnh để dự đoán mô tả từ tất cả các từ đầu vào.
Trang 8
Hình 4. 7: Mô hình code LSTM
Do input shape đầu vào của LSTM chỉ có 3D tensor nên cần phải nới rộng
input shape lên 4D tensor nhờ vào lớp TimeDistributed. Tiếp đến sử dụng lớp
Flatten vào để chuyển đổi không gian 3 chiều thành 1 chiều. Tiếp tục thêm lớp
Dropout giá trị 0.5 và cuối cùng là lớp Dense với unit=1 ngõ ra 1 chiều.
Trang 9
Hình 4. 9: Cấu trúc bên trong của ConvLSTM. Bằng phép toán tích chập
ConvLSTM thay thế phép nhân ma trận bằng thao tác tích chập ở mỗi cổng
trong ô LSTM. Bằng cách đó, nó nắm bắt các đặc điểm không gian cơ bản bằng các
phép toán tích chập trong dữ liệu nhiều chiều.
Trang 10
Hình 4. 11: Sơ đồ khối mô hình ConvLSTM
Cả ba mô hình đều biên dịnh theo trình biên dịch Adam giúp tối ưu hóa trong
quá trình huấn luyện.
5. Tăng cường dữ liệu
Bước tiếp theo sử dụng Keras ImageDataGenerator[2] , các hình ảnh được
thay đổi kích thước và chia chúng thành các bộ huấn luyện. Tiếp đến chúng ta cần
tăng cường dữ liệu (data augmentation) để phục vụ cho việc nếu chúng ta có ít dữ
liệu, thì chúng ta vẫn có thể tạo ra được nhiều dữ liệu hơn dựa trên những dữ liệu đã
có.
Trong keras có hỗ trợ class ImageDataGenerator cho phép tạo thêm dữ liệu.
Class ImageDataGenerator có 3 phương thức flow(), flow_from_directory() và
flow_from_dataframe() để đọc các ảnh từ một mảng lớn numpy và thư mục chứa
ảnh trong 3 mô hình trên đều sử dụng phương thức flow_from_dataframe() vì tất cả
các hình ảnh đều có trong một thư mục và các lớp tương ứng của chúng được ánh xạ
trong tệp CSV nhưng Keras không hỗ trợ điều này sớm hơn và người ta sẽ phải di
chuyển các hình ảnh để tách riêng các thư mục có tên lớp tương ứng của chúng hoặc
Trang 11
viết một trình tạo tùy chỉnh để xử lý trường hợp này. Vì vậy flow_from_dataframe()
được áp dụng.
Trang 12
Convolution2D cần tiêu tốn rất nhiều thời gian để huấn luyện từ 1-2 tiếng trong khi
đó mô hình LSTM chỉ mất rất ít thời gian chỉ 10 phút để huấn luyện và mô hình
ConvLSTM chỉ mất 5 phút để chạy xong. Nhưng với kết quả cho thấy mô hình
ConvLSTM cho ra kết quả thấp nhất nên ConvLSTM thường không được sử dụng
rộng rãi so với LSTM và Convolution2D.
Trang 13
TÀI LIỆU THAM KHẢO
Trang 14