Tải bản đầy đủ (.doc) (67 trang)

Nghiên cứu về mạng nơron và ứng dụng trong bài toán phân lớp dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.14 MB, 67 trang )

MỤC LỤC

MỤC LỤC..............................................................................................................................1
MỞ ĐẦU................................................................................................................................3
Chương 1: ..............................................................................................................................5
TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO...............................................................5
1.1. Giới thiệu mạng Nơron................................................................................................5
1.1.1. Lịch sử phát triển của mạng nơron.......................................................................5
1.1.2. Nơron sinh học.....................................................................................................6
1.1.3. Nơron nhân tạo.....................................................................................................7
1.1.4. Các thành phần của một nơron nhân tạo..............................................................8
1.2. Đơn vị xử lý...............................................................................................................11
1.3. Hàm xử lý..................................................................................................................12
1.3.1. Hàm kết hợp.......................................................................................................12
1.3.2. Hàm kích hoạt (hàm chuyển).............................................................................13
1.4. Các kiến trúc mạng....................................................................................................15
1.4.1. Mạng một tầng....................................................................................................15
1.4.2. Mạng đa tầng. ...................................................................................................17
1.5. Các hình trạng của mạng...........................................................................................20
1.5.1. Mạng truyền thẳng.............................................................................................20
1.5.2. Mạng hồi quy. ....................................................................................................22
1.6. Tiếp cận Nơron cho tính toán....................................................................................23
1.6.1. Luật học..............................................................................................................23
1.6.2 Tốc độ học..........................................................................................................26
1.6.3 Các luật học........................................................................................................27
1.7. Phạm vi ứng dụng của mạng nơron...........................................................................29
1.7.1. Những bài toán thích hợp...................................................................................29
1.7.2. Phân loại.............................................................................................................29
1.7.3. Mô hình hoá........................................................................................................30
1.7.4. Liên kết...............................................................................................................31
1.8. Các lĩnh vực ứng dụng của mạng nơron....................................................................31


1.9. Ưu nhược điểm của mạng nơron...............................................................................32
1.10. Nhận xét..................................................................................................................33
Chương 2: ............................................................................................................................33
1


MẠNG TRUYỀN THẲNG NHIỀU LỚP............................................................................33
2.1. Khái niệm..................................................................................................................33
2.2. Khả năng thể hiện......................................................................................................35
2.3. Vấn đề thiết kế cấu trúc mạng...................................................................................36
2.3.1. Số lớp ẩn.............................................................................................................36
2.3.2. Số đơn vị trong lớp ẩn........................................................................................37
2.4. Thuật toán lan truyền ngược (Back-Propagation).....................................................38
2.4.1. Mô tả thuật toán..................................................................................................39
2.4.2. Sự hội tụ.............................................................................................................43
2.4.3. Sự tổng quát hóa.................................................................................................43
Chương 3: ............................................................................................................................47
PHÂN LỚP DỮ LIỆU BẰNG MẠNG NƠRON................................................................47
3.1. Giới Thiệu.................................................................................................................47
3.2. Chuẩn bị dữ liệu........................................................................................................49
3.3. Phân lớp dữ liệu bằng Spice-MLP............................................................................52
3.4. Đào tạo mạng.............................................................................................................55
3.4.1. Chia dữ liệu........................................................................................................55
3.4.2. Chọn dữ liệu học và các tham số........................................................................55
3.4.3. Đào tạo mạng (training).....................................................................................56
3.4.4 Kiểm tra đồ thị lỗi...............................................................................................58
3.4.5. Kiểm tra đồ thị trọng số và đầu vào trung bình của một nơron..........................60
3.4.6. Xem đồ thị dữ liệu và đồ thị đầu ra của mạng...................................................61
3.5. Kết luận.....................................................................................................................64
3.6. Một số nhận xét.........................................................................................................64

KẾT LUẬN..........................................................................................................................65
TÀI LIỆU THAM KHẢO....................................................................................................66

2


MỞ ĐẦU
Chúng ta đều biết rằng, bộ não con người là một sản phẩm hoàn hảo của tạo
hóa, nó có khả năng tư duy và sáng tạo. Hiện nay, con người đang nghiên cứu
phương thức hoạt động của bộ não, sau đó áp dụng cho những công nghệ hiện đại.
Để tiếp cận khả năng học, người ta đưa ra mô hình mạng nơron gồm các nơron liên
kết với nhau thành mạng phỏng theo cấu trúc mạng thần kinh của con người.
Mỗi nơron riêng lẻ có khả năng xử lý thông tin yếu, nhưng khi chúng được
ghép với nhau thành mạng, thì khả năng xử lý thông tin sẽ mạnh hơn rất nhiều. Mỗi
cấu trúc mạng đều có một ưu điểm đặc thù, chúng cho ta một công cụ mạnh trong
các lĩnh vực kỹ thuật điều khiển và kỹ thuật thông tin.
Một mạng nơron nhân tạo là tập hợp một số lớn các phần tử xử lý (các nút
hay các khối), thường được tổ chức song song và được cấu hình theo kiến trúc đệ
quy. Cách ứng sử trên mạng nơron nhân tạo giống như bộ não con người, nó chứng
tỏ khả năng học, nhớ lại, và tổng quát quát hóa từ dữ liệu huấn luyện.
Mạng nơron nhân tạo là công cụ tốt trong việc giải quyết các bài toán như:
hợp và phân lớp đối tượng, xấp xỉ hàm, tối ưu hóa, định lượng vector, phân cụm dữ
liệu,... Nó thay thế hiệu quả các công cụ tính toán truyền thống để giải quyết các bài
toán này.
Phân lớp dữ liệu là một lĩnh vực đóng vai trò quan trọng trong khoa học kỹ
thuật. Trong hầu hết các vấn đề kỹ thuật ngày nay, ta đều phải xác định, phân lớp
được các mô hình và đối tượng liên quan, để từ đó tìm ra giải pháp. Phân lớp mô
hình là bài toán rất quan trong trong lý thuyết hệ thống. Trong quá trình Xây dựng
mô hình hệ thống trên phương diện lý thuyết, người ta thường không khảo sát được
mọi ảnh hưởng của môi trường đến tính động học của hệ thống, cũng như những tác

động qua lại bên trong hệ thống một cách chính xác tuyệt đối. Rất nhiều yếu tố đã
bị bỏ qua, hoặc chỉ được xem xét đến như là một tác động ngẫu nhiên. Bởi vậy, nếu
nói một cách chặt chẽ thì những hiểu biết lý thuyết ban đầu về hệ thống, mới chỉ có
thể giúp ta khoanh được lớp các mô hình thích hợp. Để có thể có được một mô hình
3


cụ thể có chất lượng phù hợp với bài cụ thể toán đặt ra trong lớp các mô hình thích
hợp đó, thì phải sử dụng phương pháp phân lớp.
Để giải quyết các bài toán phân lớp, người ta đã đưa vào các cách tiếp cận
khác nhau, mỗi phương pháp tiếp cận trong những bài toán cụ thể đều có những ưu,
nhược điểm riêng. Phương pháp ứng dụng mạng nơron trong phân lớp dữ liệu là
một cách tiếp cận mới và hiện đại. Nó có thể là công cụ rất mạnh để giải quyết các
bài toán trong lĩnh vực này.
Từ việc xác định những nội dung như trên nên em chọn đồ án “Nghiên cứu
về mạng nơron và ứng dụng trong bài toán phân lớp dữ liệu ”. Đồ án bao gồm
những nội dung chính sau:
 Chương 1 : Tồng quan về mạng nơron nhân tạo.
 Chương 2 : Mạng truyền thẳng nhiều lớp.
 Chương 3 : Phân lớp dữ liệu bằng mạng nơron.
 Kết luận.
