You are on page 1of 244

HỌC MÁY

(MACHINE LEARNING)
Giảng viên: Nguyễn Thị Lan Phương
Khoa Công nghệ thông tin và truyền thông
Tài liệu tham khảo
• Machine Learning cơ bản – Vũ Hữu Tiệp (trang web:
machinelearningcoban.com)
• Introduction to Machine Learning (the second edition) – Ethem
Alpaydin
• Deep Learning cơ bản – Nguyễn Thanh Tuấn
• Mạng nơronvà ứng dụng trong điều khiển tự động – Phạm Hữu
Đức Dục – NXB Khoa học và Kỹ thuật – 2009
Đánh giá học phần: (15 tuần – 30TC)
• Bài tập lớn HỌC MÁY:
❖ SV làm việc nhóm (từ 3 – 5 thành viên)
❖ SV nộp bài làm (bản Word, Slide và sản phẩm (nếu có) vào tuần ...)
❖ SV báo cáo BTL vào tuần ...

• Điểm chuyên cần: Điểm danh hàng tuần, bài kiểm tra giữa kỳ
• Thi cuối kỳ: Tự luận
• Đề tài làm BTL:
❖ Tìm hiểu về các giải thuật HỌC MÁY và cài đặt thí nghiệm một công cụ
liên quan đến một giải thuật cụ thể
❖ (Có thể) Phát triển một đề án thực tế có áp dụng HỌC MÁY
Những vấn đề cốt lõi của TRÍ TUỆ NHÂN TẠO
(AI – Artificial Intelligent)
• TRÍ TUỆ NHÂN TẠO là trí tuệ được
biểu diễn bởi bất kỳ một hệ thống
nhân tạo nào, là một ngành thuộc
lĩnh vực khoa học máy tính, do con
người lập trình tạo nên với mục tiêu
giúp máy tính có thể tự động hóa các
hành vi thông minh như con người.
• Mục tiêu của TTNT là mô phỏng trí
tuệ của con người trong các xử lý mà
con người làm tốt hơn máy tính.
Những vấn đề cốt lõi của TRÍ TUỆ NHÂN TẠO (AI)
• Biểu diễn (representation).
• Lập luận (reasoning).
• Học (learning).
• Tương tác (interaction).
 máy tính có được những trí
tuệ của con người: Biết suy
nghĩ, lập luận để giải quyết vấn
đề; Biết giao tiếp do hiểu ngôn
ngữ, tiếng nói; Biết học và tự
thích nghi,….
TỔNG QUAN VỀ HỌC MÁY
❑ Vai trò của học máy trong trí tuệ nhân tạo
• Học máy là gì?
• Ứng dụng của học máy
• Các phương pháp và lĩnh vực liên quan đến học máy
• Ví dụ về bài toán học máy
• Cách tiếp cận của khoá học
❑ Quy trình học máy
❑ Phân nhóm các thuật toán học máy
❑ Các thành phần chính của bài toán học máy
❑ Các vấn đề cơ bản trong học máy
Vai trò của HỌC MÁY trong TTNT
• Là một nhánh con của trí tuệ
nhân tạo (1)
• Liên quan đến việc phát triển các
kĩ thuật cho phép các máy tính
có thể “HỌC” (2)
• Công cụ chính là các thuật toán,
giúp máy tính có thể tự học từ
nguồn dữ liệu cung cấp (3)
HỌC MÁY (MACHINE LEARNING) là gì?
• Con người học như thế nào?
– Nhớ và làm lại (học vẹt)
– Học nhờ quan sát và khái quát hoá (học hiểu)
Các định nghĩa về HỌC MÁY
❖ Là sự thay đổi thích ứng trong hệ thống giúp cho hệ thống có thể xử lý vấn
đề ngày càng hiệu quả hơn khi gặp lại những tình huống tương tự [Simon,
1983]
❖ Một quá trình mà một chương trình máy tính cải thiện hiệu suất của nó
trong một công việc thông qua kinh nghiệm [Mitchell, 1997]
(Học máy = Cải thiện hiệu quả một công việc thông qua kinh nghiệm)
❖ Việc lập trình các máy tính để tối ưu hóa một tiêu chí hiệu suất dựa
trên các dữ liệu ví dụ hoặc kinh nghiệm trong quá khứ [Alpaydin,
2004]
 là một ngành khoa học nghiên cứu các thuật toán (algorithm) cho phép
máy tính có thể học được các khái niệm (concepts).
Học làm gì? Khi nào học?
❖ Học là cần thiết trong những ❖ Tri thức con người chưa đủ
môi trường chưa quen thuộc. (VD: Trên sao hỏa)
❖ Học là một phương pháp hữu ❖ Con người không đủ khả năng
hiệu để xây dựng hệ thống. giải thích (nhận dạng giọng nói)
❖ Lời giải thay đổi theo thời gian
❖ Học là cách để các chương (Solutions change over time)
trình thông minh có thể hiệu
chỉnh hành vi nhằm tăng hiệu ❖ Lời giải cần thích nghi trong
quả giải quyết vấn đề. từng trường hợp cụ thể (sinh
vật học)
Ứng dụng của HỌC MÁY
❖ Hiện học máy được ứng dụng trên nhiều lĩnh vực do:
− Một loạt các thuật toán học máy ra đời. Cơ sở lý thuyết được xây
dựng ngày càng đầy đủ.
− Dữ liệu ngày càng nhiều và dư thừa nhưng tri thức cần thì thiếu.
− Sức mạnh tính toán của máy tính được nâng cao.
− Nhiều ngành khoa học mới nảy nở (VD: Bioinformatics - Tin sinh học)
Ứng dụng của HỌC MÁY
❖ Có thể phân tích dữ liệu lớn (Big Data) để đưa ra những dự đoán
xu hướng trong tương lai.
(Ví dụ như dự đoán kết quả bầu cử chính trị, dự đoán biến động của thị trường
chứng khoán…)
❖ Áp dụng công nghệ nhận diện hình ảnh nhằm cung cấp dữ liệu cho
các mô hình định giá hoặc mô hình kinh tế.
(Bằng khả năng phân tích dữ liệu từ hệ thống vệ tinh, thuật toán học máy sẽ
tiến hành xử lý và cung cấp những thông tin về số lượng khách hàng tại bãi đậu
xe, các hoạt động vận chuyển, sản lượng sản xuất...)
Các ứng dụng chính:
• Khai phá dữ liệu (Data Mining):
− Máy truy tìm dữ liệu (Search Engines)
− Chẩn đoán y khoa (Medical Diagnosis)
− Phát hiện thẻ tín dụng giả (Banking - bảo mật thông tin)

• Phân tích thị trường chứng khoán, tài chính (Stock Market Analysis)
• Phân loại các chuỗi DNA (Bioinformatics) trong y học
• Nhận dạng tiếng nói và chữ viết (Speech and Hand-writing Recognition),
dịch tự động (Xử lý ngôn ngữ tự nhiên - Natural Language Processing)
• Chơi trò chơi (Game Playing)
• Xây dựng và điều khiển (Chơi và cử động ) rô-bốt (Robot Locomotion)
Phân loại HỌC MÁY
Có 2 phương pháp Học máy chính:
• Phương pháp quy nạp: Máy học/phân biệt các khái niệm dựa trên
dữ liệu đã thu thập được trước đó. Phương pháp này cho phép tận
dụng được nguồn dữ liệu rất nhiều và sẵn có.
• Phương pháp suy diễn: Máy học/phân biệt các khái niệm dựa vào
các quy tắc/tập luật. Phương pháp này cho phép tận dụng được các
kiến thức chuyên ngành để hỗ trợ máy tính.
Các phương pháp HỌC MÁY
Cụ thể:
• Cây quyết định (Decision Trees).
• Mạng nơron nhân tạo (Artificial Neural Networks).
• Mạng Bayes (Bayesian Networks).
• Máy vector hỗ trợ (Support Vector Machines).
• Mô hình Markov (Learning Markov Processes).
• Học thông qua giải thích (Learning by Explanation).
• Học củng cố (Learning by Reinforcement).
• Giải thuật di truyền (Heuristic Learning (GAs, GP, ...)).
Các lĩnh vực liên quan đến HỌC MÁY
• Lý thuyết thống kê (Statistics Theory): các kết quả trong xác suất thống kê là
tiền đề cho rất nhiều phương pháp học máy. Đặc biệt, lý thuyết thống kê cho
phép ước lượng sai số của các phương pháp học máy.
• Lý thuyết độ phức tạp tính toán (Computational Complexity Theory): các
thuật toán học máy thường sử dụng các tính toán số thực/số nguyên trên dữ
liệu rất lớn. Trong đó, các bài toán như: tối ưu có/không ràng buộc, giải phương
trình tuyến tính v.v… được sử dụng rất phổ biến.
• Khoa học máy tính (Computer Science): là cơ sở để thiết kế các thuật toán,
đồng thời đánh giá thời gian chạy, bộ nhớ của các thuật toán học máy.
Vai trò của Toán học trong HỌC MÁY

• Học máy dựa trên nền tảng


bốn trụ cột Toán học:
1. Đại số tuyến tính

2. Giải tích

3. Số liệu thống kê

4. Xác suất
Vai trò của Toán học trong HỌC MÁY
1. Đại số tuyến tính
❖ Biến đổi tập dữ liệu thành ma trận cho phép thực hiện rất nhiều phép
toán. NumPy là một thư viện được sử dụng trong Học máy thực hiện
một số hoạt động trên mảng Nd.
❖ Các khái niệm cần biết: Vectơ; Khoảng cách vectơ; Vô hướng; Chuẩn hóa;
Phép toán Ma trận; Phép chiếu; ...
Vai trò của Toán học trong HỌC MÁY
2. Giải tích Ví dụ:
Hồi quy tuyến tính là một mô hình tuyến tính thiết lập
❖ Có vai trò đặc biệt quan trọng mối quan hệ giữa một biến phụ thuộc y (Mục tiêu) với
trong nhiều thuật toán học một (nhiều) biến độc lập x (Đầu vào) bằng cách sử dụng
máy như thuật toán làm giảm một đường thẳng phù hợp nhất (gọi là đường hồi quy).
độ dốc và lan truyền ngược để
đào tạo mạng nơ-ron học sâu.
❖ Kiến thức về giải tích giúp tối
ưu hóa hiệu suất của mô hình.
❖ Các khái niệm cần biết: Tính vi
phân và tích phân; Đạo hàm
từng phần; Hàm vectơ - giá trị;
Gradient hướng, Jacobian; ... Mô hình thuật toán này nhằm tìm độ dốc, độ dốc xuống
của đường hồi quy
Vai trò của Toán học trong HỌC MÁY
3. Xác suất
❖ Các sự kiện không chắc chắn
(nhiễu và thiếu dữ liệu liên quan) là
nguyên nhân dẫn đến sự không
hoàn hảo trong mô hình học máy.
 giúp dự đoán khả năng xảy ra
các sự kiện trong tương lai trong
học máy.
❖ Các khái niệm cần biết: Xác suất
chung, cận biên và có điều kiện;
Phân phối xác suất (Rời rạc, liên
tục); Ước tính mật độ; Ước tính
khả năng tối đa; Định lý Bayes, ...
Vai trò của Toán học trong HỌC MÁY
3. Xác suất
Vai trò của Toán học trong HỌC MÁY
4. Số liệu thống kê
❖ Được sử dụng để rút ra kết luận
logic từ các dữ liệu đã cho, giúp trả
lời các câu hỏi như:
 Sản phẩm nào được bán cao nhất vào
bất kỳ tháng cụ thể nào?
 Ai ghi được nhiều lần chạy nhất trong
giải đấu cricket?
❖ Các khái niệm thống kê cần biết:
Phân phối; Xu hướng trung tâm; Độ
nghiêng; Hệ số tương quan tuyến
tính; Định lý giới hạn trung tâm,
Kiểm định giả thuyết, ...
Cách biểu diễn một bài toán HỌC MÁY
Theo [Michell,1997]:
Học máy = Cải thiện hiệu quả một công việc thông qua kinh nghiệm

 Học = Cải thiện khả năng thực hiện nhiệm vụ T của hệ thống dựa
trên kinh nghiệm E với độ đo chất lượng thực hiện nhiệm vụ P.
Ví dụ bài toán HỌC MÁY (1): Lọc thư rác (Email
spam filtering)
Cho một tập các emails (Training examples) đã được đánh dấu spam, sử dụng
một thuật toán thích hợp sẽ đưa ra một “bộ luật” (Prediction rule) mà dùng nó có
thể tự động lọc các emails trong tương lai vào Spam folder hay Inbox.
▪ T:
Dự đoán (để lọc) những thư điện tử
nào là thư rác (Spam email)
▪ P:% các thư điện tử gửi đến được phân
loại chính xác
▪ E: Một tập các thư điện tử (Emails) mẫu,
mỗi thư được biểu diễn bằng một tập
các thuộc tính (VD: tập từ khóa) và nhãn
lớp (thư thường/thư rác) tương ứng.
Ví dụ bài toán HỌC MÁY (1): Lọc thư rác
(Email spam filtering)
• Các mục tiêu
− Độ chính xác cao (1)
− Dùng ít tài nguyên tính toán (2)
− Dùng ít dữ liệu huấn luyện (Training data) (3)
− Có tính khái quát cao (General-purpose) (4)
− Có luật học (Prediction rule) đơn giản
Ví dụ bài toán HỌC MÁY (2): Phân loại các
trang Web
Ví dụ bài toán HỌC MÁY (3): Bài toán lọc trang
Web theo sở thích của một người dùng
▪ T:Dự đoán (để lọc) xem những
trang Web nào mà một người
dùng cụ thể thích đọc

▪ P:
Tỷ lệ (%) các trang Web được
dự đoán đúng

▪ E:Một tập hợp các trang Web mà


người dùng đã chỉ định là thích
đọc và một tập hợp các trang Web
mà anh ta đã chỉ định là không
thích đọc.
Ví dụ bài toán HỌC MÁY (4): Nhận dạng chữ viết tay

▪T: Nhận dạng và phân loại các từ


trong các ảnh chữ viết tay

▪P: Tỷ lệ (%) các từ được nhận


dạng và phân loại đúng

▪E: Một tập các ảnh chữ viết tay,


trong đó mỗi ảnh được gắn với
một định danh của một từ
Ví dụ bài toán HỌC MÁY (5):
Dự đoán rủi ro cho vay tài chính
▪T: xác định mức độ rủi ro (cao/thấp)
đối với các hồ sơ xin vay tài chính

▪P: Tỷ lệ % các hồ sơ xin vay có mức độ


rủi ro cao (không trả lại tiền vay) được
xác định chính xác

▪E: Một tập các hồ sơ xin vay; mỗi hồ sơ


được biểu diễn bởi một tập các thuộc
tính và mức độ rủi ro (cao/thấp)
Ví dụ bài toán HỌC MÁY (6):
Bài toán robot lái xe tự động
▪T: Robot (được trang bị các camera
quan sát) lái xe tự động trên đường
cao tốc
▪P: Khoảng cách trung bình mà robot
có thể lái xe tự động trước khi xảy ra
lỗi (tai nạn)
▪E: Một tập các ví dụ được ghi lại khi
quan sát một người lái xe trên
đường cao tốc, mỗi ví dụ gồm một
chuỗi các ảnh và các lệnh điều khiển
xe.
Cách tiếp cận môn học
Tiếp cận môn học thông qua các thuật toán của Học máy:

 Tìm hiểu các thuật toán và mô hình học máy cơ bản như:
▪ Mạng Neural
▪ Cây quyết định
▪ Mạng Bayesian
▪ Support Vector Machines
▪ Mô hình Markov ẩn
▪ Giải thuật di truyền
▪ .........
Quy trình HỌC MÁY
Phân nhóm các thuật toán HỌC MÁY
❑ Học có giám sát (Supervised Learning - SL)
Trong SL, chúng ta cần phải cung cấp cho máy tính một tập dữ liệu mẫu ( ví
dụ học x, giử sử x = [một tập hợp các câu hỏi; các câu trả lời đúng]). Và chúng
ta kì vọng rằng máy tính thông qua các thuật toán, các mô hình được cài đặt có
thể tìm ra câu trả lời cho các câu hỏi chưa có đáp án trong tương lai.
Để làm được việc này, cần một tập dữ liệu chuẩn để làm tập dữ liệu huấn
luyện (training dataset). Trên tập này, chúng ta sẽ “hướng dẫn” cho máy tính
“học” thông qua các mô hình đã được quy định. Các tham số sinh ra được từ tập
dữ liệu huẩn luyện sẽ được sử dụng để thẩm định lại tính thích hợp của mô hình
trên tập dữ liệu kiểm tra (testing dataset).
Tập dữ liệu kiểm thử
Tập dữ liệu huấn luyện

Tiền xử lý dữ liệu và Tiền xử lý dữ liệu và


biểu diễn dữ liệu biểu diễn dữ liệu

Mô hình của thuật toán Tập vector dữ liệu (Tập Tập vector dữ liệu (Tập
học có giám sát: các ví dụ học) các ví dụ thử nghiệm)

Hàm đánh giá dữ liệu


Huấn luyện
kiểm thử

Kết quả
Phân nhóm các thuật toán HỌC MÁY
❑ Học có giám sát (Supervised Learning)
• Mỗi ví dụ học gồm 2 phần: biểu diễn (mô tả) của ví dụ học và nhãn lớp
(giá trị đầu ra mong muốn) của ví dụ học đó.
VD: Biểu diễn của ví dụ học: Một tập các câu hỏi
Nhãn lớp của ví dụ học tương ứng: Các câu trả lời đúng
• Bài toán phân lớp (Classiffication):

D_train = {(<Biểu_diễn_của_x>, <Nhãn_lớp_của_x>)}

• Bài toán dự đoán/hồi quy (Prediction/Regression)

D_train = {(<Biểu_diễn_của_x>, <Giá_trị_đầu_ra_của_x>)}

 Tạo ra một hàm ánh xạ dữ liệu vào tới kết quả mong muốn.
?
Dự đoán

?
Phân lớp
Phân nhóm các thuật toán HỌC MÁY
❑ Học có giám sát (Supervised Learning - SL)

Về mặt toán học: Khi có một tập biến đầu vào X = {x1, x2,…, xN} và một tập hợp
nhãn tương ứng Y = {y1, y2,…, yN}, trong đó xi, yi là các vector; xi ∈ Rn là vector mẫu
quan sát gồm n thuộc tính. Các cặp dữ liệu biết trước (xi,yi) ∈ X×Y được gọi là
tập training data (dữ liệu huấn luyện). Từ tập này, cần tạo ra một hàm số để xấp
xỉ tốt nhất (ánh xạ) mỗi phần tử từ tập xi∈X sang một phần tử tương ứng của
tập yi∈Y: yi ≈ f(xi), ∀i = 1, 2,…, N sao cho độ lệch của việc xấp xỉ là nhỏ nhất
 Khi có một dữ liệu x mới ( X), ta có thể tính được nhãn tương ứng
của nó theo y = f(x)
Phân nhóm các thuật toán HỌC MÁY
❑ Học có giám sát (Supervised Learning - SL)

VD1: Trong nhận dạng chữ viết tay, ta có ảnh của hàng nghìn chữ số được
viết bởi nhiều người khác nhau. Chúng ta đưa các bức ảnh này vào một mô
hình và dùng một thuật toán phù hợp để chỉ cho nó biết mỗi bức ảnh tương
ứng với chữ số nào. Kết quả thu được là một hàm số mà đầu vào là một bức
ảnh và đầu ra là một chữ số. Khi nhận được một bức ảnh mới mà mô
hình chưa nhìn thấy bao giờ, nó sẽ dự đoán bức ảnh đó chứa chữ số nào.
Phân nhóm các thuật toán HỌC MÁY
❑ Học có giám sát (Supervised Learning - SL)

VD2: Trong nhận dạng khuôn mặt, thuật toán dò tìm các khuôn mặt trong
một bức ảnh đã được Facebook sử dụng để chỉ ra các khuôn mặt trong một
bức ảnh là ai và yêu cầu người dùng tag friends - tức gán nhãn cho mỗi
khuôn mặt. Số lượng cặp dữ liệu (khuôn mặt, tên người) càng lớn, độ chính
xác ở những lần tự động tag tiếp theo sẽ càng lớn.
Phân nhóm các thuật toán HỌC MÁY
❖ Phân lớp trong Học có giám sát
Một bài toán được gọi là classification nếu các label của input data được chia
thành một số hữu hạn nhóm. Mô hình học máy cần thực hiện một tác vụ phân
lớp, đầu vào x nhận một trong k loại đối tượng được gán nhãn sẵn. Thuật toán
học máy cần tạo ra một hàm xấp xỉ f: Rn ↦ 1, 2,… ,k. Khi đó, mô hình có thể đưa
ra dự đoán về phân lớp đầu ra y = f(x) (là các lớp rời rạc) dựa trên đầu vào.

