You are on page 1of 10

Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.

info Kiến thức là của chung – Hãy chia sẻ!

Mạng nơ-ron nhân tạo


1. Giới thiệu mạng nơ-ron
Mạng neural nhân tạo (Artificial Neural Networks : ANN) ra đời xuất phát
từ ý tưởng mô phỏng hoạt động của bộ não con người.

Hình 1.1. Mô hình mạng nơ-ron sinh học

Mạng noron nhân tạo là sự tái tạo bằng kỹ thuật những chức năng của hệ
thần kinh con người với vô số các neural được liên kết truyền thông với nhau qua
mạng. Giống như con người, ANN được học bởi kinh nghiệm, lưu những kinh
nghiệm đó và sử dụng trong những tình huống phù hợp.

Mạng neural trong một vài năm trở lại đây đã được nhiều người quan tâm và
đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất,
vật lý và công nghệ thông tin… .Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân
loại và điều khiển, mạng neural đều có thể ứng dụng được. Ví dụ như khả năng
nhận dạng mặt người trong các hệ thống quản lý thông tin liên quan đến con người
(quản lý nhân sự ở các công sở, doanh nghiệp; quản lý học sinh, sinh viên trong các
trường trung học, đại học và cao đẳng;… ); các ngành khoa học hình sự, tội phạm;
khoa học tướng số, tử vi; hoặc các trò chơi cũng như phát triển thế hệ robot thông
minh biết suy nghĩ như con người.

Mạng nơ-ron nhân tạo dựa trên việc mô phỏng cấp thấp hệ thống neural sinh
học. Trong tương lai với sự phát triển mô phỏng nơ-ron sinh học, chúng ta có thể có
loại máy tính thông minh thật sự. Nếu so sánh máy tính và bộ não con người thì
chúng ta có thể thấy mạng nơ-ron nhân tạo mạnh hơn rất nhiều so với chúng ta.
Máy tính có thể chứa 109 transitor với thời gian chuyển mạch là 10-9 (s), trong khi
đó bộ não con người có 1011 nơ-ron và thời gian “chuyển mạch” của con người là
10-3 (s).

Tuy nhiên, sự so sánh này rất khập khiễng vì đơn giản chúng ta còn chưa
khám phá hết khả năng của não bộ con người. Mặc dù vậy chúng ta có thể thấy, nếu

1
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

trí tuệ nhân tạo thực sự đạt được mức độ phát triển cao và tiệm cận với trí tuệ con
người thì có lẽ khi đó nó sẽ có rất nhiều ứng dụng và thúc đẩy sự phát triển của loài
người. Chẳng thế mà ông hoàng vật lý Stephen Hawking đã cảnh báo, robot có
thể phát triển nhanh hơn so với con người và mục tiêu của chúng sẽ không thể đoán
trước được. Giáo sư chia sẻ: “Tôi không cho rằng những tiến bộ trong trí tuệ nhân
tạo là một sự an toàn trong tương lai, và chúng có thể sẽ đe dọa tương lai của loài
người chúng ta. Một khi đạt đến mức độ nào đó, chúng ta sẽ không thể dự đoán
được mục tiêu cũng như khó lòng có thể kiểm soát được chúng”.

Ông nói thêm: “Trí thông minh nhân tạo có tiềm năng để phát triển nhanh
hơn so với các chủng tộc của con người. Do đó, ta cần đảm bảo AI được thiết kế có
đạo đức và có biện pháp bảo vệ, kiểm soát nghiêm ngặt tại chỗ”.

Hình 1.2. Một hình ảnh về trí tuệ nhân tạo bậc cao trong bộ phim giả tưởng « Siêu
trí tuệ »

2. Mô hình của một nơ-ron nhân tạo

2.1. Cấu tạo của nơ-ron sinh học


Sau đây là những thành phần chính trong cấu trúc của một nơ-ron trong bộ
não con người

2
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

Hình 2.1. Mô hình nơ-ron sinh học

Trong đó :

 Các Soma là thân của noron.


 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à nơron 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ừ nơron đi các nơi khác. Chỉ khi nào điện thế trong soma vượt quá 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 nơron 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 nơron
khác.
 Có thể tóm tắt hoạt động của một nơron như sau: nơron lấy tổng tất cả các điện
thế vào mà nó nhận được, và phát ra một xung điện thế nếu tổng ấy lớn hơn một
ngưỡng nào đó. Các nơron nối với nhau ở các synapses. Synapse được gọi là
mạnh khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các nơron khác. Ngược
lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn.

Các synapses đóng vai trò rất quan trọng trong sự học tập. Khi chúng ta học tập
thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa
các nơron.

3
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các
synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các nơron càng
nhiều, càng nhạy bén.

2.2. Cấu tạo của nơ-ron 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,
trong mạng nơ-ron nhân tạo cũng có các thành phần có vai trò tương tự là các nơ-ron nhân
tạo và kết nối giữa chúng( kết nối này gọi là weights).

Nơ-ron 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 syanpse. Đặc trưng của neuron 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 nơ-ron 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 nơ-ron . Sơ đồ khối của hình 1.1 chỉ ra mô hình của một nơ-ron nhân tạo.

Hình 2.2. Mô hình của một nơ-ron nhân tạo

Ở đây, chúng ta xác định ba thành phần cơ bản của một neuron :
- Một tập hợp các weights hay các kết nối, mà mỗi một trong chúng được đặc trưng
bởi một trọng số của riêng nó. Tức là một tín hiệu xj tại đầu vào của weights j nối với
neuron k sẽ được nhân với trọng số weights wkj. Ở đó k là chỉ số của neuron tại đầu ra của
weights đang xét, còn j chỉ điểm đầu vào của weights. Các trọng số weights cuả một
neuron nhân tạo có thể nhận cả các giá trị âm và các giá trị dương.
- Một bộ cộng để tính tổng các tín hiệu đầu vào của neuron, đã được nhân với các
trọng số weights tương ứng; phép toán được mô tả ở đây tạo nên một bộ tổ hợp tuyến tính.
Một hàm kích hoạt (activation function) để giới hạn biên độ đầu ra của neuron. Hàm kích
hoạt cũng được xem xét như là một hàm nén; nó nén (giới hạn) phạm vi biên độ cho phép
của tín hiệu đầu ra trong một khoảng giá trị hữu hạn. Mô hình một neuron trong hình 2.2
còn bao gồm một hệ số hiệu chỉnh tác động từ bên ngoài, bk. Hệ số hiệu chỉnh bk có tác
dụng tăng lên hoặc giảm đi đầu vào thực của hàm kích hoạt, tuỳ theo nó dương hay âm. Có
nhiều loại hàm kích hoạt.

4
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

- Dưới dạng công thức toán học, chúng ta có thể mô tả một neuron k bằng cặp công
thức sau:
m
uk  w
j0
x
kj j (2.1)


yk=f(uk+bk) (2.2)
trong đó x1,x2,...,xm là các tín hiệu đầu vào; wk1,wk2,...,wkm là các trọng số weights
của neuron k; uk là đầu ra bộ tổ hợp tuyến tính tương ứng; bk là hệ số hiệu chỉnh.
Hệ số hiệu chỉnh bk là một tham số ngoài của neuron nhân tạo k. Chúng ta có
thể thấy được sự có mặt của nó trong công thức (2.2). Một cách tương đương,
chúng ta có thể tổ hợp các công thức (2.1) và (2.2) như sau:
m
e k   wkj x j (2.3)
j 0


y k  f (v k ) (2.4)
Trong công thức (2.3), chúng ta đã thêm một weights mới. Đầu vào của nó là:
x0=+1 (2.5)
và trọng số của nó là
wk0=bk (2.6)
Như vậy chúng ta vẽ lại mô hình của neuron k như trong hình 2.3. Trong hình
này, nhiệm vụ của hệ số hiệu chỉnh là thực hiện hai việc: (1) thêm một tín hiệu
đầu vào cố định là 1, và (2) thêm một trọng số weights mới bằng giá trị của hệ
số bk. Mặc dầu các mô hình trong hình 2.2 và 2.3 là khác nhau về hình thức
nhưng tương tự về bản chất toán học.

Hình 2.3. Mô hình phi tuyến thứ hai của một neuron

5
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

3. Các kiểu hàm kích hoạt


Hàm kích hoạt, ký hiệu bởi f(v), xác định đầu ra của neuron. Dưới đây là các kiểu
hàm kích hoạt cơ bản:

3.1. Hàm ngưỡng


Đối với loại hàm này (mô tả trong hình 2.4.a), chúng ta có

