ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
Bài thu hoạch môn học
Hệ hỗ trợ ra quyết định
Đề tài
TÌM HIỂU MẠNG NEURAL NHÂN TẠO
VÀ THUẬT TOÁN LAN TRUYỀN NGƯỢC
Giảng viên giảng dạy: PGS.TS. Đỗ Phúc
Họ tên học viên: Lê Hoàng Vân
Mã số học viên: CH1301071
Thành phố Hồ Chí Minh – 2014
Mục lục
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Danh mục hình ảnh
Lê Hoàng Vân – CH1301071 Trang 2
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
LỜI MỞ ĐẦU
Ngày nay với sự phát triển như vũ bão của khoa học kỹ thuật, đặc biệt là trong
lĩnh vực công nghệ thông tin. Nhiều chương trình thông minh có khả năng hỗ trợ giải
quyết những vấn đề khó khăn của con người đã ra đời và đóng góp những thành tựu to
lớn. Những chương trình này được ứng dụng nhiều công nghệ tri thức tiên tiến. Một
trong những công nghệ đó là mạng neural nhân tạo. Bài tiểu luận này xin được trình
bày một số nội dung khái quát về mạng neural nhân tạo và thuật toán lan truyền ngược
trong mạng neural nhân tạo cùng một chương trình demo nhỏ để minh họa thuật toán.
Lê Hoàng Vân – CH1301071 Trang 3
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
CHƯƠNG I: MẠNG NEURAL NHÂN TẠO
1. Giới thiệu
Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra.
Hình 1 : Mô hình neuron nhân tạo ở mức đơn giản
Neural này sẽ hoạt động như sau: giả sử có N inputs, neural sẽ có N weights
(trọng số) tương ứng với N đường truyền inputs. Neural sẽ lấy tổng cótrọng số của tất
cả các inputs. Nói như thế có nghĩa là neural sẽ lấy input thứ nhất, nhân với weight trên
đường input thứ nhất, lấy input thứ hai nhân với weight của đường input thứ hai v.v ,
rồi lấy tổng của tất cả các kết quả thu được. Đường truyền nào có weight càng lớn thì
tín hiệu truyền qua đó càng lớn, như vậy có thể xem weight là đại lượng tương đương
với synapse trong neural sinh học. Có thể viết kết quả lấy tổng của neural như sau:
Kết quả này sẽ được so sánh với threshold t của neural , nếu nó lớn hơn t thì
neural cho output là 1, còn nếu nhỏ hơn thì output là 0. Ngoài ra ta cũng có thể trừ
Lê Hoàng Vân – CH1301071 Trang 4
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
tổng nói trên cho t, rồi so sánh kết quả thu được với 0, nếu kết quả là dương thì neural
cho ouput bằng 1, nếu kết quả âm thì output là 0. Dưới dạng toán học ta có thể viết
output của neural như sau:
Trong đó f là hàm Heaviside:
Hình 2: Hàm Heaviside
f được gọi là threshold function hay transfer function của neural , còn giá trị (-t) còn
được gọi là bias hay offset của neural .
Nếu chúng ta đưa thêm một input nữa vào, input thứ 0, có giá trị luôn luôn bằng 1 và
weight luôn luôn bằng bias (-t) thì output của neural còn có thể viết dưới dạng:
Lưu ý là chỉ số của tổng bây giờ bắt đầu từ 0 chứ không phải bằng 1 như trước nữa.
Lê Hoàng Vân – CH1301071 Trang 5
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
2. Kiến Trúc Mạng
Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là neural)
tựa như neural thần kinh của não người, hoạt động song song và được nối với nhau bởi
các liên kết neural. Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích
hoạt hoặc ức chế giữa các neural.
Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng
neural và nhiệm vụ của quá trình huấn luyện của mạng là cập nhật các trọng số khi có
thêm thông tin về mẫu học. Hay nói một cách khác, các trọng số đều được điều chỉnh
sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn toàn phù hợp với môi trường
đang xem xét.
2.1. Mạng Một Tầng
Mạng một tầng với S neural được minh họa trong hình 3.1. Chú ý rằng với mỗi
một đầu vào trong số R đầu vào sẽ được nối với từng nơ-ron và ma trận trọng số bây
giờ sẽ có S hàng.
Một tầng bao gồm ma trận trọng số, các bộ cộng, vector ngưỡng b, hàm chuyển
và vector đầu ra a.
i
a
i
b
Mỗi phần tử của vector đầu vào p được nối với từng nơ-ron thông qua
ma trận trọng số W. Mỗi nơ-ron có một ngưỡng , một bộ cộng, một hàm chuyển f
và một đầu ra .
Cùng với nhau, các đầu ra tạo thành một vector đầu ra a.
Thông thường thì số lượng đầu vào của tầng khác với số lượng nơ-ron.(R#S).
Có phải tất cả các nơ-ron trong cùng một tầng phải có hàm chuyển giống nhau ? Câu
trả lời là không; bạn có thể định nghĩa các nơ-ron trong một tầng có hàm chuyển khác
Lê Hoàng Vân – CH1301071 Trang 6
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
nhau bằng cách kết hợp song song hai mạng nơ-ron giống ở trên. Cả hai sẽ có đầu vào
giống nhau, và mỗi mạng sản xuất ra vài đầu ra.
Ma trận trọng số cho các phần tử trong vector đầu vào W:
W =
RSSS
R
R
www
www
www
,2,1,
,22,21,2
,12,11,1
Lê Hoàng Vân – CH1301071 Trang 7
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
∑
∑
∑
f
f
f
1
p
2
p
3
p
1,1
w
RS
w
,
1
a
2
a
S
a
1
b
2
b
S
b
1
n
2
n
S
n
1
1
1
a = f(Wp+b)
S
p
Hình 3:Mô hình mạng 1 lớp
Lê Hoàng Vân – CH1301071 Trang 8
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Các chỉ số hàng của các phần tử trong ma trận W chỉ ra nơ-ron đích đã kết hợp
với trọng số đó, trong khi chỉ số cột cho biết đầu vào cho trọng số đó. Vì vậy, các chỉ
số trong
2,3
w
nói rằng đây là trọng số của đầu vào thứ 2 nối với nơ-ron thứ 3.
2.2. Mạng Đa Tầng
Hình 4:Ví dụ về một mô hình mạng đa tầng
Mô hình mạng neural ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn(hidden) và lớp
xuất (output). Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào
mạng.
Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp – ta gọi là tổng trọng số –
và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút trong lớp này chỉ
liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết kế mạng mới biết
lớp này (người sử dụng không biết lớp này).
Lê Hoàng Vân – CH1301071 Trang 9
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp ẩn.
Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc.
3. Các luật học
Mạng neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người, do
vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và
dữ liệu khi đã học. Trong trạng thái học thông tin được lan truyền theo hai chiều
nhiều lần để học các trọng số. Có 3 kiểu học chính, mỗi kiểu học tương ứng với
một nhiệm vụ học trừu tượng. Đó là học có giám sát (có mẫu), học không giám sát
và học tăng cường. Thông thường loại kiến trúc mạng nào cũng có thể dùng được
cho các nhiệm vụ.
3.1. Học có giám sát.
Một thành phần không thể thiếu của phương pháp này là sự có mặt của một
người thầy (ở bên ngoài hệ thống). Người thầy này có kiến thức về môi trường thể
hiện qua một tập hợp các cặp đầu vào - đầu ra đã được biết trước. Hệ thống học (ở
đây là mạng neural) sẽ phải tìm cách thay đổi các tham số bên trong của mình (các
trọng số và các ngưỡng) để tạo nên một ánh xạ có khả năng ánh xạ các đầu vào
thành các đầu ra mong muốn. Sự thay đổi này được tiến hành nhờ việc so sánh giữa
đầu ra thực sự và đầu ra mong muốn.
3.2. Học không giám sát.
Trong học không có giám sát, ta được cho trước một số dữ liệu x và hàm chi
phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra của
mạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán. Phần lớn các ứng
dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa thống kê, nén,
lọc, phân cụm.
3.3. Học tăng cường.
Lê Hoàng Vân – CH1301071 Trang 10
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Dữ liệu x thường không được tạo trước mà được tạo ra trong quá trình một
agent tương tác với môi trường. Tại mỗi thời điểm t, agent thực hiện hành động y
t
và
môi trường tạo một quan sát x
t
với một chi phí tức thời C
t
, theo một quy trình động
nào đó (thường là không được biết). Mục tiêu là một sách lược lựa chọn hành động
để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi. Quy
trình hoạt động của môi trường và chi phí dài hạn cho mỗi sách lược thường không
được biết, nhưng có thể ước lượng được. Mạng neural nhân tạo thường được dùng
trong học tăng cường như một phần của thuật toán toàn cục. Các bài toán thường
được giải quyết bằng học tăng cường là các bài toán điều khiển, trò chơi và các
nhiệm vụ quyết định tuần tự (sequential decision making) khác.
3.4. Ví dụ
Giả sử chúng ta muốn huấn luyệnneural phân biệt chữ A và B. Khi đưa
input là A chúng ta muốn neural cho output là 1, còn khi input là B thì neural phải
cho output bằng 0.
Hình 5: Một ví dụ huấn luyện neuron
Hãy bắt đầu bằng cách cho các weights những giá trị ngẫu nhiên, lúc này
neural chưa biết gì hết. Bây giờ hãy input chữ A. Neural sẽ lấy tổng có trọng số
của các inputs và so sánh kết quả với 0. Nếu kết quả dương thì output là 1, âm
Lê Hoàng Vân – CH1301071 Trang 11
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
thì output là 0. Khả năng neural đoán đúng là 50%, vì các weights đang có giá
trị hoàn toàn ngẫu nhiên. Nếu neural đoán đúng thì chúng ta không cần làm gì
cả, nhưng khi neural đoán sai (output bằng 0), thì chúng ta phải tăng các
weights của các inputs đang hoạt động (các inputs khác không) lên, sao cho lần
tới tổng có trọng số sẽ vượt quá threshold và tạo nên output là 1.
Ngược lại, khi đưa chữ B vào và neural đoán sai (output bằng 1), thì ta
phải giảm các weights của các inputs đang hoạt động xuống, sao cho lần tới
tổng có trọng số sẽ nhỏ hơn threshold và buộc neural phải cho output bằng 0.
Như vậy, khi dạy chữ B thành công rồi thì neural có quên đi chữ đã học
trước đó là A không ? Không, vì khi input là các chữ khác nhau thì nhóm các
đường inputs đang hoạt động cũng khác nhau hoặc là không hoàn toàn trùng
nhau. Nhớ là chúng ta chỉ biến đổi weights của các inputs đang hoạt động thôi.
Chúng ta chỉ việc lập đi lập lại quá trình dạy như trên cho tới khi neural học
thuộc bài mới thôi.
Lê Hoàng Vân – CH1301071 Trang 12
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
CHƯƠNG II: MẠNG NEURAL TRUYỀN THẲNG
1. Kiến trúc cơ bản
Để đơn giản và tránh hiểu nhầm, mạng truyền thẳng xét trong chương này là các
mạng truyền thẳng có nhiều lớp. Kiến trúc mạng truyền thẳng nhiều lớp (Multi-
layer Feed Forward - MLFF) là kiến trúc chủ đạo của các mạng neural hiện tại. Mặc
dù có khá nhiều biến thểnhưng đặc trưng của kiến trúc này là cấu trúc và thuật toán
học là đơn giản và nhanh (Masters 1993).
1.1. Mạng truyền thẳng
Một mạng truyền thẳng nhiều lớp bao gồm một lớp vào, một lớp ra và một hoặc
nhiều lớp ẩn. Các neural đầu vào thực chất không phải các neural theo đúng nghĩa,
bởi lẽchúng không thực hiện bất kỳmột tính toán nào trên dữliệu vào, đơn giản nó
chỉtiếp nhận các dữliệu vào và chuyển cho các lớp kế tiếp. Các neural ởlớp ẩn và
lớp ra mới thực sự thực hiện các tính toán, kết quả được định dạng bởi hàm đầu ra
(hàm chuyển). Cụm từ “truyền thẳng” (feed forward) (không phải là trái nghĩa của
lan truyền ngược) liên quan đến một thực tếlà tất cả các neural chỉ có thể được kết
nối với nhau theo một hướng: tới một hay nhiều các neural khác trong lớp kế tiếp
(loại trừcác neural ở lớp ra).
Hình sau ở dạng tóm tắt biểu diễn mạng neural một cách cô đọng và tránh gây
ra sự hiểu nhầm.
Lê Hoàng Vân – CH1301071 Trang 13
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Hình 6: Mạng neural truyền thẳng nhiều lớp
trong đó:
P: Vector đầu vào (vector cột)
W
i
: Ma trận trọng sốcủa các neural lớp thứ i.
(S
i
xR
i
: S hàng (neural) - R cột (số đầu vào))
b
i
: Vector độlệch (bias) của lớp thứ I (S
i
x1: cho S neural)
n
i
: net input(S
i
x1)
f
i
: Hàm chuyển (hàm kích hoạt)
a
i
: net output (S
i
x1)
⊕: Hàm tổng thông thường.
Mỗi liên kết gắn với một trọng số, trọng sốnày được thêm vào trong quá trình
tín hiệu đi qua liên kết đó. Các trọng sốcó thểdương, thểhiện trạng thái kích thích,
hay âm, thểhiệntrạng thái kiềm chế. Mỗi neural tính toán mức kích hoạt của chúng
bằng cách cộng tổng các đầu vào và đưa ra hàm chuyển. Một khi đầu ra của tất
cảcác neural trong một lớp mạng cụthể đã thực hiện xong tính toán thì lớp kếtiếp có
Lê Hoàng Vân – CH1301071 Trang 14
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
thểbắt đầu thực hiện tính toán của mình bởi vì đầu ra của lớp hiện tại tạo ra đầu vào
của lớp kếtiếp. Khi tất cảcác neural đã thực hiện tính toán thì kết quả được trảlại bởi
các neural đầu ra. Tuy nhiên, có thểlà chưa đúng yêu cầu, khi đó một thuật toán
huấn luyện cần được áp dụng để điều chỉnh các tham sốcủa mạng.
Trong hình 9, sốneural ởlớp thứnhất, và lớp thứhai tương ứng là S
1
và S
2
. Ma
trận trọng số đối với các lớp tương ứng là W
1
và W
2
. Có thểthấy sựliên kết giữa các
lớp mạng thểhiện trong hình vẽ5: ởlớp thứ2, vector đầu vào chính là net outputcủa
lớp thứnhất.
Tương tựnhưvậy, nếu thêm vào các lớp khác nữa vào trong cấu trúc này thì lớp
mạng cuối cùng thường là lớp cho ra kết quảcủa toàn bộmạng, lớp đó gọi là lớp ra
(OUTPUT LAYER).
Mạng có nhiều lớp có khảnăng tốt hơn là các mạng chỉcó một lớp, chẳng hạn
nhưmạng hai lớp với lớp thứnhất sửdụng hàm sigmoid và lớp thứhai dùng hàm
đồng nhất có thểáp dụng đểxấp xỉcác hàm toán học khá tốt, trong khi các mạng
chỉcó một lớp thì không có khảnăng này.
Xét trường hợp mạng có hai lớp như hình vẽ 5, công thức tính toán cho đầu ra
nhưsau:
trong đó, ý nghĩa của các ký hiệu như đã nêu trong hình vẽ 5.
1.2. Mạng hồi quy
Bên cạnh mạng truyền thẳng còn có những dạng mạng khác nhưcác mạng hồi
quy. Các mạng hồi quy thường có các liên kết ngược từcác lớp phía sau đến các lớp
phía trước hay giữa các neural trong bản thân một lớp.
Lê Hoàng Vân – CH1301071 Trang 15
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Hình 7: Một ví dụcủa mạng hồi quy
Trong hình vẽ 10, D là đơn vịlàm trễ đầu vào nó một bước.
Dếthấy rằng, các mạng thuộc lớp các mạng truyền thẳng dễdàng hơn cho ta
trong việc phân tích lý thuyết bởi lẽ đầu ra của các mạng này có thể được biểu diễn
bởi một hàm của các trọng sốvà các đầu vào (Sau này, khi xây dựng các thuật toán
huấn luyện ta sẽthấy điều này).
2. Khảnăng thểhiện
Các mạng truyền thẳng cho ta một kiến trúc tổng quát thểhiện khảnăng ánh
xạhàm phi tuyến tính giữa một tập các biến đầu vào và tập các đầu ra. Khảnăng
thểhiện của một mạng có thể được định nghĩa là khoảng mà nó có thểthực hiện ánh
xạkhi các trọng sốbiến thiên.
1) Các mạng một lớp chỉcó khảnăng thểhiện các hàm khảphân tuyến tính hay
các miền phân chia được (ví dụnhưhàm logic AND có miền giá trịcó thểphân chia
được bằng một đường thẳng trong khi miền giá trịcủa hàm XOR thì không).
Lê Hoàng Vân – CH1301071 Trang 16
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
2) Các mạng có hai lớp ẩn có khảnăng thểhiện một đường biên phân chia tùy ý
với một độchính xác bất kỳvới các hàm chuyển phân ngưỡng và có thểxấp xỉbất
kỳánh xạmịn nào với độchính xác bất kỳvới các hàm chuyển có dạng sigmoid.
3) Một mạng có một lớp ẩn có thểxấp xỉtốt bất kỳmột ánh xạliên tục nào từmột
không gian hữu hạn sang một không gian hữu hạn khác, chỉcần cung cấp sốnơron
đủlớn cho lớp ẩn. Chính xác hơn, các mạng truyền thẳng với một lớp ẩn được luyện
bởi các phương pháp bình phương tối thiểu (least-squares) là các bộxấp xỉchính xác
cho các hàm hồi quy nếu nhưcác giảthiết vềmẫu, độnhiễu, số đơn vịtrong lớp ẩn và
các nhân tốkhác thỏa mãn. Các mạng neural truyền thẳng với một lớp ẩn sửdụng
các hàm chuyển hay hàm phân ngưỡng là các bộxấp xỉ đa năng cho bài toán phân
lớp nhịphân với các giảthiết tương tự.
3. Vấn đề thiết kế cấu trúc mạng
Mặc dù, vềmặt lý thuyết, có tồn tại một mạng có thểmô phỏng một bài toán với
độchính xác bất kỳ. Tuy nhiên, đểcó thểtìm ra mạng này không phải là điều đơn
giản. Để định nghĩa chính xác một kiến trúc mạng như: cần sửdụng bao nhiêu lớp
ẩn, mỗi lớp ẩn cần có bao nhiêu đơn vịxửlý cho một bài toán cụthểlà một công việc
hết sức khó khăn.
Dưới đây trình bày một sốvấn đềcần quan tâm khi ta thiết kếmột mạng.
3.1. Số lớp ẩn
Vì các mạng có hai lớp ẩn có thểthểhiện các hàm với dáng điệu bất kỳ, nên, vềlý
thuyết, không có lý do nào sửdụng các mạng có nhiều hơn hai lớp ẩn. Người ta đã
xác định rằng đối với phần lớn các bài toán cụthể, chỉcần sửdụng một lớp ẩn cho
mạng là đủ. Các bài toán sửdụng hai lớp ẩn hiếm khi xảy ra trong thực tế. Thậm chí
đối với các bài toán cần sử dụng nhiều hơn một lớp ẩn thì trong phần lớn các trường
hợp trong thực tế, sửdụng chỉmột lớp ẩn cho ta hiệu năng tốt hơn là sửdụng nhiều
Lê Hoàng Vân – CH1301071 Trang 17
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
hơn một lớp. Việc huấn luyện mạng thường rất chậm khi mà sốlớp ẩn sửdụng càng
nhiều. Lý do sau đây giải thích cho việc sửụng càng ít các lớp ẩn càng tốt là:
1) Phần lớn các thuật toán luyện mạng cho các mạng neural truyền thẳng đều
dựa trên phương pháp gradient. Các lớp thêm vào sẽthêm việc phải lan truyền các
lỗi làm cho vector gradient rất không ổn định. Sựthành công của bất kỳmột thuật
toán tối ưu theo gradient phụthuộc vào độkhông thay đổi của hướng khi mà các
tham sốthay đổi.
2) Sốcác cực trị địa phương tăng lên rất lớn khi có nhiều lớp ẩn. Phần lớn các
thuật toán tối ưu dựa trên gradient chỉcó thểtìm ra các cực trị địa phương, do vậy
chúng có thểkhông tìm ra cực trịtoàn cục. Mặc dù thuật toán luyện mạng có thểtìm
ra cực trịtoàn cục, nhưng xácsuất khá cao là chúng ta sẽbịtắc trong một cực trị địa
phương sau rất nhiều thời gian lặp và khi đó, ta phải bắt đầu lại.
3) Dĩnhiên, có thể đối với một bài toán cụthể, sửdụng nhiều hơn một lớp ẩn với
chỉmột vài đơn vịthì tốt hơn là sửdụng ít lớp ẩn với số đơn vịlà lớn, đặc biệt đối với
các mạng cần phải học các hàm không liên tục. Vềtổng thể, người ta cho rằng việc
đầu tiên là nên xem xét khảnăng sửdụng mạng chỉcó một lớp ẩn. Nếu dùng một lớp
ẩn với một sốlượng lớn các đơn vịmà không có hiệu quảthì nên sửdụng thêm một
lớp ẩn nữa với một sốít các đơn vị.
3.2. Số đơn vị trong lớp ẩn
Một vấn đềquan trọng trong việc thiết kếmột mạng là cần có bao nhiêu đơn
vịtrong mỗi lớp. Sửdụng quá ít đơn vịcó thểdẫn đến việc không thểnhận dạng được
các tín hiệu đầy đủtrong một tập dữliệu phức tạp, hay thiếu ăn khớp (underfitting).
Sửdụng quá nhiều đơn vịsẽtăng thời gian luyện mạng, có lẽlà quá nhiều đểluyện khi
mà không thểluyện mạng trong một khoảng thời gian hợp lý. Sốlượng lớn các đơn
vịcó thểdẫn đến tình trạng thừa ăn khớp (overfitting),trong trường hợp này mạng có
Lê Hoàng Vân – CH1301071 Trang 18
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
quá nhiều thông tin, hoặc lượng thông tin trong tập dữliệu mẫu (training set) không
đủcác dữliệu đặc trưng đểhuấn luyện mạng.
Sốlượng tốt nhất của các đơn vị ẩn phụthuộc vào rất nhiều yếu tố- số đầu vào,
đầu ra của mạng, sốtrường hợp trong tập mẫu, độnhiễu của dữliệu đích, độphức tạp
của hàm lỗi, kiến trúc mạng và thuật toán luyện mạng.
Có rất nhiều “luật” đểlựa chọn số đơn vịtrong các lớp ẩn, chẳng hạn:
Các luật này chỉcó thể được coi nhưlà các lựa chọn thô khi chọn lựa kích thước
của các lớp. Chúng không phản ánh được thực tế, bởi lẽchúng chỉxem xét đến nhân
tốkích thước đầu vào, đầu ra mà bỏqua các nhân tốquan trọng khác như: sốtrường
hợp đưa vào huấn luyện, độnhiễu ởcác đầu ra mong muốn, độphức tạp của hàm lỗi,
kiến trúc của mạng (truyền thẳng hay hồi quy), và thuật toán học.
Trong phần lớn các trường hợp, không có một cách đểcó thểdễdàng xác định
được sốtối ưu các đơn vịtrong lớp ẩn mà không phải luyện mạng sửdụng sốcác đơn
vịtrong lớp ẩn khác nhau và dựbáo lỗi tổng quát hóa của từng lựa chọn. Cách tốt
nhất là sửdụng phương pháp thử-sai(trial-and-error). Trong thực tế, có thểsửdụng
phương pháp Lựa chọn tiến (forward selection) hay Lựa chọn lùi (backward
selection) đểxác định số đơn vịtrong lớp ẩn.
Lựa chọn tiến bắt đầu với việc chọn một luật hợp lý cho việc đánh giá hiệu năng
của mạng. Sau đó, ta chọn một sốnhỏcác đơn vị ẩn, luyện và thửmạng; ghi lại hiệu
năng của mạng. Sau đó, tăng một chút số đơn vị ẩn; luyện và thửlại cho đến khi lỗi
là chấp nhận được, hoặc không có tiến triển đáng kểso với trước.
Lựa chọn lùi, ngược với lựa chọn tiến, bắt đầu với một sốlớn các đơn vịtrong
lớp ẩn, sau đó giảm dần đi. Quá trình này rất tốn thời gian nhưng sẽgiúp ta tìm được
sốlượng đơn vịphù hợp cho lớp ẩn.
Lê Hoàng Vân – CH1301071 Trang 19
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
CHƯƠNG III: THUẬT TOÁN LAN TRUYỀN NGƯỢC
Cần có một sựphân biệt giữa kiến trúc của một mạng và thuật toán học của nó,
các mô tảtrong các mục trên mục đích là nhằm làm rõ các yếu tố về kiến trúc của mạng
và cách mà mạng tính toán các đầu ra từ tập các đầu vào. Sau đây là mô tả của thuật
toán học sử dụng để điều chỉnh hiệu năng của mạng sao cho mạng có khả năng sinh ra
được các kết quảmong muốn.
Như đã nêu, về cơ bản có hai dạng thuật toán để luyện mạng cơ bản: học có
giám sát và học không giám sát. Các mạng neural truyền thẳng nhiều lớp được luyện
bằng phương pháp học có thầy. Phương pháp này căn bản dựa trên việc yêu cầu mạng
thực hiện chức năng của nó và sau đó trả lại kết quả, kết hợp kết quảnày với các đầu ra
mong muốn để điều chỉnh các tham sốcủa mạng, nghĩa là mạng sẽhọc thông qua những
sai sót của nó.
Về cơ bản, thuật toán lan truyền ngược là dạng tổng quát của thuật toán trung
bình bình phương tối thiểu (Least Means Square-LMS). Thuật toán này thuộc dạng
thuật toán xấp xỉđể tìm các điểm mà tại đó hiệu năng của mạng là tối ưu. Chỉ số tối ưu
(performance index) thường được xác định bởi một hàm số của ma trận trọng sốvà các
đầu vào nào đó mà trong quá trình tìm hiểu bài toán đặt ra.
1. Mô tảthuật toán
Ta sẽ sử dụng dạng tổng quát của mạng neural truyền thẳng nhiều lớp như trong
hình vẽ 5 của phần trước. Khi đó, đầu ra của một lớp trở thành đầu vào của lớp kế tiếp.
Phương trình thể hiện hoạt động này như sau:
trong đó M là số lớp trong mạng. Các neural trong lớp thứ nhất nhận các tín
hiệu từ bên ngoài:
Lê Hoàng Vân – CH1301071 Trang 20
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
chính là điểm bắt đầu của phương trình phía trên. Đầu ra của lớp cuối cùng được
xem là đầu ra của mạng:
1.1. Chỉ số hiệu năng (performance index)
Cũng tương tựnhưthuật toán LMS, thuật toán lan truyền ngược sửdụng
chỉsốhiệu năng là trung bình bình phương lỗi của đầu ra so với giá trị đích. Đầu vào
của thuật toán chính là tập các cặp mô tảhoạt động đúng của mạng:
{(p
1
, t
1
), (p
2
, t
2
), , (p
Q
, t
Q
)},
trong đó p
i
là một đầu vào và t
i
là đầu ra mong muốn tương ứng, với i = 1 Q.
Mỗi đầu vào đưa vào mạng, đầu ra của mạng đối với nó được đem so sánh với đầu ra
mong muốn.
Thuật toán sẽ điều chỉnh các tham sốcủa mạng đểtối thiểu hóa trung bình bình
phương lỗi:
F(x) = E[e
2
] = E[(t - a)
2
] ,
trong đó xlà biến được tạo thành bởi các trọng sốvà độlệch, Elà ký hiệu kỳvọng
toán học. Nếu nhưmạng có nhiều đầu ra, ta có thểviết lại phương trình trên ởdạng ma
trận:
F(x) = E[e
T
e] = E[(t - a)
T
(t - a)] .
Tương tựnhưthuật toán LMS, xấp xỉcủa trung bình bình phương lỗi nhưsau:
ký hiệu là giá trịxấp xỉcủa thì:
Lê Hoàng Vân – CH1301071 Trang 21
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
trong đó kỳvọng toán học của bình phương lỗi được thay bởi bình phương lỗi tại
bước k. Thuật toán giảm theo hướng cho trung bình bình phương lỗi xấp xỉlà:
trong đó αlà hệsốhọc.
Nhưvậy, mọi chuyện đến đây đều giống nhưthuật toán trung bình bình phương
tối thiểu. Tiếp theo chúng ta sẽ đi vào phần khó nhất của thuật toán: tính các đạo hàm
từng phần.
1.2. Luật xích(Chain Rule)
Đối với các mạng neural truyền thẳng nhiều lớp, lỗi không phải là một hàm của
chỉcác trọng sốtrong các lớp ẩn, do vậy việc tính các đạo hàm từng phần này là không
đơn giản. Chính vì lý do đó mà ta phải sửdụng luật xích đểtính. Luật này được mô
tảnhưsau: giảsửta có một hàm flà một hàm của biến n, ta muốn tính đạo hàm của fcó
liên quan đến một biến wkhác. Luật xích này nhưsau:
Ta sẽdùng phương pháp này đểtính các đạo hàm trong (+) và (++) ởphần trước.
trong đó hạng thức thứhai của các phương trình trên có thểdễdàng tính toán bởi vì đầu
vào của mạng tới lớp mlà một hàm của trọng sốvà độlệch:
trong đó là số đầu ra của lớp (m – 1). Do vậy ta có:
Lê Hoàng Vân – CH1301071 Trang 22
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Ký hiệu
là độnhạy cảmcủa đối với các thay đổi của phần tửthứ icủa đầu vào của mạng tại lớp
thứ m. Khi đó ta có:
Bây giờ, ta có thểphát biểu thuật toán giảm theo hướng (gradient descent) nhưsau:
Ởdạng ma trận:
trong đó:
1.3. Lan truyền ngược độ nhạy cảm
Bây giờta cần tính nốt ma trận độnhạy cảm s
m
. Đểthực hiện điều này cần
sửdụng một áp dụng khác của luật xích. Quá trình này cho ta khái niệm
vềsự“lan truyền ngược” bởi vì nó mô tảmối quan hệhồi quy trong đó độnhạy
cảm s
m
được tính qua độnhạy cảm s
m+1
của lớp m+ 1.
Lê Hoàng Vân – CH1301071 Trang 23
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
Đểdẫn đến quan hệ đó, ta sửdụng ma trận Jacobisau:
Xét phần tử(i, j) của ma trận trên:
trong đó:
Nhưvậy, ma trận Jacobicó thểviết lại nhưsau:
Lê Hoàng Vân – CH1301071 Trang 24
Bài thu hoạch môn Hệ hỗ trợ ra quyết định
trong đó:
Bây giờta viết lại quan hệhồi quy cho độnhạy cảm dưới dạng ma trận:
Đến đây có thểthấy độnhạy cảm được lan truyền ngược qua mạng từlớp cuối
cùng trởvềlớp đầu tiên
Cần nhấn mạnh rằng ở đây thuật toán lan truyền ngược lỗi sửdụng cùng một
kỹthuật giảm theo hướng nhưthuật toán LMS. Sựphức tạp duy nhất là ởchỗ đểtính
gradient ta cần phải lan truyền ngược độnhạy cảm từcác lớp sau vềcác lớp trước như đã
nêu trên.
Bây giờta cần biết điểm bắt đầu lan truyền ngược, xét độnhạy cảm s
M
tại lớp
cuối cùng:
Lê Hoàng Vân – CH1301071 Trang 25