Phương pháp điều khiển dự báo dựa trên mạng nơ-ron

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng mạng nơ ron trong nhận dạng và điều khiển (Trang 35 - 70)

2.2.1 Nhận dạng dùng mạng nơ-ron

Định nghĩa nhận dạng: Nhận dạng là phương pháp thực nghiệm để xác định một mô hình cụ thể trong lớp các mô hình thích hợp, sao cho sai lệch giữa mô hình đó với hệ thống là nhỏ nhất.[3]

Bài toán nhận dạng có ba đặc điểm để nhận biết đó là:

+ Thực nghiệm, nhận biết qua việc đo các tín hiệu vào và ra.

+ Lớp các mô hình thích hợp, có được từ những thông tin ban đầu về thống (gọi chung lại là thông tin A-priori ).

+ Sai lệch giữa mô hình có được và hệ thống là nhỏ nhất, được nhận biết từ hàm mục tiêu mô tả sai lệch và được thực hiện bằng phương pháp tối ưu.[7].

Dựa trên các định luật cơ bản như: định luật bảo toàn năng lượng, định luật bảo toàn vật chất, định luật Newton, định luật Kirch Hoff, định luật Ohm,… có thể xây dựng được mô hình toán đối tượng. Thông qua dữ liệu đầu vào và đầu ra hoặc tính toán ước lượng trực tiếp các tham số của mô hình toán được xác định. Tuy nhiên, trong công nghiệp như các hệ thống truyền nhiệt, động học chất lỏng việc xây dựng mô hình toán là vô cùng phức tạp, vì vậy sẽ sử dụng mạng nơ-ron nhân tạo.

Phương pháp huấn luyện.

Mạng nơ-ron nhiều lớp có thể xấp xỉ gần đúng một hàm bất kì, tiếp đó là thủ tục tính chọn các thông số của các mạng cho một đối tượng cụ thể được gọi là quá trình huấn luyện.

22

Hiện nay có rất nhiều phương pháp huấn luyện mạng. Chúng có thể huấn luyện mạng bằng các phương pháp như:

• Dùng thuật toán lan truyền ngược

- Gradient

- Newton

- Levenberg Marquardt

• Sử dụng công cụ Matlab huấn luyện nơ-ron như:

- Tạo mạng nơ-ron mô phỏng trong Matlab

- Các hàm huấn luyện mạng nơ-ron trong Matlab

Trong bài toán này sẽ sử dụng Matlab để huấn luyện mạng, mà phương pháp dùng sẽ là Thuật toán lan truyền ngược.

a) Thuật toán lan truyền ngược

Xét một mạng truyền thẳng có M lớp, R đầu vào và SM đầu ra. Cho tập dữ liệu mẫu Ω = {pi ;ti }, i = 1, 2,..,Q , trong đó pi là đầu vào mẫu thứ i và ti là đầu ra mẫu thứ i (đích). Định nghĩa hàm mục tiêu:

Trong đó J

q

vào pq .

Để tìm các trọng số tối ưu của mạng sử dụng phương pháp gradient ngẫu nhiên cho mẫu thứ q như sau:

trong đó wm

i, j

nơ-ron thứ j

α > 0 là tốc độ học.

Đối với ngưỡng có:

trong đó bm ngưỡng nơ-ron thứ i thuộc lớp m . i

Việc tính hàm hợp như sau:

Trong đó a = f (n) và n = wp + b0

Áp dụng quy tắc trên cho (2.2), có:

∂J q ∂wm

i,j =∂n∂J mq ∂wm

i

Nhưng

hàm tuyến tính của các trọng số và ngưỡng, có:

trong đó avm−1

Định nghĩa độ nhạy của nơ-ron thứ i

24

download by : skknchat@gmail.com và

bim (k+1) = bim ( k) − αsim Biểu diễn dưới dạng ma trận có:

Wm ( k+1) = Wm ( k) −αm( am−1) T và bm (k +1) = bm (k) −αsm trong đó sm = ∂Jq ∂nm ∂ J q 1 m = ∂n2 ∂Jq m ∂ni

là véc-tơ độ nhạy của lớp m. Lại có: m+1 ∂ni ∂njm = w i,l = wm+1 = w i,l (2.1 1) (2.1 2) (2.1 3) (2.1 4)

25 download by : skknchat@gmail.com ∂nm +1 i ∂nm j = W trong đó : mm F (n

Sử dụng công thức (2.15) và quy tắc chuỗi có:

sm = ∂J q ∂nm T ∂J = ∂nm+ 1 q ∂nn ∂nm+1 m = F m = F (2.15) (2.16)

Từ công thức này có thể tính được độ nhạy của các lớp lần lượt từ lớp đầu ra ngược trở về lớp đầu vào như sau:

sM → s M−1 →→ s 2 → s1

Đây chính là cơ sở của thuật toán lan truyền ngược. Đầu tiên tính độ nhạy của lớp đầu ra. Ứng với mẫu thứ q có:

26

siM =q∂J ∂nM i =∂(tq − aq ∂n ∂∑ (t j − a j )2 SM = j =1 ∂nM i = −2(ti − ai ) ∂a i ∂niM

Do đó véc-tơ độ nhạy của lớp đầu ra là: s

M M

= −2F Tổng kết lại có thuật toán lan truyền ngược:

• Quá trình khởi tạo mạng: Chọn giá trị ban đầu cho tất cả các trọng số và ngưỡng trong mạng.

• Quá trình lan truyền thuận .

am+1 = f m+1 (W m+1a m + b m+1 )

• Quá trình lan truyền ngược độ nhạy.

s s

∀m = M −1,

• Quá trình cập nhật các tham số của mạng.

Wm ( k+1) = Wm( k) −α sm( am−1) T

Công thức tính từ (2.20) đến công thức (2.26) được gọi là huấn luyện ngẫu nhiên, bởi vì các tham số của mạng sẽ được cập nhật một lần mỗi khi một bộ tín hiệu vào ra mẫu thứ q được sử dụng.

27

Nếu sử dụng đồng thời tất cả các mẫu để cập nhật tham số của mạng một lần thì gọi là quá trình huấn luyện theo mẻ. Khi đó công thức cập nhật các tham số cho mạng như sau:

m

( k+1)

W

m b ( k +1) = b

trong đó chỉ số q tương ứng với mẫu thứ q .

Với mỗi mẫu q , phải tính đầu ra và độ nhạy của các lớp trong mạng, sau đó tính giá trị gradient trung bình trước khi cập nhật tham số của mạng. [3].

b) Phương pháp tối ưu hóa hàm mục tiêu

Khi phải tìm các tham số của mạng nơ-ron để sao cho mạng nơ-ron có thể thực hiện tốt một số chức năng như phân loại hay học, sẽ sử dụng phương pháp tối ưu hóa hàm mục tiêu. Nó được sử dụng bằng cách bình phương sai lệch giữa đầu ra của mạng với đầu ra mẫu, phụ thuộc vào các tham số của mạng nơ-ron.

• Hàm mục tiêu

Cho một hàm mục tiêu F (x ) với véc-tơ biến số (các trọng số, bias của mạng) là x =[x1 x2 ... xm]T . F là tổng bình phương sai lệch giữa đầu ra của mạng với đầu ra mẫu, là một hàm phi tuyến không âm. Tìm x* sao cho hàm F đạt giá trị nhỏ nhất. Dùng phương pháp lặp để tìm nghiệm: x k+1 = x k + α k p k

Vớiαk > 0 là tốc độ học ở lần hiện tại k.

pk là hướng tìm.[3].

2.2.2 Phương pháp tối ưu

Một số phương pháp:

- Phương pháp hạ sâu nhất (Steepest descent)

- Phương pháp Newton

- Phương pháp Levenberg Marquardt

28

a) Phương pháp hạ sâu nhất (Steepest descent)

Theo phương pháp lặp, sau mỗi vòng lặp mong muốn:

F (xk +1 ) < F (xk )

Khai triển Taylor hàm F xung quanh xk và xấp xỉ bậc nhất, có:

F (xk+1) = F (xk + ∆xk) ≈ F (x k) + ∆gTkx k trong đó: gk =∇F (x) x= xk = ∂F ∂x x= xk là véc-tơ gradient của hàm F theo vec-tơ x là:

x k = x

k+1 − x k = αk pk

Điều kiện (2.29) thỏa mãn khi:

