CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI • Viết ứng dụng minh họa: Sau khi đã hoàn thành các bước trên nhóm sẽ viết ứng dụng minh họa để thể hiện hiệu suất của mô hình Image Captioning. Ứng dụng này sẽ cho phép người dùng nhập ảnh và tự động tạo ra chú thích cho ảnh đó bằng cách sử dụng mô hình Image Captioning đã được huấn luyện (ban đầu nhóm suy nghĩ theo hướng này) và/hoặc nhiều ảnh và 1 ô text search người dùng có thể nhập nội dung để tìm các ảnh có nội dung liên quan (GVHD đề xuất). • Viết báo cáo tốt nghiệp: Sau khi hoàn thành dự án, nhóm viết báo cáo tốt nghiệp để trình bày các kết quả và đánh giá của dự án. Báo cáo tốt nghiệp bao gồm các phần như giới thiệu dự án, tóm tắt các phương pháp và mô hình Image Captioning đã sử dụng, quá trình thu thập và chuẩn bị dữ liệu, thiết kế và xây dựng mô hình, kết quả huấn luyện và kiểm thử mô hình, đánh giá và tinh chỉnh mô hình, và cuối cùng là ứng dụng minh họa và kết luận.
4 CHƯƠNG 2: TÌM HIỂU VỀ LÝ THUYẾT CHƯƠNG 2: TÌM HIỂU VỀ LÝ THUYẾT 1. Ngôn ngữ lập trình Python 1. Python là gì? Python là một ngôn ngữ lập trình được sử dụng trong việc phát triển các ứng dụng web, phần mềm, máy học và khoa học dữ liệu. Những lợi ích mà Python mang lại: • Các nhà phát triển có thể dễ dàng đọc và hiểu một chương trình Python vì ngôn ngữ này có cú pháp cơ bản giống tiếng Anh.
• Python giúp cải thiện năng suất làm việc của các nhà phát triển vì so với những ngôn ngữ khác, họ có thể sử dụng ít dòng mã hơn để viết một chương trình Python. • Python có một thư viện tiêu chuẩn lớn, chứa nhiều dòng mã có thể tái sử dụng cho hầu hết mọi tác vụ. Nhờ đó, các nhà phát triển sẽ không cần phải viết mã từ đầu. • Các nhà phát triển có thể dễ dàng sử dụng Python với các ngôn ngữ lập trình phổ biến khác như Java, C và C++.
• Cộng đồng Python tích cực hoạt động bao gồm hàng triệu nhà phát triển nhiệt tình hỗ trợ trên toàn thế giới. Nếu gặp phải vấn đề, bạn sẽ có thể nhận được sự hỗ trợ nhanh chóng từ cộng đồng. • Trên Internet có rất nhiều tài nguyên hữu ích nếu bạn muốn học Python. Ví dụ: bạn có thể dễ dàng tìm thấy video, chỉ dẫn, tài liệu và hướng dẫn dành cho nhà phát triển.
• Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn như Windows, macOS, Linux và Unix. Python được sử dụng trong những lĩnh vực như: • Phát triển web phía máy chủ 5 CHƯƠNG 2: TÌM HIỂU VỀ LÝ THUYẾT • Tự động hóa các tập lệnh Python • Khoa học dữ liệu và máy học • Phát triển phần mềm • Tự động hóa kiểm thử phần mềm Những đặc điểm của Python: • Python là một ngôn ngữ thông dịch • Python là một ngôn ngữ dễ sử dụng • Python là một ngôn ngữ linh hoạt • Python là một ngôn ngữ cấp cao • Là một ngôn ngữ lập trình hướng đối tượng Một số thư viện phổ biến của Python: Matplotlib, Pandas, Numpy, Requests, OpenCV, Keras SDK Python là một tập hợp các công cụ phần mềm mà các nhà phát triển có thể sử dụng để tạo ra những ứng dụng phần mềm bằng một ngôn ngữ cụ thể. Cú pháp trong Python Python là một ngôn ngữ dễ đọc, dễ hiểu. Định dạng của nó rất gọn gàng về mặt trực quan, và nó thường sử dụng các từ khoá tiếng Anh trong khi các ngôn ngữ khác lại sử dụng các dấu câu.
Python sử dụng thụt lề bằng khoảng trắng hoặc ký tự tab thay vì dùng ngoặc nhọn hay các từ khoá để giới hạn khối lệnh. Lề thường được thụt vào sau một câu lệnh và thụt ra để đánh dấu kết thúc khối lệnh hiện tại. Một số câu lệnh trong python: • Dấu = là một câu lệnh gán • Câu lệnh if (if – else) thực thi khối lệnh nếu thỏa mãn điều kiện • Câu lệnh for lặp qua các đối tượng, gán mỗi phần tử và một biến cục bộ để sử dụng trong khối lệnh của vòng lặp. 6 CHƯƠNG 2: TÌM HIỂU VỀ LÝ THUYẾT • Câu lệnh while thực thi khối lệnh khi điều kiện đúng • Câu lệnh try thực thi và bắt các ngoại lệ (except), dọn dẹp trong (finally).
• Câu lệnh break thoát ra khỏi vòng lặp • Câu lệnh class thực thi một khối lệnh và gắn không gian tên cục bộ của nó vào một lớp, để dùng trong lập trình hướng đối tượng. • Câu lệnh def định nghĩa hàm hoặc một phương thức • Câu lệnh return trả lại một giá trị từ một hàm hoặc một phương thức nào đó • Câu lệnh import nhập các module khác nhau •. Kiểu dữ liệu Một số kiểu dữ liệu trong python là: bool, bytearray, bytes, complex, dict, float, frozenset, int, list, str, tuple, range, set, NoneType,… 1. AI (Artificial Intelligence) là gì? AI hay trí truệ nhân tạo là một nghành kỹ thuật khoa học chế tạo máy móc thông minh, các chương trình máy tính thông minh.
AI được thực hiện bằng cách nghiên cứu cách suy nghĩ của con người, cách con người học hỏi, quyết định và làm việc trong khi giải quyết một vấn đề nào đó sau đó sử dụng lại kết quả nghiên cứu này từ đó tìm ra các giải pháp, nền tảng phát triển các phần mềm thông minh, hệ thống thông minh. Mục đích của AI: • Tạo ra hệ thống có thể hiểu, suy nghĩ và học hỏi từ con người • Tạo ra các hệ thống chuyên gia – các hệ thống này giúp giải quyết được vấn đề ở một vấn đề phức tạp cụ thể nào đó. AI được áp dụng vào nhiều lĩnh vực trong đời sống như Khoa học máy tính, Toán học, Sinh học, kỹ thuật,… 7 CHƯƠNG 2: TÌM HIỂU VỀ LÝ THUYẾT Trong thực tế, chúng ta nhận thấy rằng các nguồn dữ liệu có một số tính chất không mong muốn như khối lượng rất lớn, không có định dạng hay cấu trúc đủ tốt và dữ liệu thay đổi liên tục → Kỹ thuật AI được biết đến như là một cách tổ chức và sử dụng kiến thức để khắc phục những tình trạng không tốt của dữ liệu. Một số ứng dụng AI • Quản trị: Các hệ thống AI trợ giúp các công việc hành chính hàng ngày, để giảm thiểu lỗi của con người và tối đa hóa hiệu quả.
• Điều trị từ xa: Đối với các tình huống không khẩn cấp, bệnh nhân có thể liên hệ với hệ thống AI của bệnh viện để phân tích các triệu chứng của họ, nhập các dấu hiệu quan trọng của họ và đánh giá xem có cần phải chăm sóc y tế hay không. Điều này làm giảm khối lượng công việc của các chuyên gia y tế bằng cách chỉ đưa các trường hợp quan trọng đến họ. • Hỗ trợ chuẩn đoán: Thông qua thị giác máy tính và mạng lưới thần kinh tích chập, AI hiện có khả năng đọc quét hình ảnh cộng hưởng từ để kiểm tra khối u và sự phát triển ác tính khác của nó, với tốc độ nhanh hơn so với các bác sĩ x-quang và sai số thấp hơn đáng kể. • Phẫu thuật có sự trợ giúp của robot: Robot phẫu thuật có sai số rất nhỏ và có thể thực hiện phẫu thuật suốt ngày đêm mà không bị kiệt sức.
• Giám sát các chỉ số quan trọng • Ngoài ra còn rất nhiều những ứng dụng trong các lĩnh vực khác trong đời sống như nhận diện khuôn mặt, nhận diện giọng nói, ô tô tự lái… 1. Machine Learning là gì? Machine Learning là một ứng dụng của trí tuệ nhân tạo (AI), nhờ vào Machine Learning hệ thống trí tuệ nhân tạo có khả năng tự học hỏi và cải thiện kinh nghiệm mà không cần phải lập trình rõ ràng, chi tiết. Machine Learning được cho là thường tập 8 CHƯƠNG 2: TÌM HIỂU VỀ LÝ THUYẾT trung vào các chương trình máy tính có thể truy cập dữ liệu và dùng nó để tự học. Mục tiêu của Machine Learning? Mục tiêu của machine learning được cho là một công cụ giúp máy tính dễ dàng tìm hiểu về quy trình một cách tự động khi không có sự tác động nào từ phía con người hoặc sẽ hỗ trợ điều chỉnh hành động hiệu quả hơn.
Các thuật toán machine learning này được giám sát để dễ dàng cho việc áp dụng và tìm hiểu về dữ liệu mới trong quá khứ với ví dụ được gắn nhãn để dự đoán các sự kiện tương lai. Các phương pháp Machine Learning • Supervised Learning (học tập có giám sát): chúng ta có thể hiểu là máy tính sẽ được cung cấp các ví dụ (data) đầu vào được gắn nhãn với đầu ra mong muốn của chúng. Mục đích của phương pháp này là thuật toán có thể học (được dạy học) bằng cách so sánh kết quả đầu ra với kết quả thực tế - tìm và sửa lỗi, sửa đổi mô hình cho phù hợp. • Unsupervised Learning (học tập không giám sát): chúng ta có thể hiểu dữ liệu ở học tập không giám sát không cần gắn nhãn cho nên thuật toán học được để lại điểm chung giữa các dữ liệu đầu vào.
Mục tiêu của học tập loại này có thể đơn giản như là khám phá các mẫu ẩn trong tập dữ liệu, bên cạnh đó, nó cũng có thể có mục tiêu học tập tính năng, cho phép máy tính tự động khám phá các biểu diễn cần thiết để phân loại dữ liệu. Theo Wikipedia, các kiến trúc học sâu như mạng nơ-ron sâu, mạng niềm tin sâu, học tăng cường sâu, mạng nơ-ron lặp lại, mạng nơ-ron phức hợp và máy biến áp đã được áp dụng cho các lĩnh vực bao gồm thị giác máy tính, nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên, dịch máy, tin sinh học, thiết kế thuốc , phân tích hình ảnh y tế, khoa học 9 CHƯƠNG 2: TÌM HIỂU VỀ LÝ THUYẾT khí hậu, kiểm tra vật liệu và các chương trình trò chơi trên bàn cờ, nơi chúng đã tạo ra kết quả tương đương và trong một số trường hợp vượt qua hiệu suất của chuyên gia con người. Mạng nơ-ron nhân tạo (ANN) được lấy cảm hứng từ quá trình xử lý thông tin và các nút giao tiếp phân tán trong các hệ thống sinh học. ANN có nhiều điểm khác biệt so với bộ não sinh học.
Cụ thể, mạng lưới thần kinh nhân tạo có xu hướng tĩnh và tượng trưng, trong khi bộ não sinh học của hầu hết các sinh vật sống là động (nhựa) và tương tự. Lịch sử phát triển của học sâu? Hình 1: Lịch sử phát triển (src: https://www.co/blog/wp-content/uploads/2017/05/AI-Timeline-What-is-Deep-Learning-Edureka-1.