Mạng neural và ứng dụng vào bài toán phân lớp - Pdf 26

Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 1

PHẦN MỞ ĐẦU
Khả năng học, ghi nhớ và khái quát hoá từ các dữ liệu huấn luyện làm
cho mạng neural nhân tạo trở thành một phát minh đầy hứa hẹn trong hệ
thống xử lý thông tin. Các tính toán neural cho phép giải quyết tốt những bài
toán đặc trưng bởi một số hoặc tất cả các tính chất như: sử dụng không
gian nhiều chiều, các tương tác phức tạp, chưa biết hoặc không thể theo dõi
về mặt toán học giữa các biến. Ngoài ra phương pháp này còn cho phép
tìm ra nghiệm của những bài toán mà đầu vào là các cảm nhận của con
người như: tiếng nói, nhìn và nhận dạng
Cùng với sự phát triển của mô hình kho dữ liệu (data warehouse), ngày
càng có nhiều kho dữ liệu với lượng dữ liệu rất lớn. Để khai thác có hiệu
quả những dữ liệu khổng lồ này đã có nhiều công cụ được xây dựng để thỏa
mãn nhu cầu khai thác dữ liệu mức cao. Việc xây dựng các hệ chuyên gia,
các hệ thống dựa trên một cơ sở tri thức của các chuyên gia để có thể dự báo
được khuynh hướng phát triển của dữ liệu, thực hiện các phân tích trên các
dữ liệu của tổ chức. Mặc dù các công cụ, các hệ thống trên hoàn toàn có thể
thực hiện được phần lớn các công việc nêu trên, chúng vẫn yêu cầu một độ
chính xác, đầy đủ nhất định về mặt dữ liệu để có thể đưa ra được các câu
trả lời chính xác nhất.
Mạng neural có thể được huấn luyện và ánh xạ từ các dữ liệu vào tới các
dữ liệu ra mà không yêu cầu các dữ liệu đó phải đầy đủ. Các mạng neural có
khả năng biểu diễn các ánh xạ phi tuyến giữa đầu vào và đầu ra, chúng được
coi như là các “bộ xấp xỉ đa năng”. Phương pháp ứng dụng mạng neural trong
bài toán phân lớp dữ liệu là một trong những hướng tiếp cận mới và hiện đại
và là một công cụ rất mạnh để giải quyết các bài toán trong lĩnh vực này.
Qua bài thu hoạch này, tôi xin chân thành cảm ơn Giáo sư, Tiến sĩ khoa
học Hoàng Văn Kiếm, giảng viên môn học “Công nghệ tri thức và ứng dụng”
đã tận tình giúp đỡ, hướng dẫn và định hướng để hoàn thành chuyên đề

- Giai đoạn 3: Đầu thập niên 1980, những đóng góp lớn cho mạng neural trong
giai đoạn này phải kể đến Grossberg, Kohonen, Rumelhart và Hopfield. Trong đó
đóng góp lớn của Hopfield gồm hai mạng phản hồi: mạng rời rạc năm 1982 và
mạng liên tục năm 1984. Đặc biệt, ông đã dự kiến nhiều khả năng tính toán lớn của
mạng mà một neural không có khả năng đó. Cảm nhận của Hopfield đã được
Rumelhart, Hinton và Williams đề xuất thuật toán sai số truyền ngược nổi tiếng để
huấn luyện mạng neural nhiều lớp nhằm giải bài toán mà mạng khác không thực
hiện được. Nhiều ứng dụng mạnh mẽ của mạng neural ra đời cùng với các mạng
theo kiểu máy Boltzmann và mạng Neocognition của Fukushima.
- Giai đoạn 4: Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội nghị
toàn cầu chuyên ngành neural IJCNN (International Joint Conference on Neural
Networks). Rất nhiều công trình được nghiên cứu để ứng dụng mạng neural vào các
lĩnh vực như: kỹ thuật tính toán, điều khiển, tối ưu, y học, sinh học, thống kê, giao
thông, hoá học, Cho đến nay mạng neural đã khẳng định được vị trí ứng dụng của
mình trong nhiều ngành khác nhau.
1.2. Neural sinh học
Hệ thần kinh gồm hai lớp tế bào: neural (tế bào thần kinh) và glia (tế bào glia).
Neural là thành phần cơ bản của hệ thần kinh, chúng có chức năng xử lý thông tin.
Glia thực hiện chức năng hỗ trợ. Neural sinh học có nhiều loại, chúng khác nhau về
kích thước và khả năng thu phát tín hiệu. Tuy nhiên chúng có cấu trúc và nguyên lý
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 3

hoạt động chung như sau:
Mỗi neural sinh học gồm có 3 thành phần: Thân neural với nhân ở bên trong
(soma), một đầu dây thần kinh ra (axon) và một hệ thống phân nhánh hình cây
(dendrite) để nhận các thông tin vào. Trong thực tế có rất nhiều dây thần kinh vào
và chúng bao phủ một diện tích rất lớn (0,25mm
2
). Đầu dây thần kinh ra được rẽ

1.4. Các thành phần của một neural nhân tạo
Thành phần 1. Các nhân tố trọng số: Một neural thường nhận nhiều đầu vào
cùng lúc. Mỗi đầu vào có trọng số liên quan của riêng nó, trọng số này giúp cho đầu
vào có ảnh hưởng cần thiết lên hàm tổng của đơn vị xử lý. Những trọng số này có
chức năng giống như sức mạnh của các synapes khác nhau trong neural sinh học.
Trong cả hai trường hợp (nhân tạo và sinh học), một số đầu vào quan trọng hơn
những đầu vào khác do vậy chúng có ảnh hưởng lớn hơn tới đơn vị xử lý để rồi
chúng kết hợp lại để tạo ra sự phản ứng của neural (neural response).
Các trọng số là những hệ số thích nghi bên trong một mạng, chúng xác định
cường độ (sức mạnh hay sức ảnh hưởng) của tín hiệu vào lên nơron nhân tạo.
Những sức mạnh này có thể được điều chỉnh theo những tập đào tạo đa dạng khác
nhau và theo một kiến trúc mạng cụ thể hay là qua các luật học của nó.
Thành phần 2. Hàm tổng: Bước đầu tiên trong hoạt động của một thành phần
xử lý là tính toán tổng có trọng số của tất cả các đầu vào. Về mặt toán học, những
đầu vào và các trọng số tương ứng là những vector có thể được biểu diễn:
I = (i
1
,i
2
, , i
n
) và W = (w
1
, w
2
, …, w
n
). Tín hiệu vào tổng là tích vô hướng của
mỗi thành phần trong vector I với thành phần tương ứng trong vector W và cộng lại
tất cả các tích. Input

hai kiểu phản ứng đều quan trọng.
Giá trị ngưỡng, còn gọi hàm chuyển đổi, thường là phi tuyến. Các hàm tuyến
tính bị giới hạn vì đầu ra chỉ đơn giản là tỷ lệ của đầu vào.
Hàm chuyển đổi có thể chỉ đơn giản là cho biết hàm tổng là dương hay âm.
Mạng có thể cho ra đầu ra 0 và 1, 1 và -1, hay con số kết hợp nào đó.
Thành phần 4. Hàm ra: Mỗi thành phần xử lý cho phép một tín hiệu đầu ra
mà đầu ra này có thể đi tới hàng trăm neural khác. Điều này giống với neural sinh
học trong đó có rất nhiều đầu vào và chỉ có một hành động ra. Thường thì đầu ra
tương đương với kết quả của hàm chuyển đổi. Tuy nhiên, một số kiến trúc mạng
chỉnh sửa kết quả của hàm chuyển đổi để kết hợp với những thành phần xử lý lân
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 5

cận. Các neural cho phép cạnh tranh với những neural khác, khi này chúng hạn chế
các thành phần xử lý khác trừ các thành phần xử lý có sức mạnh rất lớn. Sự cạnh
tranh có thể xảy ra ở một hay là cả hai mức. Đầu tiên sự cạnh tranh quyết định xem
neural nhân tạo nào sẽ là tích cực hay là cung cấp một đầu ra. Tiếp theo các đầu ra
cạnh tranh giúp xác định thành phần xử lý nào sẽ tham gia và quá trình học hay là
quá trình thích nghi.
Thành phần 5. Giá trị truyền ngƣợc và hàm lỗi: Trong hầu hết các mạng
học sự khác biệt giữa đầu ra hiện tại và đầu ra mong muốn được tính toán, sự khác
biệt có thể được gọi là lỗi thô. Sau khi được tính toán, lỗi thô được chuyển đổi bởi
hàm lỗi để làm cho phù hợp với một kiến trúc mạng cụ thể nào đó. Các kiến trúc
mạng cơ sở nhất sử dụng lỗi này một cách trực tiếp nhưng một số khác bình phương
lỗi đó trong khi vẫn giữ lại dấu của nó, một số tính bậc ba của lỗi, một số khác lại
hiệu chỉnh lỗi thô đó để đạt được mục đích cụ thể nào đó. Lỗi của neural nhân tạo
thường được truyền vào hàm học của một thành phần xử lý khác. Số hạng lỗi này
đôi khi còn được gọi là lỗi hiện thời.
Lỗi hiện thời thường được truyền ngược về một tầng trước đó. Nhưng giá trị
này có thể là lỗi hiện thời hay là lỗi hiện thời đã được điều chỉnh theo một cách nào

: các trọng số tương ứng với các đầu vào
θ
j
: độ lệch (bias)
a
j
: đầu vào mạng (net-input)
z
j
: đầu ra của neural
g(x): hàm chuyển (hàm kích hoạt)
Trong một mạng neural có ba kiểu đơn vị:
1) Các đơn vị đầu vào (input units), nhận tín hiệu từ bên ngoài;
2) Các đơn vị đầu ra (output units), gửi dữ liệu ra bên ngoài;
3) Các đơn vị ẩn (hidden units), tín hiệu vào (input) và ra (output) của nó nằm
trong mạng.
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x
0
, x
1
, x
2
, … x
n
nhưng chỉ có
một đầu ra z
j
.
Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc đầu ra
của một đơn vị khác, hoặc là đầu ra của chính nó.


i


1

Trường hợp
w
ji

> 0, neural được coi là đang ở trong trạng thái kích thích.
Tương tự, nếu như
w
ji

< 0, neural ở trạng thái kiềm chế. Chúng ta gọi các đơn vị
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 7

với luật lan truyền như trên là các sigma units. Trong một vài trường hợp người ta
cũng có thể sử dụng các luật lan truyền phức tạp hơn. Một trong số đó là luật
sigma-pi, có dạng như sau:

Rất nhiều hàm kết hợp sử dụng một "độ lệch" hay "ngưỡng" để tính net input
tới đơn vị. Đối với một đơn vị đầu ra tuyến tính, thông thường,

j

được chọn là
hằng số và trong bài toán xấp xỉ đa thức

Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện bởi
thuật toán Lan truyền ngược (back-propagation) do dễ lấy đạo hàm, nên có thể
giảm đáng kể tính toán trong quá trình huấn luyện. Hàm này được ứng dụng cho
các chương trình ứng dụng mà các đầu ra mong muốn rơi vào khoảng [0,1].

Hình 1.3.3 Hàm Sigmoid

4) Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tansig))

Hàm này có các thuộc tính tương tự hàm sigmoid. Nó làm việc tốt đối với các
ứng dụng có đầu ra yêu cầu trong khoảng [-1,1].