(3.1)
Trong các tài liệu kỹ thuật, dạng hàm ngưỡng này thường được gọi là hàm Heaviside. Đầu
ra của neuron k sử dụng hàm ngưỡng sẽ như sau
1 nÕu v k  0
yk   (3.2)
0 nÕu v k  0
ở đó vk là đầu ra của bộ tổ hợp tuyến tính, có nghĩa là
m
vk   wkj x j  bk (3.3)
j 1

Một nơ-ron như vậy thường được gọi là mô hình McCulloch-Pitts.

Hình 3.1. (a) Hàm ngưỡng, (b) Hàm vùng tuyến tính

(c) Hàm sigma với tham số độ dốc a thay đổi

6
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

3.2. Hàm vùng tuyến tính


Đối với loại hàm này (mô tả trong hình 3.1.b), chúng ta có

(3.4)
Dạng hàm này có thể được xem như môt xấp xỷ của một bộ khuếch đại phi tuyến.

3.3. Hàm sigma


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 neuron 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:

(3.5)
ở đó a là tham số độ dốc của hàm sigma. Bằng việc biến đổi tham số a, chúng ta thu được
các hàm sigma với các độ dốc khác nhau, như được minh hoạ trong hình 3.1.c. Thực tế, hệ
số góc tại v=0 là a/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ì 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).
Các hàm kích hoạt được định nghĩa trong các công thức (3.1), (3.4), (3.5) đều trong
phạm vi từ 0 đến 1. Đôi khi có những yêu cầu xây dựng hàm kích hoạt trong phạm vi từ -1
đến 1, trong trường hợp này hàm kích hoạt được giả định có dạng đối xứng qua gốc toạ độ
(hay có thể gọi là dạng phản đối xứng); nghĩa là hàm kích hoạt là một hàm lẻ. Ví dụ, hàm
ngưỡng trong công thức (3.1) bây giờ được xác định như sau
1 v0

f (v )   0 v0 (3.6)
 1 v0

Hàm này thường được gọi là hàm signum.

4.Các loại mạng nơ-ron


Có hai loại mạng nơ-ron chính đó là các mạng tiến (feedforward) và các mạng
phản hồi (trong tài liệu này không nói tới mạng phản hồi) chỉ nói đến các mạng tiến
(feedforward). Trong mạng tiến, các nơ-ron tạo thành nhóm trong các lớp, tín hiệu truyền

7
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

từ lớp input đến lớp ouput. Các nơ-ron không cùng lớp thì nối với nhau nhưng các nơ-ron
cùng lớp thì không nối với nhau. Trong mạng tiến có hai loại mạng đó là mạng tiến đa
mức (multilayer) và mạng tiến đơn mức (singlelayer).

Hình 4.1. Mạng nơ-ron đơn mức

Hình 4.2. Mạng nơ-ron đa mức

8
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

5. Mô phỏng trong Matlab


Chương trình 1. Mô phỏng một nơ-rong trong Matlab

close all, clear all, clc, format compact


% Trọng số
w = [4 -2]
% Bias
b = -3
% Activation function
func = 'tansig'
% func = 'purelin'
% func = 'hardlim'
% func = 'logsig'
p = [2 3]
activation_potential = p*w'+b
neuron_output = feval(func, activation_potential)

Chương trình 2. Quan sát đầu ra của mạng nơ-ron với các giá trị đầu vào khác nhau

[p1,p2] = meshgrid(-10:.25:10);
z = feval(func, [p1(:) p2(:)]*w'+b );
z = reshape(z,length(p1),length(p2));
plot3(p1,p2,z)
grid on
xlabel('Input 1')
ylabel('Input 2')
zlabel('Neuron output')

Hình 5.1. Đồ thị của đầu ra

9
Tài liệu Mạng Nơ-ron nhân tạo – Bản quyền Matlabthayhai.info Kiến thức là của chung – Hãy chia sẻ!

Còn tiếp…..
Ghi chú
Tài liệu được tham khảo từ nhiều nguồn khác nhau và từ kiến thức của chính tác
giả. Mong các bạn sẽ có những kiến thức bổ ích và tài liệu hỗ trợ quá trình học tập cũng
như nghiên cứu. Cấm sao chép dưới mọi hình thức !

Website : Matlabthayhai.info

Email : Matlabthayhai@gmail.com

Kiến thức là của chung – Hãy chia sẻ !

10

You might also like