Neural Network With Matlab #8: GUI trong mạng nơ-ron

Thảo luận trong 'TRÍ TUỆ NHÂN TẠO' bắt đầu bởi Cu Bo, 27 Tháng bảy 2016.

Chia sẻ trang này

Lượt xem: 2,269

  1. Cu Bo

    By:Cu Boin: 27 Tháng bảy 2016
    Cu Bo

    Tham gia ngày:
    25 Tháng bảy 2014
    Bài viết:
    13
    Đã được thích:
    8
    Neural Network With Matlab #8:
    GUI trong mạng nơ-ron



    [​IMG]

    Giới thiệu về GUI

    Giao diện đồ họa (Graphical User Interface - GUI) được thiết kế đơn giản và thân thiện. Cửa sổ giao diện đồ họa có một vùng làm việc của nó tách rời khỏi các dòng lệnh của vùng làm việc. Vì vậy khi sử dụng GUI ta cần phải xuất kết quả GUI sang (dòng lệnh) vùng làm việc. Tương tự ta có thể nhận kết quả từ dòng lệnh làm việc đển GUI.

    Mỗi lần Network/Data Manager được đưa ra và chạy, ta có thể thiết lập mạng, quan sát, huấn luyện, mô phỏng nó và xuất kết quả cuối cùng vào vùng làm việc.

    Tương tự, ta có thể lấy dữ liệu từ vùng làm việc để sử dụng trong GUI.

    Ví dụ sau đây với mạng perceptron, ta sẽ đi qua tất cả các bước để thiết lập mạng và chỉ rõ ra có thể làm gì để được những điều mong muốn.

    Thiết lập mạng Perceptron (nntool)

    Ta tạo một mạng nơ-ron hoạt động như một cổng logic AND. Nó có 2 vector đầu vào
    p = [0 0 1 1;0 1 0 1] và kết quả t = [0 0 0 1]. Ta gọi mạng tên là ANDnet. Mỗi lần thiết lập, mạng sẽ được huấn luyện. Sau đó ta có thể lưu mạng, đầu ra,.... bằng "exporting" trong cửa sổ dòng lệnh.

    Để bắt đầu, ta gõ lệnh 'nntool' trên cửa sổ command window. Xuất hiện cửa sổ sau

    [​IMG]
    Trong đó:
    (1) chứa danh sách các đầu vào.
    (2) chứa danh sách kết quả mong muốn.
    (3) chứa danh sách các đầu vào trễ.
    (4) chứa danh sách các mạng nơ-ron.
    (5) chứa danh sách các kết quả đầu ra của mạng.
    (6) chứa danh sách các độ sai lệch của mạng.

    (7) chứa danh sách các trạng thái lớp trễ của mạng có trễ.
    (8 ) nhập dữ liệu và mạng từ bên ngoài vào GUI.
    (9) tạo mới mạng và dữ liệu.
    (10) chọn dữ liệu hoặc mạng để edit.
    (11) xuất dữ liệu và mạng ra bên ngoài GUI.
    (12) Xóa dữ liệu hoặc mạng được chọn.
    Đầu vào và kết quả mong muốn

    Đầu tiên, ta cần có một đầu vào mạng gọi là p, và mang giá trị [0 0 1 1;0 1 0 1]. Do đó, mạng sẽ có 2 phần tử đầu vào và 4 nhóm với 2 phần tử được đưa vào huấn luyện. Để thiết lập dữ liệu, click New... và ta sẽ có một cửa sổ mới. Đến tab Data, ta nhập tên dữ liệu ở phần Name và điền giá trị dữ liệu ở phần Value. Ở đây, Name sẽ là pValue là [0 0 1 1;0 1 0 1]. Sau đó chọn Inputs và click vào Create để tạo ra đầu vào dữ liệu p.

    [​IMG]
    Tiếp theo ta tạo kết quả mong muốn của mạng. Tương tự cách làm với đầu vào, nhưng phần Data Type ta chọn Targets, Name : t, Value : [0 0 0 1].

    [​IMG]
    Tạo mạng

    Ta sẽ tạo một mạng mới, và gọi nó là ANDnet. Lúc này, ta click vào New..., ở tab Network, ta điền tên mạng vào phần Name (ANDnet). Ta hiệu chỉnh như trong hình:

    [​IMG]
    Ta có thể thấy được hình dáng của mạng bằng cách click vào View.

    [​IMG]

    Ta có thể thấy mạng được tạo ra với đầu vào 2 phần tử, 1 hàm truyền hard-limit và 1 đầu ra. Đây chính là mạng perceptron ta muốn.
    Huấn luyện Perceptron

    Để huấn luyện mạng, ta click vào tên của mạng (ANDnet) ở phần Network (4). Ở đây, ta có tab Simulate (để mô phỏng mạng), Adapt (Huấn luyện bằng hàm Adapt), Reinitialize Weights (Thiết lập giới hạn của đầu vào, khởi tạo lại cho mạng), View/Edit Weight (Theo dõi và edit trọng số và bias của mạng) và Train (Huấn luyện mạng bằng hàm train). Để huấn luyện mạng, ta chọn tab Train, chọn tiếp tab Training Info để có thể thiết lập đầu vào và kết quả mong muốn huấn luyện, tab Training Parameters để thiết lập cho quá trình huấn luyện.

    [​IMG]
    Chú ý: ở mục Outputs Errors có tên của mạng ở phía trước giúp cho ta dễ dàng phân biệt được với các mạng khác.

    Ta click vào Train Network để huấn luyện mạng perceptron. Ta sẽ thấy kết quả huấn luyện:
    Mã:
    Training with TRAINC.
    Calculation mode: MATLAB
    Epoch 0/1000, Time 0.064, Performance 0.75/0
    Epoch 5/1000, Time 0.219, Performance 0/0
    Training with TRAINC completed: Performance goal met.
    Sau 5 lượt huấn luyện thì độ sai lệch là bằng 0. Có thể kiểm tra lại lại mạng bằng cách mô phỏng với các kết quả khác nhau. Để có thể mô phỏng ta click chọn ANDnet và chọn tab Simulate, đưa giá trị vào p và click vào Simulate Network để có thể mô phỏng (nhớ tên của đầu ra, ở đây là "ANDnet_outputs").
    [​IMG]
    Ta chọn "ANDnet_outputs" ở phần Output Data để kiểm tra kết quả. Ta nhận được
    [​IMG]
    Chính xác với kết quả ta mong đợi.

    Ta có thể tạo lên các mạng cho các cổng logic khác như OR,NOT...
     
    Lu ROm thích bài này.