Chương 5 giúp người học hiểu về "Học máy". Nội dung trình bày cụ thể gồm có: Một số khái niệm, cây quyết định, học cây quyết định, thuật toán dựng cây, tập dữ liệu huấn luyện, cây phức tạp, gia lượng thông tin của tất cả các thuộc tính,...
Trang 11
Học Máy
– Cây quyết định
– Mạng neural
Trang 22
Học Máy
• Học (learning) là bất cứ sự thay đổi nào trong một
hệ thống cho phép nó thi hành tốt hơn ở lần thứ hai khi lặp lại cùng một nhiệm vụ hoặc với nhiệm vụ
khác từ tập các nhiệm vụ
• Học liên quan đến vấn đề khái quát hóa từ kinh
nghiệm (dữ liệu huấn luyện) => bài toán quy nạp
• Nhiệm vụ học
– Xác định người học cần học cái gì ?
– Người học cần được cung cấp những gì ?
– Đánh giá thành tích học
Trang 33
Một số khái niệm
• Tập ví dụ huấn luyện (training set, training example): Là các
ví dụ đã biết trước kết quả phân l ớp cũng như các giá trị của các thuộc tính, dùng để xây dựng nên cây quyết định
• Mẫu (instance): Là một trường hợp cụ thể cần phân lớp Một mẫu là một ví dụ cụ thể, biết một số hay toàn bộ các giá trị
của các thuộc tính song không biết giá trị của thuộc tính phân lớp
• Thuộc tính đích (target distribute): Là thuộc tính chỉ ra một ví
dụ thuộc một lớp nào đó, còn có tên gọi khác là thuộc tính
phân lớp
• Hàm học (target function/ learning function): VD cây quyết
định cần xây dựng, có chức năng phân lớp các mẫu
Trang 44
Một số khái niệm
• Ví dụ: Phân loại ba loại quả Mơ, Mận, Đào:
– Xác định hàm f: từ tập M là tập gồm 3 loại quả Mơ, Mận, Đào => Tên quả = {Mơ, Mận, Đào}
Hàm f gọi là hàm mục tiêu hay còn gọi là hàm học
– Tập các ví dụ huấn luyện: D={(a, b)| a M, b là tên quả}
– Đánh giá thành tích: Cho xác định tên quả, xác định tỉ
lệ đúng
Trang 55
Cây quyết định
Trang 6• Mỗi nhánh tương ứng với giá trị của thuộc tính
Thị trường London sẽ tăng trưởng ngày hôm nay
{ day1 }
Thị trường London sẽ tăng
trưởng ngày hôm nay
Ra quyết định: Thị trường London tăng trưởng hôm nay?
Trang 7• Xác định và loại bỏ các nhánh phản ánh nhiễu hoặc dị biệt
• Sử dụng cây quyết định: Phân loại một đối tượng chưa biết
– Kiểm tra các giá trị thuộc tính của đối tượng dựa vào cây quyết định
7
Trang 8Ví dụ: Cây quyết định Chơi Tennis
• Mục đích: Kiểm tra xem sáng thứ sáu nào thì thích hợp cho việc chơi tennis
• Cây quyết định:
Có
Quang cảnh nắng Âm u mưa
cao Trung bình mạnh nhẹ
Không
Có Không
VD: Trường hợp (Quang cảnh=nắng, Nhiệt độ=Nóng, Độ ẩm=cao, Gió=mạnh) thì Chơi Tennis = Không
Trang 99
Thuật toán dựng cây
Ở mỗi nút của cây:
Trang 1010
Tập dữ liệu huấn luyện
Ngày Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Tennis
D14 Mưa ấm áp Cao Mạnh Không
Giá trị của các thuộc tính + Phân loại ví dụ
Trang 12Cây đơn giản
cao bình thường
Có Không
mạnh nhẹ
Cây đơn giản hơn nhiều khi chọn Quang cảnh làm nút gốc
Occam’s razor: cái đơn giản thường là cái tốt nhất!
Trang 13[29+, 36-] A1 = ? [29+, 36-] A2 = ?
[21+, 6-] [8+, 30-] [18+, 34-] [11+,2-]
Trang 1414
Entropy
Entropy đo độ pha trộn của một tập đối tượng bất kỳ,
bất kỳ trong tập
S là tập các đối tượng dương và âm
là tỉ lệ đối tượng dương trong S
là tỉ lệ đối tượng âm trong S
Trang 15Entropy
Hàm entropy tương
ứng với phân lớp
Boolean, vì tỉ lệ
của các đối tượng
dương biến thiên
Entropy
1
2
log)
(
p
Trang 161 Entropy bằng 0 nếu tất cả các phần tử của S cùng
thuộc một lớp
2 Entropy bằng 1 nếu tập bao chứa số lượng ví dụ
dương và âm bằng nhau Nếu chúng không bằng nhau entropy nằm giữa 0 và 1
16
Trang 17Gia lượng thông tin
Information Gain
Gain(S, A) = Lượng giảm entropy mong đợi qua việc chia các ví
dụ theo thuộc tính A
trong đó:
- Values(A) là tập tất cả các giá trị có thể có của thuộc tính A
- Sv là tập con của S mà thuộc tính A của các phần tử có giá trị v
( )
,
(
A Values v
v
v
S
Entropy S
S S
Entropy A
S Gain
Trang 18Gia lượng thông tin
( )
,
(
Manh Yeu
S S
Entropy Gió
S Gain
Trang 2222
Điều kiện dừng
1 Nhánh hiện tại của cây đã chứa tất cả các thuộc tính có thể có
2 Các ví dụ huấn luyện liên kết với mỗi nút lá đều
âm hoặc đều dương (tức là entropy của chúng bằng 0)
Lưu ý: Thuật toán ID3 sử dụng Information Gain
để xây dựng cây quyết định
Trang 2323
Overfitting trong cây quyết định
• Cây quyết định có thể quá khớp (overfit) với dữ liệu
huấn luyện:
– Có quá nhiều nhánh, phản ánh sự bất thường do nhiễu
hoặc dị biệt
– Dẫn đến phân loại thiếu chính xác các đối tượng chưa gặp
• Hai tiếp cận để tránh overfitting
– Cắt tỉa trước: Dừng việc xây dựng cây sớm – không phân chia một nút nếu việc này làm cho độ tốt của cây rơi
xuống dưới một ngưỡng
– Cắt tỉa sau: Loại bỏ các nhánh khỏi một cây đã được phát triển đầy đủ - nhận được một chuỗi liên tiếp các cây được cắt tỉa
Trang 24cao Trung bình mạnh nhẹ
không
có không
Trang 2525
Đánh giá hiệu suất
• Mục đích: một cây quyết định có thể phân loại đúng một
ví dụ chưa từng gặp
• Việc học sử dụng một “tập huấn luyện”
• Việc đánh giá hiệu suất sử dụng một “tập kiểm tra”:
1 Thu thập một tập lớn các ví dụ
2 Chia thành tập huấn luyện và tập kiểm tra
3 Sử dụng giải thuật và tập huấn luyện để xây dựng cây quyết
định h
4 Đo phần trăm tập kiểm tra được phân loại đúng bởi h
5 Lặp lại bước 1 đến 4 cho các tập kiểm tra có kích cỡ khác nhau được chọn ngẫu nhiên
Trang 26Bài tập
• Thuộc tính nào là gốc của cây quyết định được huấn
luyện bởi tập dữ liệu sau?
26
Height Hair Eyes Attractive?
Trang 2727
Mạng nơron
Trang 2828
Mạng nơron
• Ưu điểm
– Mức độ dự đoán chính xác tương đối cao
– Làm việc cả khi các đối tượng huấn luyện có chứa lỗi – Đầu ra có thể là rời rạc, giá trị thực hoặc một véc tơ các thuộc tính rời rạc hoặc giá trị thực
– Ước lượng nhanh nếu hàm mục tiêu đã được học
Trang 2929
Perceptron
• Khái niệm cơ bản
– Perceptron là một mô hình đơn giản nhất của mạng nơron
– Percetron biểu diễn hàm boolean của n biến (x1, x2,… xn) với xi
wn
w1
w0
y (1/0)
Trang 3030
Perceptron
• Trong đó:
• Khả năng biểu diễn:
– là phương trình của một siêu phẳng – Perceptron chỉ biểu diễn được các hàm siêu phẳng tuyến tính,
siêu phẳng này chia không gian thành 2 phần
i x w w x w x
w
0
1 1
0 1
s s
0
1 1
0 w x w n x n
w
Trang 3131
Perceptron
• Ví dụ:
– Xây dựng perceptron biểu diễn các hàm boolean:
AND, OR, NAND, NOR
– Xây dựng một mạng nơron kết hợp các perceptron
để biểu diễn các hàm boolean: XOR, NXOR
Giả sử các giá trị logic 1(true) và -1(false)
AND: w0=-.8, w1=w2=.5
OR: w0=.3, w1=w2=.5
XOR: ?
Trang 3232
Luật học perceptron
• Hàm cần học: là hàm biểu diễn được bằng perceptron
• Giá trị đầu ra: y = f (x1, x2,… xn)
• Tập ví dụ huấn luyện:
D = {(x, t) | x= (x1, x2,… xn), t = 1/0}
• Nhiệm vụ: là xác định vector trọng số w = (w1, w2,… wn) sao cho khi đưa giá trị vào x thì giá trị ra tương ứng y=t
Trang 3333
Luật học perceptron
• Tư tưởng: xuất phát từ việc khởi tạo 1 bộ trọng số ngẫu nhiên tính được đầu ra, căn cứ vào đầu ra điều chỉnh đầu vào
• Thuật toán:
i Khởi tạo vector trọng số (w0,w1 ,wn), wi nhỏ Ví dụ:
chọn (-0,5, 0,5)
ii.Bước lặp: Đối với mọi ví dụ huấn luyện d=(x,t) D
• Tính đầu ra Ô của Perceptron ứng với x
• Cập nhật trọng số theo công thức wi wi +
(i=0,1, ,n) ( : hằng số dương nhỏ gọi là tốc độ học) i
x Ô
t ) (
Trang 3434
Mạng nơron truyền thẳng nhiều
tầng
Một mạng nơ ron truyền thẳng nhiều tầng:
Một ví dụ huấn luyện, X=(x1, x2, …, xi) được đưa vào
tầng đầu vào Giữa các tầng tồn tại các liên kết có trọng
số, trong đó wij thể hiện trọng số từ một đơn vị j ở một tầng tới một đơn vị i ở một tầng phía trước
Trang 3535
Mạng nơron truyền thẳng nhiều
tầng
• Thuật toán lan truyền ngược thực
hiện việc học trên một mạng nơron
truyền thẳng nhiều tầng
• Đầu vào tương ứng với số các thuộc
tính dùng đánh giá các đối tượng
Trang 3737
Xác định một tôpô cho mạng
• Trước khi huấn luyện người sử dụng phải quyết định tô
pô cuả mạng: số lượng các tầng, số lượng các đơn vị ở mỗi tầng
• Thường thì các giá trị đầu vào được chuẩn hoá sao cho rơi vào trong khoảng 0,1 hoặc -1,1 Các thuộc tính có
giá trị riêng rẽ có thể được mã hoá sao cho có một đơn
vị đầu vào cho mỗi miền giá trị
• Một đơn vị đầu ra có thể được sử dụng để đại diện cho hai lớp Nếu nhiều hơn hai lớp, thì sử dụng một đơn vị đầu ra cho mỗi lớp
• Không có quy tắc rõ ràng để xác định số lượng “tốt nhất” các đơn vị tầng ẩn Thiết kế mạng là quá trình thử- và-lỗi
Trang 3838
Huấn luyện mạng nơron
• Mục tiêu chính của việc huấn luyện:
– Thu được một tập các trọng số làm cho hầu hết các đối tượng trong tập dữ liệu huấn luyện được phân
loại chính xác
• Các bước:
– Khởi tạo các trọng số với các giá trị ngẫu nghiên
– Lần lượt đưa từng đối tượng đầu vào vào trong mạng – Với mỗi đơn vị:
• Tính toán đầu vào thực sự của đơn vị là sự kết hợp tuyến tính tất cả các đầu vào của đơn vị
• Tính toán giá trị đầu ra bằng việc sử dụng hàm hoạt hoá
• Tính toán lỗi
Trang 3939
Thuật toán lan truyền ngược
• Học bằng cách lặp lại việc xử lý một tập các đối tượng huấn luyện, so sánh dự đoán mạng của mỗi đối tượng với nhãn lớp đã biết của nó (sai số)
• Các trọng số được chỉnh sửa để làm cực tiểu sai số
trung bình bình phương Việc chỉnh sửa được thực hiện theo chiều “đi lùi”: từ tầng đầu ra, xuyên qua mỗi tầng ẩn xuống tầng đầu tiên
• Đầu vào: Các đối tượng huấn luyện, tốc độ học l, một
mạng truyền thẳng nhiều tầng
• Đầu ra: Mạng nơron được huấn luyện để phân lớp các đối tượng
Trang 40• Lan truyền các đầu vào về phía trước
– Tính đầu vào và đầu ra của mỗi đơn vị ẩn và đơn vị đầu ra
– Đầu vào được tính theo công thức: Ij = Σi wij Oi + θj
– Ví dụ đầu ra có thể được tính bởi hàm sigmoid Oj = 1/(1+e -Ij )
• Lan truyền ngược sai số
– Sai số được tính toán và được lan truyền ngược lại bằng cách cập nhật các trọng số (wij = wij + Δwij) và bias (θj = θj + Δθj) để phản hồi sai số dự đoán của mạng
Trang 4141
Thuật toán lan truyền ngược
Trang 4242
Thuật toán lan truyền ngược
Khởi tạo các trọng số và các bias trong mạng
While điều kiện dừng chưa được thoả mãn {
for mỗi đối tượng huấn luyện X { /* lan truyền thẳng đầu vào */
for mỗi đơn vị tầng ẩn hoặc tầng đầu ra j {
Ij = Σi wijOi + θj /* tính toán đầu vào thực sự của đơn vị j dựa vào tầng phía
trước */
Oj = 1/(1+e -Ij ) }
for mỗi đơn vị j ở tầng đầu ra /* lan truyền ngược các sai số */
Errj = Oj(1 - Oj)(Tj – Oj) /* tính toán sai số */
for mỗi đơn vị j ở các tầng ẩn, từ tầng ẩn cuối cùng đến tầng ẩn đầu tiên
Errj = Oj(1 - Oj) Σk Errkwjk /* tính toán sai số dựa vào tầng cao hơn tiếp theo k */ for mỗi trọng số wij trong mạng {
Δ wij = (l) Errj Oi /* số gia trọng số */
wij = wij + Δ wij } /* cập nhật trọng số */
for mỗi bias θj trong mạng {
θj = (l) Errj /* số gia bias */
θj = θj + Δ θj } /* cập nhật bias */
}}
Trang 43Bài tập
• Xét mạng đơn giản sau đây:
Giả sử các nơron sử dụng hàm hoạt hóa Sigmoid
(i) Thực hiện một lần truyền thẳng trên mạng
(ii) Thực hiện một lần (huấn luyện) truyền ngược (mục tiêu = 0.5) (iii) Thực hiện thêm một lần truyền thẳng và nhận xét kết quả