Tải bản đầy đủ (.docx) (26 trang)

Tiểu luận môn Máy học và ứng dụng TÌM HIỂU MẠNG NEURON NHÂN TẠO VÀ DEMO SỬ DỤNG THUẬT TOÁN LAN TRUYỀN NGƯỢC

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 (483.68 KB, 26 trang )

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

TIỂU LUẬN MÔN HỌC
MÁY HỌC VÀ ỨNG DỤNG
ĐỀ TÀI:
GVHD: PGS.TS. Vũ Thanh Nguyên
HVTH: Vũ Phát Lộc
MSHV: CH1301097
TP.HCM, 03/2014
TÌM HIỂU
MẠNG NEURON NHÂN TẠO
VÀ DEMO SỬ DỤNG
THUẬT TOÁN LAN TRUYỀN NGƯỢC
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
LỜI CÁM ƠN
Em xin chân thành cám ơn PGS.TS. Vũ Thanh Nguyên về những kiến thức và
những kinh nghiệm quý báu mà thầy đã truyền đạt lại cho lớp trong phạm vi môn học
“MÁY HỌC VÀ ỨNG DỤNG” thuộc chương trình đào tạo cao học ngành Công nghệ
thông tin tại trường Đại học Công nghệ thông tin – Đại học Quốc gia Thành phố Hồ
Chí Minh. Với những kiến thức đã tiếp thu được từ những bài giảng trên lớp cùng với
những kiến thức tham khảo từ tài liệu em đã hệ thống lại thành bài tiểu luận “Tìm hiểu
mạng neuron nhân tạo và demo sử dụng thuật toán lan truyền ngược”.
Em cũng xin cám ơn các anh, chị và các bạn trong lớp cao học Công nghệ thông tin
khóa 8 về những ý kiến đóng góp trong quá trình học tập và trao đổi trên lớp, trên diễn
đàn.
Với khả năng và thời gian có hạn, bài tiểu luận chắc chắn còn có những thiếu sót
nhất định, kính mong thầy góp ý để em có điều kiện hoàn thiện hơn.
MỤC LỤC
HVTH: VũPhátLộc – CH1301097 Trang2
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên


LỜI MỞ ĐẦU
Ngày nay, các thông tin ngày càng nhiều, hàng ngày ta phải xử lý rất nhiều thông
tin đến từ nhiều nguồn khác nhau. Máy học có thể giúp ta xử lý và dự báo thông tin,
máy học có thể giúp tạo ra được các quyết định từ các dữ liệu có được.Máy học giúp
thiết kế hệ thống huấn luyện tự độngvà giải mã mối liên hệ giữa các tri thức được lưu
trữ.Và mô hình hệ thống huấn luyện tự động đó chính là mô hình hệ thống mạng
neuron nhân tạo. Bài tiểu luận này sẽ trình bày về mạng neuron nhân tạo và demo sử
dụng thuật toán lan truyền ngược.
HVTH: VũPhátLộc – CH1301097 Trang3
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
PHẦN 1. MẠNG NEURON NHÂN TẠO
1. Neuron sinh học
Các nhà khoa học đã cho ta thấy rằng neuron hay tế bào thần kinh là đơn vị cơ sở
đảm nhiệm những chức năng xử lý nhất định hệ thần kinh, bao gồm não, tủy sống và
các dây thần kinh. Mỗi neuron gồm một thân(soma) chứa nhân, hình sao nhiều cạnh
hoặc bầu dục và các sợi. Từ thân phát đi nhiều tua ngắn phân nhánh gọi là sợi nhánh
(dendrite-dây thần kinh vào) và một tua dài, mảnh gọi là sợi trục (axon-dây thần kinh
ra). Dọc sợi trục có thể có những tế bào bao bọc tạo nên bao myelin (myelin sheath).
Sợi trục nối giữa trung ương thần kinh với các cơ quan, chúng đi chung với nhau tạo
thành từng bó gọi là dây thần kinh. Khoảng cách giữa các bao này có những đoạn ngắn
gọi là ranvier (node of ranvier), còn diện tích tiếp xúc giữa những nhánh nhỏ phân từ
tận cùng sợi trục của neuron này với sợi nhánh của neuron khác hoặc cơ quan thụ cảm
gọi là khớp nối(synapse).
Hình 1. Neuron sinh học.
Mỗi neuron có thể có từ vài chục tới vài trăm nghìn khớp nối để nối với các neuron
khác. Các neuron có thể tự sản sinh các liên kết mới với các neuron khác và đôi khi
HVTH: VũPhátLộc – CH1301097 Trang4
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
mạng cácneuron có thể di trú từ vùng này sang vùng khác trong não bộ. Đây chính là
cơ sở quan trọng để giải thích cơ chế học của bộ não con người.Từ những hiểu biết

này, người ta xây dựng và phát triển mạng neuron nhân tạo dựa trên mô hình của
neuron sinh học với mục đích là có thể huấn luyện các mạng neuron nhân tạo này để
chúng có thể giải quyết một số bài toán theo cách của bộ não sinh học thực hiện đồng
thời thông qua đó tìm hiểu các cơ chế nhớ và cách tính toán của bộ não.
Tuy nhiên cần một thời gian dài nữa để các mạng neuron nhân tạo có thể mô phỏng
các hành vi sáng tạo như bộ não.Chẳng hạn như bộ não có thể nhận ra khuôn mặt
người quen trong vòng vài giây trong khi đó máy tính cần thực hiện rất nhiều phép
toán để nhận dạng và trong trường hợp thông tin khuôn mặt như trên không chính xác
hay có sự thay đổi đôi chút thì đó là cả vấn đề đối với máy tính.
2. Triển vọng phát triển của mạng neuron nhân tạo
Mạng neuron nhân tạo đã được ứng dụng trong nhiều lĩnh vực. Chất lượng và số
lượng của chúng tăng lên rất nhanh và hứa hẹn giải quyết nhiều bài toán mà thực hiện
bằng các phương pháp truyền thống là rất khó khăn. Dưới đây liệt kê ra một số ứng
dụng chính của mạng neuron:
• Aerospace: Phi công tự động, giả lập đường bay, các hệ thống điều khiển lái
máy bay, bộ phát hiện lỗi.
• Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ phận tích hoạt
động của xe.
• Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng.
• Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối tượng, nhận
dạng nét mặt, các bộ cảm biến thế hệ mới, xử lý ảnh radar,…
• Electronics: Dự đoán mã tuần tự, sơ đồ chíp IC, điều khiển tiến trình, phân tích
nguyên nhân hỏng chip, nhận dạng tiếng nói, mô hình phi tuyến.
• Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường.
HVTH: VũPhátLộc – CH1301097 Trang5
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
• Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá
mức độ hợp tác, phân tích đường tín dụng, chương trình thương mại qua giấy tờ, phân
tích tài chính liên doanh, dự báo tỷ giá tiền tệ.
• Insurance: Đánh giá việc áp dụng chính sách, tối ưu hoá sản phẩm.

• Bài toán lọc nhiễu
• Xử lý ảnh, xử lý tính hiệu
• ……
3. Mô hình của một neuron nhân tạo
Mô hình toán học của mạng neuron sinh học được đề xuất bởi McCulloch và Pitts,
thường được gọi là neuron M-P, ngoài ra nó còn được gọi là phần tử xử lý và được ký
hiệu là PE (Processing Element).
Mô hình neuron có m đầu vào x
1
, x
2
, , x
m
, và một đầu ra y
i
như sau:
Hình 2. Mô hình một neuron nhân tạo.
Giải thích các thành phần cơ bản:
• Tập các đầu vào: Là các tín hiệu vào của neuron, các tín hiệu này thường
được đưa vào dưới dạng một vector m chiều.
• Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một trọng số
(thường được gọi là trọng số liên kết). Trọng số liên kết giữa tín hiệu vào thứ j cho
HVTH: VũPhátLộc – CH1301097 Trang6
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
neuron i thường được ký hiệu là w
ij
. Thông thường các trọng số này được khởi tạo
ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học
mạng.
• Bộ tổng (Hàm tổng): Thường dùng để tính tổng của tích các đầu vào với

trọng số liên kết của nó.
• Ngưỡng: Ngưỡng này thường được đưa vào như một thành phần của hàm
truyền.
• Hàm truyền: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi neuron. Nó
nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi đầu
ra của mỗi neuron được giới hạn trong đoạn [0,1] hoặc [-1,1]. Các hàm truyền rất đa
dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền tùy thuộc
vào từng bài toán và kinh nghiệm của người thiết kế mạng.
• Đầu ra: Là tín hiệu đầu ra của một neuron, với mỗi neuron sẽ có tối đa một
đầu ra.
Về mặt toán học, cấu trúc của một neuron i được mô tả bằng cặp biểu thức sau:
)(
iii
netfy
θ
−=

j
n
j
iji
xwnet

=
=
1
trong đó: x
1
, x
2

, …x
m
là các tín hiệu đầu vào, còn w
i1
, w
i2
,…,w
im
là các trọng số kết
nối của neuron thứ i, net
i
là hàm tổng, f là hàm truyền,
i
θ
là một ngưỡng, y
i
là tín hiệu
đầu ra của neuron.
Hàm truyền có thể có các dạng sau:
• Hàm bước



<

=
00
01
xkhi
xkhi

y
(1)
• Hàm giới hạn chặt



<−

==
01
01
)sgn(
xkhi
xkhi
xy
(2)
HVTH: VũPhátLộc – CH1301097 Trang7
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
• Hàm bậc thang





<
≤≤
>
==
00
10

11
)sgn(
xkhi
xkhix
xkhi
xy
(3)
• Hàm ngưỡng đơn cực
x
λ

+
=
e
y
1
1
với λ>0 (4)
• Hàm ngưỡng hai cực
1
1
2

+
=
− x
λ
e
y
với λ>0 (5)

Đồ thị các dạng hàm truyền được biểu diễn như sau:
Hình 3. Đồ thị các dạng hàm truyền.
HVTH: VũPhátLộc – CH1301097 Trang8
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
4. Cấu tạo và phương thức làm việc của mạng neuron
Nguyên lý cấu tạo của mạng neuron bao gồm nhiều lớp, mỗi lớp bao gồm nhiều
neuron có cùng chức năng trong mạng.
Hình 4.Mạng neuron ba lớp.
Mạng neuron được xây dựng như trên là mạng gồm ba lớp mắc nối tiếp nhau đi từ
đầu vào đến đầu ra. Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào. Một mạng
neuroncó cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳng một hướng
(Feed forward network), và có cấu trúc mạng ghép nối hoàn toàn (vì bất cứ một neuron
nào trong mạng cũng được nối với một hoặc vài neuron khác). Mạng neuronbao gồm
một hay nhiều lớp trung gian được gọi là mạng Multilayer Perceptrons(MLP-
Network).
Mạng neuronkhi mới được hình thành thì chưa có tri thức, tri thức của mạng sẽ
được hình thành dần dần sau một quá trình học. Mạng neuronđược học bằng cách đưa
vào những kích thích, mạng hình thành những đáp ứng tương ứng, những đáp ứng
tương ứng phù hợp với từng loại kích thích sẽ được lưu trữ. Giai đoạn này được gọi là
giai đoạn học của mạng. Khi đã hình thành tri thức mạng, mạng có thể giải quyết các
vấn đề một cách đúng đắn. Đó có thể là vấn đề ứng dụng rất khác nhau, được giải
HVTH: VũPhátLộc – CH1301097 Trang9
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
quyết chủ yếu dựa trên sự tổ chức hợp nhất giữa các thông tin đầu vào của mạng và các
đáp ứng đầu ra.
Nếu nhiệm vụ của một mạng là hoàn chỉnh hoặc hiệu chỉnh các thông tin thu được
không đầy đủ hoặc bị tác động của nhiễu. Mạng neuronkiểu này được ứng dụng trong
lĩnh vực hoàn thiện mẫu, trong đó có một ứng dụng cụ thể là nhận dạng chữ viết.
Nhiệm vụ tổng quát của một mạng neuron là lưu giữ động các thông tin. Dạng
thông tin lưu giữ này chính là quan hệ giữa các thông tin đầu vào và các đáp ứng đầu ra

tương ứng, để khi có một kích thích bất kỳ tác động vào mạng, mạng có khả năng suy
diễn và đưa ra một đáp ứng phù hợp. Đây chính là chức năng nhận dạng theo mẫu của
mạng neuron. Để thực hiện chức năng này, mạng neuron đóng vai trò như một bộ phận
tổ chức các nhóm thông tin đầu vào, và tương ứng với mỗi nhóm là một đáp ứng đầu ra
phù hợp. Như vậy, một nhóm bao gồm một loại thông tin đầu vào và một đáp ứng đầu
ra. Các nhóm có thể được hình thành trong quá trình học, và cũng có thể không hình
thành trong quá trình học.
4.1. Mạng neuron một lớp
Mỗi một neuron có thể phối hợp với các neuron khác tạo thành một lớp các trọng
số. Mạng một lớp truyền thẳng như hình 5. Một lớp neuron là một nhóm các neuron
mà chúng đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng thời.
Hình 5. Mạng truyền thẳng một lớp.
Trong ma trận trọng số, các hàng là thể hiện neuron, hàng thứ j có thể đặt nhãn như
một vector w
j
của neuron thứ j gồm m trọng số w
ji
. Các trọng số trong cùng một cột thứ
j (j=1,2, ,n) đồng thời cùng nhận một tín hiệu đầu vào x
j
.
w
j
= [w
j1
, w
j2
, , w
jm
]

Tại cùng một thời điểm, vector đầu vào x = [x
1
, x
2
, , x
n
] có thể là một nguồn bên
ngoài là cảm biến hoặc thiết bị đo lường đưa tới mạng.
4.2. Mạng neuron truyền thẳng nhiều lớp
HVTH: VũPhátLộc – CH1301097 Trang10
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
Hình 6 Mạng truyền thẳng nhiều lớp.
Mạng neuron nhiều lớp có các lớp được phân chia thành 3 loại sau đây:
• Lớp vào là lớp neuron đầu tiên nhận tín hiệu vào x
i
(i = 1, 2, , n). Mỗi tín hiệu
x
i
được đưa đến tất cả các neuron của lớp đầu vào. Thông thường, các neuron đầu vào
không làm biến đổi các tín hiệu vào x
i
, tức là chúng không có các trọng số hoặc không
có các loại hàm chuyển đổi nào, chúng chỉ đóng vai trò phân phối các tín hiệu.
• Lớp ẩn là lớp neuron sau lớp vào, chúng không trực tiếp liên hệ với thế giới bên
ngoài như các lớp neuron vào/ra.
• Lớp ra là lớp neuron tạo ra các tín hiệu ra cuối cùng.
4.3. Mạng neuron phản hồi
Mạng neuron phản hồi là mạng mà đầu ra của mỗi neuron được quay trở lại nối với
đầu vào của các neuron cùng lớp được gọi là mạng Laeral như hình 7
Hình 7. Mạng hồi tiếp một lớp

4.4. Mạng neuron hồi quy
HVTH: VũPhátLộc – CH1301097 Trang11
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
Hình 8. Mạng neuron hồi quy.
Mạng neuron phản hồi có thể thực hiện đóng vòng được gọi là mạng neuronhồi quy
như hình 8.
5. Huấn luyện mạng neuron
Quy tắc học là một thủ tục sửa đổi trọng số và độ lệch của mạng(Thủ tục này còn
được gọi là thuật toán huấn luyện). Thủ tục này sẽ huấn luyện mạng để nó có thể thực
hiên một số nhiệm vụ mà ta mong muốn. Yêu cầu chính trong vấn đề này là cần có một
cơ chế điều chỉnh trọng số thích hợp.
5.1. Học giám sát
Trong học giám sát, các quy tắc học được cung cấp bằng một tập mẫu chuẩn(tập
huấn luyện).
{p
1
,t
1
}, {p
2
,t
2
}, , {p
q
,t
q
}
Trong đó p
q
là một đầu vào của mạng và t

q
là đầu ra đúng tương ứng.Khi đầu vào
được áp dụng vào mạng, đầu ra của mạng được so dánh với đích. Quy tắc học sau đó
được áp dụng để điều chỉnh các trọng số và độ lệch của mạng cốt làm cho đầu ra của
mạng gần đích đúng của đầu vào.
5.2. Học không có giám sát
HVTH: VũPhátLộc – CH1301097 Trang12
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
Trong phương pháp học này, mạng Neuron không được hướng dẫn trước về cách
nhận biết các đối tượng, mạng phải tự phân tích các đặc trưng, tính chất của đối tượng
để phân loại chúng. Điều này đặc biệt có ích trong các bài toán lượng tử hóa vectơ.
Giả sử chúng ta có một tập các đầu vào P={p
1
,p
2
, , p
Q
}
Đối với học có giám sát, chúng ta biết được tập các đầu ra T={ t
1
,t
2
, , t
Q
} có nghĩa
là xác định được hàm
f : P →T, f(p
i
)= t
j

, i = 1 n
Bây giờ với p

∉ P, cần phải tìm f(p

) = ? Đối với học không có giám sát, chúng ta
cần tìm ra hàm
f: P→ N, f(p
i
) = f(p
i
) nếu x
i
, x
j
thuộc cùng một nhóm
và f(p
i
) ≠ f(p
j
) nếu p
i
,p
j
thuộc hai nhóm khác nhau.
f (p) cho biết nhóm chứa đối tượng p.
Trên thực tế người ta thường kết hợp cả hai phương pháp học có giám sát và học
không có giám sát để phân loại các đối tượng, sau khi các đối tượng được chia thành
các nhóm tương đối nhỏ thì có thể áp dụng học có giám sát với một số nhóm nào đó.
Tuy nhiên nếu các nhóm vẫn quá lớn thì chúng ta có thể chia tiếp ra thành các nhóm

con nhỏ hơn và tiếp tục quá trình như vậy cho đến khi thu được các nhóm đủ nhỏ.
Trong học không có giám sát, quá trình này được gọi là học phân cấp, liên quan đến
các phương pháp clustering phân cấp.
5.3. Học tăng cường
Học tăng cường tương tự như học có giám sát trừ việc thay bằng cung cấp các đầu
ra đúng cho mỗi đầu vào của mạng, thuật toán chỉ đưa ra các đánh giá theo các mức độ
(cho điểm). Điểm này là phép đo hiệu suất của mạng trên một dãy đầu vào. Nhóm quy
tắc học này không phổ biến bằng nhóm quy tắc học có giám sát. Nó thích hợp với các
ứng dụng điều khiển hệ thống.
HVTH: VũPhátLộc – CH1301097 Trang13
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
6. Một số vấn đề của mạng neuron
Khi xây dựng một ứng dụng mạng neuron chúng ta cần quan tâm một số vấn đề
sau:
• Vấn đề về kiến trúc mạng neuron: neuronnào nối với neuronnào? Đây chính
là sự lựa chọn mô hình của mạng neuron. Nó sẽ phụ thuộc vào sự trình bày dữ liệu và
ứng dụng. Những mô hình phức tạp quá dẫn đến những vấn đề về lựa chọn quá trình
huấn luyện và giải thuật học.
• Lựa chọn giải thuật học: ở đây có nhiều sự cân bằng giữa các giải thuật học.
Gần như bất kỳ giải thuật nào sẽ làm tốt với độ chính xác của các siêu tham số cho việc
huấn luyện trên tập dữ liệu cố định cho trứớc. Tuy nhiên sự lựa chọn và điều hướng
của giải thuật cho việc huấn luyện trên các tập dữ liệu này cần thực hiện nhiều thí
nghiệm, đó là điều rất quan trọng. Trên một mô hình nếu lựa chọn giải thuật và hàm
đánh giá phù hợp thì mạng neuroncó thể cho kết quả rất tốt.
• Trọng số của các cung nối và ngưỡng thay đổi thường xuyên. Đã có nhiều
nghiên cứu về vấn đề này và cũng đã có một số kết quả: Nếu mạng gây ra lỗi, thì có thể
xác định neuronnào gây ra lỗi => điều chỉnh neuronđó.Với cách tiếp cận này, mạng
phải biết rằng nó gây ra lỗi. Trong thực tế, lỗi chỉ được biết sau một thời gian dài.
PHẦN 2. THUẬT TOÁN LAN TRUYỀN NGƯỢC
VÀ CHƯƠNG TRÌNH DEMO

1. Thuật toán lan truyền ngược
Có nhiều thuật toán có thể dùng để huấn luyện các mô hình mạng neuron nhưng
hầu hết đều dựa trên lý thuyết về tối ưu hóa và ước lượng thống kê. Phần lớn các thuật
HVTH: VũPhátLộc – CH1301097 Trang14
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
toán huấn luyện đều sử dụng kiểu gradient descent- tiến dần đến cực tiểu nào đó. Điều
này được thực hiện bằng cách lấy đạo hàm của hàm f theo các tham số của mạng và
điều chỉnh các tham số cho phù hợp với môi trường đang xét.
Các phương pháp thường dùng cho huấn luyện neuron: phương pháp tiến hóa, giải
thuật luyện kim, cực đại hóa kỳ vọng và các phương pháp không tham số.
Thuật toán lan truyền ngược được ứng dụng để giải các bài toán điều khiển các hệ
phi tuyến phức tạp và bất ổn định. Lan truyền ngược là một phương pháp cho phép xác
định tập trọng số tốt nhất của mạng để giải một bài toán đã cho. Việc áp dụng phương
pháp lan truyền ngược là một quá trình lặp đi lặp lại nhiều lần hai tiến trình chính: lan
truyền tiến để thực hiện ánh xạ và lan truyền ngược sai số để cập nhật các trọng số. Các
trọng số của mạng là các hệ số của mô hình. Phương pháp giảm gradient được dùng để
cập nhật những hệ số này sao cho giảm thiểu được sai số của mô hình.
Xét lớp mạng 3 lớp như hình 9
Hình 9. Mạng 3 lớp lan truyền ngược
Thuật toán: Đầu tiên ta cho lan truyền thẳng suốt trong mạng, qua các phần tử
neuron và được tiếp tục với các hàm kích hoạt của phần tử neuron. Các mạng được
nghiên cứu cùng với thuật toán học lan truyền ngược được gọi là mạng lan truyền
ngược.
Huấn luyện các cặp vào/ra.
{(x
(k)
, d
(k)
)}, k = 1,2, ,p
HVTH: VũPhátLộc – CH1301097 Trang15

Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
Thuật toán cung cấp một thủ tục cho việc thay đổi các vector trọng số trong mạng,
đầu ra của mạng được lan truyền ngược trở lại lớp đầu vào cho đúng các mẫu. Cơ sở
cho việc cập nhật các trọng số là phương pháp độ dốc Gradient.
Với cặp vào ra (x
(k)
, d
(k)
), thuật toán lan truyền ngược thực hiện các bước như sau:
Đầu tiên, mẫu x
(k)
được lan truyền từ lớp đầu vào qua các lớp ẩn đi đến lớp đầu ra
có kết quả là y
(k)
. Sau đó, sai số giữa y
(k)
và d
(k)
được lan truyền ngược trở lại từ lớp đầu
ra tới lớp đầu vào để cập nhật trọng số.
Đường nét liền diễn tả lan truyền thẳng của các tín hiệu, đường nét đứt diên tả lan
truyền ngược của các sai số. Đầu tiên huấn luyện vào cặp vào/ra ký hiệu (x,d) để cho
đơn giản ta bỏ chỉ số k. Khi một mẫu đầu vào x được đưa vào thì các phần tử trong
mạng sẽ được tính như sau:
Đầu vào phần tử q của lớp ẩn sẽ được tính theo phương trình:
j
m
j
qjq
xvnet


=
=
1
(10)
Phương trình đầu ra của q sẽ là:
()( anetaz
qq
==
j
m
j
qj
xv

=1
) (11)
Đầu vào phần tử thứ i của lớp đầu ra sẽ là:
)(
111
j
m
j
qj
l
q
iqq
l
q
iqi

xvawzwnet
∑∑∑
===
==
(12)
Phương trình đầu ra của phần tử nowron thứ i sẽ là:
))(.()()(
111
j
m
j
qj
l
q
iqq
l
q
iqii
xvawazwanetay
∑∑∑
===
===
(13)
Các chỉ số trên được tính toán cho sự lan truyền tiến của các tín hiệu đầu vào xuyên
suốt qua các lớp mạng neuron. Trước khi ta đề cập đến các tín hiệu sai số của sự lan
truyền ngược, ta sẽ định nghĩa một hàm mục tiêu như sau:
HVTH: VũPhátLộc – CH1301097 Trang16
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
[ ]
2

1 1
2
11
2
2
1
)(
2
1
)(
2
1
)(
∑ ∑∑∑
= ===

















−=−=−=
n
i
l
q
qiqi
n
i
ii
n
i
ii
zwadnetadydwE
(14)
Sau đó, theo phương pháp độ dốc Gradient, các trọng số nối giữa lớp ẩn và lớp đầu
ra được cập nhật bởi
iq
w∆
, và nó được tính theo công thức sau:
iq
iq
w
E
w


−=∆
η
(15)

Sử dụng các công thức (1.17-1.19) và thay đổi luật với
iq
w
E


, ta có:
[ ][ ]
[ ]
qoiqiii
iq
i
i
i
i
i
i
iq
zznetayd
w
net
net
net
net
y
y
E
w
ηδη
=−=




































−=∆ )('
(16)
Trong đó,
oi
δ
là tín hiệu sai số, chỉ số dưới thứ hai là điểm thứ i trong lớp đầu ra.
Sai số tín hiệu được định nghĩa bởi:
[ ][ ]
)('
iii
i
i
ii
oi
netayd
net
y
y
E
net
E
−=

















−=


−=
δ
(17)
Trong đó, net
i
là đầu vào của phần tử neuron thứ i trong lớp đầu ra và
i
i
i
net
neta
neta


=

)(
)('
.
Bây giờ ta phải tính đầu ra z
q
của lớp ẩn:
Với trọng số nối giữa đầu vào và các lớp ẩn, ta sử dụng thay đổi luật cùng phương
pháp độ dốc Gradient, ta cập nhật trọng số để kết nối giữa phần tử thứ j của lớp đầu
vào với phần tử thứ q của lớp ẩn. Khi đó:
HVTH: VũPhátLộc – CH1301097 Trang17
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên































−=





















−=










−=∆
qj
q
q
q
qqj
q
qqj
qj
v
net
net
z
z
E
v
net

net
E
v
E
v
ηηη
(18)
Từ công thức (14), thì mỗi sai số [d
i
-y
i
], với i=1,2, ,n là một hàm của z
q
.
Đánh giá thay đổi luật ta có:
( )
[ ]
jq
n
i
iqiiiqj
xnetawnetaydv ).('.).('.
1

=
−−=∆
η
(19)
Sử dụng công thức (17), ta có thể viết lại công thức (19) như sau:
[ ]

jhqjq
n
i
iqoiqj
xxnetawv ∂=−=∆

=
ηδη
).('
1
(20)
Ở đây,
hq

là sai số tín hiệu của phần tử thứ q của lớp ẩn và được định nghĩa như
dưới đây:
iq
n
i
oiq
q
q
qq
hq
wneta
net
z
z
E
net

E

=
=




















−=


−=∂
1
)('

δ
(21)
Trong đó, net
q
là đầu vào phần tử thứ q của lớp ẩn.
Tín hiệu sai số của một phần tử trong lớp ẩn khác so với tín hiệu sai số của một
phần tử trong lớp đầu ra, như đã được chỉ ra trong công thức (21) và (17). Do có sự
khác nhau này, nên các thủ tục cập nhật các trọng số trên được gọi là luật học delta
tổng quát. Chúng ta xem xét công thức (21), sai số tín hiệu
hq

của phần tử lớp ẩn q có
thể được xác định trong các mẫu của các tín hiệu sai số
oi
δ
của các phần tử ở lớp ra
thứ i (y
i
) cung ứng. Các hệ số là các trọng số được sử dụng cho lan truyền thẳng, nhưng
ở đây chúng truyền các tín hiệu sai số (
oi
δ
) ngược trở lại, đó chính là các đường nét
đứt trong hình 9. Điều này đã chứng tỏ được đặc điểm quan trọng của thuật toán lan
HVTH: VũPhátLộc – CH1301097 Trang18
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
truyền ngược – luật cập nhật cục bộ, đây chính là tính toán trọng số thay đổi dựa vào
sự kết nối, và chúng ta chỉ cần giá trị ở hai đầu của kết nối này.
Sự đạo hàm ở trên có thể dễ dàng mở rộng cho mạng có nhiều hơn một lớp ẩn, bằng
cách sử dụng chuỗi luật liên tiếp. Trong trường hợp chung, với số lớp tùy ý, thì sự lan

truyền ngược được cập nhật luật ở dạng sau:
jinputioutputjiij
xxw
−−
==∆
ηδηδ
(22)
Ở đây, (output-i) và (input-j) quy vào hai đầu của sự kết nối từ phần tử thứ j tới
phần tử thứ i, x
j
là đầu vào cuối cùng kích hoạt từ một phần tử lớp ẩn, hoặc từ một đầu
vào bên ngoài. Ngoài ra,
i
δ
là tín hiệu học được định nghĩa bởi công thức (17) với đầu
ra hoặc lớp cuối cùng của các trọng số kết nối, và được định nghĩa bởi công thức (2 1)
cho tất cả các lớp khác. Khi hàm sigmoid lưỡng cực được sử dụng làm hàm kích hoạt,
đồng thời sử dụng (17) và (21) ta có hàm y được xác định như sau:
1
1
1
)( −
+
==
−net
e
netay
Khi đó ta có:
[ ]
)1(

2
1
)(1
2
1)(
)('
22
yneta
net
neta
neta −=−=


=
[ ]
iioi
ydy −−= )1(
2
1
2
δ
(23)
iq
n
i
oihq
wz

=
−=

1
2
)1(
2
1
δδ
(24)
Thuật toán lan truyền ngược
Xem xét một mạng với Q lớp lan truyền ngược, q=1,2, ,Q; với
q
net
i

q
y
i
lần lượt
là đầu vào và đầu ra của khối trong lớp thứ q. Mạng có m neuron đầu vào, l neuron ở
lớp ẩn, và n neuron đầu ra. Với
q
w
ij
là trọng số nối từ
q-1
w
j
đến
q
y
i

.
HVTH: VũPhátLộc – CH1301097 Trang19
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
Đầu vào: các cặp huấn luyện {x
(k)
, d
(k)
| k=1,2, ,p}, ở đó giá trị đầu vào của phần tử
cuối cùng bằng -1, tức là
1
)(
1
−=
+
k
m
x
.
Bước 0 (Đặt giá trị ban đầu)
• Lựa chọn bước tính (Hằng số học) 0<η<1 và E
max
(sai số lớn nhất cho phép).
• Chọn các trọng số ban đầu nối từ phần tử thứ j của lớp (q – 1) đến phần tử
thứ i của lớp q là
q
w
ij
có giá trị nhỏ và ngẫu nhiên.
• Cho sai số E = 0 và k = 1.
Bước 1 (Vòng lặp huấn luyện)

Áp dụng mẫu vào thứ k, cho lớp đầu vào q=1. Khi đó ta có:
q
y
i
=
1
y
i
= x
i
(k)
cho tất cả các i = 1,2,3,…,m. (25)
Bước 2 (Lan truyền thẳng)
Lan truyền tín hiệu thẳng xuyên suốt mạng sử dụng công thức (1.31) cho mỗi i và q
cho tới khi các đầu ra của lớp đầu ra
Q
y
i
được thực hiện.
).()(
1


==
j
j
q
ij
q
i

q
i
q
ywanetay
(26)
Bước 3 (Đo lường sai số đầu ra)
Tính toán giá trị sai lệch và tín hiệu sai lệch
i
Q
δ
cho lớp đầu ra như sau:
EydE
i
Q
n
i
k
i
+−=

=
2
1
)(
)(
2
1
; (27)
)'().(
)(

i
Q
i
Qk
ii
Q
netayd −=
δ
(28)
Trong đó:
i
Q
δ
là tín hiệu sai lệch của neuron thứ i cho lớp ra Q; là đạo
hàm của hàm truyền a(.) theo tổng trọng số của phần tử i của lớp đầu ra là .
HVTH: VũPhátLộc – CH1301097 Trang20
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
)(
)'(
i
Q
i
Q
netd
da
neta =
Bước 4 (lan truyền ngược sai số)
Các sai số lan truyền ngược với mục đích để cập nhật các trọng số và tính toán các
tín hiệu sai lệch
i

q
δ
1−
cho các lớp xử lý:
j
q
i
q
ij
q
yw
1


=∆
δη
;
ij
qold
ij
qnew
ij
q
www ∆+=
(29)
j
j
q
ji
q

i
q
i
q
wneta
δδ

−−
=
)(
1'1
; với q=Q,Q-1, ,2 (30)
Trong đó:
• là sai lệch tại thời điểm tính của giá trị trọng số liên kết cập nhật mới
và cũ, liên kết từ phần tử thứ j của lớp q-1 đến phần tử i của lớp q.
• là giá trị trọng số liên kết cập nhật mới từ phần tử thứ j của lớp (q-
1) đến phần tử i của lớp q.
• là giá trị trọng số liên kết cũ từ phần tử thứ j của lớp (q-1) đến phần tử i
của lớp q.
• là tín hiệu ra của phần tử j của lớp (q-1).
Bước 5 (Sau mỗi vòng lặp)
Kiểm tra xem đã lặp hết các giá trị mẫu huấn luyện chưa, nếu chưa quay vòng hết
(tức là k<p) tăng k=k+1, và nhảy tới bước 1, ngược lại (tức k=p) thì chuyển sang bước
6.
Bước 6 (Kiểm tra tổng sai số)
Kiểm tra sự khác nhau giữa tổng sai số và sai số cho phép:
• Nếu tổng sai số nhỏ hơn sai số cho phép (tức là E<E
max
) thì kết thúc quá trình
huấn luyện, và ghi lại các giá trị trọng số cuối cùng.

HVTH: VũPhátLộc – CH1301097 Trang21
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
• Trái lại, thì lại gán E=0, k=1 và bắt đầu một quá trình huấn luyện mới bằng
cách nhảy tới bước 1.
2. Chương trình demo
Do thời gian giới hạn nên tiểu luận chỉ giới thiệu lý thuyết mạng neuron và thuật
toán lan truyền ngược. Demo sẽ được sử dụng từ Accord-framework. Với các chức
năng chính về Xấp xỉ, Dãy thời gian, Vấn đề XOR.
Chạy chương trình mở thư mục AppDemo trong báo cáo và chạy file “Resilient
Backpropagation (Rprop)”
Sau đây là giao diện chương trình:
• Approximation (xấp xỉ): Thao tác chọn nút Approximation, chương trình hiện
cửa sổ Approximation và người dùng lấy file dữ liệu từ nút Load. Sau đó có thể
tùy chỉnh cấu hình một số thuộc tính như Learning rate, Alpha value, Neurons
in first layer, Iterations… Chọn nút Start chương trình sẽ vẽ hàm truyền trong
khung Functions.
HVTH: VũPhátLộc – CH1301097 Trang22
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
• Time-series (dãy thời gian): Tương tự Approximation.
HVTH: VũPhátLộc – CH1301097 Trang23
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
• XOR Problem (vấn đề XOR): Người dùng chọn nút XOR Problem trên cửa sổ
chính của chương trình. Tùy chỉnh một số cấu hình cho mạng neuron. Chọn nút
Start chương trình sẽ vẽ biểu đồ Error’s dynamics.
HVTH: VũPhátLộc – CH1301097 Trang24
Tiểu luận môn học:Máy học và ứng dụngGVHD: PGS.TS.Vũ Thanh Nguyên
PHẦN 3.
KẾT LUẬN
Thuật toán lan truyền ngược là một dạng huấn luyện có giám sát. Mạng neuron
được đưa vào dữ liệu huấn luyện cho cho ra kết quả, các kết quả này được so sánh với

các kết quả được mong đợi. Sự khác nhau giữa các kết quả thực tế và các kết quả mong
đợi sẽ có một mức sai số nào đó. Để giảm thiểu sai số này, người ta tiến hành sử dụng
thuật toán lan truyền ngược để điều chỉnh các trọng số và độ lệch của mạng. Đây là
cách mà sai số được giảm đáng kể.
Do tính hạn chế của tiểu luận nên demo chương trình được sử dụng từ Accord
framework.
HVTH: VũPhátLộc – CH1301097 Trang25

×