Thuật toán Linear Regression (Hồi quy tuyến tính)

Chào tất cả mọi người, trong bài viết Tổng quan về Machine Learning của Sam trước đó đã giới thiệu về khái niệm của Machine Learning và một vài ứng dụng của nó trong thực tiễn. Do đó, trong bài viết này mình sẽ giới thiệt về một trong những thuật toán cơ bản nhất của Machine Learning, đó là Linear Regression ( hay Hồi quy tuyến tính).

1. Bài toán đặt ra

Chúng ta cùng đi đến một bài toán về giá nhà đất sau:

  • Bạn đang có nhu cầu cần mua một căn nhà nhưng bạn chưa biết nên mua với giá bao nhiêu cho hợp lý. Nhưng bạn lại có một vài thông tin như: căn nhà A rộng 30m2, có 4 phòng ngủ và cách trung tâm thành phố 2km có giá 3 tỷ, hay căn nhà B rộng 25m2, cũng có 4 phòng ngủ và cách trung tâm 5km có giá 2,5 tỷ (giả sử rằng giá tiền căn nhà phụ thuộc phần lớn vào yếu tố diện tích, số phòng ngủ và khoảng cách đến trung tâm thành phố)… Vậy làm sao để biết căn nhà có diện tích x1 m2, có x2 phòng ngủ, và cách x3 km so với trung tâm thành phố có giá như thế nào? Vấn đề này có thể giải quyết bằng thuật toán Linear Regression. Chúng ta đi tiếp phần sau để tìm hiểu kỹ hơn về thuật toán này nhé.

2. Thuật toán Linear Regression là gì?

  • Đầu tiên chúng ta cần biết thuật toán Linear Regression là gì? Linear Regression hay còn gọi là Hồi quy tuyến tính là một phương pháp dự đoán kết quả dựa trên giá trị đầu vào và mối quan hệ giữa đầu vào và đầu ra trước đó.

3. Ứng dụng của thuật toán Linear Regression?

  • Để giải quyết bài toán này, đầu tiên chúng ta cần tìm ra giá nhà bị ảnh hưởng bởi các yếu tố nào. Và bạn nhận ra giá trị căn nhà phụ thuộc rất nhiều vào diện tích của căn nhà, số phòng ngủ và khoảng cách so với trung tâm thành phố. Từ đó chúng ta sẽ sử dụng toán học để mô hình hóa vấn đề, các yếu tố sẽ được biểu diễn thông qua các biến.
    Chúng ta có thể thấy rằng:
    – diện tích càng lớn thì giá nhà càng cao
    – càng nhiều phòng ngủ giá nhà càng cao
    – càng cách xa trung tâm thành phố thì giá nhà càng giảm
  • Ta sẽ biểu diễn chúng thông qua biểu thức sau:

image


– với y : là một số vô hướng (scalar) biểu diễn output (tức giá của căn nhà), x= [x1, x2, x3]: một vector hàng chứa thông tin inputw = [w0,w1, w2, w3] là vector bao gồm các hệ số tối ưu.
image là giá trị mà thuật toán dự đoán được.
  • Vấn đề đặt ra: Liệu đường thẳng ta vẽ có thể đi qua toàn bộ các điểm cho trước hay không? Câu trả lời là có, nhưng trong thực tế rất khó xảy ra trường hợp này. Vì vậy, khi có một hay nhiều điểm không cùng thuộc một đường thẳng, ta cần tìm một đường thẳng sao cho nó gần với các điểm nhất có thể, hay độ lệch của điểm đó so với đường thẳng là nhỏ nhất. Từ đó ta có công thức tính sai số dự đoán:

image

  • Việc sử dụng e2 vì có thể y -image có thể âm và thuận tiện cho việc đạo hàm ở dưới.
  • Và để độ lệch hay sai số của mọi điểm so với đường thẳng là nhỏ nhất, ta sẽ có tổng sai số là nhỏ nhất, từ đó ta có hàm là tổng các sai, hàm này có tên là hàm mất mát.

image

  • Chúng ta luôn mong muốn rằng sự mất mát (sai số) là nhỏ nhất, đồng nghĩa với việc tìm các hệ số w sao cho giá trị của hàm mất mát này càng nhỏ càng tốt. Ta có thể thực hiện bằng cách đạo hàm, rồi từ đó tìm ra các điểm cực tiểu cục bộ, và khi tìm được toàn bộ điểm cục bộ rồi so sánh với nhau, ta sẽ tìm ra được điểm cực tiểu toàn phần. Từ đó giải quyết được bài toán. Sau khi đạo hàm ta được w thỏa mãn yêu cầu:

image

Trên đây là tìm hiểu của mình về Thuật toán Linear Regression.
Thank all!

6 Likes

A nghĩ e có thể nêu bài toán nhà đất ở trước phần linear regression thì nó sẽ tự nhiên hơn! ^^

1 Like

Định nghĩa thuật toán chưa chuẩn lắm nhé, phải tổng quan hơn vì nếu đầu vào phức tạp hơn thì nó k chỉ là đường thẳng mà nó sẽ xét nhiều chiều hơn í.

1 Like

Yep chị cũng nghĩ thế. Mào đầu bằng một ví dụ trực quan dễ hiểu cũng giúp mọi người thích đọc bài viết của mình hơn.

2 Likes

Chị tưởng tuyến tính là loại luôn là đường thẳng :smiley:

1 Like

Khi mà dữ liệu đầu vào xác định thành vector thì tuyến tính trở thành tìm mặt phẳng do phải xét trên nhiều chiều để đi qua gần nhất được những vector đó ạ :smile:

1 Like

Cả ngày không vào stories mà chúng nó viết cái gì thế lày =)) Lại toán à :smiley:

1 Like