255 SỬ DỤNG MẠNG NƠ RON NHÂN TẠO NHIỀU TẦNG ĐỂ DỰ BÁO GIÁ NHÀ Ở ThS Lê Thị Thu Giang Bộ môn Toán, Đại học Thương mại Tóm tắt Mục đích chính của bài này là giới thiệu về mô hình mạng nơ ron nhiều tầng[.]
SỬ DỤNG MẠNG NƠ-RON NHÂN TẠO NHIỀU TẦNG ĐỂ DỰ BÁO GIÁ NHÀ Ở ThS Lê Thị Thu Giang Bộ mơn Tốn, Đại học Thương mại Tóm tắt Mục đích giới thiệu mơ hình mạng nơ-ron nhiều tầng cách áp dụng vào toán dự báo phân loại giá nhà với số liệu giả định lấy từ trang web https://www.kaggle.com Tác giả thử nghiệm số liệu với mơ hình mạng nơ-ron khác Kết cho thấy mơ hình hoạt động tốt với độ xác tập kiểm tra khoảng 80%, mơ hình có sử dụng tới tham số hiệu chỉnh cho kết ổn định so với hai mô hình cịn lại Từ khóa: mạng nơ-ron , mạng nơ ron đa tầng, dự báo, dự báo giá nhà Mở đầu Trong năm gần đây, Học máy (Machine learning) trở thành cách tiếp cận hiệu cho toán kinh tế, xã hội như: nhận dạng chữ viết tay, nhận dạng ngôn ngữ tự nhiên, gợi ý tìm kiếm mua-bán hàng hóa, dự báo giá cổ phiếu, giá bất động sản,… Trong số thuật toán Học máy, mạng nơ-ron nhân tạo (ANN) biết đến phương pháp hiệu xấp xỉ lớp hàm phức tạp, phi tuyến ([14]) nhờ vào khả học tổng quát hóa Về bản, mạng nơ-ron nhân tạo bao gồm nơ-ron đầu vào (như khớp thần kinh), nhân với trọng số, cường độ tín hiệu tương ứng, sau tính hàm tốn học xác định kích hoạt nơ-ron (activation function) Một hàm khác (có thể hàm đồng nhất) tính tốn đầu tế bào thần kinh nhân tạo Cấu trúc mạng nơ-ron nhân tạo gồm thành phần sau đây: Các lớp: Ngoài lớp đầu vào (input layer) lớp đầu (output layer), mạng nơ-ron nhân tạo có nhiều lớp ẩn trung gian (hidden layers), mạng nơ-ron gọi mạng nơ-ron đa tầng Khi đó, đầu lớp trước đầu vào lớp liền sau Các nút: Mỗi điểm trịn hình gọi nút Trong lớp thường có nhiều nút đầu lớp trước nút lớp sau Với toán dự báo giá, đầu lớp cuối (output) có nút nhất, giá trị dự đoán Trọng số hệ số điều chỉnh: Nếu mạng nơ-ron có L lớp tương ứng với có L ma trận trọng số Ta kí hiệu ma trận trọng số lớp thứ , thành phần ma trận trọng số lớp , = Như vậy, với mơ hình mạng nơ-ron nhân tạo, số lượng tham số mơ hình lớn, cần phải tìm tất giá trị trọng số nói 255 Hàm kích hoạt (activation function): Đầu lớp thứ l, ≥ 2, tính theo cơng thức: = ( −1 + ) Trong đó, hàm kích hoạt lớp thứ −1 đầu thu từ lớp thứ − Thông thường, ta dùng số hàm phi tuyến sau làm hàm kích hoạt - Hàm Sigmoid: ( ) = - Hàm Tanh: - Hàm ReLU: ( ) = max( , 0) ℎ( ) = Hàm Sigmoid hàm Tanh hàm đối xứng, đơn điệu tăng có đầu tiến tới đầu vào lớn Nếu hàm Sigmoid nhận giá trị dương hàm Tanh lấy giá trị khoảng [−1, 1] Ưu điểm hàm cho đạo hàm đẹp mơ tả tốt mơ hình với biến đầu có dạng nhị phân biểu diễn xác suất Tuy nhiên, nhược điểm dễ nhận thấy đầu vào có giá trị tuyệt đối lớn, đạo hàm hai loại hàm gần với khơng Điều có nghĩa trọng số tương ứng với thành phần xét gần không cập nhật gần không cập, hay gọi tượng “Vanishing Gradient” Gần đây, hàm ReLU (Rectified Linear Unit) sử dụng rộng rãi tính đơn giản hiệu Khi sử dụng hàm mạng nơ-ron đa tầng, tốc độ hội tụ cao nhiều so với việc dùng hàm Tanh hay Sigmoid Mặc dù hàm ReLU có nhược điểm có đạo hàm với giá trị âm, thực nghiệm cho thấy rằng, nhược điểm khắc phục cách tăng số nút ẩn Có nhiều nghiên cứu đưa cho thấy tính hiệu ANNs dự báo giá nhà 20 năm qua ([5-8]) Trong này, tác giả sử dụng ba mô hình mạng nơ-ron để phân loại giá nhà mức hay mức trung bình dựa vào yếu tố gắn với ngơi nhà như: diện tích nhà, diện tích nhà để xe, số phịng tiện ích khác Phương pháp xây dựng mơ hình 2.1 Thuật tốn Lan truyền ngược (Backpropagation) Kí hiệu , cặp liệu huấn luyện, , ma trận bao gồm tất trọng số L lớp (mỗi cột trọng số tương ứng với lớp thứ ) Khi đó, q trình lan truyền thuận (forwardpropagation) thực qua phép lặp sau Khởi tạo := ≔ ≔ := −1 + , = 1, ⋯ , ( ) Hàm số biểu diễn sai số kết tính tốn mơ hình với kết thực tế gọi hàm mát ký hiệu ( , , , ) Có nhiều cách xây dựng hàm mát Một 256 cách thiết lập hàm mát thông dụng ta lấy trung bình bình phương sai số kết tính tốn với kết thực tế liệu đầu vào (MSE-mean square error): ( , , , )= ‖ − ‖ Trong đó, giá trị hàm hợp L hàm kích hoạt dạng ( giá trị xấp xỉ qua mô hình + ), Thuật tốn backpropagation (Rumelhart McClelland, 1986) dùng feed-forward ANNs Các tế bào thần kinh nhân tạo tổ chức thành lớp gửi tín hiệu chúng phía trước, sau sai số truyền ngược lại Ý tưởng thuật toán truyền ngược (backpropagation) giảm sai số cách thay đổi trọng số ANNs học từ liệu đào tạo Người ta giảm sai số cách thử với tham số khác chọn tham số để đạt mức sai số mong muốn Tuy nhiên, khối lượng tính tốn lớn địi hỏi tính tốn phức tạp Cách tốt để làm giảm sai số huấn luyện mô hình cho sai số gần với giá trị bé hàm mát tốt Do đó, để tìm trọng số phù hợp, ta giải gần tốn tối ưu Có nhiều thuật toán đưa để giải toán tối ưu Gradient Descent, Adam, RMSprop, Adadelta,… thuật toán lập trình sẵn để ta sử dụng áp dụng mơ hình ANN Ý tưởng chung thuật toán tối ưu ta cập nhật trọng số cho sai số sau bước lặp đạt sai số mong muốn sai số gần không đổi 2.2 Hiệu chỉnh thuật toán tối ưu Trong trình tối tưu hóa để giảm thiểu sai số, thường gặp tượng “quá khớp” (overfitting) Đó tượng thuật tốn tìm nghiệm có sai số q nhỏ, dẫn đến nghiệm có thiên hướng mơ tả liệu huấn luyện mô tả nghiệm tổng thể Hình 1: Hiện tượng "overfitting" Machine Learning Để tránh tượng này, ta sử dụng kỹ thuật hiệu chỉnh giải gần toán tối ưu Cách đơn giản ta đưa mức sai số giới hạn số bước lặp thuật tốn Ngồi ra, cách hay dùng ta thêm thành phần hiệu chỉnh dạng vào hàm mát (Loss function) để tối ưu hóa hàm chi phí (Coss function), cụ thể: ‖ ‖ 257 ( ) = ( )+ ( ) ‖ ‖ ( ) Cách làm khiến cho tốn tối ưu trở nên ổn định, có nghĩa nghiệm tối ưu sai số nghiệm xấp xỉ so với sai số đầu vào liệu ( )= ( )+ kết thực nghiệm 3.1 Mô tả liệu Trong phần này, tác giả sử dụng số liệu gồm 12 cột 1460 dòng trang web https://www.kaggle.com/ c/zillow-prize-1/data để dự báo nhà hay giá trung bình dựa 10 yếu tố gắn với ngơi nhà đó, bao gồm: diện tích lơ đất, chất lượng tổng thể, tình trạng tổng thể (chấm theo thang điểm từ đến 10), tổng diện tích tầng hầm, số lượng phòng tắm, số phòng ngủ, tổng số phòng, số lượng lị sưởi, diện tích nhà để xe Dữ liệu có dạng sau: No table LotArea of OverallQual OverallCond 8450 9600 11250 9550 14260 14115 10084 7 8 figures TotalBsmtSF FullBath 5 5 856 1262 920 756 1145 796 1686 HalfBath 2 2 entries found.: BedroomAbvGr TotRmsAbvGrd Fireplaces 1 1 3 3 6 GarageArea Price 1 1 548 460 608 642 836 480 636 Bảng 1: Thông tin liên quan mức giá số nhà bảng liệu Cột cuối kết đánh giá giá nhà (kết 0) hay mức trung bình (kết 1) Từ bảng liệu, thấy thơng số có độ chênh lệch lớn, dễ dẫn đến khó khăn tính tốn trọng số mơ hình Vì vậy, để đồng liệu tính tốn, cần thực bước chuẩn hóa liệu Trong này, tác giả sử dụng Min-max scaler để đưa liệu đoạn [0, 1] Trong đó, − = − x Tác giả dùng 70% liệu cho tập huấn luyện 30% lại cho tập kiểm tra 3.2 Kết thực nghiệm Các kết kiểm chứng mô hình: Mơ hình 1: Mạng Nơ-ron gồm tầng, hai tầng đầu ta hàm kích hoạt hàm ReLU Tầng cuối sử dụng hàm Sigmoid Số lượng nơ-ron tầng không kể tầng output 32 Mơ hình 2: Mạng nơ-ron tầng với tầng với hàm kích hoạt ReLU tầng cuối sử dụng hàm Sigmoid Số lượng nơ-ron tầng (trừ tầng output) 1000 258 1 1 Mơ hình 3: Mạng nơ-ron mơ hình sử dụng hiệu chỉnh số hiệu chỉnh 0,01 với tham Ở ba mơ hình, tác giả sử dụng thuật toán Adam để giải gần toán tối ưu Dưới kết thực nghiệm từ ba mơ hình nêu Mơ hình Tốc độ Sai số tập huấn luyện Độ xác tập kiểm tra (%) Mơ hình 0s 2ms/step loss: 0.2845 accuracy: 0.8858 Mơ hình 0s 7ms/step loss: 0.3780 accuracy: 0.8904 Mơ hình 0s 9ms/step loss: 0.4247 accuracy: 0.8904 Bảng 2: Đánh giá tốc độ, sai số độ xác mơ hình Hình 2: Độ xác tập huấn luyện tập kiểm tra theo số bước lặp mơ hình 259 Hình 3: Sai số tập huấn luyện tập kiểm tra theo số bước lặp mơ hình Hình 4: Sai số tập huấn luyện tập kiểm tra theo số bước lặp mơ hình 260 Hình 5: Độ xác tập huấn luyện tập kiểm tra theo số bước lặp mơ hình Hình 6: Sai số tập huấn luyện tập kiểm tra theo số bước lặp mơ hình 261 ... Mơ hình 1: Mạng Nơ- ron gồm tầng, hai tầng đầu ta hàm kích hoạt hàm ReLU Tầng cuối sử dụng hàm Sigmoid Số lượng nơ- ron tầng không kể tầng output 32 Mơ hình 2: Mạng nơ- ron tầng với tầng với hàm... nút ẩn Có nhiều nghiên cứu đưa cho thấy tính hiệu ANNs dự báo giá nhà 20 năm qua ([5-8]) Trong này, tác giả sử dụng ba mơ hình mạng nơ- ron để phân loại giá nhà mức hay mức trung bình dựa vào yếu... ReLU tầng cuối sử dụng hàm Sigmoid Số lượng nơ- ron tầng (trừ tầng output) 1000 258 1 1 Mơ hình 3: Mạng nơ- ron mơ hình sử dụng hiệu chỉnh số hiệu chỉnh 0,01 với tham Ở ba mơ hình, tác giả sử dụng