Khái quát về mạng nơron nhân tạo
Mạng nơron sinh học
Bộ não con người chứa khoảng 10^11 nơron, kết nối với nhau qua khoảng 10^15 đường truyền, mỗi đường dài hơn một mét Những nơron này không chỉ có nhiều đặc điểm chung với các tế bào khác trong cơ thể mà còn sở hữu khả năng đặc biệt trong việc nhận, xử lý và truyền tín hiệu điện hóa Các đường mòn nơron này tạo thành hệ thống giao tiếp phức tạp của bộ não, cho phép nó hoạt động hiệu quả.
Hình 1.1: Cấu trúc của một nơron sinh học điển hình
Mỗi nơron sinh học có 3 thành phần cơ bản:
Các nhánh vào hình cây ( dendrites)
Thân tế bào (cell body)
Các nhánh hình cây truyền tín hiệu đến thân tế bào, nơi tín hiệu được tổng hợp và xử lý Sau đó, sợi trục sẽ truyền tín hiệu từ thân tế bào này sang nơron khác.
Liên kết giữa sợi trục của nơron với nhánh hình cây của nơron khác được gọi là synapse, và độ nhạy của mỗi synapse phụ thuộc vào quá trình hóa học phức tạp Một số cấu trúc nơron được hình thành trước khi sinh, trong khi những cấu trúc khác phát triển qua quá trình học tập Trong suốt cuộc đời, nơron hình thành các liên kết mới và loại bỏ những liên kết cũ Nơron sinh học hoạt động bằng cách nhận tín hiệu đầu vào, xử lý chúng và tạo ra tín hiệu đầu ra, tín hiệu này sau đó trở thành đầu vào cho các nơron khác Dựa trên các hiểu biết này, con người đã phát triển nơron nhân tạo với hy vọng tạo ra mô hình có khả năng tương tự như bộ não.
Mạng nơron nhân tạo
Mạng nơron nhân tạo là hệ thống bao gồm nhiều tế bào thần kinh đơn giản và liên kết với nhau, tương tự như bộ não con người Các tế bào thần kinh này giao tiếp qua tín hiệu từ tế bào thần kinh khác, nhận tín hiệu đầu vào qua các kết nối của chúng Tín hiệu đầu ra được truyền đi qua các tế bào thần kinh kết nối, tương ứng với các sợi thần kinh sinh học.
Mạng nơron nhân tạo (Artificial Neural Network - ANN) là mô hình xử lý thông tin mô phỏng cách thức hoạt động của các hệ nơron sinh học Nó bao gồm nhiều phần tử xử lý (nơron) được kết nối qua các trọng số liên kết, hoạt động như một thể thống nhất để giải quyết các vấn đề cụ thể.
Mạng nơron nhân tạo được cấu hình cho các ứng dụng như nhận dạng mẫu và phân loại dữ liệu thông qua quá trình học từ tập mẫu huấn luyện Quá trình học này chủ yếu là việc điều chỉnh trọng số liên kết giữa các nơron nhằm tối thiểu hóa giá trị hàm lỗi Lịch sử phát triển của mạng nơron nhân tạo đã chứng kiến nhiều bước tiến quan trọng trong việc cải thiện hiệu suất và khả năng ứng dụng của chúng.
Nghiên cứu về bộ não con người đã diễn ra hàng nghìn năm, và với sự tiến bộ của khoa học kỹ thuật, đặc biệt là trong lĩnh vực điện tử hiện đại, việc phát triển các nơron nhân tạo trở nên tự nhiên hơn bao giờ hết.
Sự kiện quan trọng đầu tiên trong sự phát triển của mạng nơron nhân tạo diễn ra vào năm 1943, khi nhà thần kinh học Warren McCulloch và nhà toán học Walter Pitts công bố bài báo mô tả cách thức hoạt động của các nơron Họ cũng đã tiến hành xây dựng một mạng nơron đơn, đánh dấu bước khởi đầu cho lĩnh vực trí tuệ nhân tạo.
GVHD: PGSTS Huỳnh Lương Nghĩa 3 SVTH: Đoàn Thị Bích Ngọc Các nơron trong mô hình này được coi như thiết bị nhị phân với ngưỡng cố định, cho phép chúng hoạt động như các mạch điện Kết quả của các mô hình này tạo ra các hàm logic đơn giản.
Tiếp bước các nghiên cứu này, năm 1949 Donald Hebb cho xuất bản cuốn sách
“Organization of Behavior” Cuốn sách đã chỉ ra rằng các nơron nhân tạo sẽ trở nên hiệu quả hơn sau mỗi lần chúng được sử dụng
Những tiến bộ của máy tính vào đầu những năm 1950 đã biến lý thuyết về cách con người suy nghĩ thành hiện thực Nathanial Rochester, sau nhiều năm làm việc tại IBM, đã có những nỗ lực đầu tiên trong việc mô phỏng mạng nơron Trong giai đoạn này, tính toán truyền thống đã đạt được nhiều thành công, trong khi nghiên cứu về nơron vẫn còn ở giai đoạn sơ khai Tuy nhiên, những người ủng hộ triết lý này vẫn tiếp tục phát triển.
“thinking machines” (các máy biết suy nghĩ) vẫn tiếp tục bảo vệ cho lập trường của mình
Năm 1956, dự án Dartmouth đã khởi đầu một kỷ nguyên mới cho trí tuệ nhân tạo (AI) và mạng nơron, thúc đẩy sự quan tâm của các nhà khoa học đối với AI và quá trình xử lý thông tin đơn giản của mạng nơron trong não người.
Trong những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề xuất mô phỏng các nơron đơn giản bằng rơle điện áp hoặc đèn chân không Nhà sinh học Frank Rosenblatt cũng bắt đầu nghiên cứu về Perceptron, dẫn đến việc cài đặt Perceptron trong phần cứng máy tính, trở thành mạng nơron lâu đời nhất còn được sử dụng Perceptron một tầng rất hữu ích trong việc phân loại các đầu vào liên tục vào hai lớp, bằng cách tính tổng có trọng số các đầu vào, trừ đi ngưỡng và cho ra một trong hai giá trị mong muốn Tuy nhiên, Perceptron còn nhiều hạn chế, được chỉ ra trong cuốn sách của Marvin Minsky và Seymour Papert năm 1969.
In 1959, Bernard Widrow and Marcian Hoff from Stanford University developed the ADALINE (ADAptive LINear Elements) and MADALINE (Multiple ADAptive LINear Elements) models These models utilized the Least-Mean-Squares (LMS) learning rule MADALINE was the first neural network applied to solve a real-world problem, functioning as an adaptive filter capable of eliminating unwanted signals.
GVHD: PGSTS Huỳnh Lương Nghĩa 4 SVTH: Đoàn Thị Bích Ngọc đã nghiên cứu về tín hiệu dội lại trên đường dây điện thoại Hiện nay, mạng nơron này vẫn được áp dụng rộng rãi trong các ứng dụng thương mại.
Năm 1974, Paul Werbos đã phát triển phương pháp học lan truyền ngược (back-propagation), nhưng phải mất vài năm để phương pháp này trở nên phổ biến Hiện nay, các mạng lan truyền ngược được biết đến và áp dụng rộng rãi nhất trong lĩnh vực học máy.
Những thành công ban đầu của mạng nơron đã dẫn đến sự cường điệu về khả năng của chúng, gây ra những lo ngại không cần thiết về việc máy móc có thể thay thế hoàn toàn con người Sự lo lắng này đã ảnh hưởng tiêu cực đến sự phát triển khoa học và kỹ thuật, khiến nhiều người phản đối nghiên cứu về mạng nơron Thời kỳ tạm lắng này kéo dài cho đến năm 1981.
Năm 1982, John Hopfield đã gửi một bài báo tới Viện Khoa học Quốc gia, trong đó ông trình bày một phân tích toán học rõ ràng về cách thức hoạt động của mạng nơron và các ứng dụng của chúng Cống hiến của ông không chỉ nằm ở giá trị khoa học của nghiên cứu mà còn thúc đẩy sự quan tâm trở lại đối với lĩnh vực mạng nơron.
Trong thời gian gần đây, một hội nghị giữa Hoa Kỳ và Nhật Bản đã diễn ra tại Kyoto, tập trung vào hợp tác và cạnh tranh trong lĩnh vực mạng nơron Sau hội nghị, Nhật Bản công bố những nỗ lực phát triển máy tính thế hệ thứ năm, khiến các tạp chí tại Hoa Kỳ bày tỏ lo ngại về khả năng tụt hậu của nước này trong công nghệ Để đối phó, Hoa Kỳ đã nhanh chóng huy động quỹ tài trợ cho nghiên cứu và ứng dụng mạng nơron.
Y tế với mạng nơron nhân tạo
Các lĩnh vực y tế sử dụng mạng nơron nhân tạo
Việc áp dụng trí thông minh nhân tạo trong các thiết bị khoa học đã được nghiên cứu trong thời gian dài Cùng với sự phát triển của công nghệ máy tính, các mô hình phức tạp về chức năng thần kinh và hoạt động của cụm thần kinh đã được hình thành Các mô hình toán học, được phát triển từ 1982 đến 1987 dựa trên công trình của McLelland, Rummelhart, Hopfield và Kohonen, đã có ứng dụng thực tiễn Tại Hungary, T Roska và cộng sự đã đạt được những thành tựu nổi bật trong lĩnh vực tế bào mạng neuron thần kinh Mạng neuron thần kinh có thể được ứng dụng trong y học qua bốn lĩnh vực chính: mô hình hóa, xử lý tín hiệu điện sinh học, chẩn đoán và tiên lượng.
Bảng 1.2: Các lĩnh vực của mạng nơron trong Y tế
Mô hình hóa Mô phỏng và mô hình hóa các chức năng của não và các cơ quan thần kinh
Xử lý tín hiệu điện sinh học Lọc và đánh giá tín hiệu sinh học
Hệ thống kiểm soát và kiểm tra thiết bị thông minh nhân tạo hoạt động dựa trên phản ứng của các hệ thống sinh học hoặc kỹ thuật đối với bất kỳ tín hiệu nào.
Chẩn đoán chính xác hơn thông qua việc giải thích các kết quả vật lý và sử dụng công cụ thích hợp Mạng neuron thần kinh hỗ trợ trong việc tiên lượng bằng cách phân tích các tham số của quá trình hồi cứu.
GVHD: PGSTS Huỳnh Lương Nghĩa 11 SVTH: Đoàn Thị Bích Ngọc
Các ứng dụng mạng nơron nhân tạo trong Y tế
Giữa những năm 1990 và 1997 ứng dụng của mạng nơron được giới thiệu trong gần 2000 bài báo Bảng 1.3 đưa ra một cái nhìn tổng quan về các ngành học chính [4]
Bảng 1.3: Tóm tắt các ứng dụng của mạng neuron thần kinh trong y học
Ngành học Lĩnh vực ưng dụng Nghiên cứu điển hình
Tim mạch Chẩn đoán, tiên lượng - Sử dụng mạng neuron thần kinh nhân tạo để phân tích mức độ enzyme huyết thanh chẩn đoán nhồi máu cơ tim
- Nhận dạng điện cực khử rung tim
- Phân tích sâu chuyển động tim để dự đoán sự sống còn của con người
- Sử dụng mạng neuron thần kinh trong dự đoán nguy cơ bệnh động mạch vành
Phân tíc điện tâm đồ (ECG)
Chẩn đoán - Sử dụng mạng neuron thần kinh để phân loại các phân đoạn ECG ST-T
- Thay đổi nhịp tim và huyết áp khi tập luyện nặng và tập luyện quá sức ở nữ vận động viên
- Sử dụng các mạng thần kinh nhân tạo trong logic xác định để chẩn đoán ECG của bệnh nhân nhồi máu cơ tim
Sự tiên đoán - Dự đoán bằng mạng neuron thần kinh nhân tạo về thời gian lưu trú trong một đơn vị chăm sóc sau mạch vành
- Tích hợp giám sát các báo động thông minh trong gây mê
- Hệ thống tích hợp phân loại thống kê mạng neuron thần kinh để phân loại mô bệnh học của tổn thương tuyến tiền liệt
- Đánh giá đau ngực ở khoa cấp cứu
GVHD: PGSTS Huỳnh Lương Nghĩa 12 SVTH: Đoàn Thị Bích Ngọc
Tiêu hóa Sự tiên đoán - Dự đoán tiên lượng sớm cho bệnh nhân gan bị ung thư biểu mô tế bào gan
Phổi học Chẩn đoán - Các nốt phổi đơn độc: xác định khả năng ác tính với phân tích mạng neuron thần kinh
- Chẩn đoán thuyên tắc phổi cấp tính
Ung thư Chẩn đoán, tiên lượng - Baker và cộng sự đã đánh giá bằng mạng thần kinh về các tham số của hệ thống mã chuẩn hóa BI-RADS
- Phân tích mạng neuron thần kinh của các yếu tố mô học định lượng để dự đoán giai đoạn bệnh lý
- Mạng neuron thần kinh nhân tạo trong chụp nhũ ảnh: ứng dụng vào việc ra quyết định trong chẩn đoán ung thư vú
Nhi khoa Chẩn đoán - Phân loại giấc ngủ ở trẻ sơ sinh
Xử lý tín hiệu, mô hình hóa
Phân loại bệnh Alzheimer và mất trí nhớ do phát xạ đơn photon dựa trên mạng neuron thần kinh sử dụng dữ liệu hình ảnh chụp cắt lớp từ não Nghiên cứu này nhằm cải thiện khả năng chẩn đoán và phân loại các dạng mất trí nhớ thông qua phân tích hình ảnh não bộ Việc áp dụng công nghệ mạng neuron thần kinh giúp nâng cao độ chính xác trong việc nhận diện các dấu hiệu bệnh lý.
- Guigo và cộng sự nghiên cứu mô hình hóa quá trình học tập của vỏ não trước trán
Phân tích điện não đồ (EEG)
Chẩn đoán - Tự động phát hiện đột biến điện não đồ bằng cách sử dụng mạng thần kinh nhân tạo
Xử lý tín hiệu, mô hình hóa
- Mạng kết nối trong mô hình hệ thống thính giác
- Thu nhận âm thanh lời nói, hợp tác và hiệu ứng tốc độ trong một mô hình mạng neuron thần kinh của việc tạo lời nói
- Mô phỏng và kích thích mạng lưới cấy ghép tế bào thần kinh của ốc tai điện tử
GVHD: PGSTS Huỳnh Lương Nghĩa 13 SVTH: Đoàn Thị Bích Ngọc
Sản phụ khoa Sự tiên đoán - Benesova và cộng sự sử dụng mạng thần kinh để xác định tính gây quái thai của thuốc điều trị chu sinh
Lapeer và nhóm nghiên cứu của ông đã sử dụng mạng neuron thần kinh để dự đoán các yếu tố ảnh hưởng đến cân nặng khi sinh, tập trung vào việc xác định các thông số chu sinh quan trọng.
Nhãn khoa Xử lý tín hiệu, mô hình hóa
- Maeda và cộng sự áp dụng mạng neuron thần kinh để giải thích mô hình quay phim trong chẩn đoán hình dạng bất thường của giác mạc
Phóng xạ học Xử lý tín hiệu
- Phân đoạn hình ảnh siêu âm của tuyến tiền liệt bằng cách sử dụng mạng neuron thần kinh
Bệnh lý Chẩn đoán, tiên lượng - Phân loại hạt nhân của ung thư biểu mô tuyến vú bằng phân tích hình ảnh
- Sử dụng mạng neuron thần kinh để phân biệt ung thư biểu mô ống với bệnh xơ cứng
Việc áp dụng bài học từ chẩn đoán và sàng lọc trong xử lý mạng neuron thần kinh của phết tế bào cổ tử cung có khả năng giảm thiểu độ biến thiên trong chẩn đoán và nâng cao hiệu quả sàng lọc.
Errington và Graham đã phát triển một mạng neuron thần kinh để phân loại nhiễm sắc thể, sử dụng phương pháp tiền xử lý dữ liệu nhằm xác định hình dạng, kích thước và dải nhiễm sắc thể.
Burstein và các cộng sự đã phát triển một mô hình mạng thần kinh nhằm nghiên cứu toàn bộ quá trình tạo phôi trong không gian và thời gian, đồng thời hình thành mô hình di truyền ở Drosophila.
GVHD: PGSTS Huỳnh Lương Nghĩa 14 SVTH: Đoàn Thị Bích Ngọc
Xử lý tín hiệu, mô hình hóa
- Sử dụng tiền xử lý dữ liệu và perception một lớp để phân tích dữ liệu phòng thí nghiệm
- Phân tích mạng neuron thần kinh của điện di huyết thanh
Hóa sinh Chuỗi Protein, cấu trúc
- ProCANS (Phân loại protein nhân tạo Hệ thống mạng nơ-ron) đã được thiết kế cho phân loại siêu protein của protein.
THIẾT KẾ MẠNG NƠRON HỖ TRỢ CHẨN ĐOÁN BỆNH
Tại sao sử dụng phần mềm Matlab
2.1.1 Giới thiệu phần mềm 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à hiện là phần mềm do công ty MathWorks thiết kế, cung cấp môi trường tính toán số và lập trình Phần mềm này cho phép người dùng thực hiện các phép toán với ma trận, vẽ đồ thị hàm số, thực hiện thuật toán, tạo giao diện người dùng và kết nối với các chương trình viết bằng nhiều ngôn ngữ lập trình khác Với thư viện Toolbox, MATLAB hỗ trợ mô phỏng và thực nghiệm nhiều mô hình trong thực tế và kỹ thuật.
The Development Environment is a comprehensive set of tools designed to facilitate the use of MATLAB functions and files It includes essential components such as the MATLAB desktop, Command Window, command history, editor, debugger, and browsers for accessing help Additionally, it features a workspace, file management, and a search path for efficient navigation and organization.
- MATLAB Mathematical Function Library: tập hợp các hàm tóan 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 nó 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 trong chương trình C hay FORTRAN
MATLAB là một phần mềm mạnh mẽ dành cho tính toán kỹ thuật, hỗ trợ hiệu quả cho nhiều ngành nghề kỹ thuật khác nhau.
- Xử lý tín hiệu và Truyền thông
- Hình ảnh và Video Processing
- Kiểm tra và đo lường
GVHD: PGSTS Huỳnh Lương Nghĩa 16 SVTH: Đoàn Thị Bích Ngọc
2.1.2 Lý do chọn phần mềm Matlab để thiết kế mạng Để sử dụng bất kỳ một phần mềm nào, trước hết chúng ta phải tìm hiểu về những ưu điểm mà phần mềm đó đem lại có phù hợp mục đích sử dụng hay không? Trong đồ án này, em đã chọn sử dụng phần mềm Matlab với những lý do sau:
- Những phần mềm chuyên nghiệp sinh viên chưa có đủ điều kiện để tiếp cận sử dụng
Matlab là phần mềm đáng tin cậy và tiện dụng, được sử dụng phổ biến trong môi trường học đường Phần mềm này rất hữu ích cho học sinh, sinh viên, với các công cụ hỗ trợ phân tích, thiết kế và mô phỏng mô hình một cách hiệu quả.
2.1.3 Giới thiệu công cụ Neural Network Toolbox của Matlab
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)
Deep Learning Toolbox ™ (trước đây là Neural Network Toolbox ™) cung cấp một nền tảng mạnh mẽ cho việc thiết kế và triển khai các mạng thần kinh sâu, bao gồm các thuật toán, mô hình đã được xử lý trước và ứng dụng đa dạng Kỹ thuật học sâu này cho phép máy tính học các đặc trưng và nhiệm vụ trực tiếp từ dữ liệu, bao gồm hình ảnh, văn bản và âm thanh.
Deep Learning là một ngành nhỏ của Machine Learning Khi phát triển một ứng dụng sử dụng Deep Learning phải đi qua những bước như sau:
Đặt bài toán là công đoạn quan trọng nhất trong quá trình phát triển mô hình, yêu cầu nhiều kiến thức và kinh nghiệm Đối với những vấn đề đơn giản, một lớp Deep Learning có thể đủ để giải quyết, nhưng với những bài toán phức tạp, cần nhiều lớp Deep Learning để xử lý dữ liệu đầu vào và tạo ra kết quả đầu ra Trong giai đoạn này, chúng ta thiết kế cấu trúc của mạng và tiến hành quá trình training để điều chỉnh các tham số bên trong mô hình.
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
GVHD: PGSTS Huỳnh Lương Nghĩa 17 SVTH: Đoàn Thị Bích Ngọc
Lọc dữ liệu (Data Parsing) là bước quan trọng để đảm bảo cặp dữ liệu đầu vào và đầu ra (data-label) chính xác nhất có thể cho quá trình training Sau khi thu thập, dữ liệu cần được lọc để loại bỏ nhiễu (noise) và đảm bảo tính sạch (clean) Sau khi hoàn tất lọc, dữ liệu sẽ được chia thành ba phần: train, validation và test, với tỷ lệ thường dùng là 7-1,5-1,5 Như vậy, chúng ta đã có một tập dữ liệu dataset hoàn chỉnh cho các bước tiếp theo.
Quá trình luyện mô hình (training) là bước nhồi liên tục cặp data-label vào trong mô hình, nhằm điều chỉnh các thuộc tính bên trong và hướng đầu ra đến label mong muốn Thời gian training có thể kéo dài từ vài giờ đến vài tuần, và để rút ngắn thời gian này, quá trình tính toán sẽ được phân luồng trên nhiều GPU.
Sau khi hoàn thành quá trình huấn luyện, bước tiếp theo là xác nhận (validation) để đánh giá và kiểm tra lại mô hình đã được sử dụng Quá trình này tương tự như huấn luyện, nhưng số lượng dữ liệu gán nhãn được sử dụng sẽ ít hơn rất nhiều.
Kiểm tra độ chính xác của mô hình là bước cuối cùng trong quá trình phát triển Đây là một quy trình đơn giản, chỉ cần đưa dữ liệu kiểm tra vào mô hình và so sánh nhãn đầu ra với nhãn gốc của dữ liệu kiểm tra.
Triển khai mô hình đã được huấn luyện trên các thiết bị đầu cuối như board mạch, mạch nhúng, điện thoại di động và FPGA là bước quan trọng trong quy trình phát triển sản phẩm.
Xây dựng cơ sở dữ liệu thiết kế mạng nơron
2.2.1 Chọn cơ sở dữ liệu a) Đặt bài toán về cơ sở dữ liệu
Chẩn đoán bệnh là một nhiệm vụ đầy thách thức, yêu cầu phát hiện căn bệnh của bệnh nhân dựa trên các triệu chứng Quá trình này phức tạp do triệu chứng không luôn cụ thể cho một bệnh và thường có sự chồng chéo Lỗi do yếu tố con người có thể xảy ra trong quá trình chẩn đoán Để giảm thiểu sai sót này, y học hiện đại đã áp dụng nhiều công nghệ, trong đó có các hệ thống hỗ trợ quyết định lâm sàng, giúp bác sĩ trong việc chẩn đoán bệnh cho bệnh nhân.
Hiện nay, việc sử dụng kỹ thuật nhận dạng mẫu bằng mạng nơron trong chẩn đoán bệnh lý đang ngày càng phổ biến Đầu vào của mạng nơron thường là các triệu chứng bệnh lý được ghi nhận.
GVHD: PGSTS Huỳnh Lương Nghĩa 18 SVTH: Đoàn Thị Bích Ngọc Các mạng học sâu có thể đạt được kết quả chẩn đoán chính xác, nhưng khi đầu vào quá lớn sẽ làm giảm độ chính xác và kéo dài thời gian xử lý Để khắc phục vấn đề này, nhiều giải pháp đã được đưa ra nhằm giảm kích thước đầu vào, bao gồm phương pháp loại bỏ từng yếu tố và lựa chọn tính năng từ SPSS.
Để nâng cao chất lượng của các mạng chẩn đoán, đồ án này áp dụng phương pháp trọng số cho các đầu vào tương ứng với các cấp cấu trúc của cơ thể Các thiết bị đo thông số y sinh sẽ được phân loại theo 5 cấp cấu trúc, như trình bày trong bảng dưới đây [11, 12, 13].
Bảng 2.1: Các cấp cấu trúc của cơ thể
Mức cấu trúc Phương pháp chẩn đoán
1 Cấp cơ thể Mạch đập, nhiệt độ, huyết áp, Giáo dục
2 Cấp cơ quan chức năng
Chẩn đoán chức năng (ECG, EEG, EMG,…)
4 Cấp độ tế bào: các loại tế bào
CT, MRI, PET SPECT, kính hiển vi nano, các phương pháp phân tích xét nghiệm
5 Cấp độ phân tử sinh học
Giá trị của các triệu chứng bệnh lý khác nhau tùy thuộc vào mức độ cấu trúc của chúng; cụ thể, triệu chứng có cấu trúc nhỏ hơn sẽ có giá trị chẩn đoán cao hơn Để kiểm tra giả thuyết này, chúng tôi sẽ xây dựng một mạng nơ-ron nhân tạo (ANN) với các đầu vào là các triệu chứng bệnh lý được ghi nhận qua nhiều phương thức khác nhau.
GVHD: PGSTS Huỳnh Lương Nghĩa 19 SVTH: Đoàn Thị Bích Ngọc đề cập đến các mức cấu trúc khác nhau của cơ thể, với hệ số trọng lượng được tăng cường theo chiều giảm của mức độ cấu trúc.
Mối quan hệ giữa các mức cấu trúc của cơ thể là phi tuyến, do đó, mạng neuron thần kinh chẩn đoán phi tuyến cần được phát triển với các tham số đầu vào đại diện cho 5 cấp cấu trúc và đầu ra là các bệnh được chẩn đoán Để đảm bảo tính khoa học và đơn giản trong việc xây dựng và khảo sát, chúng ta sử dụng công cụ Nhận diện Mẫu Mạng Nơ-ron trong phần mềm MATLAB.
Trong nghiên cứu này, chúng tôi sử dụng dữ liệu về bệnh ung thư vú, được thu thập từ cơ sở dữ liệu trực tuyến của Đại học Wisconsin.
Tập cơ sở dữ liệu của bệnh ung thư vú được tạo ra bởi Tiến sĩ William H.Wolberg,
W Nick Street và Olvi L Mangasarian từ Đại học Wisconsin [5]
Kho dữ liệu gồm 9 thông số đặc trưng được tính toán và đo lường từ các đặc tính mô vú của bệnh nhân Cơ sở dữ liệu hiện có 669 mẫu.
357 mẫu là loại lành tính và 212 mẫu là loại ung thư ác tính
Cơ sở dữ liệu được dùng để luyện mạng có ký hiệu là Breast Cancer _Data Set gồm 2 ma trận cancerInputs và cancerTargets CancerInputs là một ma trận 9x669 và
CancerTarget is a 2x699 matrix This article explores the reasons for using the Breast Cancer Data Set, highlighting its significance in cancer research and analysis.
- Đây là một bộ dữ liệu phản ánh một cách đầy đủ nhất những yếu tố đặc trưng – triệu chứng của bệnh
- Hơn nữa, hiện nay ở Việt Nam chưa có những bộ dữ liệu cung cấp để phục vụ cho việc chẩn đoán như vậy
Chính vì những lý do trên bộ dữ liệu Breast Cancer _Data Set lại sẽ được sử dụng trong đồ án này
Ma trận CancerInputs và CancerTarget được biểu diễn như sau:
CancerInputs là một ma trận 9x699, trong đó xác định 9 thuộc tính của 699 sinh thiết:
1 Clump thickness – độ dày của nhóm, khối tế bào
GVHD: PGSTS Huỳnh Lương Nghĩa 20 SVTH: Đoàn Thị Bích Ngọc
2 Uniformity of cell size – độ đồng đều, đồng dạng của kích thước tế bào
3 Uniformity of cell shape - độ đồng đều, đồng dạng của hình dạng tế bào
4 Marginal Adhesion – độ bám dính mép viền
5 Single epithelial cell size - kích thước tế bào biểu mô đơn
6 Bare nuclei – hạt nhân cơ bản (không)
7 Bland chomatin - nhiễm sắc nhạt
8 Normal nucleoli – hạt nhỏ bình thường trong hạt nhân của tế bào
9 Mitoses – sự phân đôi tế bào
CancerTarget là một ma trận 2x699 trong đó mỗi cột biểu thị một danh mục chính xác với một trong hai phần tử 1 hoặc phần tử 2:
Phân tích cơ sở dữ liệu CancerInputs cho phép chúng ta phân loại các thuộc tính thành ba nhóm tương ứng với các mức cấu trúc: trên tế bào (khối tế bào), tế bào và dưới tế bào.
- Cấp trên tế bào : gồm thuộc tính 1 và 4
- Cấp tế bào : gồm thuộc tính 2, 3, 5, 9
- Cấp dưới tế bào: gồm thuộc tính 6, 7, 8
2.2.2 Chuẩn hóa cơ sở dữ liệu
Trong quá trình tạo cơ sở dữ liệu cho đào tạo mạng thần kinh, việc sử dụng dữ liệu mô tả tình trạng lâm sàng của bệnh nhân một cách chính xác là rất quan trọng Dữ liệu không cần thiết hoặc không chính xác có thể ảnh hưởng đến chẩn đoán bệnh Bác sĩ cần lựa chọn dữ liệu đặc trưng phù hợp, bao gồm thông tin về sức khỏe, kết quả phân tích sinh hóa, triệu chứng và các thông tin hỗ trợ chẩn đoán Tất cả dữ liệu này sẽ tạo thành mô hình đầu vào cho mạng thần kinh, và khả năng khái quát hóa mối quan hệ giữa triệu chứng và chẩn đoán phụ thuộc vào chất lượng của các mẫu đầu vào Do đó, cơ sở dữ liệu cần đủ số lượng mẫu đáng tin cậy để đảm bảo quá trình đào tạo mạng thần kinh có thể ước lượng được sự phụ thuộc ẩn trong tập dữ liệu.
GVHD: PGSTS Huỳnh Lương Nghĩa 21 SVTH: Đoàn Thị Bích Ngọc nghiên cứu và áp dụng kiến thức để tổng quát hóa các trường hợp chẩn đoán bệnh lý, bao gồm cả những trường hợp không có trong dữ liệu đào tạo Cơ sở dữ liệu được cấu trúc dưới dạng bảng hoặc ma trận, chứa thông tin về tình trạng sức khỏe và chẩn đoán của bệnh nhân.
Dữ liệu chuẩn hóa chẩn đoán bệnh nhân từ cơ sở dữ liệu đã được sử dụng để huấn luyện mạng thần kinh MLP, với các giá trị được chuẩn hóa trong khoảng (0, 1) Để đào tạo mạng thần kinh hiệu quả, dữ liệu cần được phân chia thành các bộ dữ liệu đào tạo, kiểm tra và xác thực, trong đó 70% dữ liệu được dùng cho đào tạo và 30% cho thử nghiệm Các bộ dữ liệu thử nghiệm được chia theo tỷ lệ tương ứng với phần kiểm tra và xác thực, đảm bảo tính độc lập giữa các kết quả xét nghiệm.
Thiết kế mạng nơron hỗ trợ chẩn đoán
2.3.1 Lựa chọn cấu trúc mạng
Trong đồ án này, chúng tôi sử dụng phần mềm Matlab để thiết kế một mạng nơron nhằm hỗ trợ chẩn đoán ung thư vú Mục tiêu là tạo ra một mạng nơron có độ chính xác cao, có khả năng xử lý một lượng dữ liệu lớn và đảm bảo thời gian hội tụ trong giới hạn cho phép.
Việc lựa chọn cơ sở dữ liệu và phương pháp luyện mạng là rất quan trọng để tối ưu hóa giải quyết bài toán Trong chẩn đoán y tế, mạng nơron nhân tạo đa lớp (MLP) thường được sử dụng, đặc biệt trong việc hỗ trợ chẩn đoán bệnh Ung thư vú MLP là mạng có n (n≥2) tầng, bao gồm một tầng đầu ra và (n-1) tầng ẩn, với tầng đầu vào thường không được tính đến.
GVHD: PGSTS Huỳnh Lương Nghĩa 22 SVTH: Đoàn Thị Bích Ngọc
Hình 2.1: Mô hình mạng MLP
Mô hình mạng gồm có 3 lớp (Hình 2.1):
- Lớp vào (Input Layer) – số node của lớp vào là số thuộc tính của đối tượng cần phân lớp
- Lớp ra (Output Layer) – Số node ra là số đặc điểm cần hướng tới của đối tượng (giá trị ra cần hướng đến – học có giám sát)
Lớp ẩn trong mạng nơ-ron có số lượng node không xác định trước, thường phụ thuộc vào kinh nghiệm của người thiết kế Nếu số lượng lớp ẩn quá nhiều, mạng sẽ trở nên cồng kềnh và quá trình học sẽ chậm lại Ngược lại, nếu số lớp ẩn quá ít, mạng sẽ không đạt được độ chính xác cao trong việc học.
Các nơron trong lớp ẩn được kết nối hoàn toàn với tất cả nơron trong lớp đầu ra, và mỗi kết nối giữa hai nơron ở các lớp khác nhau có một trọng số mạng (weight) Những trọng số này là các giá trị ẩn mà mạng cần học để từ các giá trị đầu vào, mạng có thể tạo ra kết quả gần đúng với đầu ra mong muốn của mẫu học.
Theo lý thuyết, không có lý do chính đáng để sử dụng mạng nơ-ron với hơn hai lớp ẩn Việc hạn chế số lượng lớp ẩn là hợp lý vì nó giúp đơn giản hóa mô hình, giảm thiểu nguy cơ overfitting và cải thiện khả năng tổng quát của mạng.
Hầu hết các thuật toán huấn luyện cho mạng nơron truyền thẳng đều dựa vào phương pháp gradient Tuy nhiên, việc thêm các lớp vào mạng sẽ dẫn đến việc lan truyền lỗi, khiến cho vector gradient trở nên không ổn định.
- Việc huấn luyện mạng thường rất chậm khi mà số lớp ẩn sử dụng càng nhiều
Số nơron trong lớp ẩn:
GVHD: PGSTS Huỳnh Lương Nghĩa 23 SVTH: Đoàn Thị Bích Ngọc
Số lượng nơron trong lớp ẩn là một yếu tố quan trọng trong thiết kế mạng Số lượng tối ưu của các đơn vị ẩn phụ thuộc vào nhiều yếu tố, bao gồm số đầu vào và đầu ra của mạng, kích thước tập mẫu, mức độ nhiễu trong dữ liệu, độ phức tạp của hàm lỗi, kiến trúc mạng và thuật toán huấn luyện được sử dụng.
Có rất nhiều cách để lựa chọn số đơn vị trong các lớp ẩn, chẳng hạn như: m = 2(𝑡+𝑧)
3 m < 2t m = √𝑡 𝑧 Trong đó: m: số nơron lớp ẩn t: kích thước đầu vào z: kích thước đầu ra
Một mạng chuyển tiếp hai lớp, với 9 lớp tế bào nơron đầu vào, lớp ẩn sigmoid và
2 lớp tế bào nơron đầu ra, có thể phân loại các vectơ tùy ý, cho đủ tế bào thần kinh trong lớp ẩn 10 nơron (Hình 2.1) và lớp ẩn 15 nơron (Hình 2.2)
Hình 2.2: Mạng chuyển tiếp hai lớp với lớp ẩn 10 nơron
Hình 2.3: Mạng chuyển tiếp hai lớp với lớp ẩn 15 nơron
GVHD: PGSTS Huỳnh Lương Nghĩa 24 SVTH: Đoàn Thị Bích Ngọc
2.3.2 Thuật toán luyện mạng: thuật toán lan truyền ngược (MLP)
Mạng nơron truyền thẳng nhiều lớp được huấn luyện thông qua phương pháp học có thầy, trong đó mạng thực hiện chức năng và so sánh kết quả với đầu ra mong muốn để điều chỉnh các tham số Quá trình này cho phép mạng học từ những sai sót của mình, với đầu ra của mỗi lớp trở thành đầu vào cho lớp tiếp theo.
Thuật toán để tối ưu MLP vẫn là thuật toán lan truyền ngược gradient liên hợp
Ta sử dụng một số kí hiệu sau:
- 𝑥 𝑖 : Giá trị đầu vào của nơron thứ i
- 𝑦 𝑘 : Giá trị đầu ra của nơron thứ k
- 𝑉 𝑖𝑗 : vector trọng số trên đường kết nối từ nơron node vào thứ i tới nơron node ẩn thứ j
- 𝑊 𝑗𝑘 : vector trọng số trên đường kết nối từ nơron node ẩn thứ j tới nơron node ra thứ k
- 𝑑 𝑘 : Giá trị đầu ra mong muốn của nơron nút ra thứ k
- η: tốc độ học (Hệ số học) của mạng
- f: hàm truyền với: f(x) = 1 / (1 + e-x) - Ở đây chúng ta sử dụng hàm truyền là hàm Sigmoid, giới hạn giá trị đầu ra trong khoảng [0-1]
- 𝐼 𝐼𝑖 – Input của node Input thứ i
- 𝑂 𝐼𝑖 – Ouput của node Input thứ i
- 𝐼 𝐻𝑖 – Input của node Hidden thứ i
- 𝑂 𝐻𝑖 – Output của node Hidden thứ i
- 𝐼 𝑂𝑖 – Input của node Output thứ i
- 𝑂 𝑂𝑖 – Output của node Output thứ i
Thuật toán lan truyền ngược được mô tả như sau:
Bước 1: Khởi tạo trọng số 𝑉 𝑖𝑗 , 𝑊 𝑗𝑘 bởi các giá trị ngẫu nhiên nhỏ:
GVHD: PGSTS Huỳnh Lương Nghĩa 25 SVTH: Đoàn Thị Bích Ngọc
Bước 2: Lan truyền tiến tính toán đầu ra thực tế 𝑦 𝑘
Tại node vào thứ i (Input):
Tại node ẩn thứ p (Hidden):
Tại node ra thứ q (Output):
Như vậy giá trị đầu ra thực tế của mạng với bộ trọng số ngẫu nhiên ban đầu là:
Đầu ra mong muốn 𝑑𝑘 và đầu ra thực tế 𝑦𝑘 thường không giống nhau, vì vậy cần tính toán độ sai khác giữa chúng Để giảm thiểu sai khác này, chúng ta cần điều chỉnh các trọng số của mạng qua từng bước học Quá trình học sẽ tiếp tục cho đến khi độ sai khác đạt đến một ngưỡng giới hạn phù hợp.
Bước 3: Đánh giá lỗi học - lỗi trung bình bình phương (MSE: meansquare error):
Bước 4: Lan truyền ngược điều chỉnh trọng số
Với mỗi nút q thuộc tầng ra, tính đạo hàm ngược sai số thành phần 𝛿 𝑞 theo công thức:
Cập nhật các trọng số từ tầng ẩn tới tầng ra 𝑊 𝑗𝑘 :
Với mỗi nút p thuộc tầng ẩn, tính đạo hàm ngược sai số 𝜹 𝒒 theo công thức:
GVHD: PGSTS Huỳnh Lương Nghĩa 26 SVTH: Đoàn Thị Bích Ngọc
Cập nhật các trọng số từ tầng vào tới tầng ẩn 𝑉 𝑖𝑗 :
Lặp lại bước 2 cho đến khi đạt được điều kiện kết thúc ở bước 3 Kết quả thu được là bộ trọng số chuẩn 𝑉 𝑖𝑗 và 𝑊 𝑗𝑘, nhằm tối ưu hóa sự tương đồng giữa giá trị đầu ra thực tế và giá trị đầu ra mong muốn, với mục tiêu giảm thiểu trung bình bình phương lỗi.
Kết luận chương 2
Trong chương 2, bài viết trình bày khả năng hỗ trợ của mạng nơron trong lĩnh vực y học, đặc biệt là việc áp dụng phương pháp luyện mạng MLP Mô hình mạng chuyển tiếp hai lớp được thiết kế nhằm hỗ trợ chẩn đoán bệnh ung thư vú, tạo nền tảng cho quá trình luyện mạng và đánh giá các tham số đầu vào trong chương tiếp theo.
GVHD: PGSTS Huỳnh Lương Nghĩa 27 SVTH: Đoàn Thị Bích Ngọc
LUYỆN, THẨM ĐỊNH VÀ THỬ NGHIỆM MẠNG
Trường hợp các thuộc tính đầu vào không được gán trọng số
3.1.1 Luyện, thẩm định và thử nghiệm
Trường hợp số lớp ẩn 10 nơron: x = I1; t = O;
% For a list of all training functions type: help nntrain
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory Suitable in low memory situations. trainFcn = 'trainscg'; % Scaled conjugate gradient backpropagation.
% Create a Pattern Recognition Network hiddenLayerSize = 10; net = patternnet(hiddenLayerSize, trainFcn);
% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess net.input.processFcns = {'removeconstantrows','mapminmax'};
% Setup Division of Data for Training, Validation, Testing
To implement data division in your neural network, set the division function to random by using `net.divideFcn = 'dividerand';` Configure the division mode to handle each sample individually with `net.divideMode = 'sample';` Allocate 70% of the data for training, 15% for validation, and 15% for testing by adjusting the parameters: `net.divideParam.trainRatio = 70/100;`, `net.divideParam.valRatio = 15/100;`, and `net.divideParam.testRatio = 15/100;`.
% For a list of all performance functions type: help nnperformance net.performFcn = 'crossentropy'; % Cross-Entropy
% For a list of all plot functions type: help nnplot net.plotFcns = {'plotperform','plottrainstate','ploterrhist', 'plotconfusion', 'plotroc'};
% Test the Network y = net(x); e = gsubtract(t,y); performance = perform(net,t,y) tind = vec2ind(t); yind = vec2ind(y); percentErrors = sum(tind ~= yind)/numel(tind);
% Recalculate Training, Validation and Test Performance trainTargets = t * tr.trainMask{1}; valTargets = t * tr.valMask{1};
GVHD: PGSTS Huỳnh Lương Nghĩa 29 SVTH: Đoàn Thị Bích Ngọc testTargets = t * tr.testMask{1}; trainPerformance = perform(net,trainTargets,y) valPerformance = perform(net,valTargets,y) testPerformance = perform(net,testTargets,y)
% View the Network view(net)
% Uncomment these lines to enable various plots.
% Change the (false) values to (true) to enable the following code blocks.
% See the help for each generation function for more information. if (false)
% Generate MATLAB function for neural network for application
% deployment in MATLAB scripts or with MATLAB Compiler and Builder % tools, or simply to examine the calculations your trained neural % network performs. genFunction(net,'myNeuralNetworkFunction'); y = myNeuralNetworkFunction(x); end if (false)
% Generate a matrix-only MATLAB function for neural network code % generation with MATLAB Coder tools. genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes'); y = myNeuralNetworkFunction(x); end if (false)
% Generate a Simulink diagram for simulation or deployment with. % Simulink Coder tools. gensim(net); end
Trường hợp số lớp ẩn 15 nơron: x = I1; t = O;
% For a list of all training functions type: help nntrain
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory Suitable in low memory situations. trainFcn = 'trainscg'; % Scaled conjugate gradient backpropagation.
% Create a Pattern Recognition Network hiddenLayerSize = 15; net = patternnet(hiddenLayerSize, trainFcn);
% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess
GVHD: PGSTS Huỳnh Lương Nghĩa 30 SVTH: Đoàn Thị Bích Ngọc net.input.processFcns = {'removeconstantrows','mapminmax'};
% Setup Division of Data for Training, Validation, Testing
To configure data division in a neural network, use the command 'help nndivision' for a comprehensive list of functions Set the data division method to random by assigning 'dividerand' to net.divideFcn The division mode should be set to 'sample', allowing for the separation of each sample Allocate 70% of the data for training, 15% for validation, and the remaining 15% for testing by adjusting net.divideParam.trainRatio, net.divideParam.valRatio, and net.divideParam.testRatio accordingly.
% For a list of all performance functions type: help nnperformance net.performFcn = 'crossentropy'; % Cross-Entropy
% For a list of all plot functions type: help nnplot net.plotFcns = {'plotperform','plottrainstate','ploterrhist',
% Test the Network y = net(x); e = gsubtract(t,y); performance = perform(net,t,y) tind = vec2ind(t); yind = vec2ind(y); percentErrors = sum(tind ~= yind)/numel(tind);
% Recalculate Training, Validation and Test Performance trainTargets = t * tr.trainMask{1}; valTargets = t * tr.valMask{1}; testTargets = t * tr.testMask{1}; trainPerformance = perform(net,trainTargets,y) valPerformance = perform(net,valTargets,y) testPerformance = perform(net,testTargets,y)
% View the Network view(net)
% Uncomment these lines to enable various plots.
% Change the (false) values to (true) to enable the following code blocks.
% See the help for each generation function for more information. if (false)
% Generate MATLAB function for neural network for application
% deployment in MATLAB scripts or with MATLAB Compiler and Builder % tools, or simply to examine the calculations your trained neural % network performs. genFunction(net,'myNeuralNetworkFunction');
GVHD: PGSTS Huỳnh Lương Nghĩa 31 SVTH: Đoàn Thị Bích Ngọc y = myNeuralNetworkFunction(x); end if (false)
% Generate a matrix-only MATLAB function for neural network code % generation with MATLAB Coder tools. genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes'); y = myNeuralNetworkFunction(x); end if (false)
% Generate a Simulink diagram for simulation or deployment with. % Simulink Coder tools. gensim(net); end
GVHD: PGSTS Huỳnh Lương Nghĩa 32 SVTH: Đoàn Thị Bích Ngọc
Trường hợp số lớp ẩn 10 nơron:
Hình 3.1: Hiệu suất xác nhận tốt nhất
Hình 3.2: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 33 SVTH: Đoàn Thị Bích Ngọc
Trường hợp số lớp ẩn 15 nơron:
Hình 3.3: Hiệu suất xác nhận tốt nhất
Hình 3.4: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 34 SVTH: Đoàn Thị Bích Ngọc
Trường hợp các thuộc tính đầu vào được gán trọng số
3.2.1 Luyện, thẩm định và thử nghiệm
Dựa vào việc phân tích cơ sở dữ liệu cancerInputs ở chương 2, ta sẽ gán các trọng số vào các thuộc tương ứng với các cấp cấu trúc đã chia:
- Trên tế bào : thuộc tính 1 và 4
- Dưới tế bào: thuộc tính 6, 7, 8
Nhân các trọng số 0.1, 0.2, 0.3 lần lượt cho các thuộc tính ở ma trận đầu vào:
Nhân các trọng số 0.3, 0.2, 0.1 lần lượt cho các thuộc tính ở ma trận đầu vào:
Nhân các trọng số 0.25, 0.5, 0.75 lần lượt cho các thuộc tính ở ma trận đầu vào:
Nhân các trọng số 0.75, 0.5, 0.25 lần lượt cho các thuộc tính ở ma trận đầu vào:
GVHD: PGSTS Huỳnh Lương Nghĩa 35 SVTH: Đoàn Thị Bích Ngọc
Trường hợp số lớp ẩn 10 nơron: x = I a ; // a =2,3,4,5 t = O;
% For a list of all training functions type: help nntrain
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory Suitable in low memory situations. trainFcn = 'trainscg'; % Scaled conjugate gradient backpropagation.
% Create a Pattern Recognition Network hiddenLayerSize = 10; net = patternnet(hiddenLayerSize, trainFcn);
% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess net.input.processFcns = {'removeconstantrows','mapminmax'};
% Setup Division of Data for Training, Validation, Testing
To configure data division in a neural network, set the division function to 'dividerand' for random sampling The network will divide each sample, allocating 70% of the data for training, while 15% will be used for validation and the remaining 15% for testing.
% For a list of all performance functions type: help nnperformance net.performFcn = 'crossentropy'; % Cross-Entropy
% For a list of all plot functions type: help nnplot net.plotFcns = {'plotperform','plottrainstate','ploterrhist', 'plotconfusion', 'plotroc'};
% Test the Network y = net(x); e = gsubtract(t,y); performance = perform(net,t,y) tind = vec2ind(t); yind = vec2ind(y); percentErrors = sum(tind ~= yind)/numel(tind);
% Recalculate Training, Validation and Test Performance trainTargets = t * tr.trainMask{1}; valTargets = t * tr.valMask{1}; testTargets = t * tr.testMask{1}; trainPerformance = perform(net,trainTargets,y) valPerformance = perform(net,valTargets,y) testPerformance = perform(net,testTargets,y)
GVHD: PGSTS Huỳnh Lương Nghĩa 36 SVTH: Đoàn Thị Bích Ngọc
% View the Network view(net)
% Uncomment these lines to enable various plots.
% Change the (false) values to (true) to enable the following code blocks.
% See the help for each generation function for more information. if (false)
% Generate MATLAB function for neural network for application
% deployment in MATLAB scripts or with MATLAB Compiler and Builder % tools, or simply to examine the calculations your trained neural % network performs. genFunction(net,'myNeuralNetworkFunction'); y = myNeuralNetworkFunction(x); end if (false)
% Generate a matrix-only MATLAB function for neural network code % generation with MATLAB Coder tools. genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes'); y = myNeuralNetworkFunction(x); end if (false)
% Generate a Simulink diagram for simulation or deployment with. % Simulink Coder tools. gensim(net); end
GVHD: PGSTS Huỳnh Lương Nghĩa 37 SVTH: Đoàn Thị Bích Ngọc
Trường hợp số lớp ẩn 15 nơron: x = I a ; // a =2,3,4,5 t = O;
% For a list of all training functions type: help nntrain
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory Suitable in low memory situations. trainFcn = 'trainscg'; % Scaled conjugate gradient backpropagation.
% Create a Pattern Recognition Network hiddenLayerSize = 15; net = patternnet(hiddenLayerSize, trainFcn);
% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess net.input.processFcns = {'removeconstantrows','mapminmax'};
% Setup Division of Data for Training, Validation, Testing
To configure data division in a neural network, set the division function to random by using `net.divideFcn = 'dividerand';` This approach divides the data by sample, with parameters specifying that 70% of the data will be allocated for training, while 15% will be used for validation and the remaining 15% for testing.
% For a list of all performance functions type: help nnperformance net.performFcn = 'crossentropy'; % Cross-Entropy
% For a list of all plot functions type: help nnplot net.plotFcns = {'plotperform','plottrainstate','ploterrhist', 'plotconfusion', 'plotroc'};
% Test the Network y = net(x); e = gsubtract(t,y); performance = perform(net,t,y) tind = vec2ind(t); yind = vec2ind(y); percentErrors = sum(tind ~= yind)/numel(tind);
% Recalculate Training, Validation and Test Performance trainTargets = t * tr.trainMask{1}; valTargets = t * tr.valMask{1}; testTargets = t * tr.testMask{1}; trainPerformance = perform(net,trainTargets,y) valPerformance = perform(net,valTargets,y) testPerformance = perform(net,testTargets,y)
% View the Network view(net)
GVHD: PGSTS Huỳnh Lương Nghĩa 38 SVTH: Đoàn Thị Bích Ngọc
% Uncomment these lines to enable various plots.
% Change the (false) values to (true) to enable the following code blocks.
% See the help for each generation function for more information. if (false)
% Generate MATLAB function for neural network for application
% deployment in MATLAB scripts or with MATLAB Compiler and Builder % tools, or simply to examine the calculations your trained neural % network performs. genFunction(net,'myNeuralNetworkFunction'); y = myNeuralNetworkFunction(x); end if (false)
% Generate a matrix-only MATLAB function for neural network code % generation with MATLAB Coder tools. genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes'); y = myNeuralNetworkFunction(x); end if (false)
% Generate a Simulink diagram for simulation or deployment with. % Simulink Coder tools. gensim(net); end
GVHD: PGSTS Huỳnh Lương Nghĩa 39 SVTH: Đoàn Thị Bích Ngọc
Trường hợp số lớp ẩn 10 nơron:
Hình 3.5: Hiệu suất xác nhận tốt nhất
Hình 3.6: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 40 SVTH: Đoàn Thị Bích Ngọc
Hình 3.7: Hiệu suất xác nhận tốt nhất
Hình 3.8: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 41 SVTH: Đoàn Thị Bích Ngọc
Hình 3.9: Hiệu suất xác nhận tốt nhất
Hình 3.10: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 42 SVTH: Đoàn Thị Bích Ngọc
Hình 3.11: Hiệu suất xác nhận tốt nhất
Hình 3.12: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 43 SVTH: Đoàn Thị Bích Ngọc
Trường hợp số lớp ẩn 15 nơron:
Hình 3.13: Hiệu suất xác nhận tốt nhất
Hình 3.14: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 44 SVTH: Đoàn Thị Bích Ngọc
Hình 3.15: Hiệu suất xác nhận tốt nhất
Hình 3.16: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 45 SVTH: Đoàn Thị Bích Ngọc
Hình 3.17: Hiệu suất xác nhận tốt nhất
Hình 3.18: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 46 SVTH: Đoàn Thị Bích Ngọc
Hình 3.19: Hiệu suất xác nhận tốt nhất
Hình 3.20: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 47 SVTH: Đoàn Thị Bích Ngọc
Đánh giá tầm quan trọng của các tham số đầu vào
Chúng ta sẽ sử dụng mô hình mạng nơ-ron 2 lớp ẩn với 10 nơ-ron trong lớp ẩn để gán trọng số 1 cho tham số được ước tính và trọng số 0 cho các tham số còn lại.
Trường hợp 1: tham số độ dày của nhóm, khối tế bào được gán trọng số 1, các tham số còn lại được gán trọng số 0
Trường hợp 2: tham số độ đồng đều, đồng dạng của kích thước tế bào được gán trọng số 1, các tham số còn lại được gán trọng số 0
Trường hợp 3: Tham số độ đồng đều, đồng dạng của hình dạng tế bào được gán trọng số 1, các tham số còn lại được gán trọng số 0
Trường hợp 4: Tham số độ bám dính mép viền được gán trọng số 1, các tham số còn lại được gán trọng số 0
Trường hợp 5: Tham số kích thước tế bào biểu mô đơn được gán trọng số 1, các tham số còn lại được gán trọng số 0
Trường hợp 6: Thông số hạt nhân cơ bản được gán trọng số 1, các tham số còn lại được gán trọng số 0
Trường hợp 7: Tham số nhiễm sắc nhạt được gán trọng số 1, các tham số được gán trọng số 0
Trường hợp 8: Thông số hạt nhỏ bình thường trong hạt nhân của tế bào được gán trọng số 1, các tham số còn lại được gán trọng số 0
Trường hợp 9: Tham số sự phân đôi tế bào được gán trọng số 1, các tham số còn lại được gán trọng số bằng 0
Kết quả cho những trường hợp trên được thể hiện trong Bảng 3.1
GVHD: PGSTS Huỳnh Lương Nghĩa 48 SVTH: Đoàn Thị Bích Ngọc
Bảng 3.1: Kết quả kiểm tra đánh giá mạng thần kinh để xác minh tầm quan trọng của các tham số đầu vào
Để xác minh tầm quan trọng của các tham số đầu vào, chúng ta có thể áp dụng mô hình mạng để gán trọng số giảm dần cho các mức cấu trúc của cơ thể.
Thuộc tính 3: Tham số độ đồng đều, đồng dạng của hình dạng tế bào được gán trọng số 1
Thuộc tính 2: Tham số độ đồng đều, đồng dạng của kích thước tế bào được gán trọng số 0.9
Thuộc tính 7: Tham số nhiễm sắc nhạt được gán trọng số 0,8
Thuộc tính 6: Thông số hạt nhân cơ bản được gán trọng số 0,7
Trong nghiên cứu, tham số kích thước tế bào biểu mô đơn được gán trọng số 0,6, trong khi đó tham số độ dày của nhóm khối tế bào được gán trọng số 0,5.
Thuộc tính 8: Thông số hạt nhỏ bình thường trong hạt nhân của tế bào được gán trọng số 0,4
Thuộc tính 4: Tham số độ bám dính mép viền được gán trọng số 0,3
Thuộc tính 9: Tham số sự phân đôi tế bào được gán trọng số 0,2
GVHD: PGSTS Huỳnh Lương Nghĩa 49 SVTH: Đoàn Thị Bích Ngọc
Hình 3.21: Hiệu suất xác nhận tốt nhất
Hình 3.22: Ma trận kết quả quá trình luyện, xác nhận, kiểm tra và sai số
GVHD: PGSTS Huỳnh Lương Nghĩa 50 SVTH: Đoàn Thị Bích Ngọc
Kết luận chương 3
Chương 3 đã hoàn tất quá trình luyện, thẩm định và thử nghiệm mạng áp dụng thực tiễn cho dữ liệu thu thập về bệnh ung thư vú, đạt được kết quả mong muốn Tổng hợp kết quả sẽ được trình bày trong chương 4.
GVHD: PGSTS Huỳnh Lương Nghĩa 51 SVTH: Đoàn Thị Bích Ngọc