Tải bản đầy đủ (.doc) (19 trang)

XÂY DỰNG ỨNG DỤNG NHẬN DẠNG CHỮ VIẾT TAY

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (377.98 KB, 19 trang )

TRƯỜNG ĐẠI HỌC QUỐC GIA HÀ NỘI
ĐẠI HỌC CÔNG NGHỆ
-----o0o-----

BÁO CÁO
Mơn: TRÍ TUỆ NHÂN TẠO NÂNG CAO

XÂY DỰNG ỨNG DỤNG NHẬN DẠNG CHỮ
VIẾT TAY

Mục lục
1. TỔNG QUAN VỀ MẠNG NEURAL...............................................................4
1.1. Mạng Neural (nơron)là gì..............................................................................4
1.2. ứng dụng trong lĩnh vực gì............................................................................4


2. CẤU TRÚC CỦA MỘT NEURAL..................................................................4

3. HỌC CÓ GIÁM SÁT VÀ HỌC KHƠNG CĨ GIÁM SÁT.....................................5
3.1. Mạng Neural (nơron)học có giám sát:...........................................................6
3.2. Trong phương pháp học khơng có giám sát:..................................................6
4. GIẢI THUẬT LAN TRUYỀN NGƯỢC...........................................................6

5. LEARNING RATE....................................................................................7

6. HÀM ACTIVE.........................................................................................8
6.1. Mô hình hàm : y = 1 / (1 + Exp(-x))..............................................................8
6.2. Mơ hình hàm : y = x......................................................................................8
6.3. Hình 7.3: Mơ hình hàm y = Log(1 + |x|)........................................................8
6.4. Hình 7. 4: Mơ hình hàm y = sin(x).................................................................9
6.5. Hình 7.5: Mơ hình hàm y=Tan(x)...................................................................9


7. BẢN ĐỒ TỔ CHỨC KOHONEN SOM (KOHONEN SELF -ORGANIZING MAPS). .9

8. HÀM NEIGHBORHOOD..........................................................................11
8.1. Tổng quan................................................................................................... 11
8.2. Hình minh họa.............................................................................................11
9. LƯỚI TOPOLOGY..................................................................................12

10. MỘT SỐ HÌNH DẠNG CỦA LỚP KOHONEN.............................................13

11. THIẾT KẾ MẠNG NEURAL....................................................................13
11.1. Số lượng lớp ẩn (trong mạng Backpropagation)........................................13
11.2. Mạng neurol ban đầu................................................................................14
11.3. Số mẫu huấn luyện...................................................................................14
12. CÁC LĨNH VỰC ỨNG DỤNG MẠNG NEURAL...........................................14
12.1. Giải quyết các bài toán.............................................................................14
12.2. Phạm vi ứng dụng.....................................................................................14

2/19


13. CÀI ĐẶT MƠI TRƯỜNG PHÁT TRIỂN......................................................15
13.1. Ngơn ngữ lập trình....................................................................................15
13.2. Cơng cụ phát triển....................................................................................15
14. NEURONNETWORK CLASS..................................................................15
14.1. Neuron.Core namespace...........................................................................15
14.2. NeuronNetwork.Core.Initializers namespace.............................................16
14.3. NeuronNetwork.Core.LearningRateFunctions namespace.........................16
14.4. NeuronNetwork.Core.BackPropagation namespace..................................16
14.5. NeuronNetwork.Core.SOM namespace......................................................16
14.6. NeuronNetwork.Core.SOM.NeighborhoodFunctions namespace................17

15. MỘT VÀI ĐOẠN CODE HỮU DỤNG........................................................17
15.1. backpropagation network.........................................................................17
15.2. Đoạn mã khởi tạo một Kohonen SOM........................................................18
16. CHƯƠNG TRÌNH ỨNG DỤNG MẠNG NEURON.........................................18
16.1. Nhận dạng ký tự bàng cách vẽ chữ...........................................................19

3/19


1. Tổng quan về mạng Neural
1.1.

Mạng Neural (nơron)là gì
Mạng Neural (nơron)nhân tạo, Artificaial Neural (nơron)Network (ANN) gọi tắt là
mạng Neural (nơron)(Neural (nơron)network), là mơ hình xử lý thơng tin phỏng
theo cách thức xử lý thông tin của các hệ Neural (nơron)sinh học. Nó được tạo
nên từ một số lượng lớn các phần tử (gọi là phần tử xử lý hay Neural) kết nối với
nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thông
nhất để giải quyết một vấn đề cụ thể nào đó.

1.2.

ứng dụng trong lĩnh vực gì
Một mạng Neural (nơron)nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận
dạng mẫu, phân loại dữ liệu,…) thơng qua một q trình học từ các mẫu huấn
luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các
Neural

2. Cấu trúc của một Neural
Cấu trúc tổng quát


4/19


Giải thích ký hiệu:


Tập các đầu vào: là các tín hiệu vào (input signal) của Neural, các tín
hiệu này thường được đưa dưới dạng vector N chiều



Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng
số liên kết – Synaptic weight). Thông thường các trọng số này được khởi
tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật
liên tục trong q trình học mạng.



Bộ tổng (Summing function): thường dùng để tính tổng của các tích đầu
vào với trọng số liên kết của nó



Ngưỡng (cịn gọi là một độ lệch – bias): Ngưỡng này thường được đưa vào
như một thành phần của hàm truyền



Hàm truyền (Transfer function): Hàm này được dùng để giới hạn phạm vi

đầu ra của mỗi Neural. Nó nhận đầu vào là kết quả của hàm tổng và
ngưỡng đã cho



Đầu ra: Là tín hiệu đầu ra của mỗi Neural, với mỗi Neural (nơron)sẽ có tối
đa là một đầu ra

3. Học có giám sát và học khơng có giám sát

5/19


Một mạng Neural (nơron)cần được đào tạo trước khi nó có thể được đưa vào sử
dụng. Huấn luyện liên quan đến việc đưa vào mạng Neural (nơron)mẫu huấn
luyện và cho phép nó tìm hiểu bằng cách hiệu chỉnh trọng số liên kết và các
thơng số khác nhau. mạng nơ-ron có thể được phân loại thành hai loại dựa vào
loại học tập.

3.1.

Mạng Neural (nơron)học có giám sát:
Trong phương pháp học có giám sát, mạng Neural (nơron)học từ các mẫu. Tập
huấn luyện bao gồm một tập hợp các mẫu đầu vào và các kết quả đầu ra mong
muốn tương ứng với mẫu đầu vào. Các mạng Neural (nơron)điều chỉnh trọng số
liên kết của nó để tìm hiểu mối quan hệ giữa các cặp đầu vào-đầu ra. Mạng
Neural (nơron)được huấn luyện thành công thì có thể hể được sử dụng để tìm
đầu ra phù hợp nhất đối với bất kỳ đầu vào hợp lệ.
Mục tiêu của việc học có giám sát một mơ hình tồn cục là tìm ra một hàm f, khi
cho sẵn một tập các điểm có dạng (x, f(x)).


3.2.

Trong phương pháp học khơng có giám sát:
Mạng Neural (nơron)chỉ nhận được một tập hợp các đầu vào từ mơi trường bên
ngồi. Nó có vẻ bí ẩn để tưởng tượng những gì các mạng có thể có thể học hỏi
từ thiết lập một chỉ số đầu vào. Tuy nhiên, có thể để chính thức chứng minh rằng
một mạng lưới khơng có giám sát có thể xây dựng đại diện của các đầu vào có
thể được sử dụng cho việc ra quyết định.

4. Giải thuật lan truyền ngược
Để huấn luyện mạng Neural (nơron)ta cung cấp cho nó một bộ huấn luyện và
cho phép nó học bằng cách điều chỉnh trọng số của các liên kết mạng. Một tập
huấn luyện là một tập hợp mẫu huấn luyện.
Training Set = Set of training samples
Một mẫu đào tạo là một cặp của một vector đầu vào và một mẫu vectơ đầu ra
mong muốn. Trong trường hợp đào tạo khơng có giám sát, các vector đầu ra nên
được để null. Chiều dài của vector đầu vào nên được tương tự như số lượng các
Neural (nơron)trong lớp đầu vào, và độ dài vector đầu ra nên được bằng số
Neural (nơron)trong lớp đầu ra.
Training Sample = (input vector, desired vector)
Backpropagation thuật toán là một thuật toán giám sát thường được sử dụng để
huấn luyện các mạng feed-forward. Nó được giới thiệu lần đầu tiên bởi Paul

