MẠNG NƠ-RON NHÂN TẠO

Một phần của tài liệu Mạng nơ-ron nhân tạo trong kiểm soát nội dung hình ảnh (Trang 32)

2.1.1. Giới thiệu về nơ-ron sinh học

Cấu trúc nơ-ron sinh học

Nơ-ron sinh học có nhiều dạng khác nhau như dạng hình tháp, dạng tổ ong, dạng rễ cây. Tuy khác nhau về hình dạng, chúng có cấu trúc và nguyên lý hoạt động chung. Một tế bào nơ-ron gồm bốn phần cơ bản:

Các nhánh và rễ: Là các bộ phận nhận thông tin, các đầu nhạy hoặc các đầu ra của các nơ-ron khác bám vào rễ hoặc nhánh của một nơ-ron. Khi các đầu vào từ ngoài này có sự chênh lệch về nồng độ K+ , Na+ hay Cl- so với nồng độ bên trong của nó thì xẩy ra hiện tượng thấm từ ngoài vào trong thông qua một cơ chế màng thấm đặc biệt. Hiện tượng thẩm thấu như vậy tạo nên một cơ chế truyền đạt thông tin với hàng ngàn hàng vạn lối vào trên một nơ-ron sinh vật,ứng với hàng nghìn hàng vạn liên kết khác nhau. Mức độ thẩm thấu được đặc trưng bởi cơ chế màng tượng trưng bằng một tỷ lệ. Tỷ lệ đó được gọi là tỷ trọng hay đơn giản gọi là trọng số (weight).

Hình 2.1: Hình minh họa nơ-ron sinh học

Thân thần kinh (soma): Chứa các nhân và cơ quan tổng hợp protein. Các ion vào được tổng hợp và biến đổi, khi nồng độ các ion đạt đến một giá trị nhất định, xảy ra quá trình phát xung (hay kích thích). Xung đó được phát ở các đầu ra của nơ-ron. Dây dẫn đầu ra xung được gọi là dây thần kinh.

Dây thần kinh (axon): Là phương tiện truyền dẫn tín hiệu của giữa các nơ- ron. Dây thần kinh được cấu tạo gồm các đốt và có thể dài từ micro mét đến vài mét tuỳ từng kết cấu cụ thể.

Khớp thần kinh: Là bộ phận tiếp xúc của đầu ra nơ-ron với rễ, nhánh của các nơ-ron khác.Chúng có cấu trúc màng đặc biệt để tiếp nhận các tín hiệu khi có sự chênh lệch về nồng độ ion giữa bên trong và bên ngoài. Nếu độ lệch về nồng độ càng lớn thì việc truyền các ion càng nhiều và ngược lại. Mức độ thẩm thấu của các ion có thể coi là một đại lượng thay đổi tuỳ thuộc vào nồng độ như một giá trị đo thay đổi được gọi là trọng.

Não người có khoảng 15 tỷ nơ-ron, mỗi nơ-ron được nối với nhiều nơ-ron khác bằng những khớp thần kinh (synapses), một nơ-ron có thể có đến hơn nghìn khớp thần kinh, và số khớp thần kinh tổng cộng lại được ước lượng khoảng một triệu tỷ. Tín hiệu được truyền qua thân nơ-ron tới các synapses, và tuỳ theo trạng thái của chúng mà một hay nhiều nơ-ron khác sẽ được kích thích để tiếp tục truyền tín hiệu. Đó là mức thấp nhất, nhưng từ đó tổ chức lên các tầng trên như thế nào, có thể có được một bản đồ chi tiết của một bộ não tới từng nơ-ron không?

Bộ não có những chức năng cơ bản sau:

 Bộ nhớ được tổ chức theo các bó thông tin và truy nhập theo nội dung (có thể truy xuất thông tin dựa theo giá trị các thuộc tính của đối tượng).

 Bộ não có khả năng tổng quát hoá, có thể truy xuất các tri thức hay các mối liên kết chung của các đối tượng tương ứng với một khái niệm chung nào đó.  Bộ não có khả năng dung thứ lỗi tức là có thể điều chỉnh hoặc tiếp tục thực

hiện ngay khi có những sai lệch do thông tin bị thiếu hoặc không chính xác. Ngoài ra, bộ não còn có thể phát hiện và phục hồi các thông tin bị mất dựa trên sự tương tự giữa các đối tượng.

 Bộ não có khả năng xuống cấp và thay thế dần dần. Khi có những trục trặc tại các vùng não (do bệnh, chấn thương) hoặc bắt gặp những thông tin hoàn toàn mới lạ, bộ não vẫn có thể tiếp tục làm việc.

 Bộ não có khả năng học.

Bảng sau đây đưa ra những con số cụ thể để có thể so sánh những ưu việt của bộ não con người so với một máy tính cá nhân mức trung bình hiện nay.

Bảng 2.1: So sánh khả năng làm việc của bộ não và máy tính

Những nghiên cứu trên đây là cơ sở mở đường cho con người nghiên cứu phương pháp mô phỏng lại mạng nơ-ron sinh học, đó chính là mạng nơ-ron nhân tạo.

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

Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) bao gồm các nút (đơn vị xử lý, nơ-ron) được nối với nhau bởi các liên kết nơ-ron. Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho đặc tính kích hoạt/ức chế giữa các nơ-ron. Có thể xem các trọng số là phương tiện để lưu giữa thông tin dài hạn trong mạng nơ-ron và nhiệm vụ của quá trình huấn luyện (học) mạng là cập nhật các trọng số khi có thêm các thông tin về các mẫu học, hay nói một cách khác, các trọng số được điều chỉnh sao cho dáng điệu vào ra của nó mô phỏng hoàn toàn phù hợp môi trường đang xem xét.

2.1.2.1. Phân loại mạng nơ-ron nhân tạo

Có nhiều cách để phân loại mạng nơ-ron nhân tạo, tùy theo tiêu chí đề ra:  Dựa vào số lượng lớp có trong mạng phân thành:

 Mạng một lớp (single layer): là tập hợp các phần tử nơ-ron có đầu vào và đầu ra trên mỗi một phần tử. Nếu mạng nối đầu ra của các phần tử này với đầu vào của phần tử kia gọi là mạng tự liên kết (auto-associative).

 Mạng hai lớp: gồm một lớp đầu vào và một lớp đầu ra riêng biệt.

 Mạng đa lớp (multilayer network): gồm một lớp đầu vào và một lớp đầu ra riêng biệt. Các lớp nằm giữa lớp đầu vào và lớp đầu ra gọi là lớp ẩn (hidden layer).

 Mạng truyền thẳng (feed-forward): là mạng hai hay nhiều lớp mà quá trình truyền tín hiệu từ đầu ra lớp này đến đầu vào lớp kia theo một hướng.

 Mạng truyền ngược (back-propagation): là mạng mà trong đó một hoặc nhiều đầu ra của các phần tử lớp sau truyền ngược tới đầu vào của lớp trước.

 Mạng tự tổ chức (self-organize): là mạng có khả năng sử dụng những kinh nghiệm của quá khứ để thích ứng với những biến đổi của môi trường (không dự báo trước). Loại mạng này thuộc nhóm hệ học, thích nghi không cần có tín hiệu chỉ đạo từ bên ngoài.

Hình 2.2: Phân loại mạng dựa trên đường truyền tín hiệu trong mạng

Trong mỗi lớp mạng lại có nhiều mạng với các tên gọi và đặc trưng khác nhau, hình vẽ trên đây (hình 2.2) thể hiện một kiểu phân loại điển hình các mạng nơ-ron.

Trong mạng, một số nơ-ron được nối với môi trường bên ngoài như các đầu ra, đầu vào.

2.1.2.2. Mô hình mạng nơ-ron nhân tạo

Hình 2.3: Mô hình nơ-ron nhân tạo

Mỗi nơ-ron được nối với các nơ-ron khác và nhận được các tín hiệu sj từ chúng với các trọng số wj. Tổng các thông tin vào có trọng số là:

Net = wjsj

Người ta gọi đây là thành phần tuyến tính của nơ-ron. Hàm kích hoạt g (còn gọi là hàm chuyển) đóng vai trò biến đổi từ Net sang tín hiệu đầu ra out.

out = g(Net)

Đây là thành phần phi tuyến của nơ-ron. Có ba dạng hàm kích hoạt thường được dùng trong thực tế:  Hàm dạng bước: step(x) = hoặc step(x) =  Hàm dấu: sign(x) = hoặc sign(x) =  Hàm sigmoid:

Ở đây ngưỡng đóng vai trò làm tăng tính thích nghi và khả năng tính toán của mạng nơ-ron. Sử dụng ký pháp véctơ, S=(s1,..., sn) véctơ tín hiệu vào, W=(w1,..., wn) véctơ trọng số, ta có:

out = g(Net), Net = SW

Trường hợp xét ngưỡng , ta dùng biểu diễn véctơ mới S'=(s1,...,sn, ),

W'=(w1,..., wn,-1). Hàm kích hoạt Net =  g out Hàm vào Đầu ra

Các liên kết vào Các liên

kết ra s j w j ) ( 1 1 ) (     x e x Sigmoid sj wj

2.1.3. Huyến luyện mạng nơ-ron 2.1.3.1. Các phương pháp học 2.1.3.1. Các phương pháp học

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 huấ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 (training set). Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training pattern). 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ó thầy (học có giám sát - supervised learning), học không có thầy (học không giám sát - unsupervised learning) và học củng cố (học tăng cường - reinforcement learning):

a. Học có thầy

Là quá trình học có sự tham gia giám sát của một “thầy giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a” và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó đây là chữ gì?

Có thể cụ thể hóa như sau:

