0
Tải bản đầy đủ (.docx) (64 trang)

Phương pháp học và thuật toán lan truyền ngược cho mạng

Một phần của tài liệu NGUYÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ DỰ ĐOÁN XU THẾ GIÁ CHỨNG KHOÁN DỰA TRÊN NỀN TẢNG MÃ NGUỒN MỞ (Trang 25 -64 )

3.4.1. Cơ sở lý thuyết học của mạng

a. Khái niệm học

Việc học cho mạng noron rất quan trọng vì nó sẽ quyết định cách ứng xử của mạng với môi trường. Vậy học là gì?

Học là một quá trình mà nhờ đó ngưỡng và các liên kết giữa những noron được thiết lập dưới tác động của môi trường [2].

Điểm mấu chốt của quá trình học chính là thuật toán học. Không có một thuật toán học chung mà tồn tại rất đa dạng các thuật toán khác nhau áp dụng linh hoạt cho từng ứng dụng cụ thể. Ở trong khóa luận này, tôi sẽ sử dụng thuật toán lan truyền ngược cho ứng dụng của mình.

b. Mô hình học

Trong phần (a), ta thấy việc học cần có sự tác động của môi trường. Mô hình học

chính cách thức quan hệ của mạng với môi trường. Có hai mô hình phổ biến là học có

giám sát (supervised learning) và học không có giám sát (unsupervised learning).

Học có giám sát [3] : là phương pháp mà mạng được cung cấp những cặp mẫu đầu

vào và đầu ra tương ứng. Nhiệm vụ của quá trình học là từ đầu vào được đã cho sẽ xử lý

tạo ra một đầu ra tương ứng sao cho gần nhất với đầu ra mong muốn. thuật toán lan

truyền ngược sẽ giới thiệu sau đây thuộc loại học có giám sát

Học không giám sát [3]: điểm khác biệt với học có giám sát ở chỗ là đầu ra đúng

tương ứng cho mỗi đầu vào là không biết trước. Trong học không có giám sát, một tập dữ

liệu đầu vào được thu thập. Học không có giám sát thường đối xử với các đối tượng đầu

vào như là một tập các biến ngẫu nhiên. Sau đó, một mô hình mật độ kết hợp sẽ được xây

dựng cho tập dữ liệu đó.

3.4.2. Thuật toán lan truyền ngược (back – propagation)

Giả sử chúng ta muốn huấn luyện mạng với một tập dữ liệu huấn luyện mẫu bao

gồm giá trị đầu vào là xp và giá trị đầu ra mong muốn là dp. Với mỗi đầu vào được cung

cấp sẵn, đầu ra của mạng sai khác so với đầu ra mong muốn dp một lượng là (dp – yp),

trong đó yp là đầu ra thực sự của mạng với đầu vào xp. Ta định nghĩa một hàm lỗi tại

đối với các noron đầu ra:

= ( − ) (2.2) Trong đó No là tổng số các noron đầu ra Chúng ta xét noron k với đầu vào là các đầu ra của các noron trong lớp trước đó. Như phần phân tích cấu trúc của một noron ở trên ta có các biểu thức tại noron k này: 18 1 = ( ) (2.1) 1 1 2

=

là tín hiệu đầu ra của noron k với mẫu p.

(2.3)

là tín hiệu đầu vào cho noron k cũng chính là đầu ra của các noron ở lớp trước

Mục đích quá trình học đối với thuật toán làn truyền ngược là điều chỉnh các tham số tự do sao cho hàm lỗi tổng cộng Ep đạt cực tiểu. Phương pháp tìm cực tiểu thông dụng

nhất là tính đạo hàm của hàm số và dịch chuyển vector tham số lại gần điểm đạo hàm triệt

tiêu theo chiều ngược với vector gradient của hàm số. Ý tưởng của phương pháp này là

được định nghĩa bởi công thức.

γ là hằng số tỷ lệ và chính là tốc độ học của mạng

Chúng ta có thể viết

Việc còn lại là phải tính . Để tính được nó chúng ta thực hiện một chút biến đổi

19

= . (2.4)

thay đổi các trọng số wkj một lượng là

= − (2.5) = . (2.6) = (2.7) = − = (2.8) = − = − . (2.9) = (2.10)

Trong công thức (2.10) giá trị chính là đạo hàm của hàm truyền tại noron k Để tín h đư ợc ta xét 2 trường hợp.

Trường hợp thứ nhất: noron k đang xét là noron đầu ra của mạng (k = o). Trong

trường hợp này chúng ta có:

Do đó:

Trường hợp thứ hai: noron k đang xét thuộc lớp ẩn (k = h). Trong trường hợp này

chúng ta không thể biết được sự sai khác giữa đầu ra mong muốn của noron với đầu ra thực tế như trường hợp thứ nhất. Tuy nhiên chúng ta có thể tính toán thông qua các noron

thuộc lớp đầu ra như sau: Coi

= . = . =

(2.13)

Đo đó

Phương trình (2.12) và (2.14) đưa ra một thủ tục đệ quy cho việc tính toán δ đối với

tất cả các noron trong mạng. Sau khi tính được δ chúng ta sẽ dễ dàng tính được sự biến

thiên trọng số liên kết theo công thức (2.8).

Trên cơ sở đó thuật toán lan truyền ngược sai số để huấn luyện mạng MLP được mô

tả chi tiết hơn như sau:

20 = −( ) = (2.11) = = ( − ).( ) (2.12) = ( , ,……., , … ) khi đó: = ( )

INPUT: tập mẫu học được cung cấp dưới dạng (x = (x1,x2,..,xp),y = (y1,y2,..,yq)) với số lượng mẫu là N

OUTPUT: các ma trận trọng số w1,w2,..,wM và các vector ngưỡng tại các nơ ron ở các lớp b1,b2,..,bM

PROCESS:

Bước 1: Khởi tạo các tham số mạng (trọng số và ngưỡng), hệ số học η, sai số tối đa cho phép Emax và số lần huấn luyện tối đa I.

Khởi tạo k = 1 (mẫu học thứ k), i = 1 (lần huấn luyện thứ i)

Bước 2: Đưa mẫu huấn luyện thứ k vào mạng

Bước 3: Lan truyền xuôi tín hiệu đầu vào lần lượt qua các lớp nơ ron (từ lớp ẩn thứ nhất, qua lớp ẩn thứ hai, .., đến lớp đầu ra) để tính đầu ra tương ứng tại mỗi lớp theo công thức (2.0)

Bước 4: Tính sai số E và tín hiệu sai số ở lớp đầu ra của mạng theo công thức (2.12) và (2.13).

Bước 5: Lan truyền ngược tín hiệu sai số (từ lớp đầu ra, qua lớp ẩn cuối cùng,.., đến lớp ẩn đầu tiên) để cập nhật trọng số và ngưỡng tại các lớp nơ ron cũng như tính tín hiệu sai số cho lớp trước nó theo các công thức (2.10)(2.11) và (2.7)

Bước 6: Nếu k<N (chưa hết số mẫu học) thì k:=k+1 và quay lại bước 2, ngược lại chuyển tới bước 7

Bước 7: Tính sai số trung bình sau lần huấn luyện thứ i với tập mẫu gồm N mẫu

N k=1

Nếu E<Emax hoặc i>I thì trả về các ma trận trọng số và các vector ngưỡng và kết thúc quá trình huấn luyện. Ngược lại gán i:=i+1 rồi lặp lại các bước từ 2 tới 7

Như vậy tôi đã trình bày về mạng noron cũng như thuật toán lan truyền ngược. Đó là những cơ sở lý thuyết để tôi tiến hành đi vào xây dựng mô hình chương trình của tôi sau này.

Chương 4. MẠNG NORON CHO QUÁ TRÌNH DỰ

ĐOÁN

4.1. Mô hình mạng noron cho việc dự báo

