CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về AI, Machine Learning, Deep Learning
Hình 2.1 Mối quan hệ giữa hệ giữa trí tuệ nhân tạo, học máy và học sâu [38]
Hình 2.1 mô tả mối quan hệ giữa trí tuệ nhân tạo, học máy và học sâu.
2.1.1 Trí tuệ nhân tạo(AI)
Artificial Intelligence (AI) – Trí tuệ nhân tạo: là một cụm từ đang được xuất hiện ngày càng phổ biến trong thời gian gần đây. Trí tuệ nhân tạo có thể được định nghĩa như một ngành của khoa học máy tính liên quan đến việc tự động hóa các hành vi thông minh. AI là một bộ phận của khoa học máy tính, và do đó nó phải được đặt trên những nguyên lý lý thuyết vững chắc, có khả năng ứng dụng được của lĩnh vực này. Những nguyên lý này bao gồm các cấu trúc dữ liệu dùng cho biểu diễn tri thức, các thuật toán cần thiết để áp dụng những tri thức đó, cùng các ngôn ngữ và kỹ thuật lập trình dùng cho việc cài đặt chúng. Mục đích cuối cùng mà AI hướng đến là sử dụng máy móc để mô phỏng trí tuệ, cách tư duy của con người.
AI được chia thành 2 loại: General AI và Narrow AI. General AI là khái niệm chỉ những thiết bị tái hiện lại đầy đủ các giác quan của con người: Cách mà con người nhìn nhận sự vật, sự việc, cách tư duy để đưa ra các quyết định… Còn Narrow AI chỉ những công nghệ chỉ có khả năng thực hiện các nhiệm vụ cụ thể, với độ chính xác và hiệu suất tương đương con người, thậm chí còn vượt trội so với con người. Chúng ta có thể lấy hệ thống nhận dạng khuôn mặt trên facebook làm ví dụ.
27
“General AI” đề cập đến những thiết bị hoàn hảo, có khả năng tái tạo hoàn toàn lại tất cả các giác quan của con người, thậm chí mô phỏng lại cách bộ não xử lý thông tin và đưa ra quyết định. Những gì mà khả năng con người hiện có thể thực hiện đều nằm trong khái niệm “Narrow AI”.
2.1.2 Học máy (Machine Learning)
Học máy là một phương thức ứng dụng các thuật toán để phân tích dữ liệu, học hỏi từ nó, và sau đó tự mình đưa ra các quyết định hoặc dự đoán về các vấn đề có liên quan tới những gì đã phân tích, học hỏi trước đó. Vì vậy, thay vì lập trình một phần mềm bằng cách thức thủ công, với các thuật toán cụ thể để hoàn thành yêu cầu bài toán, ta sẽ “đào tạo” máy bằng cách sử dụng một lượng lớn dữ liệu và các thuật toán cho phép nó học cách thực hiện các tác vụ.
Computer Vision – thị giác máy tính – là một trong những ứng dụng tiềm năng nhất của học máy, nhằm giúp máy tính có khả năng nhìn và phân tích hình ảnh giống như con người. Ứng dụng cụ thể ngày nay có thể kể đến như nhận diện biển số, theo dõi chuyển động, phân loại chó, mèo… Tuy nhiên, computer vision cũng vấp phải rất nhiều thách thức và dễ phát sinh lỗi như khi tầm nhìn bị khuất, hay khi góc nhìn vật thể khác so với những dữ liệu đã được học.
Hai phương pháp học máy phổ biến nhất, được áp dụng rộng rãi là học có giám sát và học không giám sát, bên cạnh những phương pháp khác như học bán giám sát, học tăng cường.
Supervised Learning (SL) là một kĩ thuật học máy để học tập từ tập dữ liệu được gán nhãn cho trước. Tập dữ liệu cho trước sẽ chứa nhiều bộ dữ liệu. Mỗi bộ dữ liệu có cấu trúc theo cặp {x, y}, với x được xem là dữ liệu thô (raw data) và y là nhãn (label) của dữ liệu đó. Nhiệm vụ của SL là dự đoán đầu ra mong muốn dựa vào giá trị đầu vào. Máy học dựa vào sự trợ giúp của con người, hay con người dạy cho máy học và giá trị đầu ra mong muốn được định trước bởi con người. Tập dữ liệu huấn luyện hoàn toàn được gán nhãn dựa vào con người. Tập dữ liệu càng lớn thì máy tính càng được học nhiều, và sẽ đưa ra kết quả chính xác hơn. Kỹ thuật SL thực chất là để xây dựng một hàm có thể xuất ra giá trị đầu ra tương ứng với tập dữ liệu. Ta gọi hàm này là hàm h(x) và mong muốn hàm này xuất ra đúng giá trị y với một hoặc nhiều tập dữ liệu mới khác với dữ liệu được học. Hàm h(x) cần các loại tham số học khác nhau tùy thuộc với nhiều bài toán khác nhau. Việc học từ tập dữ liệu (training) cũng chính là tìm ra bộ tham số học cho hàm h(x).
Unsupervised learning (UL) là một kĩ thuật của máy học nhằm tìm ra một mô hình hay cấu trúc bị ẩn bơi tập dữ liệu không được gán nhãn cho trước. UL khác với SL là không thể xác định trước đầu ra từ tập dữ liệu huấn luyện. Tùy thuộc vào tập huấn luyện, kết quả đầu ra sẽ khác nhau. Trái ngược với SL, tập dữ liệu huấn luyện của UL không do con người gán nhãn, máy tính sẽ phải tự học hoàn toàn. Với phương thức học không giám sát, giá trị đầu ra sẽ phụ thuộc hoàn toàn vào thuật toán UL.
28 2.1.3 Học sâu (Deep learning)
Quan hệ giữa các khái niệm trí tuệ nhân tạo, học máy và học sâu được mô tả khái quát như trong Hình 2.1. Theo đó, trí tuệ nhân tạo và học máy là các khái niệm lớn, bao trùm lên học sâu. Học sâu là một cách để tiếp cận học máy. Học sâu mô phỏng lại bộ não người với nhiều lớp nơ-ron. Tuy nhiên, không giống như một bộ não sinh học, nơi mà bất kỳ nơ-ron nào cũng có thể liên kết với các nơ-ron khác trong một khoảng cách vật lý nhất định, các mạng thần kinh nhân tạo này có các lớp rời rạc, các kết nối, và các hướng truyền dữ liệu. Dữ liệu đầu vào sẽ được đưa vào lớp ngoài cùng – input layer. Các thông tin sẽ lần lượt được truyền và xử lý, tính toán trên các lớp ẩn – hidden layer. Số lượng và cấu trúc của các nơ-ron trên các lớp ẩn này quyết định độ chính xác và tốc độ xử lý của mạng nơ-ron. Dữ liệu sau khi qua các lớp ẩn này sẽ đến lớp cuối cùng – output layer và cho ra kết quả, được thể hiện trong Hình 2.2.
Hình 2.2 Quan hệ giữa các layer trong mạng nơ-ron [39]
Mỗi một kết nối giữa nơ-ron được liên kết với một trọng số (weight), được miêu tả trong Hình 2.3. Trọng số này chỉ rõ ra tầm quan trọng của giá trị đầu vào.
Trọng số khởi tạo được chọn ngẫu nhiên. Hình dưới đây mô tả khái quát một vài nơ- ron được kết nối với nhau và gán trọng số.
Hình 2.3 Trọng số của các liên kết trong mạng nơ-ron [40]
29
Học sâu là một khái niệm đã được các nhà khoa học chú ý từ lâu, tuy nhiên nó chỉ thực sự bùng nổ trong những năm gần đây. Có nhiều yếu tố dẫn đến sự bùng nổ này, có thể kể đến như:
- Khả năng tính toán song song tốc độ cao của GPU: Học sâu thực chất là một loạt các phép tính dùng tới dấu phẩy động được thực hiện song song, và đây lại chính là thế mạnh của GPU.
- Sự ra đời của các bộ dữ liệu lớn cần được gán nhãn.
- Sự cải tiến của các kiến trúc như GoogLeNet, Resnet, VGG… và các kỹ thuật transfer learning, fine tuning.
- Sự ra đời của các hàm kích hoạt mới, các kỹ thuật tối ưu mới.
Nhiều thư viện mới ra đời để hỗ trợ việc training với GPU như caffe, tensorflow, keras…