Hình 1.3.4 Hàm sigmoid lưỡng cực
Các hàm chuyển của các đơn vị ẩn (hidden units) là cần thiết để biểu diễn sự
phi tuyến vào trong mạng. Lý do là hợp thành của các hàm đồng nhất là một hàm
đồng nhất. Mặc dù vậy nhưng nó mang tính chất phi tuyến (nghĩa là, khả năng biểu
diễn các hàm phi tuyến) làm cho các mạng nhiều tầng có khả năng rất tốt trong biểu
diễn các ánh xạ phi tuyến. Tuy nhiên, đối với luật học lan truyền ngược, hàm phải
khả vi (differentiable) và sẽ có ích nếu như hàm được gắn trong một khoảng nào
đó. Do vậy, hàm sigmoid là lựa chọn thông dụng nhất.
Đối với các đơn vị đầu ra (output units), các hàm chuyển cần được chọn sao
cho phù hợp với sự phân phối của các giá trị đích mong muốn. Chúng ta đã thấy
rằng đối với các giá trị ra trong khoảng [0,1], hàm sigmoid là có ích; đối với các
giá trị đích mong muốn là liên tục trong khoảng đó thì hàm này cũng vẫn có ích,
nó có thể cho ta các giá trị ra hay giá trị đích được căn trong một khoảng của hàm
kích hoạt đầu ra. Nhưng nếu các giá trị đích không được biết trước khoảng xác
định thì hàm hay được sử dụng nhất là hàm đồng nhất. Nếu giá trị mong muốn là
dương nhưng không biết cận trên thì nên sử dụng một hàm kích hoạt dạng mũ.
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 9









RSSS
R
R
www
www
www
,2,1,
,22,21,2
,12,11,1 Các chỉ số hàng của các phần tử trong ma trận W chỉ ra neural đí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í dụ, các chỉ số
trong w
32
nói rằng đây là trọng số của đầu vào thứ 2 nối với neural thứ 3.
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 10

+
1R
1
RS 
1S
n
a
1S
S
R
Input Layer of S Neurons
a = f(Wp+b)
Hình 1.5. Mạng mộ t tầ ng vẽ rú t gọ n
1S
p
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 11

Đầu ra của các tầng 1 và 2 là đầu vào của tầng 2 và tầng 3. Vì vậy tầng 2 có
thể được xem như mạng neural một tầng với đầu vào R= S
1
, nơron S= S
2
và ma trận
trọng số W = S
1
xS
2

ngưỡng khi đó đầu vào của hàm chuyển sẽ luôn là 0 khi đầu vào của mạng p là 0.
Đây là điều không mong muốn và chúng ta có thể loại bỏ vấn đề này bằng
việc sử dụng giá trị ngưỡng. Giá trị ngưỡng có thể bỏ đi, trong một số trường hợp
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 12
điều này được làm đơn giản là để giảm số lượng tham số của mạng. Chỉ với hai
biến, chúng ta có thể vẽ được đồ thị cho hệ mặt phẳng hai chiều. Ba hay nhiều biến
hơn sẽ khó hiển thị.

5. Các hình trạng mạng
Hình trạng của mạng được định nghĩa bởi: số lớp, số đơn vị trên mỗi lớp và sự
liên kết giữa các lớp như thế nào. Các mạng về tổng thể được chia thành hai loại
dựa trên cách thức liên kết các đơn vị.
5.1. Mạng truyền thẳng
- Mạng truyền thẳng một lớp: Là mô hình liên kết cơ bản và đơn giản nhất.
Các neural tổ chức lại với nhau tạo thành một lớp, tín hiệu được truyền theo một
hướng nhất định nào đó. Các đầu vào được nối với các neural theo trọng số khác
nhau, sau quá trình xử lý cho ra một chuỗi các tín hiệu ra. Nếu mạng là mô hình
LTU thì nó được gọi là mạng Perception, còn mạng neural theo mô hình LGU thì
được gọi là Adaline.
x
1
y
1

.
- Mạng truyền thẳng nhiều lớp: Với cấu trúc đơn giản như trên, khi giải
quyết các bài toán phức tạp mạng truyền thẳng một lớp sẽ gặp rất nhiều khó khăn.
Để khắc phục nhược điểm này, người ta đưa ra mạng truyền thẳng nhiều lớp. Đây là
mạng truyền thẳng gồm nhiều lớp kết hợp với nhau. Lớp nhận tín hiệu gọi là lớp
đầu vào (input layer), lớp đưa các tín hiệu ra gọi là lớp đầu ra (output layer), các
lớp ở giữa lớp vào và lớp ra gọi là lớp ẩn (hidden layers). Cấu trúc của mạng neural
truyền thẳng nhiều lớp được mô tả như sau:

