MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Convolutional Neural Network (CNNs - Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay. Như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động.
CNN được sử dụng nhiều trong các bài toán nhận dạng các đối tượng, vật thể trong ảnh, phân loại ảnh. Nhận thấy, việc áp dụng CNN vào y tế để giải quyết các vấn đề chẩn đoán liên quan đến hình ảnh như phim X-Quang, ảnh điện ti là hoàn toàn phù hợp và mang lại lợi ích cao. Một mô hình hoàn chỉnh, chính xác cao góp phần rất lớn trong việc giúp đỡ các bác sĩ đưa ra quyết định đúng đắn một cách nhanh chóng. Trong cuộc sống, các bệnh về phổi là những bệnh hết sức phổ biến, việc chẩn đoán các bệnh này phải được thực hiện qua các thủ tục xét nghiệm, chẩn đoán bằng phim X- Quang.
Trong đó việc khảo sát hình chụp X-Quang là bước quan trọng nhất trong việc đưa ra chẩn đoán. Vì thế, để làm cho khâu quan trọng này trở nên đơn giản hơn, nhóm quyết định xây dựng một mô hình học sâu để giải quyết vấn đề này. Và để thực hiện được, cần tìm hiểu các kiến thức liên quan mà quan trọng hơn cả là kiến thức về mạng nơ-ron tích chập. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN Về mặt khoa học, đề tài này nghiên cứu về mảng học sâu, đó chính là thuật toán CNN, về vấn đề đã được công bố trước đó, phù hợp với việc học tập trong môi trường giáo dục.
Tuy nhiên không thể phủ nhận được hiệu quả của mô hình này với những ứng dụng quan trọng của nó như hệ thống nhận diện gương mặt của Facebook, Google. Bằng phát minh thuật toán này, việc làm cho suy nghĩ của máy tính càng gần giống như trí óc của con người. Sự phát triển của công nghệ AI nói chung và học sâu nói riêng cũng được nhận định là sẽ đe dọa đến loài người khi ngày càng máy tính càng có suy nghĩ, hiểu biết. Nhưng việc bùng nổ công nghệ này đang mang lại lợi ích lớn cho loài người, biểu 10 do an hiện rõ nhất là trong lĩnh vực y tế.
Đó cũng là nội dung mà nhóm sẽ trình bày trong đề tài này: chẩn đoán một số bệnh phổi bằng phim X-Quang dựa trên thuật toán CNN. MỤC TIÊU NGHIÊN CỨU Mục tiêu cuối cùng của việc nghiên cứu đề tài này là để trả lời câu hỏi làm sao để giúp cho việc chẩn đoán các bệnh về phổi bằng hình chụp X-Quang của các bác sĩ trở nên nhanh chóng, làm giảm thời gian và công sức của các bác sĩ từ đó nâng cao năng suất công việc. Hơn nữa, khi mô hình huấn luyện đạt đến mức độ chính xác cao, khâu kiểm tra kết quả chẩn đoán của con người có thể được lược bỏ hoàn toàn và được tự động hóa bởi máy móc. Từ đó, góp phần tạo ra một hệ sinh thái y khoa tiên tiến, giảm được nhiều chi phí mà mang lại độ chính xác cao, về lâu dài có thể thay thế con người trong khâu chẩn đoán bệnh.
11 do an Chương 2: CƠ SỞ LÝ THUYẾT Máy tính “nhìn” theo cách khác con người. Trong thế giới máy tính chỉ có những con số. Mỗi hình ảnh có thể được biểu diễn dưới dạng mảng 2 chiều những con số được gọi là các pixel. Mặc dù máy tính nhìn nhận theo cách khác con người, chúng ta vẫn có thể dạy máy tính nhận diện các mẫu như con người.
Điều quan trọng là chúng ta cần nghĩ về hình ảnh theo một cách khác đi. Cách máy tính nhìn một đối tượng Để dạy thuật toán nhận diện đối tượng trong hình ảnh, ta sử dụng một loại mạng nơ-ron nhân tạo (Artificial Neural Network): mạng nơ-ron tích chập. Tên của nó được dựa trên phép tính quan trọng được sử dụng trong mạng đó là tích chập. Mạng nơ-ron tích chập lấy cảm hứng từ não người.
Nghiên cứu trong những thập niên 1950 và 1960 của D.N Wiesel trên não của động vật đã đề xuất một mô hình mới cho việc cách mà động vật nhìn nhận thế giới. Trong báo cáo, hai ông đã diễn tả 2 loại tế bào nơ-ron trong não và cách hoạt động khác nhau: tế bào đơn giản (simple cell – S cell) và tế bào phức tạp (complex cell – C cell). Các tế bào đơn giản được kích hoạt khi nhận diện các hình dáng đơn giản như đường nằm trong một khu vực cố định và một góc cạnh của nó. Các tế bào phức tạp có vùng tiếp nhận lớn hơn và đầu ra của nó không nhạy cảm với những vị trí cố định trong vùng.
Trong thị giác, vùng tiếp nhận của một nơ-ron tương ứng với một vùng trên võng mạc nơi mà sẽ kích hoạt nơ-ron tương ứng. 12 do an Năm 1980, Fukushima đề xuất mô hình mạng nơ-ron có cấp bậc gọi là neocognitron. Mô hình này dựa trên khái niệm về S cell và C cell. Mạng neocognitron có thể nhận diện mẫu dựa trên việc học hình dáng của đối tượng.
Sau đó vào năm 1998, mạng nơ-ron tích chập được giới thiệu bởi Bengio, Le Cun, Bottou và Haffner. Mô hình đầu tiên của họ được gọi tên là LeNet-5. Mô hình này có thể nhận diện chữ số viết tay. 13 do an Chương 3: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 3.
KIẾN THỨC CƠ SỞ 3. Mạng Nơ-ron nhân tạo 3. Khái niệm về Perceptron và mạng Perceptron Perceptrons (tri giác), được hiểu trong ANN như một nơ-ron nhân tạo. Perceptrons được phát triển vào khoảng những năm 1950 - 1960 bởi nhà khoa học Frank Rosenblatt và được lấy cảm hứng từ những ý tưởng trước đó của Warren McCulloch và Walter Pitts.
Các thành phần của một Perceptron: • Các giá trị đầu vào (input) là các giá trị nhị phân 𝑥1 , 𝑥2 , 𝑥3 , … Số lượng các giá trị input có thể tùy ý, phụ thuộc vào mục đích sử dụng. • Các giá trị đầu ra (output) là một giá trị nhị phân 0 hoặc 1. Đầu ra của nơ-ron này có thể sẽ làm input cho nơ-ron khác trong cùng một mạng perceptron. • Ngưỡng 𝑡 là một tham số giống như weight, để xác định kết quả output.
• Các trọng số (weight) 𝑤1 , 𝑤2 , 𝑤3 , … được thêm vào để thể hiện tầm quan trọng của từng input đối với kết quả output. Các giá trị trọng số tham gia vào việc tính toán kết quả output bằng cách tính tổng các 𝑥𝑖 𝑤𝑖. Nếu kết quả 𝑤𝑖 𝑥𝑖 > 𝑡 thì output là 1, ngược lại, output là 0: 1, ∑ 𝑤𝑖 𝑥𝑖 > 𝑡 𝑖 𝑜𝑢𝑡𝑝𝑢𝑡 = { 0, ∑ 𝑤𝑖 𝑥𝑖 ≤ 𝑡 𝑖 Hình 3. Mô hình của perceptron Mạng perceptron (Perceptron Network - PN) gồm các perceptron được xếp thành các lớp.
Các perceptron trong lớp thứ nhất đưa ra quyết định bằng các tổng hợp các input. Các lớp tiếp theo đưa ra quyết định dựa vào kết quả output của các perceptron 14 do an trong lớp trước đó. Như vậy các perceptron của lớp sau sẽ đưa ra các quyết định có tính chính xác cao hơn các perceptron của lớp trước đó. Mạng perceptron Nếu gọi 𝑥 là véc-tơ các giá trị input, 𝑤 là véc-tơ các giá trị weight và đặt 𝑤 ∙ 𝑥 = ∑𝑖 𝑤𝑖 𝑥𝑖.
Chuyển 𝑡 sang vế trái và thay thế nó bằng giá trị Perceptron’s bias 𝑏 (𝑏 = −𝑡 ). Khi đó ta có: 1, 𝑤∙𝑥+𝑏 >0 𝑜𝑢𝑡𝑝𝑢𝑡 = { 0, 𝑤∙𝑥+𝑏 ≤0 Giá trị Perceptron’s bias 𝑏 có thể được biết như đại lượng đo lường khả năng perceptron được kích hoạt (tức là giá trị output của perceptron là 1). Một perceptron có bias 𝑏 càng lớn thì khả năng perceptron được kích hoạt cũng càng lớn. Ngoài cách perceptron tổng hợp các yếu tố để đưa ra kết luận, còn một cách nữa để thực hiện là sử dụng các phép toán logic AND, OR và NAND.
Hàm kích hoạt (Activation Functions - AFs) Hàm kích hoạt có chức năng đưa ra quyết định cuối cùng (tức là output) của một nơ-ron. Hàm kích hoạt cũng được biết với một tên gọi khác là hàm lan truyền. Hàm kích hoạt chia làm 2 loại sau: • Hàm kích hoạt tuyến tính • Hàm kích hoạt phi tuyến 3. Hàm kích hoạt tuyến tính Hàm kích hoạt tuyến tính biểu diễn toán học của hàm kích hoạt tuyến tính là một đường thẳng 𝑦 = 𝑓 (𝑥) = 𝑥.
Do đó, output của hàm số sẽ không được giới hạn trong một phạm vi nào hay nói cách khác, hàm kích hoạt tuyến tính có phạm vi trong khoảng (−∞, +∞). 15 do an Hình 3.3 Đồ thị biểu diễn hàm tuyến tính 3. Hàm kích hoạt phi tuyến Không giống như hàm kích hoạt tuyến tính, các hàm phi tuyến tính có phạm vi giới hạn xác định được nên được áp dụng nhiều nào việc quyết định của nơ-ron. Các hàm kích hoạt phi tuyến tính thường sử dụng: a.
Hàm kích hoạt Sigmoid (Hàm kích hoạt Logistic) Công thức hàm sigmoid: σ(z)=1/(1+e^(-z)) Công thức đạo hàm hàm sigmoid: σ^' (z)=σ(z).(1-σ(z)) Hàm sigmoid có dạng đường cong giống như hình chữ S.4 Đồ thị hàm sigmoid và đạo hàm của nó 16 do an Lý do hàm sigmoid được sử dụng là vì giá trị của hàm này nằm trong phạm vi khoảng (0, 1). Và kết quả output cũng được biết như việc dự đoán xác suất của một mô hình. Hàm kích hoạt Tanh Công thức hàm tanh: tanh(z)=(e^z-e^(-z))/(e^z+e^(-z)) Công thức đạo hàm hàm tanh: tanh^' (z)=1-tanh^2z Hình 3.5 Đồ thị hàm tanh và đạo hàm của nó Phạm vi giá trị của hàm tanh là khoảng (-1, 1) c. Hàm kích hoạt ReLU (Rectified Linear Unit) Công thức hàm ReLU: 𝑅(𝑧) = max(0, 𝑧) 1, 𝑧 > 0 Công thức đạo hàm hàm ReLU: 𝑅′ (𝑧) = { 0, 𝑧 < 0 Hình 3.6 Đồ thị hàm ReLU d.
Các hàm kích hoạt khác: Leaky ReLU, Softmax, ELU. Đạo hàm và thuật toán giảm độ dốc (Gradient Descent) 3. Đạo hàm và khảo sát sự biến thiên của hàm số 17 do an Đạo hàm mô tả sự biến đổi của hàm số, hay nói cách khác, đạo hàm mô tả quỹ đạo của một hàm số hay độ dốc của nó. Để khảo sát độ dốc của một đồ thị hàm số, người ta dựa vào đạo hàm của hàm số đó.
Ví dụ: 𝑑𝑓 Cho hàm số 𝑓 (𝑥) = 𝑥 2 , ta có đạo hàm 𝑓 ′ (𝑥) = = 2𝑥. Ta có nhận xét: 𝑑𝑥 Với 𝑥 = −1, 𝑓 ′ (𝑥) = 𝑓 ′ (−1) = −2. Do 𝑓 ′ (𝑥 = −1) < 0 thì hàm số giảm. Do 𝑓 ′ (𝑥 = 1) > 0 thì hàm số tăng.