You are on page 1of 26

CHƯƠNG 3

MẠNG THẦN KINH

www.hcmute.edu.vn
PHẦN 3

MẠNG TRUYỀN THẲNG MỘT LỚP


(tt)

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp

2.2.1 Mạng Adaline:

Cấu trúc mạng w11


x y1
1

xj y
i

xm w yn
nm

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline:

• Hàm tổng hợp: tuyến tính


𝑚

𝑛𝑒𝑡𝑖 = ෍ 𝑤𝑖𝑗 𝑥𝑗 = 𝑤 𝑇 𝑥
𝑗=1

• Hàm kích hoạt: tuyến tính


m
yi  a(neti )  neti   wij x j
j 1

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline:

Nếu các mẫu dữ liệu không thỏa mãn điều kiện độc lập tuyến tính

=> Tìm các trọng số wij sao cho:


1 n
E(w)   (d i  y i ) 2  min
2 i 1
Giải bài toán cực trị trên Thuật toán suy giảm độ dốc (gradient
descent)
E (k )
wij (k  1)  wij (k )  
wij
www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline:
E( k )  E( k )   y i   neti 
     d i ( k )  y i ( k ).1.x j ( k )
w ij  y i   neti   w ij 
Thuật toán học Windrow- Hoff
w ij ( k 1)  w ij ( k )  w ij ( k )
w ij ( k )  [ d i ( k )  y i ( k )] x j ( k )
𝑑𝑖 𝑘 − 𝑦𝑖 (𝑘) là tín hiệu học của mạng adaline

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline
Thuật toán học Windrow-Hoff

Bước 1: Chọn tốc độ học  > 0.

Bước 2: Khởi động


- Gán sai số E=0
- Gán biến chạy k = 1
- Gán các vec tơ trọng số bằng giá trị ngẫu nhiên nhỏ bất kỳ

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline

Bước 3: Quá trình huấn luyện bắt đầu


m
net i   w ij x j (i  1, n)
j 1
yi k =net i

Bước 4: Cập nhật vec tơ trọng số


w ij ( k 1)  w ij ( k )  w ij ( k )
w ij ( k )  [ d i ( k )  y i ( k )] x j ( k )
www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline

Bước 5: Tính sai số tích lũy

1 n
E  E   ( d i  yi ) 2

2 i 1
Bước 6: - Nếu k < K thì gán k = k+1 và quay lại Bước 3.
- Nếu k = K thì tiếp tục Bước 7

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline

Bước 7: Kết thúc một chu kỳ huấn luyện (epoch)


- Nếu E < Emax thì kết thúc quá trình học.
- Nếu E > Emax thì gán E = 0, k = 1 và trở lại Bước 3 bắt đầu
1 chu kỳ huấn luyện mới (trọng số bắt đầu tại mẫu 1 của chu kỳ mới
chính là trọng số cuối cùng được cập nhật của chu kỳ trước đó)

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline
Ví dụ: Huấn luyện mạng để học bài toán sau:

Cho  = 1, Emax= 0.01


x1 x2 d1=x1 d2=x1
or x2 and x2 Các trọng số ban đầu được thiết lập
0 0 0 0 theo công thức
0 1 1 0 𝑖+𝑗
1 0 1 0 𝑤𝑖𝑗 = (−1)𝑖+𝑗
10
1 1 1 1

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline
Giải:

Cấu trúc mạng 𝒘𝟏𝟎


x0=-1
𝒘𝟐𝟎
0 y1

x1

𝒘𝟏𝟐 0 y2
𝒘𝟐𝟐
x2

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline
Khởi động

 = 1, E=0, k=1 (biến chạy), K=4 (tổng số mẫu)


Trọng số ban đầu
𝑤10 1 −0.1 𝑤20 1 0.2
𝑤1 (1) = 𝑤11 1 = 0.2 𝑤2 (1) = 𝑤21 1 = −0.3
𝑤12 1 −0.3 𝑤22 1 0.4

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline
Quá trình huấn luyện bắt đầu
𝑥0 1 −1
Mẫu 1: 𝑥 1 = 𝑥1 1 = 0 , 𝑑1 1 = 0, 𝑑2 1 = 0
𝑥2 1 0

