Image credit: Datanami
Đây là lời giải thích đơn giản và ngắn gọn dành cho những ai chưa hiểu rõ về Deep Learning hoặc tò mò về khái niệm này. Bài viết được tôi dịch lại từ chia sẻ (có điều chỉnh để phù hợp với nhiều bạn đọc) của anh Radu Raicea - một Software Engineer hiện đang làm việc tại Python.
Hướng dẫn này dành cho tất cả mọi người. Bạn không cần những kiến thức toán học hay máy tính cao cấp để hiểu.
---------------------
Artificial Intelligence (AI) và Machine Learning (ML) là một trong những chủ đề nóng nhất hiện nay, và bạn có thể dễ dàng thấy chúng được nhắc đến rất nhiều trên Internet. 
Thuật ngữ “AI” cũng có mặt trong các cuộc nói chuyện hàng ngày. Bạn nghe ai đó muốn học về AI? Bạn nghe các giám đốc, quản lý, start-up nói rằng họ muốn dùng AI để cung cấp các dịch vụ của họ. Nhưng vấn đề là, nhiều trong số những người này vẫn chưa hiểu rõ AI là gì cả. 
Tuy nhiên, một khi đã đọc bài viết này thì phần nào đó, bạn sẽ hiểu những điều cơ bản về AI và ML, cũng như nắm được cách mà Deep Learning - một loại ML phổ biến nhất hiện nay hoạt động.

Kiến thức nền 

Bước đầu tiên để hiểu cách mà Deep Learning hoạt động đó là nhận dạng được những điểm khác biệt giữa một số thuật ngữ quan trọng.

Artificial Intelligence với Machine Learning

Artificial Intelligence là sự sao chép trí thông minh của con người (Human Intelligence) vào trong máy tính. 
Khi nghiên cứu về AI lần đầu tiên được thực hiện, các nhà nghiên cứu đã cố gắng sao chép trí thông minh của con người cho những công việc cụ thể - chẳng hạn như chơi một trò chơi.
Họ đưa ra rất nhiều quy tắc mà các máy tính cần phải tuân thủ. Máy tính có một danh sách cụ thể các hoạt động có khả năng thực hiện, và đưa ra quyết định dựa trên những quy tắc này.
Machine Learning ám chỉ khả năng học tập của một máy móc bằng cách sử dụng các bộ (set) dữ liệu rất lớn thay vì những quy tắc không thể sửa đổi (hard-coded). 
ML cho phép các máy tính có thể tự học. Loại học này tận dụng sức mạnh xử lý của các máy tính hiện đại - những thiết bị mà có thể dễ dàng xử lý các set dữ liệu lớn.

Supervised learning vs unsupervised learning

Supervised Learning liên quan đến việc sử dụng các bộ dữ liệu đã được gán mà có đầu vào (Inpurt) và các đầu ra (Output) được kỳ vọng.
Khi bạn dạy một AI bằng cách sử dụng Supervised Learning, nghĩa là bạn đã cho nó một đầu vào và nói với nó đầu ra mong đợi của bạn.
Nếu đầu ra được tạo bởi AI là sai thì nó sẽ phải điều chỉnh lại các tính toán của nó. Quá trình này được thực hiện một cách lặp đi lặp lại trên bộ dữ liệu đó cho tới khi AI không gây ra lỗi nào nữa.
Một ví dụ về Supervised Learning đó là AI dự báo thời tiết. Nó học cách dự báo thời tiết bằng cách sử dụng dữ liệu lịch sử. Dữ liệu để dạy gồm có các đầu vào (áp lực, độ ẩm, tốc độ gió) và đầu ra (nhiệt độ).
Unsupervised Learning là cách dạy các AI bằng cách sử dụng các bộ dữ liệu mà không có cấu trúc cụ thể.
Khi bạn dạy một AI bằng cách sử dụng Unsupervised Learning, bạn để cho AI tự phân loại dữ liệu một cách logic. 
Một ví dụ về Unsupervised Learning đó là AI dự đoán hành vi cho một trang web thương mại điện tử. Nó không học bằng cách dùng một bộ dữ liệu đầu vào và đầu ra đã được gán.
Thay vào đó, nó sẽ tạo ra các phân loại dữ liệu đầu vào của riêng nó. Nó sẽ nói với bạn loại người dùng nào có khả năng nhất sẽ mua các sản phẩm khác nhau.

Vậy thì Deep Learning hoạt động như thế nào?

