Link tải luận văn miễn phí cho ae Kết Nối
MỤC LỤC
MỤC LỤC 1
CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON NHÂN TẠO 2
1. Giới thiệu chung 2
2. Ý tưởng sinh học 2
3. Mô hình nơron nhân tạo cơ bản 4
4. Sử dụng mạng nơron nhân tạo 6
5. Thu thập dữ liệu cho mạng nơron nhân tạo 7
6. Perceptron nhiều lớp 8
6.1. Huấn luyện Perceptron nhiều lớp 9
6.2. Thuật toán backpropagation. 9
6.3. Học quá mức và tổng quát hóa 10
6.4. Chọn lựa dữ liệu 12
CHƯƠNG 2: MÔ HÌNH MẠNG NƠRON NHÂN TẠO 13
1. Mô hình nơron và cấu trúc mạng 13
1.1. Mô hình nơron 13
1.2. Cấu trúc mạng 15
2. Cấu trúc dữ liệu 16
3. Kiểu huấn luyện 17
4. Kết luận 17
CHƯƠNG 3: BACKPROPAGATION 18
1. Tổng quát 18
1.1. Cấu trúc 18
1.2. Huấn luyện mạng 21
2. Huấn luyện nhanh 23
2.1. Giải thuật tốc độ học thay đổi (TRAINDA,TRAINDX) 24
2.2. Giải thuật phục hồi mạng backpropagation (TRAINRP) 24
2.3. Giải thuật conjugate_ gradient 25
2.4. Các thuật toán quasi – newton 27
2.5. Giải thuật Levenberg_Marquardt giảm bộ nhớ (TRAINLM) 28
3. So sánh bộ nhớ và tốc độ 28
4. Cải thiện tính tổng quát hoá 29
4.1. Regularization 30
4.2. Early Stopping 31
5. Kết luận 32
CHƯƠNG 4: GIỚI THIỆU VỀ JOONE 34
1. Giới thiệu chung 34
2. Cấu trúc bên trong của JOONE 35
2.1. Khái niệm cơ bản 35
2.2. Quy tắc truyền tín hiệu 35
2.3. Các loại lớp nơron của JOONE 37
2.4. Các loại dây thần kinh 38
2.5. Monitor : điểm điều khiển trung tâm của mạng nơron 40
3. Tiến trình xử lý trong mạng nơron 40
4. Biểu đồ lớp của JOONE 42
PHỤ LỤC TÀI LIỆU THAM KHẢO 44
CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON NHÂN TẠO
1. Giới thiệu chung
Mạng nơron nhân tạo (Artificial Nơron Networks) trong một vài năm trở lại đây đã được nhiều người quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất và vật lý. Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng nơron nhân tạo đều có thể ứng dụng được. Sự thành công nhanh chóng của mạng mạng nơron nhân tạo có thể là do một số nhân tố chính sau:
• Năng lực: mạng nơron nhân tạo là những kỹ thuật mô phỏng rất tinh vi, có khả năng mô phỏng các hàm cực kỳ phức tạp. Đặc biệt, mạng nơron nhân tạo hoạt động phi tuyến. Trong nhiều năm, mô hình tuyến tính là kỹ thuật được sử dụng rộng rãi trong hầu hết các lĩnh vực, vì thế mô hình tuyến tính có tính chiến lược tối ưu hóa được biết nhiều nhất.
• Dễ sử dụng: mạng nơron nhân tạo có tính học theo các ví dụ. Người sử dụng mạng nơron nhân tạo thu thập các dữ liệu đặc trưng, và sau đó gọi các thuật toán huấn luyện để có thể tự học cấu trúc của dữ liệu. Mặc dù người sử dụng làm tất cả những điều cần thiết để có thể chọn và chuẩn bị dữ liệu, sử dụng loại mạng phù hợp và có thể hiểu được các kết quả, nhưng mức độ người sử dụng biết cách áp dụng thành công mạng nơron nhân tạo vẫn thấp hơn nhiều những người sử dụng các phương pháp thống kê truyền thống…
Mạng nơron nhân tạo 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ự.
2. Ý tưởng sinh học
Mạng nơron nhân tạo phát triển từ nghiên cứu về trí tuệ nhân tạo; đặc biệt cố gắng bắt chước bộ não có cấu trúc cấp thấp về khả năng học và chấp nhận sai của hệ thống nơron sinh học.
Suốt những năm 1960 – 1980 các nhà nghiên cứu về trí tuệ nhân tạo đã tìm ra Expert Systems dựa trên mô hình cấp cao về xử lý lý luận của bộ não. Mặc dù mô hình đã rất thành công trong một vài lĩnh vực, nhưng vẫn chưa bắt chước được trí tuệ con người. Điều này là do cấu trúc mô hình chưa bằng bộ não. Do đó, để tái tạo trí thông minh, chúng ta cần xây dựng những hệ thống có cấu trúc giống bộ não con người.
Bộ não con người gồm một số rất lớn nơron (khoảng 10.000.000.000 nơron) kết nối với nhau (trung bình mỗi nơron kết nối với hàng chục ngàn nơron khác). Mỗi nơron là một tế bào đặc biệt, có thể truyền các tín hiệu điện. Nơron có cấu trúc rễ ngõ vào, thân tế bào và cấu trúc rễ ngõ ra (sợi thần kinh). Các sợi thần kinh của một tế bào kết nối với các tế bào khác thông qua synapse. Khi một nơron kích hoạt, nó tạo ra xung điện hóa học dọc theo sợi thần kinh. Tín hiệu này đi qua các synapse đến các nơron khác, và tiếp tục bị kích hoạt. Nơron hoạt động chỉ khi tất cả các tín hiệu nhận được ở thân tế bào thông qua rễ ngõ vào vượt quá một mức nào đó (ngưỡng hoạt động).
Cường độ tín hiệu thu được của nơron phụ thuộc vào độ nhạy của synapse. Chỉ có việc học làm thay đổi cường độ kết nối synapse. Ví dụ như theo thí nghiệm có điều kiện Pavlovian cổ điển, gõ chuông trước khi cho chó ăn tối, con chó nhanh chóng học được rằng rung chuông gắn liền với ăn. Kết nối synapse giữa phần vỏ não thính giác và tuyến nước bọt đã nhạy hơn, vì thế khi rung chuông vỏ não thính giác bị kích thích, con chó bắt đầu tiết nước bọt.
Do đó, từ một số rất lớn các đơn vị xử lý rất đơn giản này (mỗi đơn vị thực hiện tổng trọng số các ngõ vào sau đó kích hoạt một tín hiệu nhị phân nếu tổng ngõ vào vượt quá ngưỡng), bộ não điều khiển để hoạt động những công việc cực kì phức tạp. Dĩ nhiên, sự phức tạp trong hoạt động của bộ não không thể trình bày hết, nhưng dù sao mạng trí tuệ nhân tạo có thể đạt được một vài kết quả đáng chú ý với mô hình không phức tạp hơn bộ não.
3. Mô hình nơron nhân tạo cơ bản
Nơron nhân tạo được định nghĩa như sau:
• Nơron nhân tạo nhận một số các ngõ vào (từ dữ liệu gốc, hay từ ngõ ra các nơron khác trong mạng). Mỗi kết nối đến ngõ vào có một cường độ (hay trọng số), những trọng số này tương ứng với tác dụng synapse trong nơron sinh học. Mỗi nơron cũng có một giá trị ngưỡng.
• Tín hiệu được truyền qua hàm kích hoạt (hay còn gọi là hàm truyền) tạo giá trị ngõ ra nơron.
Nếu sử dụng hàm truyền nấc (nghĩa là ngõ ra nơron là 0 nếu ngõ vào nhỏ hơn 0, và là 1 nếu ngõ vào lớn hơn hay bằng 0) thì nơron hoạt động giống như nơron sinh học. Thực tế, hàm nấc ít khi sử dụng trong mạng trí tuệ nhân tạo. Lưu ý rằng trọng số có thể âm, nghĩa là synapse có tác dụng kiềm chế hơn là kích hoạt nơron, các nơron kiềm chế có thể tìm thấy trong bộ não.
Trên đây mô tả các nơron đơn lẻ. Trong thực tế các nơron được kết nối với nhau. Khi mạng hoạt động, chúng phải có ngõ vào (mang giá trị hay biến của thế giới thực) và ngõ ra (dùng để dự báo hay điều khiển). Ngõ vào và ngõ ra tương ứng với các nơron giác quan và vận động, như tín hiệu đưa vào mắt và điều khiển cánh tay. Tuy nhiên chúng còn có các nơron ẩn đóng vai trò ẩn trong mạng. Ngõ vào, nơron ẩn và ngõ ra cần được kết nối với nhau.
Vấn đề chính ở đây là hồi tiếp. Một mạng đơn giản có cấu trúc tiến: tín hiệu đi vào ở ngõ vào, qua các nơron ẩn và cuối cùng đến các nơron ngõ ra. Cấu trúc như thế chạy ổn định. Tuy nhiên, nếu mạng có hồi tiếp (chứa các kết nối ngược trở về các nơron trước đó) mạng có thể chạy không ổn định và dao động rất phức tạp. Mạng hồi tiếp rất được các nhà nghiên cứu quan tâm, nhưng cấu trúc tiến đã chứng minh rất hiệu quả trong việc giải quyết các vấn đề thực tế.
Mạng nơron nhân tạo tiến cho như hình dưới. Các nơron được sắp xếp theo cấu trúc liên kết lớp riêng biệt. Lớp ngõ vào không phải là nơron thực: các nơron này hoạt động đơn giản là giới thiệu các giá trị của các biến vào. Các nơron lớp ẩn và lớp ngõ ra được kết nối với tất cả các nơron lớp trước đó. Cũng như vậy chúng ta có thể định nghĩa mạng có các kết nối một phần với một vài nơron trong lớp trước đó; tuy nhiên, trong hầu hết các ứng dụng mạng có kết nối đầy đủ vẫn tốt hơn.
Cấu trúc mạng nơron nhân tạo
Khi mạng hoạt động, các giá trị biến ngõ vào được đặt vào các nơron ngõ vào, và sau đó các nơron lớp ẩn và lớp ngõ ra lần lượt được kích hoạt. Mỗi nơron tính giá trị kích hoạt của chúng bằng cách lấy tổng các trọng số ngõ ra của các nơron lớp trước đó, và trừ cho ngưỡng. Giá trị kích hoạt truyền qua hàm kích hoạt tạo ra giá trị ngõ ra của nơron. Khi toàn bộ mạng đã hoạt động, các ngõ ra của lớp ngõ ra hoạt động như ngõ ra của toàn mạng.
4. Sử dụng mạng nơron nhân tạo
Một loạt vấn đề dẫn tới việc giải quyết bằng mạng nơron được định nghĩa bằng cách nó làm việc hay nó được huấn luyện. Mạng nơron nhân tạo làm việc từ những ngõ vào khác nhau, đưa ra những ngõ ra khác nhau. Do đó có thể sử dụng khi biết một vài thông tin và sẽ đoán những thông tin chưa biết.
Ví dụ:
• đoán thị trường chứng khoán: nếu biết giá cả chứng khoán của tuần trước và chỉ số FTSE, ta sẽ đoán được giá cả chứng khoán ngày mai.
• Điều khiển: ta muốn biết có hay không một robot biết quẹo phải, trái hay chuyển động về một phía để đạt được mục tiêu, ta sẽ biết được những gì robot đang quan sát.
Điều kiện quan trọng trong việc sử dụng mạng nơron nhân tạo là phải biết mối liên hệ giữa ngõ vào và ngõ ra biết trước. Mối quan hệ này có thể kéo theo nhiều thứ nhưng nó nhất định phải tồn tại.
Tổng quát, nếu ta sử dụng một mạng mạng nơron nhân tạo ta sẽ không biết chính xác trạng thái tự nhiên của mối liên hệ giữa ngõ vào và ngõ ra, nếu ta biết mối liên hệ ta sẽ làm mô hình đó trực tiếp. Một chức năng khác của mạng nơron nhân tạo là nó có thể học mối liên hệ giữa ngõ vào và ngõ ra thông qua việc huấn luyện. Có hai loại huấn luyện sử dụng trong mạng nơron nhân tạo là huấn luyện có giám sát và không giám sát. Với những loại mạng khác nhau thì sử dụng các loại huấn luyện khác nhau. Huấn luyện có giám sát sử dụng thông dụng nhất.
Trong việc học có giám sát, người sử dụng mạng phải có một tập hợp dữ liệu cần huấn luyện. Tập hợp này chứa những ngõ vào mẫu với ngõ ra tương ứng và mạng sẽ huấn luyện để đưa ra mối liên hệ giữa ngõ ra và ngõ vào. Tập hợp dữ liệu thường được lấy từ những bản ghi chép trước đó.
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)
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)
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) 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.
3. Tiến trình xử lý trong mạng nơron
Chúng ta sẽ xem xét việc quản lý các sự kiện bên trong mạng khi đạt đến lần đào tạo cuối cùng trong mạng nơron:
Giả sử rằng chúng ta đang có một mạng nơron được thành từ các thành phần được mô tả trên hình vẽ, gồm ba lớp: một lớp vào, một lớp ẩn và một lớp ra; InputSynapse để đọc các dữ liệu học, TeacherSynapse dùng để tính lổi phát sinh sau một chu trình lan truyền qua mạng. Một đối tượng Monitor để điều khiển toàn bộ tiến trình học của mạng. Như đã nêu trên tất cả các đối tượng đều có tham chiếu đến đối tượng Monitor để lấy thông tin và trạng thái của mạng.
Theo tuần tự của nhãn trên hình vẽ chúng ta thấy tiến trình học của mạng được xử lý như sau:
1. Lớp nơron vào gọi cách fwdGet() của đối tượng InputSynapse
2. Đối tượng InputSynapse sẽ gọi cách nextStep() của đối tượng Monitor để hỏi sự cho phép tiếp tục một chu kỳ mới hay không.
3. Đối tượng Monitor sẽ phát sinh một sự kiện netStopped() (để các đối tượng ngoài biết trạng thái)
4. Đối tượng Monitor trả về giá trị false trong hàm nextStep() cho biết kết thúc chu kỳ.
5. InputSynapse sẽ tạo ra một véctơ đánh dấu kết thúc và chuyển vào lớp nơron vào. Véctơ đánh dấu kết thức chứa giá trị đếm thứ tự chu kỳ bằng -1.
6. Các lớp nơron khi nhận được véctơ đánh dấu kết thúc này sẽ chuyễn véctơ này sang lớp nơron kế tiếp và đặt luồng xử lý của minh ở trạng thái dừng.
4. Biểu đồ lớp của JOONE
Nhân của JOONE được thành lập từ một số lượng nhỏ các Interface trong Java, sau đây là một số lớp tiêu biểu để cấu thành nên các thành phần cơ bản trong mạng nơron:
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
MỤC LỤC
MỤC LỤC 1
CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON NHÂN TẠO 2
1. Giới thiệu chung 2
2. Ý tưởng sinh học 2
3. Mô hình nơron nhân tạo cơ bản 4
4. Sử dụng mạng nơron nhân tạo 6
5. Thu thập dữ liệu cho mạng nơron nhân tạo 7
6. Perceptron nhiều lớp 8
6.1. Huấn luyện Perceptron nhiều lớp 9
6.2. Thuật toán backpropagation. 9
6.3. Học quá mức và tổng quát hóa 10
6.4. Chọn lựa dữ liệu 12
CHƯƠNG 2: MÔ HÌNH MẠNG NƠRON NHÂN TẠO 13
1. Mô hình nơron và cấu trúc mạng 13
1.1. Mô hình nơron 13
1.2. Cấu trúc mạng 15
2. Cấu trúc dữ liệu 16
3. Kiểu huấn luyện 17
4. Kết luận 17
CHƯƠNG 3: BACKPROPAGATION 18
1. Tổng quát 18
1.1. Cấu trúc 18
1.2. Huấn luyện mạng 21
2. Huấn luyện nhanh 23
2.1. Giải thuật tốc độ học thay đổi (TRAINDA,TRAINDX) 24
2.2. Giải thuật phục hồi mạng backpropagation (TRAINRP) 24
2.3. Giải thuật conjugate_ gradient 25
2.4. Các thuật toán quasi – newton 27
2.5. Giải thuật Levenberg_Marquardt giảm bộ nhớ (TRAINLM) 28
3. So sánh bộ nhớ và tốc độ 28
4. Cải thiện tính tổng quát hoá 29
4.1. Regularization 30
4.2. Early Stopping 31
5. Kết luận 32
CHƯƠNG 4: GIỚI THIỆU VỀ JOONE 34
1. Giới thiệu chung 34
2. Cấu trúc bên trong của JOONE 35
2.1. Khái niệm cơ bản 35
2.2. Quy tắc truyền tín hiệu 35
2.3. Các loại lớp nơron của JOONE 37
2.4. Các loại dây thần kinh 38
2.5. Monitor : điểm điều khiển trung tâm của mạng nơron 40
3. Tiến trình xử lý trong mạng nơron 40
4. Biểu đồ lớp của JOONE 42
PHỤ LỤC TÀI LIỆU THAM KHẢO 44
CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON NHÂN TẠO
1. Giới thiệu chung
Mạng nơron nhân tạo (Artificial Nơron Networks) trong một vài năm trở lại đây đã được nhiều người quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất và vật lý. Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng nơron nhân tạo đều có thể ứng dụng được. Sự thành công nhanh chóng của mạng mạng nơron nhân tạo có thể là do một số nhân tố chính sau:
• Năng lực: mạng nơron nhân tạo là những kỹ thuật mô phỏng rất tinh vi, có khả năng mô phỏng các hàm cực kỳ phức tạp. Đặc biệt, mạng nơron nhân tạo hoạt động phi tuyến. Trong nhiều năm, mô hình tuyến tính là kỹ thuật được sử dụng rộng rãi trong hầu hết các lĩnh vực, vì thế mô hình tuyến tính có tính chiến lược tối ưu hóa được biết nhiều nhất.
• Dễ sử dụng: mạng nơron nhân tạo có tính học theo các ví dụ. Người sử dụng mạng nơron nhân tạo thu thập các dữ liệu đặc trưng, và sau đó gọi các thuật toán huấn luyện để có thể tự học cấu trúc của dữ liệu. Mặc dù người sử dụng làm tất cả những điều cần thiết để có thể chọn và chuẩn bị dữ liệu, sử dụng loại mạng phù hợp và có thể hiểu được các kết quả, nhưng mức độ người sử dụng biết cách áp dụng thành công mạng nơron nhân tạo vẫn thấp hơn nhiều những người sử dụng các phương pháp thống kê truyền thống…
Mạng nơron nhân tạo 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ự.
2. Ý tưởng sinh học
Mạng nơron nhân tạo phát triển từ nghiên cứu về trí tuệ nhân tạo; đặc biệt cố gắng bắt chước bộ não có cấu trúc cấp thấp về khả năng học và chấp nhận sai của hệ thống nơron sinh học.
Suốt những năm 1960 – 1980 các nhà nghiên cứu về trí tuệ nhân tạo đã tìm ra Expert Systems dựa trên mô hình cấp cao về xử lý lý luận của bộ não. Mặc dù mô hình đã rất thành công trong một vài lĩnh vực, nhưng vẫn chưa bắt chước được trí tuệ con người. Điều này là do cấu trúc mô hình chưa bằng bộ não. Do đó, để tái tạo trí thông minh, chúng ta cần xây dựng những hệ thống có cấu trúc giống bộ não con người.
Bộ não con người gồm một số rất lớn nơron (khoảng 10.000.000.000 nơron) kết nối với nhau (trung bình mỗi nơron kết nối với hàng chục ngàn nơron khác). Mỗi nơron là một tế bào đặc biệt, có thể truyền các tín hiệu điện. Nơron có cấu trúc rễ ngõ vào, thân tế bào và cấu trúc rễ ngõ ra (sợi thần kinh). Các sợi thần kinh của một tế bào kết nối với các tế bào khác thông qua synapse. Khi một nơron kích hoạt, nó tạo ra xung điện hóa học dọc theo sợi thần kinh. Tín hiệu này đi qua các synapse đến các nơron khác, và tiếp tục bị kích hoạt. Nơron hoạt động chỉ khi tất cả các tín hiệu nhận được ở thân tế bào thông qua rễ ngõ vào vượt quá một mức nào đó (ngưỡng hoạt động).
Cường độ tín hiệu thu được của nơron phụ thuộc vào độ nhạy của synapse. Chỉ có việc học làm thay đổi cường độ kết nối synapse. Ví dụ như theo thí nghiệm có điều kiện Pavlovian cổ điển, gõ chuông trước khi cho chó ăn tối, con chó nhanh chóng học được rằng rung chuông gắn liền với ăn. Kết nối synapse giữa phần vỏ não thính giác và tuyến nước bọt đã nhạy hơn, vì thế khi rung chuông vỏ não thính giác bị kích thích, con chó bắt đầu tiết nước bọt.
Do đó, từ một số rất lớn các đơn vị xử lý rất đơn giản này (mỗi đơn vị thực hiện tổng trọng số các ngõ vào sau đó kích hoạt một tín hiệu nhị phân nếu tổng ngõ vào vượt quá ngưỡng), bộ não điều khiển để hoạt động những công việc cực kì phức tạp. Dĩ nhiên, sự phức tạp trong hoạt động của bộ não không thể trình bày hết, nhưng dù sao mạng trí tuệ nhân tạo có thể đạt được một vài kết quả đáng chú ý với mô hình không phức tạp hơn bộ não.
3. Mô hình nơron nhân tạo cơ bản
Nơron nhân tạo được định nghĩa như sau:
• Nơron nhân tạo nhận một số các ngõ vào (từ dữ liệu gốc, hay từ ngõ ra các nơron khác trong mạng). Mỗi kết nối đến ngõ vào có một cường độ (hay trọng số), những trọng số này tương ứng với tác dụng synapse trong nơron sinh học. Mỗi nơron cũng có một giá trị ngưỡng.
• Tín hiệu được truyền qua hàm kích hoạt (hay còn gọi là hàm truyền) tạo giá trị ngõ ra nơron.
Nếu sử dụng hàm truyền nấc (nghĩa là ngõ ra nơron là 0 nếu ngõ vào nhỏ hơn 0, và là 1 nếu ngõ vào lớn hơn hay bằng 0) thì nơron hoạt động giống như nơron sinh học. Thực tế, hàm nấc ít khi sử dụng trong mạng trí tuệ nhân tạo. Lưu ý rằng trọng số có thể âm, nghĩa là synapse có tác dụng kiềm chế hơn là kích hoạt nơron, các nơron kiềm chế có thể tìm thấy trong bộ não.
Trên đây mô tả các nơron đơn lẻ. Trong thực tế các nơron được kết nối với nhau. Khi mạng hoạt động, chúng phải có ngõ vào (mang giá trị hay biến của thế giới thực) và ngõ ra (dùng để dự báo hay điều khiển). Ngõ vào và ngõ ra tương ứng với các nơron giác quan và vận động, như tín hiệu đưa vào mắt và điều khiển cánh tay. Tuy nhiên chúng còn có các nơron ẩn đóng vai trò ẩn trong mạng. Ngõ vào, nơron ẩn và ngõ ra cần được kết nối với nhau.
Vấn đề chính ở đây là hồi tiếp. Một mạng đơn giản có cấu trúc tiến: tín hiệu đi vào ở ngõ vào, qua các nơron ẩn và cuối cùng đến các nơron ngõ ra. Cấu trúc như thế chạy ổn định. Tuy nhiên, nếu mạng có hồi tiếp (chứa các kết nối ngược trở về các nơron trước đó) mạng có thể chạy không ổn định và dao động rất phức tạp. Mạng hồi tiếp rất được các nhà nghiên cứu quan tâm, nhưng cấu trúc tiến đã chứng minh rất hiệu quả trong việc giải quyết các vấn đề thực tế.
Mạng nơron nhân tạo tiến cho như hình dưới. Các nơron được sắp xếp theo cấu trúc liên kết lớp riêng biệt. Lớp ngõ vào không phải là nơron thực: các nơron này hoạt động đơn giản là giới thiệu các giá trị của các biến vào. Các nơron lớp ẩn và lớp ngõ ra được kết nối với tất cả các nơron lớp trước đó. Cũng như vậy chúng ta có thể định nghĩa mạng có các kết nối một phần với một vài nơron trong lớp trước đó; tuy nhiên, trong hầu hết các ứng dụng mạng có kết nối đầy đủ vẫn tốt hơn.
Cấu trúc mạng nơron nhân tạo
Khi mạng hoạt động, các giá trị biến ngõ vào được đặt vào các nơron ngõ vào, và sau đó các nơron lớp ẩn và lớp ngõ ra lần lượt được kích hoạt. Mỗi nơron tính giá trị kích hoạt của chúng bằng cách lấy tổng các trọng số ngõ ra của các nơron lớp trước đó, và trừ cho ngưỡng. Giá trị kích hoạt truyền qua hàm kích hoạt tạo ra giá trị ngõ ra của nơron. Khi toàn bộ mạng đã hoạt động, các ngõ ra của lớp ngõ ra hoạt động như ngõ ra của toàn mạng.
4. Sử dụng mạng nơron nhân tạo
Một loạt vấn đề dẫn tới việc giải quyết bằng mạng nơron được định nghĩa bằng cách nó làm việc hay nó được huấn luyện. Mạng nơron nhân tạo làm việc từ những ngõ vào khác nhau, đưa ra những ngõ ra khác nhau. Do đó có thể sử dụng khi biết một vài thông tin và sẽ đoán những thông tin chưa biết.
Ví dụ:
• đoán thị trường chứng khoán: nếu biết giá cả chứng khoán của tuần trước và chỉ số FTSE, ta sẽ đoán được giá cả chứng khoán ngày mai.
• Điều khiển: ta muốn biết có hay không một robot biết quẹo phải, trái hay chuyển động về một phía để đạt được mục tiêu, ta sẽ biết được những gì robot đang quan sát.
Điều kiện quan trọng trong việc sử dụng mạng nơron nhân tạo là phải biết mối liên hệ giữa ngõ vào và ngõ ra biết trước. Mối quan hệ này có thể kéo theo nhiều thứ nhưng nó nhất định phải tồn tại.
Tổng quát, nếu ta sử dụng một mạng mạng nơron nhân tạo ta sẽ không biết chính xác trạng thái tự nhiên của mối liên hệ giữa ngõ vào và ngõ ra, nếu ta biết mối liên hệ ta sẽ làm mô hình đó trực tiếp. Một chức năng khác của mạng nơron nhân tạo là nó có thể học mối liên hệ giữa ngõ vào và ngõ ra thông qua việc huấn luyện. Có hai loại huấn luyện sử dụng trong mạng nơron nhân tạo là huấn luyện có giám sát và không giám sát. Với những loại mạng khác nhau thì sử dụng các loại huấn luyện khác nhau. Huấn luyện có giám sát sử dụng thông dụng nhất.
Trong việc học có giám sát, người sử dụng mạng phải có một tập hợp dữ liệu cần huấn luyện. Tập hợp này chứa những ngõ vào mẫu với ngõ ra tương ứng và mạng sẽ huấn luyện để đưa ra mối liên hệ giữa ngõ ra và ngõ vào. Tập hợp dữ liệu thường được lấy từ những bản ghi chép trước đó.
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)
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)
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) 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.
3. Tiến trình xử lý trong mạng nơron
Chúng ta sẽ xem xét việc quản lý các sự kiện bên trong mạng khi đạt đến lần đào tạo cuối cùng trong mạng nơron:
Giả sử rằng chúng ta đang có một mạng nơron được thành từ các thành phần được mô tả trên hình vẽ, gồm ba lớp: một lớp vào, một lớp ẩn và một lớp ra; InputSynapse để đọc các dữ liệu học, TeacherSynapse dùng để tính lổi phát sinh sau một chu trình lan truyền qua mạng. Một đối tượng Monitor để điều khiển toàn bộ tiến trình học của mạng. Như đã nêu trên tất cả các đối tượng đều có tham chiếu đến đối tượng Monitor để lấy thông tin và trạng thái của mạng.
Theo tuần tự của nhãn trên hình vẽ chúng ta thấy tiến trình học của mạng được xử lý như sau:
1. Lớp nơron vào gọi cách fwdGet() của đối tượng InputSynapse
2. Đối tượng InputSynapse sẽ gọi cách nextStep() của đối tượng Monitor để hỏi sự cho phép tiếp tục một chu kỳ mới hay không.
3. Đối tượng Monitor sẽ phát sinh một sự kiện netStopped() (để các đối tượng ngoài biết trạng thái)
4. Đối tượng Monitor trả về giá trị false trong hàm nextStep() cho biết kết thúc chu kỳ.
5. InputSynapse sẽ tạo ra một véctơ đánh dấu kết thúc và chuyển vào lớp nơron vào. Véctơ đánh dấu kết thức chứa giá trị đếm thứ tự chu kỳ bằng -1.
6. Các lớp nơron khi nhận được véctơ đánh dấu kết thúc này sẽ chuyễn véctơ này sang lớp nơron kế tiếp và đặt luồng xử lý của minh ở trạng thái dừng.
4. Biểu đồ lớp của JOONE
Nhân của JOONE được thành lập từ một số lượng nhỏ các Interface trong Java, sau đây là một số lớp tiêu biểu để cấu thành nên các thành phần cơ bản trong mạng nơron:
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
You must be registered for see links
Last edited by a moderator: