Ứng dụng của mạng nơron

Một phần của tài liệu Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự (Trang 25)

Kể từ khi ra đời và phát triển mạng nơron đã đƣợc ứng dụng trong rất nhiều lĩnh vực. Do vậy, liệt kê đƣợc tất cả các ứng dụng của mạng nơron là không thực tế. Tuy nhiên, ta có thể đƣa ra một số ứng dụng điển hình của mạng nơron nhƣ sau:

 Xử lý ảnh, nhìn máy: Gồm trùng khớp ảnh, tiền xử lý ảnh, phân đoạn và phân tích ảnh, nén ảnh,...

 Xử lý tín hiệu: Phân tích tín hiệu địa chấn và hình thái học.

 Nhận dạng mẫu: Gồm việc tách các nét đặc biệt của mẫu, phân loại và phân tích tín hiệu của rada, nhận dạng và hiểu tiếng nói, nhận dạng vân tay, ký tự, chữ viết,...

 Y học: Phân tích và hiểu tín hiệu điện tâm đồ, chuẩn đoán bệnh, xử lý ảnh y học.

 Quân sự: Các hệ phát hiện thuỷ lôi, phân loại luồng rada, nhận dạng nguời nói.

 Các hệ tài chính: Gồm phân tích thị trƣờng chứng khoán, định giá bất động sản, cấp phát thẻ tín dụng và thƣơng mại an toàn.

 Trí tuệ nhân tạo: Gồm các hệ chuyên gia,...

 Dự đoán: Dự đoán các trạng thái của hệ thống,...

 Quy hoạch, kiểm tra và tìm kiếm: Gồm cài đặt song song các bài toán thoả mãn ràng buộc, tìm nghiệm bài toán ngƣời du lịch, điều khiển và

26

robot.

Mạng nơron dựa trên việc mô phỏng cấp thấp hệ thống nơron 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ự.

27

CHƢƠNG 2

BIỂU DIỄN TRI THỨC BẰNG MẠNG NƠRON 2.1. Các kiến trúc mạng

2.1.1. Mạng một tầng

Mạng một tầng với S nơron đƣợc minh họa trong hình 2.1, với mỗi một đầu vào trọng số R đầu vào sẽ đƣợc nối với từng nơron và ma trận trọng số sẽ có S hàng.

Hình 2.1: Cấu trúc mạng nơron 1 tầng

Một tầng bao gồm ma trận trọng số, các bộ cộng, vector ngƣỡng b, hàm chuyển và vector đầu ra a.

Mỗi phần tử của vector đầu vào p đƣợc nối với từng nơron thông qua

ma trận trọng số W. Mỗi nơron có một ngƣỡng bi, một bộ cộng, một hàm

chuyển f và một đầu ra ai. Cùng với nhau, các đầu ra tạo thành một vector đầu ra a. Thông thƣờng thì số lƣợng đầu vào của tầng khác với số lƣợng

