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
SỬ DỤNG MẠNG NEURAL XÂY DỰNG ỨNG
DỤNG NHẬN DẠNG CHỮ VIẾT TAY
Giảng viên hướng dẫn : ĐỖ NĂNG TOÀN
Học viên thực hiện
: NGUYỄN HỮU HUY
NGUYỄN XUÂN KỲ
ĐOÀN THỊ THÙY LINH
Lớp
: K16T3
Hà nội, 4-2010
Mục lục
1.
TỔNG QUAN VỀ MẠNG NƠRON..................................................................................4
1.1.
Mạng 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 NƠRON...........................................................................4
3.
HỌC CÓ GIÁM SÁT VÀ HỌC KHÔNG CÓ GIÁM SÁT.......................................5
3.1.
Mạng nơron học có giám sát:................................................................................5
3.2.
Trong phương pháp học không có giám sát:...........................................................5
4.
GIẢI THUẬT LAN TRUYỀN NGƯỢC..................................................................6
5.
LEARNING RATE................................................................................................ 6
6.
HÀM ACTIVE...................................................................................................... 7
6.1.
Mô hình hàm : y = 1 / (1 + Exp(-x)).......................................................................7
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)..........................................................................8
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
9.
8.1.
Tổng quan..........................................................................................................11
8.2.
Hình minh họa....................................................................................................11
LƯỚI TOPOLOGY............................................................................................. 11
2/19
10.
MỘT SỐ HÌNH DẠNG CỦA LỚP KOHONEN...................................................12
11. THIẾT KẾ MẠNG NƠRON................................................................................13
11.1. Số lượng lớp ẩn (trong mạng Backpropagation)...................................................13
11.2. Mạng neurol ban đầu..........................................................................................13
11.3. Số mẫu đào tạo..................................................................................................14
12. CÁC LĨNH VỰC ỨNG DỤNG MẠNG NƠRON...................................................14
12.1. Giải quyết các bài toán........................................................................................14
12.2. Phạm vi ứng dụng..............................................................................................14
13. CÀI ĐẶT MÔI TRƯỜNG PHÁT TRIỂN............................................................14
13.1. Ngôn ngữ lập trình..............................................................................................14
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..................................................................17
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ữ.....................................................................18
3/19
1. Tổng quan về mạng nơron
1.1.
Mạng nơron là gì
Mạng nơron nhân tạo, Artificaial Neural Network (ANN) gọi tắt là mạng nơron (neural
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ệ
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 nơron) 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 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 quá 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 nơron
2. Cấu trúc của một nơron
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 nơron, 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 quá 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 nơron. 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 nơron, với mỗi 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
Một mạng 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 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 nơron học có giám sát:
Trong phương pháp học có giám sát, mạng 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 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 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 toà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 nơron chỉ nhận được một tập hợp các đầu vào từ môi trường bên ngoà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ố
5/19
đầ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 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 nơron trong lớp đầu
vào, và độ dài vector đầu ra nên được bằng số 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 Werbos trong
cuốn sách 'The Roots của Backpropagation'. Ý tưởng cơ bản là xác định mạng 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 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
6/19
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 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 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 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 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 toá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))
7/19
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|)
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)
8/19
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)
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 nơron đầu vào với n 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.
9/19
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ử 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.
Tính toán khoảng cách của mỗi neuron đầu ra từ những 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 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 để hoà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.
10/19
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
Hình 9.2: Hàm Mexican-Hat Neighborhood
9. Lưới Topology
11/19
Trong bản đồ lớp Kohonen Layer lưới topology quy định cụ thể sự sắp xếp của 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
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.
12/19
Hình 11.1: Dạng phẳng
Hình 11.4: Dạng hình trụ
Hình 11.2: Dạng đường thẳng
Hình 11.3:Dạng hình vòng
Hình 11.5:Dạng hình xuyến
Thiết kế mạng Nơron
11.
Thiết kế một mạng 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 toá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 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.
Có nhiều lớp ẩn tăng tốc quá 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 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).
13/19
Mạng 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 toá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 nơron
12.1.
Giải quyết các bài toán
Mạng trí tuệ nhân tạo (Artificial neural networks) được ứng dụng giải quyết các
bài toán trong các lĩnh sau:
Bài toán về Function Modeling
Bài toán về phân loại (Classification Problems)
Baì toá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 đoàn tài chính nó đ ược
dùng để phân tích và dự đoán tài chính, nhận dạng chữ ký, nhận dạng ảnh, 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.
14/19
13.2.
Công cụ phát triển
Sử dụng công cụ phát triển là Visual Studio Express editions
(http://www.microsoft.com/Express/ )
NeuronNetwork Class
14.
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 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 nơron
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 nơron
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
Network : Một lớp cơ sở để thể hiện một mạng nơron. 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 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ềunhiều
15/19
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, RandomFunctio
n 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 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 quát 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à TanhLayer 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 nơron a Kohonen network
KohonenSynapse : Liên kết một nơron và một PositionNeuron
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
16/19
14.6.
NeuronNetwork.Core.SOM.NeighborhoodFunctions
namespace
15.
Namespace này bao gôm các class sau GaussianFunction và MexicanHatFunction
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 nơron, một lớp ẩn sigmoid chưa năm nơron và một lớp đầu ra
sigmoid chứa bảy nơron.
Để tạo một mạng nơron, đầ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 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.
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
17/19
Để 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.
16.1.
Chương trình ứng dụng mạng Neuron
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.
18/19
Màn hình dạy chương trình nhận dãng ký tự A.
19/19
- Xem thêm -