Tải bản đầy đủ (.pdf) (60 trang)

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Tìm hiểu mạng neural nhân tạo và giải thuật di truyền

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 (1.34 MB, 60 trang )

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114
NHẬN XÉT CỦA GIẢNG VIÊN






























CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114
MỤC LỤC
LỜI CÁM ƠN 1
LỜI NÓI ĐẦU 2
CHƢƠNG 1: MẠNG NEURAL NHÂN TẠO 3
I. Tổng quan về mạng Neural nhân tạo 3
1. Giới thiệu 3
2. Lịch sử phát triển của mạng neural: 4
3. Biểu diễn một mạng Neural 4
4. Các vấn đề thích hợp cho việc học bằng mạng Neural 5
II. Cơ sở lý thuyết cho Mạng Neural 6
1. Dữ liệu huấn luyện: 6
2. Neural nhân tạo (Đơn vị xử lý): 6
3. Mạng Neural Nhân tạo: 10
4. Các kiến trúc của mạng Neural: 10
5. Đào tạo Huấn luyện Mạng Neural: 12
III. Thuật toán lan truyền ngược: 14
1. Thuật toán Backpropagation: 14
2. Chứng minh - Đạo hàm của thuật toán lan truyền ngược: 15
3. Thuật toán lan truyền ngược với đơn vị signmoid: 17
IV. Đánh giá mạng Neural: 20
1. Các bài toán thích hợp với mạng Neural: 20
2. Ưu nhược điểm của mạng Neural: 21
CHƢƠNG 2 : GIẢI THUẬT DI TRUYỀN 23
I. Tổng quan về thuật giải di truyền 23
II. Các thao tác cơ bản: 24
1. Mã hóa: 24
2. Phát sinh quần thể ban đầu: 25

3. Hàm đánh giá và hàm thích nghi: 25
4. Các toán tử di truyền: 26
5. Các tham số của thuật giải: 27
III. Các toán tử và kỹ thuật di truyền nâng cao 28
1. Thể lưỡng bội (Diploidy), thể trội (Dominicance) và thể khuyết (Abeyance): 28
2. Thể đa bội (Multiploid): 30
3. Một số toán tử vi mô tái thiết lập thứ tự: 31
4. Vùng thích nghi (Niche) và sự hình thành loài (Speciation): 35
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114
5. Tối ưu hóa đa mục tiêu: 42
6. Tối ưu tổ hợp: 43
CHƢƠNG 3: BÀI TOÁN PHÁT THƢ TPHCM 44
I. Giới thiệu Bưu Điện Thành Phố: 44
II. Bài toán lấy thư hằng ngày: 46
KẾT LUẬN 56
TÀI LIỆU THAM KHẢO 57














CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 1
LỜI CÁM ƠN

Đầu tiên, em xin chân thành cám ơn thầy GS.TSKH Hoàng Kiếm đã truyền đạt hết sức
nhiệt tình cho chúng em những kiến thức quý báu trong môn Công nghệ tri thức và ứng
dụng để em hoàn thành đề tài này.
Em cũng xin gửi lời cám ơn chân thành đến các thầy cô trong trường Đại học Công
Nghệ Thông Tin đã tận tình giúp đỡ em trong thời gian học vừa qua.
Xin cảm ơn tất 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ài này.


TPHCM, ngày 09 tháng 10 năm 2014
Lớp CH08
Học viên thực hiện

Huỳnh Thanh Việt








CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 2
LỜI NÓI ĐẦU


Cuộc sống của chúng ta luôn có rất nhiều vấn đề được đặt ra đòi hỏi ta cần phải giải
quyết. Máy tính giúp chúng ta giải quyết các vấn đề một cách chính xác và thông minh.
Sau khi hoàn thành môn học Công nghệ tri thức và ứng dụng do thầy Hoàng Kiếm
phụ trách em đã nắm bắt được một số kiến thức quan trọng về nghiên cứu phân tích tri thức
và ứng dụng vào các bài toán trong thực tế.
Trong bài báo cáo này em xin được nếu một vài điểm tìm hiểm về mạng neural nhân tạo
và thuật giải di truyền. Từ thuật giải di truyền em đã xây dựng một chương trình demo giải
bài toán phát thư cho khu vực TPHCM.

















CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 3
CHƢƠNG 1: MẠNG NEURAL NHÂN TẠO
I. Tổng quan về mạng Neural nhân tạo
1. Giới thiệu

