Mạng Nơron Truyền Thẳng Nhiều Lớp

dựa trên cách thức liên kết các đơn vị, Mạng truyền thẳng, dòng dữ liệu từ đơn vị đầu vào đến đơn vị đầu ra chỉ được truyền thẳng. Việc xử lý dữ liệu có thể mở rộng ra nhiều lớp, nhưng không có các liên kết phản hồi. Nghĩa là, các liên kết mở rộng từ các đơn vị đầu ra tới các đơn vị đầu vào trong cùng một lớp hay các lớp trước đó là không cho phép, hình 2.9.

Hình 2 9 Mạng nơron truyền thẳng nhiều lớp 2 4 5 Mạng hồi quy Mạng hồi quy 1

Hình 2.9. Mạng nơron truyền thẳng nhiều lớp

2.4.5. Mạng hồi quy

Mạng hồi quy có chứa các liên kết ngược, khác với mạng truyền thẳng, các thuộc tính động của mạng mới quan trọng. Trong một số trường hợp, các giá trị kích hoạt của các đơn vị trải qua quá trình nới lỏng (tăng giảm số đơn vị và thay đổi các liên kết) cho đến khi mạng đạt đến một trạng thái ổn định và các giá trị kích hoạt không thay đổi nữa. Trong các ứng dụng khác mà cách chạy động tạo thành đầu ra của mạng thì những sự thay đổi các giá trị kích hoạt là đáng quan tâm, hình 2.10.


Hình 2 10 Mạng nơron hồi quy nhiều lớp 2 4 6 Huấn luyện mạng Nơron Chức năng 2

Hình 2.10. Mạng nơron hồi quy nhiều lớp

2.4.6. Huấn luyện mạng Nơron

Chức năng của một mạng nơron được quyết định bởi các nhân tố như: hình trạng mạng (số lớp, số đơn vị trên mỗi tầng, và cách mà các lớp được liên kết với nhau) và các trọng số của các liên kết bên trong mạng. Hình trạng của mạng thường là cố định, và các trọng số được quyết định bởi một thuật toán huấn luyện. Tiến trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào và đích mong muốn được gọi là học hay huấn luyện. Rất nhiều thuật toán học đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bài toán. Các thuật toán đó có thể chia làm hai nhóm chính: Học có giám sát và Học không có giám sát.

2.4.7. Các phương pháp học

2.4.7.1. Khái niệm

Học là quá trình thay đổi hành vi của các vật theo một cách nào đó làm cho chúng có thể thực hiện tốt hơn trong tương lai. Một mạng nơron được huyấn luyện sao cho với một tập các vector đầu vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó. Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn luyện. Các phần tử x thuộc X được gọi là các mẫu huấn luyện. Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của mạng. Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra y như mong muốn. Có ba phương pháp học phổ biến là học có giám sát, học không giám sát và học tăng cường.

2.4.7.2. Học có giám sát

Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng D = {(x,t) | (x,t) [IRN x RK]}, trong đó: x = (x1, x2, ..., xN) là vector đặc trưng N chiều của mẫu huấn luyện và t = (t1, t2, ..., tK) là vector mục tiêu K chiều tương ứng, nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán trên mạng như

thế nào đó để sao cho với mỗi vector đặc trưng đầu vào thì sai số giữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất. Chẳng hạn mạng có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ trên tập các mẫu huấn luyện (x, t) hình 2.11.

Hình 2 11 Học có giám sát Như vậy với học có giám sát số lớp cần phân 3

Hình 2.11. Học có giám sát


Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước. Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó.

2.4.7.3. Học không giám sát

Là việc học không cần có bất kỳ một sự giám sát nào.Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x , x ,.., x )},

1 2 N

với (x , x , ..., x ) là vector đặc trưng của mẫu huấn luyện. Nhiệm vụ của thuật

1 2 N

toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau.

Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau.

2.4.7.4. Học tăng cường

Đôi khi còn được gọi là học thưởng-phạt, là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra


43

do mạng tính được. Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống.


2.4.7.5. Thuật toán học có giám sát trong các mạng nơron

Học có giám sát có thể được xem như việc xấp xỉ một ánh xạ: X→ Y, trong đó X là tập các vấn đề và Y là tập các lời giải tương ứng cho vấn đề đó. Các mẫu (x, y) với x = (x1, x2, . . ., xn) X, y = (yl, y2, . . ., ym) Y được cho trước. Học có giám sát trong các mạng nơron thường được thực hiện theo thuật toán 2.8

Thuật toán 2.8. Học có giám sát

