GIỚI THIỆU VỀ HỌC MÁY VÀ CÁC MÔ HÌNH HỌC MÁY
KHÁI NIỆM
Theo Giáo sư Tom Mitchell của Đại học Carnegie Mellon: Học máy là một chương trình máy tính được nói là học hỏi từ kinh nghiệm E từ các tác vụ T và với độ đo hiệu suất P Nếu hiệu suất của nó áp dụng trên tác vụ T và được đo lường bởi độ đo P tăng từ kinh nghiệm E.
Các tác vụ trong học máy được mô tả thông qua việc một hệ thống xử lý một điểm dữ liệu (hay còn được hiểu là một bản ghi) đầu vào như thế nào Kinh nghiệm trong học máy là bộ dữ liệu được dùng để xây dựng mô hình Trong quá trình xây dựng mô hình, bộ dữ liệu thường được chia ra thành hai tập dữ liệu không giao nhau: là tập huấn luyện (training set) và tập kiểm tra (test set) Tập huấn luyện bao gồm các điểm dữ liệu được sử dụng trực tiếp trong việc xây dựng mô hình Tập kiểm tra gồm các dữ liệu được dùng để đánh giá hiệu quả của mô hình Tập kiểm tra không được sử dụng trong quá trình xây dựng mô hình.
Về bản chất của học máy được công nhận một cách chung nhất, việc xây dựng mô hình học máy chính là việc đi tìm hàm số f ánh xạ một điểm dữ liệu x vào một phần tử y Y : f (x) = y
CÁC BÀI TOÁN CƠ BẢN TRONG HỌC MÁY
Phân loại là một trong những bài toán phổ biến và được nghiên cứu nhiều nhất trong học máy Trong bài toán này, chương trình được yêu cầu xác định nhãn của một điểm dữ liệu trong số C nhãn khác nhau Cặp (dữ liệu, nhãn) được ký hiệu là (x, y) với y nhận một trong C giá trị của tập đích Y
Ví dụ 1: Bài toán phân loại khả năng trả nợ của khách hàng (có hoặc không) Kinh nghiệm: dữ liệu đã biết về khả năng trả nợ của khách hàng hiện hữu Tác vụ: xác định được khách hàng có khả năng trả nợ hay không. Độ đo hiệu suất: số lượng dự đoán đúng trong tập kiểm tra
Ví dụ 2: Bài toán phân loại khách hàng theo điểm tín dụng (xếp hạng tín dụng khách hàng)
Kinh nghiệm: dữ liệu đã biết về thứ hạng tín dụng của khách hàng hiện hữu Tác vụ: xác định được khách hàng thuộc thứ hạng nào hoặc khoảng điểm nào. Độ đo hiệu suất: số lượng dự đoán đúng trong tập kiểm tra
Tương tự như bài toán Phân loại, nhưng khi tập đích Y gồm các giá trị là số thực thì bài toán được gọi là hồi quy Trong bài toán này ta cần xây dựng một hàm số f : D →
Ví dụ 1: Dự báo giá nhà dựa trên D trường thông tin về một căn nhà như diện tích, số phòng ngủ, vị trí, số tầng, hướng căn nhà, …
Ví dụ 2: Dự báo chỉ số VN-Index
Phân cụm là bài toán với mục đích chính là phân chia dữ liệu hiện có thành các cụm nhỏ hơn dựa trên sự liên quan giữa các dữ liệu trong mỗi cụm Trong bài toán này, dữ liệu không được gán nhãn do đó sẽ không còn dữ liệu huấn luyện và dữ liệu kiểm tra như các bài toán trên Mô hình sẽ phân dữ liệu thành các cụm khác nhau.
Ví dụ: phân cụm khách hàng dựa trên hành vi tài chính hay mua hàng Dựa trên dữ liệu đã có về hành vi tài chính hay tiêu dùng của khách hàng để có thể phân khách hàng vào các cụm có hành vi giống nhau Từ đó có thể đưa ra sự gợi ý về các dịch vụ mà khách hàng có thể quan tâm.
1.2.4 Bài toán hoàn thiện dữ liệu:
Trong thực tế, việc một bộ dữ liệu thiếu thông tin, dữ liệu thu thập không chính xác, hoặc có thể việc thu thập các đặc trưng cần thiết cho bộ dữ liệu không dễ dàng là một điều thường xuyên xảy ra Và bài toán hoàn thiện dữ liệu là bài toán được đưa ra để khắc phục, sửa chữa những hạn chế như vậy Hoàn thiện dữ liệu là bài toán dự đoán các trường dữ liệu còn thiếu, dự đoán những giá trị thiếu của dữ liệu dựa trên mối tương quan giữa các điểm dữ liệu.
PHÂN NHÓM CÁC THUẬT TOÁN HỌC MÁY
Dựa trên tính chất của tập dữ liệu, các thuật toán học máy có thể được phân thành 4 nhóm chính như sau:
✓ Học có giám sát (Supervised Learning)
✓ Học không có giám sát (Unsupervised Learning)
✓ Học bán giám sát (Semi-Supervised Learning)
✓ Học tăng cường (Reinforcement Learning)
Một thuật toán học máy được gọi là học có giám sát nếu việc xây dựng mô hình dự đoán mối quan hệ giữa đầu vào và đầu ra được dựa trên các cặp đầu vào-đầu ra đã biết trong tập huấn luyện.
Diễn giải: học có giám sát xảy ra khi việc dự đoán quan hệ giữa đầu vào x và dữ liệu đầu ra y được thực hiện dựa trên các cặp (x1 ; y 1 );(x2 ; y 2 ); ; (x N ; y N ) trong tập huấn luyện với mỗi x là một vector đặc trưng D chiều thể hiện D thuộc tích của một điểm dữ liệu x Nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán như thế nào đó để sao cho với mỗi vector đặc trưng D chiều dầu vào thì sai số giữa giá trị đầu ra của mô hình và giá trị thực tế tương ứng là nhỏ nhất Hay nói cách khác việc huấn luyện là việc xây dựng một hàm số f sao cho với mọi i 1,2, ,N thì f (x i ) gần với y i nhất có thể Hơn nữa khi có một điểm dữ liệu x nằm ngoài tập huấn luyện thì đầu ra dự đoán của mô hình là f (x) cũng gần với giá trị đầu ra thực tế là y.
Ví dụ như: dự báo khả năng trở nợ của một khách hàng mới với mô hình được xây dựng từ dữ liệu của các khách hàng đã biết về thông tin các thuộc tính và khả năng trả nợ của những khách hàng này
Trong thuật toán này, dữ liệu huấn luyện chỉ bao gồm các dữ liệu đầu vào x mà không có đầu ra y tương ứng như trong học có giám sát Trong bài toán học không giám sát tập dữ liệu huấn luyện được cho dưới dạng D = (x1 , x2 , , x N mỗi x là một vector đặc trưng D chiều.
Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con sao cho các điểm dữ liệu có đặc tính giống nhau vào từng nhóm Ví dụ như phân cụm các khách hàng có hành vi tài chính hoặc tiêu dùng giống nhau vào cùng một nhóm.
Thuật toán mà tập huấn luyện bao gồm các cặp đầu vào-đầu ra nhưng dữ liệu ngoài tập huấn luyện thì chỉ có dữ liệu đầu vào x mà không có dữ liệu đầu ra y thì được gọi là học bán giám sát.
Học tăng cường đôi khi còn được gọi là học thưởng-phạt (reward-penalty learning), thuật toán học máy này có thể không yêu cầu dữ liệu huấn luyện mà mô hình sẽ học cách ra quyết định bằng cách giao tiếp trực tiếp với môi trường xung quanh Các thuật toán thuộc nhóm này liên tục ra quyết định và nhận phản hồi từ môi trường để củng cố hành vi của mình Phương pháp này cụ thể như sau: với vector đầu vào, thuật toán học máy sẽ tính vector đầu ra Nếu kết quả được xem là
“tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống.
Ví dụ như AlphaGo chơi cờ vây thắng con người trong bối cảnh cờ vây là một trò chơi có độ phức tạp cao với tổng số thế cờ xấp xỉ 10 761 Hay Google DeepMind không cần học dữ liệu từ các ván cờ của con người, hệ thống này tự chơi với chính mình để tìm ra các chiến thuật tối ưu và thắng tất cả con người và hệ thống khác bao gồm cả AlphaGo
LỊCH SỬ CÁC SỰ KIỆN LIÊN QUAN TỚI HỌC MÁY
1950 - Nhà bác học Alan Turing đã tạo ra "Turing Test (phép thử Turing)" để xác định xem liệu một máy tính có trí thông minh thực sự hay không Để vượt qua bài kiểm tra đó, một máy tính phải có khả năng đánh lừa một con người tin rằng nó cũng là con người.
1952 - Arthur Samuel đã viết ra chương trình học máy (computer learning) đầu tiên Chương trình này là trò chơi cờ đam, và hãng máy tính IBM đã cải tiến trò chơi này để nó có thể tự học và tổ chức những nước đi trong chiến lược để giành chiến thắng.
1957 - Frank Rosenblatt đã thiết kế mạng nơron (neural network) đầu tiên cho máy tính, trong đó mô phỏng quá trình suy nghĩ của bộ não con người.
1967 - Thuật toán "nearest neighbor" đã được viết, cho phép các máy tính bắt đầu sử dụng những mẫu nhận dạng (pattern recognition) rất cơ bản Nó được sử dụng để vẽ ra lộ trình cho một người bán hàng có thể bắt đầu đi từ một thành phố ngẫu nhiên nhưng đảm bảo anh ta sẽ đi qua tất cả các thành phố khác theo một quãng đường ngắn nhất.
1979 - Sinh viên tại trường đại học Stanford đã phát minh ra giỏ hàng "Stanford Cart" có thể điều hướng để tránh các chướng ngại vật trong một căn phòng.
1981 - Gerald Dejong giới thiệu về khái niệm Explanation Based Learning (EBL), trong đó một máy tính phân tích dữ liệu huấn luyện và tạo ra một quy tắc chung để nó có thể làm theo bằng cách loại bỏ đi những dữ liệu không quan trọng.
1985 - Terry Sejnowski đã phát minh ra NetTalk, nó có thể học cách phát âm các từ giống như cách một đứa trẻ tập nói.
1990s - Machine Learning đã dịch chuyển từ cách tiếp cận hướng kiến thức (knowledge-driven) sang cách tiếp cận hướng dữ liệu (data-driven) Các nhà khoa học bắt đầu tạo ra các chương trình cho máy tính để phân tích một lượng lớn dữ liệu và rút ra các kết luận - hay là "học" từ các kết quả đó.
1997 - Deep Blue của hãng IBM đã đánh bại nhà vô địch cờ vua thế giới.
2006 - Geoffrey Hinton đã đưa ra một thuật ngữ "deep learning" để giải thích các thuật toán mới cho phép máy tính "nhìn thấy" và phân biệt các đối tượng và văn bản trong các hình ảnh và video.
2010 - Microsoft Kinect có thể theo dõi 20 hành vi của con người ở một tốc độ
30 lần mỗi giây, cho phép con người tương tác với máy tính thông qua các hành động và cử chỉ.
2011 - Máy tính Watson của hãng IBM đã đánh bại các đối thủ là con người tại Jeopardy.
2011 - Google Brain đã được phát triển, và mạng deep nơron (deep neural network) của nó có thể học để phát hiện và phân loại nhiều đối tượng theo cách mà một con mèo thực hiện.
2012 - X Lab của Google phát triển một thuật toán machine learning có khả năng tự động duyệt qua các video trên YouTube để xác định xem video nào có chứa những con mèo.
2014 - Facebook phát triển DeepFace, một phần mềm thuật toán có thể nhận dạng hoặc xác minh các cá nhân dựa vào hình ảnh ở mức độ giống như con người có thể.
2015 - Amazon ra mắt nền tảng machine learning riêng của mình.
2015 - Microsoft tạo ra Distributed Machine Learning Toolkit, trong đó cho phép phân phối hiệu quả các vấn đề machine learning trên nhiều máy tính.
2015 - Hơn 3.000 nhà nghiên cứu AI và Robotics, được sự ủng hộ bởi những nhà khoa học nổi tiếng như Stephen Hawking, Elon Musk và Steve Wozniak (và nhiều người khác), đã ký vào một bức thư ngỏ để cảnh báo về sự nguy hiểm của vũ khí tự động trong việc lựa chọn và tham gia vào các mục tiêu mà không có sự can thiệp của con người.
2016 - Thuật toán trí tuệ nhân tạo của Google đã đánh bại nhà vô địch trò chơi
Cờ Vây, được cho là trò chơi phức tạp nhất thế giới (khó hơn trò chơi cờ vua rất nhiều) Thuật toán AlphaGo được phát triển bởi Google DeepMind đã giành chiến thắng 4/5 trước nhà vô địch Cờ Vây.
HÀM TỔN THẤT VÀ THAM SỐ MÔ HÌNH
Các mô hình học máy thường được mô tả bằng bộ các tham số của mô hình. Công việc của một mô hình học máy là đi tìm các tham số tối ưu của mô hình sao cho kết quả của bài toán là tốt nhất Ví dụ trong bài toán phân loại, kết quả có thể được hiểu là tốt khi số điểm dữ liệu dự đoán đúng là cao Trong bài toán hồi quy, kết quả tốt là khi sự sai lệch giữa giá trị đầu ra thực tế và giá trị đầu ra dự đoán là nhỏ.
Mối quan hệ giữa các tham số của mô hình và độ đo hiệu suất được mô tả thông qua một hàm số gọi là hàm tổn thất (hay còn có những tên gọi khác như hàm mất mát, hàm chi phí) Hàm số này thường có giá trị nhỏ khi phép đánh giá cho kết quả tốt và ngược lại Việc đi tìm các tham số mô hình sao cho độ đo hiệu suất là tốt nhất thì chính là việc đi tìm tham số sao cho hàm tổn thất là tối thiểu Như vậy việc đi tìm các tham số của mô hình hay chính là việc xây dựng mô hình học máy thực chất là đi giải quyết một bài toán tối ưu.
MỘT SỐ THUẬT TOÁN TỐI ƯU THÔNG DỤNG TRONG HỌC MÁY
1.6.1 Hàm lồi: Định nghĩa: hàm f : n → được gọi là hàm lồi nếu với x 1 , x 2 n và [0,1] thì: f ( x 1 + (1 − ) x 2 ) f ( x 1 ) + (1 − ) f ( x 2 )
Hình 0.1 Minh họa hàm lồi
Hàm f được gọi là hàm lõm nếu − f là hàm lồi.
Hình 0.2 Minh họa hàm lõm
Lý do cho sự quan trọng của hàm lồi hay hàm lõm là nếu f (x) là một hàm lồi hoặc hàm lõm thì các thuật toán sẽ đảm bảo tìm được điểm tối ưu toàn cục Ngoài ra trong bài toán đối ngẫu thì ta có khi giải một bài toán tối ưu cho hàm lồi thỏa mãn tiêu chuẩn Slater thì đối ngẫu mạnh xảy ra và khi đó nghiệm của bài toán chính là nghiệm của hệ điều kiện Karush-Kuhn-Tucker (KKT) là một cách giải thông dụng trong các bài toán tối ưu có ràng buộc.
1.6.3 Thuật toán giảm Gradient (Gradient Descent)
Trong Học máy nói riêng và Tối ưu hóa toán học nói chung, ta thường xuyên phải tìm giá trị nhỏ nhất hoặc lớn nhất của một hàm số nào đó Như trong luận văn này sẽ là tìm giá trị nhỏ nhất của hàm tổn thất Việc tìm điểm tối ưu toàn cục cho hàm tổn thất trong học máy là rất phức tạp, thậm chí là có thể không tìm được Thay vào đó người ta cố gắng tìm các điểm cực trị địa phương và có thể chấp nhận đó là nghiệm của bài toán ở mức độ chấp nhận nào đó.
Các điểm cực trị địa phương là nghiệm của phương trình đạo hàm bằng không. Tuy nhiên trong hầu hết các bài toán Học máy việc giải những phương trình đạo hàm riêng này là rất khó khăn do sự phức tạp của đạo hàm, do số chiều lớn của các điểm dữ liệu hay do việc tập dữ liệu có quá nhiều điểm dữ liệu Và thuật toán giảm Gradient được phát triển để có thể giải quyết tình huống này.
Thuật toán giảm Gradient là một thuật toán tối ưu lặp được sử dụng phổ biến trong các bài toán Học máy Gradient của một hàm số là đạo hàm của hàm số đó tương ứng với mỗi biến của hàm số Descent là từ viết tắt của descending nghĩa là giảm dần Thuật toán được hiểu là với vị trí ban đầu bất kì, khi ta đi ngược hướng đạo hàm thì ta sẽ tìm được điểm cực trị.
Hình 0.3 Minh họa thuật toán giảm gradient
Giả sử ta cần tìm điểm cực tiểu toàn cục cho một hàm số f ( ) với là tập các tham số cần tối ưu của mô hình Ký hiệu f ( ) là đạo hàm (hay Gradient) của hàm số đó tại điểm bất kì Thuật toán sử dụng quy tắc cập nhật tham số: t +1= t − f ( t ) Trong đó : là tốc độ học
Dấu trừ thể hiện việc cần đi ngược hướng với đạo hàm để có thể về được vị trí là điểm tối ưu
Thuật toán Newton-Raphson là một phương pháp hay dùng khác để cực tiểu hóa hàm tổn thất
Cơ sở của phương pháp này là giả sử ta có một hàm số khả vi f : → và ta cần tìm sao cho f ( ) = 0
Phương pháp Newton tìm nghiệm của hàm f ( ) = 0
Hình 0.4 Minh họa thuật toán Newton-Raphson
( n +1) = ( n) − f ( (n) ) f ( (n) ) Khi đó phương pháp Newton cập nhật theo công thức:
:=− f ( ) f ( ) Áp dụng vào bài toán tìm tham số tối ưu của các mô hình học máy
Mục tiêu là cực tiểu hóa hàm tổn thất J ( ) nghĩa là cần tìm sao cho
Như vậy nếu J là hàm khả vi cấp hai thì ta có thể sử dụng phương pháp Newton để tìm theo công thức sau:
= − J'( ) Trong không gian nhiều chiều, phương pháp Newton có
J"( ) công thức tổngquát như sau:
Trong đó H là ký hiệu của ma trận Hessian là ma trận đạo hàm cấp 2 của
= 2 J( ) với i , j = 0,1, 2, , D i j Đối với các bài toán có hàm f (x) không phải hàm lồi hay hàm lõm là đối ngược của hàm lồi và có nhiều điểm tối ưu cục bộ như hình vẽ bên dưới
Hình 0.5 Thuật toán giảm gradient với hàm không lồi
Ta vẫn có thể sử dụng phương pháp giảm gradient bằng cách xuất phát từ rất nhiều điểm khác nhau để đảm bảo bài toán vẫn có thể tìm được điểm tối ưu toàn cục.
THUẬT TOÁN K-NEAREST NEIGHBOR (KNN)
1.7.1 Khái niệm về thuật toán
KNN là thuật toán dự đoán đầu ra của một điểm dữ liệu mới chỉ dựa trên thông tin của K điểm dữ liệu gần với nó nhất trong tập huấn luyện Đây là một trong những thuật toán học máy đơn giản nhất.
Mỗi điểm dữ liệu được thể hiện bằng một vector đặc trưng D chiều, khoảng cách giữa hai điểm chính là khoảng cách giữa hai vector đó Khoảng cách được sử dụng thường là khoảng cách Euclid
Khoảng cách Euclid từ một điểm x tới một điểm x i thuộc tập huấn luyện được định nghĩa là x− x i 2 Ở đây học viên sẽ sử dụng bình phương khoảng cách Euclid để tránh phép tính căn bậc hai là: x− x i 2 2
Với K cho trước là số lân cận gần nhất mà ta sử dụng để ra quyết định thì dự báo đầu ra y của x sẽ là y j bất kỳ nào đó xuất hiện nhiều nhất trong K lân cận đó.
Ví dụ: Trong bài toán dự báo khách hàng có nợ xấu hay không có nợ xấu Ta chỉ định trước trước K lân cận bằng 9 để ra quyết định Thì nếu điểm dữ liệu mới đưa vào để dự đoán gần với ít nhất 5 điểm dữ liệu có đầu ra là nợ xấu trong 9 điểm dữ liệu gần nhất với nó đó thì điểm dữ liệu mới này sẽ được dự báo là nợ xấu
1.7.2 Đánh trọng số cho các điểm lân cận
Kỹ thuật bên trên còn được gọi là bầu chọn đa số, các điểm trong 9 điểm gần nhất đó đều có vai trò như nhau và có giá trị như nhau khi bầu chọn Điều này không thực sự phản ánh đúng thực tế khi các điểm ở gần hơn nên có giá trị lớn hơn khi bầu chọn Để thực hiện việc này ta đánh trọng số cho từng điểm với điều kiện các điểm gần hơn sẽ được đánh trọng số cao hơn Một trong những cách là chọn trọng số bằng nghịch đảo của khoảng cách tới điểm lân cận.
MÔ HÌNH HỒI QUY LOGISTIC
Hồi quy Logistic được sử dụng trong phân loại nhị phân, y {0, 1} ∈ Xét bài toánphân loại nhị phân, mỗi đối tượng x i cần được phân vào một trong hai lớp y ∈
Ta chọn hàm dự báo h ( x i ) như sau: h (x ) = g( T x ) = 1
Trong đó : i g ( z) = 1 ; được gọi là hàm logistic hoặc hàm sigmoid.
1+ exp ( −z) Đạo hàm của hàm logistic: g′(z) = g(z)(1 - g(z))
Mô hình hồi quy logistic:
D+1 là véc-tơ tham số của mô hình, = ( , , , , D
0 12 x i ∈ D+1 là một điểm trong N điểm dữ liệu, x i = (x , x , x , , x ) T i 0 i1 i 2 iD
Ta có thể viết gọn xác suất của y dưới dạng:
Khi đó hàm hợp lí của dữ liệu với tham số θ là:
Hay được viết lại thành:
Log của hàm hợp lý:
Sử dụng phương pháp hợp lí cực đại để ước lượng θ, ta cần giải bài toán tối ưu: Tìm θ sao cho giá trị − ( ) là nhỏ nhất hay nói cách khác là cần tìm θ làm cực tiểu hóa hàm mục tiêu:
Ta xuất phát từ một giá trị khởi đầu bất kỳ nào đó của θ và lặp để cập nhật θ theo công thức:
:= −J() trong đó J ( ) là gradient của J ( ) :
Mỗi tham số j được cập nhật bởi quy tắc: j := j − J ( ) , j = 0,1, , D. j
Trước khi làm tổng quát cho N quan sát, học viên sẽ bắt đầu từ trường hợp đơn giản với N = 1 tức tập huấn luyện chỉ có một mẫu (x, y):
Do đó nếu chỉ có một mẫu huấn luyện là (x i , y i ) thì ta có quy tắc giảm gradient như sau: j := j − [ h (x i ) − y i ] x ij , j = 0,1, , D.
Thuật toán 1 : Thuật toán giảm gradient theo loạt cho hồi quy logistic
Khởi tạo vector bất kì ban đầu:0 (chọn vector → → 0 )
Thuật toán 2 : Thuật toán Newton-Raphson
Ma trận Hessian kích thước (D + 1) *(D +1) :
Kết quả: các thuật toán sẽ đưa ra được véc tơ tham số tối ưu của mô hình:
1.8.2 Cách thức hoạt động của thuật toán
Việc dự đoán một điểm dữ liệu mới sẽ thuộc lớp nào trong hai lớp {0, 1} sẽ được thực hiện như sau:
• Bước 1: Cho điểm dữ liệu x i qua mô hình để tính toán các xác suất mà điểm dữ liệu đó thuộc lớp 1
• Bước 2: Kết luận điểm dữ liệu sẽ thuộc lớp nào dựa trên xác suất của điểm dữ liệu đó thuộc lớp nào là lớn hơn.
THUẬT TOÁN CÂY QUYẾT ĐỊNH (DECISION TREE)
Thuật toán Cây quyết định là một thuật toán dùng cấu trúc cây để xấp xỉ một hàm cần học và đã được áp dụng thành công trong rất nhiều các bài toán ứng dụng thực tế [3]
1.9.1 Ví dụ về bài toán Cây quyết định
Có một tập dữ liệu S ghi lại dữ liệu thời tiết những ngày mà một người chơi hay không chơi tennis bao gồm: quang cảnh, nhiệt độ, độ ẩm, sức gió Từ tập dữ liệu này, thuật toán cây quyết định sẽ phải quyết định xem với một tập các dữ liệu mới về thời tiết thì người chơi có chơi tennis hay không?
Hình 1.1 Ví dụ bài toán Cây quyết định
Nguồn: [3] Kết quả của thuật toán được biểu diễn hình dưới:
✓ Mỗi nút biểu diễn một thuộc tính cần kiểm tra giá trị.
✓ Mỗi nhánh từ một nút tương ứng với một giá trị có thể của thuộc tính gắn với nút đó.
✓ Mỗi nút là biểu diễn một lớp cần phân loại
✓ Mỗi đường đi từ nút gốc đến một nút lá sẽ tương ứng với một kết hợp của các giá trị thuộc tính
✓ Cây quyết định sẽ phân lớp bằng cách duyệt từ nút gốc đến một nút lá Và nhãn của điểm dữ liệu mới được đưa vào sẽ được gán với nhãn của lớp lá đó.
1.9.2 Cách học của cây quyết định Đặt vấn đề: Mỗi điểm dữ liệu x được biểu diễn bởi n thuộc tính x ( x 1 , x 2 , x 3 , , x n ) với mỗi x i là một thuộc tính rời rạc hoặc định danh Đối với các thuộc tính có giá trị liên tục thì cần được rời rạc hóa thành các giá trị rời rạc bằng cách chia khoảng giá trị liên tục thành một tập các khoảng không giao nhau Mỗi quan sát trong tập học của dữ liệu có một nhãn tương ứng.
Các bước thực hiện xây dựng một cây quyết định theo chiến lược từ trên xuống dưới bắt đầu từ nút gốc:
1 Ở mỗi nút chọn thuộc tính kiểm tra là thuộc tính có khả năng phân loại tốt nhất đối với các ví dụ học gắn với nút đó.
2 Tạo mới một cây con của nút hiện tại cho mỗi giá trị của thuộc tính kiểm tra, và tập học sẽ được tách ra thành các tập con tương ứng với cây con vừa tạo.
3 Quá trình phát triển cây quyết định sẽ tiếp tục cho đến khi:
• Cây quyết định phân loại hoàn toàn các điểm dữ liệu của tập học
• Tất cả các thuộc tính đã được sử dụng ( mỗi thuộc tính chỉ được phép xuất hiện tối đa một lần đối với bất kỳ một đường đi nào.
Tại mỗi nút, sẽ chọn thuộc tính quan trọng nhất cho việc phân lớp các điểm dữ liệu của tập học gắn với nút đó Và để đánh giá khả năng của một thuộc tính đối với việc phân tách dữ liệu theo nhãn của chúng, người ta sử dụng một đánh giá thống kê gọi là độ lợi thông tin (Information Gain).
Entropy đo mức độ hỗn tạp của một tập Entropy của tập S với việc phân thành c lớp được tính như sau:
Với p i là tỷ lệ các điểm dữ liệu thuộc vào lớp i trong tập S và 0 log 2 0 = 0 Ý nghĩa của Entropy trong lý thuyết thông tin:
• Entropy chỉ ra số bits trung bình cần thiết để mã hóa một lớp trong S
• Entropy của một chỉ số đo giá trị trung bình của lượng thông tin chứa trong dữ liệu đó.
• Entropy của một biến ngẫu nhiên đo mức độ không đoán được của biến ngẫu nhiên đó.
1.9.2.2 Độ lợi thông tin (Information Gain) Độ lợi thông tin của một thuộc tính đối với một tập S đo mức độ giảm Entropy nếu chia S theo các giá trị của thuộc tính đó
Công thức tổng quát của độ lợi thông tin của thuộc tính A đối với tập S:
Trong đó Values(A) là tập các giá trị có thể của thuộc tính A
Trong ví dụ trên tập S bao gồm 14 quan sát với 9 quan sát thuộc về lớp ‘Yes’ và 5 quan sát thuộc về lớp ‘No’
Bước tiếp theo sẽ tính độ lợi thông tin của bốn thuộc tính: Outlook,
Hình 1.2 Cơ chế lọc dữ liệu của Cây quyết định
Thuộc tính Wind có hai giá trị là: Weak và Strong
S = {9 quan sát thuộc lớp ‘Yes’ và 5 quan sát thuộc lớp ‘No’}
S Weak = {6 quan sát thuộc lớp ‘Yes’ và 2 quan sát thuộc lớp ‘No’ có giá trị Wind Weak}
S Strong ={3 quan sát thuộc lớp ‘Yes’ và 3 quan sát thuộc lớp ‘No’ có giá trị Wind Strong}
Gain (S, Wind) = Entropy (S) - S v * Entropy ( S v ) v { Strong ,Weak} S
=Entropy (S) - 148 * Entropy ( S Weak ) − 146 * Entropy ( S Strong )
Thực hiện tính toán tương tự cho các thuộc tính còn lại ta được:
Vậy tại nút gốc thuộc tính Outlook sẽ được chọn làm thuộc tính kiểm tra vì có giá trị độ lợi thông tin là lớn nhất: 0.246
Hình 1.3 Cơ chế tiên phân loại cho nút gốc của Cây quyết định
Nguồn: [3] Tại nút Node1 ta tiếp tục kiểm tra xem thuộc tính nào trong số 3 thuộc tính còn lại: {Temperature, Humidity, Wind} nên được lựa chọn dựa trên độ lợi thông tin của mỗi thuộc tính
Ta có kết quả sau khi tính toán:
Vậy Humidity sẽ là thuộc tính được chọn tại Node1
Tiếp tục thực hiện ta sẽ có được kết quả phân loại của cây quyết định:
Hình 1.4 Kết quả phân loại của Cây quyết định
THUẬT TOÁN RANDOM FOREST (RỪNG NGẪU NHIÊN)
Random Forest là một phương pháp học máy được đề xuất bởi Leo Breiman năm 2001
Random: nghĩa là ngẫu nhiên
Forest: rừng nghĩa là bao gồm nhiều cây quyết định Ý tưởng của thuật toán: là sự kết hợp của các cây quyết định và chọn kết quả là trung bình các phán đoán của các cây Với mỗi cây trong đó là môt cây đơn giản nhưng ngẫu nhiên và được tạo ra từ việc tái chọn mẫu sử dụng phương pháp bootstrap hoặc random sampling và chỉ dùng một phần các thuộc tính của biến ngẫu nhiên.
Rừng ngẫu nhiên là một trong những phương pháp được dùng phổ biến nhất và mạnh nhất theo Fernández-Delgado vào năm 2014 Thuật toán rừng ngẫu nhiên có thể cài đặt dễ dàng và nhanh, nhưng có thể tạo ra các phán đoán chính xác và có thể làm việc tốt với những bài toán rất nhiều chiều Đổi lại ta không thể nào hiểu được cơ chế hoạt động bên trong mô hình vì cấu trúc rất phức tạp và thuật toán được biết đến như một trong những mô hình học máy hộp đen do rất khó phân tích các tính chất toán học của thuật toán [3]
Tuy nhiên ta vẫn có thể có những lý giải cho sự thành công của mô hình học máy hộp đen này:
➢ Mô hình học Cây quyết định đơn lẻ thường quá khớp hay còn gọi là quá phù hợp với tập học (over-fit) điều này có nghĩa là mô hình Cây quyết định thường tốt với tập dữ liệu được học nhưng lại không tốt khi làm việc với tập kiểm tra gồm toàn bộ các dữ liệu hoàn toàn mới đối với mô hình.
➢ Việc tập hợp rất nhiều cây quyết định trong mô hình rừng ngẫu nhiên một cách ngẫu nhiên đã tạo hiệu quả lớn cho mô hình này do đã giải quyết được vấn đề quá phù hợp (overfitting) của thuật toán cây quyết định cũng như giải quyết được vấn đề tính chất không hoàn hảo của dữ liệu mà các phương pháp ngẫu nhiên giải quyết khá tốt các vấn đề này.
• Đầu vào: tập học D, số cây K
• Tạo K cây, mỗi cây được sinh ra như sau:
➢ Xây dựng một tập con D i bằng cách lấy ngẫu nhiên có trùng lặp từ tập D
➢ Cách xây dựng cây thứ i từ D i như sau:
✓ Chọn ngẫu nhiên một nhóm nhỏ các thuộc tính để chia
✓ Phân nhánh cây dựa trên tập thuộc tính đó theo phương pháp cây quyết định
▪ Cây này sẽ được sinh ra với cỡ lớn nhất có thể
➢ Mỗi phán đoán về sau thu được bằng cách lấy trung bình các phán đoán từ tất cả các cây.
THUẬT TOÁN SUPPORT VECTOR MACHINE (SVM)
1.11.1 Thuật toán SVM lề cứng
Cho một tập dữ liệu huấn luyện (x i ; y i ) với i =1; ; N trong đó x i là một vector D chiều, x i d và y i nhận hai giá trị: +1 và -1 hay y i −1;1 , mục tiêu là đi tìm một siêu phẳng phân chia giữa hai lớp dữ liệu này Điều này đồng nghĩa với việc tìm một siêu phẳng sao cho tất cả các điểm thuộc cùng một lớp nằm về cùng một phía của siêu phẳng đó và ngược phía với các điểm thuộc lớp còn lại Nghĩa là tìm một hàm f (x) sao cho:
Hình 1.5 Ví dụ về sự phân chia tuyến tính
❖Trong không gian hai chiều:
Một phương trình đường thẳng có dạng: f (x) = 1 x 1 + 2 x 2 + b = 0
Hình 1.6 Ví dụ về sự phân chia hai chiều
Khoảng cách từ một điểm ( x 10 , x 20 ) tới đường thẳng f (x) có dạng:
❖Trong không gian ba chiều:
Một phương trình đường thẳng có dạng: f (x) =1 x 1 + 2 x 2 + 3 x 3 + b = 0
Hình 1.7 Ví dụ về sự phân chia ba chiều
Nguồn: [15] Khoảng cách từ một điểm ( x 10 , x 20 , x 30 ) tới mặt phẳng f (x) có dạng:
❖Trong không gian thực tế D chiều:
Phương trình siêu phẳng có dạng: f (x i ) = T x i + b
Khoảng cách từ một điểm ( x 1i , x 2 i , x Di ) tới siêu phẳng f (x) có dạng: x 1 1i + x 2 2i + + D 3i x + b = T x i + b
Và nếu bỏ dấu trị tuyệt đối ở tử số ta có thể xác định điểm đó nằm về phía nào của siêu phẳng đang xét và những điểm có T x i + b 0 sẽ nằm về một phía của siêu phẳng cũng như những điểm có T x i + b 0 sẽ nằm về phía còn lại của siêu phẳng.
Giả sử dữ liệu có hai lớp và hai lớp này là tách biệt tuyến tính hay hiểu theo cách khác là tồn tại một siêu phẳng sao cho siêu phẳng đó phân tách hoàn toàn hai lớp đó, các điểm thuộc về cùng một lớp sẽ nằm về một phía của siêu phẳng đó.
Ví dụ về một số “siêu phẳng” trong không gian hai chiều phân tách hai lớp của dữ liệu:
Hình 1.8 Các trường hợp phân chia dữ liệu
• Đường phân tách trong hình 1 là kém do đã không thể thực hiện được nhiệm vụ phân chia dữ liệu của mình
• Đường phân tách dữ liệu trong hình 2 và 3 tuy đã phân tách được dữ liệu tuy nhiên lại quá sát với hai lớp điều này sẽ khiến cho việc dự báo dữ liệu mới gặp nhiều khó khăn do sự phân tách là không thực sự rõ ràng.
• Đường phân tách trong hình 4 có thể coi là một đường phân tách tốt do đã phân biệt hai lớp dữ liệu một cách rõ ràng.
Vậy câu hỏi được đặt ra một cách rất tự nhiên rằng: trong rất nhiều các siêu phẳng phân chia dữ liệu thì siêu phẳng nào sẽ được xem là có sự phân chia dữ liệu tốt nhất?
Câu trả lời được đưa ra là ta cần tìm một siêu phẳng sao cho lề của hai lớp là tương đương nhau để sự phân chia này sẽ không thiên lệch về một lớp và độ rộng của lề là lớn nhất để giảm thiểu khả năng phân loại lỗi của siêu phẳng Với lề được định nghĩa là khoảng cách nhỏ nhất từ một điểm thuộc một lớp tới siêu phẳng để đo sự lệch về mỗi lớp của siêu phẳng phân chia dữ liệu.
Với một cặp điểm dữ liệu bất kì (xn , yn ) khoảng cách từ xn tới mặt phân chia là: y n ( T x n + b)
Do ta đã gán nhán dấu của yn cùng dấu với dấu của ( T x n +b) nên tử số là một đại lượng có giá trị dương.
Lề được tính là khoảng cách gần nhất từ một điểm trong cả hai lớp dữ liệu tới siêu phẳng phân chia:
Ta cần tìm w và b sao cho lề có giá trị lớn nhất:
Với những điểm m nằm trên mặt phẳng phân chia (Support Vector) ta có thể giả sử: y m ( T x m + b) = 1
Hình 1.9 Minh họa bài toán SVM lề cứng
Lý do ta có thể giả sử y m ( T x m + b) = 1 là do ngay cả khi T x m + b 1 thì ta hoàn toàn có thể thay véc tơ trọng số và b bởi k và kb trong đó k là một hằng số dương bất kỳ sao cho T x m + b = 1
Như vậy với mọi điểm dữ liệu i ta đều có: y i ( T x i + b) 1 Bài toán tối ưu được đưa về dạng tìm w và b sao cho:
1.11.1.3 Bài toán đối ngẫu của SVM a) Kiểm tra tiêu chuẩn Slater: Điều kiện Slater phát biểu rằng, nếu tồn tại , b thoả mãn:
1 - y i ( T x i +b) < 0 , i =1,2, , N thì đối ngẫu mạnh xảy ra
Chứng minh tồn tại cặp ( 0 , b 0 ) sao cho:
Chọn 1 =2 * 0 và b 1 = 2 * b 0 thì ta có:
1 - y i (1 T x i +b1) − 1 0, i =1,2, , N Vậy bài toán tối ưu thoả mãn điều kiện Slater b) Hàm Lagrange của bài toán tối ưu
12 N i Để tìm giá trị nhỏ nhất của hàm Lagrange này theo và b, ta giải hệ phương trình:
N i =1 i y i = 0 i =1 Đây là bài toán tối ưu lồi và thỏa mãn đối ngẫu mạnh vì vậy nghiệm của bài toán thỏa mãn hệ điều kiện KKT:
Phương pháp được dùng để giải hệ này là sequential minimal optimization (SMO) là một thuật toán tối ưu dành riêng cho SVM do John C Platt phát triển và đưa ra vào năm 1998 tại Microsoft Research (MSR) Trong khuổn khổ của luận văn, học viên sẽ không tiếp tục đi sâu vào bài toán giải hệ điều kiện KKT bên trên và sẽ ứng dụng, kế thừa những thành quả đã được phát triển bởi đội ngũ chuyên gia đi trước cụ thể là sử dụng thư viện Scikit-Learn để tìm kết quả cho bài toán SVM. Sau khi đã giải được bài toán và tìm ra được và b cũng như mặt phẳng phân chia giữa các lớp dữ liệu là: T x+ b = 0 thì việc dự đoán một điểm dữ liệu x j mới thuộc lớp nào sẽ được xác định bằng dấu của biểu thức: T x j + b
1.11.2 Thuật toán SVM lề mềm
Thuật toán SVM lề cứng được trình bày phía trên được sử dụng để phân tách giữa hai lớp khác biệt Tuy nhiên thuật toán này có thể sẽ không hoạt động được trong điều kiện thực tế có nhiều dữ liệu nhiễu hoặc các lớp không có sự phân biệt hoàn toàn.
Hình 1.10 Minh họa dữ liệu nhiễu trong bài toán SVM
Nguồn: [15] Với một bài toán có dữ liệu như hình trên thì bài toán SVM lề cứng sẽ cho ra kết quả vô nghiệm vì sẽ không tìm được đường phân tách hoàn toàn giữa hai lớp dữ liệu. Chính vì vậy mà trong những trường hợp như thế này, ta sẽ phải chấp nhận việc một vài điểm bị phân loại sai để mô hình có thể dữ báo tốt hơn trên cả tập dữ liệu. Để đánh giá sự hi sinh này, với mỗi điểm x i trong tập huấn luyện, người ta đưa ra một biến đo sự hi sinh i tương ứng Với những điểm x i nằm ngoài khu vực đường
T x+ b = 1 và đúng trong lớp của mình thì i = 0 nghĩa là không có sự hi sinh nào.
Hình 1.11 Bài toán SVM lề mềm
Với những điểm không an toàn còn lại, người ta đưa ra i 0 để đo sự hi sinh Trong trường hợp với dữ liệu như hình vẽ trên sự hi sinh là 1 ,2 , 3 ,4
Tổng quát, với các điểm không an toàn thì:
Tuy nhiên để bài toán trở nên đỡ phức tạp ta sẽ loại bỏ phần mẫu số chung 2 của các i mà không làm thay đổi bản chất của bài toán.
Hàm mục tiêu được xây dựng sao cho lề được tối đa và sự hi sinh là tối thiểu.
Do đó hàm mục tiêu sẽ là:
Với C là một hằng số dương để điều chỉnh sự quan trọng của lề và độ hi sinh của các điểm dữ liệu không an toàn
Vậy bài toán tối ưu SVM lề mềm được viết lại như sau:
1.11.2.2 Bài toán đối ngẫu Lagrange a) Kiểm tra tiêu chuẩn Slater
Ta luôn tìm được một hằng số dương i sao cho: i + y i ( T x i + b) 1, i =1, 2, , N
Do vậy tiêu chuẩn Slater được thỏa mãn b) Hàm Lagrange
Với i , i 0, i =1, 2, , N Để tìm giá trị nhỏ nhất của hàm Lagrange này theo , b, , ta giải hệ phương trình:
Hệ điều kiện KKT cho SVM lề mềm:
Sau khi giải xong hệ KKT bên trên cũng theo thuật toán được cài đặt như với SVM lề cứng ta tìm được và b Để gán được nhãn cho điểm dữ liệu mới x j ta cũng chỉ cần xác định dấu của ( T x j + b) :
MÔ HÌNH MẠNG NƠRON NHÂN TẠO (ARTIFICIAL NEURAL NETWORK- ANN)
1.12.1 Khái niệm về mạng nơ ron nhân tạo
Mạng nơ ron nhân tạo là một mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh sinh học, bao gồm số lượng lớn các Nơron được gắn kết để xử lý thông tin Mạng nơ ron nhân tạo mô phỏng lại mạng nơ ron sinh học là một cấu trúc khối gồm các đơn vị tính toán được liên kết chặt chẽ với nhau, trong đó các liên kết giữa các noron quyết định chức năng của mạng Mạng Nơron nhân tạo được thiết kế dựa trên ý tưởng về cách thức hoạt động trong não bộ con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết.
Mạng nơ ron nhân tạo đã được ứng dụng thành công cho nhiều bài toán phân loại và hồi quy dự báo như: nhận dạng tiếng nói, phân tích ảnh, điều khiển tương thích,
Kiến trúc chung của một mạng nơron nhân tạo (ANN) gồm 3 thành phần đó là: Lớp đầu vào (Input Layer), Lớp các tầng ẩn (Hidden Layer) và lớp đầu ra (Output Layer)
Hình 1.12 Minh họa mạng nơ ron nhân tạo
Các đặc trưng cơ bản của mạng Nơron
▪ Gồm một tập các đơn vị xử lý (các noron nhân tạo)
▪ Trạng thái kích hoạt hay đầu ra của đơn vị xử lý
▪ Liên kết giữa các đơn vị Xét tổng quát, mỗi liên kết được định nghĩa bởi một trọng số W jk cho ta biết hiệu ứng mà tín hiệu của đơn vị j có trên đơn vị
▪kMột luật lan truyền quyết định cách tính tín hiệu ra của từng đơn vị từ đầu vào của nó
▪ Một hàm kích hoạt, hay hàm chuyển (activation function, transfer function), xác định mức độ kích hoạt khác dựa trên mức độ kích hoạt hiện
▪tạiMột đơn vị điều chỉnh (độ lệch) (bias, offset) của mỗi đơn vị
▪ Phương pháp thu thập thông tin (luật học - learning rule)
▪ Môi trường hệ thống có thể hoạt động.
1.12.2 Ví dụ về mạng nơ ron
Hình 1.13 Minh họa đầu ra của nốt trong mạng nơ ron
Nguồn: [1] Mạng nơ-ron này chỉ gồm một khối tính toán có ba đơn vị dữ liệu vào là x 1 , x 2 , x 3 và một số hạng tự do +1, đơn vị dữ liệu ra là:
Trong đó f : → là một hàm kích hoạt nào đó
Các hàm kích hoạt phổ biến có thể kể đến
1+ exp ( −z) Hàm Tangent Hyperbolic (TanH): f (z ) = tanh( z) = e z − e −z e z + e −z
Ví dụ về mạng nơ-ron 3 lớp:
Hình 1.14 Ví dụ mạng nơ ron ba lớp
Ta biểu diễn mỗi đơn vị bằng một hình tròn Các dữ liệu vào cũng được biểu diễn bởi hình tròn Các hình tròn có nhãn +1 biểu diễn các đơn vị chệch, tương ứng với các số hạng tự do Lớp bên trái gọi là lớp vào, lớp bên phải là lớp ra Trong ví dụ này, lớp ra chỉ gồm 1 đơn vị.
Lớp giữa được gọi là lớp ẩn vì các giá trị của nó không quan sát được Ta nói mạng nơ-ron này có 3 đơn vị vào (không tính đơn vị chệch), 3 đơn vị ẩn và một đơn vị ra
Gọi n là số lớp của mạng (n = 3 trong ví dụ trên)
Kí hiệu L l là lớp thứ l của mạng; L 1 là lớp vào và L n là lớp ra.
Mạng nơ-ron ở trên có các tham số là ( , b) = ( (1) , b (1) , ( 2)
,b (2) ) trong đó ij ( l ) biểu diễn tham số gắn với cung nối từ đơn vị j của lớp l tới đơn vị i của lớp l + 1:
Và: b i ( l ) là độ chệch của đơn vị i trong lớp l
Trong ví dụ trên ta có:
Ta gọi a i ( l ) là kích hoạt (có ý nghĩa là giá trị ra) của đơn vị i trong lớp l Với l =1 thì a i ( 1 ) = x i
Mạng nơ-ron tính toán một giá trị ra theo lược đồ sau: a (1) = x với i =1, 2,3 i i a ( 2 ) = f ( (1) a (1) + (1) a (1) + (1) a (1) + b (1) )
Từ đó ta có thể biểu diễn các công thức tính kích hoạt dưới dạng ngắn gọn: z ( 2 ) = (1) a + b (1)
1.12.3 Mạng Nơron tổng quát n lớp:
Trong mạng nơ-ron tổng quát với n lớp, ta sẽ sử dụng lược đồ tính toán tiến tương tự như ví dụ trên để tính giá trị ra của mạng Trước tiên tính các kích hoạt trong lớp thứ 2, sau đó tính các kích hoạt trong lớp thứ 3, làm tiếp tục n bước cho tới khi tính được h (x) = f (z ( n) )
Các kích hoạt của lớp thứ l +1 được tính từ các kích hoạt của lớp thứ l như sau: z ( l +1) = ( l ) a ( l ) + b ( l ) a ( l +1) = f ( z ( l ) ) Để huấn luyện mô hình mạng này, ta cần có tập dữ liệu huấn luyện {( x i , y i )} trong đó y 2 Giả sử tập dữ liệu huấn luyện gồm N mẫu i
Ta sẽ huấn luyện mạng nơ-ron bằng thuật toán giảm gradient theo loạt Với mỗi mẫu dữ liệu (x, y) ta gọi hàm tổn thất tương ứng là J(x, y; θ, b).
Hàm tổn thất trên toàn bộ tập dữ liệu là:
Hai dạng hàm tổn thất thường dùng:
• Hàm sai số bình phương dùng trong bài toán hồi quy: J (x, y ; , b ) = 1
• Hàm cross-entropy dùng trong bài toán phân loại:
J (x, y; , b) = − [ y log ( h ,b (x) ) + (1− y ) log (1− h ,b (x))] Trong đó: y {0,1} Để huấn luyện mô hình, ta cần tìm các tham số , b tối tiểu hóa hàm chi phí: J(θ, b) → min
1.12.3.1 Thuật toán giảm gradient áp dụng cho một điểm dữ liệu (x, y):
Trong mỗi bước lặp, thuật toán giảm gradient cập nhật các tham số , b như sau:
( l ) N (l ) b i i =1 b i Ở đây, ta cần tính các đạo hàm riêng:
( l ) ii b ( l ) i i ij i Để tính được các đạo hàm riêng này ta sử dụng thuật toán lan truyền ngược. Trước tiên, với mỗi dữ liệu (x, y), ta tính toán tiến qua mạng nơ-ron để tìm mọi kích hoạt, gồm cả giá trị ra h ,b (x)
Với mỗi đơn vị i của lớp l, ta tính một giá trị gọi là sai số i ( l ) , đo phần đóng góp của đơn vị đó vào tổng sai số của đầu ra.
Với lớp ra l = n , ta có thể trực tiếp tính được i ( n) với mọi đơn vị i của lớp ra bằng cách tính độ lệch của kích hoạt tại đơn vị i đó so với giá trị đúng Cụ thể là, với mọi i = 1, 2, , s n :
Giả sử hàm kích hoạt là hàm Sigmoid thì ta được:
Với mỗi đơn vị ẩn i ( l ) được xác định là trung bình có trọng trên các sai số của các đơn vị của lớp tiếp theo có sử dụng đơn vị này để làm đầu vào.
Tính toán tiến, tính mọi kích hoạt của các lớp L 2 , L 3 , L n
Với mỗi đơn vị ra i của lớp ra L n tính: i ( n ) = − ( y i − a i ( n ) ) a i ( n ) (1− a i ( n) )
Tính các sai số theo thứ tự ngược: với mọi lớp l = n − 1, , 2 và với mọi đơn vị i của lớp l được tính như sau: i ( l ) = s l +1 ji ( l ) j ( l +1) f (z i ( l ) ) j =1
Tính các đạo hàm riêng cần tìm như sau:
1.12.3.2 Thuật toán giảm gradient trên toàn bộ tập dữ liệu
Thuật toán giảm gradient trên toàn bộ tập dữ liệu huấn luyện được trình bày như dưới đây: for l =1 to n do:
PHÂN LOẠI ĐA LỚP TRONG HỌC MÁY – MÔ HÌNH SOFTMAX
1.13.1 Ý tưởng của phân loại đa lớp trong học máy
Tới thời điểm bây giờ luận văn đã trình bày về các thuật toán dùng cho phân loại nhị phân (hai lớp) Và trong tiểu mục này, học viên sẽ trình bày về cách thức phân loại đa lớp trong học máy. Để phân loại đa lớp trong học máy, người ta thường sử dụng chiến thuật ‘one vs rest’ để chuyển từ bài toán phân loại đa lớp thành bài toán phân loại nhị phân đã biết như một cách làm thường được sử dụng trong toán học là quy các bài toán phức tạp thành các bài toán đơn giản hơn.
Học máy kỳ thực là học các tham số để có thể xác định được hàm f của mô hình, biến mỗi điểm dữ liệu thành một đầu ra nào đó.
Phân loại đa lớp được tóm gọn trong công thức sau đây:
▪ f i (x) = +1 nếu điểm dữ liệu x thuộc lớp i f i 0 nếu điểm dữ liệu x không thuộc lớp i (tùy thuộc vào bài toán cụ
Học viên sẽ làm rõ hơn điều này trong mô hình hồi quy Softmax dưới đây
1.13.2 Mô hình hồi quy Softmax
Xác suất để đối tượng x thuộc lớp k ∈ {1, 2, , K} được mô hình bởi:
▪ Z là số hạng chuẩn hoá để đảm bảo phân phối xác suất:
▪ Tham s ố k = ( k 0 , k 1 , , kD ) T là một véc-tơ tham số D+1 chiều ứng với lớp k D+1 chiều này chính là D+1 đặc trưng của dữ liệu với đặc trưng thứ
0 chính là hệ số tự do.
Ta có ma trận tham số của mô hình:
Công thức tính xác suất để đối tượng x thuộc lớp y là:
Khi đó hàm hợp lí của dữ liệu với tham số θ là:
Trung bình của log-hợp lý của tập dữ liệu huấn luyện là:
N i=1 Để ước lượng tham số của mô hình, ta cần tìm cự
( ) = N log P ( y i =1 i | x i ; ) = N y i x i c tiểu hóa hàm tổn thất:
= ( y i x i ) − log (exp ( k x i ) kj N i=1 kj kj k =1
= − (y i = k) x ij − x ij kj i=1 N N exp ( K k T x i ) k =1 Để ước lượng ma trận tham sốta cần giải hệ phương trình:
Có nhiều thuật toán được dùng để biến vẫn là hai phương pháp được sử ước lượng tham số của mô hình nhưng phổ dụng ở chương trước là:
• Phương pháp Gradient bậc 1: phương pháp giảm Gradient
• Phương pháp Gradient bậc 2: phương pháp Newton
Thuật toán sẽ đưa ra được ma trận tham số tối ưu của mô hình:
Việc dự đoán một điểm dữ liệu mới sẽ thuộc lớp nào trong K lớp 1,2, , K sẽ được thực hiện như sau:
• Bước 1: Cho điểm dữ liệu x i qua mô hình để tính toán các xác suất mà điểm dữ liệu đó thuộc 1 trong K lớp của bài toán
• Bước 2: Kết luận điểm dữ liệu sẽ thuộc lớp nào dựa trên xác suất của điểm dữ liệu đó thuộc lớp nào là lớn nhất.
1.14 Giới thiệu về Python và các thư viện hỗ trợ cài đặt thuật toán
1.14.1 Ngôn ngữ lập trình Python
Ngôn ngữ lập trình Python được tác giả Guido van Rossum tạo ra vào những năm cuối thập niên 1980 Python hướng tới một ngôn ngữ có cú pháp đơn giản nhưng hiệu quả hơn so với các ngôn ngữ thông dụng như Java, C#, C, C++ Python đã khẳng định được những ưu điểm của mình như dễ học, dễ đọc, dễ bảo trì, cùng với hệ thống thư viện phong phú, Python dần trở thành một trong những ngôn ngữ phổ biếnnhất hiện nay. Ưu điểm của Python là có thể dễ dàng tiếp cận và sử dụng để giải quyết các bài toán một cách nhanh chóng so với các ngôn ngữ phức tạp khác Hiện Python đang được sử dụng trong nhiều lĩnh vực như giáo dục, nghiên cứu hay trong công nghiệp.
Các công ty, tổ chức chuyên về lĩnh vực công nghệ sử dụng Python để phát triển các phần mềm có thể kể đến như: Google, Yahoo, Facebook, Tổ chức Nghiên cứu Hạt nhân châu Âu (European Organisation for Nuclear Research - CERN), Industrial Light and Magic, và Cơ quan Hàng không và Vũ trụ Hoa Kỳ (NASA)
1.14.2 Giới thiệu một số thư viện quan trọng của Python
Scikit – Learn: là một thư viện mã nguồn mở dành cho học máy, mạnh mẽ và thông dụng với cộng đồng Python với tin cậy cao do được xây dựng bởi các chuyên gia hàng đầu
TensorFlow: là một thư viện mã nguồn mở dành cho học máy, TensorFlow nguyên thủy được phát triển bởi đội ngũ tại Google Brain cho mục đích nghiên cứu và sản xuất của Google và sau đó được phát hành theo giấy phép mã nguồn mởApache 2.0 vào ngày 9/11/2015 TensorFlow cung cấp đầy đủ các công cụ để xây dựng một thuật toán học máy đặc biệt là học sâu (Deep Learning) tiêu biểu là mạng neural nhân tạo mà học viên có sử dụng trong luận văn này.
DỰ BÁO KHẢ NĂNG TRẢ NỢ CỦA KHÁCH HÀNG
GIỚI THIỆU BÀI TOÁN
Rủi ro tín dụng là một trong những thử thách tài chính lớn nhất trong hệ thống ngân hàng Ngân hàng Thương mại hiện vẫn là tổ chức tài chính trung gian có vai trò quan trọng nhất của nền kinh tế của nước ta hiện nay với các hoạt động rất đa dạng Ngân hàng Thương mại vừa là tổ chức thu hút tiền tiết kiệm lớn nhất của nền kinh tế, vừa là tổ chức cho vay chủ yếu đối với các doanh nghiệp, cá nhân, hộ gia đình và một phần đối với Nhà nước Chính vì vậy mà những rủi ro trong đó đóng góp một phần quan trọng là rủi ro tín dụng có thể dẫn tới tình trạng khó khăn cho Ngân hàng Thương mại cộng với tính nhạy cảm và phản ứng dây chuyền có thể sẽ dẫn tới sự đổ vỡ của cả hệ thống tài chính.
Việc đưa vào ứng dụng các kỹ thuật hiện đại trong quản trị rủi ro tín dụng là điều cần thiết trong bối cảnh khoa học kỹ thuật ngày càng phát triển, tốc độ xử lý tính toán của máy tính ngày càng lớn có thể đảm nhận, hỗ trợ cho công tác quản trị rủi ro một cách nhanh chóng, chính xác và hiệu quả hơn Chính vì những lý do đó mà học viên đã quyết định chọn bài toán “Dự báo khả năng trả nợ của khách hàng” là bài toán tiêu biểu cho bài toán phân loại của học máy.
DỮ LIỆU VÀ XỬ LÝ DỮ LIỆU
Do vấn đề bảo mật về thông tin của khách hàng cũng như đây là những tài nguyên quý giá và được coi là nhạy cảm của ngân hàng Do vậy việc lấy được dữ liệu thực tế về các khách hàng tại các ngân hàng ở Việt Nam là điều không dễ dàng.
Và để khắc phục điều đó học viên quyết định sẽ sử dụng bộ dữ liệu có tên là
‘German Credit Risk’ được đưa ra bởi giáo sư Hofmann tại trường đại học
Hamburg, Đức Bộ dữ liệu được download tại địa chỉ: https://www.kaggle.com/kabure/german-credit-data-with-risk
Dữ liệu bao gồm 1000 quan sát về các khách hàng có những khoản vay tại ngân hàng cũng như tình trạng nợ xấu của khách hàng và mỗi quan sát có 10 thuộc tính thông tin bao gồm:
2.Sex: biến giới tính nhận hai giá trị : male và female
3.Job: biến công việc nhận bốn giá trị (0 – unskilled and non-resident, 1 – unskilled and resident, 2 – skilled, 3 – highly skilled)
4.Housing: biến về nhà ở gồm ba loại: own, rent, hoặc free
5.Saving accounts: biến về tài khoản tiết kiệm được phân thành bốn loại: little, moderate, quite rich, rich
6 Checking account: biến về tài khoản vãng lai được phân thành ba loại: little, moderate, rich
7.Credit amount: biến về số tiền mà khách hàng vay
8.Duration: biến về thời gian mà khách hàng vay (được tính bằng tháng)
9.Purpose: biến về mục đích mà khách hàng vay và có tám mục bao gồm: car; radio/TV; furniture/equipment; business; education; repairs; domestic appliances; vacation/others
10.Risk: biến về rủi ro của khách hàng nhận hai giá trị: ‘good’ hoặc ‘bad’ với
‘bad’ nghĩa là khách hàng không có khả năng trả nợ cho ngân hàng và ‘good’ là khách hàng có trả được nợ cho ngân hàng
Hình 2.1 Mô tả dữ liệu khách hàng
Nguồn: Tính toán của tác giả
Hình 2.2 Thông tin cơ bản về dữ liệu được xuất từ Python
Nguồn: Tính toán của tác giả
Như vậy biến Checking account và Saving accounts có tới lần lượt 394 và 183 dữ liệu trống Dữ liệu bao gồm cả các biến phân loại, biến nhị phân, biến liên tục và cả dữ liệu thiếu Vì vậy một trong những bước quan trọng để có dữ liệu làm đầu vào cho các mô hình là việc phải đi xử lý những dữ liệu này.
Với dữ liệu nhị phân: sẽ xử lý bằng cách mã hóa các biến này về dạng nhận hai giá trị 0 hoặc 1
Với dữ liệu phân loại: sẽ xử lý bằng cách mã hóa các biến này về dạng biến giả Trong Python sẽ sử dụng công cụ: ‘One hot encoder’ để thực hiện việc mã hóa này.
Với dữ liệu là biến số liên tục: chuẩn hóa dữ liệu theo phân phối chuẩn (0,1) và ý nghĩa của việc này là đưa các biến có giá trị số thực về cùng một thang đo cũng như sẽ giúp tốc độ tính toán được cải thiện đáng kể trong thực tế vì sẽ không phải tính toán những con số rất lớn.
Dữ liệu sẽ được chia thành hai tập: một tập huấn luyện cho mô hình (tập training) và một tập kiểm tra lại mô hình vừa huấn luyện (tập testing) Hai tập này được chọn ngẫu nhiên và hoàn toàn tách biệt với nhau Tỷ lệ giữa hai tập này được học viên chọn trong bài là 80% dữ liệu làm tập huấn luyện và 20% còn lại làm tập kiểm tra Hai tập dữ liệu được chia ra tách biệt từ tập dữ liệu gốc để đảm bảo tính khách quan trong đánh giá mô hình dự báo với một tập dữ liệu mà máy tính chưa từng học qua.
Sẽ có ba cách xử lý với dữ liệu trống:
• Cách 1: Xóa tất cả các quan sát có dữ liệu trống
Sau khi thực hiện thì dữ liệu chỉ còn lại 522 quan sát và đã mất tới 47,8% so với dữ liệu ban đầu.
• Cách 2: Do việc xử lý dữ liệu như cách một đã làm mất đi tới gần một nửa bộ dữ liệu gốc do đó học viên sẽ tiếp tục xử lý theo cách thứ hai là: Xóa toàn bộ cột dữ liệu ‘Checking accout’ và sau đó xóa các quan sát có dữ liệu trống.
• Cách 3: Sử dụng 8 thuộc tính còn lại sau khi bỏ đi thuộc tính ‘Checking account’ và thuộc tính ‘Saving accounts’ để dự đoán cho 183 dữ liệu đang thiếu của thuộc tính ‘Saving accounts’ Sau đó tiếp tục sử dụng 9 thuộc tính đã có bao gồm cả thuộc tính ‘Saving accounts’ để dự đoán cho 394 dữ liệu còn thiếu của thuộc tính ‘Checking account’
KẾT QUẢ
Kết quả chạy mô hình:
• Với dữ liệu được xử lý theo cách 1:
Hình 2.3 Điểm dữ liệu sau khi đã thực hiện chuẩn hóa theo cách 1
Nguồn: Tính toán của tác giả
Dữ liệu đầu vào đưa vào mô hình bao gồm 417 quan sát dùng để huấn luyện và 105 quan sát dùng để kiểm tra độ chính xác của mô hình
Hình 2.4 Kết quả độ chính xác các mô hình theo cách 1
Nguồn: Tính toán của tác giả Nhận xét: Dữ liệu được dùng để huấn luyện mô hình thực tế của phương án này là 417 điểm dữ liệu Chính vì dữ liệu khá ít nên chất lượng dự báo của các mô hình đều không cao, chỉ nằm trong khoảng 48% đến hơn 58% Trong đó mô hình ANN là mô hình có độ chính xác cao nhất.
• Với dữ liệu được xử lý theo cách 2:
Hình ảnh của một quan sát trong dữ liệu sau khi đã thực hiện chuẩn hóa:
Dữ liệu đầu vào đưa vào mô hình bao gồm 653 quan sát dùng để huấn luyện và 164 quan sát dùng để kiểm tra độ chính xác của mô hìn Kết quả về độ chính xác của các mô hình dự báo:
Hình 2.5 Kết quả độ chính xác các mô hình theo cách 2
Nguồn: Tính toán của tác giả
Nhận xét: khi sử dụng phương án xử lý dữ liệu này, số điểm dữ liệu được dùng để huấn luyện mô hình thực tế là 653 Tuy dữ liệu vẫn còn khá ít nhưng chất lượng các mô hình dự báo đã tăng lên đáng kể nằm trong khoảng 70% đến gần 79% Mô hình tại lần thử nghiệm này có độ chính xác cao nhất là mô hình SVM.
• Với dữ liệu được xử lý theo cách 3:
➢ Sử dụng 8 thuộc tính của dữ liệu bao gồm: ‘Age’ ; ‘Sex’ ; ‘Job’ ;
‘Housing’ ; ‘Credit_Amount’ ; ‘Duration’ ; ‘Purpose’ và ‘Risk’ để dự đoán cho 183 dữ liệu đang thiếu của thuộc tính ‘Saving accounts’
➢ Học viên sử dụng mô hình hồi quy Logistic đa lớp để phân loại 183 dữ liệu thiếu này vào các trường thông tin: ‘little’; ‘quite rich’; ‘rich’;
Hình 2.6 Kết quả dự báo thông tin thiếu trường ‘Saving accounts’
Nguồn: Tính toán của tác giả
➢ Sau khi bổ sung thông tin vừa dự đoán cho biến ‘Saving accounts’ thì học viên sẽ dùng tất cả 9 biến vừa xác định để dự đoán cho 394 dữ liệu còn thiếu của thuộc tính ‘Checking account’.
Hình 2.7 Kết quả dự báo thông tin thiếu trường ‘Checking account’
Nguồn: Tính toán của tác giả
➢Học viên tiếp tục sử dụng mô hình hồi quy Logistic đa lớp để phân loại
394 dữ liệu thiếu này vào các trường thông tin: ‘little’; ‘moderate’; ‘rich’
➢Sau khi bổ sung thông tin vừa dự đoán cho biến ‘Checking account’, học viên sẽ sử dụng bộ dữ liệu vừa được dự đoán cho tất cả các điểm dữ liệu thiếu dữ liệu để tiếp tục dự báo về khả năng trả nợ của khách hàng.
Hình 2.8 Kết quả độ chính xác các mô hình theo cách 3
Nguồn: Tính toán của tác giả
Bảng 2.1 Tổng hợp kết quả các mô hình, đơn vị là %:
K-NN Logistic Decision Random SVM ANN
Nguồn: Tổng hợp tính toán của tác giả
Hình 2.9 So sánh kết quả của mô hình theo cách 1 và cách 2
Nguồn: Tổng hợp tính toán của tác giả
Hình 2.10 So sánh kết quả của mô hình theo cách 2 và cách 3
Nguồn: Tổng hợp tính toán của tác giả
Nhận xét về kết quả tổng hợp của ba mô hình:
➢ Khi sử dụng phương án xử lý dữ liệu thứ hai, số điểm dữ liệu được dùng để huấn luyện mô hình thực tế là 653 tăng hơn 50% so với số lượng điểm dữ liệu được dùng để huấn luyện trong phương án xử lý dữ liệu thứ nhất Tuy số điểm dữ liệu vẫn còn tương đối ít nhưng hiệu quả độ chính xác của mô hình đã tăng lên tương đối nhiều qua đó có thể thấy giá trị của dữ liệu trong việc góp phần vào sự dự đoán chính xác của mô hình.
➢ Phương án thứ ba sử dụng các dữ liệu đã được dự đoán để dự báo cho khả năng trả nợ của khách hàng Kết quả của mô hình dự báo lần này tốt hơn so với phương án thứ nhất nhưng nhìn kém hơn so với phương án thứ hai Có một số lý do cho kết quả này như việc số quan sát huấn luyện không đủ nhiều dẫn tới các dự đoán cho các dữ liệu trống chưa thật sự chính xác Và sau đó lại sử dụng các dữ liệu dự đoán này để dự báo tiếp về khả năng trả nợ của khách hàng Điều đó dẫn đến việc mô hình dự báo sẽ có những sai xót nhất định.
➢ Chỉ với 653 điểm dữ liệu cùng với 9 thuộc tính thông tin nhưng đã có mô hình có thể dự báo chính xác tới gần 79% Điều này thể hiện sự tích cực của các mô hình dự báo do trên thực tế số điểm dữ liệu quan sát được của các ngân hàng có thể lên tới hàng triệu, hàng chục triệu với số thuộc tính thông tin có thể lên tới hàng trăm thuộc tính trong đó bao gồm rất nhiều các thông tin hữu ích trong việc đánh giá khả năng trả nợ của khách hàng khác ngoài 9 thuộc tính thông tin trong bộ dữ liệu của luận văn Càng có nhiều dữ liệu thì các mô hình học máy sẽ càng được huấn luyện tốt và đưa ra kết quả ngày càng chính xác.
DỰ BÁO CHO DỮ LIỆU CHUỖI THỜI GIAN
TIẾP CẬN BÀI TOÁN
Dữ liệu chuỗi thời gian vẫn đang được nghiên cứu và sử dụng như một công cụ hữu hiệu đem lại những ứng dụng thực tế quan trọng trong các lĩnh vực kinh tế, xã hội, khoa học, thống kê, xử lý tín hiệu số, toán tài chính,…Và bài toán dự báo cho dữ liệu chuỗi thời gian là một trong những bài toán được nghiên cứu nhiều nhất trong lĩnh vực này Chính do tầm quan trọng của việc phân tích và dự báo chuỗi thời gian nên đã có rất nhiều tác giả đã đề xuất hướng nghiên cứu về vấn đề này Hiện nay công cụ chủ yếu để phân tích chuỗi thời gian là sử dụng các công cụ thống kê như hồi qui, phân tích Furie, nhưng hiệu quả thì có thể kể đến mô hình ARIMA của Box-Jenkins.
Trong khuôn khổ của luận văn, học viên muốn giới thiệu một hướng tiếp cận có phần khác đối với bài toán này đó là sử dụng mạng nơ ron nhân tạo để dự báo chuỗi thời gian như là một ví dụ cho bài toán hồi quy trong học máy VN-Index là chỉ số bình quân gia quyền của tất cả các cổ phiếu đang được niêm yết trên sàn Giao dịch Chứng khoán Thành phố Hồ Chí Minh là nơi hội tụ niêm yết của rất nhiều các doanh nghiệp lớn Quy mô vốn hóa trên sàn HOSE chiếm tới 88% toàn thị trường và đạt gần 60% GDP của Việt Nam Chính vì vậy mà chỉ số VN-Index là một chỉ số quan trọng, không chỉ thể hiện xu hướng biến động giá của các cổ phiếu mà còn mô tả tâm lý của nhà đầu tư, mô tả hiệu suất của thị trường chứng khoán, mô tả sự dịch chuyển thay đổi cũng như sức khỏe của nền kinh tế Do vậy học viên quyết định lựa chọn chỉ số VN-Index làm dữ liệu cho bài toán dự báo chuỗi thời gian của mình.
DỮ LIỆU CỦA BÀI TOÁN
Dữ liệu là giá đóng cửa của VN-Index từ ngày 26/11/2009 đến ngày 21/02/2020 với 2550 điểm dữ liệu được lấy từ trang web: https://www.cophieu68.vn/
Hình 3.0 Dữ liệu VN-Index từ 2010 đến 2019
Dữ liệu sẽ được chia thành tập huấn luyện và tập kiểm tra hoàn toàn độc lập phù hợp với yêu cầu về dữ liệu của mô hình.
Học viên sử dụng 6 mô hình dự báo cho VN-Index:
✓ Mô hình 1 (mô hình 200 ngày): sử dụng giá quá khứ 200 ngày trước để dự báo cho giá trị của VN-Index cần dự báo Trong mô hình này tổng dữ liệu của cả tập huấn luyện và tập kiểm tra là 2350 điểm dữ liệu do điểm dữ liệu đầu tiên cần 200 dữ liệu trước đó để dự báo.
Tập huấn luyện là 2100 điểm dữ liệu đầu và tập kiểm tra gồm 250 điểm dữ liệu còn lại.
Mô hình sử dụng mạng nơ-ron 6 lớp với lớp đầu vào là một véc tơ 200 chiều, lớp ẩn thứ nhất có 100 nốt, lớp ẩn thứ hai có 50 nốt, lớp ẩn thứ ba có 25 nốt, lớp ẩn thứ tư có 12 nốt, và nốt đầu ra có 1 nốt.
✓ Mô hình 2 (mô hình 150 ngày) : sử dụng giá quá khứ 150 ngày trước để dự báo cho giá trị của VN-Index cần dự báo Trong mô hình này tổng dữ liệu của cả tập huấn luyện và tập kiểm tra là 2400 điểm dữ liệu do điểm dữ liệu đầu tiên cần 150 dữ liệu trước đó để dự báo Tập huấn luyện là 2150 điểm dữ liệu đầu và tập kiểm tra gồm 250 điểm dữ liệu còn lại.
Mô hình sử dụng mạng nơ-ron 6 lớp với lớp đầu vào là một véc tơ 150 chiều, lớp ẩn thứ nhất có 89 nốt, lớp ẩn thứ hai có 50 nốt, lớp ẩn thứ ba có 25 nốt, lớp ẩn thứ tư có 12 nốt, và nốt đầu ra có 1 nốt.
✓ Mô hình 3 (mô hình 100 ngày): sử dụng giá quá khứ 100 ngày trước để dự báo cho giá trị của VN-Index cần dự báo Trong mô hình này tổng dữ liệu của cả tập huấn luyện và tập kiểm tra là 2450 điểm dữ liệu do điểm dữ liệu đầu tiên cần 100 dữ liệu trước đó để dự báo Tập huấn luyện là 2200 điểm dữ liệu đầu và tập kiểm tra gồm 250 điểm dữ liệu còn lại.
Mô hình sử dụng mạng nơ-ron 5 lớp với lớp đầu vào là một véc tơ 100 chiều, lớp ẩn thứ nhất có 50 nốt, lớp ẩn thứ hai có 25 nốt, lớp ẩn thứ tư có 12 nốt, và nốt đầu ra có 1 nốt.
✓ Mô hình 4 (mô hình 50 ngày): sử dụng giá quá khứ 50 ngày trước để dự báo cho giá trị của VN-Index cần dự báo Trong mô hình này tổng dữ liệu của cả tập huấn luyện và tập kiểm tra là 2500 điểm dữ liệu do điểm dữ liệu đầu tiên cần 50 dữ liệu trước đó để dự báo Tập huấn luyện là 2250 điểm dữ liệu đầu và tập kiểm tra gồm 250 điểm dữ liệu còn lại.
Mô hình sử dụng mạng nơ-ron 5 lớp với lớp đầu vào là một véc tơ 50 chiều, lớp ẩn thứ nhất có 25 nốt, lớp ẩn thứ hai có 12 nốt, lớp ẩn thứ ba có 6 nốt và nốt đầu ra có 1 nốt.
✓ Mô hình 5 (mô hình 30 ngày): sử dụng giá quá khứ 30 ngày trước để dự báo cho giá trị của VN-Index cần dự báo Trong mô hình này tổng dữ liệu của cả tập huấn luyện và tập kiểm tra là 2520 điểm dữ liệu do điểm dữ liệu đầu tiên cần 30 dữ liệu trước đó để dự báo Tập huấn luyện là 2250 điểm dữ liệu đầu và tập kiểm tra gồm 270 điểm dữ liệu còn lại.
Mô hình sử dụng mạng nơ-ron 5 lớp với lớp đầu vào là một véc tơ 30 chiều,lớp ẩn thứ nhất có 20 nốt, lớp ẩn thứ hai có 12 nốt, lớp ẩn thứ ba có 6 nốt và nốt đầu ra có 1 nốt.
✓ Mô hình 6 (mô hình 20 ngày): sử dụng giá quá khứ 20 ngày trước để dự báo cho giá trị của VN-Index cần dự báo Trong mô hình này tổng dữ liệu của cả tập huấn luyện và tập kiểm tra là 2530 điểm dữ liệu do điểm dữ liệu đầu tiên cần 30 dữ liệu trước đó để dự báo Tập huấn luyện là 2250 điểm dữ liệu đầu và tập kiểm tra gồm 280 điểm dữ liệu còn lại.
Mô hình sử dụng mạng nơ-ron 4 lớp với lớp đầu vào là một véc tơ 20 chiều, lớp ẩn thứ nhất có 12 nốt, lớp ẩn thứ hai có 6 nốt, và nốt đầu ra có 1 nốt.
ĐO LƯỜNG TÍNH CHÍNH XÁC CỦA MÔ HÌNH DỰ BÁO
3.3.1 Định nghĩa sai số dự báo
Tính chính xác của một mô hình dự báo phụ thuộc vào giá trị dự báo Y ^ t gần với giá trị Y t như thế nào Trong thực tiễn thì hiệu số giữa giá trị thực tế và giá trị dự báo được định nghĩa là sai số dự báo: e t = Y t −Y ^ t
Một mô hình dự báo được coi là tốt nếu sai số dự báo sẽ tương đối nhỏ
3.3.2 Các phương pháp thống kê để đo tính chính xác của dự báo
Luận văn sẽ sử dụng một số thước đo về độ chính xác của dự báo dược sử dụng phổ biến và rộng rãi trong học thuật Những thước đo này thường sử dụng giá trị tuyệt đối của sai số ( e t ) hoặc bình phương sai số ( e t 2 )
▪ Giá trị trung bình của sai số tuyệt đối (Mean Absolute Error): e n t
▪ Giá trị trung bình của phần trăm sai số tuyệt đối (Mean Absolute
▪ Giá trị trung bình của bình phương sai số (Mean Square Error): n e t 2
▪ Sai số chuẩn (Root Mean Square Error): n e t 2
• e t : là sai số dự báo trong thời kỳ t
• n: là số quan sát dự báo trong thời kỳ ước lượng
• Y t : là giá trị thực tế trong thời kỳ t
3.4 Kết quả của bài toán
Bảng 3.1: Kết quả sai số của các mô hình
Nguồn : Tính toán của tác giả
Hình 3.1 Kết quả dự báo mô hình 1
Nguồn: Tính toán của tác giả
Hình 3.2 Kết quả dự báo mô hình 2
Nguồn: Tính toán của tác giả
Hình 3.3 Kết quả dự báo mô hình 3
Nguồn: Tính toán của tác giả
Hình 3.4 Kết quả dự báo mô hình 4
Nguồn: Tính toán của tác giả
Hình 3.5 Kết quả dự báo mô hình 5
Nguồn: Tính toán của tác giả
Hình 3.6 Kết quả dự báo mô hình 6
Nguồn: Tính toán của tác giả
Dường như mô hình sử dụng dữ liệu quá khứ của 20 ngày trước đó cho ra một kết quả khả quan hơn các mô hình còn lại Tuy nhiên điều đó có thể không thật sự chính xác do các thông số của mạng là một quá trình thử sai và ngay cả khi có thể chạy mô hình của rất nhiều tổ hợp các thông số của mô hình như: số lớp, số nút mỗi lớp, các hàm kích hoạt điều mà gần như là không thể thì cũng vẫn chưa thể kết luận được mô hình nào tốt hơn mô hình nào do quá trình tối ưu hóa tham số bằng phương pháp giảm gradient dù có thể xuất phát từ rất nhiều điểm khác nhau nhưng chưa chắc đã đạt được tối ưu toàn cục Chúng ta chỉ có thể chấp nhận điểm tối ưu cục bộ tìm được gần nhất với điểm tối ưu toàn cục cũng như việc chúng ta chấp nhận thông số của một mô hình mà ta thấy đó là đủ tốt cho quá trình dự báo.
Trong 6 mô hình với các tham số cài đặt chỉ định mà học viên sử dụng trong luận văn này thì mô hình thứ 6 mà học viên trình bày bên trên là mô hình tốt nhất. Các tham số của mô hình sẽ không được xuất ra như với bài toán phân loại sử dụng ANN ở chương 2 do số lượng tham số của mô hình là rất lớn nhưng kết quả sẽ tương tự như kết quả xuất ra ở chương 2.
Luận văn so sánh kết quả sai số của mô hình 6 với kết quả được đưa ra bởi PGS.TS Huỳnh Quyết Thắng của Viện Công nghệ Thông tin và Truyền thông, trường Đại học Bách khoa Hà Nội trong bài viết ‘Dự đoán xu thế chỉ số chứng khoán Việt Nam VN-Index sử dụng phân tích hồi quy Gaussian Process và mô hình tự hồi quy trung bình động ARMA’ trên chuyên san ‘Các công trình nghiên cứu và phát triển Công nghệ Thông tin và Truyền thông’ đăng tháng 11/2018 Trong bài viết này tác giả sử dụng phương pháp ARMA (Autoregressive moving average),GPR (Gaussian process regression) và phương pháp kết hợp GPR-ARMA để dự báo cho chỉ số VN-Index với tập huấn luyện là các giá trị trong ngày giao dịch từ02/02/2015 đến 13/04/2016 và tập kiểm tra là từ ngày 14/04/2016 đến 09/08/2016.
Bảng 3.2 Kết quả so sánh mô hình 1 và bài báo [13]
Mô hình 6 hay là mô hình sử dụng giá quá khứ 20 ngày trước để dự báo cho giá trị của VN-Index cần dự báo của học viên có kết quả RMSE cao hơn so với mô hình tốt nhất là GPR-ARMA của [13] nhưng lại có MAPE thấp hơn so với mô hình này. Điều này phần nào thể hiện sự tích cực, hiệu quả của các mô hình mạng nơ ron trong việc dự báo cho dữ liệu chuỗi thời gian Tuy nhiên mô hình mạng nơ ron nhân tạo vẫn sẽ có những hạn chế của riêng mình.
3.6 Nhận xét về mô hình ANN
Mạng nơ ron nhân tạo luôn được coi là một công cụ mạnh để giải quyết các bài toán có tính phi tuyến, phức tạp và đặc biệt trong các trường hợp mà mối quan hệ giữa các quá trình không dễ thiết lập Tuy nhiên chính vì thế mà mô hình học máy ANN vẫn luôn được coi là một quá trình học hộp đen khi không đưa ra những phân tích thống kê một cách rõ ràng. Ưu điểm của mạng nơ ron:
✓ Có khả năng tự học và tự điều chỉnh các tham số để kết quả tính toán phù hợp với thực tế mà không phụ thuộc vào ý kiến chủ quan của con người.
✓ Thích hợp với nhiều dạng dữ liệu trong đó có cả dữ liệu chuỗi thời gian Làm việc tốt với dữ liệu chuỗi thời gian phi tuyến do mô hình ANN chính là một mô hình không tuyến tính tối ưu các tham số sao cho kết quả sai số giữa dự báo và giá trị quan sát là nhỏ nhất.
Hạn chế của mạng nơ ron:
✓ Số lượng các tham số của mô hình thường là rất lớn phụ thuộc vào các đặc trưng của bài toán thực tế vì vậy khó để giải thích tường minh quá trình dẫn tới kết quả.
✓ Việc lựa chọn các thông số của mạng nơ ron nhân tạo là một quá trình thử sai khi không có câu trả lời chung nhất cho việc chọn các thông số cho mô hình như thế nào là tốt nhất cho các chu kì huấn luyện, kiểm tra và kiểm định lại kết quả.
3.7 Đánh giá việc xây dựng mô hình dự báo tài chính bằng phương pháp học máy
Hai bài toán tại chương 2 và chương 3 của luận văn là hai bài toán điển hình của loại bài toán phân loại và bài toán hồi quy trong học máy mà học viên muốn đưa ra để cho thấy rằng các mô hình học máy rất đa dạng, có nguyên lý hoạt động tương đối phức tạp và kèm theo đó là sự hiệu quả trong việc giải quyết các bài toán trên cả lý thuyết lẫn thực tế đã được minh chứng trong các bài báo khoa học, các công trình nghiên cứu Đối với bài toán phân loại ngoài mô hình hồi quy logistic vẫn thường được biết đến là mô hình logit trong kinh tế lượng thì học máy đã bổ sung thêm tương đối nhiều các mô hình khác như: KNN, Decision Tree, Random Forest, SVM, ANN, Softmax, … là các mô hình đã được tạo ra với các thuật toán chuyên biệt cho việc phân loại được xây dựng từ cơ sở lý thuyết vững chắc điều đó tạo ra sự hiệu quả, độ chính xác tốt hơn của các mô hình này so với mô hình phân loại hiện đang được sử dụng trong kinh tế lượng Đối với bài toán hồi quy, sự ra đời của mạng nơ ron nhân tạo và các cải tiến của mạng học sâu này đã được công nhận là có sự chính xác vượt trội so với các mô hình hồi quy trong kinh tế lượng truyền thống do khả năng tự học hỏi và điều chỉnh tham số của mô hình cũng như khả năng nhận dạng rất tốt với dữ liệu cả tuyến tính và phi tuyến tính nhờ vào số lượng rất lớn các tham số tham gia vào mô hình, số lượng tham số có thể lên tới hàng triệu, hàng chục triệu, hàng trăm triệu tham số điều hoàn toàn khác biệt so với các mô hình kinh tế lượng truyền thống Vì vậy các thuật toán học máy được tạo ra có xu hướng xử lý tốt với các dữ liệu lớn, phức tạp hơn các mô hình thống kê và kinh tế lượng truyền thống.
Học máy là một phương pháp phân tích dữ liệu tự động hóa việc xây dựng mô hình phân tích Một trong những mô hình tự động dựa trên những trình bày tại chương 2 của học viên là khi hệ thống ghi nhận thông tin của một khách hàng thì hệ thống có thể tự động trả về quyết định có cho khách hàng này vay hay không? vay bao nhiêu? với lãi suất là bao nhiêu? phụ thuộc vào những cài đặt cho trước về khẩu vị rủi ro, chiến lược sản phẩm của tổ chức tài chính và dựa trên những thông tin về khả năng trả nợ của khách hàng được tính toán bởi các mô hình học máy Học máy là việc dạy máy tính cách học hỏi từ dữ liệu để đưa ra dự đoán, từ đó đưa ra quyết định một cách hợp lý Chính vì vậy nguồn nguyên liệu đầu vào không thể thiếu của học máy chính là dữ liệu và dữ liệu hiện nay được coi là nguồn tài nguyên, tài sản còn quý hơn cả dầu mỏ trong thời đại công nghiệp 4.0 Do đó học máy cần có nguồn dữ liệu đầu vào lớn, dồi dào, đáng tin cậy để có thể huấn luyện, thử nghiệm và đưa ra dự báo đạt đạt độ chính xác cao Càng có nhiều dữ liệu thì các mô hình học máy sẽ càng chính xác.
Ngày nay không ai có thể phủ nhận tầm quan trọng của Dữ liệu lớn (Big Data) Tuy nhiên để khai thác Dữ liệu lớn một cách có hiệu quả, nó phải được vận hành bằng những phương pháp phân tích vượt quá khả năng phân tích của các mô hình thống kê và kinh tế lượng truyền thống Và học máy hiện đang được coi là một trong những giải pháp hữu ích cho những vấn đề kinh doanh có tính chất dữ liệu lớn và phức tạp.
3.8 Một số khuyến nghị chính sách
Với những lý do phía trên, nhằm góp phần vào sự phát triển học viên xin đưa ra một số khuyến nghị chính sách chung của ngành tài chính – ngân hàng như sau:
NHẬN XÉT KẾT QUẢ
Dường như mô hình sử dụng dữ liệu quá khứ của 20 ngày trước đó cho ra một kết quả khả quan hơn các mô hình còn lại Tuy nhiên điều đó có thể không thật sự chính xác do các thông số của mạng là một quá trình thử sai và ngay cả khi có thể chạy mô hình của rất nhiều tổ hợp các thông số của mô hình như: số lớp, số nút mỗi lớp, các hàm kích hoạt điều mà gần như là không thể thì cũng vẫn chưa thể kết luận được mô hình nào tốt hơn mô hình nào do quá trình tối ưu hóa tham số bằng phương pháp giảm gradient dù có thể xuất phát từ rất nhiều điểm khác nhau nhưng chưa chắc đã đạt được tối ưu toàn cục Chúng ta chỉ có thể chấp nhận điểm tối ưu cục bộ tìm được gần nhất với điểm tối ưu toàn cục cũng như việc chúng ta chấp nhận thông số của một mô hình mà ta thấy đó là đủ tốt cho quá trình dự báo.
Trong 6 mô hình với các tham số cài đặt chỉ định mà học viên sử dụng trong luận văn này thì mô hình thứ 6 mà học viên trình bày bên trên là mô hình tốt nhất. Các tham số của mô hình sẽ không được xuất ra như với bài toán phân loại sử dụng ANN ở chương 2 do số lượng tham số của mô hình là rất lớn nhưng kết quả sẽ tương tự như kết quả xuất ra ở chương 2.
Luận văn so sánh kết quả sai số của mô hình 6 với kết quả được đưa ra bởi PGS.TS Huỳnh Quyết Thắng của Viện Công nghệ Thông tin và Truyền thông, trường Đại học Bách khoa Hà Nội trong bài viết ‘Dự đoán xu thế chỉ số chứng khoán Việt Nam VN-Index sử dụng phân tích hồi quy Gaussian Process và mô hình tự hồi quy trung bình động ARMA’ trên chuyên san ‘Các công trình nghiên cứu và phát triển Công nghệ Thông tin và Truyền thông’ đăng tháng 11/2018 Trong bài viết này tác giả sử dụng phương pháp ARMA (Autoregressive moving average),GPR (Gaussian process regression) và phương pháp kết hợp GPR-ARMA để dự báo cho chỉ số VN-Index với tập huấn luyện là các giá trị trong ngày giao dịch từ02/02/2015 đến 13/04/2016 và tập kiểm tra là từ ngày 14/04/2016 đến 09/08/2016.
Bảng 3.2 Kết quả so sánh mô hình 1 và bài báo [13]
Mô hình 6 hay là mô hình sử dụng giá quá khứ 20 ngày trước để dự báo cho giá trị của VN-Index cần dự báo của học viên có kết quả RMSE cao hơn so với mô hình tốt nhất là GPR-ARMA của [13] nhưng lại có MAPE thấp hơn so với mô hình này. Điều này phần nào thể hiện sự tích cực, hiệu quả của các mô hình mạng nơ ron trong việc dự báo cho dữ liệu chuỗi thời gian Tuy nhiên mô hình mạng nơ ron nhân tạo vẫn sẽ có những hạn chế của riêng mình.
NHẬN XÉT VỀ MÔ HÌNH ANN
Mạng nơ ron nhân tạo luôn được coi là một công cụ mạnh để giải quyết các bài toán có tính phi tuyến, phức tạp và đặc biệt trong các trường hợp mà mối quan hệ giữa các quá trình không dễ thiết lập Tuy nhiên chính vì thế mà mô hình học máy ANN vẫn luôn được coi là một quá trình học hộp đen khi không đưa ra những phân tích thống kê một cách rõ ràng. Ưu điểm của mạng nơ ron:
✓ Có khả năng tự học và tự điều chỉnh các tham số để kết quả tính toán phù hợp với thực tế mà không phụ thuộc vào ý kiến chủ quan của con người.
✓ Thích hợp với nhiều dạng dữ liệu trong đó có cả dữ liệu chuỗi thời gian Làm việc tốt với dữ liệu chuỗi thời gian phi tuyến do mô hình ANN chính là một mô hình không tuyến tính tối ưu các tham số sao cho kết quả sai số giữa dự báo và giá trị quan sát là nhỏ nhất.
Hạn chế của mạng nơ ron:
✓ Số lượng các tham số của mô hình thường là rất lớn phụ thuộc vào các đặc trưng của bài toán thực tế vì vậy khó để giải thích tường minh quá trình dẫn tới kết quả.
✓ Việc lựa chọn các thông số của mạng nơ ron nhân tạo là một quá trình thử sai khi không có câu trả lời chung nhất cho việc chọn các thông số cho mô hình như thế nào là tốt nhất cho các chu kì huấn luyện, kiểm tra và kiểm định lại kết quả.
ĐÁNH GIÁ VIỆC XÂY DỰNG MÔ HÌNH DỰ BÁO TÀI CHÍNH BẰNG PHƯƠNG PHÁP HỌC MÁY
Hai bài toán tại chương 2 và chương 3 của luận văn là hai bài toán điển hình của loại bài toán phân loại và bài toán hồi quy trong học máy mà học viên muốn đưa ra để cho thấy rằng các mô hình học máy rất đa dạng, có nguyên lý hoạt động tương đối phức tạp và kèm theo đó là sự hiệu quả trong việc giải quyết các bài toán trên cả lý thuyết lẫn thực tế đã được minh chứng trong các bài báo khoa học, các công trình nghiên cứu Đối với bài toán phân loại ngoài mô hình hồi quy logistic vẫn thường được biết đến là mô hình logit trong kinh tế lượng thì học máy đã bổ sung thêm tương đối nhiều các mô hình khác như: KNN, Decision Tree, Random Forest, SVM, ANN, Softmax, … là các mô hình đã được tạo ra với các thuật toán chuyên biệt cho việc phân loại được xây dựng từ cơ sở lý thuyết vững chắc điều đó tạo ra sự hiệu quả, độ chính xác tốt hơn của các mô hình này so với mô hình phân loại hiện đang được sử dụng trong kinh tế lượng Đối với bài toán hồi quy, sự ra đời của mạng nơ ron nhân tạo và các cải tiến của mạng học sâu này đã được công nhận là có sự chính xác vượt trội so với các mô hình hồi quy trong kinh tế lượng truyền thống do khả năng tự học hỏi và điều chỉnh tham số của mô hình cũng như khả năng nhận dạng rất tốt với dữ liệu cả tuyến tính và phi tuyến tính nhờ vào số lượng rất lớn các tham số tham gia vào mô hình, số lượng tham số có thể lên tới hàng triệu, hàng chục triệu, hàng trăm triệu tham số điều hoàn toàn khác biệt so với các mô hình kinh tế lượng truyền thống Vì vậy các thuật toán học máy được tạo ra có xu hướng xử lý tốt với các dữ liệu lớn, phức tạp hơn các mô hình thống kê và kinh tế lượng truyền thống.
Học máy là một phương pháp phân tích dữ liệu tự động hóa việc xây dựng mô hình phân tích Một trong những mô hình tự động dựa trên những trình bày tại chương 2 của học viên là khi hệ thống ghi nhận thông tin của một khách hàng thì hệ thống có thể tự động trả về quyết định có cho khách hàng này vay hay không? vay bao nhiêu? với lãi suất là bao nhiêu? phụ thuộc vào những cài đặt cho trước về khẩu vị rủi ro, chiến lược sản phẩm của tổ chức tài chính và dựa trên những thông tin về khả năng trả nợ của khách hàng được tính toán bởi các mô hình học máy Học máy là việc dạy máy tính cách học hỏi từ dữ liệu để đưa ra dự đoán, từ đó đưa ra quyết định một cách hợp lý Chính vì vậy nguồn nguyên liệu đầu vào không thể thiếu của học máy chính là dữ liệu và dữ liệu hiện nay được coi là nguồn tài nguyên, tài sản còn quý hơn cả dầu mỏ trong thời đại công nghiệp 4.0 Do đó học máy cần có nguồn dữ liệu đầu vào lớn, dồi dào, đáng tin cậy để có thể huấn luyện, thử nghiệm và đưa ra dự báo đạt đạt độ chính xác cao Càng có nhiều dữ liệu thì các mô hình học máy sẽ càng chính xác.
Ngày nay không ai có thể phủ nhận tầm quan trọng của Dữ liệu lớn (Big Data) Tuy nhiên để khai thác Dữ liệu lớn một cách có hiệu quả, nó phải được vận hành bằng những phương pháp phân tích vượt quá khả năng phân tích của các mô hình thống kê và kinh tế lượng truyền thống Và học máy hiện đang được coi là một trong những giải pháp hữu ích cho những vấn đề kinh doanh có tính chất dữ liệu lớn và phức tạp.
MỘT SỐ KHUYẾN NGHỊ CHÍNH SÁCH
Với những lý do phía trên, nhằm góp phần vào sự phát triển học viên xin đưa ra một số khuyến nghị chính sách chung của ngành tài chính – ngân hàng như sau:
• Cơ quan quản lý nhà nước cũng như các tổ chức tài chính – ngân hàng cần có những quan điểm, chiến lược đúng đắn về nguồn tài sản rất có giá trị của mình đó là dữ liệu Cần xây dựng các hệ cơ sở dữ liệu để có thể lưu trữ dữ liệu một cách khoa học, chính xác từ đó làm nền tảng để có thể thấy được bức tranh toàn cảnh rõ nét về cả hệ thống tài chính – ngân hàng nói chung và các định chế tài chính – ngân hàng nói riêng.
• Đẩy mạnh ứng dụng các tiến bộ của khoa học kỹ thuật phát triển trên thế giới điển hình là học máy trong việc dự báo và ra quyết định trong lĩnh vực tài chính – ngân hàng Các mô hình học máy sẽ giúp cho các tổ chức tài chính – ngân hàng ra quyết định hoàn toàn tự động, giúp cho quá trình giải quyết công việc nhanh hơn, chính xác hơn, tối ưu hóa nguồn lực lao động Với tốc độ phát triển nhanh chóng của các nguồn dữ liệu hiện nay cộng thêm sự hoàn thiện của các thuật toán học máy và năng lực tính toán của máy tính Việc khai thác những ứng dụng của học máy sẽ giúp cho ngành tài chính – ngân hàng có được sự hỗ trợ hiệu quả trong việc phân tích, xử lý thông tin và đưa ra những quyết định đúng đắn một cách kịp thời mang lại nhiều giá trị và lợi thế Vì những lý do đó học máy sẽ giữ vai trò quan trọng trong việc phân tích và dự báo trong lĩnh vực tài chính – ngân hàng trong thời gian tới.