Nhập môn Trí tuệ Nhân tạo·Tổng quan

Chế độ xem

Tổng quan về Trí tuệ Nhân tạo

Nếu mới nghe đến Artificial Intelligence (AI), rất dễ hình dung AI là ChatGPT, robot hình người hoặc một mạng neural khổng lồ. Nhưng đó chỉ là một góc rất nhỏ.

Một chương trình tìm đường bằng A*, một bot chơi Tic-Tac-Toe bằng Minimax hay một hệ thống suy luận bằng logic đều là những ví dụ kinh điển của AI, dù chúng không cần dataset và cũng không cần train model.

Bài này tạo một “bản đồ” trước khi đi vào từng kỹ thuật. Mục tiêu tối thiểu là sau khi đọc xong, bạn có thể nhìn một bài toán và hỏi đúng câu hỏi: máy đang biết gì, có thể làm gì, muốn đạt điều gì, và nên dùng kiểu phương pháp nào?

AI trước hết là bài toán ra quyết định

Hãy tưởng tượng bạn đang dùng ứng dụng bản đồ.

Bạn cho máy hai thứ:

  • vị trí hiện tại;
  • nơi muốn đến.

Ứng dụng cần trả lại một tuyến đường. Đằng sau câu trả lời đơn giản đó là một bài toán:

Tư duy này xuất hiện rất nhiều trong AI: một agent quan sát môi trường, chọn hành động, rồi môi trường thay đổi.

Artificial Intelligence là gì?

Không có một câu định nghĩa duy nhất giải quyết mọi tranh luận về ranh giới của AI. Trong phạm vi nhập môn, có thể hiểu thực dụng như sau:

Trí tuệ nhân tạo là lĩnh vực nghiên cứu các phương pháp giúp máy tính thực hiện những nhiệm vụ cần đến các năng lực như tìm kiếm, suy luận, ra quyết định, học từ dữ liệu, xử lý bất định và xử lý ngôn ngữ.

Một hệ thống AI có thể làm một hoặc nhiều việc sau:

  • tìm một lời giải trong rất nhiều khả năng;
  • biểu diễn tri thức và suy luận từ tri thức đó;
  • ra quyết định khi thông tin chưa chắc chắn;
  • tìm lời giải tốt hơn trong nhiều lời giải hợp lệ;
  • học quy luật từ dữ liệu;
  • nhận diện hình ảnh, âm thanh;
  • hiểu hoặc sinh ngôn ngữ.

Điểm quan trọng là AI không phải tên của một thuật toán duy nhất.

AI không đồng nghĩa với Machine Learning

Có thể hình dung tương đối như sau:

Machine Learning

Machine Learning (ML) là một nhóm phương pháp trong AI cho phép hệ thống cải thiện khả năng thực hiện nhiệm vụ dựa trên dữ liệu hoặc kinh nghiệm.

Cách lập trình thủ công có thể giống thế này:

if "free money" in email.lower():
    spam = True

Nhưng thế giới thật có quá nhiều trường hợp. Với ML, ta đưa cho máy nhiều ví dụ:

Deep Learning

Deep Learning là một nhánh của Machine Learning, chủ yếu sử dụng mạng neural nhiều tầng để học biểu diễn từ dữ liệu.

Generative AI

Generative AI tập trung vào việc tạo nội dung mới, chẳng hạn văn bản, ảnh, âm thanh, video hoặc mã nguồn. Các Large Language Model là một ví dụ nổi bật, nhưng chúng vẫn chỉ là một phần của bức tranh AI.

Một câu nên nhớ:

AI rộng hơn ML; ML rộng hơn Deep Learning; và AI rộng hơn Generative AI.

Agent: cách nhìn rất hữu ích về AI

Trong CS50 AI, một khái niệm xuất hiện ngay từ Search là agent.

Hiểu đơn giản:

Agent là một thực thể nhận biết môi trường và thực hiện hành động lên môi trường đó.

Ví dụ robot hút bụi:

Thành phầnVí dụ
Environmentcăn phòng
Perceptionvị trí, tường, bụi
Statethông tin mà robot dùng để mô tả tình huống hiện tại
Actiontiến, lùi, quay, hút
Goallàm sạch phòng

Ví dụ bot chơi Tic-Tac-Toe:

Thành phầnVí dụ
Environmentbàn cờ
Statevị trí X/O hiện tại
Actionđánh vào một ô trống
Goalthắng hoặc ít nhất không thua

Một agent không nhất thiết phải có hình dạng robot. Một đoạn chương trình chọn hành động cũng có thể được xem như agent.

“Thông minh” không có nghĩa là “phức tạp nhất”

Giả sử cần tìm đường ngắn nhất trong một mê cung nhỏ. Nếu BFS giải đúng, dễ kiểm tra và chạy đủ nhanh, dùng một neural network lớn chưa chắc tốt hơn.

