Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Chuyên ngành kinh tế Ứng dụng mô hình học máy naivebayes trong môi trường spark cho bài toán dự báo k...

Tài liệu Ứng dụng mô hình học máy naivebayes trong 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

.DOCX
88
1
141

Mô tả:

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 -

Tài liệu liên quan