Chung cho mỗi nhóm sinh viên như sau có thể phát triển cho đồ án TN sau nàya Hãy nghĩ một đầu bài liên quan tới công việc: xây dựng cơ sở dữ liệu hoặc lấy dữliệu từ các thư viện trên mạn
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN MÔN: NHẬP MÔN KHAI PHÁ DỮ LIỆU VÀ MÁY HỌC
Trang 2Học lực Học thêm Kết quả
Câu 2 Sử dụng mạng Perceptron cho bài toán phân lớp Đối tượng phân lớp và dữ liệu tựchọn
Câu 3 Chung cho mỗi nhóm sinh viên như sau (có thể phát triển cho đồ án TN sau này)a) Hãy nghĩ một đầu bài liên quan tới công việc: xây dựng cơ sở dữ liệu hoặc lấy dữliệu từ các thư viện trên mạng hoặc trong Python
b) Sử dụng một trong các mạng nơ ron học sâu (sẽ dạy ở các buổi tiếp theo) để nhậndạng hoặc phân lớp đối tượng Đối tượng tùy chọn (ví dụ phân loại hoa quả, nhậndạng biển số xe, nhận dạng mặt người…)
c) Đánh giá độ chính xác
Trang 3Mục lục
Câu 1: Sử dụng thuật toán độ lộn xộn 2
Câu 2: Thiết kế cổng logic AND-Neural-Gate sử dụng mạng Perceptron 6
Mô hình tổng quát 6
Bảng chân lý cổng AND 6
Trọng số khởi tạo (ban đầu): 6
Hàm kích hoạt: 6
Pha học: 7
Vòng 1 : 7
Vòng 2: 8
Vòng 3: 9
Pha chạy: 10
Sơ đồ dự đoán 11
Câu 3: Mạng nơ ron tích chập CNN 12
Tài liệu tham khảo 21
Trang 4Câu 1: Sử dụng thuật toán độ lộn xộn
BƯỚC 1: Hoàn toàn tương tự như thuật toán Quinlan dung phương pháp “chia để trị
(tức tạo cây)
Học lực: A3 Điều kiện kinh tế:
Trang 5BƯỚC 2: Chọn gốc: Tính toán theo độ lộn xộn dùng Entropy
BƯỚC 4: Viết luật, dựa vào E=0 ở EA3
Luật 1 : IF ‘ A3’ là Giỏi
THEN ‘kết quả’ là Đậu
Trang 6Luật 2 : IF ‘A3’ là Trung Bình
THEN ‘kết quả’ là Không Đậu
BƯỚC 5: Tổ hợp chập 2 đặc trưng đầu vào, ta có 3 trường hợp sau:
Xóa nhánh A3(j=1), A3(j=3)
J=1
Khá
(a) (A3 là khá) AND (A1: Bố mẹ đỗ đại học)
(b) (A3 là khá) AND (A2: Điều kiện kinh tế)
Luật 3 : IF (A1 là ‘khá) ʌ (A4 là ‘có”)
THEN “kết quả” là “đậu”
Luật 4: IF (A1 là ‘khá’) ʌ (A4 là ‘không’)
THEN “kết quả” là “không đậu”
Trang 7Nhận xét 1: Có thể kết hợp 4 luật thành hai luật:
IF (A1 là “giỏi”) ∨¿(A1 là ‘khá’) ʌ (A4 là ‘có’)) THEN “kết quả” là “đỗ”
IF (A1 là “trung bình”) ∨¿( (A1 là ‘khá’) ʌ (A4 là ‘không’))
THEN “kết quả” là “không đỗ”
Trang 8Câu 2: Thiết kế cổng logic AND-Neural-Gate sử dụng mạng Perceptron
Trang 9Pha học:
Vòng 1 :
B1 Xét mẫu thứ 1: có véc tơ đặc trưng(véc tơ vào): x = (0, 0);véc tơ ra (nhãn): d1=0 ;
B1.1: tính trạng thái của nơ ron: u1= x1w1 + x2w2 + w0 = 0*0,3+0*0,4 - 0,2 = -0,2B1.2: Tính đầu ra: y1 = f (u1) = f (x1w1 + x2w2 + w0)=f(-0,2<0) → y1=0 (giống giá trị mong muốn 0)
B1.3 Tính sai số e1 = d1 - y1 = 0 - 0 = 0 => Đúng
B1.4 : Không tính lại tập trọng số
B2 : Xét mẫu thứ 2 : có véc tơ đặc trưng (véc tơ vào): x= (0, 1) ; véc tơ ra (nhãn) : d2=0
B2.1: Tính trạng thái của mẫu số 2 :
u2 = x1w1 + x2w2 + w0 = 0*0,3 + 1*0,4 -0,2 = 0,2
B2.2: Tính đầu ra của mẫu hai :
y2 = f(u2)= f (x1w1 + x2w2 + w0) = f(0,2>0) → y2=1(không giống giá trị mong muốn 0)
B2.3: Tính sai số của mẫu hai : e2 = d2 –y2 = 0 - 1= -1 ≠ 0 => Đúng
B2.4: Tính lại tập trọng số
w0(k+1)= w0(k) + (d2-y2)x0 = -0,2 + 0,1*(0 - 1)*1 = -0,3w1(k+1)= w1(k) + (d2-y2)x1 = 0,3 + 0,1*(0 - 1)*1 = 0,2w2(k+1)= w2(k) + (d2-y2)x2 = 0,4 + 0,1*(0 - 1)*0 = 0,3
B3: Xét mẫu thứ 3: có véc tơ đặc trưng (véc tơ vào): x= (1, 0) ; véc tơ ra (nhãn): d3=0
B3.1:Tính trạng thái của mẫu 3:
Trang 10B4.1: Tính trang thái của mẫu 4:
Bước 5 :Điều kiện dừng của thuật toán : căn cứ tổng sai số tuyệt đối của 4 mẫu : tính
tổng sai số tuyệt đối của 4 bước :
e = /e1/+/e2/+/e3/+/e4/ = 1 ≠ 0
Kết luận : Có sai :Quay lại tính tiếp vòng 2
Kết luận : giữ nguyên tập trong số
Xét mẫu thứ 2 : có véc tơ đặc trưng (véc tơ vào): x= (0, 1) ; véc tơ ra (nhãn) : d2=0
u1 = x1w1 + x2w2 + w0 = 0*0,2 + 1*0,3 - 0,3 = 0
y3 = f (u) = f (x1w1 + x2w2 + w0)=f(0=0) → y2=1
e2 = d2 –y2= 0 – 1 = 1 ≠ 0 => SaiTính lại tập trọng số
w0(k+1)= w0(k) + (d2-y2)x0 = -0,2 + 0,1*(0 - 1)*1 = -0,3w1(k+1)= w1(k) + (d2-y2)x1 = 0,2 + 0,1*(0 - 1)*1 = 0,1w2(k+1)= w2(k) + (d2-y2)x2 = 0,3 + 0,1*(0 - 1)*0 = 0,2
Xét mẫu thứ 3 : có véc tơ đặc trưng (véc tơ vào): x= (1, 0) ; véc tơ ra (nhãn) : d3=0
u3 = x1w1 + x2w2 + w0 = 1*0,1 + 0*0,2 – 0,3 = -0,2
y3 = f (u) = f (x1w1 + x2w2 + w0)=f(-0,2<0) → y3=0
e3 = d3 –y3 = 0 - 0 = 0 => Đúng
Trang 11Kết luận : giữ nguyên tập trong số
Xét mẫu thứ 4 : có véc tơ đặc trưng (véc tơ vào): x=(1, 1); véc tơ ra (nhãn): d4 = 1
u4= x1w1 + x2w2 + w0 = 1*0,1 + 1*0,2 – 0,3 = 0
y4 = f(u)= f(x1w1 + x2w2 + w0)=f(0=0) → y4=1
e4 = d4 –y4 = 1-1 = 0=> Đúng
Kết luận : giữ nguyên tập trong số ban đầu đã cho
Điều kiện dừng của thuật toán : căn cứ tổng sai số tuyệt đối của 4 mẫu : tính tổng sai số tuyệt đối của 4 bước :
e = /e1/+/e2/+/e3/+/e4/ = 1 ≠ 0
Kết luận : Có sai :Quay lại tính tiếp vòng 3
Kết luận : giữ nguyên tập trọng số ban đầu đã cho
Xét mẫu thứ 2 : có véc tơ đặc trưng (véc tơ vào): x= (0, 1) ; véc tơ ra (nhãn) : d2=0
u1= x1w1 + x2w2 + w0 = 0*0,1 + 1*0,2 - 0,3= -0,1
y2 = f (u) = f (x1w1 + x2w2 + w0)=f(-0,1<0) → y2=0
e2 = d2 –y2 = 0-0 =0=> Đúng
Kết luận : giữ nguyên tập trọng số
Xét mẫu thứ 3 : có véc tơ đặc trưng (véc tơ vào): x= (1, 0) ; véc tơ ra (nhãn) : d3=0
u3 = x1w1 + x2w2 + w0 = 1*0,1 + 0*0,2 – 0,3 = -0,2
y3 = f (u) = f (x1w1 + x2w2 + w0)=f(-0,2<0) → y3=0
e3 = d3 –y3 = 0-0 = 0 => Đúng
Kết luận : giữ nguyên tập trọng số
Trang 12u4 = x1w1 + x2w2 + w0 = 1*0,1+1*0,2 - 0,3 = 0
y4 = f(u) = f(x1w1 + x2w2 + w0)=f(0=0) → y4=1
e4 = d4 –y4 = 1 – 1 = 0 => Đúng
Kết luận : giữ nguyên tập trọng số
Điều kiện dừng của thuật toán : căn cứ tổng sai số tuyệt đối của 4 mẫu : tính tổng sai số tuyệt đối của 4 bước :
e = /e1/+/e2/+/e3/+/e4/ = 0 => Thỏa mãn điều kiện dừng
Kết luận : giữ nguyên tập trọng số ban đầu đã cho
Xét mẫu thứ 2 : có véc tơ đặc trưng (véc tơ vào): x= (0, 1) ; véc tơ ra (nhãn) : d2=0
u1= x1w1 + x2w2 + w0 = 0*0,1 + 1*0,2 - 0,3= -0,1
y2 = f (u) = f (x1w1 + x2w2 + w0)=f(-0,1<0) → y2=0 (giống giá trị mong muốn)
e2 = d2 –y2 = 0-0 =0=> Đúng
Kết luận : giữ nguyên tập trọng số
Xét mẫu thứ 3 : có véc tơ đặc trưng (véc tơ vào): x= (1, 0) ; véc tơ ra (nhãn) : d3=0
u3 = x1w1 + x2w2 + w0 = 1*0,1 + 0*0,2 – 0,3 = -0,2
y3 = f (u)= f (x1w1 + x2w2 + w0)=f(-0,2<0) → y3=0(giống giá trị mong muốn)
Trang 13e3 = d3 –y3 = 0 - 0 = 0 => Đúng
Kết luận : giữ nguyên tập trọng số
Xét mẫu thứ 4 : có véc tơ đặc trưng (véc tơ vào): x=(1, 1); véc tơ ra (nhãn): d4 =1
Trang 14Câu 3: Mạng nơ ron tích chập CNN
Bài toán nhận dạng là X hay O
Trong trò cờ caro Cần nhận biết ký tự là X hay O
Khi zoom lên vào các ký tự X và O Ta nhận thấy nó chính là các pixel
Trang 15Ta đặt các pixel đen tương ứng với 1 còn trắng tương ứng với 0 Như với chữ O dưới đây:
Chữ X:
Trong trò chơi caro này mỗi ô đều có kích thước 6x6 pixels
Sử dụng mạng CNN (mạng tích chập)
Ưu điểm của thuật toán này:
- Giảm số nút đầu vào
- Ít bị ảnh hưởng bới các thay đổi nhỏ trong các pixel
- Tận dụng được sự tương quan trong hình ảnh
Trang 16Mạng CNN sẽ sử dụng một filter(kernel) vào hình ảnh đầu vào (Ở đây sử dụng hình ảnh chữ O)
Độ dày sẽ được quyết định bằng thuật toán lan truyền ngược (BackPropagration)
Trước khi huấn luyện, ta có giá trị pixel ngẫu nhiên:
Sau khi sử dụng thuật toán lan truyền ngược:
Đặt filter lên ảnh và nhân các ô với vị trí tương ứng Như với filter trên áp vào hình ảnh đầu vào O:
(0x0) + (0x0) + (1x1) + (0x0) + (1x1) + (0x0) + (1x1) + (0x0) + (0x0) = 3
Phép cộng trên được gọi là Dot Product (tích vô hướng)
Trang 17Sau khi thực hiện xong phép tính trên Ta có thể nói rằng Filter đã được tích chập với ảnhinput.
Từ giá trị: 3 ở trên
(0x0) + (0x0) + (1x1) + (0x0) + (1x1) + (0x0) + (1x1) + (0x0) + (0x0) = 3
Cộng với b (Bias vào giá trị trên) = -2
Sau đó từ ảnh input trên dịch sang bên phải một cột và tiếp tục tính như trên:
Trang 18Sau đó được bảng feature đầy đủ:
Sử dụng thuật toán ReLu áp dụng vào feature map trên
Đặt các giá trị âm thành 0 các giá trị dương vẫn như trước
Feature map sau khi sử dụng thuật toán ReLu
Trang 19Ta thấy các giá trị âm sẽ trở thành 0 còn các giá trị dương giữ nguyên
Sau đó ta áp lên feature một filter nữa Nhưng filter này chỉ lấy giá trị max của mỗi vùng.Điều này được gọi là Max Polling:
Max pooling có tác dụng như thế nào đối với ví dụ này?
Max pooling sẽ thể hiện các khu vực mà filter giống nhất với ảnh đầu vào
Từ max pooling trên chuyển về vecto cột
Max pooling dạng cột chính là đầu vào
Trang 20Hidden layer chính là hàm ReLu với một nút duy nhất
Và 2 nút đầu ra xác định xem là X hay O
- Cộng các giá trị đầu vào của max pooling với b (bias là bằng 0.97)
(1x-0.8) + (0x-0.07) + (0x0.2) + (1x0.17) + 0.97 = 0.34
Đưa giá trị 0.34 qua hàm ReLu Ta được giá trị = 0.34
- Tiếp tục đưa giá trị qua 2 output Ta được các giá trị:
Trang 21Nếu dịch chuyển ảnh lệch đi thì sao? Mạng học sâu vẫn xác định được
Ta có thể rằng giá trị đầu ra bằng -0,2 với đầu ra của O
Và bằng 1,23 với đầu ra của X
Mạng học sâu vẫn xác định được đây là X
Trang 22Tài liệu tham khảo
[1] Deep-learning-co-ban-v2-NGUYỄN THANH TUẤN
[2] Machine Learning cơ bản - Origine
[3] Introduction to Machine Learning - Ethem Alpaydin.2004
[4] Vũ Hữu Tiệp, Machine Learning cơ bản 2018
[5] AI 2nd addition MICHAEL NEGNEVITSKY