Mặc dù đã hết sức nỗ lực, song do kinh nghiệm và kh ả nă n g nghiên cứu
khoa học còn hạn chế nên không thể tránh khỏi những thiếu sót. Em rất mong nhận
được sự góp ý của các thầy cô và bạn bè để hiểu biết của mình ngày một hoàn
thiện hơn.
Em xin cám ơn các thầy cô trong Trường Đại Học Công Nghệ Thông Tin và
Truyền Thông đã truyền đạt những kiến thức quý báu cho chúng em trong suốt
quá trình học tập. Đặc biệt, em xin bày tỏ lòng cảm ơn chân thành và sâu sắc đến cô
giáo ThS. Nguyễn Thị Tuyển, người đã tận tình hướng dẫn và giúp đỡ em trong
quá trình làm đồ án tốt nghiệp. Xin cảm ơn tất cả bạn bè đã và đang động viên, giúp

đỡ tôi trong quá trình học tập và hoàn thành tốt đồ án này.
Thái Nguyên, tháng 6 năm 2011

4


Chương 1:

TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO
1.1. Giới thiệu mạng Nơron.
1.1.1. Lịch sử phát triển của mạng nơron.
Mạng nơron nhân tạo được xây dựng từ những năm 1940 nhằm mô
phỏng một số chức năng của bộ não người. Dựa trên quan điểm cho rằng bộ não
người là bộ điều khiển. Mạng nơron nhân tạo được thiết kế tương tự như nơron
sinh học sẽ có khả năng giải quyết hàng loạt các bài toán như tính toán tối ưu, điều
khiển, công nghệ robot…
Quá trình nghiên cứu và phát triển nơron nhân tạo có thể chia thành 4 giai
đoạn như sau:
 Giai đoạn 1: Có thể tính từ nghiên cứu của William (1890) về tâm lý học
với sự liên kết các nơron thần kinh. Năm 1940 Mc Culloch và Pitts đã cho biết
nơron có thể mô hình hoá như thiết bị ngưỡng (Giới hạn) để thực hiện các phép tính
logic và mô hình mạng nơron của Mc Culloch – Pitts cùng với giải thuật huấn
luyện mạng của Hebb ra đời năm 1943.
 Giai đoạn 2: Vào khoảng gần những năm 1960, một số mô hình nơron hoàn
thiện hơn đã được đưa ra như: Mô hình Perceptron của Rosenblatt (1958),
Adalile của Widrow (1962). Trong đó mô hình Perceptron rất được quan tâm vì
nguyên lý đơn giản, nhưng nó cũng có hạn chế vì như Marvin Minsky và
Seymour papert của MIT ( Massachurehs Insritute of Technology) đã chứng minh
nó không dùng được cho các hàm logic phức (1969). Còn Adaline là mô hình
tuyến tính, tự chỉnh, được dùng rộng rãi trong điều khiển thích nghi, tách nhiễu và

phát triển cho đến nay.
 Giai đoạn 3: Vào khoảng đầu thập niên 80. Những đóng góp lớn cho mạng
nơron 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
5


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 nơron 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 nơron 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
nơron

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 nơron IJCNN (International Joit Conference on
Neural Networks). Rất nhiều công trình được nghiên cứu để ứng dụng mạng
nơron vào các lĩnh vực như: Kỹ thuật tính, điều khiển, bài toán tối ưu, y học, sinh
học, thống kê, giao thông, hoá học,...Cho đến nay mạng nơron đã tìm và khẳng
định được vị trí của mình trong rất nhiều ứng dụng khác nhau.

1.1.2. Nơron sinh học.
Hệ thần kinh gồm hai lớp tế bào: Nơron (tế bào thần kinh) và glia (tế bào
glia). Nơron 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ợ. Vì vậy trước khi nghiên cứu về nơron
nhân tạo chúng ta sẽ trình bày khái quát về cấu tạo và hoạt động của nơron sinh
học.
Nơron 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ý hoạt động
chung như sau:
Mỗi nơron sinh học gồm có 3 thành phần: Thân nơron 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
2
vào và chúng bao phủ một diện tích rất lớn (0,25mm ). Đầu dây thần kinh ra
được rẽ nhánh nhằm chuyển giao tín hiệu từ thân nơron tới nơron khác. Các nhánh
6


của đầu dây thần kinh được nối với các khớp thần kinh (synapse). Các khớp
thần kinh này được nối với thần kinh vào của các nơron khác. Các nơron có thể
sửa đổi tín hiệu tại các khớp.
Hình ảnh đơn giản của một nơron thể hiện trong hình 1.1.

Hình 1.1. Mô hình nơron sinh học.

Hoạt động của nơron sinh học có thể được mô tả như sau:
Mỗi nơron nhận tín hiệu vào từ các tế bào thần kinh khác. Chúng tích hợp
các tín hiệu vào, khi tổng tín hiệu vượt quá một ngưỡng nào đó chúng tạo tín hiệu
ra và gửi tín hiệu này tới các nơron khác thông qua dây thần kinh.
Các nơron liên kết với nhau thành mạng. Mức độ bền vững của các liên
kết này xác định một hệ số gọi là trọng số liên kết.

1.1.3. Nơron nhân tạo.
Mô phỏng nơron sinh học, ta có nơron nhân tạo. Mỗi nơron có rất nhiều dây
thần kinh vào, nghĩa là mỗi nơron có thể tiếp nhận đồng thời nhiều dữ liệu.
Mạng nơron nhân tạo (Artificial Neural Network) là một cấu trúc mạng
được hình thành nên bởi một số lượng lớn các nơron nhân tạo liên kết với
nhau. Mỗi nơron có các đặc tính đầu vào, đầu ra và thực hiện một chức năng tính
toán cục bộ.
7


Với việc giả lập các hệ thống sinh học, các cấu trúc tính toán mạng
nơron có thể giải quyết được lớp các bài toán nhất định như: bài toán lập lịch, bài
toán tìm kiếm, bài toán nhận dạng mẫu, bài toán xếp loại,... Mạng nơron còn giải
quyết được lớp các bài toán sử dụng dữ liệu không đầy đủ, xung đột mờ hoặc xác
suất. Những bài toán này được đặc trưng bởi một số hoặc tất cả các tính chất sau:
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; không gian nghiệm có thể
rỗng, có nghiệm duy nhất hoặc có một số nghiệm bình đẳng như nhau. Ngoài
ra, mạng nơron nhân tạo còn thích hợp để tìm nghiệm của những bài toán đòi hỏi
đầu vào là những cảm nhận bởi con người như: Tiếng nói, nhìn và nhận dạng,...
Tuy nhiên việc ánh xạ từ một bài toán bất kỳ sang một giải pháp mạng nơron lại
là một việc không đơn giản.


