Giáo Trình Hướng Dẫn Thực Hành Mạng Nơ-ron với MATLAB (Neural Networks: MATLAB Examples)


Tổng quan về giáo trình

Giáo trình Neural Networks: MATLAB examples (Neural Networks course - practical examples) do Tiến sĩ Primož Potočnik biên soạn năm 2012 tại Phòng thí nghiệm Hiệp đồng học (LASIN - Laboratory of Synergetics), Khoa Kỹ thuật Cơ khí (Faculty of Mechanical Engineering), Đại học Ljubljana (University of Ljubljana), Slovenia. Tài liệu được thiết kế làm học liệu thực hành chính thức cho học phần Mạng nơ-ron nhân tạo (Neural Networks) và Trí tuệ nhân tạo ứng dụng trong chương trình đào tạo kỹ sư cơ khí, cơ điện tử, tự động hóa và khoa học máy tính ở bậc đại học và sau đại học.

Mục tiêu học tập cốt lõi của giáo trình bao gồm:

  • Nắm vững cấu trúc toán học và giải thuật vận hành của các kiến trúc mạng nơ-ron nhân tạo kinh điển và hiện đại.
  • Làm chủ phương pháp xây dựng, cấu hình, huấn luyện và đánh giá mô hình mạng nơ-ron bằng công cụ MATLAB Neural Network Toolbox (phiên bản phát hành với MATLAB 7.14 / R2012a).
  • Phát triển năng lực xử lý dữ liệu kỹ thuật thực nghiệm: tiền xử lý tín hiệu đo, lấy mẫu lại (resampling), mã hóa nhãn phân loại (target coding), và xử lý cấu trúc dữ liệu chuỗi thời gian (concurrent vs. sequential vectors).
  • Ứng dụng mạng nơ-ron vào giải quyết các bài toán kỹ thuật thực tế: phân loại nhị phân và đa lớp, xấp xỉ hàm số phi tuyến, dự báo chuỗi thời gian hỗn loạn (chaotic time series prediction) và chẩn đoán hư hỏng cơ khí trong dây chuyền sản xuất công nghiệp.

Giáo trình có dung lượng 91 trang, được cấu trúc thành 13 đơn vị bài tập thực hành (practical examples) từ mã định danh nn02 đến nn08. Cách tiếp cận của tài liệu dựa trên phương pháp học tập qua giải quyết vấn đề (problem-based learning), trong đó mỗi chủ đề được xuất bản trực tiếp từ mã nguồn thực thi của MATLAB (MATLAB Publish), kết hợp giữa mô tả lý thuyết toán học, các khối lệnh chi tiết và đồ thị trực quan hóa không gian dữ liệu 2D/3D.


Nội dung kiến thức cốt lõi

                             KIẾN TRÚC MẠNG NƠ-RON TRONG GIÁO TRÌNH
                                                │
         ┌────────────────────────┬─────────────┴───────────────┬────────────────────────┐
         ▼                        ▼                             ▼                        ▼
┌──────────────────┐    ┌──────────────────┐          ┌──────────────────┐     ┌──────────────────┐
│  Nơ-ron Cơ bản   │    │ Mạng Hướng truyền│          │ Mạng Động học    │     │ Hàm Cơ sở        │
│  & Thích nghi    │    │ Đa tầng (MLP)    │          │ & Chuỗi thời gian│     │ Xuyên tâm (RBFN) │
├──────────────────┤    ├──────────────────┤          ├──────────────────┤     ├──────────────────┤
│• Neuron output   │    │• MLP XOR problem │          │• ADALINE filter  │     │• Exact RBFN      │
│• Custom network  │    │• MLP 4-class     │          │• NAR network     │     │• Standard RBFN   │
│• Perceptron      │    │• Chẩn đoán cơ khí│          │• Chuỗi Mackey-   │     │• GRNN & PNN      │
│• ADALINE         │    │  (data2.mat)     │          │  Glass           │     │• Bayesian trainbr│
└──────────────────┘    └──────────────────┘          └──────────────────┘     └──────────────────┘

Các chương và chủ đề chính

Tài liệu bao gồm 13 mô-đun thực hành trọng tâm, phân bố theo tiến trình logic từ các khối nơ-ron căn bản đến hệ thống nơ-ron phức hợp:

  1. nn02_neuron_output – Tính toán đầu ra của nơ-ron đơn lẻ: Khảo sát mô hình toán học của một tế bào nơ-ron với trọng số $w = [4, -2]$ và độ lệch $b = -3$. Thực thi tính toán thế kích hoạt (activation_potential = p*w' + b) và đánh giá các hàm kích hoạt phi tuyến: hàm sigmoid đối xứng (tansig), tuyến tính (purelin), ngưỡng cứng (hardlim) và hàm logistic (logsig). Trực quan hóa mặt đáp ứng 3D của nơ-ron trên lưới đầu vào qua hàm meshgridplot3.
  2. nn02_custom_nn – Khởi tạo và cấu hình mạng nơ-ron tùy biến: Hướng dẫn sử dụng hàm hướng đối tượng cấp thấp network() để thiết lập ma trận kết nối đầu vào (inputConnect), kết nối tầng (layerConnect), kết nối độ lệch (biasConnect) và kết nối đầu ra (outputConnect). Cấu hình tầng ẩn 5 nơ-ron với hàm logsig, thiết lập thuật toán huấn luyện Levenberg-Marquardt (trainlm) và hàm hiệu năng sai số toàn phương trung bình (mse).
  3. nn03_perceptron & nn03_perceptron_network – Mạng Perceptron phân loại dữ liệu: Xây dựng Perceptron nhị phân để phân loại dữ liệu phân tách tuyến tính bằng hàm plotpv và vẽ đường ranh giới quyết định bằng plotpc. Mở rộng sang mạng Perceptron 2 đầu vào, 2 đầu ra để phân loại không gian 4 lớp với thuật toán học thích nghi lặp adapt kết hợp hàm tính tổng sai số bình phương sse.
  4. nn03_adaline – Bộ lọc tuyến tính thích nghi và dự báo chuỗi thời gian: Thiết kế mạng ADALINE bằng hàm linearlayer với độ trễ đầu vào inputDelays = 1:5 và tốc độ học $\eta = 0.2$. Chuyển đổi qua lại giữa vector đồng thời và tuần tự (con2seq, seq2con) nhằm dự báo động tín hiệu sóng hình sin.
  5. nn04_mlp_xor & nn04_mlp_4classes – Mạng Perceptron đa tầng (MLP) giải quyết bài toán phi tuyến: Sử dụng hàm feedforwardnet([5 3])feedforwardnet([4 3]) giải quyết bài toán phi tuyến kinh điển XOR (4 cụm dữ liệu phân bổ so le) và phân loại không gian 4 cụm. Sử dụng hàm mesh kết hợp bản đồ màu colormap cool để biểu diễn bề mặt quyết định đa lớp trong không gian 2D.
  6. nn04_technical_diagnostic – Chẩn đoán lỗi kỹ thuật thanh truyền máy nén khí: Ứng dụng thực tế trên tập dữ liệu công nghiệp data2.mat gồm 2000 mẫu tín hiệu đo lực dập đầu nén khí (kích thước $2000 \times 100$). Thực hiện giảm mẫu (resampling) về kích thước $2000 \times 10$, gán nhãn nhị phân (0 = OK, 1 = Error gồm Overload và Crack). Huấn luyện mạng MLP 4 nơ-ron tầng ẩn với kỹ thuật dừng sớm (Early Stopping: 70% tập huấn luyện, 15% tập kiểm định, 15% tập kiểm tra), đạt độ chính xác phân loại 99.75%.
  7. nn05_narnet – Dự báo chuỗi thời gian hỗn loạn bằng mạng hồi quy phi tuyến: Tạo lập chuỗi thời gian hỗn loạn Mackey-Glass theo phương trình vi phân sai phân trễ: $$y(n+1) = y(n) - b \cdot y(n) + \frac{c \cdot y(n-\tau)}{1 + y(n-\tau)^{10}}$$ Xây dựng mô hình mạng narnet(1:6:19, [6 3]), chuẩn bị trạng thái trễ bằng hàm preparets, huấn luyện ở chế độ vòng hở (open-loop) và chuyển đổi sang vòng kín (closeloop) để thực hiện mô phỏng dự báo đệ quy đa bước trên tập kiểm định.
  8. nn06_rbfn_func & nn06_rbfn_xor – Mạng hàm cơ sở xuyên tâm (RBFN): Khảo sát bài toán xấp xỉ hàm số và phân loại XOR thông qua các cấu trúc RBFN: mạng RBF chính xác (newrbe), mạng RBF thêm nơ-ron lặp (newrb), mạng nơ-ron hồi quy tổng quát (newgrnn), mạng nơ-ron xác suất (newpnn) và mạng RBF huấn luyện bằng thuật toán chính quy hóa Bayes (trainbr).
  9. nn07_som & nn08_tech_diag_pca – Mạng tự tổ chức và Phân tích thành phần chính: Phân cụm không giám sát dữ liệu không gian 1D/2D bằng Self-Organizing Map và trích chọn đặc trưng lực nén công nghiệp bằng phương pháp PCA.

Bảng tổng hợp các cấu trúc mạng và hàm MATLAB trong giáo trình

Script Kiến trúc Mạng Hàm MATLAB Khởi tạo Thuật toán / Hàm chuyển đổi Bài toán Ứng dụng
nn02_neuron_output Đơn nơ-ron Thủ công (w*p' + b) tansig, logsig, hardlim Tính toán đầu ra & mặt thế 3D
nn02_custom_nn Mạng tùy biến network() trainlm, mse, logsig Tùy biến topo kết nối tự do
nn03_perceptron Perceptron 1 lớp perceptron Perceptron Learning Rule, plotpc Phân loại tuyến tính 2 cụm
nn03_perceptron_network Perceptron 2 nơ-ron perceptron adapt, sse Phân loại 4 cụm dữ liệu
nn03_adaline Tuyến tính thích nghi linearlayer Widrow-Hoff (LMS), con2seq Dự báo chuỗi sóng sin
nn04_mlp_xor MLP 2 tầng ẩn feedforwardnet([5 3]) Backpropagation, mesh Bài toán logic XOR phi tuyến
nn04_mlp_4classes MLP 2 tầng ẩn feedforwardnet([4 3]) Backpropagation, Max decoding Phân vùng không gian 4 lớp
nn04_technical_diagnostic MLP 1 tầng ẩn feedforwardnet([4]) Early Stopping (70/15/15) Phát hiện nứt thanh truyền khí
nn05_narnet NAR hồi quy trễ narnet preparets, closeloop Dự báo chuỗi Mackey-Glass
nn06_rbfn_func RBF / GRNN / BR newrb, newrbe, newgrnn trainbr, Gaussian spread Xấp xỉ hàm số phi tuyến

Kiến thức nền tảng được xây dựng

Giáo trình thiết lập hệ thống lý thuyết có tính liên kết chặt chẽ:

  • Nguyên lý tính toán nơ-ron sinh học số hóa: Bản chất truyền nhận tín hiệu, trọng số liên kết (weights), ngưỡng kích hoạt (bias) và phép biến đổi phi tuyến thông qua các hàm truyền (transfer functions).
  • Tối ưu hóa và lan truyền ngược: Thuật toán huấn luyện Levenberg-Marquardt (trainlm), phương pháp hạ độ dốc (Gradient Descent), và kỹ thuật kiểm soát quá khớp bằng chính quy hóa Bayes (Bayesian Regularization) nhằm hạn chế sự bùng nổ trọng số.
  • Động học hệ thống phi tuyến: Cơ chế lưu trữ trạng thái trễ thời gian trong mạng hồi quy (NAR) và mạng thích nghi ADALINE, phân biệt dữ liệu đồng thời (concurrent data) và chuỗi dữ liệu phụ thuộc thời gian (sequential time series).

Kỹ năng phát triển cho người học

  • Kỹ năng lập trình và công cụ: Khả năng vận dụng thành thạo các hàm đối tượng của MATLAB Neural Network Toolbox, xử lý ma trận và mảng ô (cell arrays), tự động hóa quá trình huấn luyện và trực quan hóa kết quả mô phỏng.
  • Kỹ năng phân tích và tinh chỉnh mô hình: Đọc hiểu và phân tích các biểu đồ hội tụ hiệu năng, thiết lập các siêu tham số mạng (số lượng nơ-ron ẩn, hệ số lan tỏa spread constant, số bước trễ inputDelays), và xử lý bài toán mất cân bằng hoặc xung đột mã hóa nhãn (target coding).
  • Năng lực triển khai ứng dụng kỹ thuật: Quy trình chuẩn bị dữ liệu kỹ thuật từ tín hiệu cảm biến thực tế, bao gồm giảm chiều dữ liệu, chia tập huấn luyện - kiểm định - kiểm tra độc lập và kiểm thử trên các mẫu vận hành ngẫu nhiên.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng triệt để phương pháp sư phạm thực nghiệm (computational laboratory approach). Mọi bài học đều đi theo cấu trúc 4 bước cố định:

┌─────────────────────────┐
│ 1. Problem Description  │ (Định nghĩa bài toán toán học / kỹ thuật)
└────────────┬────────────┘
             ▼
┌─────────────────────────┐
│ 2. Contents & Steps     │ (Khai báo biến, nạp dữ liệu, thiết lập tham số)
└────────────┬────────────┘
             ▼
┌─────────────────────────┐
│ 3. Code Implementation  │ (Khởi tạo mạng, gọi hàm huấn luyện train/adapt)
└────────────┬────────────┘
             ▼
┌─────────────────────────┐
│ 4. Output & Visual Plot │ (Vẽ biểu đồ hội tụ, mặt quyết định 2D/3D)
└─────────────────────────┘
  1. Mô tả bài toán (Problem Description): Xác định rõ điều kiện biên, kích thước vector đầu vào và mục tiêu phân loại hoặc xấp xỉ.
  2. Quy trình các bước (Contents): Liệt kê trình tự các hàm MATLAB cần gọi để xử lý bài toán.
  3. Hiện thực hóa mã nguồn (Code Implementation): Cung cấp các đoạn mã hoàn chỉnh, có chú thích chi tiết cho từng dòng lệnh (thiết lập bộ nhớ qua close all, clear all, clc, định dạng dữ liệu, khởi tạo đối tượng mạng, thiết lập tham số huấn luyện).
  4. Phân tích kết quả thực thi (Numerical & Graphical Output): Đồ thị và kết quả số được nhúng liền mạch sau mỗi đoạn lệnh, cho phép người học đối chiếu trực tiếp giữa mã nguồn và kết quả hiển thị.

Hệ thống bài tập gắn liền với các bộ dữ liệu đo lường cụ thể, tiêu biểu là bài toán chẩn đoán lực dập thanh truyền với tệp dữ liệu data2.mat và hàm sinh dữ liệu thử nghiệm data_generator(). Phương pháp đánh giá được thực hiện định lượng thông qua chỉ số lỗi phân loại sai (k = length(find(i-j))), sai số bình phương trung bình (mse), và tỷ lệ nhận dạng chính xác (correct_classifications = 100*length(find(Y==target))/length(target)).

Đối với người tự học, tài liệu cung cấp hướng dẫn rõ ràng về cách can thiệp vào các tham số mô hình (chẳng hạn như thay đổi giá trị spread = 0.12 thành spread = 0.4 trong mạng RBF hoặc thay đổi cấu trúc tầng ẩn [12 6] của MLP) để quan sát sự thay đổi trong biên độ sai số và hình dạng đường cong xấp xỉ.


Điểm nổi bật và cập nhật

  • Chuẩn hóa đối tượng mạng nơ-ron hiện đại trong MATLAB: Tài liệu sử dụng các hàm khởi tạo theo mô hình đối tượng mới của MATLAB (như feedforwardnet, narnet, linearlayer, newrb, newgrnn), đồng thời giải thích bản chất bên trong thông qua hàm khởi tạo mạng nguyên thủy network().
  • Kỹ thuật xử lý chuỗi thời gian tiên tiến: Hướng dẫn sử dụng hàm preparets để tự động tính toán và dịch chuyển các trạng thái trễ của mạng (initial input/layer delay states), kết hợp phương thức closeloop cho phép chuyển đổi từ mạng huấn luyện vòng hở sang mạng mô phỏng đệ quy nhiều bước (closed-loop recursive prediction).
  • Tích hợp bài toán công nghiệp thực tế: Khác với các tài liệu thuần lý thuyết chỉ sử dụng dữ liệu đồ chơi (toy datasets), giáo trình đưa vào bài toán chẩn đoán công nghiệp thực nghiệm (lỗi nứt và quá tải của thanh truyền đầu nén máy nén khí) với 2000 mẫu lực thực tế, minh họa đầy đủ các khâu từ nạp dữ liệu, giảm mẫu, gắn nhãn, huấn luyện mạng có dừng sớm đến kiểm chứng ngẫu nhiên trên từng sản phẩm.
  • Đối sánh đa mô hình trên cùng một tập dữ liệu: Tại chủ đề xấp xỉ hàm số phi tuyến (nn06_rbfn_func), giáo trình xây dựng một hàm sinh dữ liệu chuẩn data_generator() và triển khai đối sánh trực tiếp 6 giải pháp khác nhau: Hồi quy tuyến tính (Linear Regression), Mạng RBF chính xác (Exact RBFN), Mạng RBF chuẩn (Standard RBFN), Mạng hồi quy tổng quát (GRNN), Mạng RBF tối ưu hóa Bayes (trainbr) và Mạng nhiều lớp (MLP).

Đối tượng sử dụng giáo trình

  • Sinh viên đại học: Sinh viên năm thứ 3 và năm thứ 4 các ngành Kỹ thuật Cơ khí, Cơ điện tử, Kỹ thuật Điều khiển & Tự động hóa, Kỹ thuật Điện - Điện tử, Công nghệ Thông tin và Khoa học Dữ liệu.
  • Học viên cao học và nghiên cứu sinh: Học viên các chuyên ngành Trí tuệ Nhân tạo, Tự động hóa quá trình công nghệ và Mô hình hóa hệ thống động học phức tạp, cần tài liệu mẫu để triển khai thuật toán trên MATLAB.
  • Kiến thức tiên quyết (Prerequisites):
    • Đại số tuyến tính: phép nhân ma trận, vector chuyển vị, hệ phương trình tuyến tính.
    • Giải tích: đạo hàm, cực trị hàm nhiều biến.
    • Lập trình MATLAB cơ bản: cú pháp xử lý ma trận, vẽ đồ thị, viết script và function.
  • Giảng viên và cán bộ hướng dẫn thực hành: Sử dụng tài liệu làm khung bài giảng thực hành phòng máy (lab sessions), thiết kế bài tập lớn (course projects) hoặc đề tài nghiên cứu ứng dụng mạng nơ-ron trong kỹ thuật.
  • Kỹ sư kỹ thuật và chuyên viên R&D: Dùng làm sổ tay tra cứu cú pháp, thuật toán và cấu trúc code mẫu khi xây dựng các mô hình chẩn đoán kỹ thuật hoặc dự báo tín hiệu cảm biến trong công nghiệp.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu phù hợp cho sinh viên kỹ thuật, học viên cao học, giảng viên và kỹ sư ứng dụng đang tìm kiếm một tài liệu học tập dựa trên thực hành mã nguồn MATLAB về mạng nơ-ron nhân tạo và nhận dạng mẫu.

2. Cần kiến thức nền nào để học giáo trình này?

Người học cần có kiến thức toán đại số tuyến tính cơ bản (ma trận, vector), giải tích cơ bản và khả năng sử dụng môi trường MATLAB (thao tác biến, lập trình hàm m-file, vẽ đồ thị cơ bản).

3. Điểm khác biệt của giáo trình này so với các tài liệu lý thuyết khác?

Giáo trình tập trung vào việc hiện thực hóa thuật toán bằng mã lệnh MATLAB có thể chạy ngay (runnable scripts). Thay vì đi sâu vào chứng minh toán học thuần túy, tài liệu tập trung vào việc thiết lập tham số, trực quan hóa không gian phân loại/xấp xỉ và giải quyết bài toán thực tế như chuỗi hỗn loạn Mackey-Glass và dữ liệu chẩn đoán lực dập cơ khí data2.mat.

4. Làm sao để tự học hiệu quả với giáo trình?

Người học nên mở phần mềm MATLAB, nhập và chạy từng khối lệnh theo thứ tự từ nn02 đến nn08, quan sát cấu trúc mạng thông qua lệnh view(net), đồng thời chủ động thay đổi các tham số (như hàm truyền transferFcn, số nơ-ron ẩn, hệ số spread hoặc learning_rate) để theo dõi sự thay đổi trên đồ thị đầu ra.

5. Có tài liệu và dữ liệu bổ trợ nào kèm theo không?

Giáo trình đi kèm các đoạn mã nguồn MATLAB được chuẩn hóa, tệp dữ liệu thực nghiệm công nghiệp data2.mat (trong gói data2.zip) và hàm phát sinh dữ liệu hàm số phi tuyến data_generator().


Kết luận

Giáo trình Neural Networks: MATLAB examples của tác giả Primož Potočnik là một tài liệu học tập thực hành có cấu trúc chặt chẽ, thể hiện mối liên kết trực tiếp giữa lý thuyết mạng nơ-ron nhân tạo và kỹ năng lập trình mô phỏng trên MATLAB.

Lộ trình học tập đề xuất theo giáo trình gồm 5 giai đoạn:

  1. Nắm vững cơ chế tính toán nơ-ron đơn và cấu hình mạng cơ bản (nn02).
  2. Thực hành phân loại tuyến tính và lọc tín hiệu thích nghi với Perceptron và ADALINE (nn03).
  3. Làm chủ mạng nhiều tầng MLP cho bài toán phi tuyến và chẩn đoán lỗi công nghiệp (nn04).
  4. Ứng dụng mạng hồi quy NAR trong mô hình hóa và dự báo chuỗi thời gian hỗn loạn (nn05).
  5. Khảo sát mạng hàm cơ sở xuyên tâm RBFN, mạng tự tổ chức SOM và kỹ thuật giảm chiều dữ liệu PCA (nn06nn08).

Nguồn tài nguyên đi kèm bao gồm bộ dữ liệu thực nghiệm data2.mat và các kịch bản thực thi được công bố bởi Phòng thí nghiệm Hiệp đồng học (LASIN), Đại học Ljubljana.