+3

[Deep Learning] Hãy xem Deep Learning hoạt động thế nào

Trí tuệ nhân tạo (AI) và học máy (ML) một trong những lĩnh vực công nghệ nóng nhất hiện nay.

Thuật ngữ "AI" được nói đến xung quanh chúng ta. Bạn thường nghe những developers họ muốn học AI, hay những giám đốc điều hành họ nói muốn triển khai AI vào các dịch vụ của họ.

Nhưng thực sự thì nhiều người trong chúng ta vẫn chưa hiểu được AI là gì. Sau khi đọc xong bài này, bạn sẽ có cái nhìn rõ hơn về AI, ML và cụ thể hơn là Deep Learning - 1 lĩnh vực nhỏ trong Machine Learning. Bài viết này nói về khái quát là chủ yếu, vì vậy sẽ không liên quan nhiều đến toán nâng cao.

Background

Trước khi tìm hiểu cách thức hoạt động của Deep Learning, chúng ta phải nắm được sự khác biệt giữa các thuật ngữ đã.

AI vs ML

Trí tuệ nhân tạo là việc đưa trí thông minh của con người vào trong máy tính.

Khi nghiên cứu AI lần đầu tiên, thì các nhà nghiên cứu cố gắng tái tạo lại trí thông minh của con người cho các nhiệm vụ cụ thể, như chơi 1 trò chơi.

Họ đưa ra 1 số lượng lớn các quy tắc mà máy tính phải tuân theo. Máy tính có 1 loạt các hành động có thể thực hiện và việc của nó là lựa chọn hành động thông minh nhất và phải đúng quy tắc.

Học máy đề cập đến khả năng mà 1 máy tính có thể học cách sử dụng các tập dữ liệu lớn thay vì các nguyên tắc đã mã hóa cứng

ML cho phép máy tính tự học. Kiểu học này tận dụng sức mạnh xử lý của máy tính hiện đại và có thể dễ dàng xử lý tập dữ liệu lớn.

Học có giám sát & Học không giám sát (Supervised learning vs unsupervised learning)

Học có giám sát là việc sử dụng các tập dữ liệu được gán nhãn có đầu vào và đầu ra mong đợi.

Khi bạn huấn luyện 1 mô hình AI, bạn cung cấp cho nó dữ liệu đầu vào, và cho nó biết kết quả mong đợi. Ví dụ: Đứa em của bạn chỉ mới 3 tuổi và nó chưa biết con chó là gì, nếu mỗi ngày bạn cho nó gặp con chó 1 lần với 1 hình dáng con chó khác nhau và bạn bảo đó là con chó, và sau đó khoảng 10 lần như thế, bạn cho nó gặp lại con chó với 1 hình dáng không giống lần nào trước đó thì nó có thể nhận biết được không ? Việc bạn cho nó gặp con cho và bảo nó là con chó giống như việc học có giám sát.

Nếu kết quả đầu ra của AI là sai, thì nó sẽ điều chỉnh cách tính toán của mình, lặp đi lặp lại trên tập dữ liệu đó cho đến khi AI không mắc lỗi nữa.

Học không giám sát là nhiệm vụ mà học máy sử dụng tập dữ liệu không có cấu trúc cụ thể.

Khi bạn huấn luyện AI với việc học không giám sát, AI sẽ tự thực hiện phân loại dữ liệu hợp lý.

Ví dụ cho việc học không giám sát: Khi bạn đăng ký youtube lần đầu tiên, thì các video mà họ gợi ý cho bạn chính là nhờ các thông tin tài khoản của bạn (như tuổi, khu vực, ...) để xếp bạn vào 1 nhóm người dùng trước đó.

Thế Deep Learning hoạt động thế nào?

Deep Learning là 1 lĩnh vực nhỏ trong ML, cho phép chúng ta huấn luyện AI để dự đoán kết quả đầu ra, dựa vào tập dữ liệu đầu vào, cả học có giám sát và không giám sát đều có thể sử dụng.

Chúng ta cùng tìm hiểu cách thức hoạt động thông qua 1 ví dụng dự đoán giá vé máy bay, chúng ta huấn luyện nó sử dụng cách học có giám sát:

Dự đoán giá vé nhờ các thông tin đầu vào sau:

  • Sân bay đi
    
  • Sân bay đến
    
  • Ngày bay
    
  • Hãng máy bay
    

Mạng neural

Hãy xem "bộ não" bên trong AI là gì.

Giống như động vật, "bộ não" AI có các tế bào thần kinh, hay còn gọi là tế bào Xôma. Chúng là các vòng tròn trong hình dưới, các tế bào được nối với nhau.

Mạng neural được nhóm thành 3 loại lớp:

  • Lớp đầu vào (Input layers)
  • Lớp ẩn (Hidden layers)
  • Lớp đầu ra (Output layers)

Lớp đầu vào nhận dữ liệu đầu vào. Trong hình trên, chính là 3 neural trong vùng đỏ. Chúng ta có 4 đầu vào là sân bay đi, sân bay đến, ngày bay, hãng bay. Lớp đầu vào nhận dữ liệu và trả dữ liệu cho lớp ẩn đầu tiên.

Lớp ẩn thực hiện tính toán trên dữ liệu từ lớp đầu vào trả về. Việc thách thức là chọn số lượng lớp ẩn, và số neural trong 1 lớp ẩn.