1.1.4. Các thành phần của một nơron nhân tạo.
Phần này mô tả một số thành phần cơ bản của một nơron nhân tạo. Những
thành phần này là giống nhau cho dù nơron đó dùng trong tầng vào, tầng ra hay là ở
trong tầng ẩn.
Thành phần 1. Các nhân tố trọng số: Một nơron 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ý (thành phần 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 nơron 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
thành phần xử lý để rồi chúng kết hợp lại để tạo ra sự phản ứng của nơron (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 là sức ảnh hưởng ) của tín hiệu vào lên nơron nhân tạo.

8


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 véc tơ có thể được biểu diễn :
I = (ii,i2, .., in) và W = (w1, w2, …, wn). Tín hiệu vào tổng là tích vô hướng của mỗi
thành phần trong véc tơ I với thành phần tương ứng trong véc tơ W và cộng lại tất
cả các tích. Input1 = i1.w1, input2 = i2.w2… Kết quả cuối cùng được cộng lại:
input1 + input2 + … + inputn. Kết quả là một số duy nhất, không phải là một véc tơ.
Hàm tổng có thể phức tạp hơn nhiều so với mô tả ở trên. Đầu vào và các hệ
số trọng số có thể được kết hợp theo nhiều cách khác nhau trước khi được đưa vào
hàm chuyển đổi. Bên cạnh việc tính tổng các tích đơn giản, hàm tổng có thể chọn

max, min, tích … nhờ một số thuật toán chuẩn tắc. Thuật toán cụ thể để kết hợp các
đầu vào của nơron được xác định bởi vệc chọn kiến trúc mạng và mô hình mạng.
Thành phần 3. Hàm chuyển đổi: Kết quả của hàm tổng, hầu như luôn là
tổng có trọng số, được chuyển đổi thành một đầu ra có ý nghĩa nhờ một quá trình xử
lý có thuật toán gọi là hàm chuyển đổi. Trong hàm chuyển đổi tổng có thể được so
sánh với một ngưỡng nào đó để quyết định đầu ra của mạng. Nếu như tổng lớn hơn
giá trị ngưỡng thì thành phần xử lý đưa ra đầu ra một tín hiệu. Nếu như tổng của
đầu vào và các tích có trọng số nhỏ hơn ngưỡng thì không có tín hiệu ở đầu ra. Cả
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 nơ ron khác. Điều này giống với nơron 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

9


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
cận. Các nơron cho phép cạnh tranh với những nơron 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
nơron 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 nơron
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ị
truyền ngược 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 đó (thường sử dụng đạo hàm của hàm chuyển đổi), hay là một đầu ra
mong muốn nào đó, điều này phụ thuộc vào kiểu mạng nơron được sử dụng.
Thường thì giá trị truyền ngược này sau khi được điều chỉnh bởi hàm học được
nhân với mỗi trọng số kết nối vào để thay đổi chúng trước khi bước vào chu kỳ học
mới.
Thành phần 6. Hàm học: Mục đích của hàm học là để thay đổi giá trị của
biến trọng số kết nối ở các đầu vào của mỗi thành phần xử lý theo một thuật toán
nào đó. Quá trình thay đổi các trọng số của các kết nối đầu nào nhằm thu được một
số kết quả mong muốn cũng có thể được gọi là hàm thích nghi, hay còn gọi là chế

10


độ học. Có hai kiểu học chính là học có giám sát và học không có giám sát. Học có
giám sát đòi hỏi có một “giáo viên”. Người “giáo viên” này có thể là một tập dữ
liệu đào tạo hay là một “người quan sát,” “người quan sát” này đánh giá kết quả
hoạt động của mạng. Trong khi không có “giáo viên” bên ngoài nào, hệ thống sẽ
phải tự sắp xếp nhờ một tiêu chuẩn bên trọng được thiết kế sẵn trong mạng.

1.2. Đơn vị xử lý.
Một đơn vị xử lý (Hình 1.2), cũng được gọi là một nơron hay một nút

(node), thực hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn vị
phía trước hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ được
lan truyền sang các đơn vị khác.

Hình 1.2. Đơn vị xử lý (Processing unit).
Trong đó:
Xj : các đầu vào
wji : các trọng số tương ứng với các đầu vào
θj : độ lệch (bias)
aj : đầu vào mạng (net-input)
zj : đầu ra của nơron
g(x): hàm chuyển (hàm kích hoạt).

11


Trong một mạng nơron 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: x0, x1, x2, … xn, nhưng chỉ có
một đầu ra zj. 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ó.

1.3. Hàm xử lý.
1.3.1. Hàm kết hợp.
Mỗi một đơn vị trong một mạng kết hợp các giá trị đưa vào nó thông qua các
liên kết với các đơn vị khác, sinh ra một giá trị gọi là net input. Hàm thực hiện
nhiệm vụ này gọi là hàm kết hợp, được định nghĩa bởi một luật lan truyền cụ thể.

Trong phần lớn các mạng nơron, giả sử mỗi một đơn vị cung cấp một bộ cộng như
là đầu vào cho đơn vị mà nó có liên kết. Tổng đầu vào đơn vị j đơn giản chỉ là
tổng trọng số của các đầu ra riêng lẻ từ các đơn vị kết nối cộng thêm ngưỡng hay
độ lệch (bias) θj :

Trường hợp wji > 0, nơron được coi là đang ở trong trạng thái kích thích.
Tương tự, nếu như wji < 0, nơron ở trạng thái kiềm chế. Chúng ta gọi các đơn vị
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:

12


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 θj = 1.

1.3.2. Hàm kích hoạt (hàm chuyển).
Phần lớn các đơn vị trong mạng nơron chuyển net input bằng cách sử
dụng một hàm vô hướng gọi là hàm kích hoạt, kết quả của hàm này là một giá
trị gọi là mức độ kích hoạt của đơn vị. Loại trừ khả năng đơn vị đó thuộc lớp ra,
giá trị kích hoạt được đưa vào một hay nhiều đơn vị khác. Các hàm kích hoạt
thường bị ép vào một khoảng giá trị xác định, do đó thường được gọi là các hàm
bẹp (squashing). Các hàm kích hoạt hay được sử dụng là:
1) Hàm đồng nhất (Linear function, Identity function ).
g(x) = x
Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này. Đôi khi một
hằng số được nhân với net-input để tạo ra một hàm đồng nhất.


