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

Mạng anfis và ứng dụng cho dự báo mực nước hồ thủy điện thác bà

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.8 MB, 73 trang )

i
ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
_____________

______________

NGUYỄN NGỌC QUYÊN

MẠNG ANFIS VÀ ỨNG DỤNG CHO DỰ BÁO
MỰC NƯỚC HỒ THỦY ĐIỆN THÁC BÀ
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 0101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: PGS.TS Ngô Quốc Tạo

THÁI NGUYÊN - 2016

Số hóa bởi Trung tâm Học liệu – ĐHTN




ii

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu của chính bản
thân. Các kết quả nghiên cứu trong luận văn là trung thực và chưa được công
bố trong các công trình nào khác.


Tác giả luận văn

Nguyễn Ngọc Quyên

Số hóa bởi Trung tâm Học liệu – ĐHTN




iii

LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn chân thành tới thầy PGS.TS. Ngô Quốc Tạo
người đã dìu dắt và giúp đỡ tôi trong cả lĩnh vực nghiên cứu của luận án
cũng như trong công tác chuyên môn và cuộc sống.
Tác giả xin chân thành cảm ơn sự giúp đỡ của các thầ y cô giáo trường
Đa ̣i ho ̣c Công nghệ thông tin và Truyền thông Thái Nguyên đã ta ̣o điều kiêṇ
giúp đỡ tận tình trong viêc̣ nghiên cứu luận văn.
Cuối cùng tác giả xin chân thành cảm ơn sự giúp đỡ của Ban giám hiêu,
̣
Khoa Sau Đại học trường Đa ̣i học Công nghệ thông tin và Truyền thông Thái
Nguyên đã cho phép và ta ̣o điề u kiê ̣n thuâ ̣n lợi để tác giả hoàn thành bản luâ ̣n
văn này.
Tác giả luận văn

Nguyễn Ngọc Quyên

Số hóa bởi Trung tâm Học liệu – ĐHTN





iv

MỤC LỤC
CHƯƠNG 1 : MẠNG NEURAL VÀ BÀI TOÁN NHẬN DẠNG CHỮ IN.................... 3
1.1. Khái Niệm Mạng Neural ...................................................................................................... 3
1.1.1. Sơ lược về neural sinh học ............................................................................................... 3
1.1.2. Mạng Neural Nhân Tạo .................................................................................................... 4
1.1.3. Kiến Trúc Mạng ............................................................................................................... 9
1.1.3.1. Mạng truyền thẳng ...................................................................................................... 10
1.1.3.2. Mạng hồi quy (Recurrent Neutral Network) .............................................................. 12
1.1.4. Luật học mạng neural. ................................................................................................. 13
1.1.4.1. Phương Pháp Học........................................................................................................ 13
1.1.4.2. Luật học tham số ......................................................................................................... 14
1.1.4.3. Học có tín hiệu chỉ đạo................................................................................................ 15
1.1.4.4. Học không có tín hiệu chỉ đạo..................................................................................... 15
1.1.4.5. Học tăng cường ........................................................................................................... 16
1.1.4.6. Học cấu trúc ................................................................................................................ 16
1.1.5. Các phương pháp huấn luyện mạng. .............................................................................. 17
1.1.5.1. Phương pháp huấn luyện một pha .............................................................................. 17
1.1.5.2. Phương pháp huấn luyện hai pha ................................................................................ 17
1.1.5.3. phương pháp huấn luyện mạng hai pha HDH ............................................................. 18
1.1.5.4. Phương pháp huấn luyện ba pha đầy đủ...................................................................... 21
1.2. Bài toán nhận dạng chữ in.................................................................................................. 21
1.2.1. Bài toán nhận dạng nói chung ........................................................................................ 21
1.2.2. Giới thiệu về bài toán nhận dạng mẫu ............................................................................ 22
1.2.3. Bài toán nhận dạng chữ in .............................................................................................. 23
1.2.3.1. Phương pháp trích đặc trưng chữ in sử dụng Momen Legendre ................................. 24


CHƯƠNG 2: NHẬN DẠNG CHỮ IN SỬ DỤNG MẠNG NEURAL ........................... 27
2.1. Thiết kế mạng neural .......................................................................................................... 27
2.2. Huấn luyện mạng neural .................................................................................................... 35
2.2.1 Chuẩn bị tập dữ liệu huấn luyện: .................................................................................... 36
2.2.2 Biểu diễn tri thức tập dữ liệu huấn luyện: ....................................................................... 37
2.2.3 Thuật toán lan truyền ngược: .......................................................................................... 39
2.2.4 Áp dụng trong huấn luyện mạng neural nhận dạng chữ in: ............................................ 45
2.3. Nhận dạng mạng neural ..................................................................................................... 49

CHƯƠNG 3: CHƯƠNG TRÌNH NHẬN DẠNG KÝ TỰ .............................................. 50
3.1. Xác định các tham số cho mạng ......................................................................................... 50
3.2. Xử lý dữ liệu và lựa chọn dữ liệu ....................................................................................... 50
3.2.1. Lấy mẫu xuống hình ảnh ................................................................................................ 50
3.2.2. Xử lý dữ liệu (Phân tích ảnh) ......................................................................................... 52
3.2.2.1. Tách dòng kí tự ........................................................................................................... 52
3.2.2.2. Tách từng kí tự ............................................................................................................ 53
3.3. Một số kết quả ..................................................................................................................... 57

Số hóa bởi Trung tâm Học liệu – ĐHTN




v
3.4. Kết luận ................................................................................................................................ 60
* Về mặt lý thuyết .................................................................................................................... 62
* Về mặt thực tiễn .................................................................................................................... 63
3. Hướng phát triển tiếp theo .................................................................................................... 63
* Nhận dạng chữ viết tay tiếng Việt........................................................................................ 63


Số hóa bởi Trung tâm Học liệu – ĐHTN




vi

DANH MỤC HÌNH
Hình 1.1 : Mô hình neural sinh học.................................................................................... 3
Hình 1.2: Đồ thị hàm đồng nhất (Identity function)......................................................... 6
Hình 1.3: Đồ thị hàm bước nhị phân (Binary step function) ........................................... 6
Hình 1.4: Đồ thị hàm sigmoid ............................................................................................. 7
Hình 1.5: Đồ thị hàm sigmoid lưỡng cực ........................................................................... 8
Hình 1.6. Mô hình một nơ-ron ............................................................................................ 8
Hình 1.7. Mạng truyền thẳng nhiều lớp........................................................................... 12
Hình 1.8. Mạng một lớp có nối ngược .............................................................................. 12
Hình 1.9 . Mạng nhiều lớp có nối ngược .......................................................................... 13
Hình 1.10: Các bước xử lý trong hệ thống nhận dạng mẫu ........................................... 23
Hình 1.11:Các bước giải quyết hình dạng chữ in ........................................................... 24
Hình 2.1: Sơ đồ đồ thị có hướng đơn giản ...................................................................... 27
Hình 2.2: Biên quyết định trong không gian mẫu .......................................................... 30
Hình 2.3: Không gian mẫu khả tách tuyến tính .............................................................. 32
Hình 2.4: Không gian mẫu không khả tách tuyến tính .................................................. 32
Hình 2.5: Mô hình mạng 3 lớp .......................................................................................... 35
Hình 2.6: Các bước huấn luyện ........................................................................................ 47
Hình 3.1: Quá trình xác định dòng của các kí tự ............................................................ 53
Hình 3.2: Tách từng kí tự .................................................................................................. 56
Hình 3.3: Giao diện chương trình mô phỏng .................................................................. 57
Hình 3.4: Nhận dạng chữ tiếng Anh trong ảnh ............................................................... 58
Hình 3.5: Nhận dạng kí tự có dấu .................................................................................... 59

Hình 3.6: Kí tự có dấu ....................................................................................................... 60
Hình 3.7: Kí tự số viết tay ................................................................................................. 64
Hình 3.8: Kí tự tiếng Anh viết tay .................................................................................... 65

Số hóa bởi Trung tâm Học liệu – ĐHTN




1

LỜI MỞ ĐẦU
Từ khi ra đời cho đến nay, máy tính luôn luôn không ngừng phát triển và
đóng một vai trò quan trọng trong nghiên cứu khoa học kĩ thuật, cũng như trong
cuộc sống của con người.
Nhưng máy tính cũng vẫn chỉ là một công cụ do con người sáng tạo ra
và nó sẽ hoạt động theo một chương trình đã được lập trình sẵn của con người.
Nó vẫn không có khả năng liên tưởng, suy luận, kết nối các sự việc một cách
linh hoạt, và quan trọng hơn hết khả năng sáng tạo như bộ não của con người
là không thể.
Việc mô phỏng quá trình hoạt động trí tuệ của con người vào ứng dụng
trong máy tính là một nỗ lực rất lớn và đang được hoàn thiện của các lập trình
viên. Do đó mạng noron(Artificial neural networks) ra đời với mục đích cố
gắng mô phỏng quá trình hoạt động trí tuệ của con người. Các nghiên cứu ứng
dụng đã được thực hiện trong các ngành: điện, điện tử, kỹ thuật chế tạo, y học,
quân sự, kinh tế...và mới nhất là các nghiên cứu ứng dụng trong lĩnh vực quản
lý dự án xây dựng
Bài toán nhận dạng là bài toán sử dụng các tính năng của mạng neural
nhiều nhất. Bài toán nhận dạng với sự trợ giúp của mạng neural ngày nay đã
không còn dừng ở mức độ nghiên cứu nữa mà nó trở thành một lĩnh vực để áp

dụng vào thực tế. Trong số các bài toán nhận dạng này, nhận dạng chữ viết
đang được ứng dụng rất phổ biến. Nhận dạng chữ viết được ứng dụng trong
quá trình tự động hóa các công việc văn phòng như nhập liệu, trữ văn bản, sách
báo, phân loại thư tín....
Trong cuộc chạy đua về trí tuệ nhân tạo của thế giới thì hai công ty lớn
của làng công nghệ thế giới là Google và Apple thì Google cũng đã đưa ra
Google glass sử một nên tảng rất mới và hoạt động chính trên bài toán nhận
dạng. Ngoài ra việc xử lý các kí tự để số hoá tài liệu để có thể tìm kiếm thông
tin trên các tài liệu cũng được Google nghiên cứu phát triển.

Số hóa bởi Trung tâm Học liệu – ĐHTN




2

Mới đây nhất trong hội nghị các nhà phát triển của Apple thì đại gia làng
công nghệ của thế giới đã công bố một thư viện chuyên sâu về mạng neural để
việc ứng dụng mạng neural trong các bài toán thực tế trong việc xây dựng các
ứng dụng trên nền tảng của Apple. Trong lần giới thiệu về bộ thư việc này thì
đã được hưởng ứng nhiệt tình bởi Apple đã cung cấp được một bộ thư viện hỗ
trợ việc huấn luyện mạng trong các ứng dụng thực tế và nó sẽ là đặc biệt ứng
dụng trong bài toán nhận dạng. Các dòng điện thoại thông minh đang càng ngày
được phổ biến với cấu hình mạnh mẽ thì chắc chắn hoàn toàn có thể đáp ứng
được việc xây dựng các mạng neural vào để thực hiện các bài toán nhận dạng.
Bài toán nhận dạng kí tự này sẽ phát triển mạnh mẽ trong số hoá các văn bản
truyền thống và ngoài ra ứng dụng bài toán nhận dạng hoàn toàn có thể giúp
cho những người khiếm thị có thể nghe được các văn bản chuyển thể từ nhận
dạng chữ sang dạng số hoá rồi có thể tái hiện lại bằng âm thanh giúp những

người này có thể tiếp cận các tri thức của nhân loại. Hầu hết các công ty công
nghệ hàng đầu đều đi sâu vào việc nghiên cứu các hướng huấn luyện máy tính
học được kiến thức của con người. Nên bản thân em cũng muốn tìm hiểu về
mạng neural trong việc xây dựng một mạng neural trong bài toán nhận dạng.
Mục đích của luận văn là trình bày các kết quả nghiên cứu lý thuyết
phục vụ chủ đề “Nghiên cứu mạng neural nhận dạng chữ in tiếng anh”.
Để hoàn thành bài tiểu luận này, em đã được sự hướng dẫn nhiệt tình từ thầy
PGS.TS. Ngô Quốc Tạo. Những bài giảng và tài liệu của thầy chính là cơ sở để em
có thể hoàn thành tốt báo cáo của mình. Em xin chân thành cảm ơn thầy.

Số hóa bởi Trung tâm Học liệu – ĐHTN




3

CHƯƠNG 1 : MẠNG NEURAL VÀ BÀI TOÁN NHẬN DẠNG CHỮ IN
1.1. Khái Niệm Mạng Neural
1.1.1. Sơ lược về neural sinh học
Bộ não con người có khoảng 1010 tế bào thần kinh liên kết chặt chẽ với
nhau được gọi là các nơ-ron. Sau đây là những thành phần chính của một nơ ron

Hình 1.1 : Mô hình neural sinh học
Trong đó :
 Các Soma là thân của neural.
 Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu
(dưới dạng xung điện thế) đến cho soma xử lý. Bên trong soma các dữ liệu
đó được tổng hợp lại. Có thể xem gần đúng sự tổng hợp ấy như là một phép
lấy tổng tất cả các dữ liệu mà neural nhận được.

 Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon. Khác với
dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn
tín hiệu từ neural đi các nơi khác. Chỉ khi nào điện thế trong soma vượt quá

Số hóa bởi Trung tâm Học liệu – ĐHTN




4

một giá trị ngưỡng nào đó (threshold) thì axon mới phát một xung điện thế,
còn nếu không thì nó ở trạng thái nghỉ.
 Axon nối với các dendrites của các neural khác thông qua những mối nối
đặc biệt gọi là synapse. Khi điện thế của synapse tăng lên do các xung phát
ra từ axon thì synapse sẽ nhả ra một số chất hoá học (neurotransmitters);
các chất này mở "cửa" trên dendrites để cho các ions truyền qua. Chính
dòng ions này làm thay đổi điện thế trên dendrites, tạo ra các xung dữ liệu
lan truyền tới các neural khác.
- Hoạt động của neural sinh học có thể mô tả tóm tắt như sau:
Mỗi neural 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 neural khác thông qua dây thần kinh. Các
neural 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.2. Mạng Neural Nhân Tạo
Để mô phỏng các tế bào thần kinh và các khớp nối thần kinh của bộ não
con người, mạng neural nhân tạo có các thành phần có vai trò tương tự là các
neural nhân tạo và kết nối giữa chúng (kết nối này gọi là weights). Neural là
một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến từ một

khớp nối thần kinh (synapse). Đặc trưng của neural là một hàm kích hoạt phi
tuyến chuyển đổi một tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín
hiệu đầu ra.
Một neural nhân tạo là một đơn vị tính toán hay đơn vị xử lý thông tin
cơ sở cho hoạt động của một mạng neural.
Neural này sẽ hoạt động như sau: giả sử có N inputs, nơron sẽ có N
weights (trọng số) tương ứng với N đường truyền inputs. Neural sẽ lấy tổng các
trọng số của tất cả các inputs. Nói như thế có nghĩa là neural sẽ lấy input thứ
Số hóa bởi Trung tâm Học liệu – ĐHTN




5

nhất, nhân với weight trên đường input thứ nhất, lấy input thứ hai nhân với
weight của đường input thứ hai v.v..., rồi lấy tổng của tất cả các kết quả thu
được. Đường truyền nào có weight càng lớn thì tín hiệu truyền qua đó càng lớn,
như vậy có thể xem weight là đại lượng tương đương với synapse trong neural
sinh học.
 Trọng số và tổng tín hiệu đầu vào:
Giả sử tại neural i có N tín hiệu vào, mỗi tín hiệu vào S j được gán một
trọng số W ij tương ứng. Ta ước lượng tổng tín hiệu đi vào neural net i
theo một số dạng sau:
(i)Dạng tuyến tính:
N

neti  Wij s j

(1.1)


j 1

(ii)Dạng toàn phương:
N

neti  Wij s 2j

(1.2)

j 1

(iii)Dạng mặt cầu:
neti   

s
N

2

j 1

j

 w ij 

2

(1.3)


Trong đó:  và w ij  j  1, N  lần lượt là tâm và bán kính mặt cầu
 Hàm kích hoạt (hàm chuyển):
Một số hàm kích hoạt thường được sử dụng:
1) Hàm đồng nhất (Linear function, Identity function)
g(x) = x

(1.4)

Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này. Có khi một
hằng số được nhân với net-input tạo thành một hàm đồng nhất.

Số hóa bởi Trung tâm Học liệu – ĐHTN




6

Hình 1.2: Đồ thị 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òn gọi là hàm ngưỡng (Threshold function hay Heaviside
function). Đầu ra của hàm này giới hạn một trong hai giá trị:

ì1 (x ³ q )
g(x) = í
î0 (x < q )

(1.5)

ở đây  là ngưỡng


Hình 1.3: Đồ thị hàm bước nhị phân (Binary step function)
Dạng hàm này thường sử dụng trong mạng một lớp. Trong hình vẽ 
được chọn bằng 1.
3) Hàm sigmoid (Sigmoid function (logsig))
Hàm sigma là dạng chung nhất của hàm kích hoạt được sử dụng trong cấu
trúc mạng neural nhân tạo. Nó là một hàm tăng và nó thể hiện một sự trung
gian giữa tuyến tính và phi tuyến. Một ví dụ của hàm này là hàm logistics, xác
định như sau:
g( x) 

1
1  e  x

Số hóa bởi Trung tâm Học liệu – ĐHTN

(1.6)




7

ở đó  là tham số độ dốc của hàm sigma. Bằng việc biến đổi tham số  ,
chúng ta thu được các hàm sigma với các độ dốc khác nhau. Thực tế, hệ số góc
tại x= 0 là  /4. Khi tham số hệ số góc tiến tới không xác định, hàm sigma trở
thành một hàm ngưỡng đơn giản. Trong khi một hàm ngưỡng chỉ có giá trị là
0 hoặc 1, thì ở đó  là tham số độ dốc của hàm sigma. Bằng việc biến đổi tham
số  , chúng ta thu được các hàm sigma với các độ dốc khác nhau. Trong khi
một hàm ngưỡng chỉ có giá trị là 0 hoặc 1, thì một hàm sigma nhận các giá trị

từ 0 tới 1. Cũng phải ghi nhận rằng hàm sigma là hàm phân biệt, trong khi hàm
ngưỡng thì không (Tính phân biệt của hàm là một đặc tính quan trọng trong lý
thuyết mạng neuron). Hàm này thường được 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 nó dễ
lấy đạo hàm, làm giảm đáng kể tính toán trong quá trình huấn luyện. Hàm được
dùng cho các chương trình ứng dụng mà đầu ra mong muốn rơi vào khoảng
[0,1].

Hình 1.4: Đồ thị hàm sigmoid
4)Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tan(sig))
g( x) 

Số hóa bởi Trung tâm Học liệu – ĐHTN

1 e x
1 e x

(1.7)




8

Hàm này có đặc tính tương tự hàm sigmoid. Hàm 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].

Hình 1.5: Đồ thị hàm sigmoid lưỡng cực
 Nút bias:
Là một nút thêm vào nhằm tăng khả năng thích nghi của mạng nơ-ron

trong quá trình học. Trong các mạng nơ-ron có sử dụng bias, mỗi nơ-ron có thể
có một trọng số tương ứng với bias. Trọng số này luôn có giá trị là 1.
Mô hình của một nút xử lý (nút thứ i):
Vi
Wi1
Vj

Wij

Ui= 

Vi=fi(Ui)

Vi

WiN
VN

Hình 1.6. Mô hình một nơ-ron
N

U i   Wij Vj  θ i
j 1
j #i

Vi  f i U i 

Số hóa bởi Trung tâm Học liệu – ĐHTN

(1.8)


(1.9)




9

Trong đó:
U i : là tín hiệu vào tại nơ-ron i
Vi : là tín hiệu ra tại nơron i

Wij : là trọng số liền kề từ nơ-ron j đến nơ-ron i

 i : là ngưỡng (đầu vào ngoài) kích hoạt nơ-ron i.
f i : là hàm kích hoạt của nơ-ron i

1.1.3. Kiến Trúc Mạng
Mạng neural nhân tạo là một hệ thống bao gồm nhiều phần tử xử lý đơn
giản (hay còn gọi là neural) tựa như neural thần kinh của não người, hoạt động
song song và được nối với nhau bởi các liên kết neural. Mỗi liên kết kèm theo
một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các neural.
Việc ứng dụng 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 người du lịch, bài toán tô màu bản đồ, bài toán xếp loại, bài
toán lập thời khóa biểu, bài toán tìm kiếm, bài toán nhận dạng mẫu... Các bài
toán phức tạp cao, không xác định. Tuy nhiên, sự liên kết giữa một bài toán bất
kỳ trong thực tế với một giải pháp mạng neural lại là một việc không hề dễ
dàng.
Xét một cách tổng quát, mạng neural mang các đặc tính nổi bật sau :
 Là mô hình toán học dựa trên bản chất của neural.

 Bao gồm một số lượng rất lớn các neural liên kết với nhau. Mạng
neural có khả năng học, khái quát hóa 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 neural khả năng tính
toán rất lớn, trong đó không có neural nào mang thông tin riêng biệt.

Số hóa bởi Trung tâm Học liệu – ĐHTN




10

1.1.3.1. Mạng truyền thẳng
- Mạng truyền thẳng một lớp
Mạng truyền thẳng một lớp là mạng perceptron một lớp. Là mạng truyền
thẳng chỉ một lớp vào và một lớp ra. Trên mỗi lớp có thể có một hoặc nhiều
neural mạng truyền thẳng một lớp chỉ có một lớp vào và một lớp ra. Mô hình
mạng neural perceptron sử dụng hàm ngưỡng đóng vai trò là hàm chuyển. Do
đó, tổng của tín hiệu vào lớn hơn giá trị ngưỡng thì giá trị đầu ra của neural sẽ
là 1, còn trái lại sẽ là 0.

ì1 (neti ³ q )
outi = í
î0 (neti < q )
Với neti =

w

ij


xj

(1.10)

là tổng thông tin đầu vào của neural i.

Trong đó ma trận trọng số cho các phần tử trong vector đầu vào W:
 w1,1 w1, 2 ...w1, R 


w2,1 w2, 2 ...w2, R 

W =
...................... 


 wS ,1 wS , 2 ...wS , R 



Với mỗi giá trị đầu vào. x  x1, x2, ..., xn



T

. Qua quá trình xử lý của

mạng ta sẽ thu được một bộ tương ứng các giá trị đầu ra là y  y1, y2, ..., yn 


T

được xác định như sau :

 m

yi  f i   wij x j  i , i  1, n
 j 1


(1.11)

Trong đó :
m : Số tín hiệu vào
n : Số tín hiệu ra
WiT wi1 , wi 2 ,..., win T

: là véc tơ trọng số của neural thứ i.

Số hóa bởi Trung tâm Học liệu – ĐHTN




11

fi

: Là hàm kích hoạt neural thứ i


i :

Là ngưỡng của neural thứ i.

Ngay từ khi mạng Perceptron được đề xuất nó được sử dụng để giải quyết bài
toán phân lớp. Một đối tượng sẽ được neural i phân vào lớp A nếu :

m : Số tín hiệu vào
n : Số tín hiệu ra
Tổng thông tin đầu vào

w

ij

xj

> i

Trong trường hợp trái lại neural sẽ được phân vào lớp B.
Mạng truyền thẳng nhiều lớp (Multilayer Perceptron –MLP)
Nếu dùng mạng neural truyền thẳng một lớp ở trên để phân tích một bài
toán phức tạp sẽ gặp nhiều khó khăn. Do vậy để khắc phục những khó khăn đó
người ta đưa ra mô hình mạng neural truyền thẳng nhiều lớp bằng việc kết hợp
các lớp neural lại với nhau. Loại mạng này có 3 lớp
 Lớp vào là lớp nhận tín hiệu vào
 Lớp ra là lớp đưa tín hiệu ra
 Lớp ẩn là lớp ở giữa lớp vào và lớp ra các neural trong lớp
này có hàm chuyển dạng phi tuyến

Do vậy mạng neural nhiều lớp có thể giải quyết các bài toán phi tuyến
nhờ vào các lớp ẩn. Càng nhiều lớp ẩn thì khả năng mở rộng thông tin càng cao
và xử lý tốt mạng

Số hóa bởi Trung tâm Học liệu – ĐHTN




12

x1

Lớp vào

Lớp ẩn

Lớp ra
y1

x2

y2
yn

xm

Hình 1.7. Mạng truyền thẳng nhiều lớp
Mỗi nút trong lớp vào nhận giá trị của một biến độc lập và chuyển vào
mạng. Dữ liệu từ tất cả các nút trong lớp vào được tích hợp – ta gọi là tổng

trọng số – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút
trong lớp này chỉ liên lạc với các nút trong lớp vào và lớp ra, và chỉ có người
thiết kế mạng mới biết lớp này (người sử dụng không biết lớp này).
Các nút trong lớp ra nhận các tín hiệu tổng trọng hóa từ các nút trong
lớp ẩn. Mỗi nút trong lớp ra tương ứng với một biến phụ thuộc.
1.1.3.2. Mạng hồi quy (Recurrent Neutral Network)
Mạng hồi quy một lớp có nối ngược
X1

Y1

X2

...
XN

Y2

...

...
YM

Hình 1.8. Mạng một lớp có nối ngược

Số hóa bởi Trung tâm Học liệu – ĐHTN





13

Mạng hồi quy nhiều lớp có nối ngược.
X1

Y1

X2

Y2

...

...

...

...

XN

YM

Hình 1.9 . Mạng nhiều lớp có nối ngược
1.1.4. Luật học mạng neural.
1.1.4.1. Phương Pháp Học
Bộ não muốn hoạt động một cách nhanh nhạy và chuẩn xác thì cần một
quá trình tích lũy kinh nghiệm và thích nghi với môi trường. Do vậy tiến trình
học là một tiến trình quan trọng của con người để bộ não có thể tích lũy kinh
nghiệm và thích nghi với môi trường để xử lý tình huống một cách tốt hơn.

Mạng neural được xây dựng lại theo cấu trúc bộ não thì cũng phải cần
có khả năng nhận biết dữ liệu thông qua tiến trình học. Các thông số tự do của
mạng có thể thay đổi liên tục bởi những thay đổi của môi trường và mạng neural
cần phải ghi nhớ giá trị đó.
Quá trình học có thể được thực hiện như sau:
- Giá trị đầu vào được đưa vào mạng và theo dòng chảy trong mạng tạo
thành giá trị đầu ra.
- Quá trình so sánh giá trị tạo ra bởi mạng neural với giá trị mong muốn.
Nếu hai giá trị này giống nhau thì không thay đổi gì cả. Tuy nhiên, nếu có một
sai lệch giữa hai giá trị này vượt quá giá trị sai số mong muốn thì đi ngược
mạng từ đầu ra về đầu vào để thay đổi một số kết nối.
Đây là quá trình lặp lại liên tục và có thể không dừng khi không tìm được
giá trị W sao cho đầu ra tạo bởi mạng neural bằng đúng đầu ra mong muốn. Để
có thể dừng quá trình lặp này người ta sẽ thiết lập một tiêu chuẩn dựa vào giá
Số hóa bởi Trung tâm Học liệu – ĐHTN




14

trị sai số giữa hai giá trị hoặc số lần lặp. Công thức tính sai lệch giữa hai giá trị
là:
e=t–y
kí hiệu : y là giá trị kết xuất của mạng nơ-ron
t là giá trị ra mong muốn,
e là sai lệch giữa hai giá trị này
Cấu trúc song song của mạng neural là một ưu điểm lớn so với máy tính
truyền thống, nó rất thích hợp cho những ứng dụng đòi hỏi tốc độ nhanh theo
thời gian thực. Khả năng huấn luyện của mạng neural có thể khai thác để phát

triển hệ thống thích nghi. Mặt khác, với khả năng tổng quát hóa của mạng
neural, nó có thể áp dụng để điều khiển nhiều tham số phức tạp đồng thời từ đó
giải quyết dễ dàng một số bài toán thuộc lớp bài toán NP- đầy đủ (NPComplete).
Cách đơn giản về khái niệm học của mạng neural là cập nhật trọng số
trên cơ sở các mẫu. Rộng hơn thì luật học có thể chia ra làm hai loại là học
tham số và học cấu trúc. Các luật học đóng vai trò quan trọng trong việc xác
định một mạng neural nhân tạo
1.1.4.2. Luật học tham số
Học tham số là nhằm tìm kiếm ma trận 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à:
Wij  rx j , i  1, N , j  1, M

(1.12)

Trong đó:
Wij : là sự thay đổi trọng số liên kết từ neural j đến neural i.

x j : là tín hiệu vào neural j.

 : là tốc độ học, nằm trong khoảng (0,1).
r

: là hằng số học.

Số hóa bởi Trung tâm Học liệu – ĐHTN




15


Hằng số học r sẽ được xác định theo 3 cách tương ứng với 3 luật học
trong luật học tham số để hiệu chỉnh trọng số của mạng.
1.1.4.3. Học có tín hiệu chỉ đạo
Trong quá trình học mạng sẽ dựa vào sai số giữa đầu ra thực tế và đầu
vào mong muốn để làm cơ sở cho quá trình hiệu chỉnh trọng số. Sai số này
chính là hằng số học r
Luật học điển hình của nhóm này là luật học Delta của Widrow (1962)
nêu ra đầu tiên dùng để xấp xỉ trọng của Adaline dựa trên nguyên tắc giảm
gradient.
Luật học Perceptron của Rosenblatt (1958) luật Perceptron thì thêm hoặc
bỏ trọng số tùy theo giá trị sai số dương hay âm.
Ngoài ra còn một luật học khác cũng dựa trên tư tưởng đó như luật học
Oja là cải tiến và nâng cấp của luật Delta, luật truyền ngược lại mở rộng luật
Delta cho mạng nhiều lớp. Đối với mạng truyền thẳng thường sử dụng luật
truyền ngược để chỉnh trọng số với tín hiệu chỉ đạo từ bên ngoài và người ta
gọi mạng này là mạng lan truyền ngược.
1.1.4.4. Học không 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 các trọng
số liên kết. Hay trong luật này chính là tín hiệu ra của mạng.
Điển hình 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) dùng cho mạng tự tổ chức một lớp thuộc
lớp mạng ánh xạ đặc trưng của Kohonen. Luật học Hebb cho rằng: Giữa hai
neural có quan hệ và có thay đổi thế năng thì giữa chúng có sự thay đổi trọng
số liên kết.
Trọng số được điều chỉnh theo mối tương quan trước và sau, nghĩa là:
Wij  yi x j , i  1, N , j  1, M

Số hóa bởi Trung tâm Học liệu – ĐHTN


(1.13)




16

Trong đó:
Wij là sự thay đổi trọng số liên kết từ neural j đến neural i.
x j: là tín hiệu vào neural j.
yi

là tín hiệu ra của neural i.

 là tốc độ học, nằm trong khoảng (0,1).

Luật Hebb giải thích việc chỉnh trọng trong phạm vi cục bộ của mạng mà
không cần tín hiệu chỉ đạo từ bên ngoài. Hopfield cũng cải tiến luật Hebb cho
các mạng tự liên kết thành 16 dạng khác nhau theo kiểu luật Hebb, luật đối
Hebb, luật Hopfield...
1.1.4.5. Học tăng cường
Luật học này dựa vào cơ sở thông tin phản hồi chỉ là tín hiệu bao gồm
hai trạng thái cho biết tín hiệu đầu ra của mạng là đúng hay sai. Quá trình học
dựa trên các thông tin hướng dẫn như vậy được gọi là học có củng cố (học tăng
cường) và tín hiệu mang thông tin phản hồi được gọi là tín hiệu củng cố cho
quá trình học. Ta có thể thấy rằng quá trình học này là một dạng của quá trình
học có tín hiệu chỉ đạo bởi vì mạng nhận được một số thông tin phản hồi từ bên
ngoài.
1.1.4.6. Học cấu trúc
Luật học của học cấu trúc là tìm kiếm các tham số của cấu trúc mạng, để

tìm ra một cấu trúc mạng hoạt động tốt nhất. Thực tế việc học cấu trúc là tìm
ra số lớp ẩn và tìm ra số neural trên mỗi lớp đó. Giải thuật di truyền thường
được sử dụng trong các cấu trúc nhưng thường chạy rất lâu, kể cả đối với mạng
có kích thước trung bình. Ngoài ra kỹ thuật gọt tỉa mạng hay mạng tăng dần
cũng được áp dụng trong việc học cấu trúc của mạng có kích thước tương đối
nhỏ.

Số hóa bởi Trung tâm Học liệu – ĐHTN




17

1.1.5. Các phương pháp huấn luyện mạng.
1.1.5.1. Phương pháp huấn luyện một pha
𝑛

Xét tập dữ liệu huấn luyện {𝑥 𝑘 , 𝑦 𝑘 }𝑘=1 ;(𝑥 𝑘 𝜖𝑅𝑛 , 𝑦 𝑘 𝜖𝑅𝑛 ) chọn tâm vk của
các hàm bán kính trong đó vk⊂ {xk}nk=1, còn các bán kính k được gán giá trị là
k=

1

1 (trong đó M là số hàm cơ sở bán kính, n là số neurol đầu vào).
(2𝑀) ⁄𝑛

Giá trị của các tham số wk thường được tìm ra bằng các phương pháp
học có giám sát như phương pháp giả nghịch đảo hoặc phương pháp tụt dốc
Gradient. Về bản chất thì hai phương pháp này đều tìm các trọng số wk để giá

trị E2 đạt cực tiểu.
1) Phương pháp giả nghịch đảo
Tập dữ liệu huấn luyện đã cho trên, giả sử mạng của ta có M neural ở
tầng ẩn. Xét ma trận HMxN như sau HMxN = k(𝑥 𝑖 )=𝑒

−|𝑥𝑖 −𝑣𝑘 |2
k

Và ma trận Y là ma trận hàng các 𝑦 𝑘 khi đó giá trị của các 𝑤𝑘 được tính:
W=𝐻+ Y trong đó 𝐻 + = (𝐻𝑇 𝐻)−1 𝐻𝑇
2) Phương pháp tụt dốc Gradient
Trong phương pháp này đầu tiên tham số 𝑤𝑘 được tạo ra ngẫu nhiên sau
đó được cập nhật bằng công thức 𝑤𝑘 (𝑖 + 1) = 𝑤𝑘 (𝑖) +𝑤𝑘
𝑖
𝑖
i
𝑤𝑘 = ∑𝑁
𝑖=1 𝑘 (𝑥 ) (𝑦 − (x )) đây là xét một neural đầu ra. Hệ số 

được gọi là tốc độ học. Nếu  nhỏ thì giá trị của các trọng số w tiến chậm đến
điểm cực tiểu. Nếu  lớn thì giá trị của các trọng số w thường dao động quanh
điểm cực tiểu vậy để tìm được giá trị  hợp lý thì phải qua quá trình thực nghiệm
1.1.5.2. Phương pháp huấn luyện hai pha
Với phương pháp huấn luyện hai pha các giá trị 𝑣𝑘 và bán kính 𝑘 của
hàm cơ sở bán kính 𝑘 được tính bằng các thuật toán sau :
Thuật toán phân cụm k-mean
Số hóa bởi Trung tâm Học liệu – ĐHTN





18

- Phát biểu bài toán: cho tập dữ liệu X={𝑥1, 𝑥2 …..,𝑥𝑛 };𝑥𝑛 ∈𝑅𝑑 phân tập dữ
liệu này thành k tập nhỏ
{𝑆1 ,𝑆2 ….,𝑆𝑘 }:(𝑘 < 𝑛; ∏𝑘𝑖=1 𝑆𝑖 = ; ⋃𝑘𝑖=1 𝑠𝑖 = 𝑋) để thỏa mãn
2

Arg min∑𝑘𝑖=1 ∑𝑥𝑗∈𝑆𝑖 ‖𝑥𝑗 − 𝑖 ‖ với 𝑖 là tâm của tập 𝑆𝑖
- Bước 1: tạo các cụm
(𝑡)

𝑆𝑖 = {𝑥𝑗 :‖𝑥𝑗 − 𝑖 ‖ ≤ ‖𝑥𝑗 − 𝑖 ∗ ‖; ∀𝑖 ∗ =1,k}
- Bước 2: điều chỉnh lại tâm
(𝑡+1)

𝑖

=

1
(𝑡)

|𝑆𝑖 |

∑𝑥

(𝑡)
𝑗 ∈𝑆𝑖


𝑥𝑖

Khi {1 , 2 … , 𝑘 } không có sự thay đổi giá trị thì thuật toán sẽ dừng lại
1.1.5.3. phương pháp huấn luyện mạng hai pha HDH
𝑛

Xét tập huấn luyện {𝑥 𝑘 , 𝑦 𝑘 }𝑘=1 ;(𝑥 𝑘 𝜖𝑅𝑛 , 𝑦 𝑘 𝜖𝑅𝑚 ) không mất tính tổng quát,
ở đây ta xét mạng neural có một neural output (m=1), khi đó biểu diễn toán học
của mạng là:
𝑖
𝜙(𝑥 𝑖 ) = ∑𝑁
𝐾=1 𝑤𝑘 𝜙𝑘 (𝑥 ) + 𝑤0=𝑦 𝑖

(1)
𝑖

Xét ma trận 𝜃 = (𝜑𝑘,𝑖 )𝑁×𝑁 trong đó 𝜑𝑘,𝑖 = 𝜑𝑘 (𝑥 𝑖 ) = 𝑒 −‖𝑥 −𝑥

𝑘 ‖2 ⁄ 𝜎 2
𝑘

chú ý rằng ở đây ta chọn tâm của các hàm cơ sở bán kính chính là tất cả các
điểm thuộc tập dữ liệu input X.
𝑤1
𝑧1
Ta kí hiệu I là ma trận đơn vị cấp N; W=[ … . ], Z=[ … ] là các vec tơ trong
𝑤𝑁
𝑧𝑁
không gian N chiều 𝑅𝑁 trong đó:
𝑧𝑘 = 𝑦𝑘 𝑤0 , ∀𝑘 ≤ 𝑁


(2)

Và đặt Ψ = Ι − Φ = [𝜓𝑘,𝑗 ]𝑁×𝑁

(3)

Số hóa bởi Trung tâm Học liệu – ĐHTN




19

Thì
0 ∀𝑘 = 𝑗

𝜓𝑘,𝑗 = { −‖𝑥 𝑗−𝑥 𝑘‖2 ⁄𝜎2
𝑘 ∀𝑘 ≠ 𝑗
−𝑒

(4)

Khi đó hệ phương trình (1) tương đương với hệ
W=Ψ𝑊 + 𝑍

(5)

Với các tham số 𝜎𝑘 đã chọn và 𝑤0 tùy ý, hệ (1) và do đó hệ (5) luôn có
duy nhất nghiệm W. Về sau giá trị 𝑤0 được chọn là trung bình cộng của các giá

trị 𝑦 𝑘 :
1

𝑘
𝑤0 = ∑𝑁
𝑘=1 𝑦
𝑁

(6)

Với mỗi k ≤ 𝑁, ta có hàm 𝑞𝑘 của 𝜎𝑘 xác định như sau :
𝑞𝑘 = ∑𝑁
𝑗=1|𝜓𝑘,𝑗 |

(7)

Hàm 𝑞𝑘 là đơn điệu tăng và với mọi số dương q < 1 luôn tồn tại giá trị 𝜎𝑘
sao cho 𝑞𝑘 (𝜎𝑘 ) = 𝑞
Mô tả thuật toán
Với sai số 𝜀 và các hằng số dương q, 𝛼 < 1 cho trước, thuật toán bao gồm
2 pha để xác định các tham số 𝜎𝑘 và 𝑊 ∗ . Trong pha thứ nhất, ta sẽ xác định các
𝜎𝑘 để 𝑞𝑘 < 𝑞 và gần với q nhất (nghĩa là nếu thay 𝜎𝑘 = 𝜎𝑘 ⁄𝛼 thì 𝑞𝑘 > 𝑞). Vì
vậy, với mọi k, chuẩn của ma trận Ψ tương ứng với chuẩn vec tơ ‖. ‖. ( cho bởi
công thức dưới đây) thuộc đoạn này. Pha sau tìm nghiệm gần đúng 𝑊 ∗ của (5)
bằng phương pháp lặp đơn giản. thuật toán được đặc tả như sau
Proceduce thuật toán 2 pha huấn luyện mạng neural
for k=1 to N do
xác định các 𝜎𝑘 để 𝑞𝑘 < 𝑞, và nếu thay 𝜎𝑘 = 𝜎𝑘 ⁄𝛼 thì 𝑞𝑘 > 𝑞 ; // pha 1
Tìm 𝑊 ∗ bằng phương pháp lặp đơn (hoặc phương pháp lặp Seidel); // pha 2
End

Để tìm nghiệm 𝑊 ∗ của hệ (5) ta thực hiện thủ tục lặp như sau:
Số hóa bởi Trung tâm Học liệu – ĐHTN




×