GIỚI THIỆU
Tổng quan
Trí tuệ nhân tạo (Artificical Intelligence) và học máy (Machine Learning) ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau của đời sống Machine Learning có thể được áp dụng trong ngành Viễn thông để đánh giá, dự báo số liệu tại trạm phát sóng viễn thông; qua đó nhằm phát hiện, đánh giá bất thường cũng như dự đoán được các số liệu trong tương lai để dễ dàng có thể lên phương án khắc phục
Trên thế giới cũng như ở Việt Nam, các mô hình mạng nơ-ron nhân tạo ngày càng thu hút sự chú ý của các nhà khoa học và đang được ứng dụng trong nhiều nghiên cứu khác nhau vì nó có thể dễ dàng cài đặt, chạy và đạt được độ chính xác tốt
Mạng 4G-LTE được hãng NTT Docomo của Nhật đề xuất vào năm 2004, các nghiên cứu về tiêu chuẩn mới chính thức được bắt đầu vào năm 2005 Dựa trên những điểm tốt của mạng 4G-LTE so với mạng 3G-WCDMA mà công nghệ 4G-LTE ngày càng được các nhà mạng trên thế giới, đặc biệt là Việt Nam quan tâm đầu tư, nghiên cứu và áp dụng Đến tháng 9/2010, Bộ thông tin và Truyền thông đã cấp giấy phép thử nghiệm công nghệ 4G cho các doanh nghiệp kinh doanh mạng viễn thông, đến năm 2017 thì mạng 4G-LTE được triển khai một các mạnh mẽ sau khi ba nhà mạng lớn là VNPT, MobiFone và Viettel đã nhận cấp phép thiết lập và cung cấp dịch vụ một cách chính thức Đến nay, tỉ lệ phủ sóng của mạng 4G LTE theo trung bình đạt tỉ lên khoảng 90%.
Tình hình nghiên cứu trong và ngoài nước
1.2.1 Một số nghiên cứu ở nước ngoài
Dự báo chuỗi thời gian (Time series forecasting) hiện là lĩnh vực nghiên cứu rất phổ biến Dữ liệu loại chuỗi thời gian hiện có thể dễ dàng tìm thấy trong y học, dự báo thời tiết, sinh học, quản lý chuỗi cung ứng và dự báo giá cổ phiếu,…
Với sự nở rộ của dữ liệu cùng sức mạnh tính toán trong những năm gần đây, học sâu (deep learning) [1] đã trở thành lựa chọn hàng đầu để xây dựng các mô hình dự báo chuỗi thời gian Trong khi các mô hình Học máy (machine learning) truyền thống như mô hình tự hồi quy (Auto Regressive) hoặc san bằng hàm mũ (Exponential smoothing) thực hiện quá trình chuyển đổi tập dữ liệu thô ban đầu thành tập các thuộc tính theo cách thủ công và việc tối ưu hóa tham số cũng phải dựa trên chọn lọc các đặc trưng, thì mô hình học sâu chỉ học các tính năng trực tiếp chỉ từ dữ liệu Nhờ đó, nó giúp tăng tốc quá trình chuẩn bị dữ liệu và có thể học các mẫu dữ liệu phức tạp hơn một cách đầy đủ Đối với dữ liệu thuộc dạng Time-series, hiện trên thế giới sử dụng rất nhiều các mô hình để dự đoán, cụ thể ở đây có thể kể đến bài báo của Mudassir và cộng sự [2], đề xuất sử dụng 4 kỹ thuật chính là ANN, sANN, SVM và LSTM để dự báo giá Bitcoin theo từng ngày Qua đó đánh giá được các kỹ thuật dự đoán theo từng chu kỳ, với độ chính xác có thể lên đến 65%
Một phương pháp khác để dự đoán chuỗi dữ liệu thời gian có thể kể đến việc sử dụng exponential smoothing (hay phương pháp san bằng hàm mũ) của nhóm tác giả Livera [3] đó đề xuất phương pháp này cho việc dự đoán dữ liệu chuỗi thời gian có xu hướng theo mùa phức tạp, chẳng hạn như một dạng chuỗi thời gian có những khoảng thời gian theo mùa, những thời vụ có tần suất cao, tính thời vụ không nguyên và hiệu ứng lịch kép chẳng hạn như lượng xăng dầu, lượng điện tiêu thụ,… Bên cạnh đó, bài báo này cũng đặt ra sự so sánh với phương pháp ARIMA và việc có thể kết hợp nhiều phương pháp khác nhau để cải thiện phương pháp san bằng hàm mũ, tạo ra được kết quả phân tích các thành phần xu hướng của dữ liệu với sai số khá thấp
Sử dụng phương pháp Prophet cũng có thể dùng cho việc dự đoán chuỗi dữ liệu thời gian, được áp dụng với dữ liệu về số ca nhiễm và tử vong tại Algeria, so sánh với thế giới - được nghiên cứu bởi Sami Belkacem [4] với việc sử dụng dữ liệu từ số ca mắc và tử vong, kết hợp cùng các yếu tố liên quan đã dự đoán được chính xác số ca mắc và tử vong ở Algeria với giá trị RMSE đạt được là 218,87 ở số ca mắc
3 và sai số 4,79 với số ca tử vong Nhờ vào việc dự đoán mà tác giả còn cho thấy mối tương quan giữa việc tăng hay giảm số ca mắc và tử vong với các yếu tố bên ngoài như địa lý, khí hậu, sức khoẻ,… Ở lĩnh vực viễn thông, có rất nhiều các bài báo sử dụng nhiều kỹ thuật khác nhau để dự đoán, phân loại, phân tích, khai thác các thông số của mạng di động Theo như một khảo sát về các ứng dụng của học sâu trong mạng di động và mạng không dây của tác giả Chaoyn Zhang cùng những người khác [5], ta thấy được rất nhiều các phương pháp được áp dụng vào nhiều ứng dụng trong mạng di động, có thể kể đến như các bài báo sử dụng mạng 3D-CNNs và ConvLSTMs để dự đoán các thông số mạng trong một khoảng thời gian dài, cũng như dùng CNN và GAN để dự đoán lưu lượng trong mạng di động, cùng một số bài báo ứng dụng mạng CNN để phân loại lưu lượng, …
Bên cạnh đó, có một số nghiên cứu sử dụng học máy để đánh giá và phát hiện bất thường trong mạng di động Cụ thể, theo bài báo về việc dự đoán bất thường trong mạng di động của Mamun và cộng sự [6], sử dụng LSTM RNN để phát hiện sớm những điểm dữ liệu bất thường trong tương lai, và ta thấy được kết quả dự báo khá tốt trong một vài trường hợp cụ thể, và cần phải nghiên cứu thêm với một vài số liệu khác để tăng độ chính xác
1.2.2 Tình hình triển khai nghiên cứu ở trong nước
Theo tham khảo các bài báo và các luận văn trong nước, có thể thấy trí tuệ nhân tạo đang được ứng dụng nhiều vào các lĩnh vực trong đời sống Người ta sử dụng trí tuệ nhân tạo để ứng dụng trong nông nghiệp, tiêu biểu như việc ứng dụng mạng RNN và LSTM vào việc dự báo mực nước tại cống – âu thuyền cầu cất trong hệ thống Bắc Hưng Hải được công bố bởi nhóm tác giả Hung Ho, Tuan Ho [7], với độ chính xác dự đoán lên đến 94,9% cho dự đoán trong 6 giờ tiếp theo, giúp cho hệ thống vận hành được hiệu quả
4 Ở một lĩnh vực khác, người ta dùng mạng LSTM cùng với CNN để phân tích ý kiến người dùng đối với các sản phẩm, và tỉ lệ chính xác có thể lên đến 87% khi kết hợp CNN và LSTM cho việc phân tích và dự đoán các thông số đó trong tương lai
Hình 1-1 - Một số kết quả đạt được của nghiên cứu mô hình dự đoán State-of-Health
Theo nghiên cứu ở bài báo trước đó được công bố bởi Thien Pham và nhóm nghiên cứu [8] được công bố ở tạp chí IEEE, với mục đích dự đoán được tuổi thọ của viên pin sử dụng các thông số liên quan đến viên pin sử dụng Học sâu, ở đây đề tài đã hoàn tất nghiên cứu và sử dụng mạng ANN, Bidirectional LSTM, GRU, RNN, kết quả dữ liệu dự đoán được theo hình 1-1 hoàn toàn bám tốt so với dữ liệu thực, và vì vậy các mô hình này cũng hoàn toàn có thể được sử dụng vào thực tế
Mô hình này sử dụng dữ liệu về các thông số trạng thái của pin theo từng thời gian, hoàn toàn có thể tham khảo để áp dụng và cải thiện vào đề tài này
Tổng kết, ta có một số phương pháp giải quyết bài toán dự đoán dữ liệu chuỗi thời gian (time series forecasting) như sau:
- Dự đoán dữ liệu chuỗi thời gian dùng học máy: Một số mô hình học máy truyền thống được sử dụng để dự báo chuỗi thời gian bao gồm ARIMA và exponential smoothing (san bằng hàm mũ) ARIMA là sự kết hợp giữa các phương pháp tiếp cận tự hồi quy (AR) và Trung bình động (MA) trong việc xây dựng mô hình tổng hợp của chuỗi thời gian Mô hình này khá đơn giản, nhưng có thể cho kết quả tốt Nó bao gồm các tham số để tính đến tính thời vụ, xu hướng dài hạn, tự hồi quy và trung bình động, từ đó xử lý tự tương quan được nhúng trong dữ liệu Một số khuyết điểm khi sử dụng học máy để giải quyết bài toán này: o Các đặc trưng bị thiếu có thể ảnh hưởng đến hiệu suất của các mô hình; o Các mô hình học máy không thể nhận ra các mẫu phức tạp trong dữ liệu o Học máy không có hiệu quả tốt trong dự báo dài hạn
- Dự đoán dữ liệu chuỗi thời gian dùng học sâu: phương pháp này khắc phục được những hạn chế của học máy truyền thống với nhiều cách tiếp cận khác nhau Hiện nay, Mạng RNN là kiến trúc cổ điển và được sử dụng nhiều nhất cho các bài toán dự báo chuỗi thời gian với các ưu điểm chính: o RNN có thể tìm thấy các mẫu phức tạp trong chuỗi thời gian đầu vào o RNN cho kết quả tốt trong việc dự báo dài hạn, nhiều hơn là chỉ một vài bước o RNN có thể mô hình hóa chuỗi dữ liệu để giả định mối tương quan giữa các mẫu
Vì vậy, ta có thể tổng hợp một số phương pháp giải quyết bài toán dự đoán dữ liệu chuỗi thời gian theo Hình 1-2:
Hình 1-2 - Tổng hợp một số phương pháp giải quyết bài toán dự đoán dữ liệu chuỗi thời gian
Ngoài ra, theo tìm hiểu ở lĩnh vực viễn thông, vẫn chưa thấy một bài báo cụ thể viết về việc sử dụng ML để đánh giá, dự báo các thông số trong hệ thống di động.
Nhiệm vụ luận văn
Mục tiêu của đề tài là xây dựng hệ thống nhằm dự đoán và cảnh báo bất thường của mạng di động 4G thông qua chỉ số KPI được thu thập từ các hệ thống giám sát chất lượng mạng và dựa trên nền tảng trí tuệ nhân tạo Giải pháp được xây dựng dựa trên các thông số, và sử dụng các thuật toán học máy cho việc đưa ra các dự đoán sớm và cảnh báo chất lượng mạng trong thời gian ngắn nhất, giúp nhà quản lý mạng có thể đưa ra kế hoạch xử lý kịp thời Đề tài bao gồm 2 thành phần chính:
- Mô hình dự báo chỉ số đo lường chất lượng mạng: Dựa trên những dữ liệu thu thập được từ mạng vô tuyến, sau đó thông qua những thuật toán sử dụng trí tuệ nhân tạo để dự báo trước được những thông số đó trong tương lai như performance counter và KPI
- Mô hình xác định phần tử mạng hoạt động bất thường: Dựa trên những kiến thức về mạng vô tuyến và kỹ thuật phân tích dữ liệu từ mô hình dự báo, sau đó xây dựng những công thức xác định phần tử mạng hoạt động bất thường có ảnh hưởng đến trải nghiệm khách hàng về dịch vụ di động
LÝ THUYẾT
Dữ liệu đầu vào – Dữ liệu loại chuỗi thời gian (Time series)
Dữ liệu chuỗi thời gian (time series data) là một chuỗi các điểm dữ liệu, thường bao gồm các phép đo liên tiếp được thực hiện từ cùng một nguồn trong một khoảng thời gian Phân tích chuỗi thời gian có mục đích nhận đang và tập hợp lại các yếu tố, những biến đổi theo thời gian mà nó có ảnh hưởng đến giá trị của biến quan sát Dữ liệu chuỗi thời gian bao gồm một số đặc trưng chính, có thể kể đến:
- Xu hướng dài hạn: Xu hướng dài hạn là hướng tổng thể chung của dữ liệu thu được khi bỏ qua bất kỳ tác động ngắn hạn nào như biến động theo mùa hoặc nhiễu
- Tính thời vụ: Tính thời vụ đề cập đến các biến động định kỳ được lặp lại trong tất cả các khoảng thời gian
- Tính ổn định: Tính ổn định là một đặc tính quan trọng của chuỗi thời gian Chuỗi thời gian được cho là cố định nếu giá trị trung bình, phương sai và hiệp phương sai của nó không thay đổi đáng kể theo thời gian
- Nhiễu: Mọi tập dữ liệu đều có nhiễu, điều đó đề cập đến các dao động hoặc biến thể ngẫu nhiên do các yếu tố không thể kiểm soát gây nên
- Tự tương quan: Đây là mối tương quan giữa chuỗi thời gian và phiên bản trễ của chính nó Tự tương quan được sử dụng để xác định tính thời vụ và xu hướng trong dữ liệu chuỗi thời gian
Dữ liệu đầu vào là dữ liệu chuỗi thời gian được VNPT cung cấp, bao gồm 15 KPIs chính (hay 15 đặc trưng), bên cạnh với một số thông số phụ khác (như tên cell, cell ID, ngày, giờ,…), với nội dung như trong bảng 2-1
Tên Thông Số Diễn Giải
USER_DL_AVG_THPUT User Downlink Average Throughput (kbps)
TRAFFIC_VOL_UL Traffic Volume Upload (GB)
TRAFFIC_VOL_DL Traffic Volume Download (GB)
TRAFFIC Traffic Volume Upload (GB) + Traffic Volume
RES_BLK_UL Resource Block Untilizing Rate Uplink (%)
RES_BLK_DL Resource Block Untilizing Rate Downlink (%)
USER_UL_AVG_THPUT User Uplink Average Throughput (Kbps)
INTRA_FREQUENCY_HO Intra-frequency HandOver
SERVICE_DROP_ALL Service Drop (All service)
ERAB_SSRATE_ALL eRAB Setup Success Rate (all services) (%)
RRC_SSRATE RRC Connection Establishment Success Rate
Tên Thông Số Diễn Giải
CSSR Call Setup Success Rate (%)
INTRA_HOSR_ATT Intra-frequency HandOver Success Ratio
Bảng 2-1 - Các thông số đầu vào và ý nghĩa Ở đây ta có 15 KPIs đều là dữ liệu đầu vào được thu thập từ các cell của VNPT trên các tính phía nam Việt Nam Các cell được đánh mã số ID, ghi rõ tên cell, hãng sản xuất và ghi rõ vào trong tệp dữ liệu với một số đặc điểm như sau:
- Dữ liệu thô thu thập từ toàn bộ các Cell đơn lẻ là 2GB mỗi ngày Dữ liệu được ghi lại một lần mỗi giờ
- Tổng hợp toàn bộ các dữ liệu thu thập được để dùng cho huấn luyện là khoảng 300GB (là dữ liệu thu thập được trong khoảng 6 tháng, từ tháng 1 năm 2022 đến hết tháng 6 năm 2022)
- Dữ liệu tách riêng để chuyên dùng cho bộ phận chuyên môn đánh giá và kiểm tra trên các mô hình là tháng 7, 8 năm 2022 (bao gồm khoảng 100GB dữ liệu)
- Toàn bộ dữ liệu dùng cho huấn luyện đã được phân tích, xử lý (bao gồm làm sạch và chuẩn hoá,…), sau đó được chọn lọc và lưu trữ trên Google Drive Tổng bao gồm 2000 files gồm dữ liệu của 2000 cells được chọn lọc
Dựa trên toàn bộ 15 KPIs đầu vào, ta sẽ phải phân tích, đánh giá kỹ lưỡng và nghiên cứu chọn các giải thuật xử lý, các mô hình tương ứng để dự đoán được 5 KPIs sau:
Tên Thông Số Diễn Giải
USER_DL_AVG_THPUT User Downlink Average Throughput
TRAFFIC Traffic Volume Upload (GB) + Traffic
INTRA_FREQUENCY_HO Intra-frequency HandOver (%)
SERVICE_DROP_ALL Service Drop (All service) (%)
CSSR Call Setup Success Rate (%)
Bảng 2-2 - 5 KPIs đầu ra theo yêu cầu của đề tài Ở đây bao gồm 5 KPIs là những thành phần dữ liệu cần thiết để đánh giá chất lượng mạng di động Mục tiêu của đề tài này là sử dụng các phương pháp khác nhau để sử dụng các thông số trên, dự đoán các giá trị trong tương lai của 5 KPIs này để có thể đánh giá được thời điểm mạng di động trở nên bất thường.
Phân tích tương quan giữa các đặc trưng ( các KPIs)
2.2.1 Phân tích tương quan Pearson
Hệ số tương quan Pearson [9] còn được gọi là hệ số Pearson (Pearson Correlation Coefficient) Hệ số tương quan Pearson ngày nay được coi là một trong những phương pháp được ưa chuộng nhất để đo lường mối quan hệ giữa các biến Nó cung cấp cho chúng ta những thông tin quan trọng của các biến, về mối liên hệ giữa các biến, về tương quan và cả hướng phát triển của mối quan hệ ấy
Ta sử dụng công thức sau để tính hệ số tương quan Pearson giữa hai biến liên tục ở đây là x và y (được lấy mẫu từ n mẫu):
Với 𝑥̅ 𝑣à 𝑦 là giá trị trung bình của các biến liên tục x và y; 𝑟 hệ số tương quan Pearson
Hình 2-1 - Hệ số tương quan biểu thị trên đồ thị phân tán Scatter
Hệ số tương quan Pearson (hay giá trị r) có giá trị dao động trong khoảng liên tục từ -1 đến +1:
- r = 0: Hai biến không có tương quan tuyến tính
- r = 1; r = -1: Hai biến có mối tương quan tuyến tính tuyệt đối
- r < 0: Hệ số tương quan âm Nghĩa là giá trị biến x tăng thì giá trị biến y giảm và ngược lại, giá trị biến y tăng thì giá trị biến x giảm
- r > 0: Hệ số tương quan dương Nghĩa là giá trị biến x tăng thì giá trị biến y tăng và ngược lại, giá trị biến y tăng thì giá trị biến x cũng tăng
Khi sử dụng hệ số tương quan Pearson, ta cần lưu ý một số chú ý sau:
- Hệ số tương quan pearson (r) chỉ có ý nghĩa khi và chỉ khi mức ý nghĩa quan sát (sig.) nhỏ hơn mức ý nghĩa α = 5%
- Nếu r nằm trong khoảng từ 0.50 đến ± 1, thì nó được cho là tương quan mạnh
- Nếu r nằm trong khoảng từ 0.30 đến ± 0.49 thì nó được gọi là tương quan trung bình
- Nếu r nằm dưới ± 0.29, thì nó được gọi là một mối tương quan yếu
- Trên đồ thị phân tán Scatter, nếu r = -1 dữ liệu sẽ phân bổ trên một đường thẳng với độ dốc âm, r = 1 dữ liệu sẽ phân bổ trên một đường thẳng với độ dốc dương
2.2.2 Phân tích tương quan Spearman
Hệ số tương quan Spearman [10] 𝜚 được sử dụng khi hai biến bất kì không tuân theo luật phân phối chuẩn, trái ngược với hệ số tương quan Pearson Đôi khi đây còn được gọi là hệ số của phương pháp phân tích phi tham số Hệ số này được ước tính bằng cách biến đổi biến x, y thành biến có thứ bậc (rank), sau đó xem xét độ tương quan giữa hai dãy số có bậc này Tương quan hạng Spearman được sử dụng thay thế tương quan Pearson để kiểm tra mối quan hệ giữa hai biến được xếp hạng hoặc một biến được xếp hạng và một biến đo lường không yêu cầu có phân phối chuẩn Nói một cách dễ hiểu hơn thì, hệ số tương quan Pearson là hệ số tương quan tuyến tính
Tương quan hạng Spearman giữa x và y nói đơn giản là xem xét tính đơn điệu của 2 biến này với nhau Nếu hệ số tương quan dương thì kết luận là giá trị của biến này tăng thì giá trị của biến kia cũng tăng Nếu hệ số tương quan âm thì kết luận là giá trị của biến này tăng thì giá trị của biến còn lại giảm Để tính hệ số tương quan Kendall giữa 2 biến x và y, ta sử dụng công thức sau:
𝑛(𝑛 + 1)(𝑛 − 1) Với 𝑑 " là sự chênh lệch gữa hai hạng giá trị của biến x (𝑅 # ) và biến y (𝑅 $ ) ,
12 và số 𝑛 là tổng số lượng mẫu của biến x và biến y
Giá trị của s thay đổi trong khoảng [-1,1] Ta sẽ có một số trường hợp tương ứng với từng khoảng giá trị của biến s:
- Khi s trong khoảng (0,1]: khi đó biến x là biến y sẽ có tương quan thuận với nhau, giá trị càng lớn thì sự tương quan thuận càng mạnh Đến khi giá trị s 1 thì tất cả các hạng của x và y là hoàn toàn giống nhau, khiến cho ∑ 𝑑 " ! = 0 Khi đó quan hệ của x và y là thuận hoàn toàn
- Khi s trong khoảng [-1,0): Khi này, quan hệ của x và y là nghịch nhau, và tương tự như khoảng dương, thì giá trị s càng bé, quan hệ này càng mạnh Khi s = -1 tương ứng với việc 2 biến x và y nghịch nhau hoàn toàn
- Khi s = 0 thì có thể suy ra hai biến này không có quan hệ với nhau, cũng như s xấp sỉ 0 thì ta cũng có thể kết luận hai biến này không tương quan mạnh
2.2.3 Phân tích tương quan Kendall
Hệ số tương quan Kendall [11] 𝜏 cũng là một trong những phương pháp phân tích phi tham số được ước tính bằng cách tìm các cặp số (x, y) song hành với nhau Một cặp số (x, y) song hành ở đây được định nghĩa là có hiệu số (hay độ khác biệt) trên trục hoành (trục x) có cùng dấu hiệu (cùng dương hoặc cùng âm) với hiệu trên trục tung (trục y) Nếu hai biến số x, y không có liên hệ với nhau thì số cặp song hành bằng hay tương đương với số cặp không song hành Vì vậy mà thông thường, khi tính toán hệ số tương quan Kendall đòi hỏi máy tính phải chọn và tính toán một lượng dữ liệu đủ nhiều, và vì vậy thời gian tính toán khá lớn
Hệ số tương quan Kendall được tính theo công thức sau:
1@12∗ 𝑚 ! (𝑛 ! − 𝑛) Trong công thức này, ta có n là tổng số phần tử của x và m là số phần tử của y
Các phương pháp tiền xử lý dữ liệu trước khi huấn luyện mô hình
Trong quá trình xử lý dữ liệu đầu vào làm đầu vào cho mô hình, các dữ liệu thô trước khi được xử lý, thành ra dữ liệu đầu vào sẽ ở rất nhiều hình dạng khác nhau Bên cạnh đó, các mô hình Học sâu hiện tại đang được cấu tạo một cách phức tạp, với nhiều lớp khác nhau Và trong suốt quá trình đào tạo và sử dụng, phân bố dữ liệu qua các lớp thường bị biến đổi, làm các mô hình có thể học được các dữ liệu thô rất khó khăn Ở nội trong luận văn này đề cập đến 2 phương pháp tiền xử lý chính được dùng:
- Phương pháp thu nhỏ thì thay đổi khoảng giá trị của dữ liệu
- Phương pháp bình thường hoá thì thay đổi hình dạng phân phối của dữ liệu
2.3.1 Tiền xử lý dữ liệu đầu vào sử dụng Scaling
Scaling là biến đổi khoảng giá trị của dữ liệu về một khoảng đặc biệt như [0,100] hay [0,1] hoặc [-1, 1]l; ở đây thường là [0,1] Trong một số thuật toán học máy mà khoảng cách giữa các điểm dữ liệu là quan trong, như SVM hay KNN, thì việc thu nhỏ khoảng dữ liệu là vô cùng quan trọng, vì mỗi thay đổi nhỏ của dữ liệu cũng mang đến kết quả khó đoán trước
Giả sử trong dữ liệu về cân nặng 1 người, có 2 loại dữ liệu là kg và pound Khi chúng ta sử dụng trực tiếp những giá trị này với SVM hoặc KNN, thuật toán sẽ hiểu sự 1kg = 1pound, nhưng điều đó không đúng trong thực tế (1pound = 0.45359237kg)
Vì vậy mà việc thu nhỏ khoảng dữ liệu là rất quan trọng trước khi đưa vào huấn luyện mô hình
Thu nhỏ khoảng dữ liệu cần thực hiện trên cùng mục đích sử dụng của thước đo (tiền - tiền, chiều cao - chiều cao, ), chứ hiển nhiên ta ko thể thu nhỏ khoảng dữ liệu cân nặng với chiều cao, vì giữa chúng cơ bản không có sự liên quan mật thiết Một số loại thu nhỏ dữ liệu thông dụng:
- Simple Đặc trưng Scaling: phương pháp đơn giản là lấy các giá trị trên cùng 1 KPIs chia cho giá trị lớn nhất của KPIs đó Khoảng giá trị nhận lại mong muốn thuộc khoảng [0,1] Phương pháp thu nhỏ này này thông thường hay được thực hiện trong xử lý ảnh, khi mà ta thường chia giá trị của các pixel trên 1 bức ảnh cho 255 hay 65535 là giá trị lớn nhấn của 1 pixel RGB
- Min-max Scaling: mục tiêu của phương pháp là đưa các giá trị về gần hơn giá trị trung bình của KPIs Phương pháp này đưa các giá trị về 1 khoảng đặc biệt, thường là [0, 1] hoặc [-1, 1] Một trong những hạn chế của phương pháp này là khi áp dụng với một khoảng giá trị nhỏ, ta sẽ thu được độ lệch chuẩn nhỏ hơn, điều này làm giảm trong số của các điểm ngoại lệ trong dữ liệu Phương pháp này thường được ứng dụng vào các loại dữ liệu có nhiều đơn vị khác nhau với nhiều khoảng dữ liệu khác nhau như trong nội dung này
2.3.2 Tiền xử lý dữ liệu đầu vào sử dụng Normalization
Như ta đã thấy, việc sử dụng thu nhỏ chỉ làm thay đổi khoảng giá trị dữ liệu, bình thường hoá là 1 cách thay đổi triệt để hơn Mục đích là biến đổi dữ liệu với kì vọng thu được 1 phân phối chuẩn cho dữ liệu đó Một số lợi ích có thể thấy được khi sử dụng bình thường hoá dữ liệu:
- Chuẩn hóa dữ liệu mỗi đặc trưng sẽ giữ được sự đóng góp của mọi đặc trưng trong quá trình huấn luyện trong trường hợp giá trị một số KPIs cao hơn nhiều so với các đặc trưng còn lại Với cách làm này sẽ làm mô hình thiếu cân bằng (đối với các đặc trưng có giá trị cao)
- Làm giảm Internal Covariate Shift Việc mô hình càng sâu sẽ có nhiều lớp cùng với đó là có nhiều hàm kích hoạt, nó sẽ làm biến đổi đi phân phối của dữ liệu Do đó chúng ta cần chuẩn hóa lại nó để có được sự đồng bộ phân phối của dữ liệu trong quá trình huấn luyện
- Theo tác giả Shibani Santurkar và et al [12] cho rằng, việc áp dụng Batch Normalization có thể làm bề mặt hàm loss trở nên mịn màng hơn (i.e nó giới hạn độ lớn của gradients chặt chẽ hơn nhiều ) Đại khái là việc tối ưu hàm mục tiêu sẽ trở nên dễ dàng và nhanh chóng hơn
- Việc tối ưu sẽ trở nên nhanh hơn bởi vì bình thường hoá dữ liệu không cho phép việc bùng nổ (explode) trọng số và nó giới hạn chúng trong một vùng nhất định
- Một lợi ích nữa nằm ngoài mục đích của bình thường hoá dữ liệu là nó giúp mô hình quy chuẩn hơn
Một số loại bình thường hoá thông dụng:
- Batch normalizartion là một trong các phương thức bình thường hoá được sử dụng phổ biến trong mô hình học sâu Nó cho phép đào tạo nhanh hơn và ổn dịnh các mạng nơ-ron bằng cách ổn định sự phân bố của các đầu vào các lớp trong quá trình huấn luyện
- Weight normalization là một quá trình đánh giá lại các trọng số vectơ trong một mạng nơ-ron sâu hoạt động bằng cách tách độ dài của các vectơ trọng lượng đó khỏi hướng của chúng Nói một cách dễ hiểu, chúng ta có thể định nghĩa chuẩn hóa trọng số như một phương pháp để cải thiện tính tối ưu của các trọng số của mô hình mạng nơ-ron
- Lớp normalization là một phương thức để cải tiển tốc đố huấn luyện với các mô hình mạng nơ-ron đa dạng Không giống như batch normalization, phương pháp này ước tính trực tiếp số liệu thống kê chuẩn hóa từ các đầu vào tổng hợp đến các nơ-ron bên trong một lớp ẩn Lớp normalization về cơ bản được thiết kế để khắc phục những hạn chế của batch normalization như phụ thuộc vào các mini-batch, v.v Lớp normalization chuẩn hóa đầu vào trên các lớps thay vì chuẩn hóa các KPIs đầu vào trên từng batch trong batch normalization
- Instance normalization tương tự với lớp bình thường hoá, nhưng sự khác biệt giữa chúng là instance normalization chuẩn hóa qua mỗi kênh trong mỗi ví dụ huấn luyện thay vì chuẩn hóa qua các KPIs đầu vào trong một ví dụ huấn luyện Không giống như batch normalization, lớp instance normalization được áp dụng trong quá trình thử nghiệm rất tốt (do không phụ thuộc vào mini- batch), được áp dụng cho toàn bộ loạt ảnh thay vì một ảnh duy nhất
Tách dữ liệu ra thành các set để hỗ trợ việc huấn luyện mô hình
Một vấn đề lớn trong học máy đó là quá khớp (overfitting) và chưa khớp (underfitting) Giải thích đơn giản thì chưa khớp cho kết quả tệ trên cả dữ liệu quan sát sử dụng để huấn luyện lẫn dữ liệu chưa được quan sát trong thực tế, còn quá khớp cho kết quả rất (quá) tốt trên dữ hiệu huấn luyện nhưng lại quá kém khi sử dụng trong thực tế Nhìn chung cả hai trường hợp này mô hình đều không mô hình hóa được quan hệ chính xác ban đầu trong dữ liệu Nó hoặc quá đơn giản hoặc quá phức tạp
Tuy nhiên, một vấn đề xảy ra đó là khi huấn luyện thì không có dữ liệu trong tương lai cũng như cũng chẳng biết quan hệ chính xác trong dữ liệu là gì Điều này làm cho chúng ta không biết được mô hình của chúng ta chính xác bao nhiêu, liệu có thể sử dụng được trong thực tế không? Liệu có bị chưa khớp hay quá khớp hay không? Khi nào bắt đầu quá khớp để dừng tăng độ phức tạp Vì vậy, cần phải có thêm phương pháp kiểm thử để dự đoán khả năng hoạt động hiệu quả của mô hình trên thực tế Có rất nhiều cách để kiểm thử và đánh giá hiệu năng của mô hình
Cách đơn giản nhất là đưa ra dùng thử một thời gian Cách này khá tốn kém thời gian, cũng như khá tốn công để thiết kế các kịch bản kiểm thử phù hợp, hoặc trong nhiều trường hợp cũng khó sử dụng
Cách thứ hai hợp lý hơn đó là chúng ta sử dụng một tập dữ liệu kiểm thử (testing set) độc lập đối với tập dữ liệu huấn luyện (huấn luyện hay tập training set) để đánh giá và ước lượng hiệu quả của mô hình Thông thường tập huấn luyện và tập kiểm tra được tách ra ngay từ dữ liệu quan sát được cung cấp (chẳng hạn lấy 80% dữ
17 liệu quan sát được cung cấp để huấn luyện và 20% dữ liệu quan sát còn lại không liên quan đến 80% trước để đánh giá)
Tập huấn luyện (training set) là tập dữ liệu được sử dụng để huấn luyện mô hình Các mô hình mạng nơ-ron sẽ học các thông số từ tập huấn luyện này Việc học sẽ khác nhau tùy thuộc vào thuật toán và mô hình sử dụng Ví dụ, khi sử dụng môt hình Hồi quy tuyến tính (Linear Regression), các điểm trong tập huấn luyện được sử dụng để tìm ra hàm số hay đường phù hợp nhất mô tả quan hệ giữa đầu vào và đầu ra của tập dữ liệu huấn luyện bằng cách sử dụng một số phương pháp tối ưu hóa như công thức nghiệm ở bài trước hoặc các thuật toán tối ưu gần đúng như gradient descent hay stochastic gradient descent Ví dụ như, trong thuật toán K-Nearest Neighbors, các điểm trong tập huấn luyện là những điểm có thể là hàng xóm của nhau (gần nhau) được học theo các phương pháp tham lam Trong thực tế, tập dữ liệu huấn luyện thường bao gồm các cặp vectơ đầu vào và vectơ đầu ra tương ứng, trong đó vectơ đầu ra thường được gọi là nhãn (label hoặc target) Các thuật toán nói chung sẽ tìm cách tối ưu sai số dự đoán trên tập huấn luyện này đến mức đủ tốt Trong trường hợp overfitting sai số dự đoán của mô hình trên tập huấn luyện có thể rất thấp, thậm chí = 0%
Nhưng điều này chưa đủ Mục tiêu của chúng ta là tạo ra những mô hình có khả năng tổng quát hóa để dự đoán tốt trên cả dữ liệu chưa thấy bao giờ (nằm ngoài tập huấn luyện), do đó, để biết một thuật toán hay mô hình có tốt hay không thì sau khi được huấn luyện, mô hình cần được đánh giá hiệu quả thông qua bộ dữ liệu kiểm thử (testing set) Bộ dữ liệu này được sử dụng để tính độ chính xác hoặc sai số của mô hình dự đoán đã được huấn luyện Chúng ta biết nhãn thực của mọi điểm trong tập hợp dữ liệu kiểm thử này, nhưng chúng ta sẽ tạm thời giả vờ như không biết và đưa các giá trị đầu vào của tập vào mô hình dự đoán để nhận kết quả dự đoán đầu ra Sau đó chúng ta có thể nhìn vào các nhãn thực và so sánh nó với kết quả dự đoán của mô hình đã được huấn luyện từ các đầu vào tương ứng này và xem liệu mô hình có dự đoán đúng hay không Việc tính tổng trung bình của toàn bộ các lỗi này chúng ta có thể tính toán được lỗi dự đoán trên tập kiểm thử
Các lỗi dự đoán này được đánh giá thông qua rất nhiều chỉ số khác nhau như độ chính xác (precision), độ hồi tưởng (recall), F1-Score, RMSE, MAE,… Một vấn đề quan trọng chính là các chỉ số đo mức độ hiệu quả của mô hình này trên tập kiểm thử có thể khác với các lossfunction hay objective function sử dụng để tối ưu hóa mô hình trên tập huấn luyện Nghĩa là quá trình kiểm thử và quá trình huấn luyện là hoàn toàn độc lập với nhau, cả về bộ dữ liệu lẫn cách thức so sánh chỉ số
Tập dữ liệu kiểm thử tốt là một tập dữ liệu độc lập với tập dữ liệu huấn luyện (để ngoài và không được tham gia vào quá trình huấn luyện), nhưng tuân theo cùng một phân phối xác suất như tập dữ liệu huấn luyện Điều này giúp cho việc đánh giá không bị thiên vị Nếu một mô hình có kết quả tốt khi kiểm tra với tập huấn luyện nhưng lại tệ với tập kiểm tra, thì việc rất có khả năng nó bị quá khớp Ngược lại, chênh lệch sai số giữa hai tập không quá nhiều thì thường chúng là một mô hình phù hợp Lấy ví dụ, với một bài toán dự đoán ngõ ra Y dựa vào ngõ vào X, ta có các giá trị đúng từ đầu vào là các điểm màu xanh dương như trong hình bên dưới Yêu cầu là tìm được một hàm số đi qua các điểm trên sao cho sai số là thấp nhất Ở đây ta có 2 mô hình màu cam và xanh lá, đánh giá trên tập huấn luyện và tập kiểm tra
Hình 2-2 - Kết quả dự đoán của mô hình trên tập huấn luyện (bên trái) và tập kiểm tra (bên phải)
Với mô hình màu xanh lá, lỗi dự đoán trên cả tập huấn luyện và tập kiểm tra là không chênh lệch nhau quá nhiều, ngược lại với mô hình màu cam, lỗi dự đoán trên tập kiểm thử lớn hơn rất nhiều so với trên tập huấn luyện Do đó mô hình màu cam nhiều khả năng bị quá khớp hơn mô hình màu xanh Sở dĩ lại xảy ra vấn đề này
19 là do các mô hình bị quá khớp có các tham số có các thông số khá cao và vì vậy chỉ những sai khác nhỏ trên dữ liệu đầu vào cũng có thể tạo ra những sai khác lớn trên giá trị đầu ra, điều đó dẫn đến sai số trên tập kiểm thử sẽ cao đột biến
Vì vậy, việc sử dụng tập kiểm tra giúp chúng ta đánh giá được hiệu quả của mô hình xây dựng cuối cùng Rõ ràng ta cần lại phải cố gắng điều chỉnh các thông số, dữ liệu đầu vào để đưa ra các mô hình tốt hơn Ở trường hợp này, có thể tập kiểm tra đang có khác biệt hoặc thiếu cân bằng khi so với tập huấn luyện; hoặc có thể trong quá trình huấn luyện quá nhiều lần, dẫn đến việc mô hình sau khi huấn luyện bị sai lệnh khi đánh giá bằng tập dữ liệu kiểm tra Nếu ta lại tiếp tục lấy tập dữ liệu kiểm tra để đánh giá trong quá trình huấn luyện thì việc này không đúng đối với dữ liệu kiểm thử, vì chúng ta đang cố gắng dự đoán những điều chưa biết, chứ không phải là đưa lại tình huống đã xảy ra đã biết để hiệu chỉnh lại mô hình Chính vì lí do đó, một tập dữ liệu khác sẽ được sử dụng để đóng vai trò đưa ra các phản hồi nhằm hiệu chỉnh các mô hinh sau quá trình huấn luyện Tập dữ liệu này gọi là tập dữ liệu kiểm chứng (validation set) Một cách đơn giản, tập kiểm chứng là tập cho phép lựa chọn mô hình huấn luyện cho phù hợp, còn tập kiểm tra sẽ là là tập đánh giá lại mô hình lần cuối cùng
Tập dữ liệu kiểm chứng (validation set) cung cấp các đánh giá công bằng về sự phù hợp của mô hình trên tập dữ liệu huấn luyện trong quá trình huấn luyện Tập kiểm chứng có chức năng như một sự kết hợp: nó vừa là dữ liệu huấn luyện được sử dụng để thử nghiệm, nhưng không phải là một phần của quá trình huấn luyện cấp thấp cũng không phải là một phần của thử nghiệm cuối cùng Nó là một bước chung gian cho phép lựa chọn mô hình phù hợp
Tập kiểm chứng có tác dụng giúp tìm kiếm mô hình tốt nhất trong các ứng viên được huấn luyện từ tập huấn luyện Nó được sử dụng để so sánh hiệu suất của các mô hình ứng viên này và quyết định cái nào sẽ là mô hình tốt nhất cuối cùng bằng cách so sánh các độ đo hiệu suất như độ chính xác, độ nhạy cảm, độ hồi tưởng, RMSE, MSE,… đạt được trên nó Nó giúp cho quá trình điều chỉnh các siêu tham số của mô
20 hình chẳng hạn số lượng đơn vị ẩn (lớp và chiều rộng lớp) trong mạng nơron để đạt được mô hình phù hợp
Tập kiểm chứng cũng giúp phát hiện và dừng sớm (early stopping) quá trình huấn luyện mô hình khi lỗi trên tập kiểm chứng tăng lên đột biến, vì đây là dấu hiệu của mô hình quá khớp Kỹ thuật dừng sớm là một kỹ thuật được sử dụng khá phổ biến để tránh việc quá khớp Mặc dù nhìn có vẻ khá đơn giản, nhưng việc thực hiện nó trên thực tế lại khá phức tạp Sỡ dĩ như vậy là do lỗi dự đoán trên tập kiểm chứng có thể dao động trong quá trình huấn luyện, tạo ra nhiều cực tiểu địa phương Sự phức tạp này đã dẫn đến việc có rất nhiều các quy tắc đặc biệt được xây dựng và đề xuất để xác định chính xác thời điểm quá khớp thực sự bắt đầu dựa trên lỗi dự đoán trên tập kiểm chứng
Như trên hình vẽ trên, ta thấy chúng ta có thể dừng việc huấn luyện tại vị trí có sự thay đổi rõ rệt sai số trong tập kiểm chứng Đây là thời điểm xảy ra quá khớp
Mạng nơ-ron nhân tạo (ANN)
Mạng nơ-ron nhân tạo hay Artificial Neural Network (ANN) [13], chỉ một cấu trúc mạng là một hệ thống tính toán lấy cảm hứng từ sự hoạt động của các nơ-ron trong hệ thần kinh Hệ thần kinh thông thường có cấu tạo gồm nhiều nơ-ron chính là đơn vị cơ bản cấu tạo nên hệ thống thần kinh, các nơ-ron thông thường sẽ liên kết với một phần các nơ-ron khác trong hệ thống thông qua các sợi nhánh (denrites) và sợi trục (axon) Mạng nơ-ron cũng được lấy cảm hứng từ việc kết nối tương tự so với hệ thống này
Hình 2-3 Cấu trúc của một nơ-ron trong hệ thần kinh: Phần thân (soma), phần nhân (nucleus), các sợi nhánh (dendrites) và sợi trục (axon) [14]
Mạng nơ-ron nhân tạo cũng gồm nhiều nút (unit) bên trong với cách kết nối tương tự với các tế bào thần kinh sinh học Mỗi kiên kết của từng unit bên trong ANN đều liên quan đến trọng lượng và việc chúng ta cần là sử dụng những trọng lượng (hay trọng số) này để tính toán cũng như học hỏi cho mạng bằng cách thay đổi các trọng số đó Một ví dụ đơn giản của ANN đơn giản gồm 1 lớp đầu vào, 2 lớp ẩn và 1 lớp ngõ ra:
Hình 2-4 - Một mạng nơ-ron nhân tạo đơn giản 3 lớp gồm có 1 lớp tầng input, 2 lớp tầng ẩn và 1 lớp tầng output
Lớp đầu vào được gọi là lớp input, các lớp ở giữa được gọi là tầng ẩn (lớp hidden), lớp cuối cùng được gọi là lớp ngõ ra (output) Các hình tròn trong từng lớp được gọi là các nút Thông thường, mô hình luôn có 1 lớp đầu vào, 1 lớp ngõ ra, có thể có hoặc không các lớp ẩn Tổng số lớp trong mô hình được quy ước là số lớp – 1 (Không tính lớp đầu vào)
Mỗi nút trong lớp ẩn và lớp ngõ ra có một số đặc điểm sau:
- Liên kết với tất cả các nút ở lớp trước đó với các hệ số w riêng
- Mỗi nút có 1 hệ số bias là 𝑏 (hay 𝑤 , ) riêng
- Diễn ra 2 bước: tính tổng tuyến tính và áp dụng hàm kích hoạt (ví dụ như hàm 𝜎), với kết quả đầu ra của mỗi nút là:
Hình 2-5 - Chi tiết từng nút trong các lớp
Số lượng tầng ẩn trong mô hình ANN là không giới hạn và được xác định tùy thuộc vào bài toán cần giải quyết Đặc biệt, khi số lượng tầng ẩn lớn hơn 1 thì mô hình ANN được gọi là mô hình học sâu Đặc biệt, chúng ta có thể sử dụng mô hình ANN cơ bản, kết hợp cùng với các lớp hay cấu trúc mạng khác để sử dụng các đặc trưng đó giải các bài toán khác nhau.
Các lớp tương ứng dùng để huấn luyện mô hình
Các lớp trong mô hình học sâu khi ghép nối với nhau sẽ tạo nên kiến trúc của một mô hình Đến hiện tại có rất nhiều các loại lớp khác nhau để sử dụng cho từng mô hình riêng Tất cả các lớp đều sẽ có những lợi ích riêng của chúng Trong luận văn này chỉ tập trung sử dụng cấu trúc mô hình sử dùng LSTM kết hợp cùng một số lớp tương ứng với mạng nơ-ron, cùng với một số kỹ thuật, lớp đặc trưng xoay quanh LSTM để dùng cho chuỗi dữ liệu đầu vào gồm 15 đặc trưng để dự đoán ra được 5 KPIs chính, ảnh hưởng trực tiếp đến chất lượng và sự bất thường của mạng 4G
Lớp dense hay lớp fully-connected là một trong những cấu trúc cơ bản cấu thành nên mạng nơ-ron network Thông thường thì lớp fully-connected thường được sử dụng trong phần cuối của một mạng nơ-ron Lớp này gíp thay đổi một số cấu trúc chung của đầu ra từ đầu vào ở lớp trước đó để mô hình có thể dễ dàng xác định mối
24 quan hệ giữa các giá trị trong một mô hình hiện có Lớp fully-connected thông thường được sử dụng phổ biến nhất trong các mạng nơ-ron nhân tạo
Các node (thường gọi là các tế bào thần kinh – nơ-ron) trong lớp này sẽ nhận các giá trị là đầu ra từ mọi node của lớp trước đó, trong đó các node của lớp fully- connected thực hiện dựa trên các phép nhân vectơ ma trận Ta có công thức nhân ma trận như sau:
Hình 2-6 - Cấu trúc của một mạng Nơ-ron đơn giản với Fully Connected Lớp
Với ma trận W (kích thước MxN) và x là các giá trị ma trận với trọng số w Các giá trị a này là các tham số được đào tạo của các lớp ở trước đó và được cập nhật bằng các thuật toán khác nhau (chẳng hạn như lan truyền ngược) Từ công thức trên, chúng ta hoàn toàn có thể điều chỉnh được kích thức của lớp fully-connected hay
25 chính xác hơn có thể tăng hoặc giảm kích thước của một vector đi qua nó bằng cách sử dụng các node
Một số thông số của lớp Fully-connected
- Số lượng số lượng các node có trên một lớp (Unit)
- Hàm kích hoạt (Activation Funtion) để chuyển đổi giá trị ngõ ra của fully- connected lớp để đưa tính phi tuyến tính vào mạng nơ-ron
- Chọn một giá trị làm bias cho các giá trị ngõ ra
- Giá trị khởi tạo của các trọng số
Theo như các lớp truyền thống trước đó thì vấn đề lớn nhất của mạng nơ-ron là không có tính chất lưu trữ các giá trị trước đó, và mạng nơ-ron hồi quy [15] (hay Recurrent Neural Network - RNN) được hiện thực dựa trên các tính chất lưu trữ thông tin
Hình 2-7 - Cấu trúc tổng quát của mạng RNN
Như hình, cấu trúc chung của mạng RNN A với đầu vào là xt và đầu ra là ht Một vòng lặp theo chiều mũi tên là đường đi cho phép dữ liệu có thể được truyền từ bước này qua bước khác của một mạng nơ-ron Ta có thể thấy theo cấu trúc này thì mạng RNN hoàn toàn tương tự so với mạng nơ-ron trước đó – bao gồm các node của mạng vẫn nhận đầu vào và đẩy dữ liệu đến đầu ra Điểm đặc biệt có các đường lặp là một trong những đặc điểm giúp mạng RNN giải quyết được các vấn đề lưu trữ, làm cho mạng này tạo thành một chuỗi các node mạng nối tiếp nhau, từ đó các node mạng có thể sao chép dữ liệu từ nhau Vì vậy mà ngày nay, mạng RNN vẫn đang được áp dụng rất rông rãi: từ nhận dạng giọng nói, mô hình hoá ngôn ngữ, dịch máy, mô tả hình ảnh, …
Sau đó, trong quá trình cải tiến RNN, đã xuất hiện nhiều biến thể khác nhau, tiêu biểu có thể kể đến mạng LSTM [16] (Long-Short Term Memory network) Tận dụng khả năng nhớ và lưu trữ của RNN, LSTM đã cải thiện thêm vấn đề liên quan đến sự phụ thuộc xa – là một trong những điểm yếu lớn nhất khi áp dụng RNN trong học sâu Ở cấu trúc bên trong từng node của RNN, ta đều thấy cấu trúc lặp đi lặp lại của mạng nơ-ron Các thành phần lặp lại này thường sẽ có cấu trúc rất đơn giản, có thể chỉ là một tầng tanh
Hình 2-8 - Khai triển cấu trúc của RNN
Hình 2-9 - Cấu trúc bên trong của mạng RNN cơ bản : bao gồm 1 cổng tanh
Vì là một biến thể của RNN, LSTM cũng sẽ có cấu trúc dạng chuỗi tương tự như trên Tuy nhiên, cấu trúc lặp của nó sẽ có đôi chút khác biệt so với cấu trúc lặp của RNN chuẩn Thay vì chỉ có một tầng mạng Nơ-ron, chúng sẽ có đến 4 tầng, và tương tác với nhau theo một chuỗi các hàm kích hoạt khác nhau
Hình 2-10 - Biến thể LSTM của RNN: Cấu trúc có thêm một số cổng khác nhau
Dựa theo cấu trúc như hình trên, ta có thể tính toán và công thức hoá một số giá trị ngõ ra tương ứng với đầu vào thông qua các hàm kích hoạt
Hình 2-11 - Phần đường truyền đặc biệt của mạng LSTM: Truyền thông tin ảnh hưởng bởi thời gian
Với Ct là trạng thái đầu ra của node t, cũng như sẽ là trạng thái đầu vào của node kế tiếp Ct được tính như sau:
Hình 2-12 - Tầng lựa chọn thông tin để "quên" trong những dữ liệu trước đó bằng tầng sigmoid
Bước đầu tiên của LSTM sẽ phải chọn xem thông tin nào trước đó cần phải loại bỏ Quyết định này được đưa ra thông qua hàm sigmoid hay tầng sigmoid – tương ứng với đường đi 𝑓 - Tầng sigmoid này sẽ lấy đầu vào là ℎ -.( - đầu ra đánh giá độ tốt dữ liệu từ node trước và 𝑥 - – đầu vào từ hiện tại rồi ra quyết định là một giá trị nằm trong khoảng [0,1] cho mỗi giá trị 𝐶 -.( lấy từ node kề trước Giá trị 𝑓 - là 1 thể hiện rằng thông tin tương ứng từ 𝐶 -.( sẽ được giữ lại, ngược lại với giá trị 0 tương ứng với việc thành phần dữ liệu tương ứng trước đó sẽ được lọc bỏ đi
Tiếp theo thông qua giá trị biến 𝐶S - được sử dụng nhờ vào hàm tanh để có thể cập nhật các thành phần dữ liệu của node cũ (𝐶 -.( ) trở thành 𝐶 -
Hình 2-13 - Chọn lọc và tổng hợp thông tin hiện tại và trước đó
Hình 2-14 - Tính toán và xuất dữ liệu đầu ra cho node
Cuối cùng là việc tính toán và xác định giá trị ht là gì, với ht ở đây sẽ là giá trị đầu ra của node t, hay là một giá trị trong vector đầu ra của lớp LSTM này Đầu tiên sẽ có một hàm sigmoid để quyết định thành phần nào của node sẽ được xuất ra Tiếp theo các trạng thái này sẽ được đưa qua một hàm tanh để co giá trị của chúng về khoảng [-1,1] Giá trị ht được diễn giải theo công thức như sau:
ℎ - = 𝑜 - ∗ tanh(𝐶 - ) Với giá trị ot được tính theo công thức { 𝑜 - = 𝜎(𝑊 1 ∙ [ℎ -.( , 𝑥 - ] + 𝑏 1 )
LSTM thực tế là một bước lớn trong việc cải tiến RNN Việc sử dụng LSTM giúp cho tất cả các thành phần của RNN có thể truy vấn được thông tin từ một tập thông tin lớn hơn, các thông tin được lưu trữ và sử dụng xuyên suốt chiều dài của lớp, hỗ trợ cải tiến các điểm yếu của RNN
Một số thông số của Lớp LSTM
- Số lượng số lượng các node có trên một lớp (Unit)
- Hàm kích hoạt (Activation Funtion) để chuyển đổi giá trị ngõ ra của fully- connected lớp để đưa tính phi tuyến tính vào mạng nơ-ron
- Trả về các trạng thái ẩn bên trong mạng LSTM hay không?
- Giá trị khởi tạo của các trọng số
LSTM hai chiều (Bidirectional LSTM - BiLSTM) là thành phần mạng được sử dụng chủ yếu trong xử lý ngôn ngữ tự nhiên Không giống như LSTM thông thường, với đầu vào sẽ được chuyển tiếp step-by-step từ trước về sau mà Bi-LSTM sẽ lấy tất cả thông tin và đưa nó đi theo hai hướng ngược nhau, đảm bảo tất cả thông tin đều được lấy và sử dụng từ cả hai phía Nó cũng là một trong những công cụ để mô hình hoá các phụ thuộc hay ảnh hưởng tuần tự giữa các từ và cụm từ theo cả hai hướng của một câu trong bài toán phân tích ngôn ngữ
Nói một cách đơn giản, BiLSTM sẽ thêm một lớp LSTM nữa, giúp dữ liệu sẽ được thu thập và ghi nhận, xử lý theo một hướng ngược lại so với lớp LSTM có sẵn Sau đó sẽ thực hiện kết hợp đầu ra từ cả hai lớp LSTM theo nhiều cách (như lấy trung bình, lấy tổng, nhân hoặc ghép nối với nhau,…)
Hình 2-15 - Cấu trúc mạng Bidirection LSTM: Gồm 2 lớp LSTM theo 2 hướng ngược nhau
Một số thông số của Lớp BiLSTM
- Các thông số mạng RNN (hay mạng LSTM) dùng làm cho lớp forward và backward
- Chế độ kết hợp các giá trị đầu ra của hai lớp forward và backward để làm đầu ra cho cụm lớp
2.6.4 Cơ chế Sequence to Sequence ở mạng RNN
Sử dụng kỹ thuật Regression để predict cho những đặc trưng low-variant
Đối với một vài KPIs đặc thù, ta thấy được một số vấn đề với các mô hình thuần tuý khi dữ liệu có một số khoảng thời gian không thay đổi nhiều Như trên hình ta thấy có 3 thông số KPIs bao gồm: INTRA_FREQUENCY_HO, SERVICE_DROP_ALL, CSSR chỉ thay đổi theo một số mốc thời gian đặc biệt, dẫn đến các mô hình hiện tại sử dụng LSTM, Attention, … dự đoán sai lệch Vì vậy ta cần một phương pháp khác để dữ liệu dự đoán ngõ ra tốt hơn, bám theo sự thay đổi của đầu vào tốt hơn, ta sẽ sử dụng phương pháp Regression kết hợp cùng với mô hình thông thường để hỗ trợ cho việc dự đoán ngõ ra
Hình 2-30 - Một số hình dạng của các vùng dữ liệu đặc biệt
Autoregressive mô hình xác định giá trị của biến đầu ra phụ thuộc tuyến tính vào các giá trị trước đó của chính nó và vào một quy luật ngẫu nhiên (một thuật ngữ không thể dự đoán không hoàn hảo); do đó mô hình ở dạng phương trình chênh lệch ngẫu nhiên (hoặc quan hệ lặp lại) có nghĩa là giá trị ở thời điểm hiện tại phụ thuộc tuyến tính vào giá trị ở thời điểm trước đó (một hoặc nhiều thời điểm), ngoài ra còn có thêm thành phần nhiễu ngẫu nhiên (không có công thức tính chính xác)
Về mặt công thức, mô hình Autogressive có dạng sau:
- 𝑋 - là giá trị tại thời điểm hiện tại, phụ thuộc vào các giá trị ở thời điểm trước đó 𝑋 -."
- 𝜀 - chính là thành phần nhiễu ngẫu nhiên đối với thời điểm hiện tại t
- Hệ số 𝜑 " tương ứng với mốc thời gian (t-i) là các hệ số được huấn luyện và cập nhật từ mô hình bằng thuật toán Maximum Likelihood Estimation
Autoregressive là một mô hình có công thức đơn giản, có nhiều ứng dụng trong thực tiễn như xây dựng mô hình tài chính, thống kê hay xử lý tín hiệu Trong phân tích tài chính, ta có thể dùng mô hình Autoregressive vào các ứng dụng sau:
- Dùng độc lập như một phương pháp phân tích kĩ thuật
- Kết hợp với các phương pháp khác để tạo lên một mô hình tổng quát hơn
THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM
Lưu đồ giải thuật tổng quát và các bước thực hiện phần mềm
Để hoàn thành được việc nghiên cứu và dự đoán các KPIs đầu ra, ta cần phải thực hiện 3 phần chính:
- Nghiên cứu đánh giá và chọn lọc, phân tích các dữ liệu có ích từ những dữ liệu thô nhận được
- Thực hiện chọn các thông số, các phương pháp tốt nhất để thực hiện thiết kế được một mạng nơ-ron với sai số giữa giá trị dự đoán và giá trị thực tế là thấp nhất
- Thiết kế bộ phần mềm để dự đoán được dữ liệu đầu ra dựa trên những dữ liệu đầu vào để kiểm tra và ứng dụng vào thực tế
Dựa vào các thành phần chính đã liệt kê, ta có thể vẽ được đơn giản một lưu đồ giải thuật tổng quát của đề tài này:
Hình 3-1 - Lưu đồ giải thuật tổng quát để chọn mô hình tốt nhất
Lọc và import dữ liệu đầu vào
Đối với dữ liệu time series, ta luôn cần đầu vào dữ liệu cho mô hình là toàn vẹn nhất để có thể huấn luyện các mô hình đọc được các thông số liên tục cũng như những khuôn mẫu của dữ liệu đầu vào theo thời gian Từ đó, khi mang dữ liệu này đi huấn luyện mô hình cũng sẽ đạt được những hiệu quả tốt hơn, sai số thấp hơn và mô hình sẽ dễ dàng được ứng dụng vào thực tế hơn
Tuy nhiên, ta thấy ở dữ liệu thực tế luôn luôn sẽ có khá nhiều vấn đề gặp phải khi nhập vào, một trong những vấn đề lớn nhất là một số đặc trưng bị mất đi phần dữ liệu trong một khoảng thời gian nhất định hay người ta thường gọi là missing data, điều này gây mất tính toàn vẹn và liên tục cho dữ liệu kiểu chuỗi thời gian này Vì vậy đây là vấn đề cần phải giải quyết Đầu tiên, khi nhập dữ liệu vào, ta sẽ kiểm tra số lượng missing data ở từng đặc trưng, tại một cell bất kỳ trong tập dữ liệu, kết quả khi thực hiện kiểm tra số lượng missing data ở một cell dữ liệu bất kì như trong Bảng 3-1
Với tổng độ dài dữ liệu của cell dữ liệu này là 7192, thì ta thấy ở đây sẽ có khá nhiều đặc trưng bị thiếu gần như là toàn bộ: ERAB_SSRATE_ALL thiếu 7176 timestep, INTRA_ENODEB_HOSR bị thiếu 7168 timesteps Vì vậy, đối với cell dữ liệu này, ta phải chọn giữa 2 cách: xoá bỏ 2 đặc trưng này hoặc xoá bỏ toàn bộ dữ liệu của cell này Ở đây, với các cell dữ liệu khác, 2 KPIs này hoàn toàn vẫn sử dụng được tốt, nên ở đây ta sẽ phải xoá bỏ hoàn toàn dữ liệu của cell này
ENODEB_ID CELL_ID USER_DL_AVG_THPUT TRAFFIC_VOL_UL TRAFFIC_VOL_DL RES_BLK_UL RES_BLK_DL CELL_UL_MAX_THPUT CELL_DL_AVG_THPUTS INTRA_ENODEB_HOSR USER_UL_AVG_THPUT
HOSR_IRAT_LTE_GSM CSFB_ATT
CELL_UL_AVG_THPUT TRAFFIC
DL_LATENCY CELL_DL_MAX_THPUT UNVAILABLE
INTRA_FREQUENCY_HO SERVICE_DROP_ALL ERAB_SSRATE_ALL RRC_SSRATE
CSSR INTRA_HOSR_ATT AVAILABLE
Bảng 3-1 - Số lượng dữ liệu bị thiếu của từng đặc trưng Đối với một số dữ liệu còn bị thiếu khá nhiều chỗ, ta cũng sẽ phải tìm cách xử lý để đảm bảo dữ liệu đầu vào cho việc huấn luyện mô hình được xuyên suốt hơn:
- Đối với những dữ liệu bị thiếu với số lượng ít, ví dụ ở đây ta có một số đặc trưng có số lượng thiếu sót dưới 100, ta hoàn toàn có thể điền lại toàn bộ dữ liệu bị thiếu ở timestep này bằng cách dùng giá trị trung bình của đặc trưng này mà không làm thay đổi tính toàn vẹn cho toàn bộ cell dữ liệu
- Với những dòng dữ liệu có nhiều hơn 1 đặc trưng bị thiếu, ta hoàn toàn không thể tìm cách điền thêm dữ liệu vì nó có thể làm ảnh hưởng đến việc huấn luyện, vì vậy mà ta cần phải loại bỏ dòng dữ liệu này ra khỏi tập huấn luyện.
Chia dữ liệu ra làm 3 thành phần để hỗ trợ cho việc huấn luyện
Như đã nói ở phần trên, ta cần thiết phải chia toàn bộ khối dữ liệu lớn hiện có của ta ra làm 3 phần khác nhau, để hỗ trợ cho việc đào tạo, kiểm tra, đánh giá và tránh một số vấn đề gặp phải khi huấn luyện mô hình Cụ thể ở đây, ta sẽ chia toàn bộ dữ liệu của từng cell thành các tập:
- Tập huấn luyện (training set): là thành phần đưa vào trực tiếp để huấn luyện cho mô hình Chiếm tỉ lệ 80% (thứ tự từ đầu đến 80%) dữ liệu của từng cell
- Tập xác thực (validating set): là thành phần chuyên dùng để đánh giá mô hình trong quá trình huấn luyện các thông số cho mô hình Phần này sẽ hỗ trợ chủ yếu cho đánh giá và sử dụng kỹ thuật early stopping để tránh việc mô hình sẽ bị ảnh hưởng bởi vấn đề overfit Phần này chiếm tỉ lệ 10% (thứ tự từ 80% đến 90%) dữ liệu của từng cell
- Tập kiểm tra (testing set): thành phần cuối cùng đánh giá độ chính xác của mô hình để xem nó có thể được sử dụng hay không Thông thường phần này sẽ không được dùng cho huấn luyện mô hình mà chỉ để đánh giá độ tốt hay độ chính xác của mô hình Chiếm tỉ lệ 10% cuối (thứ tự từ 90% đến cuối cùng) của dữ liệu từng cell.
Tiền xử lý dữ liệu đầu vào dùng Standard Scaler
Theo như phần trước, ta thấy dữ liệu đầu vào sẽ gồm rất nhiều các đặc trưng khác nhau, và mỗi đặc trưng sẽ đều đo lường cho một đại lượng khác nhau dẫn đến các đơn vị, số liệu của mỗi đặc trưng cũng sẽ khác nhau, dẫn đến việc ta cần phải chuẩn hoá dữ liệu đầu vào để tránh việc các đặc trưng có giá trị lớn hơn làm ảnh hưởng đến trọng số của từng lớp trong mô hình Bên cạnh đó việc chuẩn hoá dữ liệu bằng scaler cũng giúp mô hình được huấn luyện và học nhanh hơn, từ đó giúp mô hình hoạt động chính xác hơn, đơn giản hơn Ở mô hình này, ta sẽ sử dụng phương pháp scaler để tiền xử lý dữ liệu đầu vào bằng cách thu nhỏ toàn bộ các đặc trưng về khoảng giá trị [0,1] Chúng ta sẽ thực hiện điều này bằng hoàn toán như sau:
Với 𝑌 50678 là dữ liệu ngõ ra ta cần có, 𝑌 )9: là những dữ liệu thô đầu vào,
𝑌&6#(-