Neural Network With Matlab #1: Giới thiệu cơ bản về mạng nơ-ron nhân tạo

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

Chia sẻ trang này

Lượt xem: 3,753

  1. Cu Bo

    By:Cu Boin: 12 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 #1:
    Giới thiệu cơ bản về mạng nơ-ron nhân tạo

    [​IMG]

    Mạng nơ-ron nhân tạo là gì?


    Mạng nơ-ron nhân tạo
    hay thường gọi ngắn gọn là mạng nơ-ron là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng nơ-ron sinh học. Nó gồm có một nhóm các nơ-ron nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút (cách tiếp cận connectionism đối với tính toán). Trong nhiều trường hợp, mạng nơ-ron nhân tạo là một hệ thống thích ứng (adaptive system) tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chảy qua mạng trong quá trình học.​

    Mô hình nơ-ron
    Nơ-ron đơn giản

    [​IMG]
    Hình 1. Mô hình mạng nơ-ron đơn giản.
    a-b
    a: nơ-ron không có bias (độ dốc).
    b: nơ-ron có bias.​
    Tín hiệu vào vô hướng p thông qua Weight w (trọng liên kết vô hướng) trở thành wp. Ở hình 1-a, wp là đối số duy nhất của hàm truyền f, tín hiệu đầu ra là đại lượng vô hướng a. Ở hình 1-b có thêm bias vô hướng, b. Ta có thể xem b như một phép cộng đơn giản vào tích wp hoặc như một phép dịch của hàm fhình 1-a đi một khoảng b.
    Hàm truyền có đầu vào vô hướng là n, là tổng của Weight input wp và bias b. Hàm truyền f có thể là hàm Hard-Limit, Linear,...
    [​IMG]
    Hình 2. Các hàm truyền thông dụng.
    a-b
    c-d
    a- Hàm truyền Hard-Limit (bước nhảy): f(n) = hardlim(n) = 1 if n>=0; =0 otherwise.
    b- Hàm truyền Linear: f(n) = purelin(n) = n.
    c- Hàm truyền Log-Sigmoid: f(n) = logsig(n) = 1/(1+exp(-n)).
    d- Hàm truyền Tan-Sigmoid: f(n) = tansig(n) = 2/(1+exp(-2*n))-1.​

    Nơ-ron với nhiều đầu vào (vector input):


    [​IMG]
    Hình 3. Nơ-ron với R đầu vào.​

    Nơ-ron với vector vào R phần tử được thể hiện trong hình 3. Ở đây ta có một chuỗi các input p1,p2,p3...pR nhân với các weight tương ứng: w(1,1),w(1,2),...w(1,R). Các Weight w được biểu diễn bằng ma trận hàng và vector p là ma trận cột. Khi đó, n có giá trị:
    n = w(1,1)*p1+w(1,2)*p2+...+w(1,R)*pR+b.​
    Trong Matlab ta có thể viết:​
    Mã:
    p = [p1;p2;p3;...;pR];
    W= [w(1,1) w(1,2) ... w(1,R)];
    n = W*p+b;
    Với numel(W) == numel(p)
    Cách biểu diễn trên sẽ rất khó khăn khi mô tả mạng gồm nhiều nơ-ron và có nhiều lớp. Để đơn giản ta sử dụng ký hiệu như hình 4.
    [​IMG]
    Hình 4. Ký hiệu nơ-ron với R đầu vào.​
    Trong đó:
    • Vector input được biểu diễn bởi thanh đậm bên trái với kích thước là Rx1 (vector p có R phần tử vào). Các phần tử này được nhân với ma trận W (kích thước 1xR).
    • Hằng số 1 được nhân với bias b.
    • Hàm truyền f có đầu vào là n, tổng của bias b và tích Wp. Tổng này đi qua hàm truyền f để đầu ra nơ-ron là a, với a là một đại lượng vô hướng.
    • Chú ý: Nếu đầu vào nhiều hơn 1 vector thì đầu ra của mạng sẽ là một vector.
    To be Continue......

     
    Last edited: 13 Tháng bảy 2016
    Lu ROm thích bài này.