Hình 1.3.1. Hàm đồng nhất (Identity function).
2) Hàm bước nhị phân (Binary step function, Hard limit function).
Hàm này cũng được biết đến với tên "Hàm ngưỡng". Đầu ra của hàm
này được giới hạn vào một trong hai giá trị:

13


Dạng hàm này được sử dụng trong các mạng chỉ có một lớp. Trong hình
vẽ sau, θ được chọn bằng 1.

Hình 1.3.2 Hàm bước nhị phân (Binary step function).
3) Hàm sigmoid (Sigmoid function (logsig)).

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
(trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì nó dễ lấy
đạo hàm, do đó 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].

14


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 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ũ.

1.4. Các kiến trúc mạng.
1.4.1. Mạng một tầng.
Mạng một tầng với S nơron được minh họa trong hình 1.4. Chú ý rằng với
mỗi một đầu vào trọng 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.

15


Hình 1.4. Cấu trúc mạng nơron 1 tầ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.
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 b i, một bộ cộng, một hàm chuyển f và
một đầu ra ai .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).
Tất cả các nơron trong cùng một tầng không có hàm chuyển giống nhau. Có
thể định nghĩa các nơron trong một tầng có hàm chuyển khác 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:

w1,1 w1, 2 ...w1, R 


w
w
...
w
2
,
1
2
,
2
2
,
R


W=
...................... 



wS ,1 wS , 2 ...wS , R 

16


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 w32 nói rằng đây là trọng số của đầu vào thứ 2 nối với nơ-ron thứ 3.

Input

Layer of S Neurons

p
R ×1

a

W
S×R

1

+

S ×1

S ×1


f

b
S

S ×1

R

n

a = f(Wp+b)

Hình 1.5 mạng một tầng vẽ rút gọn.
Trong hình trên, những kí hiệu ở dưới các biến cho biết các thông số về tầng
này, p là một vector có độ dài R, W là ma trận S × R, a và b là những vector có độ
dài S. Như đã định nghĩa trước rồi, một tầng bao gồm ma trận trọng số, bộ cộng và
các phép toán nhân, vector ngưỡng b, hàm chuyển và vector đầu ra.

1.4.2. Mạng đa tầng.
Mỗi tầng có ma trận trọng số W của riêng nó, vector b, vector đầu vào n, và
một vector đầu ra. Khi đó cần phải khai báo thêm vài kí hiệu để phân biệt giữa các
tầng này. Ta sẽ sử dụng cách viết lên trên đầu để nhận biết kí hiệu đó thuộc tầng
nào. Chính xác là chúng ta gắn thêm chỉ số của tầng trên đầu mỗi biến. Như vậy, ma

17


trận trọng số của tầng thứ 2 được viết như này W 2 . Cách kí hiệu này được dùng
trong mạng nơ-ron 3 tầng như hình 1.6:


Hình 1.6. Cấu trúc mạng nơron 3 lớp.
Như đã thấy, có R đầu vào, S 1 nơron ở tầng thứ nhất, S 2 nơron ở tầng thứ
hai, S 3 nơron ở tầng thứ ba, v.v.. Như đã chú ý, những tầng khác nhau có thể có số
lượng nơron khác nhau.
Đầ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 nơron 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 × S 2 . Đầu vào của tầng 2 là a 1 , và đầu ra là a2.
Đầu ra của một tầng chính là đầu ra của mạng thì ta gọi đó là tầng ra. Các
tầng còn lại gọi là tầng ẩn. Mạng nơron như ở trên có một tầng ra (tầng 3) và hai
tầng ẩn (tầng 1 và tầng 2).
Một mạng có ba tầng giống hệt nhau như trên cũng có thể được vẽ gọn lại
như hình 1.7 :

