12/08/2018, 14:26

Artificial Intelligence - Introduction (AI to ML beginner part 1)

Đôi lời chia sẻ Trí tuệ nhân tạo, học máy, hệ trợ giúp quyết định hay thậm chí robot vốn không còn là những từ xa lạ với cuộc sống hiện nay, nhất là với những người làm công nghệ như chúng ta. Vậy bắt đầu từ đâu để chúng ta có được cái nhìn về học máy, mình sẽ cùng các bạn đi từng bước một để ...

Đôi lời chia sẻ

Trí tuệ nhân tạo, học máy, hệ trợ giúp quyết định hay thậm chí robot vốn không còn là những từ xa lạ với cuộc sống hiện nay, nhất là với những người làm công nghệ như chúng ta. Vậy bắt đầu từ đâu để chúng ta có được cái nhìn về học máy, mình sẽ cùng các bạn đi từng bước một để cùng nhau nắm bắt được một phần nào đó của thứ đang rất hot vài năm trở lại đây và chắc chắn sẽ phát triển rất mạnh mẽ trong tương lai nhé.

Part 1: Những điều cơ bản về trí tuệ nhân tạo

Định nghĩa:

Các định nghĩa về trí tuệ nhân tạo được chia làm 4 nhóm như sau:

  • Các hệ thống "suy nghĩ (thông minh) như con người"
    • "The exciting new effort to make computers thing machines with minds, in the full and literal sense." (Haugeland, 1985)
  • Các hệ thống "suy nghĩ một cách hợp lý"
    • "The study of mental faculties through the use of computational models." (Charniak and McDermott, 1985)
  • Các hệ thống "hành động (thông minh) như con người"
    • "The study of how to make computers di things at which, at the moment, people are better." (Rich and Knight, 1991)
  • Các hệ thống "hành động một cách hợp lý"
    • "Computational Intelligence is the study of design of intelligent agents." (Pool et al, 1998)

OK, vừa rồi là 4 nhóm định nghĩa về trí tuệ nhân tạo, chia ra thì nhiều, nhưng nhìn chung lại trí tuệ nhân tạo là một hệ thống hành động hợp lý trên những gì hệ thống đó biết, liên quan đến các quá trình suy nghĩ, suy diễn và hành động theo tiêu chuẩn của con người, với mục đích giúp cuộc sống của con người trở nên dễ dàng hơn.

Bắt đầu với trí tuệ nhân tạo

Để bắt đầu với trí tuệ nhân tạo, ta cần biết về cái gì trước tiên, đó là tác tử, tác tử là gì:

"Tác tử là bất cứ cái gì có khả năng nhận biết môi trường xung quanh nó thông qua các cảm biến (sensors) và hành động phù hợp với môi trường thông qua các bộ phân hành động(actuators)"

Ví dụ dễ thấy nhất, con người là 1 tác tử, các bộ phận nhận biết môi trường xung quanh(sensors) chính là mắt, mũi, tai.... các bộ phận hành động là chân, tay, miệng....

Còn về tác tử máy móc, sensors là camera, cảm biến....., actuators là các loại động cơ...

Tác tử phần mềm thì sensors thì sensors và actuators đếù là các chuỗi bit mã hóa, hay nói đơn giản hơn thì đều là các chương trình chúng ta viết ra.

agent_environment.jpg

Được rồi, bài viết này chúng ta sẽ nói nhiều 1 chút về tác tử và môi trường của tác tử nhé, vì nói cho cùng, mọi thứ đều là tác tử, kể cả phần mềm cũng vậy.

Trước tiên, định nghĩa về hàm tác tử: là hàm ánh xạ từ lịch sử nhận thức cho tới hành động:

    **f: P* -> A**

