Mô hình này có thể được sử dụng để dự đoán lớp của một điểm dữ liệu mới.- Ví dụ, mô hình phân loại nhị phân có thể được sử dụng để dự đoán chữ số nào được hiển thị trong một hình ảnh mới
Trang 1TRƯỜNG ĐẠI HỌC THỦY LỢI
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
HỌC PHẦN: HỌC MÁY
ĐỀ TÀI: DỰ ĐOÁN NHÂN VIÊN
Giáo viên hướng dẫn: Nguyễn Thị Kim Ngân Sinh viên/nhóm sinh viên thực hiện:
1 Nguyễn Đắc Sơn, lớp 63HTTT2
2 Nguyễn Minh Hiếu, lớp 63HTTT2
3 Nguyễn Thành Hưng, lớp 63HTTT2
4 Nguyễn Thanh Hưng, lớp 63CNTT4
Hà Nội, năm 2023
Trang 2PHẦN 1 LÝ THUYẾT
1 Perceptron Learning Algorithm
Input (đầu vào của phương pháp)
- Input của phương pháp Perceptron Learning Algorithm là một tập dữ liệu phân loại nhị phân Tập dữ liệu này bao gồm các điểm dữ liệu có nhãn, mỗi điểm dữ liệu được gán cho một trong hai lớp
- Ví dụ, một tập dữ liệu phân loại nhị phân có thể là các điểm dữ liệu mô
tả hình dạng của các chữ số Mỗi điểm dữ liệu là một hình ảnh của một chữ số, được gán nhãn là "0" hoặc "1"
Output (đầu ra của phương pháp)
- Output của phương pháp Perceptron Learning Algorithm là một mô hình phân loại nhị phân Mô hình này có thể được sử dụng để dự đoán lớp của một điểm dữ liệu mới
- Ví dụ, mô hình phân loại nhị phân có thể được sử dụng để dự đoán chữ
số nào được hiển thị trong một hình ảnh mới
Hàm mất mát của phương pháp
- Hàm mất mát của phương pháp Perceptron Learning Algorithm là hàm
đo lường mức độ sai lệch giữa dự đoán của mô hình và nhãn thực của
dữ liệu
- Hàm mất mát thường được sử dụng trong phương pháp Perceptron Learning Algorithm là hàm mất mát lỗi nhị phân Hàm mất mát lỗi nhị phân được tính như sau:
Loss(y_hat, y) = (y_hat - y)^2 Trong đó:
y_hat là dự đoán của mô hình
y là nhãn thực của dữ liệu
Cách tối ưu hàm mất mát hoặc giải của phương pháp (các bước thực hiện của thuật toán)
- Phương pháp Perceptron Learning Algorithm là một thuật toán lập trình tuyến tính Thuật toán này tối ưu hóa hàm mất mát lỗi nhị phân bằng cách điều chỉnh trọng số của mô hình
- Các bước thực hiện của thuật toán Perceptron Learning Algorithm như sau:
1 Khởi tạo trọng số của mô hình với các giá trị ngẫu nhiên
Trang 32 Lặp lại cho đến khi đạt được sự hội tụ:
o Chọn một điểm dữ liệu từ tập dữ liệu
o Tính dự đoán của mô hình cho điểm dữ liệu đó
o Nếu dự đoán của mô hình không khớp với nhãn thực của điểm
dữ liệu, thì cập nhật trọng số của mô hình
Cách cập nhật trọng số của mô hình như sau:
w = w + y * x Trong đó:
w là trọng số của mô hình
y là nhãn thực của điểm dữ liệu
x là vector đặc trưng của điểm dữ liệu
Phương pháp giải bài toán tối ưu
- Phương pháp Perceptron Learning Algorithm sử dụng phương pháp giảm gradient để giải bài toán tối ưu Phương pháp giảm gradient là một phương pháp phổ biến để giải các bài toán tối ưu tuyến tính
- Phương pháp giảm gradient hoạt động bằng cách bắt đầu từ một điểm ban đầu và sau đó liên tục cập nhật điểm đó theo hướng của gradient của hàm mất mát
- Trong trường hợp của phương pháp Perceptron Learning Algorithm, gradient của hàm mất mát lỗi nhị phân là như sau:
Gradient(Loss(y_hat, y)) = 2(y_hat - y) * x
Vì vậy, phương pháp giảm gradient sẽ cập nhật trọng số của mô hình theo hướng sau:
w = w - alpha * 2(y_hat - y) * x Trong đó:
alpha là tốc độ học tập
Trang 42 Support Vector Machine
Input (đầu vào của phương pháp)
- Đầu vào của phương pháp Support Vector Machine (SVM) là tập dữ liệu huấn luyện, bao gồm các điểm dữ liệu có nhãn thuộc về hai lớp khác nhau Các điểm dữ liệu được biểu diễn dưới dạng các vector trong không gian chiều, với là số thuộc tính của mỗi điểm dữ liệu.n n
Output (đầu ra của phương pháp)
- Đầu ra của phương pháp SVM là một siêu phẳng (hyperplane) trong không gian chiều Siêu phẳng này có tác dụng phân tách tập dữ liệu n huấn luyện thành hai lớp
Hàm mất mát của phương pháp
- Hàm mất mát của phương pháp SVM là hàm đo lường mức độ sai lệch giữa siêu phẳng dự đoán và tập dữ liệu huấn luyện Hàm mất mát thường được sử dụng trong SVM là hàm mất mát lề (margin loss) Hàm mất mát lề được định nghĩa như sau:
L(w, b) = \frac{1}{2} ||w||^2 + C\sum_{i=1}^n \max(0, 1 - y_i(w^Tx_i + b)) Trong đó:
w là vector trọng số của siêu phẳng
b là hằng số dịch chuyển của siêu phẳng
xi là vector dữ liệu thứ i trong tập huấn luyện
yi là nhãn của điểm dữ liệu thứ i
C là tham số kiểm soát mức độ phạt khi siêu phẳng dự đoán sai điểm
dữ liệu
Cách tối ưu hàm mất mát hoặc giải của phương pháp (các bước thực hiện của thuật toán)
- Có thể được giải bằng nhiều phương pháp khác nhau, chẳng hạn như phương pháp Gradient Descent, phương pháp Newton, hoặc phương pháp Lagrange Multiplier
Phương pháp giải bài toán tối ưu
- Một phương pháp giải bài toán tối ưu của phương pháp SVM là phương pháp Gradient Descent Phương pháp này sử dụng đạo hàm của hàm mất mát để cập nhật giá trị của vector trọng số và hằng số dịch w chuyển theo từng bước.b
Trang 5- Các bước thực hiện của phương pháp Gradient Descent như sau:
1 Khởi tạo giá trị của vector trọng số và hằng số dịch chuyển w b
2 Tính đạo hàm của hàm mất mát theo và w b
3 Cập nhật giá trị của và theo công thức sau:w b
w = w - \eta \nabla L(w, b)
b = b - \eta \nabla L(w, b) Trong đó:
η là tốc độ học
4 Lặp lại các bước 2 và 3 cho đến khi hàm mất mát không còn giảm nữa
3 Phương pháp ID3 (Iterative Dichotomiser 3)
- Là một thuật toán được sử dụng trong học máy để xây dựng cây quyết định dựa trên việc phân chia các mẫu dữ liệu dựa trên các thuộc tính
3.1 Input của phương pháp:
- Dữ liệu huấn luyện: Tập dữ liệu huấn luyện gồm N mẫu
- Biến đầu vào: Danh sách các biến đầu vào được sử dụng để dự đoán nhãn Mỗi mẫu là 1 cặp(xi,y ):i
xi: vector đặc trưng
yi: giá trị của vector đặc trưng xi
3.2 Output của phương pháp:
- Cây quyết định: Một cây quyết định được xây dựng dựa trên dữ liệu huấn luyện và thuộc tính đầu vào Cây quyết định này có thể được sử dụng để dự đoán nhãn cho các mẫu dữ liệu mới
3.3 Hàm mất mát của phương pháp:
- ID3 sử dụng hàm mất mát gọi là entropy để đo lường độ không chắc chắn trong dữ liệu Entropy được tính bằng công thức sau đây:
Entropy(S) = - Σ (p(i) * log(p(i)))
- Trong đó:
+ Entropy(S) là entropy của tập dữ liệu S
+ p(i) là tỉ lệ mẫu thuộc lớp i trong tập dữ liệu S
Trang 6+ log là logarit cơ số 10.
3.4 Cách giải hoặc tối ưu hàm mất mát của phương pháp:
* Bài toán tối ưu: Cây quyết định tìm một cây quyết định có thể phân loại chính xác các điểm dữ liệu trong tập huấn luyện
* Phương pháp giải:
- Bước 1: Chọn thuộc tính tốt nhất để phân chia tập dữ liệu ban đầu Sử dụng công thức entropy và thông tin lợi ích (information gain) để đánh giá mức độ tốt của mỗi thuộc tính Thuộc tính có information gain cao nhất được chọn làm thuộc tính phân chia Công thức tính toán độ lợi thông tin trong ID3 được xác định như sau:
Information Gain(S, A) = Entropy(S) - ∑ (|S | / |S|) * Entropy(S )ᵥ ᵥ
+ Trong đó:
Information Gain(S, A) là độ lợi thông tin khi sử dụng thuộc tính A để phân chia tập dữ liệu S
Entropy(S) là độ không chính xác (entropy) ban đầu của tập dữ liệu S
S là tập con của S được phân chia bởi giá trị v của thuộc tính A.ᵥ
|S| là số lượng mẫu trong tập dữ liệu S
|S | là số lượng mẫu trong tập con S ᵥ ᵥ
- Bước 2: Tạo một nút cây dựa trên thuộc tính phân chia được chọn và phân chia dữ liệu thành các tập con dựa trên giá trị của thuộc tính Mỗi giá trị của thuộc tính sẽ tạo ra một nhánh con
- Bước 3: Lặp lại quá trình trên cho từng nhánh con, sử dụng các tập con dữ liệu tương ứng và tập thuộc tính đã loại bỏ thuộc tính phân chia hiện tại Tiếp tục phân chia cho đến khi một điều kiện dừng được đáp ứng, ví dụ như không còn thuộc tính để phân chia hoặc tất cả các mẫu dữ liệu cùng thuộc một lớp
- Bước 4: Trong các nút lá của cây quyết định, nhãn được chọn dựa trên hàm mất mát, chẳng hạn như lớp có số lượng mẫu nhiều nhất trong tập dữ liệu hoặc lớp có xác suất cao nhất theo phân phối dữ liệu Phương pháp ID3 là một trong những phương pháp đầu tiên để xây dựng cây quyết định Tuy nhiên, nó có một số hạn chế, chẳng hạn như không xử lý tốt với thuộc tính liên tục vàkhông xử lý được các giá trị bị thiếu trong dữ liệu Các phương pháp cải tiến như C4.5 và CART đã được phát triển để vượt qua những hạn chế này
4 Phương pháp Logistic Regression
Trang 7- Là một phương pháp học máy được sử dụng để dự đoán và phân loại dữ liệu dựa trên một tập hợp các biến đầu vào
4.1 Input của phương pháp:
- Dữ liệu huấn luyện: Tập dữ liệu huấn luyện gồm N mẫu
- Biến đầu vào: Danh sách các biến đầu vào được sử dụng để dự đoán nhãn Mỗi mẫu là 1 cặp(xi,y ):i
xi: vector đặc trưng
yi: giá trị của vector đặc trưng xi
4.2 Output của phương pháp:
- Hàm tuyến tính có dạng:
f(x) = θ((w^t)x)
- Trong đó:
+ x là vector đầu vào có kích thước (d+1), trong đó d là số chiều của dữ liệu
và thêm một phần tử cho hệ số điều chỉnh (tham số w ).₀
+ w là vector tham số của mô hình có kích thước (d+1), trong đó w là hệ số₀ điều chỉnh và w , w , , ₁ ₂ wd là các tham số cho các đặc trưng của dữ liệu + θ là một hàm tuyến tính, thường là hàm đồng nhất (identity function), tức θ(z) = z
+ w^T là ma trận chuyển vị của vector w
4.3 Hàm mất mát của phương pháp:
- Trong Logistic Regression, hàm mất mát thường được sử dụng là hàm Cross-Entropy (còn được gọi là Negative Log-Likelihood) Hàm mất mát đo lường sai khác giữa giá trị dự đoán và nhãn thực tế Công thức của hàm Cross-Entropy như sau:
J(w) = - Σ [y * log(z ) + (1 - y ) * log(1 - zi i i i)]
- Trong đó:
+ J(w) là hàm mất mát
+ w là vector các tham số mô hình
+ x là biến đầu vào
+ y là nhãn thực tế
+ z là giá trị dự đoán của mô hình Logistic Regression.i
4.4 Cách tối ưu hàm mất mát hoặc giải của phương pháp:
Trang 8* Bài toán tối ưu: Logistic Regression tìm một hàm phân loại: w⋅x→p(y=1| x),
- Trong đó:
+ w là một vector trọng số
+ p(y=1|x) là xác suất điểm dữ liệu x thuộc lớp 1
* Phương pháp giải
- Bước 1: Khởi tạo các tham số mô hình w: Bước đầu tiên là khởi tạo các tham số mô hình w Thông thường, các tham số này được khởi tạo ngẫu nhiên hoặc bằng giá trị ban đầu
- Bước 2: Lặp lại cho đến khi đạt được tiêu chí dừng:
+ Tính toán giá trị dự đoán z : Sử dụng các tham số mô hình hiện tại θ và biếni đầu vào x, tính toán giá trị dự đoán z Đối với Logistic Regression, giá trị dựi đoán này thường được tính bằng Sigmoid Function:
y = f(s) = 1 / (1 + e^(-s))
+ Tính toán gradient của hàm mất mát đối với các tham số w: Tính toán đạo hàm riêng của hàm mất mát J(w) đối với các tham số w Điều này đòi hỏi tính toán gradient cho từng tham số, và công thức gradient cụ thể sẽ phụ thuộc vào hàm mất mát được sử dụng
+ Cập nhật các tham số w: Sử dụng gradient tính được, cập nhật các tham số
mô hình w bằng cách di chuyển theo hướng ngược với gradient Công thức cập nhật thường là:
w = w + nxi(yi - z ) = w – (z - yi i i)nxi = w - learning_rate * gradient
+ Trong đó:
Learning_rate = nx là tỷ lệ học tập (learning rate) điều chỉnh tốc độ cập nhậti tham số
Gradient = (z - y ) là vector gradient được tính toán ở bước trướci i
- Bước 3: Tiêu chí dừng: Quá trình lặp lại được thực hiện cho đến khi đạt được tiêu chí dừng, ví dụ như đạt đủ số lần lặp hoặc hội tụ Tiêu chí dừng thường được định nghĩa trước khi huấn luyện
- Bước 4: Sử dụng mô hình Logistic Regression: Sau khi quá trình tối ưu kết thúc, ta có thể sử dụng mô hình Logistic Regression đã được huấn luyện để
dự đoán nhãn cho các mẫu dữ liệu mới bằng cách tính toán giá trị dự đoán hθ(x) với các tham số θ đã được tối ưu
5 Neural network
Trang 95.1.Input:
Tập dữ liệu (Xtrain, ytrain), kiến trúc mạng nơ ron (số lớp ẩn, số nơ ron của mỗi
lớp ẩn), hàm kích hoạt (activation function), hàm mất mát (loss function)
5.2.Output:
Bộ vector trọng số của các liên kết giữa các nơ ron (W) để hàm mất mát đạt giá trị tối ưu
5.3.hàm mất mát
Ký hiệu L, K, sl lần lượt là số lớp, số nút của lớp output và số nút của lớp thứ
l (khác lớp output) thì hàm mất mát có phương trình
J(W)=−1m∑mi=1∑Kk=1[y(i)kln(ŷ(i)k)+(1−y(i)k)ln(1−ŷ(i)k)]
+λ2m∑L−1l=1∑slq=1∑sl+1p=1(W(l)pq)2
5.4.các bước thực hiện của thuật toán
-yêu cầu
Cho trước m bộ dữ liệu để đào tạo thuật toán Bộ dữ liệu thứ i chứa vector input x(i) và vector output y(i) Nhiệm vụ của ta là tìm ra các hệ số W(l)pq của mô hình Neural Network đã chọn trước
-thuật toán
Bước 1: Chọn các giá trị W(l)pq ngẫu nhiên và một giá trị learning rate α
Bước 2: Liên tiếp lặp lại các phép biến đổi
W(l)pq:=W(l)pq−αJ′W(l)pq(W)
với các đạo hàm riêng J′W(l)pq(W) được tính bằng thuật toán
Backpropagation
Bước 3: Thuật toán dừng lại khi J(W) thay đổi rất nhỏ hoặc trị tuyệt đối các đạo hàm riêng rất nhỏ Nếu thuật toán không thể kết thúc thì chọn giá trị α nhỏ hơn rồi quay lại bước 2
6 Cart
Trang 106.1.Input:
- Dữ liệu huấn luyện: Tập dữ liệu huấn luyện gồm N mẫu
- Biến đầu vào: Danh sách các biến đầu vào được sử dụng để dự đoán nhãn
Mỗi mẫu là 1 cặp(xi,y ):i
xi: vector đặc trưng
yi: giá trị của vector đặc trưng xi
6.2.Output:
- Cây quyết định: Một cây quyết định được xây dựng dựa trên dữ liệu huấn luyện và thuộc tính đầu vào Cây quyết định này có thể được sử dụng để dự đoán nhãn cho các mẫu dữ liệu mới
6.3.hàm mất mát
Gini Index = 1 - (p ² + p ² + + pk²)₁ ₂
Trong đó, p , p , , pk là tỷ lệ các mẫu thuộc vào từng lớp khác nhau trong ₁ ₂ node Gini Index đo lường độ tinh khiết của node, càng gần 0 thì node càng tinh khiết (chứa các mẫu thuộc vào cùng một lớp), còn càng gần 1 thì node càng không tinh khiết (chứa các mẫu thuộc vào các lớp khác nhau)
6.4.các bước thực hiện của thuật toán
Bước 1: Chọn thuộc tính và giá trị chia: Với mỗi node trong cây, tính Gini Index cho tất cả các thuộc tính có thể được sử dụng để chia node Thuộc tính
và giá trị chia được chọn là thuộc tính và giá trị chia có Gini Index nhỏ nhất, cho thấy sự tách biệt tốt nhất giữa các lớp dữ liệu
Bước 2: Chia dữ liệu: Chia dữ liệu trong node hiện tại thành hai phần dựa trên thuộc tính và giá trị chia đã chọn Tạo hai node con mới cho các phần chia này
Bước 3: Kiểm tra điều kiện dừng: Kiểm tra xem các node con có thỏa mãn điều kiện dừng hay không Các điều kiện dừng có thể là đạt đến độ sâu tối đa của cây, đạt đến số lượng mẫu tối thiểu trong mỗi node, hoặc đạt được độ tinh khiết mong muốn
Bước 4: Đệ quy: Nếu các node con không thỏa mãn điều kiện dừng, lặp lại các bước trên cho từng node con để tiếp tục xây dựng cây
Trang 11Bước 5: Tạo nút lá: Khi các điều kiện dừng được đáp ứng, tạo nút lá và gán nhãn cho nút lá dựa trên phân phối lớp của các mẫu trong node
Bước 6: Quay lui: Tiếp tục quay lui và kiểm tra các node cha của các nút lá đã được tạo Nếu các nút cha có cùng phân phối lớp, hợp nhất các nút lá thành một nút lá duy nhất để giảm kích thước cây và tăng tính khái quát
So sánh giữa các phương pháp:
* Điểm khác nhau:
1 Mục tiêu:
- Perceptron: Phân loại các điểm dữ liệu thành các lớp khác nhau bằng cách tìm một siêu phẳng phân chia hai lớp
- SVM: Tìm một đường biên phân chia hai lớp sao cho khoảng cách từ các điểm dữ liệu gần nhất tới đường biên là lớn nhất
- Cây quyết định (ID3 và CART): Xây dựng cây quyết định bằng cách phân chia dữ liệu dựa trên các thuộc tính để đạt được sự không chắp nhận lớn nhất trong các nhánh của cây
- Neural Network: Mô hình hóa mối quan hệ phi tuyến tính giữa đầu vào và đầu ra bằng cách sử dụng các tầng ẩn và hàm kích hoạt
- Logistic Regression: Dự đoán xác suất xảy ra của một sự kiện dựa trên các biến đầu vào bằng cách sử dụng hàm sigmoid
2 Cách tiếp cận:
- Perceptron: Sử dụng quy tắc cập nhật đơn giản và phân loại dựa trên đầu ra nhị phân
- SVM: Tối ưu hóa bài toán lồi bằng cách sử dụng hàm mất mát và phân loại dựa trên các vector hỗ trợ
- Cây quyết định (ID3 và CART): Xây dựng cây từ đầu bằng cách chọn thuộc tính tốt nhất để phân chia dữ liệu và tiếp tục phân chia đến khi đạt được một tiêu chí dừng
- Neural Network: Sử dụng thuật toán lan truyền ngược để tối ưu hóa các trọng số mạng dựa trên hàm mất mát và phân loại dựa trên đầu ra của mạng
- Logistic Regression: Sử dụng gradient descent để tối ưu hóa hàm mất mát và phân loại dựa trên ngưỡng xác suất
3 Độ phức tạp:
- Perceptron: Đơn giản và tính toán hiệu quả
- SVM: Phức tạp hơn so với Perceptron, đặc biệt khi số lượng điểm dữ liệu lớn