ĐỀ CƯƠNG ÔN TẬP HỌC PHẦN
MẠNG NƠ-RON NHÂN TẠO
Đề 1
1. Mạng nơ-ron nhân tạo là gì? Tại sao chúng ta nghiên cứu mạng nơ-ron nhân tạo?
Mạng nơ-ron nhân tạo (Neural Networks – NNs) là mạng bao gồm các nơ-ron kết nối với
nhau như được tìm thấy trong các bộ não sinh học. Thành phần cơ bản để cấu tạo nên mạng nơ –ron
là các nơ-ron và cách mà chúng kết nối với nhau. Do vậy, để mô hình hóa hình thái và tìm hiểu
phương thức hoạt động của mạng nơ-ron, chúng ta sẽ bắt đầu từ các nơ-ron nhân tạo.
Nơ-ron nhân tạo là những mô phỏng thô của các nơ-ron sinh học trong bộ não. Chúng có thể
là các thiết bị vật lý hay chỉ là các mô hình toán học. Theo đó, mạng nơ-ron nhân tạo (Artificial
Neural Networks – ANNs) là mạng các nơ-ron nhân tạo kết nối với nhau và được xem như là mô
phỏng thô một phần bộ não sinh học. Chúng có thể là một hệ thống các thiết bị vật lý hoặc các mô
phỏng trên máy tính.
Mạng nơ-ron nhân tạo là hệ thống máy tính song song bao gồm nhiều đơn vị xử lý đơn giản,
kết nối với nhau theo một cấu trúc nào đó để thực hiện một nhiệm vụ cụ thể. Mặc dù được đơn giản
hóa về mặt mô phỏng nhưng mạng nơ-ron nhân tạo vẫn không mất đi các tính chất đặc trưng của một
bộ não thật.
- Ưu điểm lớn nhất của mạng nơ-ron nhân tạo: là tính hoàn toàn song song, cái mà làm cho
mạng nơ-ron nhân tạo trở nên hiệu quả. Thêm vào đó, mạng nơ-ron nhân tạo có thể học từ những dữ
liệu huấn luyện và khái quát những tình huống mới, nên nó không yêu cầu nhiều về kỹ năng lập trình.
Mạng nơ-ron nhân tạo còn đặc biệt chịu lỗi, đây là khả năng thường được tìm thấy trong các hệ thống
sinh học; và chịu nhiễu. Vì vậy chúng có thể đối phó với tình huống mà các hệ thống symbolic thông
thường sẽ gặp khó khăn. Nói tóm lại, về nguyên tắc, mạng nơ-ron nhân tạo có thể làm bất cứ điều gì
một hệ thống symbolic/logic có thể làm và thực tế nó còn có thể làm được nhiều hơn thế nữa.
- Giống như các lĩnh vực trí tuệ nhân tạo nói chung, hai mục tiêu cơ bản của việc nghiên cứu
mạng nơ-ron nhân tạo là:
+ Mô hình hóa bộ não: Mục đích khoa học của việc xây dựng các mô hình mạng nơ-ron nhân
tạo là tìm hiểu thực tế não làm việc như thế nào. Điều này có thể giúp chúng ta hiểu được bản chất sự
thông minh của con người, xây dựng các chiến lược dạy tốt, hoặc là các hoạt động chữa trị hiệu quả
cho các bệnh nhân bị thương tổn về não.
+ xây dựng hệ thống nhân tạo: Mục đích kỹ thuật của việc xây dựng hệt thống mạng nơ-ron
ij
- Chúng ta có thể kết nối các nơ-ron McCulloch-Pitts lại với nhau theo một cách bất kỳ mà
chúng ta muốn. Mạng bao một lớp vào (input) được kết nối trực tiếp với một lớp các nơ-ron
McCulloch-Pitt như hình vẽ 3-2 được gọi là mạng Perceptron một lớp.
- Một trong những ứng dụng đơn giản nhất đầu tiên mà chúng ta có thể cài đặt là sử
dụng mạng Perceptron để thiết lập các cổng logic. Điều mà chúng ta cần là làm thế nào để xác
định trọng số kết nối và ngưỡng nơ-ron thích hợp để kết quả sinh ra là đúng với một tập dữ
liệu vào.
- Để có thể hoàn thành được một cổng logic như thế, chúng ta sẽ băt đầu với các công
logic đơn giản như NOT, AND và OR, bởi vì chúng ta có thể thiết kế được bất cứ chức năng
logic nào từ 3 cổng logic nêu trên. Tuy nhiên, thực tế người ta thường sẽ không thiết kế ANN
phức tạp hơn Perceptron một lớp, mà người ta tìm cách xác định trọng số và ngưỡng trực tiếp
từ một kiến trúc Perceptron một lớp nào đó khác.
- Thực tế đã chứng minh rằng, việc thiết kế một ANN đơn giản là một chuyện, nhưng
vấn đề là làm thế nào để chứng tỏ được rằng ANN đó thực hiện được chức năng như mục tiêu
đã đề ra! Nếu dùng phương pháp thử như trên, vấn đề là sau bao lâu thì chúng ta mới tìm ra
được lời giải? (ví dụ trường hợp cổng XOR) Vì vậy chúng ta nên tìm một phương pháp tính
toán thích hợp khác để xác định các tham số, hơn là việc thử và sai.
- Chúng ta sẽ bắt đầu phương pháp tính toán với mô hình mạng Perceptron cho cổng AND.
Theo mô hình này, chúng ta có 2 trọng số w
1
, w
2
và ngưỡng θ. Đối với mỗi mẫu huấn luyện,
chúng ta cần thỏa mãn:
out = sgn( w
1
in
1
luôn 0 ngoại trừ tại x=0 nên nó là vô hạn.
May mắn là có một mẹo mà chúng ta có thể vượt qua được trở ngại trên: Giả chúng ta có hàm
chuyển f(x) = x + 1/2, thì f(x)=1 khi x=1/2 và f(x)=0 khi x = -1/2. Rõ ràng những giá trị này cũng
tuân theo qui luật của hàm dấu sgn(x) và Perceptron cũng sẽ hoạt động được với hàm ngưỡng này.
Nói một cách khác, chúng ta có thể sử dụng thuật toán học bằng cách giảm gradient với f(x) = x + 1/2
để Perceptron có thể học các trọng số. Trong trường hợp này, f’(x)=1 và do đó phương trình cập nhật
trọng số trở thành:
Phương trình này có tên gọi là Luật học Delta bởi vì nó phụ thuộc trên sự khác biệt δ
l
= targ
l
–
out
l
* so sánh luật học delta với luật học perceptron
- Giống nhau: luật học Delta và luật học Perceptron đối với Perceptron một lớp có cùng
phương trình cập nhật trọng số.
- Khác nhau:
Các luật học Perceptron sử dụng hàm kích hoạt f(x) = sgn(x), trong khi luật Delta sử
dụng hàm tuyến tính f(x) = x + 1/2.
Hai thuật toán được xuất phát từ những quan điểm lý thuyết khác nhau: luật học
Perceptron bắt nguồn từ việc xem xét làm thế nào để di chuyển siêu phẳng quyết định,
trong khi luật Delta xuất từ việc tối thiểu hóa SSE bằng cách giảm gradient.
Luật học Perceptron sẽ hội tụ khi lỗi bằng 0 và trọng số sẽ không thay đổi sau một số
hữu hạn các bước thực hiện nếu vấn đề đang xem xét là tuyến tính, còn không thì nó sẽ
bị dao động qua lại. Trong khi đó luật Delta (với η đủ nhỏ) luôn luôn hội tụ về một tập
trọng số mà lỗi là tối thiểu, mặc dù sự hội tụ đến những giá trị chính xác của x = ± 1/2
thông thường phụ thuộc vào một tốc độ giảm η.
Câu 5: Hãy giải thích nguyên tắc và cơ chế học lan truyền ngược trong mạng Perceptron nhiều
j
(N)
của các lớp cuối cùng xuất hiện trong hàm lỗi.
Tuy nhiên, kết quả ra lớp cuối cùng lại phụ thuộc vào các lớp trọng số trước đó và giải thuật học sẽ
điều chỉnh tất cả chúng. Giải thuật học tự động điều chỉnh kết quả ra out
i
(n-1)
của các lớp (ẩn) trước sao
cho chúng tạo ra những đại diện trung gian (ẩn) thích hợp.
Đối với mạng 2 lớp, kết quả ra cuối cùng có thể được ghi:
Chúng ta có thể sử dụng luật biến đổi đạo hàm, như đã làm đối với Perceptron một lớp, để có
được đạo hàm đối với 2 tập trọng số w
hl
(1)
và w
hl
(2)
:
Bây giờ chúng ta thay thế các đạo hàm trong hai phương trình cập nhật trọng số
Nếu hàm chuyển f(x) là hàm Sigmoid thì chúng ta sử dụng f’(x) = f(x).(1 - f(x)) để cho
Các phương trình này tạo thành giải thuật học lan truyền ngược
…
Đề 2:
Câu 1: So sánh học có giám sát và học không có giám sát? Những mạng nơ-ron nào đại diện cho
2 loại mạng này?
* So sánh học có giám sát và không giám sát?
+ Điểm giống nhau của hai loại mạng:
Cả hai phương pháp học đều cần phải có một tập huấn luyện (training data set) để hệ thống có
thể “học” và rút ra được các đặc trưng dùng cho việc gán nhãn.
+ Điểm giống nhau của hai loại mạng:
Thu thập dữ liệu huấn luyện. Tập dữ liệu huấn luyện cần phù hợp với các hàm chức năng
được xây dựng. Vì vậy, cần thiết phải kiểm tra tích thích hợp của dữ liệu đầu vào để được dữ liệu đầu
ra tương ứng. Tập dữ liệu huấn luyện có thể được thu thập từ nhiều nguồn khác nhau: từ việc đo được
tính toán, từ các tập dữ liệu có sẵn…
Xác định việc biễu diễn các đặc trưng đầu vào cho hàm chức năng. Sự chính xác của hàm
chức năng phụ thuộc lớn vào cách biểu diễn các đối tượng đầu vào. Thông thường, đối tượng đầu vào
được chuyển đổi thành một vec-tơ đặc trưng, chứa một số các đặc trưng nhằm mô tả cho đối tượng
đó. Số lượng các đặc trưng không nên quá lớn, do sự bùng nổ dữ liệu, nhưng phải đủ lớn để dự đoán
chính xác đầu ra. Nếu hàm chức năng mô tả quá chi tiết về đối tượng, thì các dữ liệu đầu ra có thể bị
phân rã thành nhiều nhóm hay nhãn khác nhau, việc này dẫn tới việc khó phân biệt được mối quan hệ
giữa các đối tượng hay khó tìm được nhóm(nhãn) chiếm đa số trong tập dữ liệu cũng như việc dự
đoán phần tử đại diện cho nhóm, đối với các đối tượng gây nhiễu, chúng có thể được dán nhãn, tuy
nhiễn số lượng nhãn quá nhiều, và số nhãn tỉ lệ nghịch với số phần của mỗi nhãn. Ngược lại, hàm
chức năng có quá ít mô tả về đối tượng dễ dẫn tới việc dán nhãn đối tượng bị sai hay dễ bỏ xót các
đối tượng gây nhiễu. Việc xác định tương đối đúng số lượng đặc tính của phần tử sẽ giảm bớt chi phí
khi thực hiện đánh giá kết quả sau huấn luyện cũng như kết quả gặp bộ dữ liệu đầu vào mới.
Xác định cấu trúc của hàm chức năng cần tìm và giải thuật học tương ứng. Ví dụ, người kĩ sư
có thể lựa chọn việc sử dụngmạng nơ-ron nhân tạo hay cây quyết định.
Hoàn thiện thiết kế. Người thiết kế sẽ chạy giải thuật học từ tập huấn luyện thu thập được. Các
tham số của giải thuật học có thể được điều chỉnh bằng cách tối ưu hóa hiệu năng trên một tập con
(gọi là tập kiểm chứng -validation set) của tập huấn luyện, hay thông qua kiểm chứng chéo (cross-
validation). Sau khi học và điều chỉnh tham số, hiệu năng của giải thuật có thể được đo đạc trên một
tập kiểm tra độc lập với tập huấn luyện.
1.2. Học không giám sát:
Cách 1:
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ó thầy, các
đích trùng với đầu vào. Nói một cách khác, học không có thầy 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.
với mỗi mẫu huấn luyện trong tập huấn luyện. Thông thường, sau một số vòng lặp, khi tất cả kết quả
ra là trùng với kết quả đích đối với tất cả các mẫu huấn luyện, Δwij lúc đó bằng 0 và quá trình huấn
luyện sẽ dừng. Chúng ta nói quá trình huấn luyện đã hội tụ (đến một lời giải). Điều đó chỉ ra rằng nếu
tồn tại một tập các trọng số đối với một mạng Perceptron có thể giải quyết một bài toán cụ thể nào đó,
thì chúng ta có thể nói rằng luật học Perceptron có thể tìm thấy tập trọng số này sau một số vòng lặp
hữu hạn. Có nghĩa là, nếu bài toán là có thể tách tuyến tính, luật học Perceptron sẽ tìm thấy tập trọng
số sau một số vòng lặp hữu hạn sao cho nó có thể giải bài toán một cách chính xác.
* Thế nào học tốt và khái quát tốt?
Để huấn luyện một mạng và xét xem nó thực hiện tốt đến đâu, ta cần xây dựng một hàm mục
tiêu (hay hàm giá) để cung cấp cách thức đánh giá khả năng hệ thống một cách không nhọc nhằng.
Việc chọn hàm mục tiêu là rất quan trọng bởi vì hàm này thể hiện các mục tiêu thiết kế và quyết định
thuật toán huấn luyện nào có thể được áp dụng. Để phát triển một hàm mục tiêu đo được chính xác
cái chúng ta muốn không phải là việc dễ dàng. Một vài hàm cơ bản được sử dụng rất rộng rãi. Một
trong số chúng là hàm tổng bình phương lỗi (sum of squares error function),
trong đó:
p: số thứ tự mẫu trong tập huấn luyện
i : số thứ tự của đơn vị đầu ra
tpi và ypi : tương ứng là đầu ra mong muốn và đầu ra thực tế của mạng cho đơn vị đầu ra thứ
i trên mẫu thứ p.
Trong các ứng dụng thực tế, nếu cần thiết có thể làm phức tạp hàm số với một vài yếu tố khác
để có thể kiểm soát được sự phức tạp của mô hình.
Trong quá trình học, mạng cố gắng điều chỉnh các tham số sao cho tổng bình phương lỗi là
nhỏ nhất. Khả năng hội tụ của mạng phụ thuộc vào các tham số khởi đầu, còn khả năng tổng quát hóa
thì lại phụ thuộc rất nhiều vào dữ liệu đầu vào. Nếu dữ liệu đầu vào quá nhiều (!) thì có thể dẫn tới
tình trạng luyện mạng mất rất nhiều thời gian và khả năng tổng quát hóa kém, nếu quá ít dữ liệu thì
sai số sẽ tăng.
Ngoài đặc trưng về dữ liệu, một đặc trưng khác trong quá trình huấn luyện mạng cần quan tâm
là nếu số lần thực hiện điều chỉnh các tham số của mạng quá ít sẽ dẫn đến tình trạng là khả năng tổng
quát hóa của mạng rất kém. Bởi vậy, số chu kỳ các mẫu đưa vào mạng cần được xem xét phải lớn
hơn một ngưỡng nào đó (từ vài nghìn cho đến vài chục nghìn lần).
i
. Đầu vào mở rộng này dẫn đến một sửa đổi trong
tính toán input j:
với j = 1, 2, , m. Không giống như associator tuyến tính, các đơn vị trong mô hình Hopfield hoạt
động vừa là đơn vị đầu vào và vừa là đơn vị ra. Tuy vậy, cũng giống như các associator tuyến tính,
một cặp mẫu kết hợp đơn được lưu trữ bằng cách tính toán ma trận trọng số sau: W
k
= X
k
T Y
k
trong đó Y
k
= X
k
để lưu trữ p cặp mẫu kết hợp khác nhau. Bởi vì mô hình Hopfield là một mô hình bộ nhớ
autoassociative, các mẫu, thay vì các cặp mẫu kết hợp, được lưu trữ trong bộ nhớ.
Sau khi mã hóa, mạng có thể được sử dụng cho giải mã. Giải mã trong mô hình Hopfield được
thực hiện bằng cách tìm kiếm đệ quy một mẫu đã lưu trữ tương ứng với một mẫu vào. Với một mẫu
vào X, giải mã được thực hiện bởi việc tính toán inputj và xác định kết quả ra bằng các sử dụng hàm
ra để sinh ra mẫu X'. Mẫu X ' sau đó được đưa trở lại cho các đơn vị xử lý như là một mẫu vào để tạo
ra mẫu X''. Mô hình X'' là một lần được đưa trở lại cho các đơn vị xử lý để tạo ra mẫu X'''. Quá trình
này lặp đi lặp lại cho đến khi mạng ổn định trên một mẫu đã lưu trữ, mà ở đó các tính toán thêm
không làm thay đổi kết quả ra của đơn vị xư lý.
Nếu mẫu vào X là một mẫu không đầy đủ hoặc có chứa một số biến dạng, mẫu đã lưu trữ mà
làm cho mạng ổn định sẽ là mẫu tương tự với X nhất (không có biến dạng) Tính năng này được gọi
sự hoàn chỉnh mẫu và được ứng dụng trong xử lý ảnh.
Trong quá trình giải mã, có nhiều sơ đồ có thể được sử dụng để cập nhật các đầu ra của đơn
vị. Các sơ đồ cập nhật là đồng bộ (song song), không đồng bộ (tuần tự), hoặc kết hợp cả hai (lai).
=
0
1
ij
X
- Gọi d
ij
là khoảng cách từ thành phố i đến thành phố j. Lúc đó bài toán TSP được phát biểu lại
như sau:
Cần cực tiểu hóa hàm mục tiêu tuyến tính sau:
(2.4)
Một chiến lược đơn giản để giải quyết bài toán này là tìm tất cả các hành trình có thể đi được và
tính toán tổng khoảng cách cho mỗi hành trình đó, sau đó chọn hành trình có tổng khoảng cách nhỏ
nhất. Tuy nhiên, nếu có n thành phố thì số thành trình có thể đi được là (n-1)!. Chiến lược này sẽ
không khả thi nếu số thành phố là quá lớn.
Ví dụ: Với 11 thành phố được thăm thì sẽ có 10! = 3628800 hành trình có thể thực hiện được
(bao gồm những hành trình có cùng số thành phố nhưng hướng đi khác nhau) con số này sẽ tăng lên
6.2 tỉ nếu có 13 thành phố. Vì thế thuật toán Hopfield Tank được sử dụng để giải quyết bài toán này
một cách tương đối với số lần tính toán nhỏ nhất.
Một vài ứng dụng của bài toán TSP trong việc xác định mạng lưới phân phát thư, tìm ra đường đi
tối ưu cho các tuyến xe buyt trường học
Câu 4: Hãy giải thích nguyên tắc, cơ chế hoạt động của mạng RBF? Hãy so sánh mạng RBF với
mạng Perceptron 2 lớp?
* Hình vẽ mạng RBF
† Mạng RBF đang ngày càng trở nên phổ biến với các ứng dụng khác nhau
† Hầu hết các cảm hứng cho RBF đều bắt nguồn từ các kỹ thuật phân loại mẫu
truyền thống dựa trên thống kê.
† Đặc trưng cơ bản của mạng RBF
Tách các lớp
không tuyến tính, nên nếu một mẫu nằm gần với tâm của cụm thì khoảng cách sẽ được sẽ được cho
gần bằng 1. Nhưng nếu nằm xa hơn, khoảng cách sẽ có giá trị giảm dần.
Ý tưởng phân cụm của mạng RBF
Như vậy sự phân bố các mẫu trong mỗi cụm được xem là đối xứng xuyên tâm xung quanh
một tâm và do đó hàm ánh xạ (ngưỡng) không tuyến tính được gọi một tên khác là hàm cơ sở xuyên
tâm RBF (radial-basis function).
Hàm xuyên tâm được sử dụng phổ biến nhất cho mạng RBF là hàm Gaussian. Phương trình
biểu diễn hàm Gaussian có dạng hình chuông như sau
Hàm Gaussi được sử dụng cho mạng RBF
trong lớp ẩn, các trọng số biểu diễn tọa độ của tâm cụm. Do vậy, khi nơ-ron nhận một mẫu vào x,
khoảng cách r được tính toán bởi phương trình sau:
và hàm ngưởng của nút ẩn là
trong đó biến sigma δ định nghĩa độ rộng hay bán kính của chuông và thông thường được xác định
bởi thực nghiệm.
* So sánh mạng RBF với mạng Perceptron 2 lớp?
Việc thực hiện huấn luyện mạng RBF là nhanh hơn mạng Perceptrons đa lớp MLP.
Lớp ẩn của mạng RBF là dể diễn dịch hơn là của mạng MLP.
Mặc dù mạng RBF huấn luyện nhanh hơn mạng MLP, nhưng khi sử dụng, tốc độ thực
hiện của mạng RBF lại chậm hơn so với mạng MLP.
Câu 5: Hãy giải thích cơ chế ánh xạ tính chất (đặc điểm) của các lớp mẫu vào lên mạng
Kohonen 2 chiều (2D map)? Tại sao phải chọn 2D map đủ rộng khi số lớp mẫu vào lớn?
* Hình vẽ mạng kohonen
* Bản chất cơ chế hoạt động của mạng Kohonrn:
- Mạng Kohonen hai chiều có 2 lớp đó là lớp vào và lớp ra Kohonen.
Lớp vào (input layer): dùng để đưa dữ liệu huấn luyện vào mạng Kohonen. Kích thước của
lớp vào tương ứng với kích thước của mỗi mẫu học.
Trong mạng Kohonen hai chiều, các neural của lớp ra được sắp xếp trên một mảng 2 chiều.
Mảng này được gọi là lớp ra Kohonen.
Tất cả các Neural của lớp vào đều được nối với các neural trên lớp ra Kohonen. Mỗi liên kết
giữa đầu vào và đầu ra của mạng Kohonen tương ứng với một trọng số. Kích thước của mỗi vector