HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM ĐỖ NGỌC THÀNH LƯU ĐỨC BẢO BÁO CÁO ĐỒ ÁN 2 TÌM HIỂU TRÍ TUỆ NHÂN TẠO VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA KỸ SƯ NGÀNH KỸ THU
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỖ NGỌC THÀNH LƯU ĐỨC BẢO
BÁO CÁO ĐỒ ÁN 2 TÌM HIỂU TRÍ TUỆ NHÂN TẠO VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP HỒ CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỖ NGỌC THÀNH - 18520358 LƯU ĐỨC BẢO - 18520485
BÁO CÁO ĐỒ ÁN 2 TÌM HIỂU TRÍ TUỆ NHÂN TẠO VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN TS.HUỲNH NGỌC TÍN
TP HỒ CHÍ MINH, 2021
Trang 3LỜI CẢM ƠN
Khoảng thời gian thực hiện đề tài là một khoảng thời gian đầy thử thách đối vớichúng em Để hoàn thành đề tài này, chúng em xin gửi lời cảm ơn sâu sắc đến TS.Huỳnh Ngọc Tín, thầy đã tận tình giúp đỡ cả về tài liệu chuyên môn lẫn những lờikhuyên và góp ý kịp thời để tạo điều kiện để chúng em có thể hoàn thành khóa luậnmột cách tốt nhất
Ngoài ra, chúng em cũng xin chân thành cảm ơn đến tất cả thầy cô trong trườngĐại học Công nghệ Thông tin nói chung và các thầy cô ở khoa Công nghệ Phần mềmnói riêng đã dạy dỗ và truyền đạt cho em những kiến thức và kinh nghiệm trong suốtquá trình em học tập tại trường Đại học Công nghệ Thông tin để em có thể vận dụngvào đề tài
Một lần nữa chúng em xin chân thành cảm ơn và chúc quý thầy cô và anh chịsức khỏe và thành công trong cuộc sống
Tp Hồ Chí Minh, tháng 12 năm 2021
Sinh Viên thực hiện đề tài
Đỗ Ngọc Thành
Lưu Đức Bảo
Trang 4ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Tìm hiểu Trí tuệ Nhân tạo và xây dựng ứng dụng minh họa
Cán bộ hướng dẫn: TS Huỳnh Ngọc Tín
Thời gian thực hiện: Từ ngày 16/9/2021 đến ngày 20/12/2012
Sinh viên thực hiện:
Đỗ Ngọc Thành - 18520358
Lưu Đức Bảo - 18520485
Nội dung đề tài
Mục tiêu:
Tìm hiểu trí tuệ nhân tạo, nghiên cứu một số thuật toán trí tuệ nhân tạo và áp dụng
để giải một số bài toán
Phương pháp thực hiện:
- Phân tích đề tài.
- Nghiên cứu, tìm hiểu một số bài báo, kiến thức
- Nghiên cứu công nghệ, thư viện để áp dụng
- Cài đặt môi trường phát triển
- Phát triển và hoàn thiện sản phẩm
Kết quả mong đợi:
Nắm được những kiến thức trọng tâm và hoàn thiện những mô hình đáp ứng nhu cầu
bài toán đề ra
Trang 5Kế hoạch thực hiện:
1 Tìm hiểu và phân tích đề tài 24/9/2021 đến 27/9/2021
2 Tìm kiếm và phân tích các tài liệu liên
3 Tìm hiểu về Machine Learning và phương
pháp Q-learning trong Reinforcement
Learning
Tìm hiểu về Genetic Algorithm và thuật
toán di truyền NEAT
13/10/2021 đến 4/11/2021
4 Áp dụng thuật toán Q-learning vào xây
dựng trí tuệ nhân tạo trong môi trường ảo
Huấn luyện và lưu trữ kết quả
5/11/2021 đến 17/11/2021
5 Áp dụng thuật toán di truyền NEAT tạo
AI chơi trò chơi Flappy Bird
Huấn luyện và lưu trữ kết quả
18/11/2021 đến 2/12/2021
6 Hiện thực hoá tài liệu 3/12/2021 đến 10/12/2021
7 Tập hợp, phân tích và đánh giá kết quả đạt
Trang 6DANH MỤC BẢNG
Bảng 3.1 Kết quả thực nghiệm Q-Learning AI 16
Trang 7DANH MỤC MỘT SỐ THUẬT NGỮ
AI (Artificial Intelligence) Trí tuệ nhân tạo
Reactive Machine Công nghệ AI phản ứng
Machine Learning Học máy (là một lĩnh vực con của AI)
Reinforcement learning Học tập củng cố
LSTM (Long Short Term Memory) Bộ nhớ ngắn hạn dài
E-GAN (Evolutionary Generative
Adversarial Networks) Mạng đối nghịch tạo sinh tiến hóaTheory of Mind Lý thuyết tâm lý
NEAT (NeuroEvolution of Augmenting
Topologies) Một thuật toán AI dựa trên thuyết ditruyền và tiến hóa
Trang 8MỤC LỤC
Chương 3: TÌM HIỂU REINFORCEMENT LEARNING VÀ ÁP DỤNG XÂY
3.3 Xây dựng trí tuệ nhân tạo trên môi trường ảo áp dụng Q-Learning 14
Chương 4: TÌM HIỂU THUẬT TOÁN DI TRUYỀN TIẾN HÓA VÀ ÁP DỤNG
4.3 Xây dựng trí tuệ nhân tạo chơi trò chơi Flappy Bird áp dụng NEAT 18
Trang 94.3.2.1 Cài đặt PyGame 184.3.2.2 Xây dựng trò chơi Flappy Bird 18
Trang 10GIỚI THIỆU ĐỀ TÀI
Lĩnh vực về Trí tuệ Nhân tạo(AI) rất có tiềm năng cải thiện cuộc sống của conngười bằng cách giúp giải quyết một số thách thức và sự kém hiệu quả trong côngviệc Hơn hết là các ứng dụng của AI đã gặt hái những lợi ích lớn cho công chúngtrong các lĩnh vực đa dạng như chăm sóc sức khỏe, giao thông, môi trường, tư pháphình sự và hòa nhập kinh tế Hiệu quả của bản thân chính phủ đang được tăng lên khicác cơ quan xây dựng năng lực sử dụng AI để thực hiện các sứ mệnh của họ nhanhhơn, nhạy hơn và hiệu quả hơn
Trong tương lai, AI sẽ tiếp tục đóng góp vào tăng trưởng kinh tế và sẽ là mộtcông cụ có giá trị để cải thiện thế giới, miễn là các ngành công nghiệp, xã hội dân sự
và chính phủ cùng hợp tác để phát triển các khía cạnh tích cực của công nghệ, quản lýrủi ro và thách thức, đồng thời đảm bảo rằng mọi người có cơ hội tham gia xây dựngnâng cao trí tuệ nhân tạo và nhận được các lợi ích của nó
Như một đóng góp vào việc chuẩn bị cho một tương lai trong đó Trí tuệ Nhântạo đóng một vai trò ngày càng tăng, chúng em thực hiện đề tài nhằm nghiên cứu tìmhiểu rõ hơn về trí tuệ nhân tạo và một thuật toán di truyền để đào tạo AI
Trang 11so với sự phát triển thế giới đã thôi thúc chúng em thực hiện đề tài này.
1.2 Mục tiêu
● Tìm hiểu kiến thức cơ bản trong lĩnh vực trí tuệ nhân tạo
● Tìm hiểu kiến thức cơ bản trong lĩnh vực học máy
● Tìm hiểu kiến thức Reinforcement Learning
● Tìm hiểu thuật toán Q-Learning
● Tìm hiểu kiến thức Genetic Algorithm
● Tìm hiểu thuật toán NEAT
● Xây dựng mô hình AI để giải quyết bài toán
● Đạt được yêu cầu bài toán đề ra
1.3 Nội dung thực hiện
● Tìm hiểu về khái niệm Trí tuệ Nhân tạo, các dạng và loại hình của Trí tuệ Nhântạo
● Tìm hiểu các kiến thức cần thiết và liên quan trong các lĩnh vực để phục vụ quátrình nghiên cứu đề tài và xây dựng mô hình
● Xây dựng mô hình trí tuệ nhân tạo áp dụng thuật toán Q-Learning
● Xây dựng mô hình trí tuệ nhân tạo áp dụng thuật toán NEAT
Trang 12● Nắm bắt được kiến thức cơ bản trong lĩnh vực Trí tuệ Nhân tạo.
● Nắm bắt được kiến thức Reinforcement Learning
● Nắm bắt được thuật toán Q-Learning
● Nắm bắt được kiến thức cơ bản về Genetic Algorithm
● Nắm bắt được thuật toán NEAT
Thực nghiệm:
● Xây dựng mô hình Trí tuệ Nhân tạo sử dụng thuật toán Q-Learning
● Xây dựng mô hình Trí tuệ Nhân tạo sử dụng thuật toán NEAT
● Đạt được yêu cầu bài toán
1.5 Cấu trúc báo cáo
Bố cục báo cáo gồm 4 chương:
● Chương 1: Tổng quan đề tài Giới thiệu tổng quan đề tài, mục tiêu đề tài và nộidung thực hiện, kết quả đạt được
● Chương 2: Tìm hiểu về Trí tuệ Nhân tạo Tìm hiểu khái niệm, các dạng Trí tuệNhân tạo, lịch sử hình thành và phát triển
● Chương 3: Tìm hiểu Reinforcement Learning và áp dụng xây dựng Trí tuệNhân tạo trên môi trường ảo có sẵn Tìm hiểu thuật toán Q-Learning và ápdụng xây dựng mô hình Trí tuệ Nhân tạo
Trang 13● Chương 4: Tìm hiểu thuật toán Di truyền Tiến hóa và xây dựng Trí tuệ Nhântạo chơi trò chơi đơn giản Tìm hiểu thuật toán di truyền tiến hóa NEAT và ápdụng xây dựng mô hình Trí tuệ Nhân tạo
Trang 14Chương 2 TÌM HIỂU VỀ TRÍ TUỆ NHÂN TẠO
2.1 Khái niệm trí tuệ nhân tạo
Trí tuệ nhân tạo là lĩnh vực nghiên cứu của khoa học máy tính liên quan đếnxây dựng các máy tính thông minh có khả năng thực hiện những tác vụ đòi hỏi đến tríthông minh của con người Các nhà tâm lý học nói chung không đặc trưng cho tríthông minh của con người chỉ bằng một đặc điểm mà là sự kết hợp của nhiều khảnăng đa dạng Nghiên cứu về AI chủ yếu tập trung vào các thành phần sau của tríthông minh: học tập, suy luận, giải quyết vấn đề, nhận thức và sử dụng ngôn ngữ
Trí tuệ nhân tạo - AI là mục tiêu của con người và có thể đạt được bằng nhiềucách, mà trong đó học máy (Machine Learning) là một phương tiện để đạt được mụctiêu đó Bản chất của học máy là các mô hình, thuật toán có thể tự học hỏi trên dữ liệuđầu vào nhằm giải quyết một bài toán cụ thể Nhờ có học máy mà chúng ta đã có thểtiến gần hơn tới AI
2.2 Các dạng trí tuệ nhân tạo
2.2.1 Reactive Machine
Reactive Machine AI là hình thái cơ bản nhất của AI, chỉ có thể sử dụng tríthông minh của nó để nhận thức và phản ứng lại với tình huống mà nó thấy ReactiveMachine không thể không thể lưu trữ bộ nhớ nên không thể dựa vào những kinhnghiệm trong quá khứ để tác động lên quyết định hiện tại
Reactive Machine được thiết kế để hoàn thành một số nhiệm vụ riêng biệtnhưng bị hạn chế Tuy nhiên reactive machine rất đáng tin cậy vì nó sẽ phản ứng theocùng một cách với những kích thích giống nhau trong mọi thời điểm
Mặc dù bị giới hạn về phạm vi và không dễ thay đổi, reactive machine AImang lại độ tin cậy lớn vì được tạo ra để hoàn thành các nhiệm vụ có thể được lặp lại
2.2.2 Limited Memory
Limited Memory AI có khả năng lưu dữ liệu và dự đoán trước đó khi thu thậpthông tin và đưa ra các dự đoán - về cơ bản là dựa vào quá khứ để tìm những manhmối và đưa ra những việc có thể xảy ra tiếp theo
Trang 15Limited Memory AI được tạo ra khi liên tục đào tạo một nhóm mô hình tìmcách để phân tích và sử dụng dữ liệu mới hoặc môi trường AI đã được xây dựng sẵn
để các mô hình có thể được đào tạo và tự động đổi mới Để sử dụng Limited Memory
AI phải tuân theo sáu bước: Tạo dữ liệu để đào tạo, tạo mô hình học máy, các mô hìnhhọc máy phải đưa ra được kết quả, các mô hình học máy phải nhận được phản hồi từcon người hoặc môi trường, các phản hồi phải được lưu trữ và lặp lại như một chu kỳ
Có ba mô hình học máy chính sử dụng Limited Memory AI là:
● Reinforcement learning học cách đưa ra kết quả tốt hơn thông qua việcthử nghiệm - sai được lặp đi lặp lại
● LTSM sử dụng dữ liệu trong quá khứ để dự đoán mục tiếp theo LTSMxem thông tin gần đây quan trọng hơn thông tin sâu xa trong quá khứ đểđưa ra kết quả (vẫn dựa vào thông tin sâu xa trong quá khứ để đưa ra kếtquả)
● E-GAN ngày càng phát triển theo thời gian, phát triển chậm rãi để khámphá các hướng khác nhau dựa vào kinh nghiệm cũ với những quyết địnhmới Mô hình này luôn luôn tìm kiếm hướng tốt hơn và tận dụng cácthông số, những sự giả lập, hoặc cơ hội, để dự đoán những kết quả trongxuyên suốt quá trình đột biến phát triển của nó
2.2.3 Theory of Mind
Theory of Mind chỉ đơn thuần là một lý thuyết Bởi chúng ta đưa đạt được trình
độ khoa học kỹ thuật và công nghệ cần thiết để chạm đến mức độ này
Khái niệm này dựa trên tiêu chuẩn tâm lý học về suy nghĩ và cảm xúc củanhững sinh vật sống khác ảnh hưởng đến hành vi của một cá thể Xét về phương diện
AI, điều này có nghĩa là AI có thể hiểu được cách con người, động vật, và các máymóc khác cảm nhận rồi tận dụng những thông tin đó để đưa ra quyết định của chínhmình Cơ bản là máy móc sẽ có khả năng nắm bắt và xử lý khái niệm "tâm trí", sự daođộng của cảm xúc trong quá trình đưa ra quyết định và nhiều các khái niệm tâm lýkhác, điều đó tạo nên mối quan hệ hai chiều giữa con người và AI
Trang 162.2.4 Self-awareness
Trong tương lai, một khi Theory of Mind được đưa vào AI, bước cuối cùng sẽ
là làm cho AI có được sự nhận thức Loại trí tuệ nhân tạo này sở hữu ý thức tươngđương con người và hiểu được sự tồn tại của bản thân, cũng như sự tồn tại và trạngthái cảm xúc của người khác Nó có thể hiểu được người khác cần gì không chỉ dựatrên thông tin họ truyền đạt mà còn dựa trên cách họ truyền đạt thông tin đó
Sự tự nhận thức ở trí tuệ nhân tạo phải dựa vào các nhà nghiên cứu con ngườihiểu được tiền đề của ý thức và tái tạo lại để xây dựng thành máy móc
2.3 Loại hình trí tuệ nhân tạo
Trí tuệ nhân tạo thường thuộc 2 nhóm loại lớn:
Narrow AI: hay còn gọi là "Weak AI", loại AI này hoạt động trong một phạm
vi giới hạn và là mô phỏng trí tuệ con người Narrow AI thường tập trung vào thựchiện cực tốt một công việc duy nhất, những máy móc này hoạt động dưới nhiều sựràng buộc và giới hạn hơn nhiều khi so với trí tuệ cơ bản của con người
Artificial General Intelligence (AGI): AGI, hay còn được gọi "Strong AI", làloại trí tuệ nhân tạo thường thấy trên phim ảnh, một cỗ máy có trí thông minh giốngvới con người, nó có thể dùng trí thông minh đó giải quyết bất kỳ vấn đề nào
2.3.1 Narrow AI
Narrow AI ở xung quanh ta và là thứ thành công nhất của trí tuệ nhân tạo đượchiện thực hoá cho đến ngày nay Với việc tập trung vào thực hiện các công việc cụ thể,narrow AI đã có nhiều bước đột phá trong suốt thập kỷ qua, mang lại lợi ích xã hộiđáng kể và đóng góp lớn vào sức sống kinh tế của quốc gia
Phần lớn narrow AI được hỗ trợ bởi sự đột phá trong học máy và học sâu
● Học máy: cung cấp dữ liệu máy tính và sử dụng kĩ thuật thống kê đểgiúp AI học cách hoàn thành ngày một công việc ngày càng tốt hơn màkhông cần phải lập trình cụ thể cho công việc đó, giảm được hàng triệudòng code
Trang 17● Học sâu: là một loại học máy, chạy các biến đầu vào thông qua kiến trúcmạng nơron thần kinh lấy cảm hứng từ sinh học Mạng nơron chứa cáclớp ẩn mà qua đó dữ liệu được xử lý, cho phép máy học sâu, tạo kết nối
và trọng lượng (độ quan trọng) của biến đầu vào để cho ra kết quả tốtnhất
2.3.2 Artificial General Intelligence
Sáng tạo một cỗ máy với trí tuệ của con người có thể thực hiện bất kì công việcnào là thứ mà nhiều nhà nghiên cứu AI mong muốn đạt được, nhưng để đạt được điều
đó lại vô cùng khó khăn
Việc tìm kiếm một thuật toán bao quát cho việc học và hành động trong mọimôi trường đã bắt đầu từ lâu, nhưng nó vẫn là thử thách đầy khó khăn trong việc tạo
ra một cỗ máy với đầy đủ khả năng nhận thức
mô hình toán học đầu tiên để xây dựng mạng nơron
● Năm 1949, trong quyển sách The Organization of Behaviour: ANeuropsychological Theory, Donald Hebb đề xuất lý thuyết rằng cácđường dẫn thần kinh được tạo ra từ trải nghiệm và kết nối giữa các tếbào thần kinh trở nên mạnh mẽ hơn khi chúng được sử dụng thườngxuyên hơn Lý thuyết Hebbian tiếp tục là một mô hình quan trọng trongAI
Những năm 1950:
● Năm 1950, Alan Turing xuất bản "Computing Machinery andIntelligence", đề xuất cái mà ngày nay được gọi là Phép thử Turing, mộtphương pháp để xác định xem một máy có thông minh hay không
Trang 18● Năm 1950, Isaac Asimov xuất bản "Three Laws of Robotics."
● Năm 1952, Samuel phát triển một chương trình tự học để chơi cờ
● Năm 1954, Thí nghiệm dịch máy của Georgetown-IBM tự động dịch 60câu tiếng Nga được lựa chọn cẩn thận sang tiếng Anh
● Năm 1956, Cụm từ Artificial Intelligence được đặt ra tại "DartmouthSummer Research Project on Artificial Intelligence." Được dẫn dắt bởiJohn McCarthy, hội nghị xác định phạm vi và mục tiêu của Al, đượcnhiều người coi là sự ra đời của trí tuệ nhân tạo như chúng ta biết ngàynay
● Năm 1956, Allen Newell và Herbert Simon viết Logic Theorist(LT),chương trình lý luận đầu tiên
● Năm 1958, John McCarthy phát triển ngôn ngữ lập trình Al Lisp và xuấtbản bài báo "Programs with Common Sense" Bài báo đề xuất AdviceTaker, một hệ thống Al hoàn chỉnh với khả năng học hỏi kinh nghiệmhiệu quả như con người
● Năm 1959, Allen Newell, Herbert Simon và J.C Shaw phát triểnGeneral Problem Solver(GPS), một chương trình được thiết kế để bắtchước cách giải quyết vấn đề của con người
● Năm 1959 Herbert Gelernter phát triển chương trình Geometry TheoremProver
● Năm 1959 Arthur Samuel sử dụng thuật ngữ Machine learning khi làmviệc tại IBM
● Năm 1959 John McCarthy và Marvin Minsky thành lập Dự án Trí tuệNhân tạo MIT
Trang 19Những năm 1960:
● Năm 1963 John McCarthy bắt đầu Phòng thí nghiệm AI tại Stanford
● Năm 1966 Báo cáo Automatic Language Processing AdvisoryCommittee (ALPAC) của chính phủ Hoa Kỳ nêu chi tiết về sự thiếu tiến
bộ trong nghiên cứu bản dịch bằng máy, một sáng kiến lớn trongChiến tranh Lạnh với hứa hẹn dịch tiếng Nga tự động và tức thời Báocáo ALPAC dẫn đến việc hủy bỏ tất cả các dự án MT do chính phủ tàitrợ
● Năm 1969, Các hệ thống chuyên gia thành công được phát triển trongDENDRAL, MYCIN, được thiết kế để chẩn đoán nhiễm trùng máu,được tạo ra tại Stanford
Những năm 1970:
● Năm 1972, Ngôn ngữ lập trình logic PROLOG được tạo ra
● Năm 1973, Báo cáo “Lighthill Report”, trình bày chi tiết những thấtvọng trong nghiên cứu AI, được chính phủ Anh công bố và dẫn đến việccắt giảm nghiêm trọng nguồn tài trợ cho các dự án trí tuệ nhân tạo
● Năm 1974-1980, Sự thất vọng với tiến độ phát triển của AI dẫn đến việccắt giảm đáng kể các khoản tài trợ học tập của DARPA Kết hợp với báocáo ALPAC trước đó và "Lighthill Report" của năm trước, nguồn tài trợtrí tuệ nhân tạo bị cạn kiệt và các gian hàng nghiên cứu Giai đoạn nàyđược gọi là "First AI Winter."
Những năm 1980:
● Năm 1980, Các tập đoàn thiết bị kỹ thuật số phát triển R1 (còn được gọi
là XCON), hệ thống chuyên gia thương mại thành công đầu tiên Đượcthiết kế để định cấu hình các đơn đặt hàng cho các hệ thống máy tínhmới, R1 khởi động sự bùng nổ đầu tư vào các hệ thống chuyên gia sẽkéo dài trong phần lớn thập kỷ, kết thúc hiệu quả "First AI Winter" đầutiên
● Năm 1982, Bộ Thương mại Quốc tế và Công nghiệp Nhật Bản khởiđộng dự án Hệ thống Máy tính Thế hệ Thứ năm (FGCS) đầy tham vọng