2.1.4.1. Mạng truyền thẳng
Mạng truyền thẳng (hình 2.3) cho phép tín hiệu truyền chỉ theo một đường từ đầu vào tới đầu ra, không có sự phản hồi hay lặp lại. Mạng này có xu hướng truyền thẳng giữa đầu vào với đầu ra. Chúng được dùng rộng rãi trong nhận dạng đối tượng. Cách tổ chức trong mạng truyền thẳng là tham chiếu tới phương pháp từ dưới lên hoặc là từ trên xuống.
Hình 2.3: mạng truyền thẳng [15]
2.1.4.2. Mạng hồi quy
Mạng hồi quy có kiến trúc tương tự mạng truyền thẳng (hình 2.3) nhưng có điểm khác nhau đó là nó cho phép tín hiệu truyền theo cả hai hướng. Mạng hồi quy truyền tín hiệu rất tốt và có thể trở lên rất phức tạp. Nó có tính động; trạng thái của nó thay đổi liên tục tới khi đạt tới điểm trạng thái cân bằng. Chúng duy trì điểm cân bằng tới khi đầu vào thay đổi và cần tìm một một trạng thái cân bằng mới. Kiến trúc hồi quy có thể tham chiếu tới việc tương tác.
2.1.4.3. Các lớp mạng
Các loại phổ biến nhất của mạng nơron nhân tạo bao gồm ba nhóm hoặc lớp của các đơn vị: một lớp của các đơn vị "đầu vào" được kết nối với một lớp của các đơn vị "ẩn", và lớp đơn vị “ẩn” này được kết nối với một lớp của đơn vị "đầu ra". (xem hình 2.4)
Hoạt động của các đơn vị đầu vào mô tả các thông tin thô được đưa vào mạng.
Hoạt động của từng đơn vị ẩn được xác định bởi các hoạt động của các đơn vị đầu vào và trọng số trên các kết nối giữa đầu vào và các đơn vị ẩn.
Hành vi của các đơn vị đầu ra phụ thuộc vào hoạt động của các đơn vị ẩn và trọng số giữa các đơn vị ẩn và đầu ra.
Hình 2.4: mạng hồi quy đơn giản [15]
Loại mạng hồi quy đơn giản này khá thú vị bởi vì các đơn vị ẩn được tự do xây dựng đại diện đầu vào riêng của chúng. Trọng số giữa đầu vào và các đơn vị ẩn xác định khi mỗi đơn vị ẩn đang hoạt động. Do đó bằng cách thay đổi các trọng số, một đơn vị ẩn có thể chọn cái nó đại diện.
Chúng ta cũng phân biệt kiến trúc lớp đơn và kiến trúc nhiều lớp. Tổ chức lớp đơn, trong đó tất cả các đơn vị được kết nối với nhau, tạo thành trường hợp tổng quát nhất và là sức mạnh tính toán tiềm năng hơn tổ chức nhiều lớp cấu trúc phân cấp. Trong các mạng đa lớp, các đơn vị thường được đánh số theo lớp, thay vì đánh số theo toàn bộ hệ thống mạng.
2.1.4.4. Perceptrons
Nghiên cứu có ảnh hưởng nhất trên mạng nơron trong những năm 60 được tiến hành dưới tiêu đề của “perceptron” một thuật ngữ được đặt ra bởi Frank Rosenblatt. Perceptron (hình 2.5) trở thành một mô hình MCP (nơron với đầu vào
trọng số) với một số bổ sung, sửa chữa, tiền xử lý. Các đơn vị có nhãn A1, A2, Aj, Ap được gọi là đơn vị kết nối và nhiệm vụ của chúng là trích xuất các đặc điểm riêng biệt từ những hình ảnh đầu vào. Perceptron bắt chước các ý tưởng cơ bản đằng sau hệ thống thị giác động vật có vú. Chúng chủ yếu được sử dụng trong mô hình nhận dạng đối tượng mặc dù khả năng của chúng được mở rộng hơn rất nhiều.
Hình 2.5: Perceptron [15]
2.1.5. Ứng d ng của mạng nơron nhân tạo
Khả năng học và xử lý song song là hai đặc trưng của mạng nơron nhân tạo. Nó có thể mô tả gần đúng mối quan hệ tương quan phức tạp giữa các yếu tố đầu vào và đầu ra của các quá trình cần nghiên cứu. Thêm vào đó thì khi đã học được thì việc kiểm tra độc lập thường cho kết quả tốt. Sau khi đã học xong, mạng nơron nhân tạo có thể tính toán kết quả đầu ra tương ứng với bộ số liệu đầu vào mới.
Về mặt cấu trúc, mạng nơron nhân tạo là một hệ thống gồm nhiều phần tử xử lý đơn giản cùng hoạt động song song. Tính năng này của mạng nơron nhân tạo cho phép nó có thể được áp dụng để giải các bài toán lớn.
Về khía cạnh toán học, theo định lý Kolmogorov, một hàm liên tục bất kỳ f(x1, x2,.. , xn) xác định trên khoảng In
(với I =[0,1]) có thể được biểu diễn dưới dạng:
trong đó : χj , Ψij là các hàm liên tục một biến. Ψij là hàm đơn điệu, không phụ thuộc vào hàm f. Mặt khác, mô hình mạng nơron nhân tạo cho phép liên kết có trọng số các phần tử phi tuyến (các nơron đơn lẻ) tạo nên dạng hàm tổng hợp từ các hàm thành phần. Do vậy, sau một quá trình điều chỉnh sự liên kết cho phù hợp (quá trình học), các phần tử phi tuyến đó sẽ tạo nên một hàm phi tuyến phức tạp có khả năng xấp xỉ hàm biểu diễn quá trình cần nghiên cứu. Kết quả là đầu ra của nó sẽ tương tự với kết quả đầu ra của tập dữ liệu dùng để luyện mạng. Khi đó ta nói mạng nơron nhân tạo đã học được mối quan hệ tương quan đầu vào - đầu ra của quá trình và lưu lại mối quan hệ tương quan này thông qua bộ trọng số liên kết giữa các nơron. Do đó, mạng nơron nhân tạo có thể tính toán trên bộ số liệu đầu vào mới để đưa ra kết quả đầu ra tương ứng[13].
Với những đặc điểm đó, mạng nơron nhân tạo đã được sử dụng để giải quyết nhiều bài toán thuộc nhiều lĩnh vực của các ngành khác nhau. Các nhóm ứng dụng mà mạng nơron nhân tạo đã được áp dụng rất có hiệu quả là:
Bài toán phân lớp: Loại bài toán này đòi hỏi giải quyết vấn đề phân loại
các đối tượng quan sát được thành các nhóm dựa trên các đặc điểm của các nhóm đối tượng đó. Đây là dạng bài toán cơ sở của rất nhiều bài toán trong thực tế: nhận dạng chữ viết, tiếng nói, phân loại gen, phân loại chất lượng sản phẩm,…
Bài toán dự báo: Mạng nơron nhân tạo đã được ứng dụng thành công
trong việc xây dựng các mô hình dự báo sử dụng tập dữ liệu trong quá khứ để dự đoán số liệu trong tương lai. Đây là nhóm bài toán khó và rất quan trọng trong nhiều ngành khoa học.
Bài toán điều khiển và tối ưu hoá: Nhờ khả năng học và xấp xỉ hàm mà
mạng nơron nhân tạo đã được sử dụng trong nhiều hệ thống điều khiển tự động cũng như góp phần giải quyết những bài toán tối ưu trong thực tế.
Tóm lại, mạng nơron nhân tạo được xem như là một cách tiếp cận đầy tiềm năng để giải quyết các bài toán có tính phi tuyến, phức tạp và đặc biệt là trong tình huống mối quan hệ bản chất vật lý của quá trình cần nghiên cứu không dễ thiết lập tường minh.
2.2. Thiết kế mạng nơron nhân tạo
2.2.1. Các bước thiết kế
Các bước trong thiết kế một mô hình mạng nơron nhân tạo, gồm 7 bước: Bước 1: Lựa chọn biến
Bước 2: Thu thập dữ liệu Bước 3: Tiền xử lý dữ liệu
Bước 4: Các tập dữ liệu huấn luyện, kiểm thử, và chứng thực. Bước 5: Sơ đồ mạng nơron:
Số lượng lớp ẩn,
Số lượng nơron ẩn,
Hàm chuyển đổi.
Bước 6: Huấn luyện mạng nơron: Số lần lặp lại huấn luyện. Bước 7: Triển khai
2.2.2. Chi tiết các bước thiết kế một mạng nơron.
Dưới đây là phần chi tiết các bước thiết kế một mạng nơron
2.2.2.1. Lựa chọn biến
Để thiết kế tốt được mạng nơron thì chúng ta cần phải hiểu rõ vấn đề chúng ta cần giải quyết. Lựa chọn biến đầu vào cho phù hợp là một quá trình không dễ dàng. Với những giá trị đầu vào không quan trọng sẽ tăng độ phức tạp cho quá trình học của mạng nơron. Ta cần chọn biến đầu vào nào cho tối ưu nhất với yêu cầu đầu ra mà chúng ta cần. Một số vấn đề xảy ra nếu chúng ta chọn đầu vào chưa tốt:
- Tăng số lượng đầu vào sẽ làm tính toán phức tạp và cần nhiều bộ nhớ hơn.
- Quá trình học sẽ khó khăn với các đầu vào không cần thiết. - Khó khăn hơn để hiểu mô hình mạng nơron này.
Phương pháp lựa chọn biến đầu vào được phát triển dựa trên quá trình kiểm thử thống kê giữa các giá trị đầu vào và đầu ra mong muốn. Một số trường hợp có sự phụ thuộc giữa biến đầu vào dẫn đến việc đánh giá quá cao số lượng đầu vào. Một cách để giải quyết vấn đề này là khi tiền xử lý dữ liệu, chúng ta dùng phương pháp phân tích thành phần phụ thuộc.
2.2.2.2. Thu thập dữ liệu
Sau khi đã chọn biến thì các nhà nghiên cứu cần phải thu thập dữ liệu cho các biến đã chọn. Việc thu thập dữ liệu phải tách biệt với tiền xử lý, tập huấn hay đánh giá hiệu năng mạng. Mọi dữ liệu cần được kiểm tra lỗi nếu có sự biến đổi hàng ngày của dữ liệu, biến đổi về phạm vi, và sự thống nhất về logic.
2.2.2.3. Tiền xử lý dữ liệu
Việc xử lý trước dữ liệu chính là phân tích và chuyển đổi biến đầu vào và đầu ra sao cho giảm bớt nhiễu, nhấn mạnh các liên hệ quan trọng, tìm ra xu hướng và phân đồng đều các biến, giúp mạng nơron học các đối tượng liên quan hiệu quả hơn. Vì mạng nơron là các khớp đối tượng, việc miêu tả dữ liệu cực kỳ quan trọng trong việc thiết kế thành công mạng nơron. Dữ liệu được thu thập để đưa vào mạng hiếm khi để nguyên dạng thô ban đầu. Ít nhất thì dữ liệu đó cũng được cân bằng với cận trên và cận dưới của hàm chuyển đổi ( thường là nằm giữa 0 và 1 hoặc -1 và 1).
Có hai phương pháp chuyển đổi dữ liệu phổ biến đó là đạo hàm bậc nhất và logarit tự nhiên của một biến. Một cách khác nữa đó là dùng tỉ lệ của các biến đầu vào. Làm mịn dữ liệu đầu vào và đầu ra bằng cách tính trung bình đơn giản hoặc dùng số mũ.
Lấy đối tượng và lọc dữ liệu giúp cho việc hủy các observation từ tập huấn luyện và kiểm thử để tạo ra một sự phân phối đồng đều hơn. Cách lọc được sử dụng nên thống nhất với mục đích của nhà nghiên cứu. Nhà nghiên cứu phải xác định chính xác mạng nơron của mình cần học gì. Một lợi ích của việc lọc là tăng về số lượng thực tế tập huấn mà cho phép kiểm thử trên nhiều biến đầu vào, nhiều trọng số ban đầu ngẫu nhiên hoặc nhiều nơron ẩn hơn các tập dữ liệu huấn luyện lớn.
Trên thực tế thì quá trình tiền xử lý dữ liệu gồm nhiều thử nghiệm và có lỗi nhiều. Để lựa chọn thích hợp biến đầu vào cần kiểm thử kết hợp đa dạng các biến đầu vào.
2.2.2.4. Các tập dữ liệu huấn luyện, kiểm thử, và chứng thực.
Trên thực tế, tập dữ liệu được chia thành ba tập khác nhau đó là tập huấn luyện, tập kiểm thử và tập hợp lệ.
Tập kiểm thử là tập dữ liệu dùng để kiểm thử. Lấy dữ liệu đó để kiểm tra xem độ chính xác của mạng nơron là bao nhiêu phần trăm. Tập này có kích thước tương đương 10% - 30% kích thước của tập huấn luyện.
Việc kiểm tra cuối cùng trong hiệu năng của mạng huấn luyện là sử dụng tập hợp lệ. Kích thước của tập này dựa vào sự cân bằng giữa việc đủ để đánh giá mạng và có đủ dữ liệu còn lại cho cả huấn luyện và kiểm thử.
2.2.2.5. Sơ đồ mạng nơron
Thực tế thì có nhiều phương pháp để xây dựng mạng nơron. Các công việc cần làm để xây dựng một mạng nơron là xác định hàm chuyển đổi, các đầu vào được kết hợp với nhau như thế nào, và xây dựng kiến trúc mạng nơron bằng việc định nghĩa cấu trúc bên trong bao gồm số lượng nơron nằm trên một lớp, số lượng và các loại kết nối.
Như đã đề cập ở phần một thì chúng ta lần lượt đi xác định các thông số sau:
số lượng lớp ẩn, số lượng nơron ẩn, số lượng nơron đầu ra, hàm chuyển đổi. a. Số lượng lớp ẩn
Lớp ẩn cung cấp cho mạng khả năng phân loại dữ liệu. Về lý thuyết, một mạng nơron có một lớp ẩn với số lượng đầy đủ các nơron ẩn có khả năng tính toán xấp xỉ của hàm liên tục. Trong thực tế, các mạng nơron có một hoặc đôi khi là hai lớp ẩn là đủ. Nếu tăng số lượng lớp ẩn thì thời gian tính toán cũng tăng. Vì thế, khuyến cáo rằng chỉ nên có một hoặc nhiều nhất hai lớp ẩn.
b. Số lượng nơron ẩn
Thực tế thì không có công thức chung để lựa chọn số lượng tối ưu các nơron ẩn. Vì vậy các nhà nghiên cứu dựa trên thực nghiệm nghiệm để lựa chọn. Tuy nhiên, có một số quy tắc để lựa chọn cho hợp lý. Ta có thể dụng phương pháp kim tự tháp hình học để tính gần đúng. Với một mạng ba lớp có n nơron đầu vào và m nơron đầu ra thì lớp ẩn cần có căn bậc hai của (n x m) số lượng nơron. Số lượng thực tế của nơron ẩn có thể vẫn rơi vào một nửa tới gấp hai lần giá trị có được từ quy tắc kim tự tháp, nó phụ thuộc vào độ phức tạp của vấn đề.
Ba phương pháp lựa chọn số lượng nơron ẩn thường được dùng đó là sửa chữa, xây dựng và tiêu hủy.
Phương pháp sửa chữa: một nhóm các mạng nơron với số lượng nơron ẩn khác nhau được huấn luyện. Sự tăng lên về số lượng nơron ẩn có thể là một, hai hoặc nhiều hơn phụ thuộc vào tài nguyên tính toán. Phác họa tiêu chí đánh giá trên kiểm thử với mỗi mạng sẽ cung cấp một đồ thị lỗi hình cái bát. Mạng với ít lỗi nhất tìm thấy ở đáy bát được lựa chọn. Phương pháp này tốn thời gian nhưng rất hiệu quả.
Phương pháp xây dựng và tiêu hủy: thay đổi số lượng nơron ẩn trong quá trình huấn luyện chứ không tạo các mạng nơron biệt lập nhau với số lượng nơron ẩn khác nhau. Phương pháp xây dựng là thêm các nơron ẩn tới khi hiệu năng của mạng giảm. Ngược lại với phương pháp tiêu hủy là loại bớt các nơron ẩn trong quá trình huấn luyện.
Bỏ qua việc sử dụng phương pháp nào để lượng chọn số lượng nơron ẩn, quy tắc là lựa chọn mạng sao cho thực hiện tốt nhất trên tập kiểm thử với ít nơron ẩn nhất. Khi kiểm thử số lượng nơron ẩn thì cần phải giữ nguyên các thông số khác.
c. Số lượng nơron đầu ra
Quyết định số lượng nơron đầu ra đôi khi không đơn giản vì có nhiều lý do bắt buộc luôn sử dụng một nơron đầu ra. Các mạng nơron có nhiều đầu ra sẽ cho kết quả kém hơn so với mạng có một đầu ra đơn. Một mạng nơron huấn luyện bởi quá trình chọn trọng số sao cho lỗi trung bình trên toàn bộ nơron đầu ra là nhỏ nhất.
d. Các hàm chuyển đổi
Các hàm chuyển đổi là các công thức toán dùng để quyết định đầu ra của một nơron xử lý. Phần lớn các mô hình mạng nơron hiện tại sử dụng hàm sigmoid (hình S) nhưng số khác thì dùng hyperbolic và tuyến tính. Mục đích của hàm chuyển đổi là ngăn chặn các đầu ra đạt tới giá trị quá lớn khiến cho mạng nơron tê liệt và không huấn luyện được nữa. Các hàm chuyển đổi tuyến tính không hữu ích cho ánh xạ không tuyến tính và phân loại không tuyến tính.
2.2.2.6. Quá trình huấn luyện mạng nơron
Ta cần xác định số lần lặp lại quá trình huấn luyện. Trong mỗi lần lặp, trọng số thay đổi để mạng hoạt động hiệu quả hơn. Quá trình lặp lại tới khi không có sự cải thiện gì thêm. Các mạng nơron thông thường sẽ lặp từ mười tới mười nghìn lần nhưng số lượng vài trăm là phổ biến nhất.
2.2.2.7. Triển khai
Bước triển khai được thực hiện sau khi có đầy đủ các yếu tố cần thiết như là dữ liệu, số lần huấn luyện, tiêu chuẩn đánh giá cho mạng nơron. Ta có thể sử dụng