18


Hình 1.7 Mạng nơ ron 3 tầng, vẽ rút gọn.
Mạng đa tầng có ứng dụng mạnh hơn mạng một tầng. Ví dụ, một mạng hai
tầng có tầng thứ nhất là tầng xichma và tầng thứ hai là tầng tuyến tính có thể được
huấn luyện để xấp xỉ mọi hàm toán học tùy ý khá chuẩn. Mạng một tầng không làm
được điều này.
Nếu có bốn yếu tố bên ngoài được dùng như các kích thích đầu vào, thì
mạng của ta sẽ có bốn đầu vào. Tương tự như vậy nếu mạng có bảy đầu ra thì phải
có bảy nơron ở tầng ra. Cuối cùng, các đặc điểm mong muốn có được ở tín hiệu đầu
ra cũng giúp ta chọn lựa hàm chuyển hợp lý hơn cho tầng ra. Giả sử một đầu ra là
một trong hai giá trị -1 hoặc 1, thì khi đó hàm chuyển giới hạn ngặt đối xứng sẽ
được lựa chọn. Như vậy, kiến trúc mạng một tầng hầu như được xác định hoàn toàn
bởi các yếu tố kỹ thuật, bao gồm số đầu vào, đầu ra, và các thuộc tính của tín hiệu
ra.

Khi mạng có nhiều hơn hai tầng. Các yếu tố bên ngoài không cho biết số
lượng các nơron yêu cầu bao nhiêu ở các tầng ẩn. Thực tế, có một vài vấn đề cho
việc dự đoán số lượng nơron tối ưu ở tầng ẩn. Vấn đề này là một lĩnh vực nghiên
cứu.
Về số lượng tầng trong mạng thì hầu hết những mạng nơron thực tế chỉ có
hai hay ba tầng. Bốn tầng hoặc nhiều hơn rất ít khi được sử dụng.

19


Một mạng có thể chọn lựa việc các nơron có hay không có các giá trị
ngưỡng. Giá trị ngưỡng là một biến phụ cho mạng.
Lưu ý, có một nơron không có giá trị ngưỡng khi đó đầu vào của hàm
chuyển(net input) sẽ luôn 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. Ảnh hưởng của giá trị ngưỡng đến kết quả như thế nào
chúng ta sẽ phải nghiên cứu sâu hơn. Giá trị ngưỡng có thể bỏ đi, trong một số
trường hợp đ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ị.

 Các đặc trưng của mạng nơron.
Mạng nơron là một cấu trúc xử lý song song, thông tin phân tán và có các
đặc trưng nổi bật sau:
 Là mô hình toán học dựa trên bản chất của nơron sinh học.
 Bao gồm một số lượng lớn các nơron liên kết với nhau.
 Mạng nơron có khả năng học, khái quát hoá tập dữ liệu học thông qua
việc gán và hiệu chỉnh các trọng số liên kết.
 Tổ chức theo kiểu tập hợp mang lại cho mạng nơron khả năng tính toán
rất lớn, trong đó không có nơron nào mang thông tin riêng biệt.


1.5. Các hình trạng của 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ị.
Mạng nơron nhân tạo có một số mô hình thông dụng sau:

1.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 nơron tổ chức lại với nhau tạo thành một lớp, tín hiệu được truyền theo

20


một hướng nhất định nào đó. Các đầu vào được nối với các nơron 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 nơron theo mô hình LGU
thì được gọi là Adaline.

Hình 1.8. Mô hình mạng truyền thẳng một lớp.
T

Với mỗi giá trị đầu vào x =[x1, x2, ..., xm] qua quá trình xử lí của mạng sẽ
thu được một bộ đầu ra tương ứng y =[y1, y2,..., yn]

T

 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 nơron truyền thẳng nhiều lớp được mô tả trong hình 1.9.

21


Hình 1.9. Mạng nơron truyền thẳng nhiều lớp.

1.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 nơron 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.

