Tìm hiểu tổng quan về trí tuệ nhân tạo -AI (Phần II)

-Tiếp tục phần 1. Nếu bạn chưa đọc phần 1, bấm vào đây 


Kỹ thuật Neural Network

Là một trong những thuật toán được sử dụng trong Machine Learning, Neural Network lấy ý tưởng từ phương thức hoạt động sinh học của não bộ của ta, mô phỏng quá trình mà bộ não làm việc và xử lý các tín hiệu từ môi trường bên ngoài.

Bộ não sinh học bao gồm các đơn vị gọi là neuron được liên kết với nhau bởi các Axon và Synapse, cho phép truyền đi các tín hiệu điện giữa neuron này với neuron khác. Có thể coi những tín hiệu điện này là các suy nghĩ và tư tưởng của chúng ta.
Cấu tạo của neuron


Neural Network cũng mang một cấu trúc tương tự như thế
Nguồn: Hacker Noon
  Mạng lưới của chúng ta được cấu thành từ các đơn vị gọi là Activation unit đóng chức năng như một neuron trong hệ thống não người. Trong một thí nghiệm mình từng đọc qua, khi các nhà khoa học nghiên cứu hoạt động của não bộ con người bằng cách quan sát điện não đồ của tình nguyện viên. Khoảnh khắc mỗi khi các tình nguyện viên tìm được một hướng đi mới trong giải quyết câu đố, hay chúng ta còn gọi là khoảnh khắc eureka, một phần trong điện não đồ của tình nguyện viên lại phát sáng lên. Activation unit là một giá trị số thực. Trong trường hợp tương tự, activation unit của ta mang giá trị càng cao, thì càng "phát sáng", hay activate (kích hoạt).

Trong ảnh, mỗi hình tròn tượng trưng cho một activation unit và chúng được nhóm lại với nhau theo các lớp (Layer). Mỗi layer có thể chứa một số lượng activation unit tùy ý. Một Neural Network càng nhiều layer thì mạng lưới đó càng đặc. Xét về tính chất của mỗi layer, ta có 3 loại layer chính:
  • Input Layer: đơn giản là chứa các input (thông tin đầu vào) mà ta muốn đưa vào mạng lưới của ta.
  • Output Layer: chứa output (thông tin đầu ra). Kết quả của mạng lưới sẽ được chứa ở đây. Tùy vào trường hợp mà output layer có thể có một hoặc nhiều activation unit. Tuy nhiên, trong mỗi Neural Network sẽ chỉ có một Input Layer và Output Layer.
  • Hidden Layer: như nghĩa của từ "hidden" có nghĩa là ẩn. Đây là layer chúng ta có thể có bao nhiêu tùy thích (như trên hình là 2 hidden layer). Chúng đóng góp cho mạng lưới như là một "màng lọc" cho các input trong việc đưa ra kết quả. Theo thứ tự từ trái sang phải, các hidden layer được đánh số thứ tự để dễ phân biệt, bắt đầu từ layer gần input layer nhất là 1, 2, 3,.... Tuy nhiên, càng nhiều hidden layer đồng nghĩa với mạng lưới của ta càng phức tạp và khó đoán, là một điều khá... phiền để sửa nếu những dự đoán của nó không như ta mong muốn.
Giống như axon và synapse để liên kết các neuron trong tế bào thần kinh của chúng ta. Những đơn vị cấu tạo nên Neural Network cũng cần những liên kết giữa chúng, là các mũi tên được vẽ ở hình trên. Theo nguyên tắc, ta sẽ bắt đầu nối từ input layer, qua các hidden layer 1, 2, 3,... và cuối cùng là output layer. Trong đó, với mỗi activation unit của layer này sẽ có một liên kết tới tất cả các activation unit của layer kế tiếp và cứ thế cho đến output layer.

Trước khi tiếp tục, mình muốn quay lại góc nhìn sinh học một chút (với tư cách là một người tệ trong môn Sinh ở trường ) xin mạn phép nhắc đến khái niệm vỏ bọc Myelin (Myelin sheath).

