Muốn biết cách thức hoạt động của Deep Learning? Hãy đọc hướng dẫn nhanh sau!

15330

Artificial Intelligence (AI) và Machine Learning (ML) là 1 trong số những topic nóng nhất hiện nay.

Hy vọng bài viết này sẽ giúp bạn hiểu được những kiến thức cơ bản về AI & ML. Quan trọng hơn, bạn sẽ nắm rõ cách hoạt động của Deep Learning – hình thức phổ biến nhất Machine Learning.

Background

Đầu tiên, bạn cần hiểu các khái niệm quan trọng có liên quan.

Artificial Intelligence vs Machine Learning

Artificial Intelligence LÀ sự tái Tạo của Trí Tuệ CON NGƯỜI TRONG CÁC MÁY TÍNH

Khi AI mới ra đời, các nhà nghiên cứu đã cố gắng tái tạo trí thông minh của con người cho những nhiệm vụ cụ thể – như chơi game.

Các nhà nghiên cứu đã giới thiệu rất nhiều quy tắc mà máy tính cần tuân thủ. Lúc này, máy tính sẽ có có 1 list các hành động khả thi, và đưa ra quyết định dựa trên những quy tắc đó

Machine Learning Là khả năng máy tính học Bộ lớn dữ liệu thay cho các nguyên tắc đã được code 1 cách cứng nhắc

ML hỗ trợ máy tính tự học. Hình thức học này tận dụng lợi thế xử lý các dữ liệu lớn dễ dàng của các máy tính hiện đại.

Supervised learning vs unsupervised learning

Supervised Learning LÀ sử dụng các bộ dữ liệu được dán nhãn có inputs & outputs được kì vọng

Khi train cho 1 AI sử dụng supervised learning, bạn đã đưa cho AI đó 1 input và yêu cầu nó 1 output được kì vọng.

Nếu output được generate bởi AI trên bị sai, nó sẽ điều chỉnh lại các tính toán của mình. Quy trình này được thực hiện lặp đi lặp lại theo data set, cho đến khi AI không mắc sai lầm nữa.

Một ví dụ về supervised learning là AI dự báo thời tiết. AI đã học cách dự báo thời tiết nhờ các data trong lịch sử. Việc training data đó bao gồm các input (áp suất, độ ẩm, tốc độ gió) và các output (nhiệt độ)

Unsupervised Learning là nhiệm vụ của machine learning sử dụng các data set mà không có các structure cụ thể

Khi train 1 AI bằng unsupervised learning, bạn sẽ để AI đó tạo nên các phân loại data mang tính logic.

Một ví dụ về unsupervised learning là AI dự đoán hành vi dùng cho trang web E-commerce. Nó sẽ không học bằng cách sử dụng các data set đã dán nhãn gồm inputs & outputs. Thay vào đó, AI sẽ tạo ra các phân loại riêng từ data input, cung cấp thông tin về các khách hàng có nhiều khả năng mua các sản phẩm khác nhau nhất.

Vậy thì, Deep Learning hoạt động ra sao?

Deep Learning là method machine learning, cho phép chúng ta train AI để dự báo các output khi được cho 1 set inputs. Bạn có thể dùng cả supervised và unsupervised learning để train AI này.

Để hiểu cách hoạt động của Deep Learning, chúng ta sẽ build giả thiết là dịch vụ ước tính giá vé máy bay, train nó bằng method supervised learning.

Chúng ta muốn có 1 công cụ để dự đoán giá vé bằng cách sử dụng các input sau (để đơn giản, chúng ta sẽ loại bỏ các vé khứ hồi)

  • Sân bay khởi hành
  • Sân bay đến
  • Ngày khởi hành
  • Tên hãng máy bay

Neural networks

Cũng giống như động vật, bộ não của AI dự đoán này có các nơ-ron. Các nơ ron này được thể hiện bằng các vòng tròn và những vòng tròn này lại kết nối với nhau.

Image credit: CS231n

Những nơ-ron này được nhóm lại thành 3 loại layer khác nhau:

  1. Layer Input
  2. Layer(s) Hidden
  3. Layer Output

Layer input nhận các input data. Trong trường hợp này, chúng ta có 4 nơ-ron trong layer inout: Sân bay khởi hành, Sân bay đến, Ngày khởi hành và Hãng máy bay. Layer input sẽ đưa các inputs này đến layer hidden đầu tiên.

Các hidden layers thực hiện các tính toán toán học dựa trên outputs của chúng ta. Một trong những thách thức khi tạo các neural networks chính là việc quyết định số lượng các hidden layers và số lượng các nơ-ron cho mỗi layer.

Layer output trả về data output mà trường hợp này là dự đoán về giá vé máy bay.

Vậy làm thế nào để nó tính toán được giá vé?

Đây chính là điều kì diệu của Deep Learning.