Với các kiến thức nền ở trên, bạn đã sẵn sàng để tìm hiểu về Deep Learning là gì và cách mà nó làm việc.
Về cơ bản, Deep Learning là một phương pháp học máy (ML). Nó cho phép chúng ta dạy một AI dự đoán đầu ra dựa trên một bộ đầu vào. Cả hai loại Supervised và Unsupervised Learning đều có thể được sử dụng để dạy AI.
Để tìm hiểu cách Deep Learning hoạt động, chúng ta hãy thử xây dựng một dịch vụ dự đoán giá vé máy bay. Chúng ta sẽ dạy cho AI bằng cách dùng phương pháp Supervised Learning.
Chúng ta muốn AI dự đoán vé máy bay dự đoán giá bằng cách sử dụng những đầu vào sau (để đơn giản, chúng ta sẽ loại bỏ các vé khứ hồi):
  • Origin Airport (Điểm khởi hành)
  • Destination Airport (Điểm đến)
  • Departure Date (Thời gian khởi hành)
  • Airline (Hãng máy bay)

Mạng Reuron (Neural networks)

Bây giờ, hãy cùng nhìn vào bộ não của AI.
Giống như con người, bộ não của AI dự đoán cũng có neuron. Chúng được biểu thị dưới dạng các vòng tròn được liên kết với nhau.
Image credit: CS231n
Các neuron được nhóm thành 3 loại lớp (layer) như sau:
  1. Input Layer (lớp đầu vào)
  2. Hidden Layer (s) (lớp ẩn)
  3. Output Layer (lớp đầu ra)
Lớp đầu vào nhận dữ liệu đầu vào. Trong trường hợp trên, chúng ta có 4 neuron trong lớp này: Origin Airport, Destination Airport, Departure Date, và Airline. Các đầu vào sẽ đi qua Input Layer để đi vào lớp ẩn.
Lớp ẩn thực hiện các tính toán về mặt toán học đối với các đầu vào. Một trong những thử thách trong việc tạo được các mạng neuron đó là quyết định số lượng các lớp ẩn cũng như số neuron cho mỗi lớp.
Từ “Deep” trong Deep Learning ám chỉ có nhiều hơn một lớp ẩn.
Lớp đầu ra sẽ trả về các dữ liệu đầu ra. Trong trường hợp đang giả định đó là chúng ta sẽ nhận được thông tin về dự đoán giá. 

Vậy thì AI tính toán giá dự đoán như thế nào?
Đây chính là điểm mà Deep Learning tạo ra điều kỳ diệu.
Mỗi một kết nối giữa các neuron được gắn với một trọng số (weight). Trọng số này quyết định tầm quan trọng của giá trị đầu vào. Ban đầu, các trọng số được đặt ngẫu nhiên.
Khi dự đoán giá vé máy bay, ngày khởi hành là một trong những yếu tố “nặng” nhất. Do đó, các kết nối neuron ở đầu vào ngày khởi hành sẽ có trọng số lớn.
Image credit: CodeProject
Mỗi neuron có một hàm kích hoạt (hàm f hay Activation Function). Các hàm này rất khó để hiểu nếu như không có kiến thức chuyên sâu về toán học.
Một cách đơn giản, một trong những mục đích của hàm kích hoạt đó là “chuẩn hóa” đầu ra từ neuron đầu vào. 
Một khi một bộ dữ liệu đầu vào vượt qua tất cả các lớp trong mạng neuron thì nó sẽ trả lại dữ liệu đầu ra qua lớp đầu ra. 
Không có gì phức tạp phải không nào?

Đào tạo mạng Neuron 

Dạy AI là phần khó nhất của Deep Learning. Tại sao?
  1. Bạn cần một bộ dữ liệu lớn.
  2. Bạn cần một lượng lớn sức mạnh điện toán
Đối với AI dự đoán giá vé máy bay, chúng ta cần tìm dữ liệu lịch sử của các giá vé. Và vì một lượng lớn các kết hợp có thể giữa hãng máy bay và ngày khởi hành nên chúng ta cần một danh sách vô cùng lớn các giá máy bay.
Để dạy AI, chúng ta cần đưa cho nó dữ liệu đầu vào từ bộ dữ liệu của chúng ta và so sánh các dữ liệu đầu ra của nó với dữ liệu đầu ra từ bộ dữ liệu. Vì AI vẫn chưa được dạy nên đầu ra của nó sẽ không chính xác.
Một khi chúng ta nghiên cứu kỹ toàn bộ bộ dữ liệu, chúng ta có thể tạo ra một hàm cho thấy các dữ liệu đầu ra của AI khác với các dữ liệu thật sự như thế nào. Hàm này được gọi là hàm chi phí (Cost Function). 
Một cách lý tưởng, chúng ta muốn hàm chi phí bằng 0, đồng nghĩa với đầu ra của AI giống với đầu ra của bộ dữ liệu.

