Machine Learning

Linear Regession

Linear Regession (Hồi quy tuyến tính) là một trong những thuật toán Machine Learning cơ bản nhất. Đây là một thuật toán Supervised Learning, đôi khi nó còn được gọi là Linear Fitting hoặc Linear Least Square.

Model Representation

Trong bài này, chúng ta sẽ xét mô hình cơ bản của hồi quy tuyến tính. Cho một căn nhà với bộ dữ liệu training gồm có diện tích và giá trị của căn nhà đấy. Chúng ta sẽ cần dự đoán với một căn nhà có diện tích bất kì thì giá căn nhà đó sẽ là bao nhiêu.

Diện tích (feet2)(feet^2) (x)(x) Giá trị (y)(y)
2104 460
1534 315
1416 232
852 178
... ...

Ở đây chúng ta sẽ có:

  • m=47m=47 là số lượng training example.
  • xx là dữ liệu đầu vào hay đặc điểm, tính chất của căn nhà.
  • yy là dữ liệu đầu ra hay đặc điểm tính chất mà ta cần (giá trị căn nhà).

Để thống nhất ký hiệu về sau, chúng ta sử dụng x(i)x^{(i)} là biến nhập vào (diện tích căn nhà trong ví dụ này), y(i)y^{(i)} là biến output (giá trị căn nhà). Với mỗi cặp (x(i),y(i))(x^{(i)},y^{(i)}) là một cặp "training example". Lượng dữ liệu data chúng ta dùng để train là một list mm training examples. (x(i),y(i));i=1,2,...m(x^{(i)},y^{(i)}); i = 1,2,...m là một training set. XX là không gian vecto xx trong ví dụ này, YY là không gian vecto output. Trong ví dụ này X=Y=RX=Y=\mathbb{R}

Để thể hiện rõ Supervised Learning, mục tiêu chúng ta là khi được cho bộ training set, tạo một hàm h:XYh: X \rightarrow Y để dự đoán giá trị của yy. Thuật toán được thể hiện như sau:

Khi đầu ra yy là một giá trị liên tục, như diện tích ngôi nhà, chúng ta gọi bài toán đó là hồi quy. Khi đầu ra yy chỉ nhận một vài giá trị rời rạc (ví dụ khi được cho diện tích một căn nhà hoặc căn hộ chung cư, ta sẽ cần dự đoán xem là nhà riêng hay chung cư) được gọi là bài toán phân loại.

Cost Function

Cost Function hay còn được gọi là Loss Function, là hàm chi phí của hàm h(x)h(x). Hàm h(x)h(x) là một hàm tuyến tính theo xx, dùng để dự đoán giá trị đầu ra yy: h(x)=θ0+θ1xh(x)=\theta_{0}+\theta_{1}x.

Giá trị dự đoán sẽ có thể có sai số, ta biểu diễn: y^=h(x)y\hat{y} = h(x) \approx y . Ở đây, yy là giá trị thực, y^\hat{y} là giá trị dự đoán.

Mục tiêu của ta là tìm θ0,θ1\theta_{0},\theta_{1} sao cho tổng giá trị h(xi)yih(x_{i})-y_{i} với i=1,...,mi=1,...,m là nhỏ nhất. Ta sẽ có hàm chi phí J(θ1,θ2)J(\theta_{1},\theta_{2}) như sau:

J(θ1,θ2)=12mi=1m(h(xi)yi)2\displaystyle J(\theta_{1},\theta_{2})=\frac{1}{2m}\sum_{i=1}^m(h(x_{i})-y_{i})^2

  • Câu hỏi thứ nhất là tại sao lại là (h(xi)yi)2(h(x_{i})-y_{i})^2 mà không phải h(xi)yi\left | h(x_{i})-y_{i} \right |. Lý do là hàm trị tuyệt đối thì không có đạo hàm ở 00 😄

  • Câu hỏi thứ hai là giá trị 12\displaystyle\frac{1}{2} ở đâu ra? Giá trị 12\displaystyle\frac{1}{2} là để thuận tiện cho việc tính toán, khi đạo hàm bình phương thì sẽ mất 12\displaystyle\frac{1}{2} 😄

Gradient Descent

Giờ chúng ta đã có hàm ước tính hh và cách để đánh giá độ chính xác của nó với bộ data được nhận. Công việc tiếp theo là tìm các tham số trong hàm hh đó. Vì vậy, chúng ta cần đến Gradient Descent.

Tưởng tượng rằng chúng ta biểu diễn hàm cần tìm hh "based on its fields θ0\theta_{0} and θ1\theta_{1}" (Đoạn này không biết diễn ta bằng tiếng việt như nào 😅 nôm na là dựa trên mặt phẳng tạo bởi θ0\theta_{0}θ1\theta_{1} khi chúng chạy trên R\mathbb{R}).

Hình biểu diễn

Chúng ta đạt được mục tiêu khi hàm chi phí đạt đến giá trị gần không nhất hay J(θ1,θ2)20J(\theta_{1},\theta_{2})^2\approx 0

Cách thực hiện là đạo hàm hàm chi phí bằng 00. Ở đây, chúng ta tiếp cận việc đạo hàm theo một hướng khác. Thuật toán Gradient Descent sẽ như sau:

repeat until convergence:

θj:=θjαJ(θ1,θ2)θj\theta_{j} := \theta_{j} - \alpha\frac{\partial{J(\theta_{1},\theta_{2})}}{\partial{\theta_{j}}} where j=0j=0 and j=1j=1

Với nhiều θ0,θ1,θ2...\theta_{0}, \theta_{1}, \theta_{2} ... ta phải update đồng thời chúng. Trình tự đúng như sau:

(còn tiếp)

Bài viết là quá trình ghi lại khi tham gia khóa học Machine Learning của thầy Andrew Ng và tham khảo tài liệu từ blog Machine Learning cơ bản.

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration