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 đó.
Mục lục TỔNG QUAN VỀ MẠNG NƠRON .4 1.1 Mạng nơron 1.2 ứng dụng lĩnh vực CẤU TRÚC CỦA MỘT NƠRON HỌC CÓ GIÁM SÁT VÀ HỌC KHÔNG CÓ GIÁM SÁT 3.1 Mạng nơron học có giám sát: 3.2 Trong phương pháp học giám sát: GIẢI THUẬT LAN TRUYỀN NGƯỢC LEARNING RATE HÀM ACTIVE .7 6.1 Mô hình hàm : y = / (1 + Exp(-x)) 6.2 Mô hình hàm : y = x 6.3 Hình 7.3: Mô hình hàm y = Log(1 + |x|) 6.4 Hình 4: Mô hình hàm y = sin(x) .9 6.5 Hình 7.5: Mô hình hàm y=Tan(x) BẢN ĐỒ TỔ CHỨC KOHONEN SOM (KOHONEN SELF -ORGANIZING MAPS) .9 HÀM NEIGHBORHOOD 11 8.1 Tổng quan 11 8.2 Hình minh họa 11 LƯỚI TOPOLOGY 12 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 14 11.3 Số mẫu huấn luyện 14 12 CÁC LĨNH VỰC ỨNG DỤNG MẠNG NƠRON 14 12.1 Giả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 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 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 17 THIẾT KẾ MẠNG NƠRON 20 17.1 Số lượng lớp ẩn (trong mạng Backpropagation) 20 17.2 Mạng neurol ban đầu 20 17.3 Số mẫu huấn luyện 20 18 CÁC LĨNH VỰC ỨNG DỤNG MẠNG NƠRON 21 18.1 Giải toán 21 18.2 Phạm vi ứng dụng 21 2/26 19 CÀI ĐẶT MÔI TRƯỜNG PHÁT TRIỂN 21 19.1 Ngôn ngữ lập trình 21 19.2 Công cụ phát triển 21 20 NEURONNETWORK CLASS 21 20.1 Neuron.Core namespace 22 20.2 NeuronNetwork.Core.Initializers namespace 22 20.3 NeuronNetwork.Core.LearningRateFunctions namespace .22 20.4 NeuronNetwork.Core.BackPropagation namespace 23 20.5 NeuronNetwork.Core.SOM namespace 23 20.6 NeuronNetwork.Core.SOM.NeighborhoodFunctions namespace 23 21 MỘT VÀI ĐOẠN CODE HỮU DỤNG 23 21.1 backpropagation network .24 21.2 Đoạn mã khởi tạo Kohonen SOM 24 22 CHƯƠNG TRÌNH ỨNG DỤNG MẠNG NEURON .25 22.1 Nhận dạng ký tự bàng cách vẽ chữ 25 3/26 Tổng quan mạng nơron 1.1 Mạng nơron Mạng nơron nhân tạo, Artificaial Neural Network (ANN) gọi tắt mạng nơron (neural network), mô hình xử lý thông tin theo cách thức xử lý thông tin hệ nơron sinh học Nó tạo nên từ số lượng lớn phần tử (gọi phần tử xử lý hay nơron) kết nối với thông qua liên kết (gọi trọng số liên kết) làm việc thể thông để giải vấn đề cụ thể 1.2 ứng dụng lĩnh vực Một mạng nơron nhân tạo cấu hình cho ứng dụng cụ thể (nhận dạng mẫu, phân loại liệu,…) thông qua trình học từ mẫu huấn luyện Về chất học trình hiệu chỉnh trọng số liên kết nơron Cấu trúc nơron Cấu trúc tổng quát 4/26 Giải thích ký hiệu: • Tập đầu vào: tín hiệu vào (input signal) nơron, tín hiệu thường đưa dạng vector N chiều • Tập liên kết: Mỗi liên kết thể trọng số (gọi trọng số liên kết – Synaptic weight) Thông thường trọng số khởi tạo cách ngẫu nhiên thời điểm khởi tạo mạng cập nhật liên tục trình học mạng • Bộ tổng (Summing function): thường dùng để tính tổng tích đầu vào với trọng số liên kết • Ngưỡng (còn gọi độ lệch – bias): Ngưỡng thường đưa vào thành phần hàm truyền • Hàm truyền (Transfer function): Hàm dùng để giới hạn phạm vi đầu nơron Nó nhận đầu vào kết hàm tổng ngưỡng cho • Đầu ra: Là tín hiệu đầu nơron, với nơron có tối đa đầu Học có giám sát học giám sát Một mạng nơron cần đào tạo trướ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 cho phép tìm hiểu cách hiệu chỉnh trọng số liên kết thông số khác mạng nơ-ron 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ừ mẫu Tập huấn luyện bao gồm tập hợp mẫu đầu vào kết đầu 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 để tìm hiểu mối quan hệ cặp đầu vào-đầu Mạng nơron huấn luyện thành công hể sử dụng để tìm đầu phù hợp đầu vào hợp lệ Mục tiêu việc học có giám sát mô hình toàn cục tìm hàm f, cho sẵn tập điểm có dạng (x, f(x)) 5/26 3.2 Trong phương pháp học giám sát: Mạng nơron nhận tập hợp đầu vào từ môi trường bên Nó bí ẩn để tưởng tượng mạng có thể học hỏi từ thiết lập số đầu vào Tuy nhiên, để thức chứng minh mạng lưới giám sát xây dựng đại diện đầu vào sử dụng cho việc định Giải thuật lan truyền ngược Để huấn luyện mạng nơron ta cung cấp cho huấn luyện cho phép học cách điều chỉnh trọng số liên kết mạng Một tập huấn luyện tập hợp mẫu huấn luyện Training Set = Set of training samples Một mẫu đào tạo cặp vector đầu vào mẫu vectơ đầu mong muốn Trong trường hợp đào tạo giám sát, vector đầu nên để null Chiều dài vector đầu vào nên tương tự số lượng nơron lớp đầu vào, độ dài vector đầu nên số nơron lớp đầu Training Sample = (input vector, desired vector) Backpropagation thuật toán thuật toán giám sát thường sử dụng để huấn luyện mạng feed-forward Nó giới thiệu lần Paul Werbos sách 'The Roots Backpropagation' Ý tưởng xác định mạng nơron hoạt động với đầu vào mẫu, so sánh khác hành vi mong muốn sau điều chỉnh trọng số liên kết để giảm thiểu khác biệt Quá trình lặp lặp lại cho tất mẫu đào tạo 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 thuật toán lan truyền ngược sai số bao gồm hai trình: Quá trình truyền thẳng trình truyền ngược Trong trình truyền thẳng, vector đầu vào cung cấp cho nơron mạng tín hiệu lan truyền lớp mạng Cuối ta tính tập đầu thực mạng Trong suốt trình truyền thẳng, tất trọng số liên kết mạng cố định Ngược lại, trình truyền ngược, tất trọng số liên kết hiệu chỉnh theo luật hiệu chỉnh trọng số Sai số mạng đo độ sai lệch đầu thu với giá trị mục tiêu tương ứng Các sai số sau lan truyền ngược lớp mạng (từ lớp cuối đến lớp đầu tiên) Các 6/26 trọng số liên kết hiệu chỉnh cho đầu thực mạng gần với giá trị mục tiêu tốt Learning Rate Learning rate thông số mà điều chỉnh việc làm để mạng noron học nhanh làm để việc huấn luyện hiệu Hãy xem xét nơron mà trải qua trình học tập Giả định trọng số số liên kết mạng phần đào tạo 0,3 Khi mạng giới thiệu mẫu huấn luyện mới, thuật toán huấn luyện yêu cầu liên kết thay đổi trọng số đến 0,7 để học mẫu phù hợp Nếu cập nhật trọng số lập tức, mạng nơron chắn học mẫu mới, có xu hướng quên tất mẫu học trước Điều trọng số (0,3) kết tất việc học mà trải qua Vì vậy, không trực tiếp thay đổi trọng số tới 0,7 Thay vào đó, tăng phần nhỏ (chọn 25%) thay đổi cần thiết Vì vậy, trọng số liên kết thay đổi thành 0,4 chuyển sang mẫu đào tạo Yếu tố (0,25 trường hợp này) gọi Learning Rate Căn theo cách này, tất mẫu huấn luyên huấn luyện số thứ tự ngẫu nhiên Khi chu trình đào tạo lặp lặp lại nhiều lần, cuối mạng nơron học tất mẫu có hiệu Learning rate giá trị khoảng từ đến Chọn giá trị gần không, đòi hỏi số lượng lớn chu trình huấn luyện Điều làm cho trình huấn luyện chậm Mặt khác, learning rate lớn, trọng số khác độ lệch hàm mục tiêu dao động lớn mạng đạt đến trạng thái mà việc huấn luyện diễn vô ích Hàm Active Hàm active mạng xác định cách để có đầu neuron từ tập đầu vào dựa thuật toán bakcpropagation Các thuật toán bakcpropagation yêu cầu hàm active để thỏa mãn tính liên tục 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 Sigmoid, Linear, Logarit, Tan, Sin… 7/26 6.1 Mô hình hàm : y = / (1 + Exp(-x)) Hình 7.1: Mô hình hàm : y = / (1 + Exp(-x)) 6.2 Mô hình hàm : y = x Hình 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|) 8/26 6.4 Hình 4: Mô hình hàm y = sin(x) Hình 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) Bản đồ tổ chức Kohonen SOM (Kohonen Self -Organizing Maps) Bản đồ Kohonen SOM phương pháp học giám sát sử dụng rộng rãi để giảm tính đa chiều không gian đầu vào đảm bảo cấu trúc đồ thị Một kiến trúc SOM Kohonen điển hình hiển thị Bao gồm lớp đầu vào kết nối với lớp đầu (Kohonen chiều) thông qua Connector Kohonen gồm nơrôn Kohonen Mỗi tế bào nơrôn lớp Kohonen liên kết với tập nơrôn khác không gian hai chiều 9/26 Lớp tế bào nơron đầu vào với n nơron với Lớp đầu tổ chức riêng để dựa vào đầu vào Vì gọi mô hình tự tổ chức Trong giai đoạn đào tạo, SOM xây dựng mẫu đào tạo đại diện Mạng lưới đào tạo sử dụng đồ vector đầu vào không gian hai chiều Mục tiêu đào tạo SOM để đảm bảo phần khác mạng phản ứng tương tự 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 mạng lưới cho mẫu đào tạo điều chỉnh trọng lượng phần tử nơron để đảm bảo mạng lưới tiến hành hành vi tương tự đầu vào giống Các thủ tục liên quan đến việc đào tạo bước sau đây: • Khởi tạo trọng giá trị nhỏ ngẫu nhiên • Chọn mẫu đào tạo ngẫu nhiên, giao cho vector đầu vào tế bào thần kinh chạy mạng • Đầu neuron tương ứng tỉ lệ với trọng lượng vector vector đầu vào Các neuron đầu có giá trị cao thông báo người chiến thắng cho neuron đầu vào hành • Tính toán khoảng cách neuron đầu từ nơron chiến thắng cách sử dụng Hàm Neighborhood • Cập nhật thông số khớp nơron cách sử dụng công thức sau a= Thông số 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ự vậy, đào tạo tất mẫu theo thứ tự ngẫu nhiên Điều hoàn tất thành chu trình đào tạo 10/26 Lưới Topology Trong đồ lớp Kohonen Layer lưới topology quy định cụ thể xếp nơron lưới hai chiều tạo thành lớp Hàm Neighborhood áp dụng topology Có lưới Topology hay dùng hình lục giác 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 lớp Kohonen NeuronNetwork hỗ trợ hàng cột vo tròn Tính dùng để tạo lớp Kohonen với hình dạng khác 12/26 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 Nơron Thiết kế mạng nơron nhân tạo cho ứng dụng cụ thể liên quan đến việc lựa chọn loại mạng, tìm số thích hợp 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, đào tạo, tỷ lệ học tập số lượng mẫu đào tạo để sử dụng Hầu hết thông số phụ thuộc vào ứng dụng mà mạng nơron thiết kế Dưới số hướng dẫn chung 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 lớp ẩn thực phân loại không tuyến tính Vì vậy, lớp ẩn phải cho mạng lưới backpropagation Hơn nữa, toán học chứng minh mạng lưới backpropagation với lớp ẩn đào tạo phù hợp, dùng để xấp xỉ hàm Vì vậy, lớp ẩn lựa chọn tốt hầu hết trường hợp Có nhiều lớp ẩn tăng tốc trình học tập mạng đào tạo phù hợp xác với mẫu đào tạo không thực tốt liệu thử nghiệm Hiệu ứng gọi overtraining nơi mạng lưới huấn luyện có xu hướng ghi nhớ mẫu huấn luyện thay học tập chúng 13/26 11.2 Mạng neurol ban đầu Khởi tạo trọng số liên kết nơron có ảnh hưởng lớn tới việc đào tạo tốc độ xác định hiệu đào tạo Thông thường, trọng số 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 khu vực bão hòa sau kích hoạt, giá trị ban đầu nhỏ giá trị gần không) Mạng nơron thực trình khởi tạo module pluggable Tuỳ chỉnh thuật toán khởi tạo cắm vào cách thực Initializer giao diện 11.3 Số mẫu huấn luyện Quyết định để mẫu đại diện cho chức huấn luyện thực tế tốt Thông thường, lỗi học tăng so với gia tăng kích thước tập huấn luyện, đồng thời ta nhận thấy giảm lỗi mạng thực tốt liệu thử nghiệm Một mối quan hệ kích thước mạng số lượng tối ưu mẫu đào tạo tìm thấy 12 Các lĩnh vực ứng dụng mạng nơron 12.1 Giải toán Mạng trí tuệ nhân tạo (Artificial neural networks) ứng dụng giải toán lĩnh sau: • Bài toán Function Modeling • Bài toán phân loại (Classification Problems) • Baì toán xử lý rút trích liệu (Data processing and feature extraction) 12.2 Phạm vi ứng dụng Phạm vi ứng dụng trí tuệ nhân tạo lớn: tập đoàn tài dùng để phân tích 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 hệ thống động, hệ thống tự động hóa, hệ thống chuyển từ dọng nói chữ viết, bóc tách dự liệu, trí tuệ nhân tạo dùng trò chới máy tính, hệ thống xác định đường giao thông tải, hệ thống máy bay tự lái, etc 14/26 13 Cài đặt môi trường phát triển 13.1 Ngôn ngữ lập trình Dự án viết ngôn ngữ C# Do 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 Visual Studio Express editions (http://www.microsoft.com/Express/ ) 14 NeuronNetwork Class Những thông tin mô tả class mô tả mục Ví dụ như: layers, connectors, networks and TrainingSet Tất class thừa kế từ class 'ISerializable' interface 14.1 Neuron.Core namespace • INeuron : Interface mô tả nơron thần kinh • ISynapse : Interface mô tả khớp nối thần kinh mạng • ILayer : Interface mô tả Layer mạng nơron • IConnector : Interface mô tả bô kết nối (connector) (kết nối hai layers) • INetwork : Interface mô tả mạng nơron • IInitializer : Interface dùng để khởi tạo cách thức làm việc cụ thể lớp kết nối mạng cụ thể • ILearningRateFunction : Learning Rate Function interface • Layer : Một thể mức tổng quát hóa interface 'ILayer' tập hớp 'INeuron's • Connector : Một thể mức tổng quát hóa inter 'IConnector' liên kết hai layers • Network : Một lớp sở để thể mạng nơron Nó triển khai interface 'INetwork' • TrainingSample : Lớp thể cặp vector: vector đầu vào vector đầu mong muốn 15/26 • TrainingSet : Là tập hợp TrainingSample • TrainingMethod : Thể phương thức học mạng nơron học có giám sát hay không giám sát • ConnectionMode : Thể kế nối một-một connector hay nhiều-nhiều 14.2 NeuronNetwork.Core.Initializers namespace Có nhiều phương thức khởi tạo cho mạng như: ConstantFunction, NGuyenWidrowFunction, ZeroFunction, Random Function NormalizedRandomFunction mô tả namespace 14.3 NeuronNetwork.Core.LearningRateFunctions namespace Namespace chứa hàm dùng cho Learning rate như: HyperbolicFunction, ExponentialFunction LinearFunction 14.4 NeuronNetwork.Core.BackPropagation namespace • ActivationNeuron : nơron mạng lan truyền ngược • BackpropagationSynapse : Các kết nối hai activation neurons • ActivationLayer : lớp tổng quát hóa activation neurons • BackpropagationConnector : tập BackpropagationSynapses kết nối hai activation layers • BackpropagationNetwork : Một mạng lan truyền ngược • LinearLayer, LogarithmLayer, SigmoidLayer, SineLayer TanhLa yer thừa kế lớp ActivationLayer để triển khai thể hiên tương ứng với hàm activation functions 14.5 NeuronNetwork.Core.SOM namespace • PositionNeuron : nơron a Kohonen network • KohonenSynapse : Liên kết nơron PositionNeuron • KohonenLayer : layer PositionNeurons • KohonenConnector : tập hợp KohonenSynapses liên kết Kohonen Layers 16/26 • KohonenNetwork : thể Self-Organizing Map • LatticeTopology : định dạng lưới lattice topology Hexagonal hay Rectangular • INeighborhoodFunction : Interface biểu diễn neighborhood function 14.6 NeuronNetwork.Core.SOM.NeighborhoodFunctions namespace • Namespace bao gôm class sau GaussianFunction MexicanHatFunction 15 Một vài đoạn code hữu dụng 15.1 backpropagation network Đoạn mã bên tạo backpropagation network có lớp đầu vào LinearLayer chứa mười nơron, lớp ẩn sigmoid chưa năm nơron lớp đầu sigmoid chứa bảy nơron Để tạo mạng nơron, cần khởi tạo lớp (layers), sau kết nối lớp cách tạo connectors tạo mạng nơron cách cung cấp lớp đầu vào đầu Không sửa đổi cấu trúc mạng sau tạo (Không tạo Layer connector tạo mạng thành công) Cần ý lớp đầu vào mạng backpropagation luôn linear layer không muốn thay đổi liệu đầu vào thêm độ lệch hay thực activation function 15.2 Đoạn mã khởi tạo Kohonen SOM 17/26 Bất lúc thay đổi thuộc tính layers connnectors Một learning rate function liên kết với layer mạng Chúng ta thay đổi thuộc tính cho layer Nếu muốn sử dụng hàm cho lớp sử dụng hàm SetLearningRate cho network Để dạy mạng ta cần mẫu ví dụ (bao gồm đầu vào đầu ra) Chúng ta cần tạo tập hợp mẫu training samples dạy mạng chống lại 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 hình chương trình nhận dạng ký tự A cách vẽ chữ A 18/26 Màn hình dạy chương trình nhận dãng ký tự A 19/26 17 Thiết kế mạng Nơron Thiết kế mạng nơron nhân tạo cho ứng dụng cụ thể liên quan đến việc lựa chọn loại mạng, tìm số thích hợp 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, đào tạo, tỷ lệ học tập số lượng mẫu đào tạo để sử dụng Hầu hết thông số phụ thuộc vào ứng dụng mà mạng nơron thiết kế Dưới số hướng dẫn chung thiết kế mạng nơrron: 17.1 Số lượng lớp ẩn (trong mạng Backpropagation) Một mạng lưới Backpropagation lớp ẩn thực phân loại không tuyến tính Vì vậy, lớp ẩn phải cho mạng lưới backpropagation Hơn nữa, toán học chứng minh mạng lưới backpropagation với lớp ẩn đào tạo phù hợp, dùng để xấp xỉ hàm Vì vậy, lớp ẩn lựa chọn tốt hầu hết trường hợp Có nhiều lớp ẩn tăng tốc trình học tập mạng đào tạo phù hợp xác với mẫu đào tạo không thực tốt liệu thử nghiệm Hiệu ứng gọi overtraining nơi mạng lưới huấn luyện có xu hướng ghi nhớ mẫu huấn luyện thay học tập chúng 17.2 Mạng neurol ban đầu Khởi tạo trọng số liên kết nơron có ảnh hưởng lớn tới việc đào tạo tốc độ xác định hiệu đào tạo Thông thường, trọng số 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 khu vực bão hòa sau kích hoạt, giá trị ban đầu nhỏ giá trị gần không) Mạng nơron thực trình khởi tạo module pluggable Tuỳ chỉnh thuật toán khởi tạo cắm vào cách thực Initializer giao diện 17.3 Số mẫu huấn luyện Quyết định để mẫu đại diện cho chức huấn luyện thực tế tốt Thông thường, lỗi học tăng so với gia tăng kích thước tập huấn luyện, đồng thời ta nhận thấy giảm lỗi mạng thực tốt liệu thử nghiệm 20/26 Một mối quan hệ kích thước mạng số lượng tối ưu mẫu đào tạo tìm thấy 18 Các lĩnh vực ứng dụng mạng nơron 18.1 Giải toán Mạng trí tuệ nhân tạo (Artificial neural networks) ứng dụng giải toán lĩnh sau: • Bài toán Function Modeling • Bài toán phân loại (Classification Problems) • Baì toán xử lý rút trích liệu (Data processing and feature extraction) 18.2 Phạm vi ứng dụng Phạm vi ứng dụng trí tuệ nhân tạo lớn: tập đoàn tài dùng để phân tích 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 hệ thống động, hệ thống tự động hóa, hệ thống chuyển từ dọng nói chữ viết, bóc tách dự liệu, trí tuệ nhân tạo dùng trò chới máy tính, hệ thống xác định đường giao thông tải, hệ thống máy bay tự lái, etc 19 Cài đặt môi trường phát triển 19.1 Ngôn ngữ lập trình Dự án viết ngôn ngữ C# Do bạn cần phải sử dụng Microsoft NET framework 19.2 Công cụ phát triển Sử dụng công cụ phát triển Visual Studio Express editions (http://www.microsoft.com/Express/ ) 20 NeuronNetwork Class Những thông tin mô tả class mô tả mục Ví dụ như: layers, connectors, networks and TrainingSet Tất class thừa kế từ class 'ISerializable' interface 21/26 20.1 Neuron.Core namespace • INeuron : Interface mô tả nơron thần kinh • ISynapse : Interface mô tả khớp nối thần kinh mạng • ILayer : Interface mô tả Layer mạng nơron • IConnector : Interface mô tả bô kết nối (connector) (kết nối hai layers) • INetwork : Interface mô tả mạng nơron • IInitializer : Interface dùng để khởi tạo cách thức làm việc cụ thể lớp kết nối mạng cụ thể • ILearningRateFunction : Learning Rate Function interface • Layer : Một thể mức tổng quát hóa interface 'ILayer' tập hớp 'INeuron's • Connector : Một thể mức tổng quát hóa inter 'IConnector' liên kết hai layers • Network : Một lớp sở để thể mạng nơron Nó triển khai interface 'INetwork' • TrainingSample : Lớp thể cặp vector: vector đầu vào vector đầu mong muốn • TrainingSet : Là tập hợp TrainingSample • TrainingMethod : Thể phương thức học mạng nơron học có giám sát hay không giám sát • ConnectionMode : Thể kế nối một-một connector hay nhiều-nhiều 20.2 NeuronNetwork.Core.Initializers namespace Có nhiều phương thức khởi tạo cho mạng như: ConstantFunction, NGuyenWidrowFunction, ZeroFunction, Random Function NormalizedRandomFunction mô tả namespace 20.3 NeuronNetwork.Core.LearningRateFunctions namespace Namespace chứa hàm dùng cho Learning rate như: HyperbolicFunction, ExponentialFunction LinearFunction 22/26 20.4 NeuronNetwork.Core.BackPropagation namespace • ActivationNeuron : nơron mạng lan truyền ngược • BackpropagationSynapse : Các kết nối hai activation neurons • ActivationLayer : lớp tổng quát hóa activation neurons • BackpropagationConnector : tập BackpropagationSynapses kết nối hai activation layers • BackpropagationNetwork : Một mạng lan truyền ngược • LinearLayer, LogarithmLayer, SigmoidLayer, SineLayer TanhLa yer thừa kế lớp ActivationLayer để triển khai thể hiên tương ứng với hàm activation functions 20.5 NeuronNetwork.Core.SOM namespace • PositionNeuron : nơron a Kohonen network • KohonenSynapse : Liên kết nơron PositionNeuron • KohonenLayer : layer PositionNeurons • KohonenConnector : tập hợp KohonenSynapses liên kết Kohonen Layers • KohonenNetwork : thể Self-Organizing Map • LatticeTopology : định dạng lưới lattice topology Hexagonal hay Rectangular • INeighborhoodFunction : Interface biểu diễn neighborhood function 20.6 NeuronNetwork.Core.SOM.NeighborhoodFunctions namespace • Namespace bao gôm class sau GaussianFunction MexicanHatFunction 21 Một vài đoạn code hữu dụng 23/26 21.1 backpropagation network Đoạn mã bên tạo backpropagation network có lớp đầu vào LinearLayer chứa mười nơron, lớp ẩn sigmoid chưa năm nơron lớp đầu sigmoid chứa bảy nơron Để tạo mạng nơron, cần khởi tạo lớp (layers), sau kết nối lớp cách tạo connectors tạo mạng nơron cách cung cấp lớp đầu vào đầu Không sửa đổi cấu trúc mạng sau tạo (Không tạo Layer connector tạo mạng thành công) Cần ý lớp đầu vào mạng backpropagation luôn linear layer không muốn thay đổi liệu đầu vào thêm độ lệch hay thực activation function 21.2 Đoạn mã khởi tạo Kohonen SOM Bất lúc thay đổi thuộc tính layers connnectors Một learning rate function liên kết với layer mạng Chúng ta thay đổi thuộc tính cho layer Nếu muốn sử dụng hàm cho lớp sử dụng hàm SetLearningRate cho network Để dạy mạng ta cần mẫu ví dụ (bao gồm đầu vào đầu ra) Chúng ta cần tạo tập hợp mẫu training samples dạy mạng chống lại training set 24/26 22 22.1 Chương trình ứng dụng mạng Neuron Nhận dạng ký tự bàng cách vẽ chữ Đây hình chương trình nhận dạng ký tự A cách vẽ chữ A 25/26 Màn hình dạy chương trình nhận dãng ký tự A 26/26 ... tích 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 hệ thống động, hệ thống tự động hóa, hệ thống chuyển từ dọng nói chữ viết, bóc... tích 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 hệ thống động, hệ thống tự động hóa, hệ thống chuyển từ dọng nói chữ viết, bóc... 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 hình chương trình nhận dạng ký tự A cách vẽ chữ A 18/26 Màn hình dạy chương trình nhận dãng ký tự A 19/26 17 Thiết kế