Hình 1.9. Mạng neural truyền thẳng nhiều lớp
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 13

5.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.
 Mạng hồi quy một lớp có nối ngược.

Hình 1.10. Mạng hồi quy một lớp có nối ngược
 Mạng hồi quy nhiều lớp có nối ngược.

Hình 1.11. Mạng hồi quy nhiều lớp có nối ngược
6. Tiếp cận neural cho tính toán
6.1. Luật học
Các luật học đóng vai trò quan trọng trong việc xác định một mạng neural
nhân tạo. Một cách đơn giản về khái niệm học của mạng neural là cập nhật các
trọng số trên cơ sở các mẫu.
Chức năng của một mạng neural được quyết định bởi các nhân tố như: hình
trạng mạng (số lớp, số đơn vị trên mỗi tầng và cách mà các lớp được liên kết với

nghĩa là mạng đã đạt được độ chính xác thống kê mong muốn, nó sinh ra kết quả
đầu ra do người sử dụng đặt ra với một tập đầu vào cho trước. Khi không cần học
thêm nữa, các trọng số thường được duy trì cố định cho ứng dụng đó. Một số kiểu
mạng cho phép tiếp tục học sau khi đã được đưa vào hoạt động, nhưng ở tốc độ thấp
hơn nhiều. Điều này giúp cho mạng thích nghi dần dần với những điều kiện thay đổi
trong thế giới thực sau khi đã được đưa vào sử dụng.
Tập đào tạo thường phải khá lớn để đạt được tất cả các thông tin cần thiết, để
mạng có thể học được các đặc tính và những mối quan hệ quan trọng từ tập đó.
Không chỉ tập đào tạo phải lớn mà các phiên đào tạo phải thực hiện với những dữ
liệu đa dạng khác nhau. Nếu như mạng được đào tạo chỉ một ví dụ một lần thì có
thể tất cả các trọng số được điều chỉnh cố định một cách tỉ mỉ tương ứng với một
nhân tố điển hình trong ví dụ đó, nhưng nhân tố này có thể bị thay đổi rất nhiều
trong lần học tiếp theo (khi mạng học về một nhân tố khác, sử dụng một ví dụ
khác). Các nhân tố trước có thể bị quên đi khi mà học về một nhân tố mới. Do vậy
mà hệ thống phải học mọi thứ cùng lúc, tìm ra sự sắp đặt trọng số tốt nhất với tất cả
các nhân tố của dữ liệu. Ví dụ để dạy hệ thống nhận dạng các mẫu pixel của 10 số,
nếu như có 20 ví dụ cho mỗi số, toàn bộ các ví dụ về số 7 nên được đưa vào mạng ở
cùng thời điểm.
Dữ liệu được đưa vào mạng như thế nào (hay được mã hóa như thế nào) là
một yếu tố rất quan trọng để giúp cho mạng làm việc thành công. Mạng neural nhân
tạo chỉ giải quyết được dữ liệu vào dạng số. Vậy nên, dữ liệu thô từ môi trường bên
ngoài phải được chuyển đổi. Cần phải phân phạm vi cho dữ liệu hay là chuẩn hóa
nó cho phù hợp với kiểu mạng. Quá trình tiền xử lý này đã khá phổ biến với máy
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 15

tính truyền thống như thông qua camera, cảm biến (sensors), hay là máy đọc
(readable machines)…
Sau khi đã đào tạo có giám sát xong cần phải kiểm tra xem mạng có thể làm gì
với dữ liệu mà nó chưa hề gặp trước đó. Nếu như hệ thống cho một đầu ra không đủ

Hầu hết các hàm học đều có tốc độ học hay gọi là hằng học. Thường thì số
hạng này là dương và nằm trong khoảng (0, 1). Nếu như tốc độ lớn hơn 1 thì thuật
toán học điều chỉnh các trọng số của mạng quá dễ dàng và khi đó mạng làm việc
không ổn định. Các giá trị tốc độ học nhỏ sẽ không điều chỉnh lỗi hiện thời nhanh,
nhưng nếu chỉ cần thực hiện một số bước nhỏ để điều chỉnh lỗi thì không khó khăn
lắm để đạt được độ hội tụ tốt nhất.
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 16

6.3. Các luật học
Có rất nhiều luật học khác nhau được sử dụng. Hầu hết những luật này là dạng
biến đổi của luật học cổ điển nổi tiếng Hebb.
Luật học Hebb: Luật học đầu tiên và cũng là luật học được biết đến nhiều
nhất là luật học được giới thiệu bởi Donald Hebb. Ý tưởng chính là nếu như một
neural nhận một đầu vào từ một neural khác và nếu như cả hai đều hoạt động ở mức
độ tích cực cao (về toán học có nghĩa là có cùng dấu) thì trọng số giữa hai neural
nên được làm mạnh lên.
Luật học Hopfield: Giống như luật Hebb với điều khác biệt là chỉ rõ độ lớn
của việc làm mạnh hay làm yếu. Được phát biểu như sau: “Nếu như đầu ra mong
muốn và đầu vào đều tích cực (active) hay là đều không tích cực (inactive) thì tăng
trọng số kết nối một lượng bằng tốc độ học, ngược lại giảm trọng số đó một lượng
bằng tốc độ học.”
Luật học Delta: Luật này biến đổi luật học Hebb nhiều hơn nữa. Là một trong
những luật được sử dụng nhiều nhất. Luật này được dựa trên ý tưởng đơn giản là
tiếp tục hiệu chỉnh sức mạnh của các kết nối vào để giảm sự khác biệt (giá trị delta)
giữa giá trị đầu ra mong muốn và đầu ra thực sự của thành phần xử lý. Luật này
thay đổi trọng số sao cho nó giảm thiểu lỗi bình phương trung bình của mạng. Luật
này cũng còn được gọi là luật học Widrow-Hoff hay là luật học bình phương trung
bình tối thiểu.
Cách mà luật Delta hoạt động là lỗi delta trong tầng ra được biến đổi bởi đạo

tạo. Mô hình thường gặp là bắt đầu với một khu vực lân cận khá lớn và thu hẹp dần
trong quá trình đạo tạo mạng. Bởi vì thành phần chiến thắng được xác định là neural
có kết quả gần với mẫu vào nhất. Phương pháp này phù hợp với mô hình hóa dữ
liệu thống kê và thường được gọi là các ánh xạ tự sắp xếp hay kiến trúc tự sắp xếp.

7. Một số nhận xét về mạng neural
Mạng truyền thẳng và mạng hồi quy là hai mô hình tiêu biểu của mạng neural
nhân tạo, mỗi loại mạng có những ưu nhược điểm riêng. Nắm vững những ưu
nhược điểm của chúng sẽ giúp ta lựa chọn mô hình mạng thích hợp cho từng ứng
dụng sẽ thiết kế. Có một số nhận xét về ưu nhược điểm của từng mô hình mạng
như sau:
- Mạng truyền thẳng một lớp dễ phân tích nhưng không mô tả được mọi hàm.
Mạng nhiều lớp khắc phục được nhược điểm trên nhưng lại rất khó phân tích và gặp
khó khăn trong quá trình xây dựng mạng. Mặt khác, mạng truyền thẳng nhiều lớp
có thể gây sai số tích lũy qua các lớp.
- Mạng phản hồi một lớp (tiêu biểu là mạng Hopfield) có cấu trúc đơn giản vì
thế dễ phân tích, không chứa sai số tích lũy.
- Mạng neural truyền thẳng chỉ đơn thuần tính toán các tín hiệu ra dựa trên các
tín hiệu vào và trọng số liên kết giữa các neural đã xác định sẵn ở trong mạng. Do
đó chúng không có trạng thái bên trong nào khác ngoài trọng số W. Đối với mạng
hồi quy, trạng thái bên trong của mạng được lưu trữ tại các ngưỡng của neural. Nói
chung các mạng hồi quy không ổn định, mạng cần phải tính toán rất lâu, thậm chí
có thể lặp vô hạn trước khi đưa ra kết quả mong muốn. Quá trình học của mạng hồi
quy cũng phức tạp hơn mạng truyền thẳng rất nhiều. Tuy vậy các mạng hồi quy có
thể cho phép mô phỏng các hệ thống tương đối phức tạp trong thực tế.
: 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ện trạ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ó
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.
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 19

Trong hình 2.1, số neural ở lớp thứ nhất và lớp thứ hai tương ứng là S

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ố
neural đủ 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. Thiết kế cấu trúc mạng
Về lý thuyết có thể tồn tại một mạng mô phỏng được một bài toán với độ
chính xác bất kỳ. Nhưng để 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. Đối với
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 20

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ế. Đố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 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ử dụng càng ít các lớp ẩn càng tốt là:
- Phần lớn các thuật toán huấn luyện 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 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ố

Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 21

4. Thuật toán lan truyền ngƣợc (Back propagation)
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.
Cơ bản có hai dạng thuật toán để huấn luyện mạng: học có giám sát và học
không có 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ó giám sát. 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ó.
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 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.
4.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ẽ 2.1 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:
a
m+1

= f
m+1


1
, t
1
), (p
2
, t
2
), , (p
Q
, t
Q
)},
Trong đó p
k