Hiểu đơn giản là khi ta có 1 lượng nhận thức nhất định trong lịch sử thì điều đó sẽ quyết định hành động của ta trong các trường hợp nhất định. Ví như hồi còn bé, ta đi lội suối, nước suối đục và xoáy làm ta mất dép, lần sau khi đi lội suối lại gặp nước suối đục, không xoáy, lịch sử nhận thức cho ta biết rằng lội xuống có thể bị mất dép, nhưng hoàn cảnh này ko giống y hệt trong lịch sử nên ta vẫn có thể đưa ra 1 quyết định là có lội hay ko, việc này dưa trên sự suy đoán và chấp nhận rủi ro của việc mất dép. Và đưa ra quyết định cho hành động này rõ ràng là dựa vào cá nhân mỗi người, còn tác tử thì dựa vào cấu trúc của hàm f, hàm f sẽ quyết định hành động dưa trên lịch sử nhận thức. Dễ hiểu chưa nào :v

Vậy nên ta có 1 định nghĩa nưa: "Chương trình tác tử được chạy dựa trên kiến trúc thực tế của hàm f"

Tác tử = kiến trúc + chương trình

Ở bài viết này, ta sẽ có 1 ví dụ về tác tử máy hút bụi: Máy hút bụi có khả năng nhận thức được những điều sau:

  • Vị trí
  • Mức độ sạch sẽ
  • Có thể di chuyển đến điểm đích hay không (hay nói đơn giản là nhận thức được chướng ngại vật)

Và có các hành động:

  • Di chuyển (sang trái sang phải quay đầu)
  • Hút bụi
  • Tắt
  • Bật
  • có thể bổ sung thêm: vẽ bản đồ Ta có thể xây dựng 1 cấu trúc hàm f đơn giản cho tác tử máy hút bụi như sau:
def react-vacuum-cleaner location, status
    return if all_map_clean()
    if status == dirty
        clean(location, status)
    else
        move(location)
    end
end

def move location
    self.location = new_location(location)
    update_map location, new_location(location)
end

def update_map current_location, new_location
    draw a map to memory
end

def new_location current_location
    check available location robot can move on
end

Tác tử hợp lý

Đại khái là như vậy, nhìn vào những cấu trúc hàm trên, ta có thể hình dung ra được tác tử sẽ làm gì khi n có được 2 thông tin về location và status, và việc mình cần làm là làm sao cho tác tử sẽ phấn đấu làm đúng việc cần làm dựa trên những gì nó nhận thức được và dựa trên hành động nó có thể thực hiện. ví như việc tìm 1 địa chỉ mới để đi đến khi gặp chường ngại vật khiến cho robot ko thể đi thẳng, ta ko thể bắt nó nhảy qua chường ngại vật, mà thay vào đó, tìm kiếm các địa chỉ xung quanh lần lượt theo chiều kim đồng hồ hoặc đi ngược trở lại 1 bước có thể là giải pháp. Các giải pháp đưa ra phải giúp cho tác tử có 1 hành động đúng, giúp tác tử đạt được thành công cao nhất với mục tiêu đặt ra (lau sạch nhà).

Vậy trí tuệ nhân tạo có ích gì ở đây, với mỗi lần robot hút bụi đi qua 1 địa điểm, n sẽ có được 1 nhận thức (nhận thức có thể lưu dưới nhiều hình thức sẽ được nói trong các bài viết sau này) với nhận thức đó, ta có thể linh hoạt trong mỗi quyết định hành động của robot (vẫn tuân theo cấu trúc hàm f) hoặc sau mỗi lần lau sạch nhà, tri thức sẽ được vận dụng cho những lần lau tiếp theo để đảm bảo hiệu suất cao nhất (tốn ít thời gian, lau sạch hơn, tiết kiệm điện bla blo).

Tác tử tự trị: Mọi nhận thức của tác tử được tự thu nạp bởi chính tác tử đó, hành động của tác tử được quyết định bởi kinh nghiệm của tác tử đó (khả năng học và thích nghi). Đây là cách mà hầu hết các ứng dụng trí tuệ nhân tạo ngày nay đang làm.

Phân loại tác tử:

  • Tác tử phản xạ đơn giản
  • Tác tử phản xạ dựa trên mô hình
  • Tác tử dựa trên mục tiêu
  • Tác tử dựa trên lợi ích

===================================================== (to be continued) ===============> OK, đến đây thôi, mình sẽ nói rõ hơn về các kiểu toán tử trong bài viết tiếp theo, mọi người nhớ đón xem và ủng hộ mình nha

0