gTk ∆xk = αk gTk p k < 0 Suy ra (2.29) (2.30) (2.31) (2.32) (2.33) gkT pk < 0 vì tốc độ học αk > 0 .

Giả sử độ lớn của véc-tơ hướng tìm pk

nhỏ nhất khi hai véc-tơ này ngược chiều nhau:

pk = −g k

Thay (2.35) vào (2.30) có:

không đổi, khi đó gTk pk đạt giá trị

(2.35)

xk +1 = xk −αk gk

Đây được gọi là phương pháp hạ sâu (steepest descent), vì hướng tìm ngược hướng với hướng của véc-tơ gradient làm cho giá trị hàm mục tiêu giảm nhiều nhất.[3].

29

30

b) Phương pháp Newton

Phương pháp Newton-Raphson

Phương pháp này có nguồn gốc từ thuật toán lặp của Newton để tìm nghiệm đa thức, sau được Raphson mở rộng để tìm nghiệm hệ phương trình phi tuyến khả vi:

f ( p) = 0 với f ∈ Rn và p ∈ Rn

Trước tiên gọi p * là nghiệm của (2.37)

f ( p*) = 0

Phân tích (2.38) thành chuỗi Taylor tại điểm pk

phần bậc cao trong chuỗi, sẽ được:

0 = f ( p*) ≈ f ( pk ) + Hk ( p* −pk )

Trong đó:

Hk =

H k là ma trận Jacobi của vector hàm Biểu thức :

0 = f ( pk ) + H k ( pk +1 − pk )

Áp dụng thuật toán Newton-Raphson trên bài toán tối ưu không ràng buộc tìm được nghiệm p * cho hệ phương trình (2.37):

31 download by : skknchat@gmail.com => trong đó: gradQ (p*) = 0 ⇔ f (p*) = (0) với pk+1 = pk − H k−1gradQ (p k) ∂ f Hk = ∂ p p =p

được gọi là ma trận Hesse của hàm vô hướng Q( p) tại điểm pk . Do Q( p) được giả thiết là khả vi hai lần nên Hk là ma trận đối xứng vì:

∂2Q = ∂2Q ∂pi ∂pj ∂pj ∂pi

Kết luận: Từ đây dễ dàng kiểm chứng được tính đúng đắn của một số kết luận sau về phương pháp Newton-Raphson:

- Nếu H k xác định dương thì Q( pk+1) < Q( pk ) . Thật vậy, từ (2.42), tức là từ:

pk+1 − pk = −H k−1gradQ (p k)

hay:

gradQ (p

thấy góc ϕ tạo bởi hai vector pk +1 − pk và gradQ (pk ) phải lớn hơn 90o , nên cũng phải có Q( pk+1) < Q( pk ) .

- Phương pháp Newton-Raphson cũng được áp dụng cho cả bài toán tối ưu tìm được giá trị cực đại:

Tuy nhiên khi đó phải luôn là ma trận xác định âm ở mỗi bước lặp.

-Phương pháp Newton-Raphson (2.42) cũng là một dạng phương pháp line search với hướng tìm:

32

hk = −H k−1gradQ (p k )

và khoảng cách bước tìm sk =1 .

- Để tăng hiệu quả tìm kiếm nghiệm tối ưu p* theo nghĩa tăng tốc độ hội tụ cho thuật toán, có thể bổ sung khoảng cách bước tìm tối ưu sk

(2.42) để nó trở thành:

pk +1 = pk + skhk với hk = −Hk−1 gradQ (pk) 1

- Với bài toán tối ưu dạng toàn phương Q( p) = 2

phương pháp Newton-Raphson sẽ cho ra nghiệm tối ưu tính. Thật vậy, từ: ∂2Q gradQ (p k ) = Apk + b và Hk = ∂ p2 p* chỉ sau đúng một bước = A p = pk

thì khi sử dụng công dụng thức tính lặp (2.42), có ngay từ bước đầu tiên với điểm xuất phát tùy chọn:

p1 = p0 − H 0−1gradQ (p 0 ) = p 0 − A−1 (Ap0 + b) = − A−1 b

Do giá trị

Thuật toán chi tiết của phương pháp Newton-Raphson sẽ gồm các bước sau: Thuật toán : Tìm nghiệm tối ưu theo phương pháp Newton-Raphson:

1) Chọn điểm khởi phát p0 thích hợp và một giá trị ε> 0 đủ nhỏ.