là một đầu vào và t
k

là đầu ra mong muốn tương ứng, với k =
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 đó: x là biến được tạo thành bởi các trọng số và độ lệch, E là ký hiệu
kỳ vọng toán học.


ma trận Jacobi có thể viết lại như sau:

Trong đó:

Như vậy:
S
m
F
m


n
m

W
m1

T
s
m1
.
Đế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:
Ở đâ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:

là hằng số, do vậy mà độ cong của hàm theo một hướng cho trước là không đổi.
Trong khi đó, thuật toán lan truyền ngược áp dụng cho các mạng nhiều lớp sử
dụng các hàm chuyển phi tuyến sẽ có nhiều điểm cực trị địa phương và độ cong
của hàm lỗi có thể không cố định theo một hướng cho trước.
4.3 Tổng quát hóa
Trong phần lớn các trường hợp, mạng neural truyền thẳng nhiều lớp được
huấn luyện bởi một số cố định các mẫu xác định sự hoạt động đúng của mạng: {(p
1
,
t
1
), (p
2
, t
2
), , (p
Q
, t
Q
)}; trong đó, p
i

là các đầu vào, tương ứng với nó là các đầu ra
mong muốn t
i
. Tập huấn luyện này thông thường là thể hiện của số lớn nhất các
Mạng neural và ứng dụng vào bài toán phân lớp
Công nghệ tri thức và Ứng dụng Trang 25

lớp có thể trong các cặp. Một điều rất quan trọng là mạng neural có khả năng

cho mạng học một cách ngẫu nhiên.
Nhược điểm lớn nhất của thuật toán lan truyền ngược truyền thống đó là nó
bị ảnh hưởng rất lớn của gradient địa phương, không cần thiết phải đi đường
thẳng. Ví dụ, nếu như cực trị toàn cục nằm ở cuối vùng lõm và điểm hiện tại là
bên cạnh, phía trên điểm lõm, khi đó thuật toán lan truyền ngược sẽ thực hiện một
bước theo hướng mà gradient lớn nhất, vượt qua vùng lõm. Một khi nó phát hiện
các cạnh khác của vùng lõm, nó sẽ chạy theo đường ziczac tiến, lùi tạo ra các bước
nhỏ tới đích. Đường này sẽ lớn gấp hàng nghìn lần so với đường ngắn nhất, và do
đó thời gian học cũng sẽ lớn gấp rất nhiều lần. Thuật toán lan truyền ngược chuẩn


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status