Untitled ĐẠI HỌC UEH TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN HỌC PHẦN TRÍ TUỆ NHÂN TẠO Đề tài “ỨNG DỤNG HẸN HÒ – GHÉP ĐÔI NGẪU NHIÊN H[.]
Trang 1ĐẠI HỌC UEH TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH
BỘ MÔN CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN HỌC PHẦN
TRÍ TUỆ NHÂN TẠO
Đề tài: “ỨNG DỤNG HẸN HÒ – GHÉP ĐÔI NGẪU
NHIÊN HOẶC CÓ CHỌN LỌC”
GVHD: Thầy Huỳnh Văn Đức
Nhóm thực hiện: Nhóm 5
Họ tên sinh viên:
Phạm Lý Thái Ngân (Nhóm trưởng) Nguyễn Thị Kiều My
Châu Hoàng Khiêm Huỳnh Hữu Phúc
Lê Bảo Quốc
TP Hồ Chí Minh, Tháng 05/2022
Trang 2MỤC LỤC
Lời mở đầu 4
BẢNG PHÂN CÔNG CÁC THÀNH VIÊN 5
TỔNG QUAN 6
1 Tình huống sử dụng 6
2 Yêu cầu hê ̣ thống/ Use case activity diagram 6
3 Xác định đầu vào và các bài toán cần giải 6
NỘI DUNG 7
1 PHẠM LÝ THÁI NGÂN 7
1.1 Bài toán 7
1.2 Ví dụ 7
1.3 Thư viện 7
1.4 Mô hình 8
1.5 Huấn luyện 8
1.6 Trực quan dữ liệu và mô hình 8
1.7 Bình luận 8
2 CHÂU HOÀNG KHIÊM 9
2.1 Giới thiệu 9
2.2 Bài toán 9
2.3 Ví dụ 9
2.4 Thư viện 10
2.5 Huấn luyện 10
2.6 Trực quan dữ liệu và mô hình 10
2.7 Bình luận 13
3 NGUYỄN THỊ KIỀU MY 14
Trang 34.1 Bài toán 17
4.2 Ví dụ 17
4.3 Thư viện 17
4.4 Mô hình 17
4.5 Huấn luyện 18
4.6 Trực quan dữ liệu và mô hình 18
4.7 Bình luận 19
5 HUỲNH HỮU PHÚC 20
5.1 Giới thiê ̣u: 20
5.2 Bài toán / ví dụ: 20
5.3 Thư viê ̣n: 20
5.4 Mô hình: 21
5.5 Huấn luyê ̣n: 21
5.6 Trực quan dữ liê ̣u và mô hình: 22
5.7 Bình luâ ̣n: 24
BÌNH LUẬN NHÓM 25
KẾT LUẬN 26
Trang 4Lời mở đầu.
“
“Chúng em xin chân thành cảm ơn thầy Huỳnh Văn Đức đã cung cấp chochúng em những kiến thức cần thiết cũng như tinh thần học tập độc lập và sáng tạotrong môn học này Với sự giúp đỡ tận tình của thầy chúng em đã hoàn thành được đềtài.”
“Trong quá trình thực hiện đề tài, mặc dù đã cố gắng hết sức nhưng chúng emcòn thiếu nhiều kinh nghiệm, chưa đi sâu và nắm chắc chắn các kiến thức về lĩnh vựcnày, nên chúng em không thể tránh khỏi những thiếu sót vì vậy, chúng em mong nhậnđược sự thông cảm, chỉ bảo, chỉnh sửa, bổ sung và giúp đỡ của thầy.”
Trang 5BẢNG PHÂN CÔNG CÁC THÀNH VIÊNBài toán Người thực hiện Mức độ hoàn thành
Trang 6TỔNG QUAN
1 Tình huống sử dụng
Ứng dụng hẹn hò - ghép đôi ngẫu nhiên hoặc có chọn lọc là hê ̣ thống giúp chúng
ta có những cơ hô ̣i được giao tiếp với những người bạn mới Sau khi đăng ký, ngườidùng câ ̣p nhâ ̣t thông tin chung của mình, để những người dùng khác dễ dàng kết nốiđược với chúng ta thông qua những chọn lọc của người dùng đưa cho hệ thống, khácvới viê ̣c đưa thông tin người dùng thông qua định vị thì hê ̣ thống này sẽ dựa trên nhưnhững thông tin của người dùng cung cấp từ đó ứng dụng các công nghê ̣ AI xử lý ngônngữ tự nhiên (NLP), hồi quy linear hoă ̣c logistics, association rule, mô hình k-means
để có thể hiê ̣n những người phù hợp
2 Yêu cầu hê ̣ thống/ Use case activity diagram
Hê ̣ thống sẽ xử lý được thông tin và từ đó đưa ra thông tin (ảnh, tiểu sử, tuổi, sơthích, lối sống, công viê ̣c, công ty, trường học, nơi sống, giới tính, các app liên kết, )phù hợp với những đối tượng được kết nối với nhau Điều đó bắt buô ̣c hê ̣ thống phải
xử lý được ngôn ngữ tự nhiên, khả năng phân tích và học thói quen match hay khôngmatch của người dùng
3 Xác định đầu vào và các bài toán cần giải
Thông tin cá nhân
Hình ảnh cá nhân
Khi đưa dữ liê ̣u vào hê ̣ thống AI sử dụng (xử lý ngôn tự nhiên để phân tích text và văn bản, hồi quy Logistic phân tích text và hình ảnh từ đó dự đoán dự liễu đầu ra
Trang 7Xử lý ngôn ngữ chính là xử lý thông tin khi đầu vào là “dữ liệu ngôn ngữ” (dữ liệu cầnbiến đổi), tức dữ liệu “văn bản” hay “tiếng nói” Các dữ liệu liên quan đến ngôn ngữviết (văn bản) và nói (tiếng nói) đang dần trơ nên kiểu dữ liệu chính con người có vàlưu trữ dưới dạng điện tử Đặc điểm chính của các kiểu dữ liệu này là không có cấutrúc hoặc nửa cấu trúc và chúng không thể lưu trữ trong các khuôn dạng cố định nhưcác bảng biểu.
Để máy tính có thể hiểu và thực thi một chương trình được viết bằng ngôn ngữcấp cao, ta cần phải có một trình biên dịch thực hiện việc chuyển đổi chương trình đósang chương trình ơ dạng ngôn ngữ đích
Một số ứng dụng của NLP: Nhận dạng ngôn ngữ, phát hiện lỗi chính tả, lọcthông tin, truy xuất thông tin, trích chọn thông tin, chatbot,
CountVectorizer nằm trong thư viện sklearn được sử dụng để chuyển đổi một bộ sưu tập các tài liệu văn bản thành một vector có số lượng thuật ngữ thông báo
Trang 8doc1, doc2, doc3: là kho dữ liệu để tính tần suất
1.6 Trực quan dữ liệu và mô hình
Hàm DataFrame để lấy ra vị trí của các từ trong khoa văn bản
Bảng tần suất xuất hiện của các từ trong kho văn bản
1.7 Bình luận
CountVectorizer: thực hiện mã hóa để phân tách các câu thành tập hợp
các mã thông báo để tiến hành tính tần suất xuất hiện của các từ ngữ
Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một
nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ-công cụ hoàn hảo nhất của tư duy và giao tiếp Trong quá trình nghiên cứu, tìm hiểu và hoàn thành đồ án em đã thu nhận được thêm những kiến thức và em cũng nhận thấy xử lý ngôn ngữ tự nhiên là một lĩnh vực nghiên cứu rộng lớn, còn nhiều điều cần phải khám phá.
1.8.
Trang 92 CHÂU HOÀNG KHIÊM
2.1 Giới thiệu
Regression
● Thuật ngữ hồi quy được sử dụng khi bạn cố gắng tìm mối quan hệ giữa cácbiến
● Trong Machine Learning và statistical modeling, mối quan hệ đó được sử dụng
để dự đoán kết quả của các sự kiện trong tương lai
Linear Regression (hồi quy tuyến tính)
Trong thuật ngữ của Machine Learning, Hồi quy tuyến tính (LR) có nghĩa chỉ đơn giản
là tìm ra dòng phù hợp nhất giải thích sự thay đổi giữa các đối tượng phụ thuộc và độclập hoặc chúng ta có thể nói nó mô tả mối quan hệ tuyến tính giữa các đối tượng độclập và phụ thuộc và trong hồi quy tuyến tính, thuật toán dự đoán các tính năng liên tục(ví dụ: Lương, Giá) , thay vì xử lý các tính năng phân loại (ví dụ: mèo, chó)
● Hồi quy tuyến tính sử dụng mối quan hệ giữa các điểm dữ liệu để vẽ một đườngthẳng xuyên qua tất cả chúng
● Dòng này có thể được sử dụng để dự đoán các giá trị trong tương lai
2.2 Bài toán
Machine Learning - Linear regression
2.3 Ví dụ
Điều chỉnh tốc độ quạt tản nhiệt CPU theo độ nóng của laptop
Bảng dưới đây thể hiện tốc độ quạt của CPU dựa theo nhiệt độ của laptop
Nhiệt độ của CPU ( C) ⁰ Tốc độ quạt (RPM)
Trang 10● Thư viện numpy cho đại số tuyết tính.
● Thư viện matplot dùng để vẽ hình, trực quan hóa dữ liệu
2.5 Huấn luyện
Diễn giả:
● X là nhiệt độ của CPU
● Y là tốc độ quạt tại nhiệt độ X
Cho dữ liệu train vào 2 mảng X và Y
2.6 Trực quan dữ liệu và mô hình
Trang 11● Nhận thấy các chấm đỏ gần như thẳng hơn nên ta có thể cho rằng mô hình nàysẽ cho ra một kết quả tốt
Tiếp theo ta sẽ tính toán dựa theo công thức:
x = w1*y + w0
Trong đó:
x: là tốc độ quạty: là nhiệt độ của CPUTrước khi thực hiện, ta phải xây dựng Xbar:
Tính các hệ số w0 và w1 dựa vào công thức:
Trang 12Vẽ mô hình:
Trang 132.7 Bình luận
● Linear Regression có thể giúp ta tìm ra các quy luật của các loại dữ liệu rời rạc
từ đó chúng ta có thể đưa ra các dự đoán dựa trên quy luật đó
● Linear Regression rất nhạy cảm với nhiễu, vì vậy trước khi thực hiện linear
Regression thì cần phải loại bỏ nhiễu trước Bước này gọi là tiền xử lý dữ liệu
Link code trên Colab:
https://colab.research.google.com/drive/11UabbfmWQ5B3QRnkkrxHaNETXUdi6Mw-?usp=sharing
2.8.
Trang 143 NGUYỄN THỊ KIỀU MY
3.1 Giới thiệu
Association rules (luật kết hợp)
- Luật kết hợp: Mối quan hệ kết hợp giữa các thuộc tính trong cơ sơ dữ liệu.
Association rules một phương pháp học máy dựa trên quy tắc để khám phá cácmối quan hệ thú vị giữa các biến trong cơ sơ dữ liệu lớn Nó nhằm mục đíchxác định các quy tắc mạnh mẽ được phát hiện trong cơ sơ dữ liệu bằng cách sửdụng một số thước đo mức độ thú vị Trong bất kỳ giao dịch nhất định nào vớinhiều mặt hàng khác nhau, các quy tắc kết hợp có nghĩa là khám phá các quytắc xác định cách thức hoặc lý do tại sao một số mặt hàng được kết nối vớinhau
3.2 Bài toán
Association rules in data mining (thuật toán Apriori) - association rules
Ví dụ minh họa luật kết hợp
- Tìm các quy tắc mô tả sự liên kết giữa các sản phẩm khác nhau với 7500 giaodịch trong suốt một tuần tại một cửa hàng bán lẻ của Pháp
3.3 Thư viện
Diễn giải:
- Numpy: cho đại số tuyến tính, hỗ trợ tính toán các mảng nhiều chiều.
- matplotlib.pyplot: cho việc vẽ hình.
Trang 15Diễn giả:
- Hàm read_csv được tạo để đọc dữ liệu có trên máy tính.
- head() để xem dữ liệu trông như thế nào.
3.5 Trực quan dữ liệu và mô hình
Chuyển đổi khung dữ liệu panda thành một danh sách
Bước tiếp theo là áp dụng thuật toán Apriori trên tập dữ liệu Để làm như vậy, chúng ta
có thể sử dụng apriori lớp đã nhập từ thư viện apyori
Các apriori lớp yêu cầu một số giá trị tham số để hoạt động:
- Tham số đầu tiên là danh sách danh sách mà bạn muốn trích xuất các quy tắc
- Tham số thứ hai là min_support
- min_confidencelà những quy tắc có độ tin cậy
- min_lift chỉ định giá trị tăng tối thiểu
- cuối cùng min_length chỉ định số lượng mục tối thiểu
Giả sử rằng quy tắc chỉ cho những mặt hàng được mua ít nhất 5 lần một ngày hoặc 7 x
5 = 35 lần trong một tuần Hỗ trợ cho các mục đó có thể được tính là 35/7500 =0,0045 Độ tin cậy tối thiểu cho các quy tắc là 20% hoặc 0,2 Tương tự, chỉ định giá trịcho mức tăng là 3 và cuối cùng là min_length là 2
Xem kết quả:
3.6 Bình luận
Các thuật toán khai thác quy tắc kết hợp chẳng hạn như Apriori rất hữu ích để tìmkiếm các liên kết đơn giản giữa các mục dữ liệu Chúng dễ thực hiện và có khả nănggiải thích cao Tuy nhiên, đối với những thông tin chi tiết nâng cao hơn, chẳng hạn như
Trang 16những thông tin được sử dụng bơi Google hoặc Amazon, v.v., nên sử dụng các thuậttoán phức tạp Tuy nhiên, có thể thấy rằng phương pháp này là một cách rất đơn giản
để có được các liên kết cơ bản nếu đó là tất cả các nhu cầu trong trường hợp sử dụng
Trang 174 LÊ BẢO QUỐC
4.1 Bài toán
K-means (Phân cụm K-means): là một giải thuật học máy thuộc lớp giải thuật học không giám sát Ý tương chung của K-Means dựa trên việc xác định các tâm cụm và phân các ví dụ vào cụm có tâm gần nó nhất.
4.2 Ví dụ
Một công ty muốn tạo ra những chính sách ưu đãi cho những nhóm khách hàng khác nhau dựa trên sự tương tác giữa mỗi khách hàng với công ty đó (số năm là khách hàng; số tiền khách hàng đã chi trả cho công ty; độ tuổi; giới tính; thành phố; nghề nghiệp; …) Giả sử công ty đó có rất nhiều dữ liệu của rất nhiều khách hàng nhưng chưa có cách nào chia toàn bộ khách hàng đó thành một số nhóm/cụm khác nhau
4.3 Thư viện
Diễn giải:
● Thư viện numpy là thư viện toán học cho phép làm việc hiệu quả với ma trận và mảng
● Thư viện matplotlib.pyplot cho việc vẽ hình
● Thư viện scipy.spatial.distance để tính khoảng cách giữa các cặp điểm trong hai tập hợp một cách hiệu quả
4.4 Mô hình
Diễn giải:
● Hàm concatenate () là một hàm trong NumPy Về cơ bản, hàm này kết hợp các mảng NumPy với nhau Gộp 3 ma trân X0, X1, X2 thành X theo chiều ngang
● Hàm numpy.asarray() được sử dụng khi chúng ta muốn chuyển đổi đầu vào thành một mảng
● Khơi tạo original label có length = 3N, N phần tử đầu là 0, N phần tử ơ giữa là 1, N phần tử cuối là 2
● Số lượng cluster (K) cần clustering là 3
Trang 184.5 Huấn luyện
Ta tạo dữ liệu bằng cách lấy các điểm theo phân phối chuẩn có kỳ vọng tại các điểm có tọa độ (2, 2), (8, 3) và (3, 6) , ma trận hiệp phương sai giống nhau và là
ma trận đơn vị Mỗi cluster có 500 điểm.
4.6 Trực quan dữ liệu và mô hình
Tách ma trân X theo chiều ngang thành 3 ma trận X0, X1, X2 như ban đầu.
Gọi hàm kmeans_display để hiển thị dữ liệu
Trang 19Hình bên trên là một ví dụ về 3 cụm dữ liệu
Sau khi hiển thị dữ liệu ta thấy được là các dữ liệu được phân phần các cụm rõ rệt
4.7 Bình luận
● K-means: chúng ta cần biết số lượng cluster (K) cần clustering
K-means: làm việc khá thành công với kỳ vọng ban đầu Các điểm thuộc cùng
một cluster hầu như được phân vào cùng một cluster
Trang 205 HUỲNH HỮU PHÚC
5.1 Giới thiê ̣u:
Hồi quy Logistic (nhị phân) là mô ̣t mô hình thống kế xác suất xảy ra của mô ̣t sựkiê ̣n Từ đó xem xét mối liên hê ̣ giữa biến đô ̣c lâ ̣p với biến phụ thuô ̣c là biến nhị phânthông qua mô ̣t phương trình toán học tức sẽ có hai output (0/1 hoă ̣c Yes/No hoă ̣c True/False)
5.2 Bài toán / ví dụ:
Sử dụng bảng dựa dữ liê ̣u thống kê số lượng cung cấp thông tin (ảnh, tiểu sử,tuổi, sơ thích, lối sống, công viê ̣c, công ty, trường học, nơi sống, giới tính, các app liênkết, ) trên trang cá nhân Từ số lượng thông tin cung cấp ảnh hương đến viê ̣c match(hợp nhau) như thế nào?
Information provided Match Information provided Match
Mô ̣t số thư viê ̣n trong mô hình Logistic Regression
from future import division, print_function, unicode_literals
import numpy as np
import matplotlib.pyplot as plt
Trang 21 Xác suất để “not match” là P(y=0) = 1 - P(y=1)
Hàm Logistic:
y =wnxn+wn-1xn-1+ +w1x1+w0+
Trong đó:
w là trọng số
x là biến đô ̣c lâ ̣p
là sai số thể hiện các yếu tố chưa thể nghiên cứu đến nhưng các yếu tố này vẫnảnh hương tới y
Mô hình Logistic dự báo ra xác suất P(y=1) tuy nhiên nó sẽ không phải là mô ̣t sốnguyên như 0 và 1 từ đó có thể sử dụng giá trị ngưỡng t (0 < t < 1):
Trang 22Với kết quả tìm được, ta dự đoán theo công thức y = sigmoid(0.38 -0.1,62*x) Với dữ liê ̣u trong tâ ̣p training, kết quả là:
Trang 23 Từ dữ liê ̣u ban đầu thông qua sigmoid có thể dự đoán được tỉ lê ̣ match đượcnhau dựa trên thông tin cung cấp vẫn chưa lạc quan (với ngưỡng t là 0,5 thì16,67% thành công và 83,33% ghép đôi chưa thành công)
Trang 245.7 Bình luâ ̣n:
Phần tìm hiểu về mô hình Logistic cụ thể hơn là logistic nhị phân em được tìm
Trang 25BÌNH LUẬN NHÓM
Nhóm em đã tìm hiểu các bài toán đã đặt ra bao gồm: ngôn ngữ tự nhiên; regression, K-means, Logistic Regression, Association Rules Mặc dù còn nhiều thiếusót những vấn đề đặt ra là nhu cầu phân tích thói quen của người dùng đã được giảiquyết
Trang 26Linear-KẾT LUẬN
Quá trình nghiên cứu và thực hiện đề tài tuy gặp phải nhiều khó khăn về kiến
thức và quá trình làm việc nhưng nhóm chúng em đã học hỏi được rất nhiều kiến thức
bổ ích Bên cạnh đó chúng em cũng học hỏi được những kỹ năng vô cùng quan trọngnhư nghiên cứu, tra cứu thông tin, làm việc nhóm, trình bày báo cáo khoa học
Qua chủ đề “Ứng dụng hẹn hò - ghép đôi ngẫu nhiên hoặc có chọn lọc” thì
ta thấy bài toán phân tích và học thói quen match hay không match của người dùng córất nhiều cách để giải quyết và xử lý như ngôn ngữ tự nhiên; Linear-regression;K-means, Logistic Regression, Association Rules Song, trong ứng dụng trí tuệ nhân tạothì ta không tìm cách giải tối ưu nhất mà ta sử dụng cách giải chấp nhận được
Chúng em xin chân thành cảm ơn thầy Huỳnh Văn Đức, với những kiến thức
bổ ích mà thầy truyền tải trong suốt các buổi học cùng sự giúp đỡ tận tình của thầytrong suốt quá trình thực hiện dự án đã giúp nhóm chúng em vượt qua những khókhăn, hoàn thiện đề tài nghiên cứu của mình Tuy đã nỗ lực hết sức có thể trong khảnăng của mình nhưng chắc chắn nhóm không thể tránh khỏi những thiếu sót, nhữngnội dung chưa được hợp lý, chính xác Nhóm chúng em rất mong sẽ nhận được nhưngnhận xét tích cực của thầy để học hỏi, hoàn thiện hơn
Lời cuối cùng, nhóm chúng em xin kính chúc thầy luôn vui vẻ, khỏe mạnh,thành công và công tác tốt ạ!