Dựa trên kiến trúc của một hệ thống khai phá dữ liệu đã được tôi trình bày ở chương 2, cùng với nhữn lý thuyết về mạng noron ở chương 3. Chúng ta có thể sử dụng mô hình sau cho việc dự đoán:

Tập huấn luyện Tập đánh n,⃗ Học cho mạng Mạng đã được học giá Hàm đánh giá Yes No Tập dự

đoán Mạng tối ưu

Kết quả

Hình 4.1 – Mô hình dự đoán sử dụng mạng noron

Mô hình trên bao gồm:

Tập đánh giá: là tập dùng để kiểm chứng việc học của mạng.

Hàm đánh giá: thực hiện công việc kiểm định xem mạng đã đáp ứng được yêu cầu của hệ thống chưa.

Tập dự đoán: là tập dữ liệu có cấu trúc giống như tập huấn luyện nhưng giá trị cần dự đoán bị khuyết và nhiệm vụ của mạng noron đã được tối ưu là bổ sung giá trị bị khuyết này của tập dự đoán.

Quá trình hoạt động của mô hình

Giai đoạn học: Ban đầu mạng noron với thuật toán lan truyền ngược (đã giới thiệu ở trên) sẽ sử dụng tập huấn luyện làm vector đầu vào để xác lập các tham số cho mạng như số lớp ẩn, các trọng số liên kết… Kết quả thu được sẽ là một mạng đã được học, tuy nhiên để đảm bảo nó đáp ứng được độ chính xác cao cần phải cho chạy thử với tập dữ liệu khác dùng để đánh giá. Ta sẽ thu tỷ lệ lỗi của mạng đối với tập đánh giá này và thực hiện so sánh với tỷ lệ lỗi giới hạn, nếu đáp ứng được thì chấp nhận mạng vừa được học đó, nếu không thì thay đổi tham số và quay lại bước học

Giai đoạn dự đoán: Sau khi kết thúc giai đoạn học, ta sẽ thu được một mô hình mạng nơ ron với các tham số tốt nhất. Khi đó, ta chỉ cần dùng bộ dữ liệu dùng để dự đoán áp vào mô hình thì mô hình sẽ trả lại kết quả dự báo.

4.2. Các bước thiết kế mô hình

Không có một phương pháp chung nào để xác định cấu trúc phù hợp của mạng nơ ron cho từng bài toán. Việc thiết kế mạng nơ ron có thành công hay không phụ thuộc vào sự hiểu biết rõ ràng về vấn đề, có thể dựa vào thực nghiệm hoặc kinh nghiệm trong lĩnh vực đó.

Việc chọn lọc dữ liệu đầu vào và hiệu chỉnh trọng số là rất quan trọng trong mạng nơ ron. Nelson và Illingworth [9] đưa ra 8 bước trong việc thiết kế một mạng nơ ron như sau:

1. Chọn lựa các biến. 2. Thu thập dữ liệu 3. Tiền xử lý dữ liệu

4. Phân chia tập dữ liệu thành các tập: huấn luyện, kiểm tra, kiểm định. 5. Xác định cấu trúc mạng - - - - Số tầng ẩn Số các nơ ron ẩn Số các nơ ron đầu ra, Hàm chuyển

6. Xác định tiêu chuẩn đánh giá (hàm lỗi) 7. Huấn luyện mạng nơ ron

- - Tiêu chuẩn dừng Tốc độ “học” và tốc độ hội tụ 8. Triển khai 4.2.1. Chọn lựa các biến

Trong bất kỳ một bài toán nào cũng vậy chúng ta luôn phải xác định đầu vào (các biến) cho chúng. Trong bài toán dự báo chứng khoán này của tôi cũng thế, tôi cũng phải lựa chọn cho mình những biến đầu vào. Như tôi đã nói ở phần giới thiệu, có quá nhiều yếu tố ảnh hưởng đến tương lai của một mã chứng khoán, và chúng thường khá phức tạp, không có một quy luật củ thể nào. Khóa luận này tôi sẽ chỉ sử dụng giá chứng khoán tại các thời điểm trong quá khứ để dự đoán giá cho thời điểm mong muốn.

