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 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 và cách
áp dụng nó vào bài tốn dự báo phân loại giá nhà với bộ số liệu giả định được lấy từ
trang web . Tác giả đã thử nghiệm bộ số liệu đó với 3 mơ hình
mạng nơ-ron khác nhau. Kết quả cho thấy các mơ hình đều hoạt động tốt với độ chính
xác trên tập kiểm tra khoảng 80%, trong đó mơ hình có sử dụng tới tham số hiệu chỉnh
cho kết quả ổn định hơn 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à
1. Mở đầu
Trong những năm gần đây, Học máy (Machine learning) đã trở thành một cách tiếp cận
rất hiệu quả cho bài toán trong 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 trong mua-bán hàng hóa, dự báo giá cổ phiếu, giá bất
động sản,…
Trong số các thuật toán Học máy, mạng nơ-ron nhân tạo (ANN) được biết đến là một
phương pháp rất hiệu quả vì nó có thể xấp xỉ được các lớp hàm phức tạp, phi tuyến ([14]) nhờ vào khả năng học và tổng quát hóa của nó. Về cơ bản, một mạng nơ-ron nhân tạo
bao gồm các nơ-ron đầu vào (như các khớp thần kinh), được nhân với các trọng số, chính là
cường độ của các tín hiệu tương ứng, và sau đó được tính bằng một hàm tốn học xác định sự
kích hoạt của nơ-ron (activation function). Một hàm khác (có thể là hàm đồng nhất) sẽ tính toán
đầu ra của tế bào thần kinh nhân tạo.
Cấu trúc của một mạng nơ-ron nhân tạo sẽ gồm các thành phần sau đây:
Các lớp: Ngoài lớp đầu vào (input layer) và lớp đầu ra (output layer), trong một mạng
nơ-ron nhân tạo có thể có một hoặc nhiều lớp ẩn trung gian (hidden layers), những mạng
nơ-ron như vậy được gọi là mạng nơ-ron đa tầng. Khi đó, mỗi đầu ra của lớp trước chính
là đầu vào của lớp liền sau nó.
Các nút: Mỗi điểm trịn trong hình 1 được gọi là một nút. Trong một lớp thường có
nhiều nút và đầu ra lớp trước chính là các nút của lớp sau. Với bài toán dự báo giá, đầu
ra ở lớp cuối (output) chỉ có một nút duy nhất, chính là giá trị dự đoán.
Trọng số và hệ số điều chỉnh: Nếu mạng nơ-ron có L lớp thì tương ứng với nó sẽ có L
ma trận trọng số. Ta kí hiệu
là ma trận trọng số tại lớp thứ , các thành phần của ma
trận trọng số của lớp này là , =. 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à rất lớn, chúng ta cần phải tìm ra tất cả các giá trị trọng số
nói trên.
255
Hàm kích hoạt (activation function): Đầu ra tại lớp thứ l, ≥ 2, được tính theo cơng
thức:
= (
−1
+
)
Trong đó, là một hàm kích hoạt tại lớp thứ . −1 và là các đầu ra thu được từ lớp thứ
− 1 Thông thường, ta dùng một trong số các hàm phi tuyến sau đây làm hàm kích hoạt.
-
Hàm Sigmoid: ( ) =
-
Hàm Tanh:
-
Hàm ReLU: ( ) = max( , 0)
ℎ( ) =
Hàm Sigmoid và hàm Tanh đều là các hàm đối xứng, đơn điệu tăng và có đầu ra tiến tới
1 khi đầu vào rất lớn. Nếu như hàm Sigmoid chỉ nhận giá trị dương thì hàm Tanh lấy các giá trị
trong khoảng [−1, 1]. Ưu điểm của các hàm này là cho đạo hàm rất đẹp và mô tả khá tốt những
mơ hình với biến đầu ra có dạng nhị phân hoặc các biểu diễn xác suất. Tuy nhiên, một nhược
điểm rất dễ nhận thấy là khi đầu vào có giá trị tuyệt đối lớn, đạo hàm của hai loại hàm này rất
gần với khơng. Điều này có nghĩa là các trọng số tương ứng với thành phần đang xét gần như
không được cập nhật gần như không được cập, hay còn gọi là hiện tượng “Vanishing Gradient”.
Gần đây, hàm ReLU (Rectified Linear Unit) được sử dụng rộng rãi vì tính đơn giản và hiệu quả
của nó. Khi sử dụng hàm này trong các mạng nơ-ron đa tầng, tốc độ hội tụ cao hơn 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 là có đạo hàm bằng 0
với các giá trị âm, nhưng thực nghiệm cho thấy rằng, nhược điểm này có thể được khắc phục
bằng cách tăng số nút ẩn.
Có rất nhiều nghiên cứu đã được đưa ra cho thấy tính hiệu quả của ANNs trong
dự báo giá nhà ở trong hơn 20 năm qua ([5-8]). Trong bài này, tác giả sẽ sử dụng ba mơ
hình mạng nơ-ron để phân loại giá nhà ở mức trên hay dưới mức trung bình dựa vào các
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 và các tiện
ích khác.
2. 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 , là cặp dữ liệu huấn luyện, , là ma trận bao gồm tất cả các trọng số ở L lớp (mỗi
cột là bộ trọng số
tương ứng với lớp thứ ). Khi đó, q trình lan truyền thuận
(forwardpropagation) được thực hiện qua phép lặp sau
Khởi tạo
:=
≔
≔
0
:=
−1
+
, = 1, ⋯ ,
( )
Hàm số biểu diễn sai số giữa kết quả tính tốn bằng mơ hình với kết quả thực tế được gọi là
hàm mất mát ký hiệu ( , , , ) . Có nhiều cách xây dựng hàm mất mát. Một trong những
256
cách thiết lập hàm mất mát thông dụng nhất là ta lấy trung bình bình phương sai số giữa kết
quả tính tốn với kết quả thực tế của dữ liệu đầu vào (MSE-mean square error):
( , , , )=
1
‖
−
‖
Trong đó, là giá trị tại một hàm hợp của L hàm kích hoạt dạng (
là giá trị xấp xỉ của
qua mơ hình.
+
), nó cũng
Thuật tốn backpropagation (Rumelhart và McClelland, 1986) được dùng trong
feed-forward ANNs. Các tế bào thần kinh nhân tạo được tổ chức thành các lớp và gửi tín hiệu
của chúng về phía trước, sau đó các sai số được truyền ngược lại. Ý tưởng của thuật toán truyền
ngược (backpropagation) là giảm sai số này bằng cách thay đổi các trọng số cho đến khi ANNs
học được từ dữ liệu đào tạo. Người ta có thể giảm sai số bằng cách thử với các bộ tham số khác
nhau và chọn ra một bộ tham số để đạt mức sai số mong muốn. Tuy nhiên, khối lượng tính tốn
sẽ rất lớn và địi hỏi tính tốn hết sức phức tạp.
Cách tốt nhất để làm giảm sai số là huấn luyện mô hình sao cho sai số càng gần với giá trị
bé nhất của hàm mất mát càng tốt. Do đó, để tìm ra bộ trọng số phù hợp, ta sẽ giải gần đúng bài
tốn tối ưu đó. Có nhiều thuật tốn đưa ra để giải bài toán tối ưu này như Gradient Descent,
Adam, RMSprop, Adadelta,… các thuật toán này đều đã được lập trình sẵn để ta có thể sử dụng
khi áp dụng mơ hình ANN. Ý tưởng chung của các thuật toán tối ưu là ta cập nhật bộ trọng số
sao cho sai số được sau mỗi bước lặp cho tới khi đạt được sai số mong muốn hoặc khi sai số
gần như khơng đổi.
2.2.
Hiệu chỉnh thuật tốn tối ưu
Trong q trình tối tưu hóa để giảm thiểu sai số, chúng ta thường gặp hiện tượng “quá
khớp” (overfitting). Đó là hiện tượng thuật tốn tìm ra nghiệm có sai số q nhỏ, dẫn
đến nghiệm đó có thiên hướng mơ tả dữ liệu huấn luyện hơn là mô tả nghiệm tổng thể.
Hình 1: Hiện tượng "overfitting" trong Machine Learning
Để tránh hiện tượng này, ta có thể sử dụng các kỹ thuật hiệu chỉnh khi giải gần đúng
bài toán tối ưu. Cách đơn giản nhất là ta đưa ra mức sai số và giới hạn số bước lặp của
mỗi thuật tốn. Ngồi ra, một cách rất hay dùng là ta thêm thành phần hiệu chỉnh dạng
và vào hàm mất mát (Loss function) để tối ưu hóa hàm chi phí (Coss function), cụ
thể:
1
‖ ‖
2
257
( ) = ( )+
( )
1
‖ ‖
( )
2
Cách làm này sẽ khiến cho bài toán tối ưu trở nên ổn định, có nghĩa là nghiệm tối ưu đó
là duy nhất và sai số của nghiệm xấp xỉ so với sai số đầu vào của dữ liệu.
( )= ( )+
3. các kết quả thực nghiệm
3.1.
Mô tả dữ liệu
Trong phần này, tác giả đã sử dụng bộ số liệu gồm 12 cột và 1460 dòng trên
trang web c/zillow-prize-1/data để dự báo nhà trên hay dưới
giá trung bình dựa trên 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ừ 1 đế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 như sau:
No
table
LotArea
of
OverallQual OverallCond
8450
9600
11250
9550
14260
14115
10084
7
6
7
7
8
5
8
figures
TotalBsmtSF FullBath
5
8
5
5
5
5
5
856
1262
920
756
1145
796
1686
HalfBath
2
2
2
1
2
1
2
entries
found.:
BedroomAbvGr
TotRmsAbvGrd
Fireplaces
1
0
1
0
1
1
0
3
3
3
3
4
1
3
8
6
6
7
9
5
7
GarageArea Price
0
1
1
1
1
0
1
548
460
608
642
836
480
636
Bảng 1: Thông tin liên quan và mức giá của một số ngôi nhà trong bảng dữ liệu
Cột cuối cùng là kết quả đánh giá giá nhà ở dưới (kết quả là 0) hay trên mức trung bình
(kết quả bằng 1). Từ bảng dữ liệu, ra có thể thấy các thơng số có độ chênh lệch rất lớn,
dễ dẫn đến khó khăn trong tính tốn các trọng số mơ hình. Vì vậy, để đồng nhất dữ liệu
tính tốn, chúng ta cần thực hiện bước chuẩn hóa dữ liệu. Trong bài này, tác giả đã sử
dụng Min-max scaler để đưa các dữ liệu về đoạn [0, 1]. Trong đó,
−
=
− x
Tác giả dùng 70% dữ liệu cho tập huấn luyện và 30% còn lại cho tập kiểm tra.
3.2.
Kết quả thực nghiệm
Các kết quả được kiểm chứng trên 3 mơ hình:
Mơ hình 1: Mạng Nơ-ron gồm 3 tầng, ở hai tầng đầu ta hàm kích hoạt là hàm
ReLU. Tầng cuối sử dụng hàm Sigmoid. Số lượng nơ-ron trong mỗi tầng không
kể tầng output là 32.
Mơ hình 2: Mạng nơ-ron 5 tầng với 4 tầng với hàm kích hoạt ReLU và 1 tầng
cuối sử dụng hàm Sigmoid. Số lượng nơ-ron trong mỗi tầng (trừ tầng output) là
1000.
258
1
1
1
0
1
0
1
Mơ hình 3: Mạng nơ-ron như mơ hình 2 nhưng sử dụng hiệu chỉnh
số hiệu chỉnh 0,01
với tham
Ở cả ba mơ hình, tác giả sử dụng thuật tốn Adam để giải gần đúng bài toán tối ưu. Dưới
đây là các kết quả thực nghiệm từ ba mơ hình nêu trên.
Mơ hình
Tốc độ
Sai số tập huấn
luyện
Độ chính xác trên
tập kiểm tra (%)
Mơ hình 1
0s 2ms/step
loss: 0.2845
accuracy:
0.8858
Mơ hình 2
0s 7ms/step
loss: 0.3780
accuracy:
0.8904
Mơ hình 3
0s 9ms/step
loss: 0.4247
accuracy:
0.8904
Bảng 2: Đánh giá tốc độ, sai số và độ chính xác của các mơ hình
Hình 2: Độ chính xác trên tập huấn luyện và tập kiểm tra
theo số bước lặp của mơ hình 1
259
Hình 3: Sai số trên tập huấn luyện và tập kiểm tra theo số bước lặp của mơ hình 1
Hình 4: Sai số trên tập huấn luyện và tập kiểm tra theo số bước lặp của mơ hình 2
260
Hình 5: Độ chính xác trên tập huấn luyện và tập kiểm tra
theo số bước lặp của mơ hình 2
Hình 6: Sai số trên tập huấn luyện và tập kiểm tra
theo số bước lặp của mơ hình 3
261
Hình 7: Độ chính xác trên tập huấn luyện và tập kiểm tra
theo số bước lặp của mơ hình 3
Từ các kết quả trên ta có thể thấy mơ hình 1 cho sai số trên tập huấn luyện thấp nhất,
tức là mơ hình phù hợp nhất trên tâp huấn luyện. Tuy nhiên, khi đem mơ hình này áp
dụng vào tập kiểm tra thì độ chính xác đạt được lại khơng cao bằng hai mơ hình cịn lại,
mặc dù sai số trên tập huấn luyện của mơ hình 2 và mơ hình 3 cao hơn.
Mơ hình 2 và mơ hình 3 mặc dù có độ chính xác gần như nhau, nhưng từ đồ thị ta có thể
thấy mơ hình 2 khơng ổn định, bởi vì khi các bước lặp tăng lên, theo lý thuyết, sai số
phải giảm đi nhưng mơ hình 2 cho thấy điều ngược lại. Điều này được giải thích do tính
khơng ổn định của mơ hình khiến sai số tích lũy tăng nhanh hơn so với tốc độ giảm của
sai số mơ hình.
Mơ hình 3 cho kết quả tốt hơn cả với độ chính xác cao (89,04%) và sai số giảm khi số
bước lặp tăng. Việc sử dụng thành phần hiệu chỉnh từ mơ hình 2 đã khiến mơ hình có
sai số cao ở những bước lặp đầu nhưng sau đó giảm nhanh chóng và mơ hình trở nên ổn
định ở các bước lặp sau đó.
4. Kết luận
Trong bài này tác giả đã đưa ra một số kiến thức khái quát về mạng nơ-ron và ứng dụng
của nó, từ đó cho kết quả cụ thể trên một bộ số liệu giả định để giải quyết bài toán phân
loại giá nhà ở. Do mục tiêu của bài báo chủ yếu là giới thiệu phương pháp ứng dụng mơ
hình mạng nơ-ron nhiều tầng để dự báo giá nhà nên các biến trong mơ hình cịn đơn
giản, chưa đưa vào một số yếu tố quan trọng tác động đến giá nhà như: lạm phát kinh
tế, thuế, vị trị địa lý,…Trong tương lai, tác giả hy vọng sẽ phát triển chủ đề này với bộ
262
số liệu thực về giá nhà ở tại Việt Nam và có nhiều phân tích kinh tế chặt chẽ hơn để có
thể đưa ra những kết quả mang tính thực tiễn cao.
Tài liệu tham khảo
[1]. P. Zhang, W. Ma, and T. Zhang, “Application of Artificial Neural Network to
Predict Real Estate Investment in Qingdao,” In Y. Zhang (ed.), Future Communication,
Computing, Controland Management, vol.1, pp.213-219, Springer-Verlag Berlin
Heidelberg, 2012.
[2]. F. Chu and L. P. Wang, “Applications of support vector machines to cancer
classification with microarray data,” International Journal of Neural Systems, vol.15,
no.6, pp.475-484, 2005. [3]. N. Zhou and L. P. Wang, “Effective selection of
informative SNPs and classification on the HapMap genotype data,” BMC
Bioinformatics, 8:484, 2007.
[4]. L. P. Wang, "Learning and retrieving spatio-temporal sequences with any static
associative neural network," IEEE Trans. Circuit and Systems-II: Analog and Digital
Signal Processing, vol. 45, no.6, pp. 729-738, June, 1998.
[5]. L. P. Wang, F. Chu, and W. Xie, “Accurate cancer classification using expressions
of very few genes,” IEEE-ACM Trans. Computational Biology and Bioinformatics,
vol.4, no.1, pp. 40-53, Jan.-March, 2007.
[6]. V. Limsombunchai, “House Price Prediction: Hedonic Price Model vs. Artificial
Neural Network,” 2004 New Zealand Agriculture and Resource Economics Society
(NZARES) Conference, Blenheim, New Zealand, June 25 – June 26, 2004.
[7]. V. Limsombunchai, C. Gan, M. Lee, “House Price Prediction: Hedonic Price Model
vs. Artificial Neural Network,” American Journal of Applied Sciences, vol.1, pp.193201, 2004.
[8]. A. Khalafallah, “Neural network based model for predicting housing market
performance,” Tsinghua Science and Technology, vol.13, no.S1, pp.325 – 328, 2008.
[17]. N. Nguyen and A. Cripps, “Predicting Housing Value: A Comparison of Multiple
Regression Analysis and Artificial Neural Networks,” Journal of Real Estate Research,
vol.22, no.3, pp.313-336, 2001., 7(10), pp.1080- 1089, 2011.
263