2.1. Khái niệm cơ bản
Một mạng nơron nhân tạo (neural network) được xây dựng từ các lớp nơron (layers), chúng được kết nối với nhau bởi các dây thần kinh (synapses). Tuỳ thuộc vào sự kế nối này thì có một số loại kiến trúc mạng được hình thành như: mạng tiến, mạng trở lại ....
Trong phần này chúng ta chỉ quan tâm đến mạng truyền tiến (Feed Forward Nueral Network – FFNN), các loại mạng khác sẽ tương tự được thiết kế. Trong mạng tiến mỗi lớp có chứa một số lượng nơron, trong đó các nơron có cùng đặc tính về hàm truyền (transfer function) tỉ lệ học (learning rate)... Mạng nơron được thành lập từ các lớp nơron này, không bắt buộc chúng phải đồng nhất cùng loại.
Mỗi lớp xử lý các tín hiệu vào của nó, áp dụng hàm truyền và gửi tín hiệu đã xử lý ra thông qua các dây thần kinh đầu ra đến các lớp kế tiếp. Cứ như vậy mạng nơron có thể xử lý một vectơ nhận từ lớp vào, xử lý rồi chuyển tín hiệu ra ở lớp cuối.
2.2. Quy tắc truyền tín hiệu
Để đảm bảo chắc chắn bất kỳ kiến trúc mạng nơron nào được yêu cầu cũng có thể được thiết kế trên JOONE, các phương thức truyền các tín hiệu trên mạng nơron đảm bảo thông suốt, liên tục, và tiến hành xử lý song song, không cần đến sự điều khiển tập trung. Mỗi lớp nơron xây dựng thừa kế từ Interface Runnable của Java, vì vậy mỗi lớp nơron là một luồng xử lý riêng độc lập với các lớp nơron khác. Những tuần tự xử lý của một lớp bao gồm: nhận tín hiệu vào, áp dụng hàm truyền cho tín hiệu nhận được, và chuyển tín hiệu đó ra các dây thần kin ra. Các lớp tiếp nhận được tín hiệu có tín hiệu chuyển đến sẽ bắt đầu xử lý và cứ tiếp tục như vậy, xử lý cho đến lớp cuối cùng. Tiến trình xử lý này được mô tả theo hình sau:
Trong đó mỗi nơron N có những thông số sau:
XN : Tín hiệu vào của nơron = (I1 * WN1) + (I2 * WN2) + .... + (Ip * WNp) YN : Tín hiệu ra từ nơron = f(XN)
F(X) : Hàm truyền tuỳ thuộc vào loại của nơron.
Quy tắc truyền tín hiệu đồng thời được sử dụng trong mạng lan truyền ngược sai số từ lớp ra cho đến lớp vào trong giai đoạn học của mạng, nó cho phép các trọng số và ngưỡng của mỗi nơron được thay đổi theo một thuật toán học được chọn trước.
Tóm lại, mỗi lớp nơron có hay nhiệm vụ, một là xử lý tín hiệu từ đầu vào chuyến sang đầu ra và xử lý các tín hiệu lỗi được truyền ngược từ đầu ra ngược về đầu vào. Để đạt được mục tiêu này mỗi một lớp nơron có hai quy tắc truyền tín hiệu ngược nhau, một trong quá trình truyền tin thuận, một trong quá trình học để điều chỉnh các trọng số và ngướng (weight and bias), chúng được mô tả trong hình sau:
Các thành phần của JOONE (bao gồm cả các lớp nơron và dây thần kinh) phải được xây dựng trước các quy tác truyền tín hiệu này để điều chỉnh các trọng số và ngưỡng của các nơron cho phù hợp trong quá trình học.
Chúng được đảm bảo trên nguyên tắc mỗi lớp nơron chạy trên một một luồng xử lý độc lập của nó, đây là các thành phần hoạt động duy nhất trong bộ máy chính của JOONE. Có thể mô tả các luồng xử lý theo hình vẽ sau:
Như vậy để xây dựng một mạng nơron chỉ đơn thuần là kết nối các lớp với nhau thông qua các dây thần kinh theo yêu cầu và các lớp sẽ chạy theo quy tắc trên. Nhân xét về đặc tính của JOONE mang lại như sau:
• Bộ máy linh hoạt: chúng ta có thể xây dựng mạng bằng cách đơn giản kết nối các
lớp nơron với nhau bằng các dây thần kinh mà không cần quan tâm các tín hiệu được xử lý như thế nào bên trong.
• Bộ máy có tính mở rộng: Do các lớp nơron được xử lý bởi các luồng độc lập nên
muốn bộ máy chạy nhanh chúng ta hãy thêm số CPU cho máy tính, mỗi luồng xử lý sẽ chạy trên mỗi CPU khác nhau, nâng cao hiệu quả tính toán.
• Bộ máy gần với hiện thực: Trên lý thuyết chúng ta có thể nhận xét bộ máy hoàn
toàn không xa với bộ nảo con người trong đó mỗi nơron hoạt động độc lập với các nơron khác.
2.3. Các loại lớp nơron của JOONE
Các lớp nơron là các thành phần của mạng nơron, chúng được thành lập từ các nơron có cùng đặc tính. Thành phần này chuyển các tín hiệu véctơ từ các dây thần kinh vào, áp dụng hàm chuyển và chuyển tín hiệu sang dây thần kinh ra. Lớp nơron được thể qua lớp Layer trong Java và các dây thần kinh được thể hiện qua lớp Synapse. Các lớp nơron là các thành phần tự chủ trong mạng nơron, chúng có các luồng xử lý riêng và độc lập.
Các loại lớp nơron được mạng tên cung loại với loại nơron, chúng khác nhau bởi hàm truyền trong các nơron. Trong JOONE có các loại lớp nơron được xây dựng sẵn, chúng ta hoàn
toàn có thể phát triển thêm các lớp nơron với các hàm truyền mới, sau đây là một số lớp nơron thường dùng:
Tên lớp Hàm truyền Mô tả
Lớp tuyến tính (Linear Layer)
y = β . x Là lớp đơn giản nhất, sử dụng hàm tuyến tính với hệ số β. Nếu β =1 thì tín hiệu đầu ra bằng tín hiệu vào nơron. Thường được sử dụng trong lớp vào.
Lớp Xích-ma
(Sigmoid Layer) y=1+e−x
1 Lớp sử dụng hàm truyền xích-ma, thường được sử dụng trong lớp ẩn, biễu diễn rất tốt các hàm phi tuyến trong mạng nơron nhân tạo. Lớp tang hyperbol (Tanh Layer) x x x x e e e e y −− + −
= Tương tự như lớp xích-ma, hàm truyền tang
hyperbol được áp dụng để hạn chế ngưỡng ra trong khoảng từ -1 đến 1. Lớp Logarit (Logarithmic Layer) < − ≥ + = 0 ) 1 log( 0 ) 1 log( x khi x x khi x
y Lớp này áp dụng hàm truyền là hàm logarit vì
vậy giá trị ra không giống hai hàm trên, nó nằm trong khoảng 0 đến +∞.
Lớp trễ (Delay Layer)
YN = x(t-N) với 0 < N < taps
2.4. Các loại dây thần kinh
Lớp Synapse trong Java biễu diễn các dây thần kinh trong mạng nơron kết nối các lớp nơron với nhau, cho phép truyền các tín hiệu thuận chiều và ngược chiều giữa hai lớp nơron kế tiếp nhau trong mạng.
Trong JOONE các lớp Synapse đồng thời là các bộ nhớ của các của mạng, chúng ghi nhớ lại các trọng số đối với từng dây thần kinh kết nối với mỗi nơron. Các loại lớp synapse khác nhau chính ở mô hình kết nối và từ đó có cấu trúc lưu trữ phù hợp.
Ngoài ra cũng cần chú ý, các dây thần kinh là điểm kết nối giữa các lớp nơron, giữa các luồng xữ lý độc lập vì vậy đây cũng là nơi dùng chung các dữ liệu , để tránh xảy ra xung đột khi các tiến trình xử lý khác nhau cần có những cơ chế đồng bộ hoá việc lấy thông tin ở các lớp này.
Các loại dây thần kinh thường dùng trong JOONE:
Loại Synapse Hình biễu diễn Mô tả
Nối trực tiếp (Direct Synapse)
Kết nối một - một giữa các nơron của hai lớp
Hai lớp nơron phải cùng số nơron.
Nối hoàn toàn (Full Synapse)
Kết hai nốt bất kỳ của hai lớp nơron với nhau. Đây là kiểu kết nối thường được sử dụng nhất.
Không bắt buộc cùng số nơron giữa hai lớp.
Nối Kohonen (Kohonen Synapse)
Một loại kết nối đặc biệt được sử dụng trong việc xây dựng mạng nơron đạo tạo không chỉ đạo.
Nối Sanger (Sanger Synapse)
Được sử dụng trong mạng nơron đào tạo không chỉ đạo.
Nối làm trễ
(Delayed Synapse)
Có các kết nối giống kết nối hoàn toàn nhưng trên mỗi kết nối sử dụng một bộ làm trễ FIR.
2.5. Monitor : điểm điều khiển trung tâm của mạng nơron
Mạng nơron không thể thiếu một bộ phân trung tâm để điều khiển mọi tiến trình học, tiến trình xử lý của các lớp nơron cũng như các dây thần kinh kết nối chúng. Đồng thời điểm điểu khiển trung tâm này cũng là nơi thay đổi các tham số phù hợp cho quá trình đào tạo và xử lý của mạng ví dụ như hệ số học, mômen học, chu kỳ học....
Mỗi thành phần của mạng nơron (lớp nơron và dây thần kinh kết nối) đều có chứa một tham chiếu đến đối tượng điều khiển duy nhất Monitor. Chúng có thể lấy các thông tin về tham số của quá trinh học cũng như trạng thái hoạt động từ đối tượng Monitor này. Hình sau biễu diễn quan hệ này:
Theo sự điều khiển của người dùng, có thể thay đối các giá trị tham số của đối tượng Monitor và các thành phần khác trong mạng sẽ nhận sự thay đổi này để xử lý. Đồng thời monitor cũng là nơi theo dõi và điều khiển mọi hoạt động của mạng nơron.