Mỗi kết nối giữa các nơ-ron được liên kết với 1 weight. Weight này thể hiện tầm quan trọng của giá trị input. Các weight ban đầu được set ngẫu nhiên.

Khi dự đoán giá của 1 tấm vé máy bay, ngày khởi hành là 1 trong những yếu tố có sức “nặng” hơn. Vì vậy, các liên kết nơ-ron của ngày khởi hành sẽ có weight (trọng lượng) lớn.

Image credit: CodeProject

Mỗi nơ-ron có 1 Activation Function. Nếu không có lập luận toán học, sẽ rất khó để hiểu được các hàm này.

Để đơn giản, 1 trong những mục đích chính của nó là “standardize” – “tiêu chuẩn hóa” output từ nơ-ron.

Một khi 1 set của data input đã vượt qua tất cacr các layers của neural network, nó sẽ trả lại data output qua layer output.

Đâu có gì phức tạp, phải không?

Huấn luyện Neural Network

Training AI là phần khó nhất của Deep Learning. Tại sao?

  1. Bạn cần 1 set dữ liệu đủ lớn
  2. Bạn cần 1 lượng lớn computational power.

Đối việc dự đoán giá vé máy bay, chúng ta cần có data lịch sử của các giá vé máy bay. Và do lượng lớn các mối liên hệ tiềm năng giữa sân bay và ngày khởi hành, chúng ta cần 1 danh sách rất lớn các giá vé.

Để train AI, chúng ta gần đưa cho nó các inputs từ data set, và so sánh các outputs của nó với các output từ data set. Vì AI vẫn chưa được train, output của nó sẽ bị sai.

Một khi đã xem xét toàn bộ data set, chúng ta có thể tạo hàm để hiển thị các output của AI đã sai khác như thế nào so với các output thực sự. Hàm này được gọi là Cost Function.

Lý tưởng nhất, bạn sẽ muốn hàm cost này bằng 0. Đó là khi các output của AI hoàn toàn giống với các output của data set.

Làm sao để giảm hàm cost?

Thay đổi các weights giữa các nơ-ron. Chúng ta có thể thay đổi chúng 1 cách ngẫu nhiên cho đến khi cost function thật thấp, nhưng thao tác này thực ra không hiệu quả lắm.

Thay vào đó, chúng ta sẽ sử dụng 1 kĩ thuật gọi là Gradient Descent.

Gradient Descent là 1 kĩ thuật cho phép chúng ta tìm thấy phần tối thiểu của 1 hàm. Trong trường hợp này là phần tối thiểu (minimum) của cost function.

Gradient Descent sẽ thay đổi các weights theo cấp độ tăng nhỏ sau khi mỗi lần lặp đi lặp lại data set. Bằng cách tính toán phái sinh (hoặc độ dốc) của cost function ở 1 set weight nào đó, chúng ta có thể nhận thấy được khuynh hướng của minimum.

Image credit: Sebastian Raschka

Để giảm thiểu cost function, bạn cần phải lặp đi lặp lại các data set nhiều lần. Đó là lý do tại sao bạn cần 1 lượng computational power.

Cập nhật các weights bằng gradient descent sẽ được thực hiện 1 cách tự động. Đây chính là điều kì diệu của Deep Learning!

Một khi đã train cho công cụ AI đo lường giá vé máy bay, chúng ta có thể sử dụng nó để dự đoán giá vé trong tương lai.

Các nguồn nghiên cứu thêm?

Có rất nhiều loại neural networks: Convolutional Neural Networks cho Computer Vision và Recurrent Neural Networks cho Natural Language Processing.

Nếu bạn muốn học những phần liên quan đến Tech trong Deep Learning thì có thể tham khảo 1 khóa học online. Gần đây có khóa Deep Learning Specialization của Andrew Ng gây được tiếng vang lớn trong cộng đồng.

Tóm lại…

  • Deep Learning sử dụng 1 Neural Network để bắt chước trí thông minh của động vật
  • Có 3 loại layer nơ-ron trong 1 neural network là: InputLayer, Hidden Layer(s) và Output Layer
  • Các kết nối giữa các nơ-ron được liên kết với 1 weight, thể hiện mức độ quan trọng của giá trị input.
  • Các nơ-ron ứng dụng Activation Function vào data để “chuẩn hóa” output xuất ra từ nơ-ron
  • Để train 1 Neural Network, bạn cần 1 data set lớn
  • Quá trình lặp đi lặp lại data set và so sánh các output sẽ sản sinh ra Cost Function, cho thấy AI đã sai khác bai nhiêu so với các output thực tế
  • Sau mỗi lần lặp qua data set, các weights giữa các nơ-ron được điều chỉnh bằng Gradient Descent để giảm cost function

Nguồn: TopDev via Medium.freecodecamp.com