6/19


Werbos trong cuốn sách 'The Roots của Backpropagation'. Ý tưởng cơ bản là xác
định mạng Neural (nơron)hoạt động như thế nào với đầu vào mẫu, so sánh khác
nhau như thế nào giữa các hành vi mong muốn và sau đó điều chỉnh trọng số

của các liên kết để giảm thiểu sự khác biệt. Quá trình này lặp đi lặp lại cho tất
cả các mẫu đào tạo trong nhiều lần thiết lập để đảm bảo huấn luyện phù hợp.
Việc huấn luyện mạng MLP bởi thuật toán lan truyền ngược sai số bao gồm hai
quá trình: Quá trình truyền thẳng và quá trình truyền ngược. Trong quá trình
truyền thẳng, các vector đầu vào sẽ được cung cấp cho các Neural (nơron)của
mạng và tín hiệu sẽ được lan truyền lần lượt trên từng lớp mạng. Cuối cùng ta sẽ
tính được một tập các đầu ra thực sự của mạng. Trong suốt quá trình truyền
thẳng, tất cả các trọng số liên kết của mạng đều cố định. Ngược lại, trong quá
trình truyền ngược, tất cả các trọng số liên kết đó sẽ được hiệu chỉnh theo các
luật hiệu chỉnh trọng số. Sai số của mạng sẽ được đo bằng độ sai lệch giữa đầu
ra thu được với các giá trị mục tiêu tương ứng. Các sai số này sau đó sẽ được lan
truyền ngược lần lượt trên các lớp mạng (từ lớp cuối cùng đến lớp đầu tiên). Các
trọng số liên kết sẽ được hiệu chỉnh sao cho các đầu ra thực sự của mạng càng
gần với các giá trị mục tiêu càng tốt.

5. Learning Rate
Learning rate là một trong những thông số mà điều chỉnh việc làm thế nào để
một mạng noron học nhanh và làm thế nào để việc huấn luyện hiệu quả.
Hãy xem xét một Neural (nơron)mà đang trải qua quá trình học tập. Giả định
rằng trọng số của một số liên kết trong mạng một phần được đào tạo là 0,3. Khi
mạng được giới thiệu một mẫu huấn luyện mới, thuật toán huấn luyện yêu cầu
các liên kết thay đổi trọng số của nó đến 0,7 để nó có thể học các mẫu mới phù
hợp. Nếu chúng ta cập nhật trọng số ngay lập tức, các mạng Neural (nơron)chắc
chắn sẽ học các mẫu mới, nhưng nó có xu hướng quên đi tất cả các mẫu nó đã
học trước đó. Điều này là do trọng số hiện tại (0,3) là kết quả của tất cả việc học
mà nó đã trải qua cho đến nay.
Vì vậy, chúng ta khơng trực tiếp thay đổi trọng số tới 0,7. Thay vào đó, chúng ta
tăng nó bởi một phần nhỏ (chọn 25%) của sự thay đổi cần thiết. Vì vậy, trọng số
liên kết của được thay đổi thành 0,4 và chúng ta chuyển sang mẫu đào tạo tiếp
theo. Yếu tố này (0,25 trong trường hợp này) được gọi là Learning Rate. Căn cứ

theo cách này, tất cả các mẫu huấn luyên được huấn luyện trong một số thứ tự
ngẫu nhiên. Khi chu trình đào tạo lặp đi lặp lại nhiều lần, cuối cùng mạng Neural
(nơron)học tất cả các mẫu có hiệu quả.
Learning rate là một giá trị trong khoảng từ 0 đến 1. Chọn một giá trị rất gần
bằng khơng, địi hỏi một số lượng lớn các chu trình huấn luyện. Điều này làm

7/19


