Các hình minh họa, các phương trình toán học và các văn bản thảo luận về hình minh họa và phương trình toán học sẽ sử dụng theo cách ký hiệu: Các đại lượng vô hướng – các chữ nghiêng nh
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐÀO TẠO SAU ĐẠI HỌC
BÁO CÁO CHUYÊN ĐỀ
Đề tài: Mô hình nơ-ron và các kiến trúc mạng
Trang 2
“Neural Network Design”
Martin T Hagan, Howard B Demuth, Mark Beale Thomson Learning, 1996
Chapter 2: Neuron Model and Network
Chương này không bao gồm tất cả các kiến trúc sẽ được sử dụng trong cuốn sách này, nhưng sẽ trình bày các khối kiến trúc cơ bản Các kiến trúc phức tạp hơn
sẽ được giới thiệu và thảo luận ở các chương sau Tuy vậy, có khá nhiều chi tiết được trình bày ở đây Xin lưu ý rằng độc giả không cần thiết phải nhớ tất cả các chi tiết cụ thể trong chương này trong lần đọc đầu tiên Thay vào đó, coi đó như là một
ví dụ giúp bạn khởi đầu và một nguồn tài nguyên mà bạn có thể xem lại
Trang 3Lý thuyết và Các ví dụ
Mạng nơ-ron là khái niệm mới mẻ, đến nỗi mà các ký hiệu chuẩn và các kiến trúc đặc trưng cho chúng chưa được thiết lập vững chắc Ngoài ra, các tờ báo và những cuốn sách về mạng nơ-ron có nguồn gốc từ nhiều lĩnh vực đa dạng, bao gồm ngành kỹ thuật, vật lý, tâm lý học và các ngành toán học, cùng nhiều tác giả có xu hướng sử dụng vốn từ vựng riêng cho lĩnh vực đặc biệt của họ Điều này dẫn tới hậu quả là nhiều sách báo trong lĩnh vực này khó đọc, và các khái niệm được đưa ra làm phức tạp hơn bản chất của chúng Đây là một sự hổ thẹn, nó đã kìm hãm sự ra đời của những ý tưởng mới
Trong cuốn sách này chúng tôi đã cố gắng sử dụng các ký hiệu chuẩn dễ hiểu
có thể, để làm sạch và giữ lại các nội dung đơn giản giảm đi những sự khó khăn Đặc biệt chúng tôi đã cố xác định các cách thức thực hiện và sử dụng chúng nhất quán
Các hình minh họa, các phương trình toán học và các văn bản thảo luận về hình minh họa và phương trình toán học sẽ sử dụng theo cách ký hiệu:
Các đại lượng vô hướng – các chữ nghiêng nhỏ: a,b,c
Vectors – các chữ nhỏ đậm không nghiêng: a,b,c Các ma trận – các chữ hoa nét đậm không nghiêng: A,B,C
Thêm vào đó kí hiệu liên quan tới các kiến trúc mạng sẽ được giới thiệu khi bạn đọc chương này Một danh sách đầy đủ các ký hiệu mà chúng tôi sử dụng xuyên suốt cuốn sách được cho ở phụ lục B, do đó bạn có thể xem ở đó nếu bạn băn khoăn
Trang 4I Mô hình Nơ-ron
1 Nơ-ron Đơn Đầu Vào.
Một nơ-ron đơn đầu vào được minh họa ở hình 2.1 Đại lượng đầu vào p được nhân với trọng số w để tạo thành wp, sau đó được gửi tới bộ cộng Một đầu vào khác, 1, được nhân với một gia trị ngưỡng b và sau đó được chuyển tới bộ cộng Đầu ra của bộ cộng là n, được xem như là net input, đi tới một hàm chuyển f, hàm chuyển này sản xuất ra đại lượng nơ-ron a ( Một vài tác giả sử dụng “hàm kích
hoat” thay cho hàm chuyển và offset thay cho giá trị ngưỡng)
Nếu chúng ta liên hệ mô hình đơn giản này với nơ-ron sinh học mà chúng ta
đã thảo luận trong chương 1, thì trọng số w tương ứng với cường độ của khớp thần kinh, thân tế bào được tượng trưng bởi bộ cộng và hàm chuyển, đầu ra nơ-ron a
tương ứng với tín hiệu thần kinh (axon)
Hình 2.1: Nơ Ron đơn đầu vào
Trang 5Đầu ra của nơ-ron được tính như sau:
a = f(wp+b)
Nếu, ví dụ, w =3, p = 2 và b = -1.5, thì ta có:
a = f(3(2) – 1.5) = f(4.5)
Thực tế thì đầu ra phụ thuộc vào đặc thù của hàm chuyển mà ta chọn Chúng
ta sẽ thảo luận về hàm chuyển ở các phần sau
Giá trị ngưỡng giống như là trọng số của đầu vào có giá trị hằng 1 Tuy nhiên, nếu bạn không muốn có một giá trị ngưỡng trong một nơ-ron riêng của bạn, nó có thể được bỏ qua Chúng ta sẽ xem ví dụ của vấn đề này trong chương 3,7 và 14
Chú ý rằng w và b là các đại lượng vô hướng có thể điều chỉnh được để phù
hợp với nơ-ron Điển hình là hàm chuyển được chọn lựa bởi người thiết kế và sau
đó các tham số w và b sẽ được điều chỉnh bởi một vài quy tắc học, vậy mà đầu
vào/đầu ra nơ-ron liên hệ đáp ứng một vài mục đích riêng biệt (xem chương 4 giới thiệu về quy tắc học) Như đã miêu tả trong các mục, chúng ta có các hàm chuyển khác nhau cho các mục đích khác nhau
2 Các hàm chuyển
Hàm chuyển trong hình 2.1 có thể là một hàm tuyến tính hay phi tuyến của n
Một hàm chuyển đặc trưng được chọn để đáp ứng một số đặc điểm ký thuật của vấn
đề mà nơ-ron cố gắng giải quyết
Một loạt các hàm chuyển được trình bày trong cuốn sách này Có 3 hàm hay được sử dụng nhất sẽ được trình bày dưới đây
Hàm chuyển hard limit, đươc biểu diễn bên trái của hình 2.2, giá trị đầu ra của
nơ-ron là 0 nếu đối số hàm nhỏ hơn 0, hay là 1 nếu đối số của hàm lớn hơn hay bằng 0 Chúng ta sẽ sử dụng hàm này để tạo ra các nơ-ron phân loại đầu vào thành hai loại khác biệt nhau Nó sẽ được dùng rộng rãi hơn trong chương 4
Trang 6
Đồ thị bên phải hình 2.2 minh họa đặc tính đầu vào/ đầu ra của một nơ ron đơn đầu vào sử dụng một hàm chuyển hard limit
Tại đây, chúng ta có thể thấy ảnh hưởng của trọng số và ngưỡng Chú ý rằng một biểu tượng của hàm chuyển này được biểu diễn ở giữa hai đồ thị trong hình
minh họa Các biểu tượng sẽ thay thế ký hiệu f trong các biểu đồ mạng để biểu diễn
hàm chuyển đặc trưng đang được sử dụng
Đầu ra của một hàm chuyển tuyến tính bằng với đầu vào của nó:
a = n, (2.1)
như được minh họa trong hình 2.3
Những nơ-ron với hàm chuyển này được dùng nhiều trong các mạng ADALINE, mạng này sẽ được thảo luận trong chương 10
a
p w
b /
Hard Limit Transfer Function Single-Input hardlim neuron
Hình 2.2: Hàm chuyển Hard Limit
Trang 7Đầu ra a với đầu vào p của một nơ-ron tuyến tính đơn đầu vào với một
ngưỡng được thể hiện bên phải hình minh họa 2.3
Hàm chuyển log-xichma được biểu diễn trong hình 2.4
Hàm chuyển này nhận đầu vào (đầu vào có thể có bất kì giá trị nào giữa dương vô cùng và âm vô cùng) và nén thành đầu ra nằm trong khoảng 0 đến 1, theo biểu thức:
Trang 8Hàm chuyển log-xichma thường được dùng trong các mạng đa tầng mà được huấn luyện sử dụng thuật toán hồi quy, một phần bởi vì hàm này là hàm vi phân (xem chương 11)
Hầu hết các hàm chuyển đã sử dụng trong cuốn sách này được tóm tắt trong bảng 2.1 Tất nhiên, bạn có thể định nghĩa những hàm chuyển khác thay vì những hàm có trong bảng 2.1 nếu bạn muốn
Bảng 2.1: Các hàm chuyển
Trang 93 Nơ-ron đa đầu vào
Thông thường, một nơ-ron có nhiều hơn một đầu vào Một nơ-ron với R đầu vào được biểu diễn trong hình 2.5 Các đầu vào riêng lẻ p p p1, 2, 3, ,p R được đánh trọng số theo các phần tử w1,1,w1,2,w1,3, ,w1,R của ma trận trọng số W
Nơ-ron có một giá trị ngưỡng b, được cộng với các trọng số đầu vào để tạo
thành đầu vào n:
n = w1,1p1 + w1,2p2 + … + w1,R p R + b (2.3)
Biểu thức này có thể được viết ở dạng ma trận:
ma trận W cho trường hợp nơ-ron đơn đầu vào chỉ có duy nhất một hàng
Bây giờ đầu ra nơ-ron có thể được viết như sau:
Inputs Multiple-input Neuron
Hình 2.5: Nơ-ron Đa đầu vào
a=f(Wp+b) n
Trang 10May mắn thay, những mạng nơ-ron thường có thể được miêu tả với các ma trận Kiểu của biểu thức ma trận này sẽ được dùng xuyên suốt cuốn sách Thật không có lợi nếu bạn ghét những phép toán ma trận và vec-tơ Chúng ta sẽ xem lại các chủ đề này ở chương 5 và 6, và chúng ta sẽ đưa ra nhiều ví dụ và đưa ra các giải thuật cho các vấn đề đã giải quyết
Chúng ta vừa mới thông qua một quy ước cụ thể trong việc phân các chỉ số của các phần tử trong ma trận trọng số Chỉ số đầu tiên cho biết nơ-ron nào cho trọng số đó Chỉ số thứ hai cho ta biết nguồn tín hiệu cung cấp tới nơ-ron Như vậy, các chỉ số trong w1,2 nói lên rằng trọng số của nguồn (đầu vào) thứ 2 kết nối tới nơ-ron đầu tiên Tất nhiên, quy ước này sẽ có lợi hơn nhiều nếu có nhiều hơn một nơ-ron, sẽ gặp trường hợp này trong phần sau của chương này
Chúng ta muốn vẽ những mạng với nhiều nơ-ron, mỗi nơ-ron lại có nhiều đầu vào Hơn thế nữa, chúng ta có nhiều hơn một tầng các nơ-ron Bạn có thể tưởng tượng một mạng sẽ xuất hiện phức tạp thế nào nếu tất cả các đường kẻ được vẽ Nó
sẽ tốn rất nhiều mực, khó đọc, và quá nhiều chi tiết như vậy có thể che khuất đi những đặc điểm chính Vì vậy chúng ta sẽ dùng một ký hiệu rút gọn Một nơ-ron đa đầu vào dùng ký hiệu này được biểu diễn như trong hình 2.6
Trang 11Như biểu diễn trong hình 2.6, p vector đầu vào được thay bởi thanh thẳng đứng ở bên trái Kích cỡ của p được hiện dưới biến như Rx1, chỉ ra rằng đầu vào là một vector đơn R phần tử Những đầu vào này nhân với ma trận trọng số W, có R
cột nhưng chỉ có một hàng trong trường hợp một nơ-ron này Một hằng số 1 đi vào nơ-ron như một đầu vào và được nhân với một đại lượng ngưỡng b Đầu vào của
hàm chuyển f là n chính là tổng của b và kết quả của Wp Đầu ra a của nơ-ron là
một đại lượng vô hướng trong trường hợp này Nếu chúng ta có nhiều hơn một ron, đầu ra của mạng sẽ là một vector
nơ-Kích thước của các biến sẽ luôn luôn được thể hiện trong hình kí hiệu rút gọn vì vậy bạn có thể biết ngay chúng ta đang nói về một đại lượng vô hướng, một vector hay ma trận Bạn sẽ không phải phỏng đoán nó là loại biến nào hay kích thước của nó ra sao
Chú ý rằng số đầu vào của một mạng được thiết lập bởi việc chỉ rõ các yếu tố ngoại cảnh của vấn đề Nếu, ví dụ, bạn muốn thiết kế một mạng nơ-ron dự đoán tình trạng bay của cánh diều như vậy thì đầu vào sẽ là nhiệt độ không khí, vận tốc gió và
độ ẩm, sau đó ta sẽ có ba đầu vào cho mạng
II Các Kiến Trúc Mạng
Một nơ-ron thông thường, ngay cả khi với nhiều đầu vào, vẫn có thể thiếu
Có lẽ chúng ta cần năm hoặc mười nơ-ron hoạt động song song trong cái mà ta gọi
là “tầng” (layer) Khái niệm về tầng được trình bày dưới đây
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 2.7 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
Trang 12Mộ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ột số tác giả tham chiếu đầu vào như là đầu ra của một
tầng khác, nhưng chúng ta sẽ không làm điều đó ở đây
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 a i 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ó lẽ bạn sẽ tự hỏi 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 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
R S
Trang 13R R
w w w
w w w
w w w
, 2 , 1 ,
, 2 2 , 2 1 , 2
, 1 2 , 1 1 , 1
Như đã chú ý trong phần trước, 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 w3,2 nói rằng đây là trọng số của đầu vào thứ 2 nối với nơ-ron thứ 3
May thay, S-nơ-ron, R đầu vào, mạng một tầng cũng có thể được vẽ dưới dạng rút gọn như hình 2.8
Trong hình trên, những kí hiệu ở dưới các biến cho bạn biết các thong số về
tầng này, p là một vector có độ dài R, W là ma trận SR, 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
W
b
f +
Trang 142 Mạng Đa Tầng
Bây giờ cân nhắc xem một mạng với nhiều tầng thì sẽ ra sao 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
Chúng ta 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 trận trọng số của
tầng thứ 2 được viết như này W2 Cách kí hiệu này được dùng trong mạng nơ-ron 3
tầng như hình 2.9
Như đã thấy, có R đầu vào, S1
nơ-ron ở tầng thứ nhất, S2
nơ-ron ở tầng thứ hai, S3
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 một và hai là đầu vào của tầng hai 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= S1
, nơ-ron S= S2
, và
Trang 15Đầ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ới thời điểm này thì số phương án chọn lựa để thiết kế một mạng nơ-ron rất
đa dạng, hãy cùng xem xét chủ đề này Vấn đề không tệ như vậy, trước tiên nhớ lại rằng số lượng đầu vào của một mạng và số đầu ra được quyết định bởi các yếu tố ngoại cảnh Vì vậ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
Tới đây, chuyện gì sẽ xảy ra khi mạng chúng ta có nhiều hơn hai tầng? Các yếu tố bên ngoài không nói cho bạn 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 Chúng ta sẽ phát triển một số ý kiến về chủ đề này như ta tiến hành ở chương 11
Trang 16Về 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
Chúng ta sẽ nói đôi chút về việc sử dụng các giá trị ngưỡng 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, vậy bạn có thể mong rằng các mạng với các giá trị ngưỡng của nó sẽ mạnh hơn nhưng mạng không có giá trị này, và điều đó là chính xác 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ẽ tìm hiểu sâu hơn trong chương 3, 4 và 5
Ở các chương sau chúng ta sẽ bỏ đi giá trị ngưỡng ở một vài ví dụ hay một vài thể hiện 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ị
)1()(t u t
a
Hình 2.11: Delay block