Phân các loại quả thành 2 loại Phân lớp các thư nhận được là thư
Táo hay Chuối??? rác hay thư thường?
Phân nhóm các thuật toán HỌC MÁY
❖ Hồi quy/Dự đoán trong Học có giám sát
Một bài toán là regression/prediction nếu các label không được chia thành các
nhóm mà là một giá trị thực cụ thể. Mục tiêu của bài toán là dự đoán giá trị của
biến phụ thuộc y (đầu ra) vào giá trị của các thuộc tính độc lập cho trước x (đầu
vào). Thuật toán học máy cần tìm ra một hàm f: Rn → R với nhiệm vụ tương tự
như việc phân lớp ở trên, ngoại trừ sự khác biệt của định dạng của đầu ra (mô
hình hồi quy cho đầu ra là các giá trị dự đoán liên tục).
Phân nhóm các thuật toán HỌC MÁY
❑ Học không có giám sát (Unsupervised Learning - USL)
USL sử dụng một thuật toán để mô tả hoặc trích xuất ra các mối quan hệ
tiềm ẩn trong tập dữ liệu (là các ví dụ học).
Khác với SL, USL chỉ thực thi trên dữ liệu đầu vào mà không cần các
thuộc tính nhãn, hoặc mục tiêu của việc học (Tức là không hề được cung
cấp trước một kiến thức nào trước (Các câu trả lời đúng) trừ dữ liệu (Các
câu hỏi)
 Thuật toán học được từ dữ liệu không hề có bất cứ sự “hướng dẫn” nào.
Phân nhóm các thuật toán HỌC MÁY
❑ Học không có giám sát (Unsupervised Learning - USL)
• Về mặt toán học: Mỗi ví dụ học chỉ chứa biểu diễn (mô tả) của ví dụ học
đó (chỉ có dữ liệu vào X) mà không có bất kỳ thông tin nào về nhãn lớp
hay giá trị đầu ra mong muốn Y tương ứng  Không biết câu trả lời
chính xác cho mỗi dữ liệu đầu vào.
• Bài toán phân cụm(Clustering):

Tập học D_train = {(<Biểu_diễn_của_x>)}

• Bài toán luật kết hợp (Association)


 mô hình hóa một tập dữ liệu, không có sẵn các ví dụ đã được
gắn nhãn.
Phân nhóm các thuật toán HỌC MÁY

Tên của các nhãn là “mèo” hoặc “không


phải mèo”

Học có giám sát

Tên của các nhãn không có trong bộ dữ liệu,


ta chỉ tìm được mối quan hệ: có một số ảnh
giống nhau ở phía trên (Similar Group 1) và
một số ảnh giống nhau ở phía dưới (Simliar
Group 2) nhưng ta không biết rõ hai tập này
là gì, chỉ biết rằng chúng “giống nhau”.
Phân nhóm các thuật toán HỌC MÁY
❖ Phân cụm trong Học không có giám sát
Bài toán Clustering thực hiện phân chia toàn bộ dữ liệu X thành các nhóm
nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm từ đó phân loại
các nhóm mà dữ liệu có các đặc tính gần tương tự với nhau.
VD1: Ta đưa cho một đứa trẻ rất nhiều mảnh ghép với các hình thù và màu
sắc khác nhau (tam giác, vuông, tròn, xanh, vàng, đỏ). Sau đó yêu cầu trẻ
phân chúng thành từng nhóm. Mặc dù không cho trẻ biết mảnh nào tương
ứng với hình nào hoặc màu nào, tuy nhiên trẻ vẫn có thể phân loại các
mảnh ghép theo màu hoặc hình dạng.
VD2: Phân nhóm khách hàng dựa trên hành vi và thói quen mua hàng...
Phân nhóm các thuật toán HỌC MÁY
❖ Luật kết hợp trong Học không có giám sát
Association là bài toán giúp ta khám phá ra một quy luật dựa trên nhiều
dữ liệu cho trước.
Ví dụ: Những khách hàng nam mua quần áo thường có xu hướng mua
thêm đồng hồ hoặc thắt lưng; những khán giả xem phim Spider Man
thường có xu hướng xem thêm phim Bat Man..., dựa vào đó tạo ra một hệ
thống gợi ý khách hàng (Recommendation System), thúc đẩy nhu cầu mua
sắm...
Phân nhóm các thuật toán HỌC MÁY
❑ Học bán giám sát (Semi Supervised Learning - SSL)
Khi có một lượng lớn dữ liệu X nhưng chỉ một số dữ liệu quan sát được gán
nhãn và phần lớn dữ liệu khác lại không được gán nhãn. Các dữ liệu này
được kết hợp với nhau để sinh một hàm hoặc một mô hình hiệu quả hơn.
Điển hình của nhóm này là chỉ có một phần ảnh/văn bản được gán nhãn (ảnh
(người, động vật)/văn bản (khoa học, chính trị)) và phần lớn các bức ảnh/văn
bản khác chưa được gán nhãn được thu thập từ Internet. Rõ rang việc thu
thập dữ liệu có nhãn tốn nhiều thời gian và chi phí cao, thậm chí nhiều loại dữ
liệu cần phải có chuyên gia mới gán nhãn được (ảnh y học). Ngược lại, dữ liệu
chưa có nhãn có thể được thu thập với chi phí thấp từ internet.
Phân nhóm các thuật toán HỌC MÁY
❑ Học tăng cường (RL - VD1: AlphaGo (Google, 2016) cho trò chơi cờ vây - có độ phức tạp
cực kỳ lớn về mặt tính toán (với số nước đi ước tính  10761).
Reinforcement Learning)
là mô hình học giúp cho một
hệ thống tự động xác định
hành vi dựa trên hoàn cảnh
để tối đa nhất hiệu quả đạt
được. Mỗi hành vi đều có tác
động tới môi trường. Qua đó,
môi trường cung cấp thông
tin phản hồi để hướng dẫn
cho thuật toán của quá trình AlphaGo sử dụng một mô hình đặc biệt kết hợp giữa SL và RL. Phần
học nhằm điều chỉnh hoạt học có giám sát dùng để huấn luyện dữ liệu từ các ván cờ con
động của chính mình. người chơi với nhau, phần học tăng cường được sử dụng để
AlphaGo tự chơi với chính nó hàng triệu ván cờ nhằm tìm ra cách
chơi tối ưu hơn sau khi đã học xong các ván cờ của con người.
Phân nhóm các thuật toán HỌC MÁY
VD2: Huấn luyện cho máy tính
chơi game Mario. Đầu vào của thuật
toán là sơ đồ của màn hình tại thời
điểm hiện tại, nhiệm vụ của thuật
toán là với đầu vào đó, tổ hợp phím
nào nên được bấm. Việc huấn luyện
này được dựa trên điểm số cho việc di
chuyển được bao xa trong thời gian
bao lâu trong game, càng xa và càng
nhanh thì được điểm thưởng càng
cao (điểm thưởng này là điểm do
chính người lập trình tạo ra). Thông
qua huấn luyện, thuật toán sẽ tìm ra
một cách tối ưu để tối đa số điểm
thưởng, qua đó đạt được mục đích
cuối cùng là cứu công chúa.
Phân nhóm các thuật toán HỌC MÁY
❑ Học chuyển đổi:
Thuật toán này tương tự học có giám sát nhưng không xây dựng hàm
mục tiêu một cách rõ ràng. Thay vào đó, cố gắng đoán kết quả mới
dựa vào các dữ liệu huấn luyện, kết quả huấn luyện và dữ liệu thử
nghiệm có sẵn trong quá trình huấn luyện.

❑ Học cách học:


Thuật toán học thiên kiến quy nạp của chính mình, dựa theo các kinh
nghiệm đã gặp.
Các thành phần chính của bài toán HỌC
MÁY
❑Lựa chọn các ví dụ học (training set/learning examples)
❑Xác định hàm mục tiêu (giả thiết, khái niệm) cần học
❑Lựa chọn cách biểu diễn cho hàm mục tiêu cần học
❑Lựa chọn một giải thuật học máy có thể học (xấp xỉ) được hàm
mục tiêu
Các thành phần chính của bài toán HỌC
MÁY
❑Lựa chọn các ví dụ học (training/learning examples)
• Các thông tin hướng dẫn quá trình học (Training Feedback) được chứa
ngay trong các ví dụ học (Phản hồi trực tiếp), hoặc là được cung cấp gián
tiếp (có trễ, từ môi trường hoạt động hay trong quá trình hoạt động (ví dụ
trong Spam, nhận dạng giọng nói, chữ viết, ảnh vân tay...)
• Các ví dụ học theo kiểu có giám sát (Supervised) hay không có giám sát
(Unsupervised) ( Có đầu ra lý tưởng hay không?)
• Các ví dụ học phải tương thích với (đại diện cho) các ví dụ sẽ được sử
dụng bởi hệ thống trong tương lai (Future Test Examples) hay đích của
quá trình học.
 Đây chính là cách xác định kiểu dữ liệu dùng cho huấn luyện.
Các thành phần chính của bài toán HỌC
MÁY
❑Xác định hàm mục tiêu (giả thiết, khái niệm) cần học
Các thành phần chính của bài toán HỌC
MÁY
❑Lựa chọn cách biểu diễn cho hàm mục tiêu cần học
• Hàm đa thức (A Polynomial Function)
• Một tập các quy tắc (các luật) (A Set of Rules)
• Một cây quyết định (A Decision Tree)
• Một mạng nơron nhân tạo (An Artificial Neural Network)
•…
 Đây chính là cách xác định mô hình dùng cho huấn luyện.
Các thành phần chính của bài toán HỌC
MÁY
❑Lựa chọn một giải thuật học máy có thể học (xấp xỉ) được hàm
mục tiêu
• Phương pháp học hồi quy (Regression - Based)
• Phương pháp học quy nạp luật (Rule Induction)
• Phương pháp học cây quyết định (ID3 hoặc C4.5)
• Phương pháp học lan truyền ngược (Back – Propagation)
Các bước trong HỌC MÁY
Phát biểu bài toán: [Tom Mitchell, 1997]
Học = Cải thiện khả năng thực hiện nhiệm vụ T của hệ thống dựa trên kinh nghiệm
E với độ đo chất lượng thực hiện nhiệm vụ P.
Ví dụ 1: Xây dựng chương trình chơi cờ tướng thông minh.
• T: chương trình chơi cờ tướng (người-máy, máy-máy)
• P: số phần trăm ván thắng khi chơi với các kiện tướng quốc gia.
• E: kinh nghiệm từ những ván tự chơi (máy-máy) và chơi với người.
Các bước trong HỌC MÁY
Phát biểu bài toán: [Tom Mitchell, 1997]
Vấn đề:
– Thu thập kinh nghiệm (dữ liệu) E ở đâu?
– Cách thu thập E như thế nào?
– Đâu là thành phần cần học trong chương trình?
– Biểu diễn thành phần đó như thế nào?
– Dùng thuật toán gì để học?
Các bước trong HỌC MÁY
1. Xác định kiểu dữ liệu dùng cho huấn luyện:
❑ Dữliệu E (là các ván đấu tự chơi của máy; máy – người) dùng cho huấn luyện
được cung cấp trực tiếp hay gián tiếp?
❑ Dữliệu E đó sẽ được huấn luyện (học) theo kiểu có giám sát hay không có
giám sát?
❑ Dữ liệu E đó có mang tính đại diện hay tương thích
với các dữ liệu sẽ được sử
dụng cho hệ thống chơi cờ trong tương lai hay không hay sẽ là đích của quá
trình học?
Các bước trong HỌC MÁY
2. Xác định hàm mục tiêu:
f: B → M (B = Board: Tập các trạng thái bàn cờ (các thế cờ)
M = Move: Các nước đi hợp lệ với các trạng thái tương ứng)
Giả sử hàm mục tiêu có dạng trực tiếp: V: B → R (với R: tập số thực sao cho
mỗi nước đi tốt hơn thì hàm V nhận giá trị lớn hơn)
Giả sử ta định nghĩa hàm giá trị như sau:
• b là trạng thái cuối bàn cờ thắng cuộc: V(b) = 100.
• b là trạng thái cuối bàn cờ thua cuộc: V(b) = -100.
• b là trạng thái bàn cờ hoà: V(b) = 0.
• Nếu b không phải là trạng thái kết thúc thì V(b) = V(b’). Trong đó: b’ là
trạng thái kết thúc tốt nhất có thể đến được từ b thông qua chuỗi nước
đi tối ưu đến cuối ván.
Các bước trong HỌC MÁY
3. Xác định (lựa chọn) cách biểu diễn cho hàm mục tiêu cần học
❑ Dạng hàm đa thức (a polynomial function)

❑ Mạng Neural nhân tạo (an artificial neural network)?

❑ Tập luật (a set of rules)?

❑ Cây quyết định (a decision tree)?

❑ Biểu thức giải tích tiến hoá (analysis of evolution) từ lập trình GEN?
... ... ...
Các bước trong HỌC MÁY
3. Xác định (lựa chọn) cách biểu diễn cho hàm mục tiêu cần học
Ta có thể lựa chọn sử dụng các quy tắc xác định giá trị theo đặc trưng của từng
thế cờ hoặc chọn dạng hàm đa thức dựa trên các đặc trưng của bàn cờ?
Giả sử chọn hàm đa thức với các đặc trưng là số lượng xe, pháo, mã, tốt,
tượng, sỹ  x1, x2, x3, x4, x5, x6). Khi đó V’(b) được xác định một cách đơn giản là
một hàm tuyến tính của các đối số này:
V’(b) = w0+w1xe+w2phao+w3ma+w4tot +w5tuong +w6sy
V’(b) = w0+w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6
trong đó: w0, w1, ..., w6 là các (hệ số) trọng số cần xác định
Các bước trong HỌC MÁY
3. Xác định (lựa chọn) cách biểu diễn cho hàm mục tiêu cần học
Công việc học bây giờ:
• Nhiệm vụ: T = Chơi cờ
• Độ đo chất lượng thực hiện: P = Tỷ lệ thắng đối thủ
• Kinh nghiệm chơi: E = chơi với chính nó
• Hàm mục tiêu: V(b): B → R
• Biễu diễn hàm mục tiêu: V’(b) = w0 +w1x1+...+w6x6 (Hàm học được)
Các bước trong HỌC MÁY
4. Lựa chọn một giải thuật học máy có thể học (xấp xỉ) được hàm
mục tiêu
• V(b): Hàm mục tiêu
• V’(b): Hàm học được
• Vtrain(b): Giá trị đầu ra lý tưởng trong tập mẫu dữ liệu huấn luyện.
• Vtrain(b) = V’(Successor(b)): Ước lượng giá trị đầu ra lý tưởng của tập mẫu
(Giá trị thực thu được sau mỗi lần học)
Các bước trong HỌC MÁY
4. Lựa chọn một giải thuật học máy có thể học (xấp xỉ) được hàm
mục tiêu
Để xác định V’(b) ta cần tập mẫu dữ liệu huấn luyện: <b, Vtrain(b)>, chẳng hạn khi
x1= 0, x5 = 0 thì quân trắng thắng nên Vtrain(b) = 100 và ta có mẫu huấn luyện:
<(x1= 0, x2= 2, x3= 1, x4= 4, x5= 0, x6= 0), 100>
Các trọng số w ban đầu được khởi tạo một cách thích hợp và được hiệu chỉnh
dần ứng với các mẫu dữ liệu huấn luyện tiếp theo.
Các bước trong HỌC MÁY
4. Lựa chọn một giải thuật học máy có thể học (xấp xỉ) được hàm
mục tiêu
• Ước lượng giá trị đầu ra lý tưởng của quá trình huấn luyện
Nếu b là thế cờ kết thúc thì Vtrain(b) được xác định còn khi b là thế cờ trung gian
thì Vtrain(b) xác định theo quy tắc:
Vtrain(b) = V’ (successor(b))
Điều ta cần là qua quá trình học, giá trị xấp xỉ của Vtrain(b) hội tụ tới giá trị đúng.
Các bước trong HỌC MÁY
4. Lựa chọn một giải thuật học máy có thể học (xấp xỉ) được hàm
mục tiêu
• Hiệu chỉnh trọng số
Cách tiếp cận thường dùng để hiệu chỉnh trọng số là phương pháp bình
phương tối thiểu LMS nhờ cực tiểu sai số:
2
𝐸= ෍ 𝑉𝑡𝑟𝑎𝑖𝑛 𝑏 − 𝑉′ 𝑏
𝑏,𝑉𝑡𝑟𝑎𝑖𝑛 𝑏 ∈𝑄

Với Q: tập dữ liệu huấn luyện


E: giá trị sai số trong suốt quá trình huấn luyện
Các bước trong HỌC MÁY
4. Lựa chọn một giải thuật học máy có thể học (xấp xỉ) được hàm
mục tiêu
Luật cập nhật trọng số LMS như sau: Chọn mẫu dữ liệu huấn luyện ngẫu nhiên,
với mỗi mẫu <b, Vtrain(b)>, ta thực hiện lặp các bước sau:
• Dùng trọng số hiện tại tính V’(b)
• Tính lỗi (sai số) ứng với mẫu đang xét:
Error(b) = Vtrain(b) – V’(b)
• Đối với mỗi đặc trưng fi trên bàn cờ, sẽ tính được trọng số cập nhật mới:
wi = wi +.Error(b).fi
trong đó:  = const  (0,1) là tốc độ học
Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers
Hàm mục tiêu: V(b) = w0 + w1rp(b) + w2bp(b) với rp(b); bp(b): số lượng quân đỏ,
quân đen trên bàn cờ; cho  = 0,1
Trọng số khởi tạo: w0 = -10; w1 = 75; w2 = -60
Biểu diễn của hàm mục tiêu (Hàm học được):
V’(b) = V(b0) = -10 + 75.2 + (-60).2 = 20
Lần đi thứ 1: (đi quân đỏ) Lần đi thứ 2: Lần đi thứ 3:

V’(b) = V(b1) = 20 V’(b) = V(b2) = 20 V’(b) = V(b3) = 20


Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers

Mẫu đang xét là b0 và thực


hiện bước đi lần 1 với quân đỏ:

• Tính toán lỗi Error(b0) = Vtrain(b) – V(b0) = V(b1) – V(b0) = 0


• Với mỗi đặc trưng trên bàn cờ, cập nhật trọng số: wi = wi +.Error(b0).fi
w0 = w0 + .Error(b0).f0 = w0 + 0,1.0.1 = -10
w1 = w1 + .Error(b0).f1 = w1 + 0,1.0.2 = 75
w2 = w2 + .Error(b0).f2 = w2 + 0,1.0.2 = -60
Tương tự với các mẫu huấn luyện tiếp theo là b1, b2, b3
Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers
Trường hợp lựa chọn các bước đi khác (làn 1 đi quân đỏ, lần 2 đi quân đen, lần 3
đi quân đỏ):
Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers
Xét lần đi thứ 4 ở trường hợp này:

V’(b) = V(b4a) = -10 + 75.2 + (-60).2 = 20 V’(b) = V(b4b) = -10 + 75.1 + (-60).2 = -55
Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers
Xét lần đi thứ 4 ở trường hợp này:

• Tính toán lỗi Error(b3) = Vtrain(b) – V(b3) = V(b4b) – V(b3) = -55 – 20 = -75
• Với mỗi đặc trưng trên bàn cờ, cập nhật trọng số: wi = wi +.Error(b3).fi
w0 = w0 + .Error(b3).f0 = w0 + 0,1.(-75).1 = -10 + (-7,5) = -17,5
w1 = w1 + .Error(b3).f1 = w1 + 0,1.(-75).2 = 75 + (-15) = 60
w2 = w2 + .Error(b3).f2 = w2 + 0,1.(-75).2 = -60 + (-15) = -75
Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers
Lần đi thứ 5: Trọng số cập nhật mới: w0 = -17,5; w1 = 60; w2 = -75

• Tính toán lỗi Error(b4) = Vtrain(b) – V(b4) = V(b5) – V(b4) = 0


• Cập nhật trọng số: wi = wi +.Error(b4).fi
w0 = w0 + .Error(b4).f0 = w0 + 0,1.0.1 = -17,5
w1 = w1 + .Error(b4).f1 = w1 + 0,1.0.1 = 60
w2 = w2 + .Error(b4).f2 = w2 + 0,1.0.2 = -75
Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers
Lần đi thứ 6: Trọng số cập nhật: w0 = -17,5; w1 = 60; w2 = -75

• Tính toán lỗi Error(b5) = Vtrain(b) – V(b5) = V(b6) – V(b5) = -167,5 – (-107,5) = -60
• Cập nhật trọng số: wi = wi +.Error(b4).fi
w0 = w0 + .Error(b5).f0 = w0 + 0,1.(-60).1 = -23,5
w1 = w1 + .Error(b5).f1 = w1 + 0,1.(-60).1 = 54
w2 = w2 + .Error(b5).f2 = w2 + 0,1.(-60).2 = -87
Các bước trong HỌC MÁY
VÍ DỤ: Xét bàn cờ caro 4x4 checkers
Trạng thái kết của bàn cờ: quân đen thắng với Vf(b6) = -100
V(b6) = -197,5
Trọng số cập nhật: w0 = -23,5; w1 = 54; w2 = -87
• Tính toán lỗi Error(b6) = Vtrain(b) – V(b6) = Vf(b6) – V(b6) = -100 – (-197,5) = 97,5
• Cập nhật trọng số: wi = wi +.Error(b4).fi
w0 = w0 + .Error(b5).f0 = w0 + 0,1.97,5.1 = -13,75
w1 = w1 + .Error(b5).f1 = w1 + 0,1.97,5.0 = 54
w2 = w2 + .Error(b5).f2 = w2 + 0,1.97,5.2 = -67,5
Các bước trong HỌC MÁY
6. Thiết kế các bước
trong hệ học máy chơi cờ
• Modun 1: Lấy input là thế cờ
được tạo ra và dùng hàm đích
để xác định nước đi tiếp qua
đánh giá V’ (4)
• Modun 2: thông qua kinh
nghiệm theo dõi toàn bộ các (3)
ván chơi để ước lượng Vtrain (1)
cho toàn bộ các mẫu DL
• Modun 3: Dùng các mẫu DL
huấn luyện, đưa ra ước lượng (2)
tham số của hàm đích V’
• Modun 4: Tạo ra thế cờ mới
bắt đầu cuộc chơi theo yêu
cầu nào đó.
Các bước trong HỌC MÁY

Tóm tắt quá trình thiết kế học chơi cờ


Các bước trong HỌC MÁY
Phát biểu bài toán: [Tom Mitchell, 1997]
Học = Cải thiện khả năng thực hiện nhiệm vụ T của hệ thống dựa trên kinh nghiệm
E với độ đo chất lượng thực hiện nhiệm vụ P.
Ví dụ 2: Xây dựng mô hình Dự báo thời tiết.
• T: Mô hình dự báo thời tiết cho những ngày sắp tới dựa trên thông tin khí
tượng học từ những ngày trước đó
• P: Tỷ lệ % hiện tượng thời tiết được dự báo đúng.
• E: Một tập các thông tin liên quan khí tượng học ( những biểu hiện thời tiết
quan sát được như: nhiệt độ, độ ẩm, áp suất, lượng mưa,...) đã được xác định
trước đó.
Các bước trong HỌC MÁY
1. Xác định kiểu dữ liệu dùng cho huấn luyện:
❑ Dữliệu E (các thông tin về Nhiệt độ, Độ ẩm, Lượng mưa,… của những ngày
trước đó (đã được thu thập và tiền xử lý như thế nào?)
❑ Dữ liệu đó sẽ được huấn luyện (học) theo kiểu nào?

❑ E cóđại diện hay tương thích với các dữ liệu sau này được dùng trong dự báo
của hệ thống hay không hay sẽ là đích của quá trình học?
Các bước trong HỌC MÁY
2. Xác định hàm mục tiêu:
Hàm mục tiêu có thể là độ lệch về lượng mưa hay độ lệch về thông tin thời
tiết mà ta muốn dự đoán (nhiệt độ, độ ẩm...).
3. Xác định mô hình
Lựa chọn một mô hình để biểu diễn hàm mục tiêu cần học. Giả sử chọn
một mô hình tuyến tính, chúng ta cần tìm các trọng số, nhân mỗi biến số với
trọng số của nó, và cộng tổng tất cả để ra được kết quả cuối cùng là dự đoán
thời tiết:
Thời tiết = (w1*nhiệt độ + w2*độ ẩm + w3*lượng mưa)
Các biến số: nhiệt độ, độ ẩm, lượng mưa
Các trọng số: w1, w2,w3
Các bước trong HỌC MÁY
4. Thuật toán tối ưu
Lựa chọn một giải thuật học máy có thể xấp xỉ được hàm mục tiêu
Để xác định V’(b) ta cần tập mẫu dữ liệu huấn luyện <b, Vtrain(b)> với:
b = <biểu hiện thời tiết quan sát được: nhiệt độ, độ ẩm, lượng mưa>
Vtrain(b) = <dự đoán thời tiết tương ứng: nắng, mưa, bão, lũ...>
Hàm mục tiêu có thể được tính qua dải các giá trị sau:
• w1 = 0.5; w2 = -1.2; w3 = -0.75
• w1 = 1.05; w2 = 1.2; w3 = 1.08
• w1 = 1.04; w2 = -1.19; w3 = 1.3
w1, w2 là các trọng số thay đổi sau mỗi lần học. Với mỗi tập các trọng số, ta có thể
tính lại được hàm mục tiêu; sau đó chọn mô hình với khả năng dự đoán cao nhất với
một hàm mục tiêu tối ưu.
Các bước trong HỌC MÁY
Phát biểu bài toán: [Tom Mitchell, 1997]
Học = Cải thiện khả năng thực hiện nhiệm vụ T của hệ thống dựa trên kinh nghiệm
E với độ đo chất lượng thực hiện nhiệm vụ P.
Ví dụ 3: Xây dựng mô hình Dự báo thời tiết.
• T: Mô hình dự báo thời tiết cho những ngày sắp tới dựa trên thông tin khí
tượng học từ những ngày trước đó
• P: Tỷ lệ % dự báo đúng.
• E: Một tập các thông tin liên quan khí tượng học ( những biểu hiện thời tiết
quan sát được như: nhiệt độ, độ ẩm, áp suất, lượng mưa,...) đã được xác định
trước đó.
Các bước trong HỌC MÁY
1. Xác định kiểu dữ liệu dùng cho huấn luyện:
❑ Dữliệu E (các thông tin về Nhiệt độ, Độ ẩm, Lượng mưa,… của những ngày
trước đó (đã được thu thập và tiền xử lý như thế nào?)
❑ Dữ liệu đó sẽ được huấn luyện (học) theo kiểu nào?

❑ E cóđại diện hay tương thích với các dữ liệu sau này được dùng trong dự báo
của hệ thống hay không hay sẽ là đích của quá trình học?
Các bước trong HỌC MÁY
2. Xác định hàm mục tiêu:
Hàm mục tiêu có thể là độ lệch về lượng mưa hay độ lệch về thông tin thời tiết
mà ta muốn dự đoán (nhiệt độ, độ ẩm...).
3. Xác định mô hình
Lựa chọn một mô hình để biểu diễn hàm mục tiêu cần học. Giả sử chọn một
mô hình tuyến tính, chúng ta cần tìm các trọng số, nhân mỗi biến số với trọng
số của nó và cộng tổng tất cả để ra được kết quả cuối cùng là dự đoán thời tiết:
Thời tiết = (w1*nhiệt độ + w2*độ ẩm + w3*lượng mưa)
Các biến số: nhiệt độ, độ ẩm, lượng mưa
Các trọng số: w1, w2,w3
Các bước trong HỌC MÁY
4. Thuật toán tối ưu
Lựa chọn một giải thuật học máy có thể xấp xỉ được hàm mục tiêu
Để xác định V’(b) ta cần tập mẫu dữ liệu huấn luyện: <b, Vtrain(b)> với:
b = <biểu hiện thời tiết quan sát được: nhiệt độ, độ ẩm, lượng mưa>
Vtrain(b) = <dự đoán thời tiết tương ứng: nắng, mưa, bão, lũ...>
Hàm mục tiêu có thể được tính qua dải các giá trị sau:
• w1 = 0.5; w2 = -1.2; w3 = -0.75
• w1 = 1.05; w2 = 1.2; w3 = 1.08
• w1 = 1.04; w2 = -1.19; w3 = 1.3
w1, w2 là các trọng số thay đổi sau mỗi lần học. Với mỗi tập các trọng số, ta có thể tính lại
được hàm mục tiêu; sau đó chọn mô hình với khả năng dự đoán cao nhất với một hàm mục
tiêu tối ưu.
Các vấn đề cơ bản của HỌC MÁY
Khi xây dựng một mô hình cũng như đưa ra một thuật toán học máy,
người ta quan tâm đến: Liệu thuật toán đó có hoạt động tốt hay không
(thời điểm); Số lượng mẫu học ảnh hưởng thế nào tới chất lượng học;
Độ phức tạp của biểu diễn khả năng xử lý nhiều dữ liệu sẽ ảnh hưởng
đến hệ thống ra sao; Khả năng tự sửa đổi cấu trúc biểu diễn có đáp ứng
tốt không (Mức độ học được, khả năng sử dụng các tri thức có sẵn hay
hệ thống sẽ học theo phương pháp nào)…
Các vấn đề cơ bản của HỌC MÁY
❑ Giải thuật học máy (Learning Algorithm)
❑ Ví dụ học máy (Training Examples)
❑ Quá trình học máy như thế nào (Learning Process)
❑ Khả năng và giới hạn học (Learing Capability)
❑ Vấn đề Over - fitting (Hiện tượng quá khớp)
Các vấn đề cơ bản của HỌC MÁY
❑ Giải thuật học máy (Learning Algorithm)
• Những giải thuật học máy nào có thể học (xấp xỉ) một hàm mục tiêu cần
học?
• Với những điều kiện nào, một giải thuật học máy đã chọn sẽ hội tụ (tiệm
cận) hàm mục tiêu cần học?
• Đối với một lĩnh vực bài toán cụ thể và đối với một cách biểu diễn các ví
dụ (đối tượng) cụ thể, giải thuật học máy nào thực hiện tốt nhất?
Các vấn đề cơ bản của HỌC MÁY
❑ Ví dụ học máy (Training Examples)
• Bao nhiêu ví dụ học là đủ?
• Kích thước của tập học (tập huấn luyện) ảnh hưởng thế nào đối với độ
chính xác của hàm mục tiêu học được?
• Các ví dụ lỗi (nhiễu) và/hoặc các ví dụ thiếu giá trị thuộc tính (Missing -
Value) ảnh hưởng thế nào tới độ chính xác?
Các vấn đề cơ bản của HỌC MÁY
❑ Quá trình học máy (Learning Process)
• Chiến lược nào là tối ưu cho việc lựa chọn thứ tự thực hiện (khai thác)
các ví dụ học?
• Việc lựa chọn các chiến lược này làm thay đổi mức độ phức tạp của bài
toán học máy ra sao?
• Các tri thức cụ thể của bài toán (ngoài các ví dụ học) có đóng góp như
thế nào đối với quá trình học?
Các vấn đề cơ bản của HỌC MÁY
❑ Khả năng và giới hạn học (Learning Capability)
• Hàm mục tiêu nào mà hệ thống cần học?
✓ Thông qua việc lựa chọn hàm mục tiêu, hệ thống biết được khả
năng biểu diễn của hàm (VD: Hàm tuyến tính/hàm phi tuyến) cũng
như độ phức tạp của giải thuật trong quá trình học.
• Các giới hạn (trên lý thuyết) đối với khả năng học của các giải
thuật học máy.
Các vấn đề cơ bản của HỌC MÁY
❑ Khả năng và giới hạn học (Learning Capability)
• Khả năng khái quát hóa (Generalize) của hệ thống từ các ví dụ học
✓ Để tránh vấn đề “Over - fitting” (đạt độ chính xác cao trên tập dữ
liệu học nhưng độ chính xác lại thấp trên tập toàn bộ dữ liệu).
• Khả năng hệ thống tự động thay đổi (thích nghi) cấu trúc bên
trong nó?
✓ Nhằm cải thiện hiệu năng của hệ thống đối với việc biểu diễn và
học hàm mục tiêu.
Các vấn đề cơ bản của HỌC MÁY
❑ Vấn đề Over – fitting (Hiện tượng quá khớp)
• Một hàm mục tiêu học một dữ liệu là h sẽ bị quá khớp với một tập
dữ liệu học nếu tồn tại một hàm mục tiêu khác học dữ liệu là h’
sao cho:
✓h đạt độ chính xác cao (Khớp/Phù hợp) hơn h’ đối với tập dữ liệu
học nhưng lại đạt độ chính xác thấp hơn h’ nếu so với toàn bộ tập
dữ liệu ban đầu(bao gồm cả những dữ liệu được sử dụng sau quá
trình huấn luyện)
• Hiện tượng Over – fitting xảy ra do các nguyên nhân sau:
✓ Lỗi (nhiễu) trong tập dữ liệu huấn luyện (do quá trình thu thập/xây
dựng tập dữ liệu huấn luyện)
✓ Số lượng các ví dụ học quá nhỏ, không đại diện cho toàn bộ tập
(phân bố) các ví dụ của bài toán học
Các vấn đề cơ bản của HỌC MÁY
❑ Vấn đề Over – fitting (Hiện tượng quá khớp)
• Gọi D là tập toàn bộ các ví dụ (dữ liệu) học; D_train là tập các ví dụ (dữ
liệu) học
• Gọi ED(h) là mức lỗi mà giả thiết h sinh ra đối với tập D; ED_train(h) là mức
lỗi mà giả thiết h sinh ra đối với tập D_train
• Giả thiết h quá khớp tập học D_train nếu tồn tại một giả thiết khác là h’,
sao cho:
✓ ED_train(h) < ED_train(h’)
✓ ED(h) > ED(h’)
Các vấn đề cơ bản của HỌC MÁY
❑ Vấn đề Over – fitting (Hiện tượng quá khớp)
• Trong số các giả thiết (hàm mục tiêu) học được (h, h’), giả thiết (hàm
mục tiêu) nào khái quát hóa tốt nhất từ các ví dụ học?
 Học máy có thể đạt được độ chính xác cao trong dự đoán đối với
các ví dụ sau này chứ không phải chỉ riêng đối với các ví dụ học.
• Để có thể:
• Khái quát hóa tốt hơn
• Dễ giải thích/diễn giải hơn
• Độ phức tạp tính toán ít hơn
 cần ưu tiên chọn hàm mục tiêu đơn giản nhất phù hợp (không nhất
thiết phải hoàn hảo) đối với các ví dụ học.
Các vấn đề cơ bản của HỌC MÁY

Hàm mục tiêu f(x) nào đạt độ chính xác cao nhất đối với các ví dụ sau này?
Các vấn đề cơ bản của HỌC MÁY
Ví dụ vấn đề Over – fitting với phương pháp học máy bằng cây
quyết định:

Tiếp tục quá trình học cây quyết định sẽ làm giảm độ chính xác đối với tập
thử nghiệm mặc dù tăng độ chính xác đối với tập ví dụ học.
Cách biểu diễn dữ liệu
Cách biểu diễn dữ liệu
❑ Đốivới dữ liệu phi cấu trúc
thì phải biểu diễn chúng
bằng dữ liệu có cấu trúc
❑ Biểudiễn dữ liệu bằng mô
hình thông tin không gian –
Vector.

Ví dụ - Biểu diễn ảnh bằng


vector
Cách biểu diễn dữ liệu
Ví dụ - Biểu diễn văn bản bằng vector
• Cho văn bản D = “Khi tất cả đều nghĩ hai đội mạnh nhất Đông
Nam Á sắp sửa vào hai hiệp phụ thì bất ngờ cái đầu vàng của Lê
Công Vinh đội lên tích tắc mang về chiếc cúp AFF cho đội tuyển
Việt Nam...”
• Giả sử bộ từ điển bao gồm: “Thể_thao, Bóng_đá, Đội_tuyển,
Đông_Nam_Á, Cúp_AFF, Việt_Nam”
 văn bản D được biểu diễn bằng phương pháp tần suất (sự có
mặt của các thuật ngữ trong văn bản) là: D = (0,0,1,1,1,1)
Đánh giá hiệu năng hệ thống HỌC MÁY
❑Việc đánh giá hiệu năng hệ thống học máy thường được thực
hiện dựa trên thực nghiệm (Experimetally) hơn là dựa trên
phân tích (Analytically)
• Các đánh giá phân tích nhằm chứng minh một hệ thống là đúng đắn và
hoàn chỉnh.
• Không thể xây dựng một đặc tả (định nghĩa) hình thức của vấn đề mà
một hệ thống học máy giải quyết (Tính đúng đắn và hoàn chỉnh đối với
một hệ thống học máy là gì?)
Đánh giá hiệu năng hệ thống HỌC MÁY
❑ Việc đánh giá hiệu năng hệ thống học máy sẽ được:
• Thực hiện một cách tự động, thông qua việc sử dụng một tập các ví dụ
mẫu (tập dữ liệu thử nghiệm)
• Và không cần có sự can thiệp của người dùng
❑ Các phương pháp dùng để đánh giá (Evaluation Methods)
• Làm sao có được một đánh giá đáng tin cậy về hiệu năng của hệ thống
học máy?
❑ Các tiêu chí đưa ra để đánh giá (Evaluation Metrics)
• Làm sao để đo một cách chính xác hiệu năng của hệ thống?
Các phương pháp đánh giá
Được dùng để huấn luyện
hệ thống

Tùy chọn và được dùng để


tối ưu các tham số của hệ
thống

Được dùng để đánh giá hệ


thống đã (sau khi) được
huấn luyện
Các phương pháp đánh giá
❑ Làm thế nào để thu được một đánh giá đáng tin cậy về hiệu
năng của hệ thống?
• Tập huấn luyện càng lớn thì hiệu năng của hệ thống học càng tốt
• Tập dữ liệu thử nghiệm càng lớn thì việc đánh giá hiệu năng hệ thống
càng chính xác
Tuy nhiên, rất ít khi có được các tập dữ liệu (rất) lớn
❑ Hiệu năng của hệ thống học máy không chỉ phụ thuộc vào thuật
toán được sử dụng mà còn phụ thuộc vào:
• Phân bố lớp (Class Distribution)
• Chi phí của việc phân lớp sai (Cost of Misclassification)
• Kích thước của tập dữ liệu huấn luyện (Size of The Training Set)
• Kích thước của tập thử nghiệm (Size of The Test Set)
Các tiêu chí đánh giá
❑ Tính chính xác (Accuracy)
Mức độ dự đoán (phân lớp) chính xác của hệ thống (đã được huấn luyện)
đối với các ví dụ thử nghiệm.
❑ Tính hiệu quả (Efficiency)
Chi phí về thời gian và tài nguyên (bộ nhớ) cần thiết cho việc huấn luyện và
kiểm thử hệ thống
❑ Khả năng xử lý nhiễu (Robustness)
Khả năng xử lý c.ủa hệ thống đối với các ví dụ nhiễu (lỗi) hoặc thiếu giá trị.
Các tiêu chí đánh giá
❑ Khả năng mở rộng (Scalability)
Hiệu năng của hệ thống (VD: Tốc độ học/phân loại) thay đổi như thế nào
đối với kích thước của tập dữ liệu.
❑ Khả năng diễn giải (Interpretability)
Mức độ dễ hiểu (đối với người sử dụng) của các kết quả nhận được và hoạt
động của hệ thống
❑ Mức độ phức tạp (Complexity)
Mức độ phức tạp của mô hình hệ thống (Hàm mục tiêu) học được.
Tiêu chí CHÍNH XÁC trong đánh giá
Tiêu chí CHÍNH XÁC trong đánh giá
❑ Ma trận nhầm lẫn (Confusion Matrix): chỉ sử dụng được đối với bài toán
phân loại, không thể áp dụng đối với bài toán hồi quy (dự đoán).

TPi: Số lượng các ví dụ học thuộc lớp ci


được phân loại chính xác vào lớp ci
FPi: Số lượng các ví dụ học không thuộc
lớp ci bị phân loại nhầm vào lớp ci
TNi: Số lượng các ví dụ học không
thuộc lớp ci được phân loại chính xác
FNi: Số lượng các ví dụ học thuộc lớp ci
bị phân loại nhầm (vào các lớp khác ci)
MẠNG NƠRON NHÂN TẠO
(Artificial Neural Networks - ANNs)
❑ Giới thiệu chung về ANNs
❑ Các bài toán phù hợp với ANNs
❑ Mô hình của một nơron nhân tạo
❑ Các loại hàm truyền
❑ Các phương pháp học
❑ Mạng Perceptron và luật học Perceptron
❑ ANNs đa lớp và giải thuật lan truyền ngược
Não bộ con người và khả năng xử lý thông tin
❑ Bộ não người được ước tính có:
• Khoảng 1011 tế bào thần kinh. Mỗi tế bào này là một nơron thần kinh, sẽ
có hàng ngàn các kết nối nhằm thu nhận và lan truyền thông tin
• Thời gian trao đổi thông tin giữa các nơron là 10-3 giây (chậm hơn rất
nhiều so với máy tính là 10-10 giây)
Tuy nhiên con người có thể đưa ra những quyết định phức tạp và nhanh
chóng đáng ngạc nhiên mà máy tính không thể làm được.
❑ Khả năng xử lý thông tin của hệ thần kinh là song song, đồng thời
với tốc độ cao và dựa trên những nơron tiêu biểu.
Giới thiệu chung về ANNs
❑ Mạng nơron: là một tập hợp các tế bào thần kinh (nơron) nối với nhau
❑ Mạng nơron sinh học: là một mạng lưới các nơron có kết nối hoặc có
liên quan về mặt chức năng trực thuộc hệ thần kinh
❑ Mạng nơron nhân tạo: được thiết kế để mô hình một số tính chất của
mạng nơron sinh học (Bắt chước cách học của các hệ thần kinh sinh vật)
❑ ANNs khác với hệ thống nơron thần kinh:
− Nhiều vấn đề phức tạp trong hệ thống nơron thần kinh sinh học không
thể mô tả được bởi ANNs
− Nhiều đặc trưng của ANNs không phù hợp với những hệ thống nơron
sinh vật
Mạng nơron sinh học
• Thí nghiệm: Dùng một chú bồ câu để xét khả
năng phân biệt những bức tranh cuả 2 họa sỹ là
Van Gogh/Chagall và sẽ thưởng cho nó nếu mổ
vào thùng khi đưa ảnh của họa sĩ Van Gogh
• Kết quả: Bồ câu có thể phân biệt đúng >95% khi
đưa lại cho nó xem những tranh “đã được nhìn
thấy” của Van Gogh/Chagall và đúng >85%
tranh “chưa từng nhìn thấy” của 2 họa sĩ
• Kết luận: Bồ câu có khả năng ghi nhớ và phát
hiện những “đặc điểm” trong tranh của 2 họa sĩ;
Biết tổng hợp những tranh đã nhìn thấy để dự
đoán cho những tranh chưa tùng nhìn thấy bao
giờ.
 Bồ câu đã HỌC được
Vậy MÁY TÍNH thì có thể học như vậy không?
Bồ câu HỌC được nhờ cơ chế nào?
Cơ chế làm việc của
các tế bào thần kinh
sinh học  :
Máy tính HỌC được như vậy không?
• Các thiết bị tính toán theo cách thông thường không có khả năng “học” như sinh vật.
• Muốn có khả năng “học” được như sinh vật, cần mô hình tính toán khác.
• Mạng nơron nhân tạo ra đời chính nhờ cảm hứng từ mạng nơron sinh học.
Mô hình hóa mạng nơron sinh học thành mạng nơron nhân tạo
ANNS – Lịch sử phát triển
❑ 1943 – Mô hình nơron nhân tạo đầu tiên của McCulloch and Pitts
• Mô hình toán và mô hình mạng nơron nhân tạo đơn giản
• Dùng toán logic để mô hình hóa
• Các trọng số được xác định là không đổi để giải một lớp bài toán nhất định
❑ 1949 - Luật học Hebb
• Luật về học bằng cách thay đổi các khớp nối nơron
• Giải thuyết về học với khớp nối nơron
• Giả thuyết có điều kiện xảy ra là do các thuộc tính của các nơron độc lập
• Đề xuất một kỹ thuật học cho các nơron sinh học
ANNS – Lịch sử phát triển
❑ 1956 – Rosenblatt, Widrow – Hoff: PERCEPTRON
• Rosenblatt phát minh ra mạng Perceptron và luật học giao tiếp
• Ứng dụng thưc tế đầu tiên về ANN: Xây dựng và minh họa khả năng của
mạng Perceptron trong nhận dạng mẫu
• Bernard Widrow và Ted Hoff đưa ra thuật toán học mới để huấn luyện các
mạng nơron tuyến tính thích nghi, có cấu trúc và khả năng tương tự như
Perceptron
ANNS – Lịch sử phát triển
❑ 1969 – Mínsky và Papert viết cuốn sách
“PERCEPTRON”
• Chỉ ra những hạn chế của các mạng nơron đương đại,
đặc biệt là các mạng ghép lớp tuyến tính
• Phát hiện ra mạng Perceptron cơ bản chỉ giải quyết
được một số lớp bài toán hạn chế
• Rosenblatt, Widrow Hoff nhận thức ra các hạn chế, đề
xuất các mạng mới để khắc phục nhưng chưa thành
công trong việc sửa đổi thuật học
• Nhiều người đã nghĩ đến sự chấm dứt của ANN và thực
tế máy tính chưa đủ mạnh để thử nghiệm nên lĩnh vực
này bị bỏ rơi trong 10 năm
❑ 1970s – Amari, Grossberg, Kohonen...
• Vẫn kiên trì nghiên cứu mạng nơron và cho ra đời
mạng nơron bộ nhớ, mạng tự chức...
ANNS – Lịch sử phát triển
❑ 1980s – Đã có những bước thăng tiến nhảy vọt, các khái niệm mới quan trọng
được hình thành, vượt qua các hạn chế mà Minsky và Papert chỉ ra  ANNs bắt
đầu hồi sinh và phát triển
• Hopfield, Elman: Mạng hồi quy
• 1986: Rumelhart, Hinton, Williams: Mạng Perceptron đa lớp với thuật toán lan
truyền ngược

Mạng Hopfield Thuật toán lan truyền ngược


Mạng nơron nhân tạo - ANNs là gì?
❑ Là mô hình mạng (có cấu trúc) chứa nhiều đơn vị xử lý, giả lập quá trình
tính toán và học tập của não bộ con người
❑ Mỗi đơn vị xử lý là một nơron nhân tạo
❑ Mỗi nơron nhân tạo giả lập một nơron sinh học gồm có ngưỡng kích hoạt
(bias) và một hàm kích hoạt (hàm truyền) đặc trưng cho tính chất của
nơron đó
❑ Các nơron nhân tạo liên kết với nhau bằng các kết nối. Mỗi kết nối có
một độ lợi gọi là trọng số đặc trưng cho khả năng NHỚ của ANNs
❑ Quá trình huấn luyện ANNs  Quá trình HỌC,thực chất là quá trình điều
chỉnh ngưỡng kích hoạt và các trọng số liên kết dựa trên dữ liệu học (ví
dụ học) cung cấp cho mạng
Hình - Cơ chế học của ANNs
Hoạt động của ANNs
❑ Xét bài toán: Cho 2 vector x và y. Xác định y = f(x) = ?

❑ Khi thay đổi dữ liệu:

❑ Sử dụng ANNs để xác định y = f(x):


- Thu thập dữ liệu của 2 vector x, y (dữ liệu càng nhiều thì độ chính xác lớn)
- Đưa ra mô hình ANN và huấn luyện mạng dựa trên dữ liệu thu thập. Khi đó, ANN
hoạt động như một hàm mục tiêu: y = fANN(x)
- Với mỗi giá trị xn ta có: yn = fANN(xn)  f(xn)
Đặc điểm của ANNs
❑ Xử lý //, phân tán: Cùng một lúc xử lý được nhiều thông tin cho nhiều công
việc khác nhau, tùy theo yêu cầu cụ thể
❑ Có khả năng học và gợi nhớ để thích nghi được với yêu cầu từng bài toán
cụ thể
❑ Khả năng tổng quát hóa và phân loại cao
❑ Khả năng “miễn nhiễu” và chịu lỗi cao: ANNs vẫn có thể hoạt động ngay
cả khi dữ liệu học bị sai lệch hoặc không đầy đủ
❑ Mô hình học của ANNs là một mô hình tốt để giải quyết các vấn đề như:
− Tính xấp xỉ các hàm có giá trị dạng số thực, số rời rạc, vector
− Các dạng dữ liệu cảm biến phức tạp
Đặc điểm của ANNs
Tuy nhiên, ANNs vẫn có các nhược điểm:
❑ Chỉ giải quyết được các dữ liệu số. Dữ liệu phi số muốn xử lý được cần
phải tích hợp thêm các hệ mờ, các bộ số hóa
❑ Hiệu năng mạng phụ thuộc vào bộ dữ liệu huấn luyện: Bộ dữ liệu này (Tập
các ví dụ học) càng nhiều càng chính xác
❑ Không có một phương pháp chung để xác định cấu trúc mạng.
❑ Các thuật toán huấn luyện mạng chưa đảm bảo cho quá trình học của
mạng không rơi vào các điểm cực trị địa phương (Tại vị trí các điểm này,
sai số của mạng vẫn quá lớn)
Các bài toán phù hợp với ANNs
❑ Phân loại (Classification): Quyết định một giá trị (gồm nhiều thược tính)
đưa vào thuộc loại hay nhóm nào
❑ Nhận dạng mẫu (Pattern Recognition): Nhận dạng cấu trúc trong các dữ
liệu có thể bị nhiễu; trích chọn thuộc tính, phân loại và phân tích tín hiệu
radar; nhận dạng giọng nói, chữ viết, dấu vân tay; nhận dạng khuôn mặt…
❑ Dự đoán (Prediction): Dự đoán bệnh từ các triệu chứng; nhận dạng tác
nhân từ các hiệu ứng…
❑ Tối ưu (Optimization) để tìm một ràng buộc tốt nhất
❑ Lọc nhiễu (Noise Filtering): Phân biệt các tín hiệu với nền, tìm ra thành
phần không quan trọng trong một tín hiệu
Các ứng dụng của ANNs
❑ Xử lý ảnh: So khớp, tiền xử lý, phân đoạn và phân tích ảnh; nén ảnh; xử lý và hiểu các
ảnh thay đổi theo thời gian…
❑ Xử lý tín hiệu: Phân tích tín hiệu và hình thái địa chấn, động đất…
❑ Y tế: Phân tích tín hiệu điện tim; chẩn đoán các loại bệnh; xử lý hình ảnh trong lĩnh vực
y tế…
❑ Lọc nhiễu (Noise Filtering): Phân biệt các tín hiệu với nền, tìm ra các thành phần không
quan trọng trong một tín hiệu…
❑ Các hệ thống quân sự: Phát hiện thủy lôi…
❑ Các hệ thống tài chính: Phân tích thị trường chứng khoán; đánh giá giá trị bất động
sản; kiểm tra truy cập, sử dụng thẻ tín dụng…
❑ Tự động hóa và điều khiển: Chế tạo cánh tay người máy; chế tạo Robot…
❑ Các hệ thống năng lượng: Đánh giá trạng thái, mức độ an toàn của hệ thống cung cấp
năng lượng; phát hiện và khắc phục khi có sự cố…
Minh họa ứng dụng của ANN

https://papers.nips.cc/paper/95-alvinn-an-autonomous-land-vehicle-in-a-neural-network.pdf
Minh họa ứng dụng của ANN
Minh họa ứng dụng của ANN
Đặc điểm của nơron nhân tạo
❑ Mỗi nơ-ron
❑ Có một đặc tính vào/ra
❑ Thực hiện một tính toán cục bộ (một hàm cục bộ)
❑ Giá trị đầu ra của một nơ-ron được xác định bởi
❑ Đặc tính vào/ra của nó
❑ Các liên kết của nó với các nơ-ron khác
❑ (Có thể) các đầu vào bổ sung
Mô hình của một nơron nhân tạo
Mô hình của một nơron nhân tạo
Là mô hình toán học (dùng toán logic) đầu tiên do McCulloch Pitts đề xuất vào năm
1943, gồm các đặc trưng sau:
❑ Tập các tín hiệu đầu vào của nơron xi (i=1…m). Mỗi tín hiệu đầu vào xi gắn với một trọng số wi
❑ Tập các trọng số liên kết wi (i=1…m)
− Mỗi liên kết giữa tín hiệu vào với nơron hay giữa các nơron với nhau đều được thể hiện bằng
một trọng số (nó cho biết cường độ tác động của tín hiệu vào (giữa nơron này tới nơron
khác) là mạnh hay yếu)
− wi được khởi tạo ngẫu nhiên ở thời điểm ban đầu của mạng và được cập nhật liên tục trong
suốt quá trình huấn luyện mạng
❑ Trọng số điều chỉnh (Ngưỡng (bias)) b. Ứng với x0 = 1 ta sẽ có b = w0
❑ Một mức kích hoạt Net(x,w) : hàm tổng hợp của các tín hiệu đầu vào với trọng số tương ứng
❑ Hàm chuyển đổi (Hàm kích hoạt) f(Net(x,w)): biến tín hiệu kích hoạt thành giá trị đầu ra của
nơron
❑ Giá trị đầu ra của nơron y = f(Net(x,w)): là sự trả lời của nơron ứng với tập dữ liệu đưa vào.
Mức kích hoạt và trọng số điều chỉnh
❑ Một cách tổng quát, tín hiệu kích hoạt được xác định bởi một hàm tuyến tính:

❑ Trọng số điều chỉnh b = w0 được đưa vào nhằm nâng cao khả năng phân tách tuyến
tính (của các hàm kích hoạt) các mẫu dữ liệu cung cấp cho mạng:
− Họ các hàm phân tách Net = wixi không thể phân tách được các dữ liệu (các ví dụ
học) thành 2 lớp
− Nhưng khi thêm trọng số điều chỉnh vào thì họ các hàm: Net = wixi + w0 thì có thể.
Các loại hàm truyền
❑ Hàm giới hạn cứng (Hardlimit) ❑ Hàm ngưỡng 1 (Hardlimit and binary
threshold)
f n =Hardlim n = ቊ1 nếu n≥0
0 nếu n<0 f n =Hardlim n, 𝑏 = ቊ1 nếu n≥𝑏
Hàm Hardlimit (Hàm ngưỡng) ánh xạ 0 nếu n<𝑏
giá trị đầu vào bất kỳ (-,+) vào tập b (): giá trị ngưỡng
{0,1} nên thích hợp với bài toán phân
loại.
Các loại hàm truyền
❑ Hàm giới hạn cứng đối xứng (Sign) ❑ Hàm ngưỡng 2 (Hardlimit and
bipolar threshold)
f n =sign n = ቊ 1 nếu n≥0
−1 nếu n<0 f n =sign n,b = ቊ 1 nếu n≥𝑏
Hàm Sign (hàm dấu) ánh xạ giá trị đầu −1 nếu n<𝑏
vào bất kỳ (-,+) vào tập {-1,1} nên b (): giá trị ngưỡng
cũng phù hợp cho các ANNs thực
hiện chức năng phân loại.
Các loại hàm truyền
❑ Hàm truyền tuyến tính (Purelinear)
f n =purelinear n =k.n
k:tham số độ dốc của hàm
Hàm Purelinear trả về giá trị thực bất kỳ
nên thường được sử dụng ở các nơron
trong lớp xuất.

f n =purelinear n, 𝑏 =k. n+b


Các loại hàm truyền
❑ Hàm sigmoid đơn cực (Logsig)
1
f n =logsig n =
1+e−k.n
k>0: tham số độ dốc của hàm
Hàm Logsig ánh xạ giá trị nhập bất kỳ trong
khoảng (-,+) thành các giá trị xuất thuộc
tập {0,1}.

1
f n =logsig n =
1+e−k.(n+b)
Các loại hàm truyền
❑ Hàm sigmoid hai cực (Tansig)

2 1−e−k.n
f n =Tansig n = −1=
1+e−k.n 1+e−k.n
(k: tham số độ dốc của hàm)
Hàm Tansig ánh xạ giá trị đầu vào bất kỳ từ (-,+)
thành các giá trị đầu ra trong khoảng {-1,1}.

2 1−e−k.(n+b)
f n =Tansig n = −1=
1+e−k.(n+b) 1+e−k.(n+b)
Các loại hàm truyền
❑ Theo lý thuyết về xấp xỉ hàm phi tuyến tính, bất kỳ một hàm nào đều có
thể được xấp xỉ với một độ chính xác tùy ý bởi một mạng nơron có 3 lớp
mà các nơron trong lớp xuất dùng hàm tuyến tính, các lớp ẩn còn lại dùng
các hàm truyền sigmoid .
Nơron nhân tạo – Các quy ước ký hiệu

• Đại lượng vô hướng (chữ thường, nghiêng): a,b,c, ...


• Véc-tơ (chữ thường, đứng, đậm): a,b,c, ...
• Ma trận (chữ hoa, đậm): A,B,C...
Nơron 1 đầu vào

Tính toán trên nơron:


Ví dụ về tính toán trên nơron 1 đầu vào
1. Cho: w = 4, p = 2, b = -2.5, f(x) = x2  a = ?
Ví dụ về tính toán trên nơron 1 đầu vào
2.Cho: p = 0.5; w = 0.2; b = 0.9. Tính giá trị đầu ra a ứng với:
a) f là hàm ngưỡng
b) f là hàm logsig (k= 1)
c) f là hàm tansig (k = 2)
Nơron nhiều đầu vào
❑ Khi tín hiệu vào của nơron là một vector có R phần tử, cấu trúc sẽ
như sau:
• 𝐩 = 𝐩𝟏 , 𝐩𝟐 , 𝐩𝟑 , … , 𝐩𝐑 𝐓 : Tập vector tín hiệu đầu vào
• 𝐰 = 𝐰𝟏𝟏 , 𝐰𝟏𝟐 , 𝐰𝟏𝟑 , … , 𝐰𝟏𝐑 𝐓 : R trọng số liên kết
• b : Ngưỡng điều chỉnh
• a : Giá trị đầu ra
Nơron nhiều đầu vào
❑ Tính toán trên nơron:
Dạng đại số: 𝐧 = 𝐰𝟏𝟏 𝐩𝟏 + 𝐰𝟏𝟐 𝐩𝟐 + ⋯ + 𝐰𝟏𝐑 𝐩𝐑 + 𝐛 = 𝐰 ∗ 𝐩 + 𝐛
Dạng vector: 𝐧 = 𝐰 𝐓 𝐩 + 𝐛
Đầu ra: 𝐚 = 𝐟 𝐧 = 𝐟 𝐰 𝐓 𝐩 + 𝐛
Nơron nhiều đầu vào
Ví dụ tính toán trên nơron nhiều đầu vào
1. Cho nơron tuyến tính 2 đầu vào, với các thông số sau:
𝐩 = 𝟎. 𝟓 𝟎. 𝟐𝟓 𝐓

𝐰= 𝟏 𝟐𝐓
𝑏 = 0.05; f: hàm dấu
Vẽ sơ đồ toán học mô tả nơron và xác định tín hiệu đầu ra a?
Ví dụ tính toán trên nơron nhiều đầu vào
2. Cho mô hình nơron như hình vẽ, với:
𝐩 = 𝟐 𝟏 𝟒 𝟎. 𝟓 𝟏𝟎 𝐓
𝐰 = 𝟎. 𝟑 𝟎. 𝟓 𝟎. 𝟐 𝟎. 𝟏 𝟎. 𝟖 𝐓

𝑏 = 0.2
f: logsig (k = 1.5)
f: purelin (k = 0.5)
Xác định a?
Kiến trúc mạng ANNs
❑ ANNs là một hệ thống gồm nhiều nơron đơn lẻ kết nối với nhau
để thực hiện một chức năng tính toán cụ thể.
❑ Tính năng của mạng phụ thuộc vào: Kiến trúc, các trọng số kết
nối và quá trình tính toán tại từng nơron đơn lẻ (Hàm truyền)
❑ Mạng nơ-ron có thể học từ dữ liệu mẫu và tổng quát hóa dựa
trên các mẫu đã học (mạng có khả năng nhớ)
Kiến trúc mạng ANNs
❑ Kiến trúc của một ANNs được xác định bởi:
• Số lượng các tín hiệu đầu vào, đầu ra
• Số lượng các lớp và số lượng các nơron trong mỗi lớp
• Số lượng các trọng số liên kết của mỗi nơron
• Cách thức các nơron (trong một lớp hoặc giữa các lớp) liên kết với nhau
• Những nơron nào sẽ nhận các tín hiệu điều chỉnh lỗi (sai số)
❑ Một ANNs phải có:
• Một lớp nơron đầu vào (input layer)
• Một lớp nơron đầu ra (output layer)
• Không, một hoặc nhiều lớp nơron ẩn (hidden layer)
Kiến trúc mạng ANNs
VD: ANN 3 lớp:
• Lớp vào: 3 tín hiệu đầu vào
• Lớp ẩn: 4 nơron
• Lớp ra: 2 giá trị đầu ra
Tổng cộng mạng có 9 nơron
Kiến trúc mạng ANNs
❑ Mỗi lớp (layer) chứa một nhóm các nơron
❑ Lớp ẩn (hidden layer) là lớp nằm giữa lớp đầu vào (input layer) và
lớp đầu ra (output layer)
❑ Mỗi nơron (nút) ở lớp ẩn (hidden node) không tương tác trực tiếp
với môi trường bên ngoài (của mạng nơron)
❑ Một mạng nơron được gọi là liên kết đầy đủ (fully connected) nếu
mọi đầu ra từ một lớp liên kết với mọi nơron (nút) của lớp kế tiếp.
Phân loại mạng ANNs
❑ Dựa theo kiểu kết nối các nơron:
• Mạng truyền thẳng (Feedforward NN):
Kết nối không tạo thành chu trình
• Mạng hồi quy (Recurrent NN): Kết nối tạo
thành chu trình
❑ Dựa theo số lượng nơron:
• Mạng đơn lớp
• Mạng đa lớp: gồm lớp vào, các lớp ẩn và
lớp ra. Lớp vào không tính số lớp.
Không có kết nối trên cùng một lớp.
Không nhảy lớp. Không kết nối từ lớp
dưới lên lớp trên
Phân loại mạng ANNs
❑ Một ANN được gọi là mạng lan truyền thẳng (feed forward network) nếu
không có bất kỳ đầu ra của nơron nào là đầu vào của một nơron khác trong
cùng một lớp (hoặc thuộc một lớp phía trước)
❑ Một ANN được gọi là mạng phản hồi (feedback network) khi các đầu ra của
một nơron liên kết ngược lại làm các đầu vào của một nơron trong cùng lớp
(hoặc thuộc một lớp phía trước)
• Nếu liên kết phản hồi từ đầu ra với các đầu vào đối với các nơron thuộc cùng
một lớp thì đó là phản hồi bên (lateral feedback)
❑ Các mạng nơron phản hồi có các vòng lặp kín thì được gọi là các mạng hồi quy
(recurrent networks)
Phân loại mạng ANNs

Mạng phản hồi về chính nó


Mạng truyền thẳng đơn lớp Mạng truyền thẳng đa lớp

Mạng hồi quy đơn lớp Mạng hồi quy đa lớp


Mạng nơron đơn lớp
❑ Mô hình: R nơron lớp vào, S nơron lớp ra
❑ Các thông số:
• 𝐩 = 𝐩𝟏 , 𝐩𝟐 , 𝐩𝟑 , … , 𝐩𝐑 𝐓 : Vector đầu vào
• 𝐚 = 𝐚𝟏 , 𝐚𝟐 , 𝐚𝟑 , … , 𝐚𝐒 𝐓 : Vector đầu ra
• 𝐛 = 𝐛𝟏 , 𝐛𝟐 , 𝐛𝟑 , … , 𝐛𝐒 𝐓 : Vector ngưỡng kích hoạt
• 𝐧 = 𝐧𝟏 , 𝐧𝟐 , 𝐧𝟑 , … , 𝐧𝐒 𝐓 : Vector tín hiệu kích hoạt
w𝟏𝟏 w𝟏𝟐 … w𝟏𝐑
w𝟐𝟏 w𝟐𝟐 … w𝟐𝐑
. . .
• W= . . . : Ma trận trọng số kết nối
. . .
w𝐒𝟏 w𝐒𝟐 w𝐒𝐑

Lưu ý: Kí hiệu wij là trọng số kết nối từ nơ-ron thứ j đến nơ-ron (đầu vào) thứ i
Mạng nơron đơn lớp
w𝟏𝟏 w𝟏𝟐 … w𝟏𝐑
w𝟐𝟏 w𝟐𝟐 … w𝟐𝐑
. . .
W= . . . : Ma trận trọng số kết nối
. . .
w𝐒𝟏 w𝐒𝟐 w𝐒𝐑

Hàng: cho biết số lượng đầu vào tác động tới


các nơron trong mạng

Cột: cho biết số lượng nơron có trong mạng


Mạng nơron đơn lớp
❑ Tính toán trên một nơron:
Xét nơron thứ i i = 1, S :
Tín hiệu kích hoạt:
Dạng đại số:
𝐑

𝐧𝐢 = 𝐰 ∗ 𝐩 + bi = ෍ 𝐰𝐢𝐣 𝐩𝐣 + 𝐛𝐢
𝐣=𝟏
Dạng vector: 𝐧𝐢 = 𝐰 𝐓 𝐩 + 𝐛𝐢
Tín hiệu đầu ra: 𝐚𝐢 = 𝐟 𝐧𝐢
❑ Biểu diễn đầu ra của toàn mạng (dạng vector):
𝐧 = 𝐖𝐩 + 𝐛 → 𝐚 = 𝐟 𝐧
Ví dụ tính toán trên mạng nơron đơn lớp
1. Cho mạng một lớp gồm 2 nơ-ron tuyến tính,
biết: p = [2 1.5 3]T; b = [0.5 0.6]T;

Ma trận trọng số:


𝐰𝟏𝟏 𝐰𝟏𝟐 𝐰𝟏𝟑 𝟎. 𝟏 𝟎. 𝟐 𝟎. 𝟑
𝐖= 𝐰 𝐰𝟐𝟐 𝐰𝟐𝟑 = 𝟎. 𝟒 𝟎. 𝟓
𝟐𝟏 𝟎. 𝟔

Tính đầu ra của mạng theo 2 cách (Dạng đại số và


dạng vector)?
Ví dụ tính toán trên mạng nơron đơn lớp
3

a1 = f n1 = f ෍ w1j pj + b1
j=1

= purelin p1 w11 + p2 w12 + p3 w13 + b1 = 1,9


3

a2 = f n2 = f ෍ w2j pj + b2
j=1
= purelin p1 w21 + p2 w22 + p3 w23 + b2 = 3,35
Ví dụ tính toán trên mạng nơron đơn lớp
2. Cho mạng một lớp như hình vẽ , với:

𝟓 𝟎. 𝟏 −𝟑 𝟏. 𝟓
p = [1 2 0.2 0.1]T; b = [0.1 0.3 0.5]T; 𝐖 = 𝟎. 𝟏 −𝟏 𝟎. 𝟓 𝟎. 𝟏
𝟎. 𝟔 −𝟐. 𝟓 𝟎. 𝟐 𝟐
a) Xác định số lượng đầu vào và số nơron trên từng lớp trong mạng?
b) Tính tín hiệu đầu ra toàn mạng biết các nơron đều dùng hàm dấu
Mạng nơron đa lớp
❑ Mạng nơ-ron có thể được tổ chức thành nhiều lớp, với ngõ ra của lớp trước là
ngõ vào của lớp sau.
❑ Quá trình tính toán trên mạng được thực hiện lần lượt trên từng lớp.
❑ Tính toán trên mỗi lớp hoàn toàn giống như tính toán trên mạng một lớp.
Ví dụ tính toán trên mạng nơron đa lớp
Cho mạng ANN ba lớp. Tính đầu ra của mạng theo 2 cách, biết:
• Lớp vào: p = [2, 1.5, 3]T;

• Lớp ẩn 1: b1 = [0.5, 0.6]T; W1 = 0.1 0.2 0.3 ; f1: Hàm purelin


0.5 0.4 0.6
• Lớp ẩn 2: b2 = [0.5, 0.6]T; W2 = 0.5 0.2 ; f2: Hàm logsig
0.1 0.6
• Lớp ra: b3 = 0.2; W3 = [0.4, 0.2]T; f3: Hàm tansig
Ví dụ tính toán trên mạng nơron đa lớp
Vẽ biểu diễn dạng khác của mạng trên?
Các kiểu học trong mạng ANNs
❑ Học tham số (Parameter learning): là kiểu học làm thay đổi
thích nghi các trọng số giữa các liên kết trong mạng. Các luật
học trong nhóm này có nhiệm vụ tính toán cập nhật giá trị của
trọng số liên kết các nơron trong mạng.
❑ Học cấu trúc (Structure learning): làm thay đổi thích nghi cấu
trúc mạng. Các luật học trong nhóm này có nhiệm vụ đưa ra
cấu trúc hợp lý của mạng bằng cách thay đổi số lượng nơron và
các liên kết giữa chúng
 ANNs phần lớn được huấn luyện theo quy tắc HỌC THAM SỐ
Điều chỉnh tham số
❑ Ý tưởng: mạng sẽ được điều chỉnh trọng số (dựa trên tập huấn luyện (training set -
Dtrain)) theo một cách nào đó sao cho nó có thể học được các mẫu (pattern) hiện hữu
trong tập huấn luyện. Sau khi hoàn tất điều chỉnh, mạng được trang bị khả năng tổng
quát hóa từ các mẫu đã học để dự báo các giá trị trong tương lai.
❑ Cơ chế điều chỉnh trọng số: sử dụng hàm sai số hay hàm đánh giá: Dựa trên sự sai
khác (Error) giữa ngõ ra mong muốn (Target) và ngõ ra thực tế của ANN (Output), giải
thuật huấn luyện sẽ điều chỉnh các trọng số kết nối của ANN, sao cho: min{Error}
Học có giám sát
❑ Cho trước p cặp mẫu tín hiệu vào – ra: {(x(1), d(1)),…, (x(k), d(k)), …, x(p), d(p))}

Với x = [x(1), x(2), …, x(p)]T - véc tơ tín hiệu mẫu đầu vào

d = [d(1), d(2),…., d(p)]T - véctơ tín hiệu đầu ra mong muốn

Đầu vào x ANN y (Đầu ra thực sự)

Bộ phát sinh tín


d (Đầu ra mong muốn)
e (Tín hiệu sai số) hiệu sai số
Học có giám sát
❑ Khi đưa một mẫu tín hiệu x(k) vào đầu vào ANN, tính được một tín hiệu ra tương
ứng là y(k). Sai lệch giữa 2 vector tín hiệu ra mong muốn d và ra thực sự y sẽ
tác động tới mạng nhằm điều chỉnh vector trọng số W của ANN sao cho vector
tín hiệu ra y của mạng bám theo được vector tín hiệu ra mong muốn d trong
bộ mẫu  để giảm thiểu sai lệch giữa chúng

 Kiểu học có giám sát này cần có tín hiệu đầu ra mong muốn d (là người thầy
hướng dẫn quá trình học) được lấy từ bên ngoài.
Học có tín hiệu củng cố
❑ Trong quá trình học giám sát, giả thiết rằng đáp ứng đầu ra của mạng đã đạt
được giá trị mong muốn. Nhưng ở một mẫu vào - ra nào đó bị cho rằng có kết
quả không đáng tin cậy, và cần phải kiểm tra lại mẫu đó. Trường hợp này chỉ
có một bít tín hiệu của mẫu cần kiểm tra đóng vai trò là tín hiệu củng cố được
đưa vào mạng  nhằm khẳng định kết quả quá trình học có giám sát đúng
hay sai.
Đầu vào x ANN y (Đầu ra thực sự)

Bộ phát sinh tín


hiệu củng cố Tín hiệu củng cố
Tín hiệu củng cố
Học không có giám sát
❑ Kiểu học này có đặc điểm là không có tín hiệu lấy từ bên ngoài. Mạng cần phải
tự mình tìm ra các mẫu, nét đặc trưng, sự tương thích, phân loại trong dữ
liệu đầu vào và mã hoá thành các giá trị ở đầu ra. Trong quá trình học không
giám sát nếu mạng không thay đổi thông số của nó thì được gọi là mạng tự tổ
chức (self – organizing).

Đầu vào x ANN y (Đầu ra thực sự)


Luật học trọng số tổng quát
❑ Tại bước học t, mức độ điều chỉnh trọng số w ( w) tỷ lệ thuận với tích của tín
hiệu học r(t) và đầu vào x(t):

Với:  dương là hệ số học (xác định tốc độ học của mạng)


r = g(w, x, d) là một hàm của trọng số, đầu vào và đầu ra mong muốn:
❑ Luật học trọng số tổng quát:

Vector trọng số tại bước học (t + 1):

w(t+1) = w(t) + w(t) = w(t) + . r(t). x(t) r


Luật học PERCEPTRON
❑ Lịch sử Perceptron:
Những nghiên cứu đầu
tiên (W.S. McCulloch &
W. Pitts (1943)) chỉ ra
rằng, các nơron nhân tạo
có thể thực hiện các
phép toán logic đơn
giản như OR, AND, XOR
Luật học PERCEPTRON
❑ Lịch sử Perceptron:
Câu hỏi về một hệ tính toán được xây dựng từ các phần tử đơn giản như trên có
thể mô phỏng được hoạt động của bộ não sinh học??? đã được trả lời khi tìm ra
“luật học” – ý tưởng xuất phát từ việc “học” của các nơron
sinh học. PERCEPTRON của Rosenblatt có thể̉tự học để phân các vecto đầu
vào thành các lớp khác nhau
Luật học PERCEPTRON
❑ Kiến trúc Perceptron:

Với: (i = 1  S)
Luật học PERCEPTRON
❑ Kiến trúc Perceptron:
Hàm truyền thường dùng trong mô hình Perceptron là Sign hoặc Hardlim
Xét với nơron thứ i → Tín hiệu đầu ra tương ứng:

 (Tích giữa hàng thứ i của W với đầu vào p)  bi  Đầu ra là 1, ngược lại là 0
 Mỗi nơron chia không gian các đầu vào thành hai miền bởi một siêu phẳng
Luật học PERCEPTRON
❑ Mô hình Perceptron 1 nơron:
Mỗi Perceptron nhận tín hiệu kích hoạt (là một
hàm tuyến tính) n = Wp + b cùng với hàm
truyền là hàm hardlim/sign để chuyển đổi tín
hiệu kích hoạt thành đầu ra (0;1)/(-1;1) 1

 Một Perceptron có khả năng phân lớp các vectơ tín hiệu vào bằng cách chia không
gian tín hiệu vào thành 2 miền bởi một siêu phẳng. Mỗi miền cho biết tín hiệu kích
hoạt là  0 hay  0, từ đó xác định giá trị mà hàm truyền nhận được. Không gian
các vectơ tín hiệu vào được phân cách bởi đường thẳng L có dạng: Wp + b = 0.
 Độ dốc của L phụ thuộc ma trận trọng số W còn độ dịch chuyển phụ thuộc vào hệ số
điều chỉnh b thông qua việc thay đổi giá trị của 2 đại lượng này.
Luật học PERCEPTRON
VD: Một Perceptron có 2 đầu vào với trọng số tương ứng W11 = -1; W12 = 1; có hệ số
điều chỉnh b = 1 sẽ được phân tách thành 2 miền không gian tín hiệu vào như sau:

Bằng cách xác định 2 điểm biểu diễn tín hiệu


đầu vào:
Wp + b = 0  p = -b/W
 p11 = -b/W11 = -1/(-1) = 1;
p12 = -b/W12 = -1/1 = -1
Qua 2 điểm vừa tìm được  xác định L

Các vectơ tín hiệu vào thuộc miền phía trên, bên trái so với đường phân cách L sẽ
cho tín hiệu kích hoạt n  0, do đó tín hiệu ra a = f(n) = 1. Các vectơ tín hiệu vào phía
dưới, bên phải so với L sẽ cho n  0 và ta thu được f(n) = 0.
Luật học PERCEPTRON
L được gọi là BIÊN QUYẾT ĐỊNH:

Perceptron 1 nơron 2 đầu vào


2
Với p = [2 0]T  a = hardlim(wTp +b) = hardlim 1 1 + −1 =1
0
Luật học PERCEPTRON
BIÊN QUYẾT ĐỊNH:
+ Biên quyết định ⊥ 1w, có phương trình:
+ Tất cả các điểm q trên biên:
+ Vetor trọng số luôn hướng về miền mà đầu ra nơron là 1 
Luật học PERCEPTRON
VÍ DỤ BIÊN QUYẾT ĐỊNH:
Thiết kế mạng Perceptron thực hiện hàm logic AND áp dụng tìm biên quyết định
bằng đồ thị, biết bộ mẫu DL gồm các tín hiệu vào – ra như sau:

Một biên quyết định của bài toán AND


Luật học PERCEPTRON
• Chọn biên quyết định là một đường thẳng phân chia các vòng tròn đặc và trống

• Chọn vetor trọng số ⊥ biên quyết định, ví dụ:

• Chọn bias b: Lấy 1 điểm p trên biên thỏa mãn: , giả sử ta tìm được:
1,5
n = 1wTp + b = 2 2 + b = 0 → 3 + b = 0 → b = −3
0
• Test mạng bằng cách đưa p1 vào và tính đầu ra ứng với:

0
a1 = hardlim(1wTp + b) = hardlim 2 2 − 3 = hardlim(−3)=1 ≠ t1
0
 Chưa khẳng định Biên quyết định tìm được là sai vì mạng chưa qua quá trình huấn luyện
Luật học PERCEPTRON
CÁCH TÌM BIÊN QUYẾT ĐỊNH (đối với mạng Perceptron 1 nơron 2 đầu vào):
Cho trước p cặp mẫu DL vào – ra trong bộ mẫu: {(x(1), d(1)),…, (x(k), d(k)), …, x(p), d(p))}
với {𝒙 𝟏 = 𝒙𝟏𝟏 𝟏 T
𝒙𝟐 ;𝒙 𝟐 = 𝒙𝟏𝟐 𝟐 T
𝒙𝟐 ;…,𝒙 𝒌 = 𝒙𝟏𝒌 𝒌 T
𝒙𝟐 ;...; 𝒙 𝒑 = 𝒙𝟏𝒑 𝒑 T
𝒙𝟐 }
• Biểu diễn các vector mẫu đầu vào x thành 1 điểm trong KG 2 chiều
• Lập phương trình đường thẳng phân tách tuyến tính các mẫu đầu vào thành 2
miền có đầu ra tương ứng:
𝒅 𝟏 =𝒅 𝟐 =…= 𝒅 𝒌−𝟏 = 𝟎/(−𝟏) và 𝒅 𝒌 =𝒅 𝒌+𝟏 =…= 𝒅 𝒑 = 𝟏/(𝟏)
 Biên quyết định có dạng: g(x) = x1 + x2 +   w11x1 + w12x2 + b = 0 (*)
 Từ (*) có 2 trường hợp:
Luật học PERCEPTRON
CÁCH TÌM BIÊN QUYẾT ĐỊNH (đối với mạng Perceptron 1 nơron 2 đầu vào):
TH1: Perceptron nhận tác động của 2 đầu vào và 1 ngưỡng bias
(*)  1w = [w11 w12]T = [ ]T và b = 
 ia = hardlim/sign(iwTx + b)
TH2: Perceptron nhận tác động của 2 đầu vào và 1 ngưỡng (bias) nhưng ngưỡng
khi đó được xem như một trọng số w13 ứng với đầu vào thứ 3 nhận giá trị bằng 1
(*)  1w = [w11 w12 w13]T = [  ]T và không còn b nữa
 ia = hardlim/sign(iwTx) với x = [x1 x2 1]T
Luật học PERCEPTRON
CÁCH TÌM BIÊN QUYẾT ĐỊNH (đối với mạng Perceptron 1 nơron 2 đầu vào):
(k) (k) (k)
-1
Giả sử có 5 mẫu DL {x , d } với k = 15 và d =
1
Biểu diễn mỗi mẫu DL đầu vào x(k) là một x2 y

điểm trong KG 2 chiều. Lập phương trình x(1)


x2(1)

đường thẳng (Biên quyết định )qua 2 điểm x(4)


A

A, B có tọa độ tùy chọn sao cho đường B


x(2)

thẳng đó phân tách 5 mẫu trên thành 2 x1(1)


x1  x

miền có d(k) tương ứng trong bộ mẫu sau x(5) x(3)

đó HL mạng theo luật Perceptron.


Luật học PERCEPTRON
CÁCH TÌM BIÊN QUYẾT ĐỊNH (đối với mạng Perceptron 1 nơron 2 đầu vào):
Lập phương trình BIÊN QUYẾT ĐỊNH dạng chính tắc đi qua 2 điểm A, B bất kỳ trong

x−xA y−yA
hệ tọa độ Đề các: x −x = y −y  g x = αx + βy + γ  w11x1 + w12x2 + b = 0
B A B A

Tùy thuộc bài toán yêu cầu HL theo cách thức nào thì ta sẽ chọn trường hợp đã xét
tương ứng ở trên.
Luật học PERCEPTRON
❑ Mô hình Perceptron nhiều nơron
• Mỗi nơron sẽ có một biên quyết định và và có thể phân tách
các mẫu đầu vào thành 2 lớp có đầu ra mong muốn là (1 và o)/(-1 và 1)
 Perceptron nhiều đầu vào có thể phân thành nhiều lớp thể hiện bởi
vector đầu ra.
• Giá trị của đầu ra là (0, 1) hoặc (-1, 1)  phân loại tối đa 2S lớp, S = số lượng
nơron của Perceptron .
Luật học PERCEPTRON
❑ Nội dung luật học Perceptron
• Cho trước p cặp mẫu tín hiệu vào – ra: (x(k), d(k)) với k = 1  p trong tập DL huấn
luyện (training set), luật học Perceptron sẽ đưa ra cách thức để hướng dẫn cho
mạng học nhằm mục đích làm giảm sai số giữa tín hiệu ra thực sự của mạng y(k)
với tín hiệu ra mong muốn d(k) có trong bộ mẫu.
• Định lý hội tụ của Perceptron: “Luật học Perceptron sẽ hội tụ tới một tập các
trọng số để đạt được liên kết mong muốn sau một số bước hữu hạn nếu tồn
tại lời giải”.
Luật học PERCEPTRON
❑ Xây dựng luật học Perceptron
Mạng có 1 nơron Perceptron được HL theo phương pháp Học có giám sát với Q
cặp mẫu tín hiệu vào – ra: . Xét Q = 3:

Phân bố các vector đầu vào trên KG Đề-các


Luật học PERCEPTRON
❑ Xây dựng luật học:
Xét mạng không có bias chỉ có
2 tham biến trọng số w11, w12
 biên quyết định đi qua gốc
tọa độ  Mạng phải giải được
bài toán: Tồn tại biên quyết
định phân tách tuyến tính các
mẫu p2, p3 với p1 Một số biên quyết định thỏa mãn
 Cần xây dựng luật học để tìm ra được vector trọng số
trỏ về một trong các hướng này.
Luật học PERCEPTRON
❑ Xây dựng luật học Perceptron
• Khởi tạo trọng số ngẫu nhiên:
• Lần HL đầu tiên với mẫu DL thứ nhất:
1
a1 = hardlim(1wTp1) = hardlim 1.0 −0.8
2
= hardlim −0.6 = 0 ≠ t1 = 1
 Tín hiệu ra thực của mạng a = 0 trong khi tín hiệu ra mong muốn t = 1, sai số
E = t - a = 1. Lúc này, vector tín hiệu vào được cộng thêm gia số trọng là W,
điều này làm vector trọng số mới gần hơn với vector đầu vào và làm tăng khả
năng vector tín hiệu vào cho tín hiệu ra là 1 trong tương lai.
Luật học PERCEPTRON
 Cộng p1 vào 1w làm cho 1w dịch chuyển hướng gần về p1 hơn. Theo luật trọng
tổng quát: 1wnew = 1wold + p1 = 1wold + (t1 – a1)p1

• Đưa vào mạng mẫu DL thứ 2:


−1
a2 = hardlim(1wTp2) = hardlim 2.0 1.2
2
= hardlim 0.4 = 1 ≠ t2 = 0
 Tín hiệu ra thực là a = 1 còn tín hiệu ra mong muốn t = 0, sai số E = t - a = -1.
Vector trọng số biến đổi bằng cách bị trừ đi một lượng bằng vector tín hiệu
vào, điều này làm trọng số mới ra xa hơn vector đầu vào, làm tăng khả năng vector
tín hiệu vào cho tín hiệu ra là 0 trong tương lai.
Luật học PERCEPTRON
 Trừ 1w cho p2 làm cho 1w dịch chuyển hướng ra xa p2. Theo luật trọng tổng quát:
wnew = wold – p = wold + (t – a )p
1 1 2 1 2 2 2

• Tiếp tục đưa vào mạng mẫu DL thứ 3:


0
• a3 = hardlim(1wTp3) = hardlim 3.0 −0.8
−1
= hardlim 0.8 = 1 ≠ t3 = 0
new = wold – p = 1wold – (t3 – a3)p3
1w 1 3
Luật học PERCEPTRON
Nhận xét: Nhìn trên hình thì ta thấy rằng Perceptron đã phân lớp đúng, giá trị 1w =
[3.0 0.2]T là giá trị trọng số phải tìm vì với giá trị đó mạng ở trạng thái hội tụ.

Thật vậy:
• Đưa vào mạng mẫu DL thứ nhất ở lần HL thứ 2:
1
a4 = a1 = hardlim(1wTp1) = hardlim 3.0 0.2
2
= hardlim 3.4 = 1 = t1 = 1
a5 = a2 = t2 ; a6 = a3 = t3 ; ...
 Tín hiệu ra thực của mạng giống với tín hiệu ra mong muốn: a = t. Khi đó, sai
số E = t - a = 0 và vector trọng số không cần cập nhật.
Luật học PERCEPTRON
Theo luật trọng tổng quát: new = wold
1w 1

• Tiếp tục đưa các mẫu DL thứ 2, 3 vào mạng:


−1
a5 = a2 = hardlim(1wTp2) = hardlim 3.0 0.2
2
= hardlim −2.6 = 0 = t2 = 0
0
a6 = a3 = hardlim(1wTp3) = hardlim 3.0 0.2
−1
= hardlim −0.2 = 0 = t3 = 0
 Luật học Perceptron:

 Khi nơron trong mạng chịu tác động của ngưỡng cần tính thêm:
Luật học PERCEPTRON
❑ Luật học Perceptron đối với mạng nhiều nơron:
Cập nhật hàng thứ i của ma trận trọng số/bias:

Cập nhật trọng số/bias của toàn mạng (Dạng ma trận):


Luật học PERCEPTRON
❑ Tóm tắt luật học Perceptron với mạng chỉ có 1 nơron được huấn luyện
bởi p cặp mẫu {x(k);d(k)} (k= 1p) và có chịu tác động của bias (ngưỡng)):
✓ Bước 1: Tính lỗi E(k) = d(k) – a(k)
✓ Bước 2: Tính gia số trọng/gia số bias cập nhật:
w(k) = .E(k).x(k) = .(d(k) – a(k)).x(k) ; b(k) = E(k)
✓ Bước 3: Cập nhật trọng số và bias mới cho mạng:
w(k+1) = w(k) + w(k) ; b(k+1) = b(k) + b(k)
Trong đó: x(k) = [x1(k), x2(k), ..., xj(k), ..., xR(k)]T (j=1 R – số lượng đầu vào);
  0 là hệ số học (xác định tốc độ học của mạng)
Luật học PERCEPTRON
❑ Nếu hàm truyền (hàm kích hoạt) là sign thì:
Biểu thức tính gia số trọng/gia số bias cập nhật:

w(k) = .E(k).x(k) = .(d(k) – a(k)).x(k) = 2.d(k).x(k)

b(k) = E(k) = 2d(k)

Cập nhật trọng số và bias mới cho mạng:

w(k+1) = w(k) + w(k)

b(k+1) = b(k) + b(k)


Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:
Cho mô hình mạng Perceptron thực hiện bài toán phân loại TÁO/CAM như sau:
Các sensor dùng để nhận biết thuộc tính của 2 loại quả:
• Hình dáng: 1 – tròn (gần tròn) Neural
Network
-1 – elip (gần elip)
• Kết cấu: 1 – vỏ nhẵn
-1 – vỏ thô ráp
• Trọng lượng: 1 – nặng hơn 500 gram
-1 – nhẹ hơn 500 gram
Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:

Mạng thực hiện bài toán phân loại TÁO/CAM dựa trên 2 cặp mẫu DL
như sau: {x(k) = [hình dáng kết cấu trọng lượng]T; d(k)} với k = 1; 2
1
 Loại 1: x(1) = −1 ; d(1) = 0 : CAM
−1
1
 Loại 2: x(2) = 1 ; d(2) = 1 : TÁO
−1
Ma trận trọng số/bias khởi tạo ngẫu nhiên: w(0) = w(1) = [0.5 -1 -0.5]T
b(0) = b(1) = 0.5
Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:
• Lần HL thứ nhất
a(1) = hardlim(w(1)Tx(1) + b(1))

1
= hardlim 0.5 −1 −0.5 −1 + 0.5 = hardlim 2.5 = 1 ≠ d(1) = 0
−1
Sai số: E(1) = d(1) - a(1) = -1  Gia số trọng số: w(1) = .E(1). x(1) = [-1 1 1]T
Gia số bias: b(1) = E(1) = -1
Cập nhật trọng số: w(2) = w(1) + w(1) = [0.5 -1 -0.5]T + [-1 1 1]T = [-0.5 0 0.5]T
Cập nhật bias: b(2) = b(1) + b(1) = 0.5 + (-1) = -0.5
Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:
• Lần HL thứ nhất
a(2) = hardlim(w(2)Tx(2) + b(2))

1
= hardlim −0.5 0 0.5 1 + (−0.5) = hardlim −1.5 = 0 ≠ d(2) = 1
−1
Sai số: E(2) = d(2) - a(2) = 1  Gia số trọng số: w(2) = .E(2). x(2) = [1 1 -1]T
Gia số bias: b(2) = E(2) = 1
Cập nhật trọng số: w(3) = w(2) + w(2) = [-0.5 0 0.5]T + [1 1 -1]T = [0.5 1 -0.5]T
Cập nhật bias: b(3) = b(2) + b(2) = -0.5 + 1 = 0.5
Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:
• Lần HL thứ hai:
a(3) = hardlim(w(3)Tx(1) + b(3))

1
= hardlim 0.5 1 −0.5 −1 + 0.5 = hardlim 0.5 = 1 ≠ d(1) = 0
−1
Sai số: E(3) = d(1) - a(3) = -1  Gia số trọng số: w(3) = .E(3). x(1) = [-1 1 1]T
Gia số bias: b(3) = E(3) = -1
Cập nhật trọng số: w(4) = w(3) + w(3) = [0.5 1 -0.5]T + [-1 1 1]T = [-0.5 2 0.5]T
Cập nhật bias: b(4) = b(3) + b(3) = 0.5 + (-1) = -0.5
Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:
• Lần HL thứ hai:
a(4) = hardlim(w(4)Tx(2) + b(4))

1
= hardlim −0.5 2 0.5 1 + (−0.5) = hardlim 0.5 = 1 = d(2) = 1
−1
Sai số: E(4) = d(2) - a(4) = 0  Gia số trọng số: w(4) = .E(4). x(2) = 0
Gia số bias: b(4) = E(4) = 0
Cập nhật trọng số: w(5) = w(4) + w(4) = [-0.5 2 0.5]T
Cập nhật bias: b(5) = b(4) + b(4) = -0.5
Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:
• Lần HL thứ ba:
a(5) = hardlim(w(5)Tx(1) + b(5))

1
= hardlim −0.5 2 0.5 −1 + (−0.5) = hardlim −3.5 = 0 = d(1) = 0
−1
Sai số: E(5) = d(1) - a(5) = 0  Gia số trọng số/bias: w(5) = .E(5). x(1) = 0
Gia số bias: b(5) = E(5) = 0
Cập nhật trọng số: w(6) = w(5) + w(5) = [-0.5 2 0.5]T
Cập nhật bias: b(6) = b(5) + b(5) = -0.5
Luật học PERCEPTRON
❑ VD1 áp dụng luật học Perceptron 1 nơron:
• Lần HL thứ ba:
a(6) = hardlim(w(6)Tx(2) + b(6))
1
= hardlim −0.5 2 0.5 1 + (−0.5) = hardlim 0.5 = 0 = d(2) = 0
−1
Sai số: E(6) = d(2) - a(6) = 0  Gia số trọng số/bias: w(6) = 0; b(6) = 0
Cập nhật trọng số: w(7) = w(6) + w(6) = [-0.5 2 0.5]T...
Cập nhật bias: b(7) = b(6) + b(6) = -0.5...
 Nhận xét: Từ lần HL thứ 3 trở đi, mạng đã cho kết quả là đầu ra thực a bám được
đầu ra mong muốn trong bộ mẫu học d ( a(7) = a(9) = ... = d(1) ; a(6) = a(8) = ... = d(2))
 Quá trình HL mạng thành công: Mạng phân loại được CAM/TÁO
Luật học PERCEPTRON
❑ VD2: Mạng Perceptron 1 nơron được HL bởi bộ mẫu dữ liệu vào – ra sau:
{p(1) = [-2 1]T, d(1) = -1}; {p(2) = [-0.5 3]T, d(2) = -1}
{p(3) = [-1 -2.5]T, d(3) = +1}; {p(4) = [1 2]T, d(4) = +1}
Huấn luyện mạng trên bằng luật học Perceptron để nó có thể phân loại các mẫu dữ
liệu trên thành hai lớp ứng với tín hiệu đầu ra mong muốn d = +1 và d = -1. Cho hệ số
học  = 1.
❑ VD3: Cho mạng ANN gồm 1 PE. Mạng được huấn luyện để học từ các cặp mẫu dữ
liệu sau: {x(1) = -1, d(1) = 0}; {x(2) = 0.5, d(2) = 1}; {x(3) = 1, d(3) = 1}; {x(4) = -1, d(4) = 0}. Sử
dụng luật học Perceptron để huấn luyện mạng sao cho nó có thể phân loại các cặp
mẫu dữ liệu trên thành hai lớp tương ứng với d = 1 và d = 0. Biết giá trị trọng số khởi
tạo W(0) = W(1) = [0.5 -2.5]T; hệ số học  = 1. Mạng có thể hội tụ được không? Nếu có
thì sau bao nhiêu lần học?
Luật học PERCEPTRON
❑ VD áp dụng luật học Perceptron 1 nơron:
 SV có câu hỏi gì không?
❑ Giới hạn của PERCEPTRON:
Luật học Perceptron được chứng minh là hội tụ nếu:
• Các dữ liệu HL là có thể phân tách tuyến tính
• Sử dụng một tốc độ học  đủ nhỏ
Và nó sẽ không hội tụ nếu bộ mẫu HL không thể phân tách tuyến tính
VD: Một Perceptron không thể phân lớp chính xác đối với tập DL cổng logic XOR
Luật học PERCEPTRON
❑ Giới hạn của PERCEPTRON:
Bảng chân trị của cổng XOR:

Đồ thị biểu diễn các DL đầu vào của cổng XOR


Nhận xét: Mạng Perceptron 1 lớp có thể tạo ra các biên quyết định tuyến tính
phân tách DL đầu vào của cổng AND/OR nhưng không thể thực hiện được điều
này trên cổng XOR
Luật học PERCEPTRON
❑ Giới hạn của PERCEPTRON:
Minsky và Papert (1969) đề xuất lời giải cho bài toán XOR bằng cách kết hợp các
nơron trong 1 lớp liên kết với các nơron ở lớp thứ 2

 Lời giải tuyến tính cho cổng XOR


Phương pháp hạ độ dốc sai số – Quy tắc Delta
❑ Quy tắc Delta dùng để HL Perceptron mà không cần ngưỡng (bias)
❑ Tập Training set không nhất thiết phải phân tách tuyến tính. Quy tắc này sẽ cho
ra một xấp xỉ tốt nhất đối với các mẫu DL trong tập HL
❑ Ý tưởng chính của quy tắc là sử dụng việc HẠ ĐỘ DỐC SAI SỐ - Gradient
descent để tìm trong KG giả thiết (các vector trọng số) một vector trọng số phù
hợp nhất với mẫu DL huấn luyện.
❑ Đây là cơ sở của LUẬT HỌC LAN TRUYỀN NGƯỢC – Back Propagation
Phương pháp hạ độ dốc sai số – Quy tắc Delta
❑ Hàm đánh giá sai số (Error function)
Xét ANN gồm S nơron đầu ra. Đối với một mẫu DL học (x,d) thì giá trị sai số gây
ra bởi vector trọng số w hiện tại:
S
1 2
Ex w = ෍ di − Out i
2
i=1