cho quá trình huấn luyện rất chậm. Mặt khác, nếu learning rate rất lớn, trọng số
khác nhau và độ lệch hàm mục tiêu dao động lớn và mạng đạt đến một trạng
thái mà việc huấn luyện diễn ra vơ ích.

6. Hàm Active
Hàm active trong mạng được xác định là cách để có được đầu ra của neuron từ
một tập đầu vào dựa trên thuật toán bakcpropagation.
Các thuật toán bakcpropagation yêu cầu một hàm active để thỏa mãn tính liên
tục và khả vi. Nó yêu cầu cần có hàm active để dễ dàng tính tốn.
Một số hàm active như Sigmoid, Linear, Logarit, Tan, Sin…

6.1.

Mơ hình hàm : y = 1 / (1 + Exp(-x))

Hình 7.1: Mơ hình hàm : y = 1 / (1 + Exp(-x))

6.2.

Mơ hình hàm : y = x


Hình 7. 2: Mơ hình hàm : y = x

6.3.

Hình 7.3: Mơ hình hàm y = Log(1 + |x|)

8/19


Hình 7.3: Mơ hình hàm y = Log(1 + |x|)

6.4.

Hình 7. 4: Mơ hình hàm y = sin(x)

Hình 7. 4: Mơ hình hàm y = sin(x)

6.5.

Hình 7.5: Mơ hình hàm y=Tan(x)

Hình 7.5: Mơ hình hàm y=Tan(x)

7. Bản đồ tổ chức Kohonen SOM (Kohonen Self -Organizing
Maps)

9/19


Bản đồ Kohonen SOM là phương pháp học khơng có giám sát được sử dụng rộng

rãi để giảm tính đa chiều của không gian đầu vào nhưng vẫn đảm bảo đúng cấu
trúc đồ thị của nó.
Một kiến trúc SOM Kohonen điển hình được hiển thị dưới đây. Bao gồm một lớp
đầu vào kết nối với một lớp đầu ra (Kohonen 2 chiều) thông qua một Connector
Kohonen gồm các nơrôn Kohonen.
Mỗi tế bào nơrôn trong một lớp Kohonen được liên kết với một tập các nơrôn
khác trong không gian hai chiều.
Lớp tế bào Neural (nơron)đầu vào với n Neural (nơron)với. Lớp đầu ra tổ chức
riêng của mình để dựa vào đầu vào. Vì thế gọi là mơ hình tự tổ chức.

Trong giai đoạn đào tạo, một SOM xây dựng một mẫu đào tạo đại diện. Mạng
lưới đào tạo có thể sử dụng bản đồ vector đầu vào bất kỳ là không gian hai
chiều.
Mục tiêu đào tạo của SOM là để đảm bảo rằng các phần khác nhau của mạng
phản ứng tương tự như các vector đầu vào.
Vì vậy, việc đào tạo chủ yếu liên quan đến việc phân tích hành vi của các mạng
lưới cho một mẫu đào tạo và điều chỉnh trọng lượng của một phần tử Neural
(nơron)để đảm bảo rằng các mạng lưới tiến hành một hành vi tương tự đối với
một đầu vào giống nhau. Các thủ tục liên quan đến việc đào tạo các bước sau
đây:


Khởi tạo trọng những giá trị nhỏ ngẫu nhiên



Chọn một mẫu đào tạo ngẫu nhiên, giao cho vector đầu vào trên các tế
bào thần kinh và chạy mạng.




Đầu ra của một neuron tương ứng tỉ lệ với trọng lượng vector của nó và
các vector đầu vào. Các neuron đầu ra có giá trị cao nhất sẽ thông báo là
người chiến thắng cho các neuron đầu vào hiện hành.

10/19




Tính tốn khoảng cách của mỗi neuron đầu ra từ những Neural
(nơron)chiến thắng bằng cách sử dụng một Hàm Neighborhood



Cập nhật các thông số của khớp Neural (nơron)bằng cách sử dụng các
công thức sau đây.
a= Thông số giữa của nơrol đầu vào
Trọng số b= (Mức độ học M) * (Giá trị so với nơrol hàng xóm) * a



Tương tự như vậy, nó sẽ đào tạo tất cả các mẫu theo một thứ tự ngẫu
nhiên. Điều này hoàn tất thành một chu trình đào tạo.



Lặp lại các bước để hồn thành số quy định của các thế đào tạo.

Các SOM đào tạo các bản đồ vector đầu vào bất kỳ thành một neuron chiến

thắng, và có thể được hiểu như là vị trí của vector trong khơng gian hai chiều.

8. Hàm Neighborhood
8.1.

Tổng quan
Trong một bản đồ tự tổ chức, hàm neighborhood xác định các thông số của một
tế bào nơrol từ tế bào nơrol đó tới nơrol chiến thắng trong cùng một lớp.
Giá trị Neighnorhood ở neuron bị quyết định bởi vector trọng số của nó với
những thay đổi ở nơrol chiến thắng.
Nó thay đổi từ số khơng (cho một neuron ở khoảng cách xa vô hạn từ người
chiến thắng) để cuối cùng người chiến thắng là chính nó.

8.2.

Hình minh họa
Một số hàm Neighborhood như Gaussian và Mexican-Hat như hình vẽ sau:

Hình 9.1: Hàm Gaussian Neighborhood

11/19


Hình 9.2: Hàm Mexican-Hat Neighborhood

9. Lưới Topology
Trong bản đồ lớp Kohonen Layer lưới topology quy định cụ thể sự sắp xếp của
Neural (nơron)lưới hai chiều tạo thành lớp. Hàm Neighborhood được áp dụng
trên topology này.
Có 2 lưới Topology hay dùng là hình lục giác và hình chữ nhật


Hình 10.1: Rectangular Topology

Hình 10.2: Hexagonal Topology

12/19


10.

Một số hình dạng của lớp Kohonen
NeuronNetwork hỗ trợ các hàng và cột có thể vo trịn. Tính năng này có thể
được dùng để tạo ra các lớp Kohonen với hình dạng khác nhau.

Hình 11.1: Dạng phẳng

Hình 11.2: Dạng đường thẳng

Hình

11.3:Dạng hình vịng

Hình 11.4: Dạng hình trụ

11.

Hình 11.5:Dạng hình xuyến

Thiết kế mạng Neural
Thiết kế một mạng Neural (nơron)nhân tạo cho một ứng dụng cụ thể liên quan

đến việc lựa chọn đúng loại mạng, tìm một số thích hợp của các lớp ẩn, phương
pháp thích hợp để khởi tạo trọng số, thuật tốn học thích hợp, các thế đào tạo,
tỷ lệ học tập và số lượng mẫu đào tạo để sử dụng. Hầu hết các thông số này đều
phụ thuộc vào ứng dụng mà các mạng Neural (nơron)đang được thiết kế.
Dưới đây là một số hướng dẫn chung về thiết kế mạng nơrron:

11.1.

Số lượng lớp ẩn (trong mạng Backpropagation)

Một mạng lưới Backpropagation khơng có lớp ẩn khơng thể thực hiện phân loại
khơng tuyến tính. Vì vậy, một trong những lớp ẩn là phải cho một mạng lưới
backpropagation.
Hơn nữa, nó đã được toán học đã chứng minh rằng một mạng lưới
backpropagation với lớp ẩn duy nhất khi đào tạo phù hợp, có thể dùng để xấp xỉ
hàm. Vì vậy, lớp ẩn duy nhất là sự lựa chọn tốt nhất trong hầu hết trường hợp.

13/19


Có nhiều lớp ẩn tăng tốc q trình học tập và mạng được đào tạo phù hợp chính
xác với các mẫu đào tạo nhưng không thực hiện tốt trên các dữ liệu thử nghiệm.
Hiệu ứng này được gọi là overtraining nơi mạng lưới huấn luyện có xu hướng ghi
nhớ các mẫu huấn luyện thay vì học tập chúng.

11.2.

Mạng neurol ban đầu

Khởi tạo đúng trọng số liên kết Neural (nơron)có ảnh hưởng lớn tới việc đào tạo