Trong kỹ thuật, ta quan tâm các tiêu chí cụ thể hơn:

  • có giải đúng bài toán không;
  • lời giải có tốt không;
  • tốn bao nhiêu thời gian và bộ nhớ;
  • có cần dữ liệu không;
  • có giải thích và kiểm tra được không;
  • có hoạt động khi môi trường thay đổi không.

Vì thế, học AI không phải học cách “nhét neural network vào mọi thứ”, mà là học cách chọn cách biểu diễn và thuật toán phù hợp với bài toán.

Bảy mảng chính trong CS50 AI

CS50’s Introduction to Artificial Intelligence with Python đi qua bảy chủ đề. Đây cũng là xương sống của bộ note này.

0. Search - Tìm kiếm

Câu hỏi trung tâm:

Từ trạng thái hiện tại, cần thực hiện chuỗi hành động nào để đạt mục tiêu?

Ví dụ:

  • tìm đường;
  • giải mê cung;
  • giải puzzle;
  • chọn nước đi trong game.

Ta sẽ gặp DFS, BFS, Greedy Best-First Search, A*, Minimax và Alpha-Beta Pruning.

1. Knowledge - Tri thức

Câu hỏi:

Làm sao biểu diễn điều ta biết và suy ra điều mới?

Ví dụ:

Nếu trời mưa thì đường ướt.
Trời đang mưa.
=> Có thể suy ra đường ướt.

2. Uncertainty - Bất định

Không phải lúc nào máy cũng biết chắc câu trả lời.

Ví dụ một triệu chứng có thể xuất hiện ở nhiều bệnh khác nhau. Ta cần xác suất để biểu diễn mức độ tin tưởng và cập nhật niềm tin khi có thông tin mới.

3. Optimization - Tối ưu

Có thể tồn tại rất nhiều lời giải đúng, nhưng ta muốn một lời giải tốt hơn.

Ví dụ:

  • xếp lịch không trùng;
  • giảm quãng đường giao hàng;
  • tối đa hóa lợi ích trong giới hạn tài nguyên.

4. Learning - Học từ dữ liệu

Thay vì viết mọi quy tắc bằng tay, hệ thống học mối quan hệ từ các ví dụ.

Ví dụ:

  • spam classification;
  • dự đoán giá;
  • phân loại khách hàng.

5. Neural Networks - Mạng neural

Mạng neural là một họ mô hình mạnh trong Machine Learning và là nền tảng của phần lớn Deep Learning hiện đại.

6. Language - Ngôn ngữ

Máy xử lý ngôn ngữ của con người:

  • phân loại văn bản;
  • tìm kiếm;
  • dịch;
  • hỏi đáp;
  • sinh văn bản.

Một ví dụ xuyên suốt: ứng dụng bản đồ

Một sản phẩm thật thường không thuộc đúng một ô trong bảng trên.

Giả sử ta xây một hệ thống chỉ đường:

Một hệ thống thực tế có thể kết hợp nhiều kỹ thuật AI cùng lúc.

Classical AI và Data-driven AI

Một cách chia đơn giản để dễ học:

Classical / Symbolic AI

Con người mô tả rõ:

  • trạng thái;
  • hành động;
  • luật;
  • mục tiêu;
  • hàm chi phí.

Sau đó máy tìm kiếm hoặc suy luận.

Ví dụ: BFS, A*, Minimax, logic mệnh đề.

Data-driven AI

Ta có dữ liệu và muốn hệ thống học quy luật từ dữ liệu.

Ví dụ: regression, classification, neural network.

Hai hướng này không loại trừ nhau. Hệ thống hiện đại có thể kết hợp cả search, optimization và model học máy.

Một framework đơn giản để nhìn mọi bài toán AI

Khi gặp một bài toán mới, thử trả lời lần lượt:

Không phải bài nào cũng đi hết sơ đồ. Điều quan trọng là biết đặt câu hỏi.

Xét graph rất nhỏ:

Ta đứng ở A, cần đến G.

Con người nhìn sơ đồ và gần như thấy ngay hai đường:

A -> B -> D -> G
A -> C -> E -> G

Nhưng máy tính cần một cách biểu diễn chính xác:

  • A là gì?
  • từ A đi được đâu?
  • làm sao biết đã tới G?
  • lưu những nơi đang chờ xét ở đâu?
  • chọn nơi nào để xét trước?

Đó chính là Search.

Tự kiểm tra

  1. Một chương trình dùng Minimax nhưng không học từ dữ liệu có phải AI không? Vì sao?
  2. Machine Learning và AI có phải hai khái niệm đồng nghĩa không?
  3. Trong Google Maps, hãy thử xác định state, action, goal và một ví dụ cost.
  4. Vì sao một thuật toán đơn giản đôi khi tốt hơn neural network?
  5. Trong bảy chủ đề của CS50 AI, bài toán “chọn nước đi tiếp theo trong Tic-Tac-Toe” gần nhất với chủ đề nào?

Nếu trả lời được bằng lời của mình, bạn đã có đủ khung để bắt đầu Search.