𝑛𝑒𝑡1 = 𝑤1𝑇 (1)𝑥 1 =0.1 𝑛𝑒𝑡2 = 𝑤2𝑇 (1)𝑥 1 =-0.2

𝑦1 (1) = 𝑛𝑒𝑡1 = 0.1 𝑦2 1 = 𝑛𝑒𝑡2 = −0.2

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline
Cập nhật
−0.1 −1 0
𝑤1 (2) = 𝑤1 (1) + 𝜂 𝑑1 (1) − 𝑦1 (1) 𝑥(1) = 0.2 +1*(0-0.1) 0 = 0.2
−0.3 0 −0.3

0.2 −1 0
𝑤2 (2) = 𝑤2 (1) + 𝜂 𝑑2 (1) − 𝑦2 (1) 𝑥(1) = −0.3 +1*(0+0.2) 0 = −0.3
0.4 0 0.4

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline

2 2
Sai số tích lũy: 𝐸 = 𝐸 + 0.5 𝑑1 1 − 𝑦1 (1) + 𝑑2 1 − 𝑦2 (1) = 0.025

𝑥0 2 −1
Mẫu 2: 𝑥 2 = 𝑥1 2 = 0 , 𝑑1 2 = 1, 𝑑2 2 = 0
𝑥2 2 1

𝑛𝑒𝑡1 = 𝑤1𝑇 2 𝑥 2 = −0.3 𝑛𝑒𝑡2 = 𝑤2𝑇 (2)𝑥 2 =0.4


𝑦1 2 = 𝑛𝑒𝑡1 = −0.3 𝑦2 2 = 𝑛𝑒𝑡2 = 0.4

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng Adaline
Cập nhật
𝑤1 (3) = 𝑤1 2 + 𝜂 𝑑1 2 − 𝑦1 2 𝑥 2
𝑤2 (3) = 𝑤2 2 + 𝜂 𝑑2 2 − 𝑦2 2 𝑥 2

Làm tiếp tục: đến hết chu kỳ (mẫu 4) và huấn luyện đến khi E<Emax thì
dừng

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:

• Hàm tổng hợp: tuyến tính


𝑚

𝑛𝑒𝑡𝑖 = ෍ 𝑤𝑖𝑗 𝑥𝑗 = 𝑤 𝑇 𝑥
𝑗=1
• Hàm kích hoạt:
1
Hàm S đơn cực (sigmoid/ logsig) 𝑦𝑖 =
1 + 𝑒 −𝜆𝑛𝑒𝑡𝑖
Hàm S lưỡng cực (bipolar sigmoid/ tansig) 2
𝑦𝑖 = −𝜆𝑛𝑒𝑡
−1
1+𝑒 𝑖

Tổng quát: 𝒚𝒊 = 𝒂(𝒏𝒆𝒕𝒊 )


www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:
Tương tự như mạng Adaline, việc huấn luyện mạng là tìm wij sao cho E->Emin

Sử dụng thuật toán suy giảm độ dốc


E (k )
wij (k  1)  wij (k )  
wij
𝜕𝐸(𝑘) 𝜕𝐸(𝑘) 𝜕𝑦𝑖 𝜕𝑛𝑒𝑡𝑖
= = − 𝑑𝑖 k − 𝑦𝑖 𝑘 𝑎′ (𝑛𝑒𝑡𝑖 )𝑥𝑗 (𝑘)
𝜕𝑤𝑖𝑗 𝜕𝑦𝑖 𝜕𝑛𝑒𝑡𝑖 𝜕𝑤𝑖𝑗