Mạng được cung cấp một tập các mẫu (x(1),d(1)), (x(2),d(2)),… (x(n),d(n)) là các cặp đầu vào–đầu ra mong muốn. Khi một đầu vào mạng x(k) được đưa vào, đầu ra mong muốn d(k) cũng được đưa vào mạng. Sai khác giữa giá trị đầu ra thực sự y(k) và đầu ra mong muốn d(k) sẽ là cơ sở tạo tín hiệu lỗi để mạng sửa lỗi trọng sao cho đầu ra thực sự gần với đầu ra mong muốn hơn.

Như vậy với phương pháp học có thầy, 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ó.

b. Học không có thầy

Với kiểu học này, không có bất kì một thông tin phản hồi từ môi trường nào. Mạng phải tự tìm ra các mẫu, đặc tính,tính quy tắc, sự tương quan trong dữ liệu đầu vào và tập hợp lại để tạo đầu ra. Khi tự tìm ra các đặc điểm này, mạng đã trải qua các thay đổi về tham số của nó. Quá trình này được gọi là tự tổ chức.

Các luật học có thể được khái quát thành dạng chung với lượng điều chỉnh trọng như sau:

Trong đó:

i là nơ-ron thứ i

j là nơ-ron thứ j

 α - là hằng số học (dương) xác định tốc độ học

r là tín hiệu học. Tín hiệu học tổng quát là một hàm của w, x d tức là

r=f(w,x,d).

Đối với các trọng biến đổi liên tục ta có thể sử dụng dạng sau:

Như vậy với học không có thầy, 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.

c. Học củng cố

Đôi khi trong một số trường hợp, ta không biết hết được các giá trị đầu ra chính xác để có thể học giám sát mà chỉ biết được một số thông tin đánh giá. Khi đó luật học dựa trên những thông tin đánh giá này gọi là luật học củng cố và thông tin phản hồi được gọi là thông tin củng cố. Luật học này chỉ khác luật học giám sát ở chỗ, thông tin phản hồi từ môi trường chỉ mang tính chất đánh giá chứ không mang tính chất dạy, có nghĩa là chỉ đánh giá đầu ra thực sự là tốt hay xấu mà không đưa ra được đầu ra mong muốn là gì. Tín hiệu củng cố được mạng sử dụng với hi vọng là đầu ra thực sự có đánh giá phản hồi tốt hơn trong lần học tiếp theo.

2.1.3.2. Học có thầy 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 các bước sau:

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à một 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

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 ( Mean- Square Error - MSE): 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 (apparent error), đá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 (test error), đá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 (Back- Propagation), chi tiết được trình bày trong phần [2.2.1].

2.1.4. Các vấn đề trong xây dựng mạng nơ-ron đa lớp 2.1.4.1. Chuẩn bị dữ liệu 2.1.4.1. Chuẩn bị dữ liệu

a. Kích thước mẫu

Không có nguyên tắc nào hướng dẫn kích thước mẫu phải là bao nhiêu đối với một bài toán cho trước. Hai yếu tố quan trọng ảnh hưởng đến kích thước mẫu:

Dạng hàm đích: khi hàm đích càng phức tạp thì kích thước mẫu cần tăng.  Nhiễu: khi dữ liệu bị nhiễu (thông tin sai hoặc thiếu thông tin) kích thước mẫu

cần tăng.

Đối với mạng truyền thẳng, cho hàm đích có độ phức tạp nhất định, kèm một lượng nhiễu nhất định thì độ chính xác của mô hình luôn có một giới hạn nhất định. Có thể cần tập mẫu vô hạn để đạt đến giới hạn chính xác. Nói cách khác độ chính xác của mô hình là hàm theo kích thước tập mẫu. Khi kích thước mẫu tăng, độ chính xác sẽ được cải thiện - lúc đầu nhanh, nhưng chậm dần khi tiến đến giới hạn.

Hình 2.4: Mối liên hệ giữa sai số và kích thước mẫu.

Trong thực hành thường gặp phải hai vấn đề sau :

 Đối với hầu hết bài toán thực tế, mẫu bị ràng buộc chặt chẽ với dữ liệu có sẵn. Ta thường không có được số lượng mẫu mong muốn.

 Kích thước mẫu cũng có thể bị giới hạn bởi bộ nhớ hoặc khả năng lưu trữ của máy tính. Nếu tất cả các dữ liệu đồng thời được giữ trong bộ nhớ suốt thời gian luyện, kích thước bộ nhớ máy tính sẽ bị chiếm dụng nghiêm trọng. Nếu lưu trữ trên đĩa sẽ cho phép dùng mẫu lớn hơn nhưng thao tác đọc đĩa từ thế hệ này sang thế hệ khác khiến cho tiến trình chậm đi rất nhiều.

Chú ý: việc tăng kích thước mẫu không làm tăng thời gian luyện. Những tập mẫu

lớn hơn sẽ yêu cầu ít thế hệ luyện hơn. Nếu ta tăng gấp đôi kích thước của mẫu, mỗi

Một phần của tài liệu Mạng nơ-ron nhân tạo trong kiểm soát nội dung hình ảnh (Trang 32)