Nghiên cứu về mạng Neural đã được quan tâm từ những năm 40 của thế kỉ 20.
Khoảng những năm 1990, mạng Neural được đặc biệt chú ý vì những khả năng ứng dụng
rộng của nó. Chỉ tính riêng ở Mỹ có đến 50 tổ chức trong các viện nghiên cứu cũng như
trường đại học nghiên cứu về mạng Neural.
Lý thuyết mạng Neural được xây dựng dựa trên mô hình các Neural của não bộ con
người. Trong đó, mỗi Neural sẽ kết nối với rất nhiều các Neural khác để tạo nên một mạng
lưới các Neural được kết nối rất phức tạp. Mặc dù tốc độ chuyển đổi nhanh nhất của các
Neural trong não người chỉ là 10
-3
giây, khá chậm khi so sánh với tốc độ của máy tính là
10
-10
giây, nhưng con người lại có khả năng đưa ra quyết định trong thời gian rất nhanh.
Điều này có nghĩa là hệ thống mạng lưới sinh học này đã xử lý thông tin song song trên
nhiều Neural cùng lúc. Dựa vào đó, người ta cũng đã phát triển ra các mô hình tính toán
phân tán trên mạng Neural nhân tạo. Mặc dù mạng Neural nhân tạo dựa trên hệ thống
Neural sinh học, tuy nhiên hệ thống sinh học vẫn tỏ ra cực kỳ phức tạp mà không thể được
mô hình hóa trong mạng nhân tạo.
Tương tự như hoạt động của não bộ, mạng Neural nhân tạo không thể được lập trình
trước để đưa ra cách giải quyết cho một vấn đề như các phương pháp thông thường. Mạng
Neural học bằng cách rèn luyện qua các ví dụ. Các ví dụ này cũng phải được chọn lọc và
chuẩn hóa cẩn thận để tránh việc lãng phí thời gian hoặc thậm chí làm cho cả hệ thống hoạt
động không chính xác.
Do các ưu điểm của mạng Neural nhân tạo đem lại mà nó đã được áp dụng vào trong
nhiều lĩnh vực khác nhau như:
- Phân tích đầu tư: dự đoán giá cổ phiếu, giá vàng… từ các dữ liệu đã có trước đó
- Phân tích chữ ký viết tay.
- Điều khiển các quy trình trong công nghiệp và doanh nghiệp.
- Quản lý - theo dõi: ví dụ theo dõi trạng thái động cơ máy bay.
- Marketing: tìm ra mối liên hệ giữa dữ liệu về khách hàng đó và các phản ứng của

khách hàng sau khi nhận được quảng cáo.

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 4
2. Lịch sử phát triển của mạng neural:
Các quá trình phát triển của mạng Neural được chia làm 4 giai đoạn :
 Giai đoạn 1: Mạng Neural bắt đầu từ nghiên cứu của William(1980) về tâm lý học và
sự liên kết các Neural thần kinh . Đến năm 1940, Mc Culloch và Pitts đã chứng minh
các Neural có thể mô hình hóa như những thiết bị giới hạn ( hay thiết bị ngưỡng) để
giải quyết các phép tính logic và mô hình mạng Neural của Mc Culloch – Pitts cùng
với giải thuật huấn luyên của Hebb ra đời 1943.
 Giai đoạn 2: Vào khoảng 1960 một số mô hình Neural hoàn thiện hơn ra đời như mô
hình Perceptron do Rosenblatt (1958), Adalile của Widrow(1962),…. Cả hai mô hình
này cho đến hiện nay vẫn được dùng rộng rãi nhưng nó có một số nhược điểm . Ví dụ
như mô hình Perceptron, theo Marvin Minsky và Seymour Papert của MIT chứng
minh nó không dùng được cho các hàm logic phức(1969).Còn Adalie là mô hình
tuyến tính, tự điều 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: Giai đoạn này có thể tính là bắt đầu từ thập niên 80. Chúng ta có thể kể
đến những đóng góp của Grossberg, Kohonen, Rumelhart, Hopfield…Đặc biệt là
đóng góp của Hopfield gồm 2 mạng phản hồi: Mạng rời rạc 1982 và mạng liên tục
1984
 Giai đoạn 4: Từ năm 1987 đến nay, hàng năm thế giới đều mở ra các hội nghị toàn
cầu chuyên ngành Neural IJCNN. 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, điều khiển, bài toán tối ưu …
3. Biểu diễn một mạng Neural
Hình dưới đây là một ví dụ tiêu biểu cho mạng Neural được Pomerleu đề xuất trong hệ
thống ALVINN, hệ thống này là hệ thống lái xe tự động trên đường cao tốc. Dữ liệu đầu
vào của mạng Neural này là một ảnh gồm 30x32 ô, mỗi ô là 1 pixel thu từ camera được gắn
phía trước xe. Hệ thống này được huấn luyện để bắt chước cách lái xe của người lái xe trong

khoảng 5 phút sau đó ALVINN đã tự động lái xe được quãng đường 90 dặm với tốc độ
trung bình 70 dặm một giờ.
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 5
Hình bên trái cho
thấy cách thức mà
hình ảnh thu được
từ camera được ánh
xạ thành 960 dữ
liệu đầu vào mạng
Neural, và sau đó
dữ liệu này được
đưa vào 4 đơn vị ẩn
kết nối với 30 đơn
vị đầu ra. Biểu đồ
phía bên phải thể
hiện các giá trị
trọng số của một trong những đơn vị ẩn trong mạng này. Ma trận lớn phía dưới thể hiện cho
30x32 trọng số của các dữ liệu đầu vào, trong đó ô màu trắng thể hiện cho trọng số dương,
còn ô màu đen thể hiện trọng số âm. Trọng số khi dữ liệu truyền từ các đơn vị ẩn cho các
đơn vị đầu ra được thể hiện bằng khối chữ nhật nhỏ phía bên trên.
4. Các vấn đề thích hợp cho việc học bằng mạng Neural
Mạng Neural thích hợp để giải quyết các vấn đề mà có dữ liệu huấn luyện có nhiễu,
dữ liệu phức tạp từ các cảm biến (như từ camera hoặc microphone). Ngoài ra mạng Neural
cũng có thể được áp dụng cho các vấn đề mà các biểu diễn mô hình thường dùng, ví dụ
Decision Tree.
Thuật toán BackPropagation là thuật toán được dùng thông dụng nhất trong các kĩ
thuật học của mạng Neural. Nó thích hợp cho những vấn đề có các đặc điểm sau:
- Các dữ liệu huấn luyện được biểu diễn bằng các cặp thuộc tính-giá trị
- Giá trị của hàm mục tiêu có thể là giá trị rời rạc, liên tục hoặc là một vector của các

giá trị rời rạc hoặc liên tục
- Trong các dữ liệu học có thể chứa lỗi.
- Cho phép học trong thời gian dài.
- Ước lượng nhanh các hàm mục tiêu.
- Con người không cần phải hiểu hàm mục tiêu


Mạng Neural trong hệ thống ALVINN

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 6
II. Cơ sở lý thuyết cho Mạng Neural
1. Dữ liệu huấn luyện:
Đặc điểm của mạng Neural đó là phải trải qua giai đoạn huấn luyện dựa trên một tập hợp
các dữ liệu huấn luyện.Dữ liệu huấn luyện là một cặp < > mà ở đó mỗi input cho ta một
output tương ứng. Đối với mạng Neural nhân tạo, là vector chứa các giá trị rời rạc hoặc
liên tục, còn là một giá trị liên tục hoặc rời rạc duy nhất.
Xét bảng giá trị sau:
Diện tích (feet
2
)
Số phòng ngủ
Giá tiền (1000$s)
2104
3
400
1600
3
330
2400

3
369
1416
2
232
3000
4
540
….
….
….

Đây là một tập hợp dữ liệu huấn luyện với dữ liệu đầu vào là diện tích và số phòng
ngủ của căn nhà, còn dữ liệu đầu ra là giá tiền của căn nhà đó. Sau khi được huấn luyện với
bộ dữ liệu này, mạng Neural nhân tạo có thể đưa ra được dự đoán giá của một căn nhà khi
biết diện tích và số phòng ngủ của nó.
2. Neural nhân tạo (Đơn vị xử lý):
Neural nhân tạo là Neural mô phỏng theo Neural sinh học. Nó là đơn vị cơ bản của mạng
Neural. Cũng giống như Neural sinh học ở chỗ nếu như Neural sinh học có nhiều dây thần
kinh để có thể tiêp nhận đồng thời nhiều dữ liệu thì Neural nhân tạo cũng có nhiều tín hiệu
đầu vào.Mỗi tín hiệu đầu vào của Neural nhân tạo được gán cho một trọng số w
ij
. Nó tiếp
nhận các đầu vào, xử lí các tín hiệu đầu vào này và cho một tín hiệu đầu ra tương ứng để
truyền đến các Neural (Đơn vị xử lí khác).
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 7


Trong mô hình một Neural nhân tạo như trên, thì:

- U
i
là tích = x
1
.w
1
+ x
2
.w
2
+ … x
n
.w
n

- f(U
i
) là hàm kích hoạt của Neural. Hàm kích hoạt có nhiệm vụ chuyển tổng
các tích của dữ liệu đầu vào và trọng số thành một giá trị duy nhất. Hai hàm thông dụng
được dùng đó là hàm ngưỡng và hàm xích ma.
Bên cạnh các giá trị đầu vào có từ dữ liệu huấn luyện, các Neural nhân tạo này còn kèm
theo một giá trị đầu vào cố định gọi là giá trị bias x
0
= 1. Bởi vì như ta biết trong mạng
Neural nhân tạo thì có hai tham số có thể được điều chỉnh: các trọng số w
i
và giá trị ngưỡng
của hàm kích hoạt. Điều này là không thực tế và sẽ dễ dàng hơn nếu chỉ có một tham số cần
phải điều chỉnh. Để giải quyết điều này, người ta đưa giá trị bias thêm vào. Khi đó, tổng các
giá trị đầu vào sẽ được tính là:

U = x
0
w
0
+ x
1
w
1
+ x
2
w
2
+ … + x
n
w
n