Đặt 𝛿𝑖 = 𝑑𝑖 𝑘 − 𝑦𝑖 𝑘 𝑎′ 𝑛𝑒𝑡𝑖 𝑘 gọi là tín hiệu học của nơ ron i

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:
Mục tiêu: tính 𝑎′ 𝑛𝑒𝑡𝑖 của các hàm kích hoạt sao cho biểu thức ngắn
gọn, tính toán đơn giản
1
• Hàm kích hoạt là hàm S đơn cực 𝑦𝑖 =
1 + 𝑒 −𝜆𝑛𝑒𝑡𝑖
−𝜆𝑛𝑒𝑡 ′ −𝜆𝑛𝑒𝑡𝑖
1 + 𝑒 𝑖 𝜆𝑒
𝑦𝑖′ = 𝑎′ 𝑛𝑒𝑡𝑖 = − −𝜆𝑛𝑒𝑡 2
=
(1 + 𝑒 𝑖 ) (1 + 𝑒 −𝜆𝑛𝑒𝑡𝑖 )2
𝜆 1
= −𝜆𝑛𝑒𝑡
1− −𝜆𝑛𝑒𝑡
= 𝜆𝑦𝑖 1 − 𝑦𝑖
1+𝑒 𝑖 1+𝑒 𝑖

= 𝜆𝑎(𝑛𝑒𝑡𝑖 ) 1 − 𝑎(𝑛𝑒𝑡𝑖 )
www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:
2
• Hàm kích hoạt là hàm S lưỡng cực 𝑦𝑖 = −𝜆𝑛𝑒𝑡
−1
1+𝑒 𝑖

1 1
𝑦𝑖′ 2
= 𝑎 𝑛𝑒𝑡𝑖 = 1 − 𝑦𝑖 = 1 − 𝑎2 (𝑛𝑒𝑡𝑖 )

2 2

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:

Thuật toán học Delta


Bước 1: Chọn tốc độ học  > 0.

Bước 2: Khởi động


- Gán sai số E=0
- Gán biến chạy k = 1
- Gán các vec tơ trọng số bằng giá trị ngẫu nhiên nhỏ bất kỳ

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:

Bước 3: Quá trình huấn luyện bắt đầu


m
neti   wij x j (i  1, n)
j 1

yi k =a(net i )
Bước 4: Cập nhật vec tơ trọng số

Tín hiệu học: 𝛿𝑖 = 𝑑𝑖 𝑘 − 𝑦𝑖 𝑘 𝑎′ 𝑛𝑒𝑡𝑖 𝑘

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:

S đơn cực: 𝛿𝑖 = 𝑑𝑖 𝑘 − 𝑦𝑖 𝑘 𝜆𝑦𝑖 𝑘 1 − 𝑦𝑖 𝑘

S lưỡng cực: 𝛿𝑖 = 𝑑𝑖 𝑘 − 𝑦𝑖 𝑘 0.5 1 − 𝑦𝑖2 𝑘

𝑤𝑖𝑗 𝑘 + 1 = 𝑤𝑖𝑗 𝑘 + η𝛿𝑖 𝑥𝑗 (𝑘)

Bước 5: Tính sai số tích lũy


1 n
E  E   ( d i  yi ) 2

2 i 1
www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:

Bước 6: - Nếu k < K thì gán k = k+1 và quay lại Bước 3.


- Nếu k = K thì tiếp tục Bước 7

Bước 7: Kết thúc một chu kỳ huấn luyện (epoch)


- Nếu E < Emax thì kết thúc quá trình học.
- Nếu E > Emax thì gán E = 0, k = 1 và trở lại Bước 3 bắt đầu
1 chu kỳ huấn luyện mới (trọng số bắt đầu tại mẫu 1 của chu kỳ mới
chính là trọng số cuối cùng được cập nhật của chu kỳ trước đó)

www.hcmute.edu.vn
Phần 2: Mạng truyền thẳng một lớp

2.2 Mạng truyền thẳng một lớp:


2.2.1 Mạng perceptron với hàm tác động bán tuyến tính:

Ví dụ: Huấn luyện bài toán (ở ví dụ trong bài mạng Adaline) dùng mạng
perceptron với hàm kích hoạt tùy chọn.

www.hcmute.edu.vn

You might also like