• Mục tiêu của việc huấn luyện mạng là tìm giá trị tham số θ thích hợp ñể với dữ liệu nhập x bất kỳ có ra 1 giá trị ˆy xấp xỉ gần với y nhất.. các thuật toán huấn luyện sẽ lặp nhiều bướ
Trang 1Tổng quan về mạng Neural Network
trong phân tích ảnh
Trịnh Vũ Long Giao
MSSV: 0211053 Lớp: 02TT1 Khoa: Toán – Tin Học Trường: ðH KHTN
Trang 2M ụ c L ụ c
TổNG QUAN 3
G IớI THIệU Về MạNG N EURAL 3
Giới thiệu 3
Xấp xỉ hàm số 4
Hệ thống ñộng (Dynamic) và chuỗi thời gian (Time Series) 4
Phân loại (Classification) và nhóm (Clustering) 5
M Ô HÌNH TUYếN TÍNH (L INEAR M ODELS ) 5
M Ô HÌNH TRựC GIÁC (P ERCEPTRON ) 6
Thuật toán Huấn luyện 7
F EEDFORWARD VÀ R ADIAL B ASIS F UNCTION N ETWORKS 7
Mạng neural Feedforward (FF) 7
Mạng ña lớp 9
Ví dụ 9
Mạng Radial Basis Network (RBF) 12
Huấn luyện mạng Feedforward và Radial Basis Function 14
Levenberg-Marquardt 15
Gauss-Newton 15
Giảm dốc nhất (Steepest Descent) 15
Lan truyền ngược (Backpropagation) 16
Ví dụ minh so sánh các phương pháp huấn luyện khác nhau 16
M ạNG N EURAL ð ộNG (D YNAMIC ) 19
M ạNG H OPFIELD 21
Mạng Hopfield rời rạc thời gian 22
Mạng Hopfield Liên tục thời gian 23
M ạNG KHÔNG GIÁM SÁT (U NSUPERVISED ) VÀ M ạNG VECTOR L ƯợNG Tử HÓA (Q UANTIZATION ) (VQ) 23
CÁC MINH HọA CƠ BảN 24
B ÀI TOÁN PHÂN LOạI (C LASSIFICATION ) 25
X ấP Xỉ HÀM Số (F UNCTION A PPROXIMATION ) 26
THAM KHảO: 27
Trang 3o Dữ liệu nhập ñược ký hiệu là x là 1 vector dòng giá trị thực với chiều hoặc
ñộ dài tùy ý 1 cách thông thừơng x chỉ dữ liệu nhập, vector nhập, giá trị hồi quy (regressor), hoặc vector mẫu (pattern vector) ðộ dài vector chỉ số nút nhập của mạng
o Dữ liệu xuất ñược ký hiệu là ˆy là xấp xỉ của giá trị ra lý tưởng là 1 vector
giá trị thực có 1 hay nhiều phần tử chỉ số nút ra của mạng
o Thông thường tập dữ liệu bao gồm nhiều cặp dữ liệu nhập-xuất x và y biểu diễn bởi ma trận với 1 vector nhập vector xuất ở mỗi dòng
• mạng neural là 1 cấu trúc bao hàm các quan hệ các trọng số của neurons, hay các
ñơn vị (units) với các phép biến ñổi vô hướng không tuyến tính và tuyến tính
Minh họa ví dụ về mạng neural 1 lớp ẩn với 3 nút nhập, x = {x1,x2,x3} và nút giá
trị lệch (unity bias) nối vào 2 neuron trong lớp ẩn 2 giá trị ra từ lớp ẩn cùng với giá trị lệch ñược ñưa vào 1 neuron ở lớp xuất tính ra giá trị xuất vô hướng ˆy
Lớp chứa các neuron gọi là lớp ẩn vì giá trị xuất của nó không cần xuất ra trực tiếp trong dữ liệu các kiểu ñặt trưng của mạng neural ñược ñề cập trong phần
mạng Feedforward và Radial Basis Function
Các mũi tên tượng trưng cho các tham số giá trị thực hay trọng số của mạng
• 1 neuron là 1 cấu trúc ñể xử lý các nút nhập, bao gồm cả giá trị lệch, theo hướng không tuyến tính, cho ra 1 giá trị xuất ðồng thời, tất cả các nút nhập ñưa vào neuron ñược gia tố thêm bởi các trọng số sau ñó lấy tổng và ñưa vào hàm số
không tuyến tuyến gọi là hàm hoạt ñộng σ
Trang 4• Như minh họa ở hình trên, giá trị xuất của mạng dược tính như sau:
trong ñó các trọng số là {w1i j, ,b i j1, ,w b12, 2}
• Eq (1) là 1 ánh xạ không tuyến tính x ˆy , ở dạng rút gọn, ánh xạ ñược viết:
Trong ñó θ là vector giá trị thực có các phần tử là các tham số (trọng số) của mạng
• Mục tiêu của việc huấn luyện mạng là tìm giá trị tham số θ thích hợp ñể với dữ
liệu nhập x bất kỳ có ra 1 giá trị ˆy xấp xỉ gần với y nhất các thuật toán huấn
luyện sẽ lặp nhiều bước với vector tham số khởi tạo θ và ñược cập nhật tốt hợp trong mỗi bước lặp
• Trước khi mạng ñược chấp nhật, cần có bước kiểm nghiệm (validate) Nghĩa là mạng sẽ ñược chạy thử với 1 số dữ liệu ñã biết ðơn giản và tốt nhất là thử
nghiệm mạng với tập dữ liệu mà không có trong dữ liệu ñược huấn luyện và dữ liệu này với dữ liệu huấn luyện ñược tạo ra trong cùng các ñiều kiện tương tự nhau Việc huấn luyện mạng thường thất bại trong bước kiểm nghiệm, trong trường hợp này, ta phải chọn mô hình tốt hơn Tuy nhiên, ñôi khi ta chỉ cần lặp lại bước huấn luyện với giá trị tham số khởi tạo θ khác Một khi mạng neural ñã
ñược kiểm nghiệm thành công, mạng có thể ñược ñưa vào sử dụng
• Khi dữ liệu nhập bắt nguồn từ 1 hàm số với các nút xuất giá trị thực trong 1 khoảng liên tục, mạng neural ñược xem như là sự xấp xỉ hàm số truyền thống 1
ví dụ của bài toán xấp xỉ là nhiệt ñộ của 1 ñối tượng có thể ñược tính bằng ñộ bức
xạ ví dụ thông thường khác là cỡ giày có thể ước lượng từ chiều cao của người mang 2 ví dụ này liên quan ñến mô hình mạng với 1 nút nhập vào 1 nút xuất 1
mô hình mạnh hơn ở ví dụ 2 là dùng giới tính như nút nhập thứ 2 ñể ước lượng chính xác hơn
• Các hàm số thuần túy có thể ñược xấp xỉ bởi 2 kiểu mạng neural:
o Feedforward Neural Networks
o Radial Basis Function Networks
Series)
• Dữ liệu vào phụ thuộc thời gian, cần ñến “bộ nhớ” (memory) nên ñược nói ñến
như là hệ thống ñộng
Trang 5• thơng tin quá khứ được dùng để dự đốn trạng thái tương lai
• Ví dụ: dự đốn giá cả; mơ tải tốc độ máy dựa vào điện áp và tải trọng
o Ví dụ 1: time-series khơng cĩ dữ liệu nhập
o Ví dụ 2: 2 dữ liệu nhập là điện áp và tải trọng
• Phân loại dữ liệu vào trong danh mục, lớp dựa trên tập các đặt trưng riêng
• Gọi là mạng phân loại (network classifier)
• Huấn luyện dùng dữ liệu vào từ các lớp khác nhau, dữ liệu ra là vectors chỉ ra thuộc lớp nào
• Dữ liệu ra thường là vector các lớp trong đĩ 1 chỉ ra dữ liệu thuộc lớp và 0 cho tất
cả lớp cịn lại
• Các kiểu mạng thường dùng để giải bài tốn phân loại:
o Perceptron
o Vector Quantization (VQ) Networks
o Feedforward Neural Networks
o Radial Basis Function Networks
o Hopfield Networks
Mơ hình tuyến tính (Linear Models)
• Minh họa mơ hình tuyến tính:
ứng các nut
Trang 6• Biễu diễn bằng phương trình:
• Mô hình tuyến tính với nhiều nút xuất:
Mô hình trực giác (Perceptron)
• Là dạng ñơn giản nhất của mạng neural Thường ñược dùng trong việc phân loại
• Minh họa mô hình trực giác với các nút nhập x 1 , x 2 , …, x n và 1 nút xuất ˆy :
• nút xuất ñược tính bằng công thức:
trong ñó {w 1 , w 2 , …, w n } là trọng số của nút nhập, b là ñộ dốc (bias weigth) Mỗi
trọng số ñại diện bởi mũi tên trong hình trên
Hàm UnitStep trả về 0 cho các giá trị nhỏ hơn 0, ngược lại trả về 1 Do ñó nút
nhập ˆy có giá trị 0 hay 1 tùy theo giá trị tổng trọng số Cho nên mô hình trực
giác chỉ ra 2 lớp tương ứng 2 giá trị xuất
• Trong quá trình huấn luyện, các trọng số (nút nhập và ñộ dốc) ñược ñiều chỉnh ñể
giá trị nhập ánh xạ chính xác ñến 2 lớp
Trang 7Thu ậ t toán Hu ấ n luy ệ n
dài bằng chiều vector nhập x
• Vector nhập x = {x1,x2,…,xn}, nút xuất ñược biểu diễn:
• Nếu x là ma trận với mỗi dòng là 1 vector thì ˆy là vector cột có giá trị tương ứng
cho mỗi dòng
• {w, b} nhận ñược trong các bước lặp huấn luyện mạng với các cặp dữ liệu nhập –
xuất ñã xác ñịnh Mỗi vector nhập là 1 dòng ma trận x, mỗi nút xuất là 1 dòng của
vector dòng ˆy
• Cho N cập, việc huấn luyện mạng ñược ñịnh nghĩa như sau:
Trong ñó i là các bước lặp, η là ñộ lớn bước nhảy và ε i =y- ˆy (x,w i ,b i ) là vector cột
N phần tử sai số tương ứng N dữ liệu mẫu trong tập huấn luyện Phần tử của
vector sai số có thề là 1 trong 3 giá trị 0, -1, 1 Ở mỗi bước lặp i, 0 chỉ ra dữ liệu
mẫu phân loại chính xác, các giá trị còn lại là không chính xác
• Việc huyến luyện sẽ dừng khi tất cả các trọng số {w,b} ñựơc cập nhật sao cho tất
cả dữ liệu mẫu ñều ñựơc phân loại chính xác hoặc bước lặp i tiến ñến giới hạn
imax
mặc dù giá trị η càng lớn có thể tăng tốc ñộ học, tuy nhiên cũng có thể gây ra sự
dao ñộng làm có thể làm chậm sự hội tụ
Feedforward và Radial Basis Function Networks
[introduction…]
• Phổ biến và ứng dụng rộng rãi nhất ñược biết với tên gọi khác là mạng trực giác
nhiều lớp (multi-layer perceptrons)
Trang 8• Minh họa mạng FF 1 lớp ẩn với các nút nhập x 1 , x 2 , …, x n và 1 nút xuất ˆy
mạng ñược chia thành nhiều lớp lớp nhập bao gồm các nút nhập, lớp ẩn bao gồm
các neuron ẩn ñặt song song Mỗi neural biểu diễn tổng trọng các nút nhập sau ñó
ñược ñưa vào hàm hoạt ñộng σ(activation function) còn ñược gọi là hàm neural
• Biểu diễn toán học:
1
n
j j j j
trong ñó trọng số {w j , b j } tượng trưng bằng các mũi tên hướng vào neuron
• Nút xuất bằng tổng trọng ñầu ra của các neuron Tập các nút xuất gọi là lớp xuất
• Dữ liệu xuất của mạng ñược tính bởi công thức:
n là số nút nhập, nh là số neuron trong lớp ẩn các biến { w i j1, , b1j i, , w , i2 b } ñược 2
gộp chung trong vector θ Một cách tổng quát, mô hình mạng neural ñược viết dưới dạng rút gọn g(θ,x)
• Trong quá trình huấn luyện mạng các tham số sẽ ñược ñiều chính tăng dần cho
nhất có thể trong giới hạn số các bước lặp
• Hàm hoạt ñộng phi tuyến thường ñược chọn là hàm có bước nhảy mịn (smooth step function) Phổ biến nhất là hàm sigma
Trang 9ñồ thị là:
M ạ ng ñ a l ớ p
• Hình minh họa mạng có 2 lớp ẩn với nhiều nút xuất:
• Số các lớp ẩn và số neuron ẩn là các tham số do người dùng thiết kế 1 quy tắc chung là chọn các tham số sao cho mô hình khả thi nhất với ít các tham số nhất có thể Trong thực tế, quy tắc này không phải luôn tốt, mà ta cần thử với nhiều mẫu lựa chọn khác nhau, so sánh các kết quả ñể chọn ra mô hình mạng phù hợp nhất cho bài toán
• Trong nhiều ứng dụng thực tế, mạng 1 hoặc 2 lớp ẩn là vừa ñủ
• Giá trị xuất của các neuron trong hình trên là tuyến tính, không có hàm hoạt ñộng phi tuyến tính ñược tính sau khi lấy tổng trọng số ñiều này tốt trong các bài toán
hệ thống ñộng và dãy thời gian (dynamic và time series) Tuy nhiên nếu dùng
mạng FF trong các bài toán phân loại, sẽ thuận lợi nếu các giá trị xuất của neuron
là không tuyến tính Mô tả sẽ ñược diễn giải trong ví dụ dùng mạng FF cho bài toán phân loại (example)
Ví d ụ
• Quy ước:
xuất ñược biểu diễn dưới dạng ma trận, trong ñó xi là vector trên dòng thứ
i của ma trận dữ liệu nhập, yi là vector trên dòng i của dữ liệu xuất
Ví dụ: 20 cặp, vector xi có ñộ dài 1, vectory yi có ñộ dài 2
x =
Trang 10y =
o Trong bài toán phân loại, dữ liệu nhập ñược gọi là vector mẫu Mỗi dòng
của dữ liệu nhập x chứa 1 vector mẫu, và dòng tương ứng trong dữ liệu xuất y chỉ ra chính xác lớp của vector mẫu ma trận y có mỗi cột tương
ứng 1 lớp, trên mỗi dòng, ứng với lớp chính xác có giá trị 1, còn lại mang
giá trị 0 Nếu bài toán phân loại chỉ có 2 lớp, ta cũng có thể chỉ dùng 1 cột, chỉ ra lớp với giá trị 0 hoặc 1
Ví dụ:
vector mẫu x25 =tương ứng y25 = nên mẫu thuộc lớp 2
• Dữ liệu mẫu bao gồm 3 lớp, mỗi lớp phân thành 2 nhóm x là dữ liệu nhập, y chỉ
ra lớp tương ứng
• Trong bài toán phân lọai, ñiểm quan trọng là sự không tuyến tính khác nhau ở nút
ra trong mạng FF mục ñích của không tuyến tính là chắc rằng giá trị xuất nằm
bên trong vùng phân lớp khác nhau chúng ta sẽ dùng hàm Sigma ñể bão hòa các
giá trị là 0 hoặc 1 chính xác với dữ liệu xuất của lớp Chú ý rằng hàm Sigma
không bao giờ tiến ñến chính xác giá trị 0, 1
• Huấn luyện mạng FF với 8 bước lặp:
Trang 11• Sau khi ñược huấn luyện với tập dữ liệu mẫu, áp dụng thử cho 2 vector nhập: nhập:
xuất:
vector dữ liệu tương ứng với lớp mà có giá trị lớn nhất nếu vector xuất có nhiều phần tử mang giá trị lớn nhất, hoặc không có phần tử nào thì hệ thống phân loại
ñược xem như không ñáng tin cậy ñối với dữ liệu ñược dùng
• Biểu diễn hệ thống phân loại bằng ñồ thị ñường biên:
• Chúng ta cũng có quan sát ñồ thị hàm phân loại có 3 ñồ thị ứng với 3 lớp các
ñường biên (biễu diễn ở trên) ứng với ñường cong cắt mặt tại giá trị xuất 0.5:
Trang 12• Minh họa quá trình huấn luyện:
• Minh họa mạng neural với các n nút nhập và 1 nút xuất.ñầu ra của neuron ñược
ñưa vào hàm basis function Nút xuất của mạng ñược tính bằng các lấy tổng trọng
Trang 13số các neuron
• Mạng RBF thường bao gồm cả phần tuyến tính ðược viết bằng phương trình như sau:
nb là số neuron, mỗi neuron có 1 hàm basis Tham số mạng RBF bao gồm tập các
vị trí w của các hàm basis là nghịch ñảo ñộ dài 1i λi của hàm basis, trọng số w của i2
tổng xuất, và các tham số của các thành phần tuyến tính χ1, χ 2,…, χ n
• Các tham số ñược gộp chung thành θ trong dạng thu gọn g(θ,x), g là hàm mạng và
x là dữ liệu nhập
• Trong quá trình huấn luyện, các tham số ñược ñiều chỉnh ñể dữ liệu mẫu ñúng với
Eq (10) tốt nhất có thể Quy trình huấn luyện sẽ ñược mô tả ở phần tiếp theo
• Trong Eq (10), hàm basis ñược chọn là hàm Gaussian, tuy nhiên có thể chọn 1 hàm khác
• Minh họa mạng RBF với nhiều nút xuất:
Trang 14Hu ấ n luy ệ n m ạ ng Feedforward và Radial Basis Function
• Cho mạng với dữ liệu mẫu gồm N cập dữ liệu xuất – dữ liệu nhập (( ,x y i i i)N=1 Sai
số bình phương trung bình (MSE) ñược ñịnh nghĩa như sau:
• Việc huấn luyện mạng là tìm ra tham số θ phù hợp nhất θ ñược ñánh giá tốt khi
MSE là nhỏ nhất:
• thông thường sai số căn bình phương trung bình (RMSE) thường ñược dùng khi
ước lượng mô hình trong và sau khi huấn luyện, RMSE ñược so sánh trực tiếp với
giá trị xuất giá trị RMSE ñược ghi nhận lại minh họa quá trình huấn luyện bằng
ñồ thị
• Có nhiều thuật toán ñể huấn luyện mạng các thuật toán bắt ñầu với tham số khởi
tạo θ0, quá trình huấn luyện sẽ làm giảm MSE ở các bứơc lặp bằng cách cập nhật
θ tăng dần theo hướng làm giảm dốc (gradient) của MSE:
Tham số µ ñiều chỉnh ñộ lớn mỗi lần cập nhật θ cho bước lặp i và giảm giá trị
MSE Việc chọn R và µ khác nhau tùy theo các thuật toán huấn luyện
• Nếu R ñược chọn là nghịch ñảo Hessian của hàm MSE Hessian ñược tính như
sau:
Eq (15) là dạng của thuật toán Newton Nếu Hessian không xác ñịnh, θ ñược cập
nhật theo hướng tăng dốc mà sẽ làm tăng giá trị MSE Có thể tránh bằng cách
dùng các R khác nhau Thuật toán GN giống với Newton với phần cuối ñược lược
bỏ, phần ñầu của Eq (15):
• Với H ñã ñược ñịnh nghĩa, các phương pháp tìm kiếm có thể chọn 1 trong các
thuật toán sau:
Trang 15Levenberg-Marquardt
• Thuật toán Levenberg-Marquardt (LMA) nội suy giữa Gauss-Newton (GNA) và
phương pháp giảm dốc LMA thông dụng hơn so với GNA, trong nhiều trường
hợp nó tìm ra giá trị cực tiểu rất nhanh
• Thay vì lựa chọn ñộ lớn µ ñể ñảm bảo ñi theo hướng xuống dốc ở mỗi bước lặp
Eq (14), ma trận ñường chéo ñược thêm vào H ở Eq (16), R ñược chọn như sau:
và µ=1
• Giá trị λ sẽ ñược chọn tự ñộng ñể sinh ra bước xuống dốc ở mỗi bước lặp, thuật
toán sẽ cố giảm giá trị của λ bằng cách tăng ∆λ Nếu giá trị hiện tại của λ mà
không làm giảm MSE ở Eq (14) thì λ sẽ ñược làm tăng trong các bước tiếp theo
với giá trị ∆λ cho ñến khi MSE giảm
• Việc huấn luyện sẽ bị dừng nếu xảy ra 1 trong các ñiều kiện sau:
o
s là ñộ dài vector giá trị riêng lớn nhất của H
• Giá trị λ lớn tạo ra các tham số tăng chủ yếu theo hướng giảm dốc
Gauss-Newton
• Nhanh, và mạnh, ñược dùng trong nhiều bài toán cực tiểu khác nhau Tuy nhiên
nếu mạng neural có Hessian ñiều kiện yếu, tức là ñộ dài vector riêng nằm trong
khoảng rất lớn, thuật toán sẽ làm chậm quá trình học ñáng kể
• Thuật toán học dùng phương pháp Gauss-Newton với ma trận R ñược chọn là
nghịch ñảo của H trong Eq (16) như sau:
giảm, ngược lại µ ñược chia ñôi cho ñến khi tạo ra bước ñi xuống dốc Sau ñó
thuật toán sẽ tiếp tục với bước lặp kế
• Việc huấn luyện sẽ bị dừng nếu xảy ra 1 trong các ñiều kiện sau:
Trang 16Có nghĩa là vector tham số θ ñược cập nhật theo hướng giảm dốc của MSE ở Eq (13)
ñến khi làm giảm
• So sánh với 2 phương pháp trước thì phương pháp này cần ít sự tính toán hơn ở mỗi bước lặp bởi không có ma trận nghịch ñảo tuy nhiên lại không hiệu quả bằng
2 phương pháp trên
• Phương pháp lan truyền ngược tương tự giảm dốc nhất với ñiểm khác biệt là µ
ñược giữ cố ñịnh trong suốt quá trình học µ ñược chọn mặc ñịnh bằng 0.1
• Luyện mạng trong Eq (24) có thể ñược mở rộng thêm với tham số mômen α:
giá trị mặc ñịnh của α ñược chọn là 0
• Việc dùng mômen là cần thiết ñể tránh cực tiểu ñịa phương
• Tốt hơn nên chọn các phương pháp huấn luận khác và lặp lại quá trình học nhiều lần với tham số khỏi tạo khác nhau
nhau
• Trong minh họa này mạng chỉ có 2 tham số, ñể ta có thể biễu diễn ñược bằng ñồ thị, RMSE ñược biểu diễn như mặt cong
• Hàm minh họa ñược chọn có 1 nút nhập và 1 nút xuất với tham số ñúng là 2 và -1
• Hình minh họa các tham số lân cận với tham số cực tiểu (2, -1)