Một đơn vị thần kinh nhân tạo có cấu tạo như sau : Trong đó, x 1, …, x n là các giá trị truyền đến đơn vị thần kinh nhân tạo giá trị này có thể là giá trị xuất từ một neural khác hoặc t
Trang 1LỜI NÓI ĐẦU
Trong những năm gần đây, vai trò của máy tính trong việc lưu trữ và
xử lý thông tin ngày càng trở nên quan trọng Bên cạnh đó, các thiết bị thu thập dữ liệu tự động cũng phát triển mạnh góp phần tạo ra những kho dữ liệu khổng lồ.
Dữ liệu được thu thập ngày càng nhiều nhưng người ra quyết định lại cần có những thông tin bổ ích và chính xác từ những tri thức được rút ra từ nguồn dữ liệu chưa được khai phá.
Với những yêu cầu đó, mô hình CSDL truyền thống không còn thích hợp nữa Để có được tri thức từ CSDL người ta đã phát triển các lĩnh vực nghiên cứu về tổ chức các kho dữ liệu và kho thông tin, các hệ trợ giúp ra quyết định, các phương pháp khai phá dữ liệu và phát hiện tri thức trong CSDL Trong đó khai phá dữ liệu và phát hiện tri thức đã trở thành một lĩnh vực nghiên cứu khá sôi động.
Qua quá trình học tập nghiên cứu môn Công Nghệ Tri Thức và Ứng Dụng, và sự hướng dẫn của thầy GS.TS Hoàng Kiếm chúng em đã học được những tri thức nền tảng về biểu diễn xây dựng các hệ cơ sở tri thức cũng như việc khám phá tri thức Nhưng do thời gian và khả năng có hạn nên trong nội dung chuyên đề em chỉ trình bày một phần nhỏ về lĩnh vực máy học, cụ thể là kỹ thuật huấn luyện mạng neural và ứng dụng trong SQL Server 2008
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60 48 01
Trang 2MỤC LỤC
CHƯƠNG I: MỞ ĐẦU 3
I Tổng quan 3
II Thuật toán học đơn giản trên Perceptron 7
III Thuật toán lan truyền ngược 11
CHƯƠNG II MỘT SỐ KỸ THUẬT HUẤN LUYỆN MẠNG NEURAL VÀ CÁC VẤN ĐỀ THỰC TẾ 16
I Kỹ thuật huấn luyện mạng Perceptron 18
II Mạng Perceptron một lớp 22
III Huấn luyện Gradient Descent 24
IV Các vấn đề thực tế 27
1 Tỉ lệ huấn luyện 27
2 Phương pháp huấn luyện mạng theo mẫu gốc (pattern) và xử lý theo khối (batch) 28
3 Khởi tạo giá trị ba đầu 29
4 Hiệu chỉnh tỉ lệ 29
CHƯƠNG III ỨNG DỤNG MẠNG NEURAL TRONG MICROSOFT SQL SERVER 2008 31
1 Thuật toán hoạt động như thế nào? 31
2 Thực hiện thuật giải Microsoft Neural Network 32
3 Huấn luyện Neural Networks 34
4 Lựa chọn các tính năng 36
5 Scoring Methods 37
6 Dữ liệu được yêu cầu cho mạng Neural 38
7 Quan sát một mô hình mạng neural 38
8 Mô hình ứng dụng dự đoán kết quả học tập theo học kỳ của học sinh trường TCN Nhân Đạo 39
Chương VI KẾT LUẬN VÀ KIẾN NGHỊ 50 TÀI LIỆU THAM KHẢO 53
Trang 3Cấu trúc của một tế bào thần kinh sinh học
Mạng neural nhân tạo là sự mô phỏng cấu trúc của mạng neural sinh học Mạng
neural nhân tạo được tạo thành bởi sự nối kết giữa rất nhiều đơn vị thần kinh gọi là
perceptron Những đơn vị này có nhiệm vụ nhận các tín hiệu từ các đơn vị khác
hoặc từ dữ liệu nhập; thông qua các mối liên kết, đơn vị sẽ tiến hành tổng hợp tín hiệu đến nó, xử lý và truyền các tín hiệu sang các đơn vị thần kinh khác hoặc đến
đầu ra
Trục Nhánh
Khớp Thân
Trang 4Một đơn vị thần kinh nhân tạo có cấu tạo như sau :
Trong đó, x 1, …, x n là các giá trị truyền đến đơn vị thần kinh nhân tạo (giá trị này có
thể là giá trị xuất từ một neural khác hoặc từ đầu vào) w 1 ,… , w n là các trọng số
ứng với mỗi giá trị được truyền đến neural
Giá trị đầu ra y của một perceptron được tính bằng công thức sau :
y = f((xnwn+ xn-1wn-1 + … + w2n2 + w1n1 + w0) - ) Hàm f được gọi là hàm truyền Một hàm truyền cần phải có tính chất sau :
- bị chặn
- đơn điệu tăng
- hàm liên tục tăngCác hàm truyền thường được sử dụng là :
Hàm logistic (hay còn gọi là hàm Sigma)
Hàm hyperbol
Hàm tang-hyperbol
Trong đó hàm sigmoid là hàm thường được dùng nhất
được gọi là ngưỡng kích hoạt của neural
x1
x2
xn
f (x )= 11+e−x
Trang 5Có thể nói rằng mạng neural nhân tạo là một phát minh quan trọng trong lĩnh vựctrí tuệ nhân tạo Ngày nay, mạng neural được ứng dụng trong nhiều lãnh vực khácnhau: công nghệ thông tin (khám phá tính năng xử lý không dùng ký hiệu và các hệmáy học nói chung), kỹ thuật (giám sát tình trạng của động cơ máy bay, kiểm soátquá trình sản xuất hay nhận dạng chữ ký), khoa học về tri thức (mô tả kiểu suy luận
và nhận thức), vật lý (mô hình hóa các hiện tượng trong cơ học thống kê), sinh học(lý giải các chuỗi nucleotid), kinh tế (dự đoán về thị trường tiền tệ và chứng khoáng),dược học (liên quan cấu trúc-tác dụng)
Một cách tổng quát, một mạng neural nhân tạo chỉ là một đồ thị bao gồm các đơn
vị thần kinh nhân tạo kết nối với nhau Tuy nhiên, có nhiều ứng dụng trong thực tiễnnhất là các mạng neural sau :
- Mạng Hopfield : là mô hình mạng 1 lớp với trọng số đối xứng, đượcHopfield đề xuất vào năm 1982
- Mạng Kohonen (winner-take-all) : do Kohonen đề xuất năm 1984, làmạng neural dựa trên ý tưởng phân lớp các giá trị đầu vào
- Mạng lan truyền ngược : Do Rumelhart và McClelland giới thiệu năm
1984, mô hình này ứng dụng trong các dạng mạng neural phức tạp, nhiềulớp Và đây cũng là một mô hình này đang được sử dụng khá phổ biếntrong các bài toán trí tuệ nhân tạo
* Để ngắn gọn hơn, từ đây về sau, chúng ta sẽ dùng từ neural thay cho đơn vị thần
kinh nhân tạo
Trong bài toán học mà chúng ta đã quen thuộc, để phân loại các đối tượng có m
thuộc tính khác nhau vào n thuộc tính quyết định khác nhau Chúng ta sẽ xây dựng
mạng neural gồm có :
m neural nhập, mỗi neural ứng với một thuộc tính của đối tượng và nhận một
giá trị trong miền giá trị xác định bởi miền giá trị của thuộc tính
một hoặc nhiều các neural “trung gian” hay các neural ẩn
Trang 6 n neural xuất, mỗi neural ứng với một thuộc tính quyết định, miền giá trị của
đầu ra của mỗi neural này là chính là miền giá trị của thuộc tính quyết địnhứng với neural đó
Vấn đề lớn nhất trong việc xây dựng mạng neural là việc xác định giá trị thích
hợp của các trọng số w cho các liên kết giữa các neural và chọn hàm truyền thích hợp
cho mỗi neural Và quá trình xác định các trọng số w gọi là quá trình huấn luyệnmạng neural hay còn gọi là quá trình học
Để xác định các trọng số w, người ta sử dụng một tập dữ liệu mẫu trong đó có
mô tả đầy đủ dữ liệu đầu vào và dữ liệu đầu ra tương ứng (tập dữ liệu huấn luyệntương tự như các tập mẫu mà chúng ta đã quen trong các thuật toán học trước,điểmkhác là ở đây các giá trị thuộc tính đều phải là các giá trị số) và một thuật toán
dùng để điều chỉnh trọng số w của các neural – thuật toán học
Mạng neural đa lớp bao gồm lớp nhập, lớp ẩn và lớp xuất
Chẳng hạn, xét lại ví dụ cháy nắng trong thuật toán học bằng cách xây dựng cây định danh Để tiện theo dõi, bảng
Trang 7số liệu mẫu của ví dụ này sẽ được để dưới đây
Vì các neural chỉ có thể làm việc trên các kiểu dữ liệu số nên ta có thể “lượng hóa” giá trị các thuộc tính như sau :
Tóc : vàng = 0, nâu = 1, đỏ = 2 Ch.Cao : thấp = 0, TB = 1, cao = 2Cân nặng : nhẹ = 0, TB = 1, nặng = 2Dùng kem : không = 0, có = 1
Cháy nắng : không = 0, có = 1Như vậy mạng neural sẽ gồm :
- 4 neural nhập, mỗi neural lần lượt ứng với mỗi thuộc tính màu tóc, chiều cao, cânnặng và có dùng kem hay không Neural ứng với màu tóc sẽ nhận giá trị đầu vào
Perceptron có thể được xem là mạng neural đơn giản nhất vì chỉ gồm có mộtneural duy nhất Tuy không mấy hữu ích so với một mạng neural đầy đủ nhưng nó lại
Trang 8rất hữu ích trong việc giúp chúng ta nắm được những nguyên tắc cơ bản trong tiếpcận máy học bằng mạng neural Chúng ta sẽ sử dụng thuật toán học trên perceptron
để xây dựng “hàm” để xác định một loại hoa có thuộc loại versicolor hay không Để
tiện vận dụng thuật toán perceptron, ta sẽ “lượng hóa” thuộc tính loài Loài = 1 làversicolorl Loài = -1 là loài khác
Chúng ta có các mẫu với các thuộc tính cho trong bảng sau :
Công thức truyền của perceptron trong bài toán này sẽ như sau :
f ( y )={−1 nếu y ≥ 0 1nếu y <0
và y = x0w0 + x1w1 + x2w2 + x3w3 + x4w4
Trong đó, x1, x2, x3, x4 lần lượt là giá trị các thuộc tính độ dài đài hoa, độ rộng đài
hoa, độ dài cánh hoa và độ rộng cánh hoa
x0 luôn có giá trị bằng 1 và được gọi là hệ số tự do
Nhiệm vụ của chúng ta là xác định giá trị cho các trọng số wi sao cho hàmf(y) có giá trị như trong cột loài đối với tất cả mẫu đã cho Nghĩa là giải hệ phươngtrình sau :
f(1.w0 + 4.7w1 + 3.2w2 + 1.3w3 + 0.2w4) = -1 f(1.w0 + 6.1w1 + 2.8w2 + 4.7w3 + 1.2w4) = 1 f(1.w0 + 5.6w1 + 3.0w2 + 4.1w3 + 1.3w4) = 1 f(1.w0 + 5.8w1 + 2.7w2 + 5.1w3 + 1.9w4) = -1 f(1.w0 + 6.5w1 + 3.2w2 + 5.1w3 + 2.0w4) = -1
Trang 9Ý tưởng của thuật toán perceptron là chọn ngẫu nhiên một bộ giá trị bất kỳ chocác wi Sau đó thuật toán sẽ tiến hành điều chỉnh lại dần dần cho "khớp" (tính chất tự
hoàn thiện qua thời gian) Cách thực hiện này quả thật là một kiểu giải phương trìnhbằng cách "mò" nghiệm của con người! Tuy vậy người ta đã chứng minh được rằngphương pháp tìm nghiệm này (trong một số điều kiện chặt chẽ nhất định) sẽ dẫn đếnkết quả sau một số lần lặp hữu hạn
Giả sử các trọng số ban đầu có các giá trị như sau :
w0 = 1; w1 = 0; w2 = 0; w3 = 0; w4 = 1
Thử với mẫu đầu tiên ta được :
f(1w 0 + 4.7w 1 + 3.2w 2 + 1.3w 3 + 0.2w 4) =
f(11 + 4.7 0 + 3.20 + 1.30 + 0.21) = f(1.2) = 1
Hàm f cho kết quả khác với mong đợi là 1 thay vì -1 Do đó ta cần phải điều
chỉnh lại các trọng số wi Sở dĩ hàm f cho kết quả 1 là vì tổng xiwi > 0 Do đó, để f
trả ra -1 ta cần điều chỉnh w i sao cho tổng xiwi giảm giá trị Dễ dàng thấy rằngphép trừ sau sẽ làm giảm giá trị của wi (với r là một hằng số dương)
wi = wi - r.xi
Như vậy tổng xiwi sẽ giảm giá trị nếu mọi wi đều giảm giá trị (bất chấp wi
âm hay dương)
Suy luận tương tự, có thể dễ dàng thấy rằng trong trường hợp ngược lại (hàm
f cho ra kết quả là -1 thay vì 1) ta sẽ cập nhật các trọng số wi (để làm tăng giá trị củatổng xiwi ) bằng công thức :
wi = wi + r.xi
Trở lại ví dụ của chúng ta, chọn r = 0.05 Như vậy, các trọng số sẽ được điều chỉnhnhư sau :
w0 = w0 - r.x0 = 1 - 0.051 = 0.95
Trang 10Ví dụ của chúng ta sẽ dừng sau 1358 lần thử và điều chỉnh cho tất cả mẫu Cáctrọng số wi kết quả là :
w0 = -1.80; w2= -0.30; w3 = -0.19; w4 = 4.65; w5 = -11.56Thuật toán Peceptron khá đơn giản và gần gũi với suy nghĩ của con người.Tuy nhiên, chính vì điều này, thuật toán này lại không mấy hữu hiệu trong nhữngtrường hợp phức tạp Ví dụ của minh họa mà chúng ta vừa khảo sát là một trườnghợp tuyến tính đơn giản nên sau một số lần điều chỉnh hữu hạn các wi sẽ "hội tụ" về
Trang 11kết quả Do đó, trong thực tế thuật toán perceptron được dùng để minh họa cho tiếpcận học bằng mạng neural hơn là để áp dụng vào một ví dụ thực tiễn nào đó
Trong mục này chúng ta cùng nhau khảo sát một thuật toán học thực tiễn hơn Thuật toán này thường được áp dụng trên mạng neural có nhiều Dùng lại ví
dụ trong thuật toán perceptron Mạng neural của chúng ta sẽ có cấu trúc như sau :
Trên hình vẽ, mạng neural này gồm có 3 lớp Lớp nhập gồm 4 neural để nhận 4 giá trị thuộc tính của loại hoa Lớp ẩn gồm có 2 neural (a và b), mỗi một
neural trong lớp ẩn sẽ nhận giá trị xuất từ tất cả các neural trong lớp nhập Lớp xuất
chỉ gồm một neural duy nhất mà giá trị xuất của nó sẽ cho biết loại hoa đó có phải
thuộc loại versicolor hay không, neural xuất cũng sẽ nhận giá trị xuất từ tất cả các
neural trong lớp ẩn
Việc chọn số neural cho lớp ẩn thực sự là một nghệ thuật Về mặt nguyêntắc, không có một lý do nào để giới hạn số lượng neural hoặc số lượng lớp ẩn trongmột mạng neural Đã có nhiều công trình nghiên cứu công phu đã được tiến hànhnhằm tìm hiểu xem việc thêm các lớp ẩn có cải thiện được năng lực của mạngneural hay không (tốc độ học, độ chính xác, ) Tuy nhiên, cho đến nay, người tavẫn chưa thể đưa ra được một lý thuyết nào hoàn toàn thuyết phục về vấn đề này
Các neural ở lớp nhập có cấu trúc rất đơn giản, thậm chí chúng còn khôngđược xem là các neural của mạng Nhiệm vụ của các neural trong lớp nhập chỉ làtruyền chính xác giá trị mà nó nhận được đến các neural trong lớp ẩn mà thôi Nói
1 2 3 4
a
b
o
Trang 12một cách đơn giản giá trị đầu ra của các neural trong lớp nhập chính là giá trị đầuvào
Để tiện theo dõi, chúng ta hãy đặt tên cho các trọng số nối giữa các neural
Các trọng số của neural a lần lượt là w 0a , w 1a , w 2a , w 3a , w 4a Trong đó, chẳng hạn
như w 2a là trọng số của "cung" nối từ neural nhập 2 đến a; w 0a là trọng số tự do của
neural a Các trọng số của neural b lần lượt là : w 0b , w 1b , w 2b , w 3b , w 4b Các trọng
số của neural O là : w 0O , w aO , w bO
Trong mạng trên, tất cả neural trong lớp ẩn và lớp xuất (a, b, O) đều sử dụng
cùng một hàm truyền là hàm sigma () Giá trị đầu ra của các neural này sẽ được tính bằng công thức (x i w i) (trong đó xtrong đó x i là các giá trị truyền đến neural và w i là trọng số ứng với giá trị x i ) Cụ thể hơn, nếu gọi Oa, Ob, OO lần lượt là các giá trịxuất của neural a, b và O thì :
Oa = (w0a + x1w1a + x2w2a + x2w2a + x2w2a )
Ob = (w0b + x1w1b + x2w2b + x2w2b + x2w2b )
OO = (w0O + OawaO + ObwbO)
* Lưu ý rằng hàm sigma có miền xác định là (0,1)
Cũng giống như thuật toán perceptron, ban đầu ta khởi động với các trọng số củacác neural một cách ngẫu nhiên :
Trang 13Áp dụng các trọng số đã cho với mẫu đầu tiên Giá trị xuất của các neural a,
b, O lần lượt là :
Oa = 0.5050 ; Ob = 0.5695; OO = 0.5359 Bước tiếp theo là dựa trên giá trị xuất thực sự của neural xuất (OO) và giá trịxuất mong muốn của neural xuất (EO) ta sẽ tính ra được sai số O của neural xuấtbằng công thức :
O = OO (1 - OO) (EO- OO)Tiếp theo, dựa trên sai số của neural xuất, giá trị xuất của neural ẩn và trọng
số của "cung" nối giữa neural ẩn và neural xuất ta sẽ tính ra được sai số tại neural
ẩn này Như vậy, theo mạng của chúng ta, sai số tại neural a và neural b lần lượt là :
a = Oa (1 - Oa) waO O
b = Ob (1 - Ob) wbO O
Trong trường hợp có nhiều hơn một nút xuất O1, , On thì sai số tại một nút ẩn
sẽ bằng tổng các sai số ứng với mỗi nút xuất :
b = Ob (1 - Ob) wbOi Oi
Ở đây có một điểm cần lưu ý Thực sự hàm sigma không thể trả ra giá trị 0
Ở đây ta chọn một ngưỡng, chẳng hạn như 0.5 để quyết định loại hoa đó có thể là
loại versicolor hay không Nếu OO < 0.5 thì không phải là versicolor, còn nếu OO 0.5 thì là loại versicolor Do đó, để tăng hiệu quả của phép phân loại, ta sẽ mong
muốn giá trị xuất 0.0 ứng với mẫu không là VersiColor và 1.0 đối với mẫu
VersiColor Việc đặt ra các giá trị mong muốn "cách xa" nhau như vậy sẽ giúp quátrình học tiến hành được thuận lợi hơn
Trong ví dụ, giá trị mong đợi của neural xuất đối với mẫu đầu tiên là 0(không phải là VersiColor) Áp dụng các công thức sai số ở trên ta sẽ có được :
O = -0.1333 a = -0.0067 b = 0.0033
Trang 14Thao tác cuối cùng là cập nhật lại các trọng số của các neural Lưu ý là khác vớithuật toán perceptron, ở đây ta luôn luôn cập nhật trọng số bất chấp giá trị đầu ra cóđúng hay không Ta sử dụng công thức sau :
w = w + r xVới r là tỷ lệ học, là sai số của neural (đã tính được từ bước trên) và x là giá trịtruyền đến neural theo "cung" có trọng số w Với ví dụ của chúng ta, các trọng số sẽđược cập nhật cụ thể là :
w0O = w0O + r O 1 = 0.0867
waO = waO + r O Oa = 0.1933
Trang 15wbO = wbO + r O Ob = -0.1076Thử áp dụng các trọng số mới này cho mẫu đầu tiên ta tính được OO =0.5304 Giá trị này gần 0 hơn giá trị ban đầu là 0.5359.
Người ta đã đánh giá rằng so với perceptron, mạng lan truyền ngược có tínhhiệu quả cao hơn Tuy nhiên, việc tìm ra cấu trúc mạng (số lượng neural ẩn) đối vớitừng bài toán cụ thể nói chung thường khó khăn và đòi hỏi nhiều kinh nghiệm tronglĩnh vực này Hơn nữa để đạt được kết quả chính xác, hệ thống cần phải thực hiệnmột số lần lặp rất lớn nên tốc độ học thường chậm
Trang 16Các mạng nơron có một tiềm năng cho các hệ thống điều khiển thôngminh bởi vì chúng có thể học hỏi và thích ứng, chúng có thể ước tínhchức năng phi tuyến, thích hợp cho xử lý song song và phân phối, và mô hình hóa hệthống đa biến.
Nếu một mô hình vật lý là không có hoặc quá đắt để phát triển, một mô hìnhmạng neural có thể là một thay thế
Cho một vấn đề phân loại, tập hợp các dữ liệu u được phân thành hai lớp C1 và C2 Mộtmạng noron có thể học từ những dữ liệu đưa vào và nâng cao hiệu xuất của nó thông quaviệc học này, đó chính là khả năng mà chúng ta đang rất quan tâm nghiên cứu
Trong một giai đoạn máy học, em mong muốn tìm hiểu một ví dụ nhỏ trong những ví
dụ về huấn luyện mạng noron Sau quá trình huấn luyện, mạng noron sẽ có thể phân loạichính xác dữ liệu hơn so với dữ liệu ban đầu
Cho một bảng dữ liệu về cường độ của 10 viên gạch ngói:
Trang 17Những viên gạch ngói được nhào nặn từ đất sét thành các hình dạng chuẩn, trángmen và nung trong lò Nhưng trong quá trình nung gạch có thể xuất hiện các vết nứt vôhình bên trong viên gạch Bộ phận kiểm tra xác định bằng cách dùng búa gõ vào viêngạch, một hệ thống tự động ghi lại âm thanh bằng một microphone, lọc âm, biến đổifourier, chuẩn hóa Một tập hợp nhỏ những dữ liệu (trích từ MIT, 1997) được cho trongbảng trên
Perceptron là một mạng noron đơn giản nhất, cũng phân chia dữ liệu thành hai lớp,nói chung nó bao gồm một noron đơn và một số những điều chỉnh về trọng số
Perceptron là một bộ vi xử lý của một mạng nơron Nó có ba yếu tố chính như sau:
- Một tập hợp các kết nối liên kết (hoặc các khớp thần kinh), mỗi liên kết mang một trọng
số (hoặc đơn điệu tăng) w0, w1, w2
- Một phép lấy tổng (hoặc bộ cộng) tổng kết các tín hiệu đầu vào sau khi được nhânvới trọng số tương ứng của chúng
- Kích hoạt một hàm f(x) giới hạn đầu ra của tế bào nơron Thông thường đầu ra giới hạntrong khoảng [0;1] hoặc [-1;1]
Phép lấy tổng trong mạng noron cũng bao gồm một w0 bù đắp cho việc hạ thấp hoặc nângcao đầu vào hàm kích hoạt của mạng
Về mặt toán học, đầu vào của mạng noron được đại diện bởi một vector u=(1,u1,u2,
…,un)T, và đầu ra là một đại lượng vô hướng y=f(x)
Trọng số kết nối được đại diện bởi vector w=(w0,w1,wn)T trong đó w0 là đại lượng bù trừ(lệch)
Đầu ra của mạng được tính toán như sau: y= f(wTu)
Trang 18Hình 1: Mạng noron Perceptron
Trọng số W được điều chỉnh bằng cách sử dụng một nguyên tắc học hỏi thích ứng
Có nghĩa là thuật toán hội tụ perceptron Nếu hai lớp C1 và C2 phân chia tuyến tính,
sẽ tồn tại một vector trọng số w với những thuộc tính như sau:
wtu ≥ 0 thì mọi vector đầu vào u theo lớp C1
wtu < 0 thì mọi vector đầu vào u theo lớp C2
Giả sử rằng Perceptron có m đầu vào, với công thức wTu=0, trong tọa độ khônggian m chiều u1, u2, …, um, định nghĩa một mặt phẳng không gian ba chiều như mộtmặt phẳng chuyển đổi giữa hai lớp khác nhau của đầu vào
Quá trình huấn luyện là điều chỉnh trọng số w để thỏa mãn hai bất đẳng thức trên
Một tập hấn luyện bao gồm K mẫu đầu vào vector u, cùng với các thành phần của
mỗi lớp mẫu (0 hoặc 1) Đại diện của một thiết lập huấn luyện hoàn tất đối với các
lớp perceptron gọi là epoch Việc học được tiếp tục bởi các epoch cho đến khi các
wk+1 = wk nếu wkT uk ≥ 0 và uk theo lớp C1
wk+1 = wk nếu wkT uk < 0 và uk theo lớp C2 Ngược lại, trọng số của các perceptron được cập nhật theo các qui tắc :
wk+1= wk - n kuk nếu wkT uk ≥ 0 và uk theo lớp C2
Trang 19Hình 2: Sau hai lầnthay đổi góc θ lớn hơn 900 và
lặp k, chúng ta có một fixed increment cho các qui luật thích nghi của perceptron.
Các thuật toán đã chứng minh (Haykin:1994; Lippmann:1987)
Các điểm của vector đầu vào u trong không gian m-chiều được đánh dấu bằng mộtngôi sao Qui tắc cập nhật này dựa trên tích vô hướng của hai vector, liên quan gócgiữa vector đầu vào và vector trọng số w:
wTu = |w||u|cos(θ)Hình 2 chỉ ra vị trí trọng số w(1) cần được thay đổi, góc θ nhỏ hơn 90 độ, và cos(θ
) là một số dương, nguyên tắc cập nhật thay đổi các vector trọng số w(2) bởi số lượng
n u theo phương ngược lại với u Vector trọng số đã quay, nhưng chưa đủ, vì vậy cần
một vector khác là w(3) Bây giờ góc đã lớn hơn 900 và dấu của wTu đã đúng Vector
w là giao của các mặt phẳng không gian ba chiều phân biệt các lớp với nhau Khi wquay, mặt phẳng không gian ba chiều quay với nó cho đến khi mặt phẳng tách rời cáclớp một cách đúng đắn
Huấn luyện mạng noron trong hình 2 để xác định những viên gạch không đạt chấtlượng Giá trị đầu vào của mạng noron là hai cột tần số của Bảng 1, chúng ta chia
Trang 20gạch thành hai loại tốt và xấu, loại tốt gắn với lớp C1 và loại xấu gắn với lớp C2 Đầutiên kiểm tra đầu vào của perceptron:
uT = (1,0.958,0.003) (7)Điều này tương ứng với một viên gạch ở lớp C1, những trọng số bao gồm cả trọng
số bù, phải gán giá trị ban đầu, giá trị khởi đầu là:
Sau khi qua lần đầu tiên, có vẻ mạng perceptron đã có thể nhận ra các viên gạchxấu, nhưng khi các trọng số đã được thay đổi so với lần chạy đầu tiên, thì chúng taphải quay lại kiểm tra những viên gạch tốt trong lần lặp thứ hai, trọng số đã đượcthay đổi, nhưng sau đó không có sự thay đổi thêm Qua đến lần thứ ba, cho thấy sựthay thế đã dừng lại
Trang 21Mạng Perceptron thực sự có thể phân biệt giữa viên gạch tốt và xấu.
Hình 5: Phân loại gạch trong không gian theo dữ liệu đầu vào (trong đó x trục logarit)
Hình 5 cho thấy đường thẳng phân chia giữa hai lớp Trọng số cuối cùng là:
wT = (0,0.977,0.425)Đường thẳng đánh dấu sự chuyển đổi giữa hai lớp, được xác định như sau:
0.977u1 – 0.425u2 = 0Tương đương với: u2 = (0.977/0.425)u1
Với một giới hạn cứng (hàm signum), hàm kích hoạt perceptron tạo đầu ra theo:
u T u
Côn g thức
Trang 22) (0,0.499,0.448) 0 0.783 (5) (-0.5,0.498,-0.427)(1,0.014,1.839
) (-0.5,0.498,-0.427) 0 -1.277 (3) (-0.5,0.498,-0.427)(1,0.007,1.021
) (-0.5,0.498,-0.427) 0 -0.932 (3) (-0.5,0.498,-0.427)(1,0.004,0.214
) (-0.5,0.498,-0.427) 0 -0.589 (3) (-0.5,0.498,-0.427)
Lần 2
Chất lượn g
w T u
Côn g thức
Trang 24Hình 6: Mạng Perceptron một lớp với ba nút đầu ra.
Mỗi một noron đầu ra xác định một vector trọng số trong một mặt phẳng không gian.Hàm kích hoạt sẽ có những dạng khác nhau tùy thuộc vào từng ứng dụng cụ thể
lớp.
Trang 25Có nhiều thuật toán có thể dùng cho việc huấn luyện các mô hình mạng nơ-ron;hầu hết có thể được xem là áp dụng trực tiếp của lý thuyết tối ưu hóa và ước lượngthống kê.
Phần lớn các thuật toán huấn luyện mạng nơ-ron sử dụng một kiểu xuống
dốc (gradient descent - tiến dần tới cực tiểu địa phương) nào đó Điều này được thực
hiện bằng cách lấy đạo hàm của hàm chi phí theo các tham số của mạng và thay đổi
các tham số đó theo một hướng được tính toán theo độ dốc (gradient-related
direction) để tiến dần tới cực tiểu địa phương của hàm chi phí.
Trang 26Các phương pháp thường dùng cho huấn luyện mạng nơ-ron là: phương pháp tiến
hóa, giải thuật luyện kim (simulated annealing), expectation maximisation (cực đại
hóa kỳ vọng) và các phương pháp không tham số (non-parametric methods)
Kết quả trả về mong muốn của mạng:
d={+1 nếu u t h uộc về lớp C1
−1 nếu u t h uộc về lớp C2 (18)Các luật huấn luyện từ (3) đến (6) có thể biểu diễn một cách thuận tiện hơn, chúng cóthể được tóm lược theo một dạng gọi là luật delta, thể hiện như sau:
w k+1=w k+∆ w k
¿w k+nk(d k−y k)uk
Sự khác biệt của d k -y k đóng vai trò tín hiệu báo lỗi và k tương ứng với mẫu huấn
luyện hiện tại Tham số tỷ lệ huấn luyện n là một hằng số dương giới hạn trongkhoảng
0 ≤ n ≤ 1 Nguyên tắc huấn luyện là làm tăng đầu ra y bằng cách làm tăng w khi
e=d–y là số dương.
Do đó wi tăng nếu ui dương, và wi giảm nếu ui âm Các tính năng theo ba nguyên tắcnhư sau:
- Đơn giản
- Việc huấn luyện có thể thực hiện cục bộ tại mỗi noron
- Việc cập nhật trọng số được thực hiện ngay và dùng những trọng số này
để huấn luyện cho những mẫu kế tiếp
Mục đích cuối cùng của việc huấn sửa lỗi là giảm tối thiểu hàm chi phí dựa trên tín
hiệu báo lỗi e Phản hồi của mỗi đầu ra của mạng noron gần đáp ứng được mục tiêu
của mạng noron trong các trường hợp thống kê phán đoán Thật vậy, một khi hàmđánh giá được chọn thì sự huấn luyện thật sự là vấn đề tối ưu hóa Giá trị của hàmphổ biến là tổng bình phương của error:
Trang 27Phân số ½ dùng để đơn giản hóa sự khác biệt khi giảm thiểu ε Một đồ thị biểu diễn giátrị hàm ε (w) là một mặt phẳng đa chiều error – surface Tùy thuộc vào loại hàm kích
hoạt được sử dụng cho mạng chúng ta có thể gặp hai trường hợp:
1- Mạng hoàn toàn là những noron tuyến tính ( Mặt phẳng error là một hàmbậc hai của trọng số, có hình chảo với một điểm tối thiểu duy nhất)
2- Mạng gồm những noron không tuyến tính ( Toàn bộ bề mặt cực tiểu).Trong cả hai trường hợp, mục tiêu của việc huấn luyện bắt đầu từ một điểm bất kỳtrên bề mặt, được xác định bởi trọng số và các yếu tố đầu vào ban đầu, di chuyển theohướng cực tiểu toàn bộ từng bước một Điều này khả thi với trường hợp thứ nhất, trongkhi với trường hợp thứ hai thuật toán có thể bị vướng trong một tối tiểu cục bộ màkhông bao giờ đạt tối tiểu toàn cục
Hình 9: Ví dụ về bề mặt lỗi của một mạng Perceptron đơn giản.
Để xem bề mặt lỗi được hình thành như thế nào chúng ta sẽ tiến hành phân tíchmột mạng Perceptron đơn giản với một noron r =1, đầu vào m=1, một đối số, một hàmkích hoạt tuyến tính Đầu ra của mạng là:
y=f(w T u)=w T u=(w 0 , w1)(1,u)T=w0+w1u (22)
Giả sử cho một đầu vào cụ thể u=1, và một đầu ra mong muốn d=0.5, chúng ta có
đồ thị mặt phẳng lỗi và hàm như sau: