Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
7,97 MB
Nội dung
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN HỌC MÁY NÂNG CAO ĐỀ TI: TÌM HIỂU KỸ THUẬT XÁC ĐỊNH BAO LỒI V XÂY DỰNG CHƯƠNG TRÌNH MƠ TẢ Sinh viên thực : PHẠM QUANG MINH PHẠM MINH TRÍ H THỊ GIANG Giảng viên hướng dẫn : ĐO NAM ANH Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D14CNPM8 Khóa : 2019-2024 Hà Nội, tháng năm 2023 PHIẾU CHẤM ĐIỂM STT Họ tên Phạm Quang Minh 19810310638 Phạm Minh Trí 19810310640 Hà Thị Giang - Họ tên giảng viên Điểm Chữ ký Chữ ký Ghi Giảng viên chấm 1: Giảng viên chấm 2: MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG : TÌM HIỂU VỀ MACHINE LEARNING 1.1 Khái niệm Machine Learning 1.2 Lịch sử hình thành Machine learning 1.4 Một số giải pháp Machine learning 1.4.1 Machine learning giám sát 1.4.2.Machine learning không giám sát 1.4.3.Machine learning bán giám sát 1.4.4 Machine learning tăng cường 1.5 Ứng dụng Machine learning 1.5.1 Nhận diện hình ảnh/khn mặt 1.5.2 Tự động nhận diện giọng nói 1.5.3.Lĩnh vực tài 1.5.4 Tiếp thị bán hàng 1.5.6.Ứng dụng ngành khoa học, sản xuất 1.5.7.Một số toán ứng dụng học máy 1.5.8.Các thuật tốn học máy 1.5.8.1.Phân nhóm dựa phương thức học 1.5.8.2.Phân nhóm dựa chức 1.5.8.3.Một số khái niệm 1.6 Những câu hỏi thường gặp machine learning 1.6.1 Machine learning dùng để làm gì? 1.6.2.Các bước hoạt động machine learning gì? 1.6.3.Machine learning phù hợp với ngôn ngữ nào? 5 7 8 8 9 10 11 12 12 12 13 14 15 15 15 15 CHƯƠNG : KỸ THUẬT XÁC ĐỊNH BAO LỒI V CÁC THUẬT TOÁN TRONG HỌC MÁY 17 2.Kỹ thuật xác định bao lồi 17 2.1.Khái niệm 17 2.2.Giải thích trực quan bao lồi mặt phẳng 17 2.3.Thuật toán tìm bao lồi mặt phẳng 20 2.3.1.Thuật tốn Jarvis: 20 2.3.2.Thuật toán Graham 24 2.3.3.Một số ứng dụng 30 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH 3.1 Mã nguồn 3.2 Kết demo 33 33 35 KẾT LUẬN 37 LỜI MỞ ĐẦU Trong lời báo cáo “Tìm hiểu kỹ thuật xác định bao lồi xây dựng chương trình mơ tả ” nhóm em muốn gửi lời cảm ơn biết ơn chân thành tới tất người hỗ trợ, giúp đỡ em kiến thức tinh thần trình thực làm Em xin chân thành gửi lời cảm ơn tới thầy, cô giáo Trường Đại Học Điện Lực nói chung thầy giáo Khoa Cơng nghệ thơng tin nói riêng tận tình giảng dạy, truyền đạt cho em kiến thức kinh nghiệm quý báu suốt trình học tập Đặc biệt, em xin gửi lời cảm ơn đến Giảng viên hướng dẫn Đào Nam Anh, giảng viên Khoa Công nghệ thông tin - Trường Đại Học Điện Lực Thầy tận tình theo sát giúp đỡ, trực tiếp bảo, hướng dẫn suốt trình nghiên cứu học tập em Trong thời gian học tập với thầy, em tiếp thu thêm nhiều kiến thức bổ ích mà cịn học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu Đây điều cần thiết cho chúng em trình học tập cơng tác sau Do thời gian thực có hạn kiến thức nhiều hạn chế nên làm nhóm chúng em chắn khơng tránh khỏi thiếu sót định Chúng em mong nhận ý kiến đóng góp thầy, giáo bạn để nhóm em có thêm kinh nghiệm tiếp tục hồn thiện đồ án Chúng em xin chân thành cảm ơn ! CHƯƠNG : TÌM HIỂU VỀ MACHINE LEARNING 1.1 Khái niệm Machine Learning ● Machine learning có khởi nguồn từ lĩnh vực học máy trí tuệ nhân tạo (AI) Đây giải pháp có khả khiến ứng dụng, phần mềm trở nên thông minh mà không cần thực mã hóa Thơng qua liệu đầu vào, Machine learning dự đốn giá trị đầu ● Nhiệm vụ học máy tập trung phát triển chương trình máy tính truy cập liệu sử dụng chúng để tự học Mục tiêu hoạt động giúp máy tính tự hoạt động mà không cần hỗ trợ người ● Machine learning xem phần quan trọng thuộc lĩnh vực khoa học liệu Chúng sử dụng phương pháp thống kê, thuật toán để phân loại, dự đốn khám phá thơng tin quan trọng liệu Nhờ chuỗi thông tin này, người dùng nhanh chóng đưa định hoạt động kinh doanh Vì vậy, Machine learning giải pháp lý tưởng giúp doanh nghiệp tác động đến số tăng trưởng doanh thu 1.2 Lịch sử hình thành Machine learning ● Machine learning thuật ngữ đặt Arthur Samuel vào năm 1959 Samuel IBMer người Mỹ kiêm nhà tiên phong lĩnh vực trí tuệ nhân tạo máy tính chơi game Năm 1960, thuật ngữ học máy phổ biến thông qua sách Nilsson, nội dung đề cập đến việc phân loại máy học ● Machine learning đại bao gồm hai mục tiêu chính: phân loại liệu thơng qua mơ hình phát triển đưa dự đoán kết tương lai dựa mơ hình 1.3 Vì Machine learning lại quan trọng? ● Machine learning mang lại nhìn trực quan hành vi khách hàng mơ hình hoạt động kinh doanh Chúng giúp doanh nghiệp xác định xu hướng tương lai đưa định nhanh chóng Ngồi ra, Machine learning hỗ trợ phát triển sản phẩm ● Hiện nay, tảng lớn như: Google, Facebook, Uber,…, ứng dụng học máy làm trọng tâm hoạt động họ Đối với doanh nghiệp, Machine learning nhân tố thúc đẩy tính cạnh tranh hiệu 1.4 Một số giải pháp Machine learning ● Machine learning giải pháp ứng dụng thơng qua loại thuật tốn để phân tích dự đoán Dựa thuật toán này, Machine learning chia làm bốn loại: Machine learning giám sát, Machine learning không giám sát, Machine learning bán giám sát Machine learning tăng cường 1.4.1 Machine learning giám sát ● Machine learning giám sát sử dụng tập liệu gắn nhãn để phân loại liệu dự đốn kết xác Phương pháp điều chỉnh trọng lượng liệu đưa vào mơ hình chúng lắp cách thích hợp ● Giải pháp Machine learning có giám sát giúp doanh nghiệp xử lý vấn đề thực quy mô lớn, việc phân loại thư rác thư mục riêng Những thuật toán sử dụng học máy giám sát là: mạng nơ-ron, hồi quy tuyến tính, hồi quy logistic, máy vectơ hỗ trợ,… 1.4.2.Machine learning không giám sát ● Phương pháp sử dụng thuật toán Machine learning để phân tích tập liệu khơng gắn nhãn Những thuật tốn có khả phát nhóm liệu ẩn mà khơng cần hỗ trợ người Đây giải pháp lý tưởng để: phân tích liệu, phân khúc khách hàng, nhận dạng hình ảnh, chiến lược bán chéo, ● Bên cạnh đó, Machine learning khơng giám sát cịn giảm số lượng tính mơ hình dựa việc giảm kích thước Chúng có hai cách tiếp cận phổ biến là: phân tích thành phần phân tích giá trị đơn lẻ Một số thuật toán khác phương pháp là: phân cụm k-mean, phân cụm xác suất, mạng nơron… 1.4.3.Machine learning bán giám sát ● Đây kết hợp hài hòa học máy giám sát không giám sát Machine learning bán giám sát sử dụng liệu gán nhãn không gắn nhãn để đào tạo Phương pháp giúp giải vấn đề khơng có đủ liệu gắn nhãn để đào tạo thuật toán học máy giám sát 1.4.4 Machine learning tăng cường ● Machine learning tăng cường phương pháp học tập dựa tương tác với mơi trường Chúng có khả thực mục tiêu định lái xe chơi trò chơi với đối thủ Phương pháp sử dụng để đào tạo máy tính hồn thành quy trình gồm nhiều bước 1.5 Ứng dụng Machine learning 1.5.1 Nhận diện hình ảnh/khn mặt ● Đây xem ứng dụng phổ biến Machine learning Hiện nay, có nhiều trường hợp cần sử dụng nhận diện khuôn mặt, chủ yếu phục vụ cho nhu cầu bảo mật như: điều tra, xác định tội phạm, hỗ trợ pháp y, mở khóa điện thoại,… 1.5.2 Tự động nhận diện giọng nói ● Tự động nhận diện giọng nói ứng dụng để chuyển giọng nói thành văn kỹ thuật số Machine learning hỗ trợ việc xác định danh tính người dùng dựa giọng nói họ Ngồi ra, chúng cịn giúp người dùng thực thao tác đơn giản thông qua giọng nói ● Những mẫu giọng nói từ vựng đưa vào hệ thống để đào tạo mơ hình hoạt động Hiện tại, hệ thống nhận diện giọng nói ứng dụng lĩnh vực sau: ○ Robot công nghiệp ○ Quốc phịng hàng khơng ○ Cơng nghiệp viễn thông ○ Công nghệ Thông tin Điện tử Tiêu dùng ○ Kiểm sốt an ninh, tự động hóa 1.5.3.Lĩnh vực tài ● Trong lĩnh vực tài – ngân hàng, giải pháp học máy ứng dụng phổ biến Những thuật tốn Machine learning có khả giám sát đánh giá hành vi người dùng Việc giúp trình phát vấn đề gian lận không minh bạch dễ dàng Bên cạnh đó, người ta cịn ứng dụng học máy để kiểm tra hoạt động rửa tiền phi pháp ● Thông qua hỗ trợ thuật toán, học máy giúp đưa định giao dịch tốt cách phân tích hàng nghìn liệu lúc Ngồi ra, giải pháp hiệu việc tính điểm tín dụng bảo lãnh phát hành 1.5.4 Tiếp thị bán hàng ● Machine learning sở hữu thuật toán xác định khách hàng tiềm dựa trên: lượt truy cập trang web, lượt nhấp chuột, lượt tải xuống, email mở,… Thông qua liệu thu thập được, doanh nghiệp định hình chiến lược tiếp thị hiệu ● Khơng thế, học máy cịn hỗ trợ việc phân tích cảm xúc người tiêu dùng để đánh giá phản ứng họ sản phẩm Ngoài ra, chatbots ngày cải tiến có trợ giúp học máy 1.5.5.Chăm sóc sức khỏe ● Một ứng dụng phổ biến Machine learning chẩn đoán bệnh lý, chí bệnh nguy hiểm Giải pháp sử dụng trình xạ trị cho bệnh nhân ung thư ● Machine learning xuất lĩnh vực y học, bào chế thuốc Những dự đoán dựa học máy giúp thử nghiệm lâm sàng hiệu Ngồi ra, Machine learning có khả đưa dự đoán bùng phát Nhiều nhà khoa học giới sử dụng công nghệ để dự đoán bùng phát dịch bệnh ● Qua viết trên, bạn thấy khơng phải ngẫu nhiên mà Machine learning lại nhận quan tâm năm gần Giải pháp cơng nghệ mang lại tính tuyệt vời, hỗ trợ người bước đến tương lai đại tiến 1.5.6.Ứng dụng ngành khoa học, sản xuất ● Học máy có ứng dụng rộng khắp ngành khoa học/sản xuất, đặc biệt ngành cần phân tích khối lượng liệu khổng lồ Một số ứng dụng thường thấy: ○ Xử lý ngôn ngữ tự nhiên (Natural Language Processing): xử lý văn bản, giao tiếp người – máy, … ○ Nhận dạng (Pattern Recognition): nhận dạng tiếng nói, chữ viết tay,vân tay, thị giác máy (Computer Vision) … ○ Tìm kiếm (Search Engine) ○ Chẩn đốn y tế: phân tích ảnh X-quang, hệ chuyên gia chẩn đoán tự động ○ Tin sinh học: phân loại chuỗi gene, trình hình thành gene/protein ○ Vật lý: phân tích ảnh thiên văn, tác động hạt … ○ Phát gian lận tài (financial fraud): gian lận thẻ tỉn dụng ○ Phân tích thị trường chứng khốn (stock market analysis) ○ Chơi trò chơi: tự động chơi cờ, hành động nhân vật ảo ■ Chương trình tìm điểm ngồi bên trái cách xếp điểm tọa độ x Điểm bên trái tập hợp điểm l = (0,0) Ta chèn điểm (0,0) vào đỉnh bao lồi hiển thị vòng tròn màu xanh hình bên ■ Tiếp theo, ta tìm điểm ngồi bên trái từ điểm l=(0,0) Quy trình bước tìm điểm ngồi bên trái từ điểm l=(0,0) : ● Ta chọn điểm theo điểm l gọi q Đặt điểm q (3,3) (Bạn chọn điểm nào, thường thường ta chọn điểm l mảng điểm) ● Đặt tất điểm khác ngoại trừ điểm l q i Bây ta kiểm tra xem dãy điểm (l,i,q) có quay sang phải hay khơng Nếu quay sang phải, ta thay điểm q i lặp lại trình giống với điểm cịn lại ● Đặt i = (7,0) Dãy (0,0), (7,0), (3,3) quay sang trái Bởi ta quan tâm đến việc quay sang phải, ta khơng làm trường hợp đơn giản cần di chuyển tiếp ● Đặt tiếp i = (3,1) Dãy (0,0), (3,1), (3,3) quay sang trái tiếp tục di chuyển mà khơng làm ● Đặt tiếp i = (5,2) Dãy (0,0), (5,2), (3,3) lại quay sang trái tiếp tục di chuyển ● Đặt tiếp i = (5,5) Dãy (0,0), (5,2), (3,3) thẳng hàng Trong trường hợp thẳng hàng, ta thay q với i khoảng cách l với i lớn khoảng cách q l Trong trường hợp khoảng cách (0,0) (5, 5) lớn khoảng cách (0,0) (3,3) ta thay q với điểm (5,5) ● Đặt tiếp i = (1,4) Dãy (0,0), (1,4), (5,5) quay sang phải Ta thay q điểm (1,4) ● Cuối ta chọn với điểm i (9,6) Dãy (0,0), (9,6), (1,4) quay sang trái Vì ta khơng làm Ta qua tất điểm điểm q = (1,4) điểm bên trái ■ Ta thêm điểm (1,4) vào bao lồi ■ Tiếp theo, ta tìm điểm ngồi bên trái từ điểm (1,4) theo bước từ đến đề cập Nếu làm theo tất bước, điểm bên trái (9,6) ■ Làm theo bước tương tự, điểm bên trái từ (9,6) điểm (7,0) ■ Cuối từ điểm (7,0) ta tính điểm bên trái Điểm bên trái từ điểm (7,0) thành điểm (0,0) Bởi điểm (0,0) thuộc bao lồi từ trước, thuật toán dừng lại ● Độ phức tạp ○ Thuật toán sử dụng O(n) thời gian cho đỉnh bao lồi Nếu có h đỉnh bao lồi, tổng độ phức tạp thời gian thuật tốn O(nh) Vì h số lượng đầu thuật toán nên thuật toán gọi độ nhạy cảm đầu thuật tốn độ phức tạp dựa vào số lượng đầu 2.3.2.Thuật toán Graham ● Giới thiệu ○ Graham scan thuật tốn để tính toán bao lồi tập hợp điểm cho thời gian O(nlogn)O(nlogn) Đầu tiên thuật toán xếp tập hợp điểm theo góc cực chúng quét điểm để tìm đỉnh bao lồi ● Thuật toán ○ Từng bước hoạt động Graham Scan tập hợp điểm P : ■ Tìm điểm (p0) có tọa độ y nhỏ Trong trường hợp hịa, chọn điểm có tọa độ x nhỏ Bước O(n) thời gian ■ Sắp xếp điểm dựa góc cực, tức góc tạo đường thẳng với trục x Trong triển khai, khơng tính góc, thay vào đó, tính hướng tương đối hai điểm để tìm điểm tạo góc lớn Điều giải thích với giúp đỡ số hiển thị đây: ○ Để biết đường thẳng P0P1 hay đường thẳng P0P3 tạo thành góc lớn với trục x, ta tính tích chéo vectơ vectơ Nếu tích chéo dương, điều có nghĩa vectơ theo chiều kim đồng hồ từ vectơ trục x Điều góc tạo vectơ lớn Chúng ta sử dụng thuật toán xếp có độ phức tạp O(nlogn) ■ Sau xếp, ta kiểm tra điểm thẳng hàng Nếu tìm thấy điểm thẳng hàng nào, giữ điểm xa từ P0 loại bỏ tất điểm khác Bước O(n) thời gian ■ Hai điểm danh sách xếp nằm bao lồi Trong hình trên, điểm P0 P1 đỉnh bao lồi Ta trì cấu trúc liệu ngăn xếp để theo dõi đỉnh thân lồi Chúng đẩy hai điểm điểm danh sách (điểm P0,P1 P3 hình trên) vào ngăn xếp ■ Bây ta kiểm tra xem điểm danh sách quay trái hay phải từ hai điểm ngăn xếp Nếu quay sang trái, chúng tơi đẩy mục vào ngăn xếp Nếu quay phải, loại bỏ mục ngăn xếp lặp lại quy trình cho mục lại Bước O(n) thời gian ○ Nếu thực bước tập hợp điểm, nhận xác bao lồi ● Chương trình ● Execution Trace ○ Chương trình execution trace cho tập hợp điểm đưa trình bày phần (Màu xanh có nghĩa điểm nằm bao lồi màu đỏ có nghĩa điểm khơng thể nằm bao lồi): ○ Đầu tiên chương trình tìm điểm có tọa độ y nhỏ Có hai điểm cho điều ((0,0)(0,0) (0,7))(0,7)) Vì hịa, nên chương trình chọn có tọa độ x nhỏ (0,0)(0,0) Điểm đảm bảo nằm bao lồi ○ Chương trình xếp điểm dựa góc cực hình bên ○ Các điểm xếp [(0,0),(7,0),(3,1),(5,2),(9,6),(3,3),(5,5),(1, 4)] Tiếp theo, tìm kiếm điểm thẳng hàng giữ điểm xa Ở điểm (3,3) (5,5) thẳng hàng với (0,0) Điểm (5,5) giữ nguyên (3,3) bị loại bỏ (5,5) cách xa (0,0) ○ Tiếp theo, chương trình đẩy ba điểm từ danh sách xếp vào ngăn xếp Hai điểm đầu nằm bao lồi ○ Tiếp theo, kiểm tra xem điểm danh sách quay phải hay trái từ hai điểm ngăn xếp Trong trường hợp này, kiểm tra xem điểm (5,2) quay trái hay phải từ điểm (7,0) (3,1) Vì quay phải, điểm (3,1) bật khỏi ngăn xếp khơng nằm bao lồi ○ Tương tự, kiểm tra xem điểm danh sách (5,2) quay trái hay phải từ điểm (0,0) (7,0) Nó quay trái, điểm đẩy vào ngăn xếp ○ Quá trình tương tự diễn Điểm (9,6) Nó quay trái, ta loại bỏ điểm (5,2) ○ Tiếp theo, Điểm (9,6) đẩy vào ngăn xếp ○ Theo cách tương tự, (5,5) đẩy vào ngăn xếp ○ Tiếp theo, điểm (1,4) thẳng hàng với điểm (9,6) (5,5) Trong trường hợp cộng tuyến, loại bỏ đỉnh ngăn xếp Điểm (5,5) lấy từ ngăn xếp ○ Tiếp theo, điểm (1,4) đẩy vào ngăn xếp ○ Vì điểm (1,4) điểm cuối danh sách nên thuật toán kết thúc Các điểm ngăn xếp bao lồi ● Độ phức tạp ○ Độ phức tạp chung thuật toán O(nlogn) 2.3.3 Một số ứng dụng ● Bao lồi ứng dụng nhiều lĩnh vực khác nhau: ○ Toán học ■ Một trường hợp sử dụng lớn cho bao lồi tốn học Ví dụ, lĩnh vực phân tích quang phổ, phạm vi số ma trận chuẩn bao lồi giá trị riêng Nó sử dụng để hiển thị tính tốn liên quan đến khơng gian hyperbol Ví dụ, chúng sử dụng tính tốn đa tạp hyperbol cấu trúc liên kết chiều Một cách sử dụng phổ biến khác cho vỏ lồi xây dựng đường cong Bezier, nơi biết nằm bao lồi điểm kiểm soát ○ Vật lý lượng tử ■ Trong vật lý lượng tử, không gian trạng thái (tập hợp tất cấu hình có hệ thống) bao lồi với điểm cực trị toán tử bán xác định dương với điểm bên trạng thái hỗn hợp (tương ứng trạng thái túy trạng thái hỗn hợp) Định lý Schrodinger-HJW phát biểu trạng thái hỗn hợp viết dạng tổ hợp lồi trạng thái túy theo nhiều cách ○ Computer vision ■ Bao lồi sử dụng rộng rãi thị giác máy tính để tính tốn khơng gian/diện tích gần mà đối tượng chiếm giữ Điều chủ yếu hữu ích ứng dụng ô tô tự lái chẳng hạn thân tàu lồi tính tốn với vật thể xung quanh xe, thuật tốn kiểm tra giao điểm thân tàu để tránh va chạm Điều giúp máy tính tính tốn dễ dàng nhiều so với việc sử dụng lượng điểm đậm đặc cho đối tượng Do đó, cách mở rộng, điều áp dụng lập kế hoạch chuyển động rô-bốt bổ sung theo dõi tư thế, chẳng hạn thấy hình ảnh bên CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH 3.1 Mã nguồn ● Xác định hướng rẽ segment: ● Sắp xếp điểm theo tọa độ x tăng dần, xếp theo tọa độ y ● Xác định bao lồi cho tập điểm đầu vào ● Nối đỉnh bao lồi với ● Tạo cạnh (edge) hai điểm 3.2 Kết demo KẾT LUẬN Với kiến thức tảng học trường nỗ lực mình, chúng em hồn thành đề tài “Tìm hiểu kỹ thuật xác định bao lồi xây dựng chương trình mơ tả” Mặc dù cố gắng đầu tư nhiều thời gian có hạn, kiến thức non yếu nên phần mềm chắn nhiều hạn chế Chúng em mong nhận thơng cảm góp ý thầy, giáo để đề tài chúng em hoàn thiện Một lần chúng em xin chân thành cảm ơn thầy Đào Nam Anh tận tình giúp đỡ chúng em suốt thời gian thực đề tài