22


1.6. Tiếp cận Nơron cho tính toán.
1.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
nơron nhân tạo. Một cách đơn giản về khái niệm học của mạng nơron 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 nơron đượ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
nhau) và các trọng số của các liên kết bên trong mạng. Hình trạng của mạng thường
là cố định, và các trọng số được quyết định bởi một thuật toán huấn luyện (training
algorithm). Tiến trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ
giữa đầu vào và đích mong muốn được gọi là học (learning) hay huấn luyện
(training). Rất nhiều thuật toán học đã được phát minh để tìm ra tập trọng số tối ưu
làm giải pháp cho các bài toán. Các thuật toán đó có thể chia làm hai nhóm chính:
Học có giám sát (Supervised learning) và Học không có giám sát (Unsupervised
Learning).
a. Học có giám sát.
Đây là phương pháp phổ biến nhất để đào tạo một mạng nơron nhân tạo
nhằm tìm ra lời giải phù hợp cho bài toán. Theo cơ chế này, đầu ra thực sự của
mạng được so sánh với đầu ra mong muốn. Các trọng số thường được gán ngẫu
nhiên trước khi bắt đầu đào tạo sau đó được hiệu chỉnh bởi mạng đó để trong lần lặp
tiếp theo, hay chu kỳ tiếp theo, sẽ tạo ra một kết quả gần với kết quả mong muốn
hơn. Các phương pháp học nhìn chung đều cố gắng giảm thiểu các lỗi hiện thời của
các thành phần xử lý. Để từ đó giảm lỗi toàn cục cho mạng, việc giảm lỗi toàn cục
này diễn ra liên tục nhằm thay đổi các trọng số vào cho tới khi đạt được độ chính
xác chấp nhận được.
Với học có giám sát, mạng nơron nhân tạo phải được đào tạo trước khi có thể
sử dụng. Việc đào tạo bao gồm đưa dữ liệu đầu vào và đầu ra vào mạng. Dữ liệu
này thường được gọi là tập đào tạo. Có nghĩa là với mỗi tập đào vào được cung cấp

23


cho hệ thống có một tập đầu ra mong muốn tương ứng. Trong hầu hết các ứng
dụng, dữ liệu thực sự thu thập từ thế giới thực được sử dụng. Giai đoạn đào tạo này
thường tốn khá nhiều thời gian.
Trong các hệ thống bản mẫu, với sức mạnh xử lý không đáp ứng yêu cầu,

việc học có thể diễn ra trong nhiều tuần. Việc đào tạo được coi là hoàn thành khi mà
mạng nơ ron đạt đến mức độ chính xác do người sử dụng đề ra. Mức độ này có ý
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.
Dữ liệu vào ra đượ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
nơron 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 tính truyền thống như thông qua camera, cảm biến (sensors), hay là máy có
thể đọc (readable machines)…

24


X

Đầu vào

Y
Y
Đầu
Đầu ra
ra thực
thực
tế
tế

Mạng nơron

Tính
sai số

Đầu
Đầu ra
ra
mong
mong muốn
muốn

Hình 1.12. Học có giám sát.
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
đủ tốt với tập dữ liệu kiểm tra, thì quá trình đào tạo chưa thể kết thúc được. Thực sự
việc kiểm tra này là rất quan trọng nhằm đảm bảo là mạng không chỉ đơn giản nhớ
một tập dữ liệu cho trước mà đã học được những mẫu chung, phát hiện các đặc tính
xuất hiện bên trong ứng dụng.

b. Học không có giám sát.
Với cách học không có giám sát, không có phản hồi từ môi trường để chỉ ra
rằng đầu ra của mạng là đúng. Mạng sẽ phải khám phá các đặc trưng, các điều
chỉnh, các mối tương quan, hay các lớp trong dữ liệu vào một cách tự động. Trong
thực tế, đối với phần lớn các biến thể của học không có giám sát, các đích trùng với
đầu vào. Nói một cách khác, học không có giám sát luôn thực hiện một công việc
tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào.

X

Đầu vào

Mạng nơron

Y
Đầu ra thực
tế

25


×