nơron (R#S).

Tất cả các nơron trong cùng một tầng không có hàm chuyển giống nhau. Có thể định nghĩa các nơron trong một tầng có hàm chuyển khác nhau

28

bằng cách kết hợp song song hai mạng nơron giống ở trên. Cả hai sẽ có đầu vào giống nhau, và mỗi mạng sản xuất ra vài đầu ra.

Ma trận trọng số cho các phần tử trong vector đầu vào W:

W =               R S S S R R w w w w w w w w w , 2 , 1 , , 2 2 , 2 1 , 2 , 1 2 , 1 1 , 1 ... ... ... ... ... ... ...

Các chỉ số hàng của các phần tử trong ma trận W chỉ ra nơron đích đã kết hợp với trọng số đó, trong khi chỉ số cột cho biết đầu vào cho trọng số đó. Vì vậy, các chỉ số trong w32 nói rằng đây là trọng số của đầu vào thứ 2 nối với nơron thứ 3.

Hình 2.2: Mạng một tầng vẽ rút gọn (adsbygoogle = window.adsbygoogle || []).push({});

Trong hình trên, những kí hiệu ở dƣới các biến cho biết các thông số về tầng này, p là một vector có độ dài R, W là ma trận SR, a và b là những

vector có độ dài S. Nhƣ đã định nghĩa trƣớc rồi, một tầng bao gồm ma trận trọng số, bộ cộng và các phép toán nhân, vector ngƣỡng b, hàm chuyển và

vector đầu ra.

1 R SS 1  S W b f + 1  R 1  S n a 1  S R

Input Layer of S Nơron

p

29

2.1.2. Mạng đa tầng

Mỗi tầng có ma trận trọng số W của riêng nó, vector b, vector đầu vào

n, và một vector đầu ra. Khi đó cần phải khai báo thêm vài kí hiệu để phân

biệt giữa các tầng này. Ta sẽ sử dụng cách viết lên trên đầu để nhận biết kí hiệu đó thuộc tầng nào. Chính xác là chúng ta gắn thêm chỉ số của tầng trên đầu mỗi biến. Nhƣ vậy, ma trận trọng số của tầng thứ 2 đƣợc viết nhƣ này

w2. Cách kí hiệu này đƣợc dùng trong mạng nơron 3 tầng nhƣ hình 2.3

Hình 2.3: Cấu trúc mạng nơron 3 lớp

Nhƣ đã thấy, có R đầu vào, S1 nơron ở tầng thứ nhất, S2nơron ở tầng thứ hai, S3 nơron ở tầng thứ ba, v.v.. Nhƣ đã chú ý, những tầng khác nhau có thể có số lƣợng nơron khác nhau.

Đầu ra của các tầng 1 và 2 là đầu vào của tầng 2 và tầng 3. Vì vậy tầng 2 có thể đƣợc xem nhƣ mạng nơron một tầng với đầu vào R= S1, nơron S= S2, và ma trận trọng số W = S1 S2. Đầu vào của tầng 2 là a1, và đầu ra là a2.

Đầu ra của một tầng chính là đầu ra của mạng thì ta gọi đó là tầng ra. Các tầng còn lại gọi là tầng ẩn. Mạng nơron nhƣ ở trên có một tầng ra (tầng 3) và hai tầng ẩn (tầng 1 và tầng 2).

30

Một mạng có ba tầng giống hệt nhau nhƣ trên cũng có thể đƣợc vẽ gọn lại nhƣ hình 2.4:

Hình 2.4: Mạng nơron 3 tầng, vẽ rút gọn.

Mạng đa tầng có ứng dụng mạnh hơn mạng một tầng. Ví dụ, một mạng hai tầng có tầng thứ nhất là tầng xichma và tầng thứ hai là tầng tuyến tính có thể đƣợc huấn luyện để xấp xỉ mọi hàm toán học tùy ý khá chuẩn. Mạng một tầng không làm đƣợc điều này.

Nếu có bốn yếu tố bên ngoài đƣợc dùng nhƣ các kích thích đầu vào, thì mạng của ta sẽ có bốn đầu vào. Tƣơng tự nhƣ vậy nếu mạng có bảy đầu ra thì phải có bảy nơron ở tầng ra. Cuối cùng, các đặc điểm mong muốn có đƣợc ở tín hiệu đầu ra cũng giúp ta chọn lựa hàm chuyển hợp lý hơn cho tầng ra. Giả sử một đầu ra là một trong hai giá trị -1 hoặc 1, thì khi đó hàm chuyển giới hạn ngặt đối xứng sẽ đƣợc lựa chọn. Nhƣ vậy, kiến trúc mạng một tầng hầu nhƣ đƣợc xác định hoàn toàn bởi các yếu tố kỹ thuật, bao gồm số đầu vào, đầu ra, và các thuộc tính của tín hiệu ra.

Khi mạng có nhiều hơn hai tầng. Các yếu tố bên ngoài không cho biết số lƣợng các nơron yêu cầu bao nhiêu ở các tầng ẩn. Thực tế, có một vài vấn đề cho việc dự đoán số lƣợng nơron tối ƣu ở tầng ẩn. Vấn đề này là một lĩnh vực nghiên cứu.

31

Về số lƣợng tầng trong mạng thì hầu hết những mạng nơron thực tế chỉ có hai hay ba tầng. Bốn tầng hoặc nhiều hơn rất ít khi đƣợc sử dụng.

Một mạng có thể chọn lựa việc các nơron có hay không có các giá trị ngƣỡng. Giá trị ngƣỡng là một biến phụ cho mạng. Lƣu ý, có một nơron không có giá trị ngƣỡng khi đó đầu vào của hàm chuyển (net input) sẽ luôn luôn là 0 khi đầu vào của mạng p là 0.

Đây là điều không mong muốn và chúng ta có thể loại bỏ vấn đề này bằng việc sử dụng giá trị ngƣỡng. Ảnh hƣởng của giá trị ngƣỡng đến kết quả nhƣ thế nào chúng ta sẽ phải nghiên cứu sâu hơn. Giá trị ngƣỡng có thể bỏ đi, trong một số trƣờng hợp điều này đƣợc làm đơn giản là để giảm số lƣợng tham số của mạng. Chỉ với hai biến, chúng ta có thể vẽ đƣợc đồ thị cho hệ mặt phẳng hai chiều. Ba hay nhiều biến hơn sẽ khó hiển thị.

2.2. Các hình trạng của mạng

Hình trạng của mạng đƣợc định nghĩa bởi: số lớp, số đơn vị trên mỗi lớp, và sự liên kết giữa các lớp nhƣ thế nào. Các mạng về tổng thể đƣợc chia thành hai loại dựa trên cách thức liên kết các đơn vị: Mạng nơron nhân tạo có một số mô hình thông dụng sau:

2.2.1. Mạng truyền thẳng

- Mạng truyền thẳng một lớp: Là mô hình liên kết cơ bản và đơn giản nhất. Các nơron tổ chức lại với nhau tạo thành một lớp, tín hiệu đƣợc truyền theo một hƣớng nhất định nào đó. Các đầu vào đƣợc nối với các nơron theo trọng số khác nhau, sau quá trình xử lý cho ra một chuỗi các tín hiệu ra. Nếu mạng là mô hình LTU thì nó đƣợc gọi là mạng Perception, còn mạng nơron theo mô hình LGU thì đƣợc gọi là Adalin (adsbygoogle = window.adsbygoogle || []).push({});

32

x1 y1

x2 y2

xm yn

Hình 2.5: Mô hình mạng truyền thẳng một lớp

Với mỗi giá trị đầu vào x =[x1, x2, ..., xm]T qua quá trình xử lí của mạng sẽ thu đƣợc một bộ đầu ra tƣơng ứng y =[y1, y2,..., yn]T

- Mạng truyền thẳng nhiều lớp: Với cấu trúc đơn giản nhƣ trên, khi giải quyết các bài toán phức tạp mạng truyền thẳng một lớp sẽ gặp rất nhiều khó khăn. Để khắc phục nhƣợc điểm này, ngƣời ta đƣa ra mạng truyền thẳng nhiều lớp. Đây là mạng truyền thẳng gồm nhiều lớp kết hợp với nhau. Lớp nhận tín hiệu gọi là lớp đầu vào (input layer), lớp đƣa các tín hiệu ra gọi là lớp đầu ra (output layer), các lớp ở giữa lớp vào và lớp ra gọi là lớp ẩn (hidden layers). Cấu trúc của mạng nơron truyền thẳng nhiều lớp đƣợc mô tả trong hình 2.3.

33

2.2.2. Mạng hồi quy

Bên cạnh mạng truyền thẳng còn có những dạng mạng khác nhƣ các mạng hồi quy. Các mạng hồi quy thƣờng có các liên kết ngƣợc từ các lớp phía sau đến các lớp phía trƣớc hay giữa các nơron trong bản thân một lớp.

 Mạng hồi quy một lớp có nối ngƣợc.

Hình 2.7: Mạng hồi quy một lớp có nối ngược

 Mạng hồi quy nhiều lớp có nối ngƣợc.

34

2.3. Xây dựng mạng nơron

Về cơ bản ta có thể hiểu mạng nơron là một đồ thị có hƣớng nhƣ hình 2.1. Trong đó các đỉnh của đồ thị là các nơron và các cạnh của đồ thị là các liên kết giữa các nơron.

Hình 2.9: Sơ đồ một đồ thị có hướng đơn giản

Vì vậy để xây dựng một mạng nơron ta xây dựng một đồ thị có hƣớng: số đỉnh của đồ thị bằng số nơron trong mạng, giá trị của các cạnh chính là trọng số liên kết nơron.

Ví dụ xây dựng một mạng nơron đơn giản:

Đầu vào:

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ố nơron >=1).

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

Đầu ra: 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];

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

x h1 h2 h3 g2 g1 f

35

Thuật toán. (adsbygoogle = window.adsbygoogle || []).push({});

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.

2.4. Huấn luyện mạng nơron 2.4.1. Phƣơng pháp học 2.4.1. Phƣơng pháp học

Mạng nơron nhân tạo phỏng theo việc xử lý thông tin của bộ não ngƣời, do vậy đặc trƣng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học. Trong trạng thái học thông tin đƣợc lan truyền theo hai chiều nhiều lần để học các trọng số. Có 3 kiểu học chính, mỗi kiểu học tƣơng ứng với một nhiệm vụ học trừu tƣợng. Đó là học có giám sát (có mẫu), học không giám sát và học tăng cƣờng. Thông thƣờng loại kiến trúc mạng nào cũng có thể dùng đƣợc cho các nhiệm vụ.

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

Một thành phần không thể thiếu của phƣơng pháp này là sự có mặt của một ngƣời thầy (ở bên ngoài hệ thống). Ngƣời thầy này có kiến thức về môi trƣờng thể hiện qua một tập hợp các cặp đầu vào - đầu ra đã đƣợc biết trƣớc. Hệ thống học (ở đây là mạng nơron) sẽ phải tìm cách thay đổi các tham số bên trong của mình (các trọng số và các ngƣỡng) để tạo nên một ánh xạ có