Bạn có nhớ về lúc bạn tập chạy xe đạp hồi nhỏ không? Lúc đầu bạn phải chật vật xử lý quá nhiều việc như đạp bàn đạp, chỉnh tay lái, nhìn lên nhìn xuống nhìn đường xong té xe rồi lại nhìn trời (mình đùa thôi). Còn bây giờ thì sao? Bạn bớt để ý tiểu tiết lại và tập trung vào những thứ quan trọng, bạn bắt đầu vững tay hơn và té ít hơn. Đó là do não bạn đã quen với hành động lái xe này, nó biết đâu là yếu tố quan trọng để xử lý giúp bạn có thể giữ thăng bằng trên xe đạp và cho phép bạn cảm nhận được những yếu tố đó dễ dàng hơn. Ví dụ như hồi xưa lúc tập xe mình luôn phải dán mắt vô bàn đạp mà quên nhìn đường... hậu quả thì khỏi phải nói nhé. Còn bây giờ, mình có thể dễ dàng cảm nhận vị trí bàn đạp thông qua xúc giác của chân. Đó là do trong việc luyện tập xe đạp, những tín hiệu ngoại cảnh mà chúng ta chú ý (vị trí bàn đạp) đã hình thành ở ngoài mối liên kết giữa việc đi xe với vị trí bàn đạp một màng bọc Myelin, giúp sự truyền dẫn các tín hiệu điện của ta nhanh hơn và được bảo toàn, dẫn đến việc dễ dàng tiếp thu thông tin hơn. 
Đó là lý do có câu: "Practice makes perfection"   

Mối liên kết giữa các activation unit là cái mà chúng ta sẽ gọi là Weight. Tương tự màn bọc Myelin, chúng cho phép giá trị trong một số activation unit quan trọng truyền đi dễ dàng hơn. Tức là mối liên kết càng "nặng" thì tốt nhất nên được ưu tiên, weight cũng là một giá trị số thực giống như activation unit vậy nhưng để tránh vấn đề toán học, ta sẽ xem như nó là sợi dây liên kết giữa hai activation unit. Để đơn giản hóa cho những gì mình sắp nói tiếp theo, chúng ta sẽ sử dụng hình dưới đây.


  Chúng ta sẽ xét trường hợp có 1 activation unit và các mối liên kết của nó từ các activation unit của layer trước đó. Trong hình bạn sẽ thấy, mối liên kết với X1 được vẽ đậm hơn, biểu thị rằng W1 "nặng" và giá trị trong X1 cần được coi là quan trọng. Đối lập lại, X3 dường như không ảnh hưởng gì nhiều cho lắm đến activation unit của chúng ta, nên liên kết W3 được vẽ mỏng hơn, dù cho giá trị của X3 có lớn bao nhiêu thì có vẻ như nó không có "trọng lượng" gì. Nhờ vậy, ta có thể tạo ra một hệ thống đánh giá phức tạp để đưa ra quyết định cuối cùng.  

Đây là một ví dụ về một Neural Network phức tạp hơn với 3 hidden layer với 9 activation unit. Ngoài ra, ta còn có 8 cái ở input layer và 4 cái ở output layer.

   Từ đây bằng những phép tính đơn giản ta có thể thấy được có tổng cộng 39 activation unit và 8x9+9x9+9x9+9x4=270 liên kết trong mạng lưới của ta. Một con số gây khó khăn cho ta trong việc hình dung nhưng vẫn chưa là gì so với bộ não con người. Hình ảnh bao gồm toàn bộ các layer mà mọi người vừa thấy được gọi là một mô hình (Model). Khi đã có mô hình rồi, ta sẽ cho chúng "học" và hình dung ra giá trị của mỗi weight. Phương pháp học tập của chúng thì nằm ngoài phạm vi của bài viết này nên mình sẽ không đi vào chi tiết nhưng các bạn có thể tìm kiếm thêm về thuật toán Backpropagation.

Deep Learning

Được tách ra từ Machine Learning, Deep Learning là lĩnh vực chuyên sâu về tìm hiểu và nghiên cứu về Neural Network, song những mô hình trong Deep Learning thường được gọi là Deep Neural Network. Ở đây, "deep" nhằm chỉ số lượng hidden layer của một mô hình trong Deep Learning thường xấp xỉ 150 layer so với mô hình truyền thống chỉ từ 2-3 layer.

Ngoài ra, những vấn đề mà Deep Learning đang giải quyết đều là những vấn đề phân loại và nhận diện (classification), được ứng dụng tốt trong các chương trình xe tự hành hay nhận diện hình ảnh/video.

Sự khác nhau giữa Machine Learning và Deep Learning

