BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUY NHƠN
VÕ CHÍ CƯỜNG
ỨNG DỤNG MÔ HÌNH HỌC MÁY NAIVE BAYES
••
TRÊN MÔI TRƯỜNG SPARK CHO BÀI TOÁN DỰ
BÁO KHẢ NĂNG HỎNG CỦA ĐĨA CỨNG MÁY TÍNH
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
Người hướng dẫn: TS. Hồ Văn Lâm
LỜI CAM ĐOAN
Tôi xin cam đoan đề tài “Ứng dụng mô hình học máy Naive Bayes
trên môi trường Spark cho bài toán dự báo khả năng hỏng của đĩa cứng
máy tính” là kết quả của tự bản thân tôi tìm hiểu, nghiên cứu. Các số liệu, dẫn
chứng và tài liệu tham khảo được trích dẫn và chú thích đầy đủ. Tôi xin chịu
trách nhiệm về luận văn của mình.
LỜI CẢM ƠN
Qua quá trình học tập và thời gian nghiên cứu làm luận văn, trước tiên
tôi xin gửi lời cảm ơn chân thành nhất đến các Thầy Cô giáo đã tham gia tổ
chức, chỉ đạo và trực tiếp giảng dạy trong suốt những khóa học vừa qua. Đặc
biệt, tôi xin gửi lời cảm ơn sâu sắc nhất đến Thầy giáo hướng dẫn TS. Hồ Văn
Lâm, người đã tận tình chỉ bảo, góp ý, giúp đỡ và tạo mọi điều kiện để tôi có
thể hoàn thành luận văn.
Cũng qua đây, tôi xin gửi lời cảm ơn đến các anh chị là học viên lớp cao
học Khoa học máy tính khóa trước đã giúp đỡ tôi rất nhiều trong quá trình học
tập và nghiên cứu. Cuối cùng, tôi xin gửi lời cảm ơn đến gia đình và bạn bè đã
luôn giúp đỡ, ủng hộ tôi trong suốt quá trình học tập, nghiên cứu và hoàn thành
luận văn.
Trong thời gian qua tôi đã cố gắng tập trung nghiên cứu và tìm hiểu để
hoàn thành thật tốt luận văn của mình nhưng chắc chắn còn nhiều thiếu sót rất
mong được nhận sự chỉ bảo của các Thầy Cô giáo để luận văn được hoàn thiện
hơn.
MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH VẼ
MỞ ĐẦU......................................................................................................... 1
1.1 Lý do chọn đề tài............................................................................... 1
1.2 Tổng quan tình hình nghiên cứu đề tài ............................................. 2
1.3 Mục tiêu và nhiệm vụ nghiên cứu .................................................... 3
1.4 Nhiệm vụ nghiên cứu........................................................................ 3
1.5 Đối tượng và phạm vi nghiên cứu.......................................................4
CHƯƠNG 1: KIẾN THỨC TỔNG QUAN....................................................5
1.1 Giới thiệu về học máy .............................................................................5
1.1.1. Học máy là gì? ...............................................................................5
1.1.2. Các thành phần của học máy........................................................7
1.1.3. Phương thức hoạt động của học máy ...........................................10
1.1.4. Ứng dụng của học máy .................................................................10
1.2 Mô hình lập trình MapReduce ................................................................12
1.2.1 Tổng quan về mô hình MapReduce................................................12
1.2.2 Nguyên tắc hoạt động của mô hình MapReduce ..........................15
1.2.3 Một số bài toán ứng dụng mô hình MapReduce [6]......................18
1.3 Giới thiệu về Spark .................................................................................18
1.3.1 Tổng quan ......................................................................................18
1.3.2 Thành phần của Apache Spark ......................................................20
1.3.3 Quản lý bộ nhớ của Apache Spark ................................................21
1.3.4 Ứng dụng........................................................................................23
1.4 Kết luận chương 1...................................................................................24
CHƯƠNG 2: THUẬT TOÁN NAIVE BAYES VÀ BÀI TOÁN Dự BÁO
KHẢ NĂNG HỎNG CỦA ĐĨA CỨNG MÁY TÍNH...................................25
2.1 Thuật toán Naive Bayes..........................................................................25
2.1.1. Khái niệm .....................................................................................25
2.1.2. Mô hình phân lớp Naive Bayes.....................................................27
2.1.3. Một số kiểu mô hình Naive Bayes.................................................28
2.1.4. Ứng dụng của thuật toán ..............................................................29
2.2 Bài toán dự báo đĩa cứng hỏng ..............................................................30
2.2.1 Tổng quan .....................................................................................30
2.2.2 Giới thiệu về S.M.A.R.T ................................................................31
2.2.3 Giám sát ổ đĩa cứng ......................................................................33
2.2.4 Naive Bayes cho bài toán dự báo khả năng hỏng của đĩa cứng. ...
34
2.3 Naive Bayes theo mô hình lập trình MapReduce cho bài toán dự báo 39
2.4 Thuật toán Naive Bayes thực hiện trên môi trường Spark .....................41
2.5 Học máy trên môi trường Spark..............................................................55
2.6 Kết luận chương 2 ..................................................................................57
CHƯƠNG 3: THỰC NGHIỆM .....................................................................58
3.1 Cấu trúc dữ liệu thử nghiệm ..................................................................58
3.2 Triển khai thực nghiệm ..........................................................................62
3.2.1 Thực nghiệm 1................................................................................62
3.2.2 Thực nghiệm 2................................................................................68
3.3 Đánh giá thuật toán ................................................................................74
KẾT LUẬN ....................................................................................................76
1. Kết quả đạt được của luận văn ..................................................................76
2. Kiến nghị và hướng nghiên cứu tiếp theo ................................................76
DANH MỤC TÀI LIỆU THAM KHẢO .......................................................78
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
••7
r
rri /V•
Thuật ngữ
/V J
Tên
viết Cơ sở dữ liệu
CSDL
Ý nghĩa
Cơ sở dữ liệu
CNTT
Công nghệ thông tin
Công nghệ thông tin
AI
Artificial Intelligence
Trí tuệ nhân tạo
Tập hợp các item được phân
RDD
Resilient Distributed DataSet
tán trên các node.
Đồ thị không chu trình có
DAG
Directed Acyclic Graph
hướng
Hệ thống lưu trữ tập tin của
HDFS
Hadoop Distributed File System
Hadoop
DANH MỤC CÁC BẢNG
•
Bảng 3.1 Mô tả các thông số SMART từ thu thập dữ liệu ............................ 58
Bảng 3.2 Ví dụ tỉ lệ phần trăm của hai đĩa cứng thông qua số liệu thống kê
SMART ........................................................................................... 59
Bảng 3.3: So sánh kết quả thu được qua mô hình thực nghiệm 1 và mô hình
thực nghiệm 2...................................................................................75
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Mô hình làm việc của một công việc MapReduce.......................... 14
Hình 1.2. Quy trình xử lý của MapReduce [6] .............................................. 16
Hình 1.3 Tỉ lệ sử dụng ngôn ngữ lập trình trong 2 năm 2014 và 2015 ......... 19
Hình 1.4 Các thành phần của Apache Spark [11] ......................................... 20
Hình 2.1 Giai đoạn Training [3]..................................................................... 26
Hình 2.2 Giai đoạn phân loại [3].................................................................... 26
Hình 2.3 Mô tả tập dữ liệu theo định dạng file CSV ..................................... 35
Hình 2.4. Đọc dữ liệu. ................................................................................... 36
Hình 2.5. Tính độ lệch chuẩn cho từng giá trị SMART. ............................... 36
Hình 2.6. Xử lý dữ liệu. ................................................................................. 37
Hình 2.7. Tính xác suất của từng biến theo phân phối Gausian .................... 38
Hình 2.8. Dự đoán dựa vào xác suất .............................................................. 38
Hình 2.9 Giai đoạn phân loại [5].................................................................... 42
Hình 3.1 Dữ liệu mẫu .................................................................................... 59
Hình 3.2: Input thư viện và cho máy học dữ liệu training và dữ liệu test
trên môi trường Pandas..................................................................60
Hình 3.3: Input thư viện và cho máy học dữ liệu training và dữ liệu test
trên môi trường Spark.................................................................... 61
Hình 3.4: Tập dữ liệu kiểm tra ...................................................................... 61
Hình 3.5 Inport thư viện, môi trường và thuật toán Naive Bayes...................62
Hình 3.6: Đọc và kiểm tra data training và data testing..................................63
Hình 3.7: Đếm tổng số data và số lượng data dự đoán lỗi ổ cứng bị thiếu. ... 63
Hình 3.8: Sắp xếp các giá trị SMART > 0......................................................63
Hình 3.9: Sắp xếp theo tổng các giá trị SMART trừ SMART 12.................. 64
Hình 3.10: Sắp theo chu kỳ điện SMART 12.................................................64
Hình 3.11: Kết quả thu được từ đếm tổng số dữ liệu đầu vào và đếm số lượng
dự đoán lỗi ổ cứng bị thiếu dữ liệu.................................................66
Hình 3.12: Kết quả thu được từ việc sắp xếp các giá trị SMART...................68
Hình 3.13: Triển khai môi trường Spark bằng googlecolab ...........................69
Hình 3.14: Import thư viện và môi trường spark ...........................................69
Hình 3.15: Cho máy học training data và testing data ...................................70
Hình 3.16: Triển khai áp dụng thuật toán Naive Bayes..................................70
Hình 3.17: Kết quả thu được từ đếm tổng số dữ liệu đầu vào và đếm số lượng
dự đoán lỗi ổ cứng bị thiếu dữ liệu trên Spark................................72
Hình 3.18: Kết quả thu được từ việc sắp xếp các giá trị SMART trên môi
trường Spark...................................................................................74
MỞ ĐẦU
1.1 Lý do chọn đề tài
Trong thế giới kỹ thuật số, cơ sở hạ tầng vật lý và thiết bị vẫn là xương
sống của nhiều cơ quan, doanh nghiệp. Dự báo thiết bị hỏng từ lâu đã là mục
tiêu cho những người chịu trách nhiệm quản lý hiệu suất tài sản, những tiến bộ
trong công nghệ cảm biến, công nghệ truyền thông, quản lý thông tin và phân
tích hiện đang là một trong những hướng đi tích cực cho việc dự báo độ hư
hỏng của thiết bị.
Không phải tất cả các dữ liệu đều có giá trị như nhau khi nói đến việc
dự đoán thiết bị hỏng, vì vậy điều quan trọng là phải xác định dữ liệu cần thiết
để quản lý thiết bị hỏng. Dữ liệu được sử dụng bởi các công cụ phân tích tiên
tiến để dự đoán hư hỏng đó là, dòng thời gian sản xuất, điều kiện thiết bị và dữ
liệu sự kiện được sử dụng để kiểm soát và theo dõi các quy trình vật lý. Đầu tư
vào khoa học dữ liệu và các kỹ năng phân tích tiên tiến với sự tập trung vào
quản lý thiết bị, dự đoán sẽ giúp hỗ trợ các nỗ lực cải tiến liên tục cho các tổ
chức công nghệ thông tin, bất kể tình trạng đầu tư hiện tại của doanh nghiệp,
sau đó nó có thể giúp đảm bảo mỗi dự án thành công và quan trọng hơn là xây
dựng khả năng đáp ứng các yêu cầu cần thiết trong cơ quan, doanh nghiệp. Với
những tiến bộ trong các công cụ phân tích để dự báo thiết bị hỏng, đó là sự
không thể tránh khỏi rằng các tổ chức với thiết bị quan trọng nhiệm vụ sẽ đầu
tư và phân tích nâng cao để giúp đảm bảo hoạt động an toàn và đáng tin cậy.
Một trong những công cụ mà luận văn hướng đến nghiên cứu là thuật toán
Naive Bayes trên môi trường Spark.
Đề tài nghiên cứu “Ứng dụng mô hình học máy Naive Bayes trên môi
trường Spark cho bài toán dự báo khả năng hỏng của đĩa cứng máy tính”
nhằm cài đặt và ứng dụng mô hình học máy Naive Bayes để dự báo việc đĩa
cứng máy tính sẽ bị hỏng khi nào nhằm tránh khỏi việc bị động trong
2
việc quản lý đĩa cứng máy tính bị hư hỏng ngoài dự đoán của nhà quản lý. Đó
là mục tiêu then chốt để hướng đến nghiên cứu đề tài.
1.2 Tổng quan tình hình nghiên cứu đề tài
Naive Bayes là một thuật toán dựa trên định luật Bayes về lý thuyết xác
suất để đưa ra các phán đoán cũng như phân loại dữ liệu dựa trên các dữ liệu
được quan sát và thống kê. Thuật toán Naive Bayes được ứng dụng rất nhiều
trong lĩnh vực học máy dùng để đưa các dự đoán chính xác nhất dựa trên một
tập dữ liệu đã được thu thập, vì nó dễ hiểu và có độ chính xác cao [8].
Định luật Bayes được phát biểu như sau:
_______ P(B|A) X P (A)
P(A|B)
= ( P(BP (
Trong đó:
- P(A|B) là xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự
kiện liên quan B đã xảy ra.
- P(B|A) là xác suất xảy ra B khi biết A xảy ra
- P(A) là xác suất xảy ra của riêng A mà không quan tâm đến B.
- P(B) là xác suất xảy ra của riêng B mà không quan tâm đến A.
Một số mô hình áp dụng thuật toán Naive Bayes [5]
- Multinomial model (Mô hình đa thức).
- Binary independence model (Mô hình độc lập nhị phân).
- Poisson Naive Bayes Model
- Connection between Poisson and Multinomial Model
- Multinomial word model
- Negative binomial Naive Bayes Model
Để xây dựng các mô hình này cho bài toán dự báo việc hư hỏng của đĩa
cứng máy tính thì Spark là một dự án phần mềm mã nguồn mở được phát triển
bởi Apache, nhằm thu các giá trị có ích từ khối lượng, tốc độ và tính đa dạng
3
của dữ liệu (cấu trúc/phi cấu trúc). Ban đầu Spark được phát triển bởi phòng
thí nghiệm AMP Lab thuộc trường Đại học California, Berkeley từ năm 2009
với mục đích nhằm nâng cao tốc độ xử lý của các hệ thống Hadoop. Sau đó nó
trở thành một công cụ mã nguồn mở miễn phí từ năm 2010 và được chuyển
giao cho Apache Software Foundation vào năm 2013. Spark dần trở thành một
trong những dự án trọng tâm của Apache Software Foundation. Phiên bản đầu
tiên được công bố vào tháng 5/2014 và phiên bản 2.0 được công bố tháng
7/2016. Phiên bản mới nhất hiện giờ (tính đến tháng 09/2020) là phiên bản
3.0.1.
Tốc độ xử lý của Spark có được do việc tính toán được thực hiện cùng
lúc trên nhiều máy khác nhau. Đồng thời việc tính toán được thực hiện ở bộ
nhớ trong (in-memories) hay thực hiện hoàn toàn trên RAM. Spark cho phép
xử lý dữ liệu theo thời gian thực, vừa nhận dữ liệu từ các nguồn khác nhau
đồng thời thực hiện ngay việc xử lý trên dữ liệu vừa nhận được (Spark
Streaming). Ứng dụng thuật toán Naive Bayes cho bài toán dự báo đĩa cứng
hỏng trên môi trường Spark để có thể tăng tốc độ xử lý và cho ra kết quả có độ
chính xác cao từ lượng lớn dữ liệu được thu thập của các ổ đĩa máy tính và đưa
ra dự báo khi nào thì ổ đĩa hỏng. Đó là hướng nghiên cứu cũng như mục tiêu
mà đề tài muốn hướng đến.
1.3 Mục tiêu và nhiệm vụ nghiên cứu
Tìm hiểu và ứng dụng thuật toán Naive Bayes trong việc dự báo khả
nẳng hỏng của đĩa cứng máy tính, triển khai trên nền tảng Spark. Thực nghiệm
và so sánh về tốc độ so với thuật toán khi không chạy trên nền tảng Spark.
1.4 Nhiệm vụ nghiên cứu
- Tìm hiểu thuật toán Naive Bayes
- Tìm hiểu về bài toán dự báo đĩa cứng hỏng
4
- Tìm hiểu về lập trình trên môi trường Spark.
- Cài đặt thuật toán Naive Bayes trên môi trường Spark cho bài toán dự
báo đĩa cứng hỏng.
- Thực nghiệm và đánh giá
1.5 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Thuật toán Naive Bayes.
- Bài toán dự báo đĩa cứng hỏng
- Môi trường Spark.
- Phương pháp lập trình thuật toán Naive Bayes trên môi trường Spark.
Phạm vi nghiên cứu:
- Thuật toán Naive Bayes theo mô hình lập trình MapReduce và cài đặt
thuật toán trên môi trường Spark cho bài toán dự báo đĩa cứng hỏng.
CHƯƠNG 1: KIẾN THỨC TỔNG QUAN
1.1 Giới thiệu về học máy
1.1.1.
Học máy là gì?
Học máy (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo liên
quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống
"học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy
có thể "học" cách phân loại thư điện tử xem có phải thư rác (spam) hay không
và tự động sắp xếp thư vào thư mục tương ứng. Học máy rất gần với suy luận
thống kê (statistical inference) tuy có khác nhau về thuật ngữ.[8]
Học máy có mối liên hệ rất mật thiết với thống kê. Học máy sử dụng các
mô hình thống kê để "ghi nhớ" lại sự phân bố của dữ liệu. Tuy nhiên, không
đơn thuần là ghi nhớ, học máy phải có khả năng tổng quát hóa những gì đã
được nhìn thấy và đưa ra dự đoán cho những trường hợp chưa được nhìn thấy.
Lấy ví dụ về xếp thư điện tử tự động như trên, một hệ thống tự động sau
khi trải qua quá trình học từ dữ liệu ("training") có thể suy diễn một số nguyên
tắc riêng (chẳng hạn như xem xét nội dung: nếu thư được viết bằng tiếng Anh
mà chứa một số từ như "porn", "sell", "good product" hoặc người gửi đến từ
Somalia trong khi người nhận ở Hà Nội không thân quen nhau) để quyết định
xem có phải là thư rác hay không. Tuy nhiên, nếu như trong dữ liệu huấn luyện
(training data) có ngôn ngữ khác trong thực tế (tiếng Việt thay vì tiếng Anh)
hoặc thậm chí không phải dạng thuần văn bản (dạng ảnh khiến cho việc bóc
tách nội dung khó hơn hoặc không thể) thì rất có thể máy sẽ dự báo không
chính xác nữa.
Một số hệ thống học máy nỗ lực loại bỏ nhu cầu trực giác của con người
trong việc phân tích dữ liệu, trong khi các hệ thống khác hướng đến việc tăng
sự cộng tác giữa người và máy. Không thể loại bỏ hoàn toàn tác động của con
người vì các nhà thiết kế hệ thống phải chỉ định cách biểu diễn của dữ liệu và
những cơ chế nào sẽ được dùng để tìm kiếm các đặc tính của dữ liệu. Học máy
có thể được xem là một nỗ lực để tự động hóa một số hoạt động trong phương
pháp khoa học.
Một số chương trình có thể tự động cập nhật trong thời gian thực (ví dụ
như người sử dụng có chỉ ra rằng thư bị sắp xếp sai danh mục).
Dưới góc nhìn của trí tuệ nhân tạo, động lực chính của học máy là nhu
cầu thu thập tri thức (knowledge acquisition). Trong nhiều trường hợp ta cần
kiến thức chuyên gia, nhưng kiến thức chuyên gia trong từng lĩnh vực còn ít
(theo dõi từng trạng thái đèn tín hiệu trên thiết bị điện, phân tích sự biến động
của thị trường chứng khoán, dự báo khả năng hỏng của đĩa cứng máy tính
trong một trung tâm DC, ...) hoặc tìm được kiến thức chuyên gia bị chậm trong
một số nhiệm vụ cần đưa ra quyết định nhanh chóng dựa trên xử lý dữ liệu
khổng lồ (trong mua bán chứng khoán phải quyết định trong khoảnh khắc vài
giây chẳng hạn) và thiếu ổn định thì buộc phải cần đến máy tính. Ngoài ra, đại
đa số dữ liệu được sinh ra ngày nay chỉ phù hợp cho máy đọc (computer
readable) tiềm tàng nguồn kiến thức quan trọng. Học máy nghiên cứu cách
thức để mô hình hóa bài toán cho phép máy tính tự động hiểu, xử lý và học từ
dữ liệu để thực thi nhiệm vụ được giao cũng như cách đánh giá giúp tăng tính
hiệu quả.
Hiện nay, học máy đang là lĩnh vực cho thấy sự tiến bộ trong tiến trình
của trí tuệ nhân tạo (AI) và có khả năng làm cho máy móc trở nên thông minh
hơn. Học máy còn được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chuẩn
đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân
loại các chuỗi ADN, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò
chơi và cử động rô-bốt (robot locomotion).
Những năm gần đây, khi mà khả năng tính toán của các máy tính được
nâng lên một tầm cao mới và lượng dữ liệu khổng lồ được thu thập bởi các
hãng công nghệ lớn, học máy đã tiến thêm một bước dài và một lĩnh vực mới
được ra đời gọi là học sâu (Deep Learning). Nó đã giúp máy tính thực thi
những việc tưởng chừng như không thể vào 10 năm trước: phân loại cả ngàn
vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng
nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng
tác văn hay âm nhạc.[8]
1.1.2. Các thành phần của học máy
Học có giám sát (Supervised learning)
Quá trình học có giám sát thực tế là chuyển dữ liệu đầu vào thành đầu ra
theo mong muốn. Trong các thuật toán học máy đầu vào được gọi là Input và
đầu ra là một kết quả tương ứng được gán “nhãn” trước trong tập dữ liệu huấn
luyện. Điểm cần quan tâm ở đây chính là mọi mẫu dữ liệu trong tập dữ liệu
huấn luyện cần phải biết trước “nhãn” của nó.
Học có giám sát là một kĩ thuật của ngành học máy để xây dựng một
hàm (function) từ dữ liệu huấn luyện. Dữ liệu huấn luyện bao gồm các cặp gồm
đối tượng đầu vào (thường dạng vec-tơ), và đầu ra mong muốn. Đầu ra của một
hàm có thể là một giá trị liên tục (gọi là hồi qui), hay có thể là dự đoán một
nhãn phân loại cho một đối tượng đầu vào (gọi là phân loại). Nhiệm vụ của học
có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp
lệ, sau khi đã xem xét một số ví dụ huấn luyện (nghĩa là, các cặp đầu vào và
đầu ra tương ứng). Để đạt được điều này, chương trình học phải tổng quát hóa
từ các dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo
một cách "hợp lý"
Học có giám sát có thể tạo ra hai loại mô hình. Phổ biến nhất, học có
giám sát tạo ra một mô hình toàn cục (global model) để ánh xạ đối tượng đầu
vào đến đầu ra mong muốn. Tuy nhiên, trong một số trường hợp, việc ánh xạ
được thực hiện dưới dạng một tập các mô hình cục bộ (như trong phương pháp
lập luận theo tình huống (case-based reasoning) hay giải thuật láng giềng gần
nhất).
Học không giám sát (Unsupervised Learning)
Trong thuật toán này, chúng ta không biết trước kết quả hay được gắn
nhãn trước mà chỉ có dữ liệu đầu vào. Nó được sử dụng nhiều trong việc khám
phá cấu trúc và mối quan hệ của dữ liệu. Thuật toán học máy không giám sát sẽ
dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân
nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để
thuận tiện trong việc lưu trữ và tính toán.
Một cách toán học, học máy không giám sát là khi chúng ta chỉ có dữ
liệu vào X mà không biết nhãn Y tương ứng.
Những thuật toán loại này được gọi là học máy không giám sát vì không
giống như học máy có giám sát, chúng ta không biết câu trả lời chính xác cho
mỗi dữ liệu đầu vào. Giống như khi ta học, không có thầy cô giáo nào chỉ cho
ta biết đó là chữ A hay chữ B. Cụm không giám sát được đặt tên theo nghĩa
này.
Các bài toán học máy không giám sát được tiếp tục chia nhỏ thành hai
loại:
Bài toán phân cụm (Clustering)
Một bài toán phân cụm toàn bộ dữ liệu X thành các nhóm nhỏ dựa trên
sự liên quan giữa các dữ liệu trong mỗi nhóm. Ví dụ: phân nhóm khách hàng
dựa trên hành vi mua hàng. Điều này cũng giống như việc ta đưa cho một đứa
trẻ rất nhiều mảnh ghép với các hình thù và màu sắc khác nhau, ví dụ hình tam
giác, hình vuông, hình tròn với màu xanh và đỏ, sau đó yêu cầu trẻ phân chúng
thành từng nhóm. Mặc dù không cho trẻ biết mảnh nào tương ứng với hình nào
hoặc màu nào, nhiều khả năng chúng vẫn có thể phân loại các mảnh ghép theo
màu hoặc hình dạng.
Bài toán ràng buộc (Association)
Là bài toán khi chúng ta muốn khám phá ra một quy luật dựa trên nhiều
dữ liệu cho trước. Ví dụ: những khách hàng nam mua quần áo thường có xu
hướng mua thêm đồng hồ hoặc thắt lưng; những khán giả xem phim Spider
Man thường có xu hướng xem thêm phim Bat Man, dựa vào đó tạo ra một hệ
thống gợi ý khách hàng (Recommendation System), thúc đẩy nhu cầu mua
sắm.
Học bán giám sát (Semi - Supervised learning)
Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một
phần trong chúng được gán nhãn được gọi là học bán giám sát (SemiSupervised Learning). Những bài toán thuộc nhóm này nằm giữa hai nhóm học
có giám sát (Supervised learning) và học không có giám sát (Unsupervised
Learning).
Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản
được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản khoa học,
chính trị) và phần lớn các bức ảnh/văn bản khác chưa được gán nhãn được thu
thập từ Internet. Thực tế cho thấy rất nhiều các bài toán Học máy thuộc vào
nhóm này vì việc thu thập dữ liệu có nhãn tốn rất nhiều thời gian và có chi phí
cao. Rất nhiều loại dữ liệu thậm chí cần phải có chuyên gia mới gán nhãn được
(ảnh y học chẳng hạn). Ngược lại, dữ liệu chưa có nhãn có thể được thu thập
với chi phí thấp từ Internet.
Học củng cố (Reinforcement Learning)
Học củng cố (Reinforcement learning) là các bài toán giúp cho một hệ
thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất
(maximizing the performance). Hiện tại, học củng cố (Reinforcement learning)
chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán
cần xác định nước đi tiếp theo để đạt được điểm số cao nhất.
1.1.3.
Phương thức hoạt động của học máy
Từ một thuật toán để có thể cho ra kết quả như mong muốn từ một tập
dữ liệu ban đầu ta cần một quá trình huấn luyện sử dụng các dữ liệu huấn
luyện. Nó chính là kinh nghiệm mà ta dạy cho máy.
Một tập dữ liệu huấn luyện bao gồm nhiều mẫu huấn luyện. Mỗi mẫu
huấn luyện sẽ là một thể hiện của bài toán (có đầu vào và lời giải). Học máy sẽ
học từ các thể hiện đó để tìm ra lời giải phù hợp với từng đầu vào mới. Nó
giống như là bạn dạy 1 đứa trẻ cách ném 1 quả bóng; bạn sẽ ném quả bóng vài
lần cho đứa trẻ quan sát; Sau đó đứa trẻ sẽ bắt đầu học để tự ném quả bóng
[12].
Các ví dụ trong tập huấn luyện thường có một tập thuộc tính/đặc trưng
cố định. Đó là những thể hiện để mô tả về đối tượng đó.
1.1.4.
Ứng dụng của học máy
Hiện nay học máy đã được ứng dụng mạnh mẽ trong hầu hết các lĩnh
vực như: Nghiên cứu, y tế, xã hội, dự đoán ...v.v. Một số những ứng dụng
thành công và được nhiều người biết đến như:
Khai phá dữ liệu thông qua các ứng dụng trong các mạng xã hội
Học máy đang được sử dụng trong một loạt các ứng dụng ngày nay. Một
trong những ví dụ nổi tiếng nhất là Facebook News Feed. Nguồn cấp tin tức sử
dụng học máy để cá nhân hóa từng nguồn cấp dữ liệu thành viên.
Nếu một thành viên thường xuyên dừng lại để đọc hoặc thích một bài
đăng của một người bạn cụ thể, Facebook News Feed sẽ bắt đầu hiển thị nhiều
hơn về hoạt động của người bạn đó trước đó trong nguồn cấp dữ liệu.
Đằng sau hệ thống ấy, phần mềm sử dụng phân tích thống kê và phân
tích dự đoán để xác định các mẫu trong dữ liệu người dùng và sử dụng các mẫu
đó để điền vào Facebook News Feed. Nếu thành viên không còn dừng lại để
đọc, thích hoặc bình luận trên các bài đăng của bạn bè, dữ liệu mới đó sẽ được
bao gồm trong tập dữ liệu và Facebook News Feed sẽ điều chỉnh tương ứng.
Không chỉ riêng Facebook News Feed, ta có thể bắt gặp những tính năng
tương tự đó qua các mạng xã hội khác như Google, Instagram, ...[12].
Xử lý hình ảnh
Nhận dạng hình ảnh là một trong những ví dụ về học máy và trí tuệ nhân
tạo phổ biến nhất. Về cơ bản, nó là một cách tiếp cận để xác định và phát hiện
các đặc trưng của một đối tượng trong hình ảnh kỹ thuật số. Hơn nữa, kỹ thuật
này có thể được sử dụng để phân tích sâu hơn, chẳng hạn như nhận dạng mẫu,
nhận diện hình khuôn, nhận dạng khuôn mặt, nhận dạng ký tự quang học và
nhiều hơn nữa, ...
Trò chơi điện tử và robot
Trò chơi điện tử (Video games) và robot (Robotics) là lĩnh vực lớn có sự
góp mặt của học máy. Nếu ta có một nhân vật cần di chuyển và tránh các
chướng ngại vật trong game. Học máy có thể học và giải quyết công việc này
thay bạn. Một kỹ thuật phổ biến được áp dụng trong trường hợp này là Học
tăng cường (Reinforcement learning). Ở đó, máy sẽ học tăng cường với mục
tiêu là giải quyết nhiệm vụ trên. Học tăng cường là tiêu cực nếu nó va phải
chướng ngại vật, là tích cực nếu nó chạm tới đích.
Một thành tựu gần đây nhất là cỗ máy Alpha Go của Google DeepMind
đã đánh bại kỳ thủ cờ vậy số 1 thế giới. Trong khi cờ vây là một trò chơi có
không gian trạng thái cực kỳ lớn.
Phân tích văn bản
Phân tích văn bản (Text analysis) là công việc trích xuất hoặc phân loại
thông tin từ văn bản. Các văn bản ở đây có thể là các facebook posts, emails,
các đoạn chat, tài liệu, ... Một số ví dụ phổ biến là:
Lọc spam (Spam filtering), là một trong những ứng dụng phân loại văn
bản được biết đến và sử dụng nhiều nhất. Ở đây, phân loại văn bản là xác định
- Xem thêm -