ĐẠ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
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.
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
θ
−=
và
j
n
j
iji
xwnet
∑
=
=
1
trong đó: x
1
, x
2
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
Đồ 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ạ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
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
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
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
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
−=−=−=
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)
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
−=
∂
∂
−=
δ
(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
∂
∂
=
∂
∂
∂
−=
∂
∂
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:
[ ]
E
∑
=
=
∂
∂
∂
∂
−=
∂
∂
−=∂
1
)('
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(
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
và
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
Á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
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
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.
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