2) Thực hiện lần lượt các bước sau với k=0,1,… - Xác định hướng tìm hk

cách bước tìm sk

kiện Wolf hoặc (sk = arg min Q( p

s>0

hàm mục tiêu Q( p) tại thời điểm hiện tại.

33

- Kiểm tra: Nếu | Q( pk+ 1) − Q( p k ) |< ε thì dừng và cho ra đáp số p* ≈ pk+1 . Ngược

lại thì gán k := k +1 rồi quay lại bước a). [2]. Phương pháp tựa Newton (Quasi Newton)

Phương pháp Newton Raphson có một hạn chế cơ bản khi đưa vào ứng dụng, đó là việc phải xác định được ma trận Hesse nghịch đảo Hk−1 tại từng bước lặp. Để khắc phục nhược điểm này, đã thay thế công thức (2.39) thành:

0 = f ( pk+1 ) ≈ f( pk ) + Hk dk với:

dk = pk+1 − pk , f ( pk) = gradQ( pk)

Khi đó:

dk = −H

trong đó B là giá trị xấp xỉ của

k

tại từng bước lặp k với nhiều phiên bản tính xấp xỉ khác nhau (bảng 2.1). Chúng chủ yếu được rút ra từ quan hệ gần đúng:

Q( pk+1) = Q( pk + dk) ≈ Q( pk) + gradQ( p k)T d k + 1 2 d T kH kd k => gradQ (pk+1 ) ≈ gradQ (p k ) +H kd k => d ≈ B y k k k

Thuật toán: Tìm nghiệm tối ưu theo phương pháp Quasi Newton

1) Chọn điểm khởi phát p0 thích hợp và một giá trị ε> 0 đủ nhỏ. Tính ma trận

Hesse nghịch đảo = −1.

2) Thực hiện lần lượt các bước sau với k = 0,1,… .

a) Tính dk = −skBk gradQ( pk) với sk > 0 được thỏa mãn điều kiện Wolf.

b) Tính pk+1 = p k +dk.

c) Kiểm tra, nếu | Q( pk+ 1) − Q( pk ) |< ε thì dừng và cho ra đáp số p* ≈ pk +1 .

34

download by : skknchat@gmail.com

B k−1

d) Tính gradQ (pk+1 ) và yk = gradQ(pk+1) − gradQ (p k ) . Từ đó xác định

Bk+1 theo công thức ở bảng (2.1) rồi gán k := k +1 và quay về bước a).

Bảng 2.1: Bảng công thức tính ma trận Hesse Tên Davidon-Fletcher-Powell (DFP) Broyden-fletcher-Goldfarb- Shanno (BFGS)

Symmetric rank one (SR1) Broyden Hk−11 = Bk1 + + B k+1 B k+1 Bk+1 = Bk + B k+1 = B k + Phương pháp Gauss-Newton

Xét một bài toán có hàm mục tiêu dạng toàn phương: Với hàm Q( p) dạng toàn phương:

Q( p) = 1

2 pT Ap + bT p + c (2.47)

Cho ma trận A là ma trận đối xứng. Khi đó Q( p) là hàm lồi khi và chỉ khi

Abán xác định dương (được kí hiệu là AT = A ≥0 ). Sử dụng tính chất nêu trên

về nghiệm tối ưu p * được :

0 = gradQ (p*) = Ap * +b

Do đó nếu A còn là ma trận không suy biến, tức là khi ma trận A còn là ma trận xác dịnh dương (được kí hiệu là AT = A ≥0 ), thì bài toán sẽ có nghiệm tối ưu duy nhất:

35

Gauss đã p*= argminQ (p ) hướng, khả vi qi ( p) , i =1,2,3, Q( p) i=1 trong đó: q (p) = (q1 ( p),q2 (p ),...,qm (p))T

với pk là giá trị tìm được tại bước lặp thứ k , dk là lượng hiệu chỉnh cho nó để được pk +1 ở bước lặp tiếp theo, tức là:

p k+1 = p k + d k Từ công thức xấp xỉ: ∂q q( pk+1 ) = q( pk + dk ) ≈ q( pk) + J kd k với J k = ∂ p p= pk Sẽ có: Q( p k+1

Do đó bài toán xác định lượng hiệu chỉnh dk

Q( pk+1 ) → min là tương đương với:

Q( p + d ) ≈ dT

k k

⇔ dT (J TJ

k

k k

Thấy đây lại chính là bài toán tối ưu toàn phương (2.47) đã xét ở bài toán dạng toàn phương trên, nên từ kết quả (2.48) tương ứng, thu được:

dk = −(J T k J k)−1J T kq (p k) Vậy: pk+1 = pk − (J T kJ k )−1J T k (q (p k) 36

Dựa vào thuật toán của phương pháp line search ở hình 2.3, đi đến các bước cụ thể của thuật toán Gauss-Newton để tìm nghiệm tối ưu p *.

Thuật toán: Tìm nghiệm p * tối ưu theo phương pháp Gauss-Newton:

1) Chọn điểm khởi phát p0 thích hợp và một giá trị ε> 0 đủ nhỏ.

2) Thực hiện lần lượt các bước sau với k = 0,1, 2, …

a) Tính pk+1 theo (2.39).

b) Kiểm tra, nếu thì dừng và cho ra đáp số. Ngược lại thì gán k := k +1 rồi quay về bước 0.

Hình 2.2 Đường đồng mức, véc-tơ gradient và quỹ đạo tìm nghiệm tối ưu .[2].

Kết luận:

Về thuật toán Gauss-Newton trên, còn có một số kết luận bổ sung sau: - Do tại điểm tối ưu p * có gradQ (p*)= 0 nên điều kiện dừng thuật toán ở đây bằng | q( p

- Trong nhiều trường hợp, để kết thúc thuật toán, thì bên cạnh điều kiện vừa nêu, còn có thêm điều kiện về số vòng lặp giới hạn cực đại là k ≤ K .

37

- Nếu so sánh với phương pháp Newton-Raphson trước đây thì ở phương pháp Gauss- Newton này, ma trận Hesse đã được xấp xỉ bằng:

Hk ≈ 2(JT

k Jk)

Hình 2.3 Nguyên tắc làm việc của phương pháp tìm nghiệm có hướng (line search) [2].

Nói cách khác, công thức xấp xỉ (2.51) có được là do đã bỏ qua các thành phần đạo hàm bậc cao trong (2.52).

38

Thực chất phương pháp Gauss-Newton cũng là phương pháp tìm nghiệm có hướng (line search) với hướng tìm:

hk = −( JkT J k )−1J kTq (p k)

- Và khoảng cách giữa các bước tìm sk =1 tại tất cả các bước lặp.

Để linh hoạt hơn trong việc điều chỉnh tốc độ hội tụ cho thuật toán, điều chỉnh bước tìm sk ở từng bước lặp k bằng một giá trị được chọn thỏa mãn điều kiện Wolf, hoặc chọn theo phương pháp thu nhỏ khoảng nghiệm, hoặc bằng phương pháp tối ưu theo sk = arg minQ( pk + shk ) , thay vì sử dụng giá trị cố định

s> 0

sk =1. Nói cách khác, tại mỗi bước lặp k , công thức (2.38) sẽ được thay bằng:

p = p

k +1

- Cuối cùng, ở bước lặp k , để có được pk+1 , cho dù theo (2.50) hoặc (2.54), thì

cũng luôn cần phải có giả thiết J T

k J k là nghịch đảo được. Để có điều này, do kích thước ma trận Jk là m× n, nên ít nhất số các phần tử n của p phải không được nhiều hơn m là số các phần tử của q , tức là chí ít phải có m ≥ n . [2].

Điều kiện Wolf cho việc xác định khoảng cách bước tìm.[2].

Điều kiện Wolf được biết đến như một giải pháp hữu hiệu giúp xác định được xấp xỉ khoảng cách bước tìm

sk = argminQ (pk + shk ) . Sau đây sẽ

sk = argminQ (pk + shk ) là khoảng cách bước tìm thích hợp cho các phương pháp line search.

Điều kiện Wolf có nội dung như sau:

Định lí điều kiện Wolf: khoảng cách bước tìm sk sẽ là thích hợp nếu:

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng mạng nơ ron trong nhận dạng và điều khiển (Trang 35 - 70)

Tải bản đầy đủ (DOCX)

(94 trang)
w