ML Vỡ Lòng - Linear Regression, Hypothesis, Cost Function là gì?
Có bài viết học luyện thi AWS mới nhất tại https://cloudemind.com/ml-regression-hypothesis-cost-function/ - Cloudemind.com
ML Vỡ Lòng - Linear Regression, Hypothesis, Cost Function là gì?
Trong chuỗi bài chia sẻ ML Vỡ Lòng, mình đã chia sẻ thế nào là ML? Supervised hay Unsupervised như thế nào. ML cũng giống như công việc hàng ngày, mỗi một loại công việc ta dùng các công cụ khác nhau để giải, ví dụ bạn muốn nấu cơm thì dùng nồi cơm, muốn quét nhà thì phải dùng chổi. ML cũng không khác thế là bao. Mỗi một loại vấn đề được giải bằng những algorithm khác nhau. Bài này chúng ta sẽ tìm hiểu một trong những loại đó là Linear Regression (Hồi quy tuyến tính).
Linear Regression
Nhớ lại kiến thức cũ ML khác với Classical Programing là ở chỗ ML sẽ consume dữ liệu và câu trả lời expected output, từ đó luận suy ra Rules cho những lần dùng tiếp theo.
Một ví dụ kinh điển hay dùng cho việc này chính là dùng ML để dự đoán giá cả một căn nhà. Ý tưởng chính trong Linear Regression là tìm một đường thẳng tiệm cận đúng nhất với các tập dữ liệu datasets, từ đó khi cần một phán đoán mới sẽ tuân theo quy luật này.
Diện tích vs Giá
Khi đã dự đoán đường thẳng thì việc dự đoán giá của một căn nhà sẽ tuân thủ theo luật này.
Hypothesis Function
Hay còn gọi là Hàm giả định (thường thì ta ko nên dịch ra tiếng Việt). HF hiểu là dùng có thể dự đoán từ input ra được output, cần có một giả định nào đó.
HF được ký hiệu là θ, đọc là “theta“. Bạn có thể hình dung đó là một đường thẳng kiểu y=a +bx giống như thời cấp ba chúng ta vẫn được học. Nhưng trong ML sử dụng theta như một cái gì đó phân biệt hơn.
Trong Linear Regression, chúng ta đang cố gắng vẽ một đường thẳng đi qua các mẫu dữ liệu nên công thức của đường thẳng đó phải là hθ(x)=θ1x+θ0hθ(x)=θ1x+θ0.
Một số ký hiệu cần nắm để sau này tiện học tập:
m – số lượng mẫu dữ liệu thu thập được
x – giá trị đầu vào (các dữ kiện mà ta dùng để đưa dự đoán)
y – giá trị thực thu được trong dữ liệu (vd: giá thật được bán của miếng đất)
x(i) – giá trị đầu vào thứ i trong các mẫu dữ liệu
y(i) – giá trị thực thứ i trong các mẫu dữ liệu
(x,y) – một bản ghi đầy đủ của dữ liệu mà ta thu thập được
Cost Function
Sau khi đã có công thức cho hàm dự đoán của chúng ta rồi, công việc tiếp theo của ta là tìm ra các trọng số θ1θ1 và θ0θ0 để có thể vẽ được đường thẳng mà ta đã đề ra ban đầu. Ta không thể sử dụng cách thế từng cặp xx, yy vào phương trình để tìm các trọng số như ta đã làm thời cấp 3 vì đó là công thức đường thẳng thoả điều kiện đường thẳng đi qua các điểm. Trong thực tế, dù mối quan hệ giữa xx và yy là tuyến tính (tăng/giảm theo một đường thẳng) nhưng các điểm dữ liệu không hoàn toàn nằm hẳn trên một đường thẳng mà xấp xỉ xung quanh nó. Trong Machine Learning, Cost Function là cái tên ám chỉ một hàm dùng để đo độ chính xác của hàm dự đoán từ đó giúp tìm các trọng số tối ưu cho hàm dự đoán của chúng ta. Hàm này được định nghĩa như sau:
Với mỗi cặp dữ liệu x, y ta sử dụng xx để tạo ra dự đoán và tìm chênh lệch với yy. Sau đó bình phương lên để mất dấu rồi cộng tất cả các sai số của từng dữ liệu và lấy trung bình cộng. Trong môn thống kê, nó còn được biết đến với cái tên Mean Squared Error (MSE).
Với sự giúp đỡ của Cost Function, bây giờ bài toán tìm trọng số tối ưu của ta có thể chuyển thành tìm các trọng số θ0, θ1 để giá trị của Cost Function là nhỏ nhất. Tại sao ư?
Bạn còn nhớ chứ, mục tiêu ban đầu của chúng ta là tìm một đường thẳng sao cho đường thẳng đó gần các dữ liệu nhất có thể. Khi giá trị Cost Function nhỏ nhất (khoảng cách giữa các giá trị dự đoán và giá trị thực nhỏ nhất) cũng mang ý nghĩa tương tự.
Dưới đây là hình minh họa ta cố gắng cho đường thẳng đi qua càng nhiều điểm nhất có thể.
Đây không phải là một cách thức tốt vì ở các điểm còn lại, giá trị dự đoán của ta sẽ có sai lệch lớn so với thực tế. Lúc đó hàm dự đoán của ta có độ chính xác không cao và đó chắc chắn không phải mục tiêu của Machine Learning.
Ngược lại, trường hợp này đường thẳng của ta đi qua ít điểm hơn nhưng khoảng cách của nó giữa các điểm khác là không nhiều. Sai lệch dự đoán so với thực tế gần nhau thể hiện một mô hình tốt. Mục đích của Cost Function là tìm các trọng số tối ưu để tạo nên đường thẳng này.
Hy vọng qua bài này bạn đã nắm sơ ý niệm về Regression, Hypothesis, và Cost Function
Hypothesis là một hàm dùng để biến x thành y với sai số thấp nhất thông qua giá trị theta.
Để tìm theta tối ưu ta thường dùng Cost Function. Cost Function càng nhỏ sẽ càng tốt.
Xem thêm: https://cloudemind.com/ml-regression-hypothesis-cost-function/