Như vậy dữ liệu của mô hình gồm một chuỗi các quan sát:

4.2.2. Thu thập dữ liệu

( )

Dữ liệu về giá chứng khoán trong bài toán được tôi thu thập bằng cách sử dụng một phần mềm mã nguồn mở là jstock. Phần mềm này có khả năng thu thập được rất nhiều chứng khóa của 24 nước trên thế giới. Chi tiết hơn về jstock tôi sẽ mô tả trong phần sau của khóa luận

4.2.3. Tiền xử lý dữ liệu

Dữ liệu thu thập được cần phải được xử lý cho phù hợp với đầu vào của mạng trước khi chúng được sử dụng. Theo như kiến thức mô tả về mạng noron ở chương 3, dư liệu sẽ gồm đầu vào và đầu ra thực sự. Trong bài toán này của tôi, đầu vào ở đây là k giá trị

chứng khoán trước đó (k được cho trước). Đầu ra là giá trị dự đoán cho thời điểm tương lai.

Rh(t+1) Rh(t) Rh(t-1) … Rh(t-k+1)

Với bài toán này, ta tổ chức dữ liệu theo chiều tiến của thời gian với cột đầu tiên là giá chứng khoán của thời điểm thứ k trước đó và các cột còn lại là giá trị chứng khoán tại các thời điểm tăng đần theo thời gian.

Bảng 4.1 – Tổ chức dữ liệu của mô hình

Như vậy với cách thức tổ chức này thì đầu ra chính là giá trị của cột cuối cùng.

4.2.4. Phân hoạch tập dữ liệu

Bất kể một mô hình nào cũng cần phải được đánh giá và kiểm tra trước khi đưa vào áp dụng thực tế. Chúng ta sẽ làm việc này bằng cách chia tập dữ liệu đã được chuẩn hóa thành ba tập dữ liệu con gồm: tập huấn luyện (training set), tập đánh giá (validation set), và tập kiểm tra (testing set). Tập dữ liệu là tập con lớn nhất ( thường chiếm tới 70%) dùng để huấn luyện và thiết lập các tham số của mạng. Tập đánh giá ( thường chiếm 20%) được sử dụng với mục đích kiểm định xem mô hình học đã thực sự tốt hay chưa. Nếu chưa tốt thì tiến hành học lại. Tập kiểm tra (thường chiếm 10%) dùng để kiểm tra độ chính xác của mô hình trước khi chúng được đưa vào áp dụng thực tế. Một mô hình mạng noron tốt là mô hình mà cho tỉ lệ lỗi với tập test ở mức chấp nhận được. Hình vẽ dưới đây thể hiện tỉ lệ kích thước giữa các tập huấn luyện, kiểm tra và kiểm chứng [9].

Rh(1) Rh(2) … Rh(k) Rh(k+1) Rh(2) Rh(3) …

Hình 4.2 – Tỷ lệ kích thước giữa các tập huấn luyện [9]

Hiện tượng overfitting [3], [9] thường xảy ra khi tập huấn luyện không đủ độ tổng quát. Nói theo cách khác, có tương đối ít các mẫu quan sát về các mối tương quan giữa các tham số của mô hình vì thế mà mô hình có khả năng ghi nhớ các mẫu riêng lẻ hơn là tổng quát hóa các mẫu. Với mạng nơ ron, số trọng số liên kết và kích thước tập huấn luyện có ảnh hướng quyết định đến nguy cơ overfitting. Số trọng số liên kết càng lớn hơn kích thước của tập huấn luyện, thì mạng càng có khả năng ghi nhớ tốt các mẫu riêng lẻ. Kết quả là khả năng tổng quát hóa trên tập kiểm chứng bị mất dẫn tới khả năng dự báo của mô hình giảm đi rõ rệt.

Để ngăn chặn nguy cơ overfitting (hiện tượng khả năng học của mạng là rất tốt nhưng khả năng tổng quát hóa của mạng là kém, tức là mạng dự đoán tốt với những dữ liệu đã được huấn luyện nhưng lại tỏ ra kém hiệu quả khi dữ liệu mới vào mô hình) thì kích cỡ của tập huấn luyện ít nhất phải bằng 5 lần số trọng số liên kết [5].

4.2.5. Xác định cấu trúc mạng

Số lượng tầng ẩn

Những tầng ẩn cung cấp cho mạng năng lực để tổng quát hóa.

Trên lí thuyết, chỉ cần 1 lớp cũng đủ tương đương với bất kì hàm liên tục nào. Cả lý thuyết và kinh nghiệm làm việc đều chỉ ra rằng việc thiết kế mạng nơ ron quá 4 tầng (tầng đầu vào, tầng đầu ra và 2 tầng ẩn) sẽ không giúp cải thiện kết quả phân lớp.

Hơn thế, việc tăng số lượng tầng ẩn làm tăng khả năng overfitting và tăng thời gian tính toán [9].

Số lượng nơ ron tầng vào và tầng ẩn

Không có công thức chung nào giúp chỉ ra số nơ ron tầng ẩn thích hợp cho mọi bài toán. Sự lựa chọn số nơ ron ẩn thích hợp phụ thuộc rất nhiều vào kinh nghiệm. Tuy nhiên cũng có một số gợi ý mà các nhà nghiên cứu đưa ra giúp chúng ta có những bước chọn thuận lợi.

Một mô hình mạng nơ ron ba lớp với n nơ ron ở tầng vào và m nơ ron ở tầng ra thì . Baily và Thompson thì đề nghị rằng số nơ ron của tầng ẩn bằng khoảng 75% số nơ ron của tầng vào. Theo Katz [7] thì cho rằng số nơ ron ẩn tối ưu gấp 1.5 đến 3 lần số nơ ron tầng vào.

Các gợi ý trên cho thấy việc lựa chọn số nơ ron của tầng ẩn phụ thuộc hoàn toàn vào số nơ ron của tầng vào, điều này khiến mô hình mạng dễ rơi vào trạng thái overfitting. Giải pháp được đưa ra là tăng kích thước tập huấn luyện, nếu điều này không thể thực hiện thì có thể nâng giới hạn số nơ ron tầng vào. Như thế số lượng trọng số liên kết ít nhất bằng một nửa số lần huấn luyện.

Tuy nhiên, lựa chọn được số lượng nơ ron ẩn tốt nhất vẫn là ở thực nghiệm.

Số nơ ron tầng ra

Trong các bài toán dự báo tài chính, số nơ ron tầng ra luôn luôn là 1. Việc sử dụng nhiều giá trị đầu ra sẽ tạo ra kết quả thấp hơn so với một mạng nơ ron với một đầu ra [6]. Lý do là một mạng nơ ron được huấn luyện bằng cách chọn trọng số với bất kì số lượng nơ ron đầu ra nào đều đã được tối ưu. Có thêm nhiều đầu ra làm tăng không gian lưu trữ cũng như khả năng tính toán.

Hàm truyền

Hầu hết các mô hình mạng nơ ron đều sử dụng hàm truyền sigmoid, hàm này vẫn tỏ ra khá hiệu quả và đơn giản, phù hợp với mô hình dự đoán của chúng ta.

Sau đây là một số kết quả về độ hội tụ của mạng nơ ron với một số bộ giá trị tham số cho trước. Trong mỗi hình này, đường mầu xanh serie 1 là các giá trị thực tế của đối số nơ ron ở tầng ẩn có thể bằng: √ ×

tượng cần huấn luyện trong mạng nơ ron, đường mầu hồng serie 2 là các giá trị dự đoán

Một phần của tài liệu NGUYÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ DỰ ĐOÁN XU THẾ GIÁ CHỨNG KHOÁN DỰA TRÊN NỀN TẢNG MÃ NGUỒN MỞ (Trang 25 -64 )

×