2.1 Perceptron:
Perceptron là một loại đơn vị xử lý của một mạng Neural do Rosenblatt đề xuất.
Perceptron có vai trò giống như một Neural nhân tạo. Perceptron nhận vào 1 vector các giá
trị thực, sau đó tổ hợp tuyến tính vector này được 1 giá trị y. Perceptron có một đầu ra
(output), giá trị của đầu ra là sgn(y).
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 8

Mô hình toán học của Perceptron:

Với:
 sgn() là hàm ngưỡng
 x

i
là các thành phần của vector .


là độ lệch (Bias).
 w
i
là trọng số ứng với mỗi x
i

Perceptron có thể được dùng để biểu diễn cho nhiều hàm bool như AND hoặc OR.
Giả sử ta xem giá trị 1 là true, giá trị -1 là false thì một cách sử dụng perceptron có hai dữ
liệu đầu vào để cài đặt hàm AND là thiết lập giá trị w
0
= -0.8 và w
1
= w
2
= 0.5. Perceptron
này cũng có thể dùng để biểu diễn hàm OR bằng cách thiết lập giá trị w
0
= -0.3
2.2 Đơn vị xích ma (Sigmoid Unit):
Sự hạn chế của Perceptron là không thể biểu diễn các hàm phi tuyến tính vì hàm ngưỡng của
nó. Thế nên Hàm xích ma được đề xuất ra để
giải quyết vấn đề này. Đơn vị xích ma sử dụng
hàm  là hàm kích hoạt. Hàm xích ma có dạng:
(x) =
Vì vậy output của Đơn vị xứ lí Xích ma
sẽ là :


Mô hình của Perceptron

Hàm Xích ma
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 9

Đặc điểm của hàm  là không tuyến tính và ta có thể lấy đạo hàm rất dễ dàng. Đơn vị
xích ma khá giống với Perceptron, nhưng có hàm kích hoạt dựa trên một hàm ngưỡng trơn
và có thể đạo hàm được.

Một đặt tính của hàm xích ma là thuận lợi với việc sử dụng thuật toán lan truyền
ngược để huấn luyện cho mạng Neural sử dụng đơn vị xích ma bởi nó dễ lấy đaọ hàm, do đó
có thể giảm đáng kể các tính toán trong quá trình huấn luyện. Đạo hàm của  được tính như
sau:





= 



1  




Hàm này làm việc tốt khi yêu cầu đầu ra của nó nằm trong khoảng [0,1]

2.3 Một số đơn vị sử dụng một số hàm kích hoạt khác:
- Hàm McCuloch-Pitts:


- Hàm McCuloch-Pitts trễ:


- Hàm lưỡng cực: Bipolar Sigmoid (tansig)
Với g(x) =

Mô hình của Đơn vị xích ma
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 10
Hàm này cũng có những đặc tính khá thuận lợi giống như hàm Xích ma nhưng nó làm
việc tốt với đầu ra nằm trong khoảng [-1,1].
3. Mạng Neural Nhân tạo:
Mạng Neural nhân tạo (Artificial Neural Network - ANN) là là một cấu trúc mạng được
hình thành nên bởi nhiều Neural nhân tạo liên kết với nhau và xử lý các thông tin bằng cách
thay đổi trạng thái của nó theo dữ liệu đầu vào.
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 Neural có thể giải
quyết được các lớp 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 Neural còn giải quyết được lớp bài toán sử dụng
dữ liệu không đầy đủ, xung đột mờ hoặc không chắc chắn. 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: i) 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; ii) Không
gian nghiệm có thể rỗng , có nghiệm duy nhất hoặc một có một số nghiệm bình đẳng như
nhau. Ngoài ra còn thích hợp để tìm nghiệm của những bài toán mà đầ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ạng Neural nhân tạo lại là một việc không phải đơn giản.
Mạng Neural 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:
- Bao gồm một số lượng lớn các Neural liên kết với nhau với nhiều cấu trúc khác nhau
– tùy theo yêu cầu bài toán.
- Là mô hình dựa trên bản chất của Neural sinh học.
- Có khả năng học và khái quát hóa dữ liệu học thông qua việc gán và hiệu chỉnh các
tring số liên kết.
- Tổ chức theo kiểu riêng biệt mang lại cho Neural khả năng tính toán rất lớn, Trong
đó không noron nào mang thông tin riêng biệt.
4. Các kiến trúc của mạng Neural:
4.1 Mạng truyền thẳng:
Là mô hình liên kết cơ bản và đơn giản nhất của một tập hợp các Neural. Các Neural
này tổ chức lại với nhau tạo thành các lớp, tìn hiệu được truyền lần lượt qua các lớp theo 1
hướng nhất định.
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 11
Mạng truyền thẳng có thể có một hoặc nhiều lớp, thế nhưng mạng truyền thẳng 1 lớp
với cấu trúc đơn giản rất khó để có thể biểu diễn những bài toán phức tạp và các hàm phức
tạp nên các mạng truyền thẳng thường được sử dụng nhiều lớp.
Các lớp của mạng truyền thẳng là :
- Lớp đầu vào : Là các lớp nhận tín hiệu. (input layer)
- Lớp đầu ra : Là các lớp đưa tín hiệu ra ngoài. (output layer)
- Lớp ẩn : là các lớp trung gian giữa lớp đầu vào và lớp đầu ra (hidden layer)