Sai số gây ra bởi vector trọng số hiện tại w đối với toàn bộ tập mẫu DL:

1
Ex w = ෍ Ex w
D
x∈D
Phương pháp hạ độ dốc sai số – Quy tắc Delta
❑ Hạ độ dốc sai số - Gradient descent
E (Gradient) là một vector: Có hướng chỉ đi lên (độ dốc), tỷ lệ thuận với độ dốc và
cho biết hướng khiến cho giá trị sai số E tăng nhanh nhất:

𝜕E 𝜕E 𝜕E
∇E w = , ,…,
𝜕w1 𝜕w2 𝜕wS
 Hướng làm cho sai số giảm nhanh nhất là giá trị phủ định của Gradient của E:

∂E
∆w = −η.∇E w ⇒ ∆wi = −η , ∀i=1,…, S
∂wi
Yêu cầu: Các hàm truyền dùng trong mạng phải là hàm liên tục với trọng số và có
đạo hàm liên tục
Phương pháp hạ độ dốc sai số – Quy tắc Delta
❑ Minh họa Gradient descent ❑ Nhận xét:
Hạ dốc sai số là một mô hình quan trọng cho
việc học của ANN. Việc tìm kiếm thực hiện
trên toàn bộ KG giả thiết (rất lớn hoặc vô
hạn)  có thể phải cần hàng ngàn lần lặp đi
lặp lại quá trình học mạng mới hội tụ.
Trường hợp mặt phẳng sai số có nhiều cực
tiểu địa phương thì luật học Delta không
đảm bảo tìm được giá trị nhỏ nhất
Phương pháp hạ độ dốc sai số – Quy tắc Delta
❑ Minh họa Gradient descent
Mạng truyền thẳng nhiều lớp và luật học lan truyền
ngược – Thuật toán BP
❑ Cấu trúc mạng truyền thẳng nhiều lớp
• Tối thiểu 3 lớp gồm: một lớp vào, một lớp ra và
một (hoặc nhiều) lớp ẩn.
• Không có kết nối giữa các nơron trong cùng 1 lớp
• Đầu ra của lớp trước là đầu vào của lớp sau
• Có liên kết đầy đủ giữa nơron các lớp với nhau
• Không có kết nối trực tiếp giữa hai lớp không kề
nhau
Mạng truyền thẳng nhiều lớp và luật học lan truyền
ngược – Thuật toán BP
❑ Một Perceptron chỉ có thể biểu diễn được một hàm phân tách tuyến tính
❑ Một ANNs nhiều lớp (được học bởi giải thuật Lan truyền ngược) có thể biểu diễn một
hàm phân tách phi tuyến tính phức tạp
❑ Luật học Lan truyền ngược được sử dụng để HỌC các TRỌNG SỐ của ANNs nhiều lớp
với yêu cầu:
• ANNs có cấu trúc cố định  Số lượng nơron và các liên kết giữa chúng là cố định
• Đối với mỗi nơron thì hàm kích hoạt phải có tính đạo hàm liên tục
❑ Luật học Lan truyền ngược dùng phương pháp Hạ độ dốc sai số - Gradient descent
trong QUY TẮC CẬP NHẬT TRỌNG SỐ nhằm cực tiểu hóa sai số giữa các giá trị đầu ra
thực tế với giá trị đầu ra mong muốn đối với mỗi mẫu DL huấn luyện
Luật học lan truyền ngược
❑ Luật học Lan truyền ngược tìm kiếm một vector các trọng số nhằm cực tiểu hóa sai
số tổng thể của mạng đối với tập DL huấn luyện (Training set)
❑ Gồm 2 pha:
❖ Pha 1 – Lan truyền tiến tín hiệu: Các tín hiệu đầu vào được lan truyến tiến từ lớp
vào qua các lớp ẩn và đến lớp ra để tạo tín hiệu ra thực của mạng
❖ Pha 2 – Lan truyền ngược sai số:
✓ Dựa vào đầu ra mong muốn trong bộ mẫu học, mạng tính toán giá trị sai số
✓ Quá trình lan truyền ngược bắt đầu từ lớp ra: Các giá trị sai số được truyền
ngược từ lớp này về các lớp phía trước cho đến lớp đầu vào. Mỗi lần truyền ngược
sai số về là một lần điều chỉnh và cập nhật trọng số mới cho các nơron ở từng lớp
(Việc truyền ngược này được thực hiện thông qua tính toán từng giá trị Gradient cục
bộ cho mỗi nơron)
Mô hình luật học Lan truyền ngược

Pha 1:
• Kích hoạt (truyền tín hiệu qua) mạng để
tạo tín hiệu đầu ra
Pha 2:
• Tính toán sai số ở lớp ra, các lớp ẩn
• Lan truyền ngược sai số về các lớp trước
Xây dựng luật học Lan truyền ngược
Xét mạng 3 lớp:
▪ Lớp vào: m tín hiệu đầu vào xj (j = 1...m)
▪ Lớp ẩn: l nơron, đầu ra của PEq là zq (q = 1...l)
▪ Lớp ra: n nơron, đầu ra của PEi là yi (i = 1...n)
▪ wqj là trọng số liên kết giữa đầu vào xj với PEq
trong lớp ẩn
▪ wiq là trọng số liên kết giữa PEq lớp ẩn với PEi
của lớp ra
▪ Outq = zq là giá trị đầu ra của PEq trong lớp ẩn
▪ Outi = yi là giá trị đầu ra của PEi ở lớp ra,
cũng chính là đầu ra của mạng
Xây dựng luật học Lan truyền ngược
❑ Pha 1 – LAN TRUYỀN TIẾN:
▪ Với mỗi DL huấn luyện x: Vector đầu vào x được lan truyền từ lớp vào đến
lớp ra. Khi đó mạng sẽ sinh ra một vector giá trị đầu ra thực Outi (i = 1...n)
▪ Khi vector đầu vào x được cung cấp vào mạng, nơron thứ q trong lớp ẩn sẽ
nhận được giá trị đầu vào tổng thể (net input):

và sinh ra một giá trị đầu ra (cục bộ) Outq bằng:

zq =

trong đó f(.) là hàm kích hoạt (activation function) của nơron q.


Xây dựng luật học Lan truyền ngược
❑ Pha 1 – LAN TRUYỀN TIẾN:
▪ Giá trị tổng thể (net input) của nơron thứ i của lớp ra:

▪ Nơron thứ i ở lớp ra sẽ sinh ra một giá trị đầu ra (là giá trị đầu ra của mạng):

yi =

▪ Vector các giá trị đầu ra Outi (i = 1...n) chính là giá trị đầu ra thực tế của
mạng ứng với vector đầu vào x
Xây dựng luật học Lan truyền ngược
❑ Pha 2 – LAN TRUYỀN NGƯỢC:
▪ Với mỗi một DL huấn luyện x: Xác định được các tín hiệu sai số giữa giá trị
đầu ra mong muốn d và giá trị đầu ra thực tế Out. Các tín hiệu sai số này
(chính là các tín hiệu HỌC) được lan truyền ngược từ lớp ra về các lớp phía
trước nó, mỗi lần truyền ngược về là một lần điều chỉnh và cập nhật các
TRỌNG SỐ (weights)
▪ Sử dụng một hàm đánh giá sai số (để xác định các tín hiệu sai số và việc lan
truyền ngược của chúng):
Xây dựng luật học Lan truyền ngược
❑ Pha 2 – LAN TRUYỀN NGƯỢC:
▪ Theo phương pháp Gradient descent, các trọng số liên kết giữa nơron lớp ẩn
và lớp ra được cập nhật bởi:

▪ Sử dụng quy tắc chuỗi đạo hàm với E/wiq, ta có:

với i là tín hiệu sai số của nơron i ở lớp ra:

(1*)
Xây dựng luật học Lan truyền ngược
❑ Pha 2 – LAN TRUYỀN NGƯỢC:
▪ Các trọng số liên kết giữa nơron tầng vào và tầng ẩn cũng được cập nhật
theo phương pháp Gradient descent và quy tắc chuỗi đạo hàm:

▪ Từ biểu thức tính hàm sai số E(w), nhận thấy mỗi sai số thành phần (di – ai)
(với i = 1...n) là một hàm của Outq:
Xây dựng luật học Lan truyền ngược
❑ Pha 2 – LAN TRUYỀN NGƯỢC:
nên áp dụng quy tắc chuỗi đạo hàm, ta có:

với q là tín hiệu sai số của nơron q trong lớp ẩn:

(2*)

Nhận thấy: tín hiệu sai số nơron lớp ra i khác với tín hiệu sai số của nơron ở lớp ẩn q
do vậy thủ tục cập nhật trọng số trong luật lan truyền ngược còn đgl Quy tắc học
Delta tổng quát
Xây dựng luật học Lan truyền ngược
❑ Pha 2 – LAN TRUYỀN NGƯỢC:
▪ Tín hiệu sai số q của nơron q trong lớp ẩn được xác định bởi các tín hiệu sai số i
của các nơron i ở lớp ra (mà nơron q liên kết tới) truyền ngược về và các hệ số
chính là các trọng số wiq
▪ Quá trình tính tín hiệu sai số như trên được mở rộng (khái quát) dễ dàng đối với
ANNs có nhiều lớp ẩn. Giải thuật mô tả luật học Lan truyền ngược được gọi là
BACK PROPAGATION (BP), cung cấp quy tắc cập nhật trọng số như sau:
wab = .a.xb
• a; b là 2 chỉ số tương ứng với 2 đầu của liên kết b với a (từ một nơron b trong lớp
ẩn (hoặc tín hiệu đầu vào b) đến nơron a ở lớp ra (hoặc nơron a của lớp ẩn))
• xb là giá trị đầu ra của nơron b trong lớp ẩn (hoặc tín hiệu đầu vào b ở lớp vào)
• a là tín hiệu sai số của nơron a ở lớp ra (hoặc là của nơron a trong lớp ẩn)
Giải thuật Back Propagation
❑ Back_propagation_Algorithm
Xét mạng nơron gồm Q lớp (q = 1, 2,..., Q)
qNet và qOut là đầu vào tổng thể (Tín hiệu kích hoạt – net input) và giá trị đầu ra của
i i
nơron i trong lớp q
Mạng có m tín hiệu đầu vào và n nơron đầu ra
qw là trọng số liên kết giữa nơron j trong lớp (q-1) với nơron i ở lớp q
ij
BP algorithm gồm 7 bước:
▪ Bước 0 (Khởi tạo):
Chọn ngưỡng sai số Ethreshold (giá trị sai số có thể chấp nhận được trong suốt quá
trình HL)
Khởi tạo giá trị trọng số ban đầu ngẫu nhiên và nhỏ
Chọn hệ số học  ngẫu nhiên và nhỏ
Gán E = 0 (E là sai số tổng thể của HT trong quá trình HL)
Giải thuật Back Propagation
❑ Back_propagation_Algorithm
▪ Bước 1 (Bắt đầu một chu kỳ học):
Đưa vector đầu vào x của DL học thứ k tới lớp vào (q = 1):
qOut = 1Out = x (k) , i
i i i
▪ Bước 2 (Pha 1 - Lan truyền tiến):
Thực hiện lan truyền tiến các tín hiệu đầu vào qua mạng, từ lớp vào qua các lớp ẩn
rồi đến lớp ra cho đến khi nhận được các giá trị đầu ra của mạng QOuti :

▪ Bước 3 (Tính toán sai số đầu ra):


Tại lớp ra, tính toán giá trị sai số đầu ra của mạng và tín hiệu sai số Qi của mỗi
nơron:
Giải thuật Back Propagation
❑ Back_propagation_Algorithm
▪ Bước 3 (tiếp):
✓ Giá trị sai số đầu ra của mạng:

✓ Tín hiệu sai số Qi của mỗi nơron:


▪ Bước 4 (Pha 2 – Lan truyền ngược):
Thực hiện lan truyền ngược tín hiệu sai số để điều chỉnh và cập nhật các trọng số
đồng thời tính toán các tín hiệu sai số cho các nơron ở các lớp phía trước:
✓ Điều chỉnh và cập nhật các trọng số: qw = .qi.q-1Outj
ij
(qwij)new = (qwij)old + qwij
Giải thuật Back Propagation
❑ Back_propagation_Algorithm
▪ Bước 4 (tiếp):
✓ Tính tín hiệu sai số của các nơron ở các lớp trước là q-1i:

Với:

▪ Bước 5 (Kiểm tra kết thúc một chu kỳ học (Epoch)):


Một chu kỳ học kết thúc khi toàn bộ tập mẫu DL huấn luyện đã được sử dụng 
chuyển sang Bước 6, ngược lại quay về Bước 1.
▪ Bước 6 (Kiểm tra E của toàn mạng):
Nếu sai số tổng thể < ngưỡng sai số chấp nhận được (E < Ethresold)  quá trình học
kết thúc và mạng trả về giá trị các trọng số học được.
Ngược lại, gán lại E = 0 và bắt đầu chu kỳ mới từ Bước 1
Giải thuật Back Propagation
❑ Ví dụ: Cho mô hình mạng nơron như hình, dùng giải thuật BP để huấn luyện mạng
tìm các giá trị wij (i, j)?
Giải thuật BP – Lan truyền tiến (1)
Giải thuật BP – Lan truyền tiến (2)
Giải thuật BP – Lan truyền ngược (1)
Tính tín hiệu sai số đầu ra:

d is the desired output value


Giải thuật BP – Lan truyền ngược (2)
Tính tín hiệu sai số các nơron ở các lớp phía trước:
Giải thuật BP – Lan truyền ngược (3)
Giải thuật BP – Lan truyền ngược (4)
Cập nhật trọng số:
Giải thuật BP – Lan truyền ngược (5)
Giải thuật BP – Các vấn đề liên quan
❑ Khởi tạo giá trị các trọng số
Thông thường, các giá trị được khởi tạo ngẫu nhiên và nhỏ. Nếu các trọng số có giá
trị khởi tạo lớn thì:
▪ Các hàm truyền sigmoid sẽ đạt trạng thái bão hòa sớm
▪ Hệ thống sẽ tắc ở một điểm cực tiếu cục bộ hoặc ở một trạng thái không đổi gần điểm
bắt đầu
Các gợi ý cho wab(0) (trọng khởi tạo liên kết giữa nơron b đến nơron a:
▪ Gọi na là số lượng nơron ở cùng lớp với nơron a: wab(0)  [-1/na , 1/na]
▪ Gọ ka là số lượng các nơron có liên kết tiến đến nơron a (bằng số lượng các liên kết đầu
vào của nơron a): wab(0)  [-3/ka , 3/ka]
Giải thuật BP – Các vấn đề liên quan
❑ Tốc độ học (Learning rate)
▪ Hiệu quả và khả năng hội tụ của giải thuật học BP chịu ảnh hưởng rất nhiều vào
tốc độ học : Một giá trị  quá bé khiến mạng quá trình mạng bị kéo dài, ngược lại
sẽ đẩy nhanh sự hội tụ của việc học nhưng sẽ rất dễ khiến HT bỏ qua điểm tối ưu
toàn cục hoặc rơi vào điểm tối ưu cục bộ.
▪  thường được chọn theo thực nghiệm dựa trên từng bài toán cụ thể
❑ Số lượng các nơron trong lớp ẩn (được xác định bằng thực nghiệm):
▪ Bắt đầu với số lượng nhỏ (so với số lượng của các tín hiệu đầu vào)
▪ Nếu mạng không thể hội tụ, cần bổ sung thêm nơron trong lớp ẩn
▪ Nếu mạng có thể hội tụ, sử dụng nơron tầng ẩn ít đi
Ưu, nhược của ANNs truyền thẳng nhiều lớp
Giải thuật BP – Các vấn đề liên quan
❑ Momentum
CÂY QUYẾT ĐỊNH (Decision Trees)
❑Định nghĩa, giới thiệu
❑Biểu diễn mô hình/giả thuyết bằng cây quyết định
❑Thuật toán ID3 trong cây quyết định
CÂY QUYẾT ĐỊNH (Decision Trees)
❑Định nghĩa, giới thiệu
Cây quyết định là một cây phân lớp gồm:
• Nút gốc: là nút thử nghiệm
• Nút lá: là nút phân loại (phân lớp)
• Cây phân lớp bằng cách lọc mẫu dữ liệu học theo chiều từ trên xuống
(duyệt cây từ một nút gốc đến nút lá)
• Kết quả thu được là phân biệt và đầy đủ

You might also like