Bước 1. Xây dựng cấu trúc thích hợp cho mạng nơron, chẳng hạn có (n + 1) nơron vào (n nơron cho biến vào và 1 nơron cho ngưỡng x0), m nơron đầu ra, và khởi tạo các trọng số liên kết của mạng.

Bước 2. Đưa một vector x trong tập mẫu huấn luyện X vào mạng

Bước 3. Tính vector đầu ra o của mạng

Bước 4. So sánh vector đầu ra mong muốn y (là kết quả được cho trong tập huấn luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi.

Bước 5. Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở lần tiếp theo khi đưa vector x vào mạng, vector đầu ra o sẽ giống với y hơn.

Bước 6. Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng thái hội tụ.


Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều nhất là sử dụng lỗi tức thời: Err = (o - y), hoặc Err = |o - y|; lỗi trung bình bình phương (MSE: mean-square error): Err = (o- y)2/2;

Có hai loại lỗi trong đánh giá một mạng nơron. Thứ nhất, gọi là lỗi rõ ràng, đánh giá khả năng xấp xỉ các mẫu huấn luyện của một mạng đã được huấn luyện. Thứ hai, gọi là lỗi kiểm tra, đánh giá khả năng tổng quá hóa của một mạng đã được

huấn luyện, tức khả năng phản ứng với các vector đầu vào mới. Để đánh giá lỗi kiểm tra chúng ta phải biết đầu ra mong muốn cho các mẫu kiểm tra.

Thuật toán tổng quát ở trên cho học có giám sát trong các mạng nơron có nhiều cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết được thay đổi trong suốt thời gian học. Trong đó tiêu biểu nhất là thuật toán lan truyền ngược.

2.4.7.6. Thuật toán lan truyền ngược

Ta sử dụng một số kí hiệu sau: j: nơron thứ j (hay nút thứ j) Xj: vector đầu vào của nút thứ j

Wj: vector trọng số của nút thứ j

xji: đầu vào của nút thứ j từ nút thứ i wji: trọng số trên xji

bj: ngưỡng tại nút thứ j oj: đầu ra của nút thứ j

tj: đầu ra mong muốn của nút thứ j

Downstream(j): Tập tất cả các nút nhận đầu ra của nút thứ j làm một giá trị đầu vào.

η: tốc độ học

f: hàm truyền với f(x) = 1 / (1 + e-x) như thuật toán 2.9


Thuật toán 2.9. Thuận toán lan truyền ngược

Input:

- Mạng feed-forward với ni đầu vào, nh nút ẩn và no đầu ra.

- Hệ số học η

- Tập dữ liệu huấn luyện D = {là vector đầu vào, là vector đầu ra mong muốn}.

Output: Các vector trọng số

Bước 1. Khởi tạo trọng số bởi các giá trị ngẫu nhiên nhỏ. Bước 2. Lặp lại cho tới khi thỏa mãn điều kiện kết thúc. Với mỗi mẫu, thực hiện các bước sau:

2.1 Tính đầu ra oj cho mỗi nút j: oj = f(d – bj) với d = Σxjiwji

2.2 Với mỗi nút k thuộc tầng ra, tính δk theo công thức: δk = (tk – ok)(1 – ok)ok

2.3 Với mỗi nút h thuộc tầng ẩn, tính δh theo công thức: δh = oh(1 – oh) Σδkwkh với k Downstream(j)

Cập nhật: wji = wji + Δwji Trong đó Δwji = ηδkxji


2.4.8. Mạng truyền thẳng

Một mạng truyền thẳng nhiều lớp bao gồm một lớp vào, một lớp ra và một hoặc nhiều lớp ẩn. Các nơron đầu vào thực chất không phải các nơron theo đúng nghĩa, bởi lẽ chúng không thực hiện bất kỳ một tính toán nào trên dữ liệu vào, đơn giản nó chỉ tiếp nhận các dữ liệu vào và chuyển cho các lớp kế tiếp. Các nơron ở lớp ẩn và lớp ra mới thực sự thực hiện các tính toán, kết quả được định dạng bởi hàm đầu ra (hàm chuyển). Cụm từ “truyền thẳng” (không phải là trái nghĩa của lan truyền ngược) liên quan đến một thực tế là tất cả các nơron chỉ có thể được kết nối với nhau theo một hướng: tới một hay nhiều các nơron khác trong lớp kế tiếp (loại trừ các nơron ở lớp ra), hình 2.12.

Hình 2 12 Mạng nơron MPL tổng quát Mỗi liên kết gắn với một trọng số 4

Hình 2.12. Mạng nơron MPL tổng quát

Mỗi liên kết gắn với một trọng số, trọng số này được thêm vào trong quá trình tín hiệu đi qua liên kết đó. Các trọng số có thể dương, thể hiện trạng thái kích thích, hay âm, thể hiện trạng thái kiềm chế. Mỗi nơron tính toán mức kích hoạt của chúng bằng cách cộng tổng các đầu vào và đưa ra hàm chuyển. Một mạng nơ ron đơn giản được xây dựng như thật toán 2.10

Thuật toán 2.10. Xây dựng mạng nơ ron Intput: Cho: Mạng nơ ron có sô lớp (với sô lớp>1).

Mỗi lớp có số nơron trong một lớp (số neural>=1).

Trọng số w liên kết nơ ron ngẫu nhiên trong khoảng (-a,a).

Output: Mạng nơ ron nhân tạo.

Kiểu dữ liệu: chọn lưu dữ kiểu mảng : int số lớp;

int số nơ ron[số lớp]; w[i][j][k]; với 2<=i<=số lớp, 1<=j,k<=số nơ ron[] ,

Bước 1. Chọn lớp i=2 là lớp bắt đầu

Bước 2. Chọn lớp i là lớp hiện thời.

Bước 3. Tại lớp đang xét i , xét nơ ron thứ j .

Bước 4. Thực hiện khởi tạo ngẫu nhiên trọng số kết nối với nơ ron k của lớp i-1

trong khoảng (-a,a). w(i,j,k)=random(-a,a)

Bước 5. Nếu k <= số nơ ron[i-1] quay lại “Bước 4”, ngược lại thực hiện “Bước 6”.

Bước 6. Nếu j<= số nơ ron[i] quay lại “Bước 3”, ngược lại thực hiện “Bước 7”.

Bước 7. Nếu i<=số lớp quay lại “ Bước 3’ ngược lại kết thúc

Một khi đầu ra của tất cả các nơron trong một lớp mạng cụ thể đã thực hiện xong tính toán thì lớp kế tiếp có thể bắt đầu thực hiện tính toán của mình bởi vì đầu ra của lớp hiện tại tạo ra đầu vào của lớp kế tiếp. Khi tất cả các nơron đã thực hiện tính toán thì kết quả được trả lại bởi các nơron đầu ra. Tuy nhiên, có thể là chưa đúng yêu cầu, khi đó một thuật toán huấn luyện cần được áp dụng để điều chỉnh các tham số của mạng. Xét trường hợp mạng có hai lớp, công thức tính toán cho đầu ra theo công thức (2.24).

𝒂𝟐=𝒇𝟐(𝒘𝟐(𝒇𝟏(𝒘𝟏p+𝒃𝟏))+𝒃𝟐

(2.24)

Có thể bạn quan tâm!

Xem toàn bộ 96 trang tài liệu này.

Mạng có nhiều lớp có khả năng tốt hơn là các mạng chỉ có một lớp, chẳng hạn như mạng hai lớp với lớp thứ nhất sử dụng hàm sigmoid và lớp thứ hai dùng hàm đồng nhất có thể áp dụng để xấp xỉ các hàm toán học khá tốt, trong khi các mạng chỉ có một lớp thì không có khả năng này.

2.4.9. Kết luận chương

Trong chương này trình bày cơ sở lý thuyết, luận văn đã đã trình bày ba kỹ thuật tiền xử lý ảnh quan trọng, thường xuyên được sử dụng trong các hệ thống nhận dạng: Nhị phân ảnh, căn chỉnh độ nghiêng của ảnh và một số phép toán hình thái. Đây là bước rất cần thiết đối với một hệ phân tích ảnh và nhận dạng ảnh tài liệu, nó không chỉ khôi phục lại các đặc trưng của ảnh như ban đầu mà còn làm nổi bật các đặc trưng trong ảnh. Mạng nơ-ron, máy học chuyên sâu tiên tiến giúp cho chúng ta xây dựng đựợc những hệ thống thông minh với độ chính xác cao như hiện nay. Trong luận văn này chúng tôi đi vào nghiên cứu về mạng nơrơn cũng như ý tưởng của mô hình trong phân lớp ảnh, và áp dụng trong việc xây dựng hệ thống. Trên cơ sở lý thuyết vừa tìm hiểu ở chương này, chúng tôi sẽ ứng dụng mô hình cho việc nhận dạng ảnh được trình bày trong chương tiếp theo sẽ ứng dụng các kỹ thuật đã nêu trên để xác định các trường thông tin trên ảnh CCCD.

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 10/02/2023