tốc độ cũng như xác định hiệu quả của đào tạo. Thông thường, trọng số được
khởi tạo với giá trị ngẫu nhiên từ -0,5 đến +0,5 (giá trị cao có xu hướng kết quả
trong khu vực bão hịa sau khi kích hoạt, các giá trị ban đầu nhỏ thì ra các giá trị
gần bằng khơng).
Mạng Neural (nơron)thực hiện quá trình khởi tạo như là một module pluggable.
Tuỳ chỉnh các thuật tốn khởi tạo có thể được cắm vào bằng cách thực hiện
Initializer giao diện.

11.3.

Số mẫu huấn luyện

Quyết định như thế nào để các mẫu đại diện cho các chức năng huấn luyện thực
tế là tốt nhất. Thông thường, các lỗi học hơi tăng so với sự gia tăng kích thước
của tập huấn luyện, đồng thời ta cũng có thể nhận thấy rằng giảm lỗi và mạng
thực hiện tốt hơn về dữ liệu thử nghiệm.
Một mối quan hệ giữa kích thước mạng và số lượng tối ưu của mẫu đào tạo có
thể được tìm thấy.

12.

Các lĩnh vực ứng dụng mạng Neural

12.1.

Giải quyết các bài tốn

Mạng trí tuệ nhân tạo (Artificial Neural (nơron)networks) được ứng dụng giải
quyết các bài tốn trong các lĩnh sau:



Bài tốn về Function Modeling



Bài tốn về phân loại (Classification Problems)



B tốn xử lý và rút trích dữ liệu (Data processing and feature
extraction)

12.2.

Phạm vi ứng dụng

Phạm vi ứng dụng của trí tuệ nhân tạo rất lớn: trong các tập đồn tài chính nó
được dùng để phân tích và dự đốn tài chính, nhận dạng chữ ký, nhận dạng ảnh,

14/19


nhận dạng chữ viết, nhận dạng sinh trắc học, mô hình hóa các hệ thống động,
hệ thống tự động hóa, hệ thống chuyển từ dọng nói ra chữ viết, bóc tách dự liệu,
trí tuệ nhân tạo dùng trong trị chới máy tính, hệ thống xác định đường đi trong
giao thơng vẫn tải, các hệ thống máy bay tự lái, etc.

13.

Cài đặt mơi trường phát triển


13.1.

Ngơn ngữ lập trình

Dự án được viết trên ngôn ngữ C#. Do vậy bạn cần phải sử dụng Microsoft .NET
framework.

13.2.

Công cụ phát triển

Sử dụng công cụ phát triển là Visual Studio Express editions
( )

14.

NeuronNetwork Class
Những thông tin mô tả về các class được mô tả tại mục này. Ví dụ như: layers,
connectors, networks and TrainingSet. Tất cả các class này được thừa kế từ class
'ISerializable' interface

14.1.

Neuron.Core namespace


INeuron : Interface mơ tả một Neural (nơron)thần kinh




ISynapse : Interface mơ tả một khớp nối thần kinh trong mạng



ILayer : Interface mơ tả Layer trong mạng Neural



IConnector : Interface mô tả một bô kết nối (connector) (kết nối giữa hai
layers)



INetwork : Interface mơ tả một mạng Neural



IInitializer : Interface dùng để khởi tạo một cách thức làm việc cụ thể
của các lớp và các bộ kết nối trong một mạng cụ thể.



ILearningRateFunction : Learning Rate Function interface.



Layer : Một thể hiện ở mức tổng quát hóa của interface 'ILayer' hay là
một tập hớp các 'INeuron's




Connector : Một thể hiện ở mức tổng quát hóa của inter 'IConnector'
liên kết giữa hai layers

15/19




Network : Một lớp cơ sở để thể hiện một mạng Neural. Nó là triển khai
của interface 'INetwork'.



TrainingSample : Lớp này là thể hiện một cặp các vector: vector đầu
vào và vector đầu ra mong muốn.



TrainingSet : Là tập hợp của các TrainingSample.



TrainingMethod : Thể hiện phương thức học của mạng Neural (nơron)là
học có giám sát hay khơng giám sát



ConnectionMode : Thể hiện một bộ kế nối là một-một connector hay

nhiều-nhiều

14.2.

NeuronNetwork.Core.Initializers namespace

Có rất nhiều các phương thức khởi tạo cho mạng
như: ConstantFunction, NGuyenWidrowFunction, ZeroFunction, Random
Function và NormalizedRandomFunction được mô tả trong namespace này.

14.3.

NeuronNetwork.Core.LearningRateFunctions namespace

Namespace chứa các hàm dùng cho Learning rate
như: HyperbolicFunction, ExponentialFunction và LinearFunction.

14.4.

NeuronNetwork.Core.BackPropagation namespace


ActivationNeuron : một Neural (nơron)trong mạng lan truyền ngược



BackpropagationSynapse : Các bộ kết nối giữa hai activation
neurons




ActivationLayer : một lớp tổng qt hóa của activation neurons



BackpropagationConnector :

một

tập

các

BackpropagationSynapses kết nối giữa hai activation layers


BackpropagationNetwork : Một mạng lan truyền ngược



LinearLayer, LogarithmLayer, SigmoidLayer, SineLayer và TanhLa
yer thừa kế lớp ActivationLayer để triển khai một thể hiên tương ứng
với các hàm activation functions.

14.5.

NeuronNetwork.Core.SOM namespace


PositionNeuron : một Neural (nơron)a Kohonen network




KohonenSynapse : Liên kết một Neural (nơron)và một PositionNeuron

16/19




KohonenLayer : một layer của PositionNeurons



KohonenConnector : một tập hợp các KohonenSynapses liên kết các
Kohonen Layers



KohonenNetwork : thể hiện một Self-Organizing Map



LatticeTopology : chỉ định dạng lưới lattice topology là Hexagonal hay
Rectangular.



INeighborhoodFunction :


Interface

biểu

diễn

một

neighborhood

function

14.6.
NeuronNetwork.Core.SOM.NeighborhoodFunctions
namespace


Namespace

này

bao

gơm

các

class

sau


GaussianFunction và MexicanHatFunction

15.

Một vài đoạn code hữu dụng

15.1.

backpropagation network

Đoạn mã bên dưới tạo ra một backpropagation network có một lớp đầu vào
là LinearLayer chứa mười Neural, một lớp ẩn sigmoid chưa năm Neural
(nơron)và một lớp đầu ra sigmoid chứa bảy Neural.

Để tạo một mạng Neural, đầu tiên cần khởi tạo các lớp (layers), sau đó kết nối
các lớp bằng cách tạo ra các connectors và rồi tạo ra mạng Neural (nơron)bằng
cách cung cấp các lớp đầu vào và đầu ra. Không được sửa đổi cấu trúc của
mạng sau khi tạo ra nó (Khơng tạo ra bất kỳ các Layer hoặc connector nào khi
đã tạo mạng thành công).
Cần chú ý lớp đầu vào của một mạng backpropagation luôn luôn là một
linear layer bởi vì chúng ta khơng muốn thay đổi dữ liệu đầu vào thêm độ lệch
hay thực hiện activation function.

17/19


15.2.

Đoạn mã khởi tạo một Kohonen SOM.


Bất cứ lúc nào cũng có thể thay đổi thuộc tính của các layers và các
connnectors.

Một learning rate function được liên kết với mọi layer trong mạng. Chúng ta
có thể thay đổi thuộc tính này cho mỗi một layer. Nếu muốn sử dụng duy nhất
một hàm cho mọi lớp chúng ta có thể sử dụng hàm SetLearningRate cho
network

Để dạy mạng ta cần các mẫu ví dụ (bao gồm đầu vào và đầu ra). Chúng ta cần
tạo ra một tập hợp các mẫu training samples và chúng ta có thể dạy mạng
này chống lại các training set.

16.

Chương trình ứng dụng mạng Neuron

18/19


16.1.

Nhận dạng ký tự bàng cách vẽ chữ.

Đây là màn hình chương trình nhận dạng ký tự A bằng cách vẽ chữ A.

Màn hình dạy chương trình nhận dãng ký tự A.

19/19




×