4.2 Mạng hồi quy:
Là kiến trúc mạng Neural mà trong đó tồn tại ít nhất 1 liên kết ngược từ lớp sau lên lớp
trước nó hoặc có các liên kết được hình thành bởi các Neural trong cùng một lớp.


Mô hình mạng Hồi qui có 1 lớp nối ngược



Mô hình mạng hồi quy có nhiều lớp nối ngược
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 12
Các mô hình mạng hồi quy thường gây cho ta khó khăn khi phân tích và thiết kế các
thuật toán học cho nó so với các mạng truyền thẳng.
5. Đào tạo Huấn luyện Mạng Neural:
Ngày nay để giải quyết các bài toán, các vấn đề đặt ra trong các lĩnh vực trong đời sống
xã hội người ta vẫn sử dụng đến máy tính với những chương trình đặt thù. Có nhiều cách
tiếp cận để giải quyết các vấn đề, các bài toán. Cách thông dụng nhất là lập trình. Thế nhưng
lập trình đòi hỏi tư duy, kinh nghiệm của con người, giải quyết cho từng trường hợp và từng
vấn đề cụ thể. Một cách khác để giải quyết các vấn đề trong các hệ sinh học đó là đào tạo -
huấn luyện (training). Ta lấy một ví du : bản thân con người không được lập trình nhưng có
thể làm 1 bài toán đơn giản dựa vào các ví dụ đã cho sẵn ,…. Dĩ nhiên, để làm được điều
này thì máy tính phải có có khả năng học và chúng ta phải có những dữ liệu huấn luyện
(example training) phù hợp. Mộ trong những giải pháp để giúp máy tính đạt được những
khả năng đó là Mạng Neural với những tính chất sau:
- Các mạng Neural hoạt động như các hệ thông tin có thể đào tạo được, thích nghi và
thậm chí là tự tổ chức cho chính mình.
- Các mạng Neural phát triển các chức năng dựa trên dữ liệu đào tạo mẫu.
- Các mạng Neural có thể được cung cấp những kiến trúc tính toán dựa trên đào tạo
hơn là thiết kế.
Việc đào tạo và huấn luyện mạng Neural là quá trình làm cho mạng Neural có thêm
những chức năng dựa trên những dữ liệu mẫu có sẵn thông qua các thuật toán học hay các
luật học đã được cài đặt sẵn cho mạng Neural.
 Luật học:
Các luật học đóng vai trò quyết định trong việc đào tạo huấn luyện các mạng Neural
nhân tạo.Nó quyết định trực tiếp đến khả năng học, thích nghi cảu mạng Neural. Một khác
niệm đơn giản về việc 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.
Luật học qui tắc chung để cập nhật các trọng số này. Hiểu theo nghĩa rộng hơn thì học có

thể được chia làm 2 loại: Học tham số và học cấu trúc.
 Học tham số:
Là các luật học mà ở đó mạng Neural tìm kiếm các trọng số sao cho mạng có khả năng
đưa ra dự báo sát với thực tế.Dạng chung của luật học tham số là :

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 13
Với : là độ tăng của trọng số liên kết từ Neural j đến Neural i
là tín hiệu vào Neural j.
 là tốc độ học ( hay là mức học, learning rate)
r là hằng số học.
Việc tìm giá trị r phù hợp để hiệu chỉnh trọng số của mạng Neural là vô cùng quan
trọng.
Ta có thể chia học tham số ra thành các trường hợp thành một số nhánh nhỏ sau : Học
có chỉ đạo, học tăng cường và học không có chỉ đạo:
- Học có chỉ đạo: Là quá trình học dựa vào sai số giữa đầu ra thực và đầu ra mong
muốn làm cơ sở cho việc hiệu chỉnh trọng số.Các luật học điển hình của nhánh này
là luật Delta của Widrow(1962) nêu ra dùng để xấp xỉ trọng số của Adaline (1 dạng
mạng Neural truyền thẳng) theo nguyên tắc giảm gradient, luật học Perceptron của
Rosenblatt(1958), Luật Oja (cải tiến và nâng cấp từ luật Delta), luật lan truyền
ngược – phát triển từ luật Delta dùng cho mạng nhiều lớp.
- Học có tín hiệu chỉ đạo: Luật học này sử dụng đầu ra của mạng làm cơ sở hiệu chỉnh
trọng số liên kết. Điển hình cho nhánh này là luật Hebb(1949) thường dùng cho các
mạng tự liên kết. Luật LVQ(Learning Vector Quantization) thường dùng cho các
mạng tự tổ chức một lớp ánh xạ đặc trưng của Kohonen.
- Học tăng cường: Trong một số trường hợp, thông tin phản hồi chỉ là những tín hiệu
cho biết đầu ra của mạng là đúng hay sai.Quá trình học dựa theo những hướng dẫn
như vậy gọi là học tăng cường và tín hiệu phản hồi là tín hiệu củng cố cho quá trình
học. Nó cũng gần như là học có tín hiệu chỉ đạo.
 Học Cấu trúc:

Là quá trình học bằng cách đi tìm các tham số của cấu trúc của mạng để từ đó xây dựng
nên một cấu trúc hợp lí nhất cho mạng Neural giúp mạng hoạt động tốt nhất. Nhưng trong
thực tế việc này tốn rất nhiều thời gian ngay cả với mạng có kích thước nhỏ.Thường sử
dụng các giải thuật di truyền hay kĩ thuật gọt tỉa

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 14
III. Thuật toán lan truyền ngƣợc:
Thuật toán lan truyền ngược được đề xuất bởi Rumelhart, Hinton và Williams năm
1986 Nhằm tính toán các trọng số, là cơ sở cho việc huấn luyện các mạng Perceptron nhiều
lớp. Nó mở đường cho việc sử dụng các Mạng Neural nhân tạo bởi vì trước đó.
1. Thuật toán Backpropagation:
Đầu vào:
- Dữliệuhuấnluyện H
- Tốc độc học : .
- Số lượng đơn vị đầu vào n
in

- Số lượng đơn vị đầu ra n
out

- Số lượng lớp ẩn : n
layer

- Số lượng đơn vị trong trong lớp ẩn i : n
layer(i)

Mô tả:
- Dữ liệu huấn luyện là tập hợp các cặp vector < >. Trong đó là vector các giá
trị đầu vào, là vector các giá trị đầu ra.

- Giá trị từ đơn vị xử lý I vào j kí hiệu x
ji
với trọng số tương ứng là w
ji.

Khởi tạo:
- Tạo một mạng truyền thẳng với các khai báo  , n
in
,n
out
,n
layer
,n
layer(i)
i[1 n
layer
].
- Khởi tạo các giá trị w
ji
ban đầu ngẫu nhiên phù hợp (Các giá trị này cố gắng để
gần với độ tụ nhằm rút ngắn thời gian hội tụ).
Thuật toán: Cho đến khi gặp điều kiện dừng thì thực hiện các lệnh sau:
- Với mỗi cặp < > trong tập dữ luyện huấn luyên H, thực thi:
Lan truyền thẳng theo từng đơn vị dọc theo mạng:
a) Tính các o
u
của mỗi đơn vị khi input vào mạng đầu vào .
b) Với mỗi đầu ra của mạng ta tính các giá trị 
k
theo công thức

Với f là hàm ngưỡng của Đơn vị xử lý
c) Với mỗi đơn vị ẩn tính 
k
theo công thức:

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 15
Với Downstream(j) là tập hợp các đơn vị liên kết trưc tiếp với đơn vị j và
nhận đầu ra của đơn vị j là đầu vào
d) Tính lại các trọng số theo công thức:

2. Chứng minh - Đạo hàm của thuật toán lan truyền ngƣợc:
Ta gọi tổng lỗi trên ví dụ d của 1 giả thuyết là ½ tổng bình phương độ chênh lệch giữa
các tín hiệu đầu ra của 1 đơn vị xử lí lớp output và mục tiêu của t của nó (E là thước đo độ
lỗi, E được tính 1 cách tương đối theo công thức dưới)

Theo đó thuật toán lan truyền ngược sẽ làm giảm đi E
d
nhằm giảm đi dần độ lỗi của
các lớp output này tức là giảm đi độ chênh lệch của các output o
k
so với mục tiêu t
k

Để làm giảm độ chênh lệch này thì thuật toán thực hiện thủ tục:


Theo đó sẽ được tính theo công thức
(1)
Vì:

Và độ giảm của E :

Phân tích công thức (1) theo cách tính đạo hàm của hàm hợp ta có :
(2)

Trong đó net
j
là tích vector đầu vào và vector trọng số vào đơn vị xử lí j.
X
ji
là tín hiệu đầu vào từ đơn vị xử lí i vào đơn vị xử lí j.

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 16
Trường hợp 1: Nếu như đơn vị xử lí là đơn vị output
Ta sử dụng luật tính đạo hàm hợp, ta được:

Mà:

(Vì kj thì đạo hàm bằng 0)
Đạo hàm ra ta được :


Mặt khác :

Với f là hàm kích hoạt của đơn vị xử lý j
Vậy:

Ta kí hiệu rằng 
i

(với i là đơn vị output) có giá trị là thì
sẽ có giá trị là :

Trường hợp 2: Nếu như đơn vị xử lí là đơn vị ẩn (hidden unit):
Ta có:

Với Downstream(j) là tập hợp các đơn vị liên kết trưc tiếp với đơn vị j và nhận đầu ra
của đơn vị j là đầu vào.
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 17

Ta kí hiệu rằng 
i
(với i là đơn vị ẩn) có giá trị là thì sẽ có giá trị là :

Với:


3. Thuật toán lan truyền ngƣợc với đơn vị signmoid:
3.1 Tiếp cận:
Đơn vị signmoid sử dụng hàm signmoid là hàm kích hoạt vì nó dễ dàng cho việc tích
phân và dễ tính. Nó cũng là hàm phi tuyến thể nên với khả năng của mình kết hợp với mạng
Neural nhiều lớp nó gần như biểu diễn được mọi lớp hàm, không chỉ riêng hàm tuyến tính
như khi sử dụng perceptron.
Ta có hàm sigmoid :

Và đạo hàm của hàm signmoid :

Vì vậy Các giá trị  được viết lại như sau :
Với j là các đơn vị output ta có:


Với j là các đơn vị ẩn ta có:

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 18

3.2 Phát biểu thuật toán lan truyền ngƣợc với mạng truyền thẳng đơn vi
Signmoid:
3.2.1 Thuật toán Backpropagation
Đầu vào:
- Dữ_liệu_huấn_luyện H
- Tốc độc học : .
- Số lượng đơn vị đầu vào n
in

- Số lượng đơn vị đầu ra n
out

- Số lượng lớp ẩn : n
layer

- Số lượng đơn vị trong trong lớp ẩn i : n
layer(i)

Mô tả:
- Dữ liệu huấn luyện là tập hợp các cặp vector < >. Trong đó là vector các giá trị
đầu vào, là vector các giá trị đầu ra.
- Giá trị từ đơn vị xử lý I vào j kí hiệu x
ji
với trọng số tương ứng là w

ji.

Khởi tạo:
- Tạo một mạng truyền thẳng với các khai báo  , n
in
,n
out
,n
layer
,n
layer(i)
i[1 n
layer
].
- Khởi tạo các giá trị w
ji
ban đầu ngẫu nhiên phù hợp (Các giá trị này cố gắng để gần
với độ tụ nhằm rút ngắn thời gian hội tụ).
Thuật toán: Cho đến khi gặp điều kiện dừng thì thực hiện các lệnh sau:
- Với mỗi cặp < > trong tập dữ luyện huấn luyên H, thực thi:
Lan truyền thẳng theo từng đơn vị dọc theo mạng .
a) Tính các o
u
của mỗi đơn vị khi input vào mạng đầu vào .
b) Với mỗi đầu ra của mạng ta tính các giá trị 
k
theo công thức

c) Với mỗi đơn vị ẩn tính 
k

theo công thức:

Với Downstream(j) là tập hợp các đơn vị liên kết trưc tiếp với đơn vị j và
nhận đầu ra của đơn vị j là đầu vào
d) Tính lại các trọng số theo công thức:
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 19

3.2.2 Momentum
Ta sử dụng một hằng số ( 0 < <1 ) được gọi là momentum nhằm cải thiện hiệu suất
của thuật toán lan truyền ngược.
là một hằng số bổ sung vào công thức update các trọng số , các công thức update
được sửa lại như sau :

Theo công thức này thì

w
ji
(n) là

w
ji
lần update thứ n của w
ji

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 20
IV. Đánh giá mạng Neural:
1. Các bài toán thích hợp với mạng Neural:
Bài toán phân lớp (classification)

- Dùng trong việc quản lí các đối tượng đa biến là phân loại (phân lớp các đối tượng
trong vào các nhóm, nhóm con, hay chủng loại). Vi dụ : phân loại ảnh, nhận dạng
mẫu,…
- Khi phân loại một quyết định phức tạp, chúng ta phải bắt đầu với việc nghiên cứu
các mối liên quan giứa nhiều đối tượng đối tượng và các yếu tố tạo nên sự khác biệt
giữa các lớp. Có thể nói việc xây dựng 1 lớp và các quyết định phải được thực hiện
trươc skhi thủ tục học được tiến hành. Nếu kết quả cuối cùng không thỏa mãn chúng
ta cần phải xem xét lại cách biểu diễn các cây phân lớp hoặc thay đổi cả hai.
Mô hình hóa (modening):
- Các hệ thống phân định các câu trả lời rời rạc như có, không hoặc một số nguyên
định danh các đối tượng đầu vào thuộc lớp nào. Mô hình hóa yêu cầu hệ thống phải
sản sinh ra các câu trả lời mang tính liên tục. Trong quá trình mô hình hóa cần một
số lượng nhỏ các số liệu để xây dựng mô hình. Mô hình này có thể đưa ra các dự
báo cho tất cả các đối tượng đầu vào.Việc tìm ra 1 đường phù hợp với các số liệu
thực nghiệm là một tring những ứng dung thuộc dạng này. Trong bất kỳ loại mô
hình nào cũng phải tuân theo một giả định là : các thay đổi nhỏ của tín hiệu đầu vào
cũng chỉ gây rấtt hay đổi nhỏ trong tín hiệu đầu ra.
- Trong các phương pháp mô hình hóa cổ điển, các hệ số có thể có 1 ý nghĩa nào đó
nhưng mạng Neural thì các trọng số của nó không có ý nghĩa gì với vấn đề cần giải
quyết. Nhưng nhìn nhận ở một mặt nào đó ta có thể thấy ưu thế hơn hẳn của mạng
Neural so với những phương pháp cổ điển.
- Đối với việc chọn dữ liệu huấn luyện, chúng ta cần quan tâm tới sự phân bổ của các
đối tượng dùng để học. Nếu số lượng đối tượng dùng cho việc học là it và được
phân bố đều trong toán không gian, khi đó số liệu có thể được dùng để mô hình
ngay. Nếu không, nếu các đối tượng là nhiều và phân bố ngẫu nhiên trong không
gian biếnthì ta phải giảm thiểu sao cho chúng bao trùm cả không gian, sau đó mới
sử dụng được số liệu.
Biến đổi, thực hiện ánh xạ từ không gian đa biến này vào không gian đa biến khác
tương ứng (transformation add mapping):
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG

Huỳnh Thanh Việt – CH1301114 Trang 21
- Gần như đây là những phép biến đổi 1-1 . Các dữ liệu huấn cấn phải có đủ các
trường hợp biến đổi và sự phân bố phải đều như nhau trong dữ liệu huấn luyện thì
mạng mới có khả năng học chính xác dựa vào dữ liệu đó.
Liên kết và kĩ thuật chuyển cửa sổ aosiation and moving window):
- Liên kết là tìm đối tượng đích có mối quan hệ với một đối tượng khác hoặc thậm chí
ngay khi đối tượng vào bị hỏng hoặc hoàn toàn không biết. Theo một nghĩa nào đó,
thì liên kết cũng coi như là phân loại. Thủ tục học cho vấn đề này có tín hiệu chỉ
đạo.
- Kỹ thuật dịch chuyển cửa sổ có thể được sử dụng đề giải quyết các vấn đề chuỗi các
sự kiện và đối tượng như trong các lĩnh vực về môi trường theo thời gian, kiểm soát
hư hỏng.
 Các lĩnh vực ứng dụng của mạng Neural:
Kể từ khi ra đời mạng Neural ứng dụng rất nhiều linh vực. ta có thể đưa ra một số ví dụ cụ
thể như sau:
- Xử lý ảnh, nhìn máy: phân tích ảnh, nén ảnh,….
- Xử lý tín hiệu : Phân tích tín hiệu địa chấn và hình thái học.
- Nhận dạng mẫu: Gồm việc phân tách các nét đặc biệt của mẫu, phân loại và phân
tích tín hiệu của Rada,….
- Y học : phân tích điện tâm đồ, chuẩn đoán bệnh,…
- Quân sự : Các hệ phát hiện thủy lôi, phân loại luồng rada, nhận dạng người nói,…
- Các hệ phân tích tài chính
- Trí tuệ nhân tạo : hệ chuyên gia ,…
- Dự đoán
- Quy hoạch, kiểm tra và tìm kiếm
2. Ƣu nhƣợc điểm của mạng Neural:
2.1 Ƣu điểm:
- Xử lý song song: các thao tác tính toán trong mạng Neural nhân tạo có thể được
thực hiện song song cùng lúc. Các phần cứng và phần mềm chuyên dụng có thể được thiết
kế để tận dụng tính năng này.

-Thiết kế hệ thống tích nghi.
-Không đòi hỏi đặc trưng của bài toán, chỉ dựa trên dữ liệu học tập.
- Chấp nhận lỗi.
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Huỳnh Thanh Việt – CH1301114 Trang 22
2.2 Nhƣợc điểm
- Không có các quy tắc hoặc hướng dẫn thiết kế cấu trúcmạng Neural cho từng ứng
dụ cụ thể. Việc lựa chọn số lượng lớp (layer) và số đơn vị trong mỗi lớp là chủ yếu dựa vào
thực nghiệm.
-Không có cách tổng quát để đánh giá hoạt động bên trong mạng.
-Việc học đối với mạng có thể khó (hoặc không thể) thực hiện.
-Khó mà đoán trước được hiệu quả của mạng trong tương lai. Có thể bộ dữ liệu huấn
luyện được cung cấp cho mạng chưa đầy đủ, như vậy có thể dẫn đến mạng hoạt động sai.
-Không gần gũi với tư duy của con người. Hầu như chúng ta không thể theo dõi và
hiểu được sự thay đổi của các tham số bên trong mạng. Chúng ta chỉ hy vọng sau khi được
huấn luyện, mạng Neural sẽ có thể giải quyết được vấn đề ta đang gặp phải.
















×