Đây là thời kỳphục hưng của các nghiên cứu và ứng dụng mạnh mẽ của mạng neuron với cácnghiên cứu về giải thuật lan truyền ngược sai số backpropagation of error,mạng Boltzmann, mạng Neoco
Trang 12
Mạng neuron Nhân tạo
2.1 Lịch sử phát triển và các ứng dụng của mạng Neuron 2.2
2.2 Bộ não người và Neuron sinh học 2.5
2.3 Mô hình Neuron nhân tạo 2.8
2.3.1 Mô hình neuron 1 ngõ vào 2.8
2.3.2 Mô hình neuron nhiều ngõ vào 2.11
2.4 Mạng Neuron 2.11
2.4.1 Phân loại mạng neuron 2.11
2.4.2 Mạng neuron 1 lớp 2.12
2.4.3 Mạng neuron nhiều lớp 2.13
2.5 Huấn luyện mạng 2.15
2.5.1 Học có giám sát 2.15
2.5.2 Học không giám sát 2.15
2.5.3 Học tăng cường 2.18
2.6 Một số Giải thuật huấn luyện thông dụng 2.20
2.6.1 Giải thuật gradient descent 2.22
2.6.2 Giải thuật gradient descent with momentum 2.24
2.6.3 Giải thuật gradient descent with adaptive learning rate 2.25
2.6.4 Giải thuật gradient descent with momentum & adaptive lr 2.26
2.6.5 Giải thuật truyền ngược Resilient 2.27
2.6.6 Giải thuật BFGS Quasi-Newton 2.28
2.6.7 Giải thuật Levenberg-Marquardt 2.29
2.6.8 So sánh các giải thuật 2.30
2.7 Qui trình thiết kế mạng Neuron ứng dụng 2.32
2.8 Vài kỹ thuật phụ trợ 2.33
2.8.1 Tiền xử lý dữ liệu 2.33
2.8.2 Khả năng tổng quát hóa của mạng 2.35
2.8.3 Kích thước tối ưu của mạng 2.36
2.9 Tóm tắt 2.38
Tài liệu tham khảo chương 2 2.39
2
Trang 22.1 Lịch sử phát triển và Các ứng dụng của mạng Neuron
Lịch sử phát triển của mạng neuron được tóm tắt như hình 2.1, [1]
Năm 1890, nhà tâm lý học William James đã đưa ra nhận xét: Khi haiquá trình cơ bản của bộ não tác động lẫn nhau hoặc xảy ra lần lượt thì mộttrong chúng sẽ truyền kích thích đến quá trình còn lại
Năm 1936, Alan Turing là người đầu tiên sử dụng bộ não như một môhình xử lý thông tin Năm 1943, Warren McCulloch và Walter Pitts đã đề xuấtcách thức hoạt động của các neuron, họ đã tạo ra một mạng neuron đơn giảnbằng các mạch điện Từ đó các nhà khoa học lao vào nghiên cứu chế tạo cácbộ máy thông minh
Hình 2.1 Lịch sử phát triển của mạng neuron
Năm 1949, Donald Hebb đề xuất một giải thuật huấn luyện mạng neuronrất nổi tiếng, mà ngày nay nó vẫn còn được sử dụng
Thập niên 50 là thời kỳ mà mạng neuron phát triển cả phần cứng lẫnphần mềm Nathaniel Rochester và một số người khác từ các phòng thí nghiệmcủa IBM đã xây dựng phần mềm mô phỏng mạng neuron dựa trên giải thuậtcủa Hebb
Cuối 1980s -nay: Ứng dụng trong nhiều lĩnh vực
1982: Mạng Hopfield 1 lớp, các nghiên cứu được tiếp tục
1970s: Các nghiên cứu đột nhiên lắng dịu
1969: Các bài báo của Minsky & Papert, Perceptrons
Cuối 50s-60s: Nhiều nổ lực, AI & Neural Computing Fields được
thành lập 1956: Dartmouth Summer Research Project
1950s: Phần mềm phát triển mạnh
1949: Giải thuật huấn luyện của Donald Hebb
1943: Mcculloch & Pitts công bố về mô hình neuron đơn giản
1936: Turing dùng bộ não như mô hình xử lý thông tin
1890: Khái niệm của William James
2
Trang 3Năm 1957, Frank Rosenblatt bắt đầu nghiên cứu về mạng Perceptron vàđã thành công trong việc thiết kế Mark I Perceptron neurocomputer, đó làmạng neuron cổ điển nhất vẫn còn sử dụng tới ngày nay [11].
Năm 1959, Bernard Widrow và Marcian Hoff đã xây dựng mạngADALINE, nó là áp dụng đầu tiên của mạng neuron vào thực tế để dập tiếngvọng trên đường dây điện thoại Năm 1967, Avalanche áp dụng các mạngneuron vào việc nhận dạng giọng nói, điều khiển motor và một số ứng dụngkhác
Từ năm 1969 đến 1981 mạng neuron rơi vào trạng thái im lặng cả vềnghiên cứu và ứng dụng Tuy nhiên, có thể kể đến các bài báo của MarvinMinsky và Seymour Papert bình luận về mạng Perceptron, các nghiên cứu vềquá trình học của mạng nhiều lớp, mạng tự tổ chức (Self Organization) củaTeuvo Kohonen, mạng kiểu bộ nhớ kết hợp (BAM – Bidirectional AssociativeMemory) của Anderson và mạng ART (Adaptive Resonance Theory neuralnetworks) của Capenter [2]
Năm 1982, John Hopfield công bố một công trình về mạng neuron mộtlớp trên National Academy of Sciences, nó được coi là một động cơ để lôi kéocác nhà khoa học quay trở lại nghiên cứu về mạng neuron Đây là thời kỳphục hưng của các nghiên cứu và ứng dụng mạnh mẽ của mạng neuron với cácnghiên cứu về giải thuật lan truyền ngược sai số (backpropagation of error),mạng Boltzmann, mạng Neocognitron của Fukushima
Từ cuối thập niên 80, đầu thập niên 90 đến ngày nay, mạng neuron đãkhẳng định được vị trí của mình trong nhiều ứng dụng khác nhau Các lĩnh vựcứng dụng của mạng neuron có thể tóm tắt như sau [3]:
♦ Không gian vũ trụ:
Phi thuyền không người lái, mô phỏng đường bay, tăng cường khảnăng điều khiển, mô phỏng các chi tiết trong máy bay, phi thuyền,dự báo hỏng hóc …
Trang 4♦ Quân sự:
Vũ khí tự động, truy tìm mục tiêu, phân biệt đối tượng, nhận dạngtín hiệu và hình ảnh, các ứng dụng trong tàu ngầm, xử lý tín hiệuradar, …
Nén âm thanh và hình ảnh, dịch máy, …
Tóm lại, mạng neuron đã đang và sẽ được nghiên cứu, ứng dụng mạnhmẽ vào hầu hết các lĩnh vực công nghiệp và dịch vụ Một số mạng neuron nổitiếng được liệt kê trong bảng 2.1, [1]
2
Trang 62.2 Bộ não người và Neuron sinh học
Hệ thần kinh của con người gồm thần kinh trung ương (não), tủy sống vàcác dây thần kinh Thần kinh trung ương được cấu tạo từ 2 lớp tế bào, tế bàothần kinh (gọi là neuron) và tế bào glia Trong đó, glia chỉ thực hiện chức nănghổ trợ, neuron mới trực tiếp tham gia vào quá trình xử lý thông tin Bộ nãongười chứa khoảng 1011 neuron, với hơn 1014 liên kết giữa chúng, tạo thànhmột mạng tế bào thần kinh khổng lồ Hình 2.2 cho thấy tổng thể của một bộnão người [4]
Hình 2.2 Bộ não người
Mỗi neuron có phần thân với nhân bên trong (gọi là soma), một đầu thầnkinh ra (gọi là sợi trục axon) và một hệ thống dạng cây các dây thần kinh vào(gọi là dendrite) Xem hình 2.3 Trục dây thần kinh ra cũng có thể phân nhánhtheo dạng cây để nối với các dây thần kinh vào hoặc trực tiếp với nhân tế bàocủa các neuron khác thông qua các khớp nối (gọi là synapse) Thông thườngmỗi neuron có thể có từ vài chục đến vài trăm ngàn khớp nối
Hình 2.3 Cấu trúc của một neuron sinh học
2
Trang 7Các tín hiệu truyền trong các dây thần kinh vào và ra của các neuron làtín hiệu điện, được thực hiện thông qua quá trình giải phóng các chất hữu cơ.Các chất này được phát ra từ các khớp nối, hình 2.4, dẫn tới các dây thần kinhvào sẽ làm tăng hay giảm điện thế của nhân tế bào Khi điện thế đạt tới mộtngưỡng nào đó (gọi là ngưỡng kích hoạt), sẽ tạo ra một xung điện dẫn tới trụcdây thần kinh ra Xung này được truyền theo trục tới các nhánh rẽ, khi chạmvào các khớp nối nối với các neuron khác, sẽ giải phóng các chất truyền điện,hình 2.5 Người ta chia thành 2 loại khớp nối, khớp kích thích (excitatory) vàkhớp ức chế (inhibitory).
Hình 2.4 Khớp nối thần kinh
Hình 2.5 Xung điện trên trục thần kinh
Việc nghiên cứu neuron sinh học cho thấy hoạt động của nó khá đơngiản, khi điện thế ở dây thần kinh vào vượt quá một ngưỡng nào đó, neuronbắt đầu giật (firing), tạo ra một xung điện truyền trên dây thần kinh ra đến cácneuron khác, cơ chế này cho phép dễ dàng tạo ra mô hình neuron nhân tạo
2
Trang 82.3 Mô hình Neuron nhân tạo
2.3.1 Mô hình neuro 1 ngõ vào
Hình 2.6 là mô hình 1 neuron nhân tạo11 với một ngõ vào [3]
Hình 2.6 Mô hình neuron 1 ngõ vào
Ngõ vào p truyền qua một kết nối có độ lợi w, gọi là trọng số kết nối (weight) tạo thành wp, sau đó wp được đưa vào hàm kích hoạt f của neuron, gọi là hàm truyền sẽ tạo thành ngõ ra a của neuron.
a = f(wp)
Trường hợp neuron có ngưỡng kích hoạt12 (bias), wp được cộng với b, ngõ
ra của neuron sẽ là
a = f(wp+b)
Quá trình huấn luyện sẽ thay đổi trọng số w và ngưỡng b làm cho quan hệ vào ra p/a thay đổi theo Thông thường có 3 hàm truyền được sử dụng nhiều trong thực tế, đó là hàm Linear, Log sigmoid và Hyperbolic tangent sigmoid.
11 kể từ đây về sau, để đơn giản ta chỉ gọi là neuron
12 tương đương với điện thế ngưỡng của neuron sinh học
2
Trang 9♦ Hàm truyền tuyến tính – ‘purelin’:
Hình 2.7 Hàm truyền tuyến tính
♦ Hàm truyền Log Sigmoid – ‘logsig’
ne1
1)
n
+
Hình 2.8 Hàm truyền Log Sigmoid
♦ Hyperbolic tangent sigmoid – ‘tansig’
n
n
e1
e1
)
n
−+
−
Hình 2.9 Hàm truyền Hyperbolic tangent sigmoid
2
Trang 10Bằng cách sử dụng các hàm truyền khác nhau, ta được các neuron có tínhchất khác nhau tương ứng Neural Network ToolBox 3.0 của MATLAB 5.3cung cấp các hàm truyền được liệt kê trong bảng 2.2.
Bảng 2.2 Các hàm truyền của neuron TRANSFER FUNCTIONS
compet Competitive transfer function
hardlim Hard limit transfer function
hardlims Symmetric hard limit transfer function
logsig Log sigmoid transfer function
poslin Positive linear transfer function
purelin Linear transfer function
radbas Radial basis transfer function
satlin Saturating linear transfer function
satlins Symmetric saturating linear transfer function
softmax Soft max transfer function
tansig Hyperbolic tangent sigmoid trans function
tribas Triangular basis transfer function
Sự tương quan giữa neuron sinh học và neuron nhân tạo như bảng 2.3 [6]
Bảng 2.3 So sánh Neuron sinh học và nhân tạo
Phạm vi hoạt động giới hạn bởi
lý tính của tế bào Phạm vi hoạt động giới hạn bởihàm truyền f
2
Trang 112.3.2 Mô hình neuro n iều n õ vào
Tương tự như trên, mô hình neuron nhiều ngõ vào cho bởi hình 2.10,
nhưng ngõ vào p là một véctơ R phần tử
2.4.1 Phân loại mạng neuron
Người ta phân loại mạng neuron dựa vào kiểu kết nối của các neuron vàdựa vào số lớp neuron trong mạng
2
Trang 12♦ Phân loại theo kiểu kết nối các neuron:
Dựa theo kiểu kết nối, ta có mạng neuron truyền thẳng (feedforwardNeural Network) và mạng hồi qui (recurrent NN) Trong mạng truyền thẳng,các kết nối đi theo một hướng nhất định, không tạo thành chu trình Ngược lại,các mạng hồi qui cho phép các kết nối neuron tạo thành chu trình, với đỉnh làcác neuron và cung là các kết nối giữa chúng Các neuron nhận tín hiệu vàogọi là neuron vào, các neuron đưa thông tin ra gọi là neuron ra, các neuron cònlại gọi là neuron ẩn
♦ Phân loại theo số lớp neuron:
Các neuron trong mạng có thể được tổ chức thành các lớp theo nguyêntắc các neuron ở lớp này, chỉ được nối với các neuron ở lớp khác, không chophép kết nối giữa các neuron trên cùng lớp, hoặc từ neuron lớp dưới lênneuron lớp trên, cũng không cho phép kết nối nhảy qua 1 lớp [2] Lớp nhận tínhiệu vào gọi là lớp vào, lớp đưa thông tin ra gọi là lớp ra, các lớp ở giữa gọi làlớp ẩn Xem hình 2.11
Thông thường lớp vào không tham gia quá trình tính toán của mạngneuron13, nên khi tính số lớp người ta không kể lớp vào Ví dụ ở hình 2.11a, tacó mạng 2 lớp, gồm lớp ẩn và lớp ra
2.4.2 Mạng neuron 1 lớp
Mô hình mạng neuron 1 lớp với R neuron vào và S neuron ra14 như hình
2.12 Mỗi phần tử trong véctơ vào p, được nối với từng nút vào tương ứng (các neuron nằm trên lớp vào) thông qua ma trận trọng số W
R , S 2
, S 1 , S
R , 2 2
, 2 1 , 2
R , 1 2
, 1 1 , 1
ww
w
ww
w
ww
wW
Ngõ ra tương ứng của neuron thứ i là: a i = f(n i ), trong đó f là hàm truyền
của neuron Chúng ta có thể biểu diễn ngõ ra của mạng:
a = f(Wp+b)
13 lớp vào chỉ có nhiệm vụ nhận tín hiệu vào, đây là thành phần tuyến tính của mạng
14 neuron vào còn gọi là nút vào, neuron ra còn gọi là nút ra
2
Trang 13Hình 2.11 Phân loại mạng neuron
Hình 2.12 Mạng neuron 1 lớp
2.4.3 Mạng neuron nhiều lớp
Một mạng neuron có thể có nhiều lớp, ngõ ra của lớp trước sẽ làm ngõvào của lớp sau Quá trình tính toán trên mạng lần lượt tính toán trên từng lớp,trên mỗi lớp hoàn toàn giống như tính toán đối với mạng một lớp Trên hình
2
Trang 142.13, véctơ vào là p, ngõ ra là véctơ a Tuy nhiên, ta thêm các chỉ số 1,2,3 để
dễ phân biệt các lớp của mạng
Hình 2.13 Mạng neuron nhiều lớp
Neural Network ToolBox 3.0 của MATLAB cung cấp các hàm tạo mạngneuron được liệt kê trong bảng 2.4 [3]
Bảng 2.4 Các hàm tạo mạng neuron của MATLAB 5.3
New Neural Networks
newc Create a competitive layer
newcf Create a cascade-forward backpropagation network
newelm Create an Elman backpropagation network
newff Create a feed-forward backpropagation network
newfftd Create a feed-forward input-delay backprop network
newgrnn Design a generalized regression neural network
newhop Create a Hopfield recurrent network
newlin Create a linear layer
newlind Design a linear layer
newlvq Create a learning vector quantization network
newp Create a perceptron
newpnn Design a probabilistic neural network
newrb Design a radial basis network
newrbe Design an exact radial basis network
newsom Create a self-organizing map
2
Trang 152.5 Huấn luyện mạng
Huấn luyện mạng là quá trình thay đổi các trọng số kết nối cũng như cấutrúc của mạng sao cho phù hợp với các mẫu học [2] Người ta phân biệt 3 kỹthuật học, đó là học có giám sát (supervised learning), học không giám sát(unsupervised learning) và học tăng cường (reinforcement learning)
2.5.1 Học có giám s ùt
Là giải thuật điều chỉnh các trọng số kết nối dựa vào sự khác biệt giữangõ ra thực tế của mạng (actual network output) và ngõ ra mong muốn (target
or desired network output)15, ứng với một tập tín hiệu vào Học có giám sát đòi
hỏi phải có một teacher hay supervisor cung cấp ngõ ra mong muốn, vì thế người ta còn gọi là học có thầy.
Giả sử ta có tập mẫu học là {(p,t)}, với p là véctơ vào, t là véctơ ra mong muốn, tức là ứng với ngõ vào p thì ngõ ra đúng của hệ phải là t Gọi ngõ ra thực tế của mạng là a, thì giải thuật học phải điều chỉnh mạng sao cho
error=|t-a| nhỏ hơn một tiêu chuẩn nào đó Các giải thuật học có giám sát sẽ
được đề cập chi tiết hơn ở các phần sau
2.5.2 Học kh âng giám s ùt
Trong phương pháp học không giám sát, không đòi hỏi tập ngõ ra mong
muốn, vì thế người ta gọi là học không thầy Trong quá trình huấn luyện, chỉ có
tập dữ liệu vào được đưa vào mạng, mạng tự điều chỉnh theo nguyên tắc gộpcác mẫu dữ liệu vào có đặc điểm tương tự thành từng nhóm [7] Phương phápnày được dùng trong mạng Kohonen và mạng ART Có hai giải thuật họckhông giám sát là: Học cạnh tranh (Competitive Learning) và Cấu hình tự tổchức (Self-organizing feature maps – SOFM)
# Giải thuật học cạnh tranh
Mạng neuron áp dụng giải thuật học này gọi là mạng cạnh tranh(competitive neural network), hình 2.14 [3]
Trong hình 2.14, khối || ndist || nhận véctơ vào p và ma trận trọng số
IW 1,1 , để tạo ra một véctơ có S 1 phần tử Các phần tử của véctơ này có giá trị
15 actual network output là ngõ ra mà mạng tính toán được khi áp dụng một ngõ vào nào đó, desired
network output là ‘đáp số’ do supervisor cung cấp
2
Trang 16là khoảng cách Euclidean âm (Euclidean distance < 0) giữa véctơ vào p và ma trận trọng số IW 1,1 Sau đó véctơ này được cộng với trị ngưỡng b 1 tạo thành n 1.
Hàm truyền cạnh tranh C (competitive transfer function), nhận n 1 và làm
cho các ngõ ra của các neuron bằng 0 ngoại trừ winning neuron sẽ có ngõ ra bằng 1 Winning neuron là neuron mà khoảng cách Euclidean giữa véctơ trọng
số của nó và ngõ vào ít âm nhất, nghiã là véctơ trọng số của nó gần đúng vớivéctơ ngõ vào nhất
Hình 2.14 Giải thuật học cạnh tranh
Các trọng số của winning neuron sẽ được cập nhật theo luật sau: Giả sử neuron thứ i trong mạng là winning neuron, thì các phần tử ở hàng thứ i trong
ma trận trọng số được điều chỉnh như sau:
(2.6)Trong đó α là tốc độ học (learning rate), α ∈ [0, 1]
Luật cập nhật trọng số này gọi là luật Kohonen, nó cho phép các trọng sốcủa một neuron học theo véctơ vào Các neuron có véctơ trọng số gần giốngnhất so với véctơ vào sẽ được điều chỉnh cho gần giống hơn nữa Kết quả là,
winning neuron ở bước huấn luyện16 thứ (i) sẽ gần giống với winning neuron ở bước thứ (i+1), và sẽ khác xa so với winning neuron ở một bước huấn luyện
nào đó, mà ở đó véctơ ngõ vào có sự thay đổi Khi ta đưa nhiều mẫu huấnluyện khác nhau vào mạng, sẽ dẫn tới sự hình thành từng nhóm neuron có cácđặc điểm gần giống với các mẫu dữ liệu huấn luyện
Sau khi huấn luyện, mạng sẽ hình thành nhiều nhóm neuron, mỗi nhómsẽ phản ánh một đặc điểm nào đó của các mẫu huấn luyện Điều này cũng
16 epoch, có nhiều tác giả gọi là thời kỳ huấn luyện
2
Trang 17tương đương như việc phân chia các vùng chức năng trên bộ não người, vì lý
do này mà giải thuật học cạnh tranh tỏ ra ưu điểm trong các ứng dụng nhậndạng, ví dụ dựa trên những đặc điểm ‘thân quen’ còn lại để nhận dạng khuônmặt người 10 năm sau
Ta ký hiệu tập neuron láng giềng N i* (d) với ý nghĩa như sau: Chỉ số i * cho
biết winning neuron là neuron thứ i trong tổng số neuron của mạng, chỉ số d cho biết số neuron láng giềng của i * nằm trong vòng tròn bán kính là d
neuron, tâm là winning neuron Ví dụ N 5 (2) nghĩa là tập hợp các neuron nằm
trong vòng tròn bán kính 2 neuron, tâm là neuron thứ 5 (winning neuron) trong
mạng, xem hình 2.16 [3]
2
Trang 18N 13 (1) ={8 12 13 14 18}
N 13 (2) = {3 7 8 9 11 12 13 14 15 18 18 19 23}
Hình 2.16 Minh họa tập neuron láng giềng
Lưu ý là các neuron trong SOFM không bắt buộc lúc nào cũng phải sắpxếp theo hai hướng Chúng ta có thể sắp xếp theo 1 hướng hay 3 hướng Đốivới SOFM 1 hướng, mỗi neuron chỉ có 2 láng giềng trong phạm vi bán kính là
1 (cũng có thể chỉ có 1 láng giềng nếu neuron đó nằm ở cuối hàng) Ngoài rangười ta còn xét tập neuron láng giềng theo kiểu hình vuông, hình lục giác,Hiệu quả của mạng không phụ thuộc vào hình dạng của tập neuron láng giềng.Trong quá trình huấn luyện, kích thước của tập neuron láng giềng sẽ nhỏdần, đến khi chỉ còn 1 lớp (lớp này phản ánh đặc điểm của mẫu dữ liệu huấnluyện) Khi ta thay đổi nhiều mẫu huấn luyện, kết quả cũng đạt được tương tựnhư giải thuật học cạnh tranh
2.5.3 Học tăng cườn
Học tăng cường là một giải thuật đặc biệt của học có giám sát Thay vìphải do thầy cung cấp ngõ ra mong muốn thì giải thuật này sẽ nhờ một
‘chuyên gia’ (critic) ước lượng ngõ ra tốt nhất ứng với một ngõ vào cho trước.Tiêu biểu cho học tăng cường là giải thuật di truyền (Genetic Algorithm - GA).Giải thuật GA đơn giản nhất được cho bởi lưu đồ hình 2.17 [6,7]
Giải thuật này bắt đầu bằng cách khởi tạo thế hệ neuron hiện tại mộtcách ngẫu nhiên, sau đó áp dụng các phép toán di truyền để tạo thế hệ mớiphù hợp hơn Các phép toán di truyền gồm có: Chọn lọc, lai tạo và đột biến
Có thể minh họa phép lai như hình 2.18 [7] Giả sử có 2 chuỗi cha và mẹ, ta cắt
2
Trang 192 chuỗi này thành những đoạn nhỏ bằng nhau có độ dài ngẫu nhiên, hoán đổi
các chuỗi nhỏ này cho nhau ta sẽ thu được 2 con Đơn giản nhất là ta cắt chuỗi
cha và mẹ thành 2 phần.
Hình 2.17 Giải thuật GA
Hình 2.18 Phép lai của GA
Phép đột biến được thực hiện trên từng con riêng lẻ, gồm 2 bước: bước 1,
thay đổi giá trị, bước 2 cắt chuổi con thành 3 phần ngẫu nhiên rồi nghịch đảo
phần ở giữa Cách này cho phép tạo ra con mới có tính chất hoàn toàn khác
với cha mẹ chúng, xem hình 2.19
Bắt đầu Khởi tạo thế hệ hiện tại
Chọn những neuron tốt
Lai tạo, đột biến
Thế hệ mới