Vì sự giống nhau về khái niệm giữa 2 lĩnh vực này nên đây là hai khái niệm thường dễ bị nhầm lẫn với nhau. Để có một ranh giới rõ ràng hơn, chúng ta sẽ xem xét sự khác nhau của chúng.
  1. Vấn đề cần được giải quyết: Machine Learning có thể giải quyết các vấn đề về dự đoán, phân loại, gộp nhóm. Ngược lại, Deep Learning chỉ có khả năng trong xử lý các vấn đề về phân loại song sự chính xác của nó vượt xa Machine Learning trong lĩnh vực này.
  2.  Phương pháp giải quyết vấn đề: Machine Learning giải quyết vấn đề thông qua sử dụng thuật toán và chọn các tham số hợp lý. Deep Learning lại chú trọng vào việc xây dựng mô hình Deep Neural Network phù hợp cho bài toán được đưa ra.
  3. Cách xử lý dữ liệu: Những dữ liệu có được cần phải qua xử lý bằng tay, chiết xuất những thông tin cần thiết rồi từ đó mới có thể nạp vào thuật toán muốn sử dụng. Deep Learning mặt khác "cân" luôn dữ liệu thô, do những hidden layer đã tự động hóa làm điều đó rồi. Việc này khiến cho Deep Learning rất là hữu dụng trong các vấn đề thực tiễn.
     
  4. Độ chính xác tỉ lệ thuận với số lượng dữ liệu thu thập được: Khác với Machine Learning, khi dữ liệu đến một mức nào đó không thể làm tăng độ chính xác của thuật toán trong khi Deep Learning mang khả năng này. 

Tại sao không dùng Deep Learning trong tất cả các vấn đề?

Deep Learning mạnh là vậy nhưng như đã nói ở trên, nó có những loại vấn đề không thuộc phạm vi xử lý. Ngoài ra, cũng có vài trường hợp không nên "dùng dao mổ trâu giết gà" khi Deep Learning yêu cầu nhiều tài nguyên tính toán (computation resource) và phức tạp dẫn tới việc khó chỉnh sửa. Chắc bạn không muốn việc viết ra một ứng dụng phân loại thư của mình lại phải mất tới 6-7 tháng trong khi chỉ cần 1-2 tháng với Machine Learning.

Artificial Intelligence

Chúng ta đã đến với khái niệm cuối cùng: Artificial Intelligence.

Artificial Intelligence là gì?

Theo như định nghĩa trên Wikipedia:
Colloquially, the term "artificial intelligence" is applied when a machine mimics "cognitive" functions that humans associate with other human minds, such as "learning" and "problem solving".

Về thông tục, "artificial intelligence" được sử dụng khi một cỗ máy có khả năng "nhận thức" mà khả năng ấy giống với nhận thức của con người, như là "khả năng học hỏi" và "khả năng giải quyết vấn đề"
 Nói cách khác AI là cái tên cho những cỗ máy "giống người" về nhận thức. Còn về cách thức có thể sử dụng Machine Learning hay Deep Learning không quan trọng. Nhưng thường là sự kết hợp của nhiều thuật toán Machine Learning hay nhiều mô hình Deep Learning để có thể đạt được
Mối quan hệ giữa AI - ML - DL
Trên lý thuyết, có 2 loại AI cần quan tâm đó là:

  • Artificial General Intelligence (AGI): loại AI có khả năng tư duy như con người, có khi nhỉnh hơn khả năng suy nghĩ của con người. Được cho là loại AI đầu tiên mà con người chế tạo thành công để vượt qua The Turing Test.
  • Artificial Superintelligence (ASI): trình độ xử lý thông tin, suy nghĩ, tư duy vượt xa những gì con người có thể tưởng tượng. Chúng sẽ giúp con người hoàn thành công nghệ nano nhưng có những ý kiến cho rằng sẽ là sự hủy diệt của loài người.
Hiện nay sức nóng của AI là không thể nào hơn, với những bình luận của báo chí về công nghệ mới này đồng thời cũng gây ra làn sóng dư luận về sự tồn vong của loài người. Chương tiếp theo của AI bây giờ vẫn còn là ẩn số. Ta chỉ biết rằng, ngoài kia, là sự chạy đua về công nghệ AI đang diễn ra trên toàn thế giới...


Kết

Qua những gì các bạn vừa đọc, mình mong là đã mang lại góc nhìn thú vị về một trong những cơn sốt công nghệ hiện nay và những thông tin hữu ích cho các bạn.

Mọi sai sót, bổ sung và góp ý xin bình luận bên dưới.
Cảm ơn các bạn đã đọc. 

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

Phép phân tích ma trận A=LU

Hướng dẫn đăng ký khóa học trên Coursera và edX miễn phí

Độc lập tuyến tính và phụ thuộc tuyến tính