36

khả năng ánh xạ các đầu vào thành các đầu ra mong muốn. Sự thay đổi này đƣợc tiến hành nhờ việc so sánh giữa đầu ra thực sự và đầu ra mong muốn.

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

Trong học không có giám sát, ta đƣợc cho trƣớc một số dữ liệu x và hàm chi phí cần đƣợc cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra của mạng, f – hàm chi phí đƣợc quyết định bởi phát biểu của bài toán. Phần lớn các ứng dụng nằm trong vùng của các bài toán ƣớc lƣợng nhƣ mô hình hóa thống kê, nén, lọc, phân cụm.

2.4.1.3. Học tăng cƣờng

Dữ liệu x thƣờng không đƣợc tạo trƣớc mà đƣợc tạo ra trong quá trình một agent tƣơng tác với môi trƣờng. Tại mỗi thời điểm t, agent thực hiện hành động yt và môi trƣờng tạo một quan sát xt với một chi phí tức thời Ct, theo một quy trình động nào đó (thƣờng là không đƣợc biết). Mục tiêu là một sách lƣợc lựa chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi. Quy trình hoạt động của môi trƣờng và chi phí dài hạn cho mỗi sách lƣợc thƣờng không đƣợc biết, nhƣng có thể ƣớc lƣợng đƣợc. Mạng nơron nhân tạo thƣờng đƣợc dùng trong học tăng cƣờng nhƣ một phần của thuật toán toàn cục. Các bài toán thƣờng đƣợc giải quyết bằng học tăng cƣờng là các bài toán điều khiển, trò chơi và các nhiệm vụ quyết định tuần tự (sequential decision making) khác.

2.4.2. Thuật toán học

2.4.2.1. Thuật toán học của mạng nơron một lớp

Xét trƣờng hợp Perceptron sử dụng hàm kích hoạt ngƣỡng:                 d i i i d i i i t w v t w v output 1 1 , 1 , 1 (1.1)

37

Nếu ta cho w0=-t và v0=1, ta có thể viết lại

                        d i i i d i i i d i i i w v sign w v w v output 0 0 0 0 , 1 0 , 1 Thuật toán:

Thuật toán học của Perceptron hay mạng nơron một lớp gồm 3 bƣớc chính:

Bƣớc 1: Khởi tạo:

Khởi tạo trọng số w (0 hoặc ngẫu nhiên). Chọn tốc độ học µ.

Bƣớc 2: Học

Với mỗi mẫu (x,t) trong tập học. Tính y=f(x, w).

Nếu y!=t thay đổi vectơ trọng số w với: w(mới (cũ)+ µ(t-y)x;

Bƣớc 3: lặp lại bƣớc 2 cho tất cả các mẫu. Nhận xét:

Phƣơng trình w.v=0 là chính là siêu phẳng trong không gian d-chiều, suy ra Perceptron có khả năng phân lớp tuyến tính, có khả năng giải bài toán quy hồi tuyến tính. (adsbygoogle = window.adsbygoogle || []).push({});

Hạn chế:

-Không thể phân lớp phi tuyến.

- Giải pháp: sử dụng mạng nơron nhiều tầng MLP

2.4.2.2. Thuật toán học của mạng nơron nhiều lớp

Huấn luyện mạng nơron nhiều lớp sử dụng thuật toán lan truyền ngƣợc gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngƣợc:

38

Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để:

 Thay đổi giá trị của trọng số liên kết W của các nơron trong mạng biểu diễn đƣợc dữ liệu học.

 Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính đƣợc và kết quả dự đoán của mạng gọi là lỗi (học có giám sát).

Quá trình truyền ngƣợc: Giá trị lỗi sẽ đƣợc truyền ngƣợc lại sao cho quá trình huyến luyện (học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất.

Thuật toán:

Xét mạng nơron 3 lớp: input, hiden và output. Hàm kích hoạt các nơron: logistic (sigmoid).

Một phần của tài liệu Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự (Trang 25)