CHƯƠNG II: THIẾT KẾ MẠNG NEURON HỖ TRỢ CHẨN ĐOÁN BỆNH RỐI LOẠN NHỊP TIM SỬ DỤNG CÔNG CỤ NEURON NETWORK TOOLBOX
2.1. Giới thiệu phần mềm matlab và công cụ neuron network toolbox
2.1.1. Khái niệm về Matlab
Matlab viết tắt từ "Matrix Laboratory", đƣợc Cleve Moler phát minh vào cuối thập niên 1970, và sau đó là chủ nhiệm khoa máy tính tại Đại học New Mexico. Là phần mềm cung cấp môi trường tính toán số và lập trình do công ty MathWorks thiết
kế MATLAB cho phép tính toán với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. Với thƣ viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật.
2.1.2. Cấu trúc
MATLAB gồm 5 phần chính:
- Development Environment: là một bộ các công cụ giúp ta sử dụng các hàm và tập tin của MATLAB; bao gồm: MATLAB desktop, Command Window, a command history, an editor, debugger, browsers for viewing help, the workspace, files, the search path.
- MATLAB Mathematical Function Library: tập hợp các hàm toán học nhƣ sum,sine, số học,....
- MATLAB Language (scritp): ngôn ngữ lập trình bậc cao.
- Graphics: các công cụ giúp hiển thị dữ liệu dưới dạng đồ thị, ngoài ra còn cho phép xây dựng giao diện đồ họa.
- MATLAB Application Program Interface: bộ thƣ viện cho phép ta sử dụng các chức năng tính toán của MATLAB trên ngôn ngữ lập trình C hay FORTRAN.
2.1.3. Đặc điểm của Matlab
- Là một ngôn ngữ cấp cao cho tính toán số, mô hình hóa mô phỏng và phát triển ứng dụng.
- Cung cấp môi trường tương tác thử nghiệm lặp đi lặp lại, thiết kế và giải quyết vấn đề.
12
GVHD: PGS.TS Huỳnh Lương Nghĩa SVTH: Đinh Văn Quang
- Cung cấp thƣ viện lớn các hàm toán học thuộc đại số tuyến tính, thống kê, phân tích Fourier, lọc, tối ưu hóa và giải phương trình vi phân thường.
- Giao diện lập trình MATLAB cung cấp công cụ phát triển cải thiện chất lƣợng
mã bảo trì và tối đa hóa hiệu suất.
- Cung cấp các công cụ để xây dựng các ứng dụng với giao diện đồ họa tùy chỉnh.
- Thuận tiện cho việc tích hợp các thuật toán MATLAB với các ứng dụng bên ngoài và các ngôn ngữ nhƣ C, Java, .NET và Microsoft Excel.
2.1.4. Khả năng ứng dụng của Matlab
MATLAB là một bộ chương trình phần mềm lớn dành cho tính toán kỹ thuật. Có thể dùng MATLAB để xử lý:
- Ma trận và Mảng
- Vẽ 2-D và 3-D và đồ họa
- Đại số tuyến tính
- Chức năng phi tuyến tính
- Thống kê
- Phân tích dữ liệu
- Tính toán số học
- Hội nhập
- Xấp xỉ đường cong
Các ngành nghề kỹ thuật đƣợc Matlab hỗ trợ đắc lực:
- Xử lý tín hiệu và Truyền thông
- Hình ảnh và Video Processing
- Hệ thống kiểm soát
- Kiểm tra và đo lường
- Tính toán Tài chính
- Tin Sinh Học
2.1.5. Giới thiệu công cụ Neuron Network Toolbox trong phần mềm Matlab
Học máy nói chung hay Deep Learning nói riêng hiện nay đang là một trong những ngành nóng nhất trong bộ môn khoa học máy tính (Computer science).
13
GVHD: PGS.TS Huỳnh Lương Nghĩa SVTH: Đinh Văn Quang
Deep Learning Toolbox ™ (trước đây là Neuron Network Toolbox ™) cung cấp một khung cơ sở để thiết kế và triển khai các mạng thần kinh sâu với các thuật toán,
mô hình được xử lý trước và các ứng dụng. Deep learning là một kỹ thuật máy học, học các tính năng và nhiệm vụ trực tiếp từ dữ liệu. Dữ liệu này có thể bao gồm hình ảnh, văn bản hoặc âm thanh.
Deep Learning là một một phương pháp của học máy (Machine Learning). Khi phát triển một ứng dụng Deep Learning phải tiến hành các bước như sau [4]:
1.Đặt bài toán (Problem definition): Đây là công đoạn quan trọng nhất, đòi hỏi nhiều kiến thức và kinh nghiệm. Với những vấn đề đơn giản, chỉ cần một lớp Deep Learning (hay một model) là đủ để giải quyết. Tuy nhiên với những bài toán phức tạp cần nhiều lớp Deep Learning để giải quyết (nhận dữ liệu ở đầu vào, chạy ra kết quả ở đầu ra). Ở đây chúng ta sẽ thiết kế cấu trúc của mạng. Sau đấy thông qua quá trình luyện để thay đổi tính chất bên trong mạng.
2.Thu thập dữ liệu (Data Gathering): Sau khi đã định nghĩa vấn đề xong, chúng ta
sẽ bắt đầu tiến hành thu thập nguồn dữ liệu tương ứng.
3.Lọc dữ liệu (Data Parsing): Quá trình luyện ở bước tiếp theo yêu cầu cặp nhãn
dữ liệu (data-label) phải đúng nhất có thể. Vì thế dữ liệu sau khi thu thập phải đƣợc lọc để loại bỏ nhiễu (noise), bảo đảm dữ liệu sạch (clean) nhất có thể. Dữ liệu sau khi lọc xong sẽ được chia ra làm 3 phần: train, validation và test. Tỉ lệ thường dùng khi chia là 7-1,5-1,5. Đến bước này chúng ta đã có một tập dữ liệu dataset hoàn chỉnh.
4.Training (luyện mô hình): Quá trình luyện là bước nhồi liên tục cặp data-label vào trong model, để thay đổi tính chất bên trong, hướng đầu ra của model đến label mong muốn. Quá trình này có thể kéo dài từ vài tiếng đến vài tuần. Để rút ngắn thời gian training, quá trình tính toán (train) sẽ đƣợc phân luồng trên nhiều GPUs.
5.Validation(xác thực): Sau khi luyện xong sẽ tiến hành bước tiếp theo là validation để xác thực và đánh giá lại mô hình và dừng luyện lại khi model ngừng cải thiện.
6.Testing (kiểm tra độ chính xác): Sau khi luyện xong chúng ta sẽ tiến hành bước cuối cùng là testing để tính độ chính xác của model. Đây là bước đơn giản nhất, chỉ cần nhồi test data vào model sau đó so sánh giữa label ở đầu ra và label vốn có của test data.
14
GVHD: PGS.TS Huỳnh Lương Nghĩa SVTH: Đinh Văn Quang
7.Deploying (triển khai trên sản phẩm): Model đã luyện xong chúng ta có thể cài đặt chạy trên các thiết bị đầu cuối. Ví dụ nhƣ các board, mạch nhúng, mobile, FPGA,
…