Làm thế nào chúng ta có thể đạt được giá trị này?

Chúng ta thay đổi trọng số giữa các neuron. Chúng ta có thể ngẫu nhiên thay đổi chúng cho tới khi hàm chi phí thấp nhưng điều này không hề hiệu quả.
Thay vào đó, chúng ta sử dụng một kỹ thuật gọi là Gradient Descent
Gradient Descent là một kỹ thuật cho phép chúng ta tìm điểm nhỏ nhất của một hàm. Trong trường hợp này, chúng ta đang tìm kiếm điểm nhỏ nhất của hàm chi phí.
Nó hoạt động bằng cách thay đổi trọng số với các lượng gia (increment) nhỏ sau mỗi lần lặp lại bộ dữ liệu. Bằng cách tính toán đạo hàm (hoặc gradient) của hàm chi phí ở một bộ trọng số cụ thể, chúng ta có thể nhìn thấy những hướng nào là nhỏ nhất. 
Image credit: Sebastian Raschka
Để tối thiểu hóa hàm chi phí, chúng ta cần lặp lại bộ dữ liệu nhiều lần. Đó là lý do tại sao cần phải có lượng lớn sức mạnh điện toán. 
Cập nhật trọng số bằng cách dùng Gradient Descent được thực hiện tự động. Đó là điều kỳ diệu của Deep Learning. 
Một khi chúng ta dạy cho AI (dự đoán giá vé máy bay) thì chúng ta có thể sử dụng nó để dự đoán giá trong tương lai.

Các nguồn để tìm hiểu sâu hơn về Deep Learning

Có rất nhiều loại mạng neuron khác nhau: Convolutional Neural Networks (Mạng neuron tích chập) cho Computer Vision (Thị giác máy tính) và Recurrent Neural Networks (Mạng neuron hồi quy) cho Natural Language Processing (Xử lý ngôn ngữ tự nhiên).
Nếu muốn tìm hiểu khía cạnh kỹ thuật của Deep Learning, tôi khuyên bạn nên tham gia một khóa học trực tuyến.
Hiện tại, một trong những nguồn tuyệt vời nhất để học về Deep Learning đó là khóa Deep Learning Specialization (Chuyên sâu về Deep Learning) của Andrew Ng (Co-founder của Coursera). Nếu muốn học miễn phí thì bạn chỉ cần lựa chọn học mà không lấy chứng chỉ (audit).
*** Một website khác để tìm hiểu về Machine Learnign mà tôi mới tìm thấy trong khi dịch bài viết này đó là blog Machine Learning cơ bản của anh Vũ Hữu Tiệp - hiện là nghiên cứu sinh ngành Học Máy và Thị Giác Máy Tính tại Đại học bang Pennsylvania. Các bài viết đều bằng tiếng Việt nên sẽ rất dễ để học.

Tóm tắt:

  • Deep Learning sử dụng mạng neuron để bắt chước trí trông minh của con người.
  • Có 3 loại lớp neuron trong một mạng neuron: lớp đầu vào (Input Layer), lớp ẩn (Hidden Layer) và lớp đầu ra (Output Layer).
  • Các kết nối giữa các neuron gắn với một trọng số, quyết định tầm quan trọng của giá trị đầu vào.
  • Mỗi neuron gắn với một hàm kích hoạt trong dữ liệu để “chuẩn hóa” đầu ra là kết quả của neuron. 
  • Để dạy một mạng neuron, bạn cần một bộ dữ liệu rất lớn.
  • Lặp lại một bộ dữ liệu và so sánh các đầu ra sẽ tạo ra một hàm chi phí biểu thị bao nhiêu lỗi mà AI tạo ra so với các đầu ra thực tế.
  • Sau mỗi một lần lặp như vậy, các trọng số giữa các neuron được điều chỉnh bằng cách dùng Gradient Descent để giảm giá trị hàm chi phí.
 
Nếu muốn đọc các bài dịch và bài viết của tôi (về cuộc sống, kỹ năng và nhiều thứ khác), bạn có thể truy cập vào Blog Form Your Soul nhé. 

Form Your Soul with Love