Từ "Deep" trong "Deep Learning", ý chỉ mạng của bạn có 1 hay nhiều lớp ẩn, mạng càng nhiều lớp ẩn thì càng sâu, số neural trong 1 lớp ẩn càng nhiều thì càng rộng.

Lớp đầu ra trả về dữ liệu đầu ra, trong trường hợp này chính là price - giá vé dự đoán.

Nhìn sơ sơ thì là như vậy, còn nó tính toán thế nào là 1 cách vi diệu trong Deep Learning, hãy cùng xem qua nhé.

Mỗi kết nối của 2 neural trong hình bên trên được đặt là 1 Weight hay 1 trọng số. Nó tượng trưng cho tầm quan trọng của giá trị đầu vào, lúc đầu thì các trọng số được khởi tạo ngẫu nhiên thôi. Ví dụ: Khi dự đoán, thì yếu tố "Ngày bay" là quan trọng hơn cả, nên các kết nối bắt nguồn từ "Ngày bay" sẽ có trọng số lớn hơn 1 chút

Mỗi neural có 1 hàm kích hoạt, để hiểu được hàm này làm gì thì cần phải sâu hơn về toán 1 chút. Hiểu đơn giản thì nó chuẩn hóa giá trị đầu ra của mỗi neural sao cho phù hợp

Huấn luyện mạng neural

Để huấn luyện 1 AI trong Deep Leaning là 1 điều khá khó, bạn cần có 2 thứ:

  • 1 tập dữ liệu lớn
  • 1 thiết bị tính toán tốt

Ở đây, để dự đoán tốt giá vé, thì chúng ta cần tìm dữ liệu lịch sử của giá vé, gồm nhiều hãng bay khác nhau, vì thế dữ liệu khá lớn.

Để huấn luyện AI, chúng ta cung cấp tập dữ liệu đầu vào và so sánh dữ liệu đầu ra của nó với dữ liệu đầu ra mong muốn. Vì AI vẫn chưa được huấn luyện tốt nhất nên kết quả đầu ra vẫn còn sai.

Để đánh giá kết quả đầu ra của AI sai đến đâu so với kết quả đầu ra mong muốn của chúng ta, ta sẽ dùng hàm chi phí gọi là Cost Function.

Điều lý tưởng là hàm Cost Function sẽ trả về giá trị 0, lúc này đầu ra AI của chúng ta giống hệt kết quả mong muốn.

Làm thế nào để giảm hàm chi phí

Chúng ta có thể thay đổi trọng số, tức là các weight của mạng neural một cách ngẫu nhiên cho đến khi hàm chi phí nhỏ nhất, nhưng việc này không hiệu quả lắm. Thay vào đó ta dùng 1 thứ gọi là Gradient Descent.

Gradient Descent cho phép ta tìm điểm cực tiểu của 1 hàm, ở đây chính là Cost Function.

Nó hoạt động bằng cách thay đổi các weight (ban đầu là khởi tạo ngẫu nhiên) từng chút 1 sau mỗi lần lặp qua bộ dữ liệu. Bằng việc tính đạo hàm của Cost Function phụ thuộc vào các trọng số, chúng ta có thể thấy Cost Function giảm như thế nào.

Chúng ta có thể thấy, để lấy được các weight sao cho Cost Function nhỏ nhất, ta phải lặp nhiều lần qua 1 tập dữ liệu lớn, việc này cần 1 sức mạnh tính toán lớn.

Việc tự động cập nhật lại các weight chính là điều 'vi diệu' trong Deep Learning.

Sau khi đã có được các weight phù hợp, bạn đưa bất kỳ số liệu mới nào vào thì AI dự đoán giá cả 1 cách đủ tốt cho bạn.

Tìm hiểu thêm ở đâu?

Bạn có thể tìm hiểu thêm các loại mạng neural xem chúng hoạt động thế nào: Convolutional Neural Network (CNN) trong Computer Vision, Recurrent Neural Network (RNN) trong Natural Language Processing.

Nếu bạn muốn tìm hiểu kỹ về Deep Learning 1 cách bài bản, bạn có thể tham khảo 1 số khóa học online.

Hiện tại, khóa học nổi tiếng nhất là Deep Learning Specialization của giáo sư Andrew Ng (giáo sư nổi tiếng thế giới về Học máy).

Tóm tắt

  • Deep Learning dùng mạng neural để huấn luyện AI.
  • Có 3 loại lớp trong mạng neural: Lớp đầu vào, lớp ẩn, lớp đầu ra.
  • Mạng càng nhiều lớp ẩn thì càng sâu, càng khó huấn luyện và tốn nhiều tài nguyên tính toán. Đổi lại thì cho kết quả càng chính xác.
  • Các trọng số trong mạng đại diện cho tầm ảnh hưởng của giá trị đầu vào tới giá trị đầu ra.
  • Mỗi neural dùng 1 hàm kích hoạt để chuẩn hóa giá trị đi ra từ neural đó.
  • Để huấn luyện mô hình bạn cần bộ dữ liệu lớn.
  • Dùng Gradient Descent lặp lại nhiều lần qua tập dữ liệu để tự động cập nhật các trọng số là điều 'vi diệu' trong Deep Learning.

Cảm ơn vì đã đọc!

Nguồn: Medium, Keras


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí