Chương 1. Học máy và Học sâu Chương 2. Bài toán chuyển đổi màu và mạng U-net Chương 3. Thực nghiệm và kết quả 2.
Mục tiêu nghiên cứu Mục tiêu của đề tài là tìm hiểu phương pháp học sâu được xây dựng trên cơ sở mạng nơ ron tích chập và có thể ứng dụng được trong bài toán đã đặt ra, phân tích, so sánh …, tìm hiểu các môi trường huấn luyện trên Kaggle và Google Colab, xây dựng và đánh giá được mô hình chuyển đổi màu ảnh đen trắng sử dụng mạng U-net trên một vài tập dữ liệu huấn luyện, trên cơ sở các tiêu chí về chất lượng ảnh. Qua đó làm rõ được hiệu quả của mô hình đã sử dụng trong việc chuyển đổi màu cho ảnh đen trắng. Đối tượng và phạm vi nghiên cứu ▪ Đối tượng nghiên cứu: Chuyển đổi màu cho ảnh đen trắng với mạng U-net, một mô hình học sâu được phát triển từ mạng Nơ ron tích chập CNN. 3 ▪ Phạm vi nghiên cứu: - Tập dữ liệu huấn luyện: Dữ liệu về phong cảnh, liệu về người, vật, thu thập từ các nguồn.
- Mô hình huấn luyện: Xây dựng từ mô hình U-net, một mô hình học sâu được phát triển trên cơ sở kiến trúc mạng Nơ-ron tích chập CNN 4. Nội dung nghiên cứu Nghiên cứu lý thuyết về học máy, học sâu với mạng Nơ-ron tích chập, cụ thể là mô hình học sâu mạng U-net để giải quyết bài toán chuyển đổi màu cho đen trắng. Tiến hành thực nghiệm, vận dụng vào việc chuyển đổi màu cho ảnh đen trắng trên mô hình huấn luyện của mạng U-net và một số bộ dữ liệu huấn luyện được chọn lọc. Sử dụng môi trường huấn luyện Google Colab để giúp tăng tốc độ huấn luyện cũng như có thể tận dụng tối đa khả năng xử lý của GPU, TPU mà các nền tảng trên cho phép sử dụng.
Kết quả thu được sẽ được so sánh sự ảnh hưởng của mô hình huấn luyện đã sử dụng đến việc chuyển đổi màu cho ảnh đen trắng cũng như khảo sát được mức độ hiệu quả của kiến trúc mạng, tác động của các bộ dữ liệu huấn luyện sử dụng trong mô hình đối với mục tiêu đề ra. Phương pháp nghiên cứu ▪ Phương pháp nghiên cứu lý thuyết: nghiên cứu các tài liệu học máy, học sâu; các mô hình ứng dụng học sâu (CNN, UNET, VGG, RESNET, …). ▪ Phương pháp nghiên cứu thực nghiệm: Vận dụng mô hình UNET để xây dựng mô hình huấn luyện việc thực hiện nhiệm vụ chuyển đổi màu cho ảnh đen trắng; ▪ Phương pháp nghiên cứu thống kê, phân tích - tổng hợp. HỌC MÁY VÀ HỌC SÂU 1.
Giới thiệu chương Trong các năm gần đây, sự bùng nổ của AI (Trí tuệ nhân tạo) và Big Data đã giúp cho con người giải quyết được nhiều bài toán khó và có nhiều đột phá mới đóng góp vào sự phát triển của cuộc cách mạng công nghiệp 4. Ở chương này, tôi sẽ trình bày cơ sở lý thuyết tổng quan về các lĩnh vực của trí tuệ nhân tạo, cụ thể đó là học máy (Machine Learning), phương pháp học sâu (Deep Learning). Đồng thời trình bày nghiên cứu về cấu trúc và hoạt động của mạng Nơ-ron tích chập (CNN); Tìm hiểu về phương pháp học chuyển giao, tình chỉnh mô hình huấn luyện. Mối liên hệ giữa các lĩnh vực của trí tuệ nhân tạo trong việc giải quyết các bài toán thực tiễn.
Tổng quan về học máy và học sâu 1. Mục tiêu của machine learning nói chung là hiểu cấu trúc dữ liệu và điều chỉnh dữ liệu đó thành các mô hình (model) để sử dụng đối với dữ liệu mới. [2] Các thuật toán học máy là các chương trình được xây dựng nhằm giúp cho máy tính học và cải thiện hiệu quả trong việc thực hiện một nhiệm vụ cụ thể dựa trên dữ liệu huấn luyện. Mô hình thu được có hiệu quả cao nếu dữ liệu huấn luyện được chuẩn bị tốt trong khâu tiền xử lý.
Các mô hình học máy thường yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" và đánh giá mô hình. Trước đây, người ta thiếu dữ liệu huấn luyện mô hình. Ngày nay, với sự phong phú, đa dạng của các thư viện dữ liệu được chia sẻ từ cộng đồng nghiên cứu khoa học dữ liệu, các nguồn dữ liệu lớn (big data) 5 đã cung cấp cho các thuật toán học máy, học sâu có đủ dữ liệu huấn luyện để cải thiện độ chính xác của mô hình và dự đoán. Phân loại: Có hai loại phương pháp học máy chính ▪ Phương pháp quy nạp: Máy tính học các khái niệm dựa trên dữ liệu đã thu thập được trước đó.
▪ Phương pháp suy diễn: Máy tính học các khái niệm dựa vào các luật. Phương pháp này cho phép tận dụng được các kiến thức chuyên ngành để hỗ trợ máy tính. Hiện nay, các thuật toán đều cố gắng tận dụng được ưu điểm của hai phương pháp này. Các nhóm giải thuật học máy: ▪ Học có giám sát: Trong học có giám sát, máy tính học cách mô hình hóa các mối quan hệ dựa trên dữ liệu được gán nhãn (labeled data).
Phương pháp này xác định giá trị/nhãn cho dữ liệu mới dựa trên quy luật được phát hiện từ tính chất của tập dữ liệu mẫu. Giám sát được thể hiện qua giá trị hoặc nhãn của dữ liệu mẫu. Hai thuật toán thường dùng sát đó là Phân loại và Hồi quy. ▪ Học không giám sát: Trong học không giám sát, máy tính không được cung cấp dữ liệu được dán nhãn mà thay vào đó chỉ được cung cấp dữ liệu mà thuật toán tìm cách mô tả dữ liệu và cấu trúc của chúng.
Hai loại thuật toán dùng trong học không giám sát đó là Phân cụm và Liên kết. ▪ Học nửa giám sát: Một dạng lai giữa hai nhóm giải thuật trên. ▪ Học tăng cường: Máy tính đưa ra quyết định hành động (action) và nhận kết quả phản hồi (response/reward) từ môi trường (environment). Sau đó máy tính tìm cách chỉnh sửa cách ra quyết định hành động của mình.
Deep learning đòi hỏi rất nhiều dữ liệu đầu vào cũng như cần hệ thống có sức mạnh tính toán hơn machine learning. Ngày nay, học sâu đã trở nên quan trọng và hiệu quả hơn nhiều thông qua phương pháp học có giám sát hoặc học từ dữ liệu và thuật toán được gắn nhãn. Mỗi thuật toán trong học sâu được thực hiện cùng một quy trình. Nó bao gồm hệ thống phân cấp biến đổi phi tuyến của đầu vào và sử dụng để tạo mô hình thống kê đầu ra.
Mạng nơ-ron nhân tạo trong Học sâu được xây dựng nhằm mô phỏng khả năng tư duy của bộ não con người. Trong một mạng nơ-ron có nhiều lớp (layer) khác nhau, số lượng lớp càng nhiều thì mạng sẽ càng “sâu”. Trong mỗi lớp là các nút mạng (node), các nút này sẽ liên kết với những nút liền kề khác, có một trọng số (weight) tương ứng ở mỗi kết nối giữa các nút mạng, trọng số càng lớn thì ảnh hưởng của kết nối này đến mạng nơ-ron càng nhiều. Mỗi nơ-ron sẽ có một hàm kích hoạt, có nhiệm vụ “chuẩn hoá” đầu ra từ nơ-ron này.
Dữ liệu được người dùng đưa vào mạng nơ-ron sẽ đi qua tất cả lớp và trả về kết quả ở lớp cuối cùng, gọi là output layer. Trong quá trình huấn luyện một mô hình mạng nơ-ron cụ thể, các trọng số sẽ được thay đổi và nhiệm vụ của mô hình là tìm ra bộ giá trị của trọng số sao cho kết quả dự đoán là tốt nhất. Các hệ thống Deep Learning luôn cần cấu hình phần cứng rất cao để có sức mạnh về RAM, CPU, GPU đủ để xử lý được lượng dữ liệu lớn và thực hiện các tính toán phức tạp. Nhiều mô hình Deep Learning có thể mất nhiều 7 tuần, nhiều tháng để triển khai trên những thiết bị có cấu hình phần cứng tiên tiến hiện nay.
Mạng Nơ-ron nhân tạo (ANN) và mạng Nơ-ron nhân tạo nhiều lớp (DNN) 1. Mạng Nơ ron nhân tạo (ANN): Hình 1.1 – Mạng nơ-ron nhân tạo ANN Mạng nơron nhân tạo, Artificial Neural Networks (ANN) là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơ-ron sinh học. ANN được tạo nên từ một số lượng lớn các nơ-ron kết nối với nhau thông qua các liên kết (trọng số) làm việc như một thể thống nhất để giải quyết một nhiệm vụ cụ thể. Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng, phân loại dữ liệu, phân vùng ảnh, .) thông qua một quá trình học từ tập các mẫu huấn luyện.
Bản chất quá trình học chính là quá trình hiệu chỉnh các trọng số liên kết giữa các nơ-ron trong mạng. [3] Sau đây là sơ đồ cấu tạo của một nơ-ron nhân tạo: 8 Hình 1.2 - Cấu tạo một Nơ-ron nhân tạo Các thành phần cơ bản của một nơ-ron nhân tạo bao gồm: ▪ Tập các đầu vào: Là các tín hiệu vào (input signals) của nơ-ron, các tín hiệu này thường được đưa vào ở dạng một vector N chiều. ▪ Tập các liên kết: Mỗi liên kết được thể hiện bằng một trọng số liên kết – Synaptic weight. Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được ký hiệu là wkj.
Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình huấn luyện. Hàm tổng (Summing function): được dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó. Ngưỡng (còn gọi là độ lệch - bias): ngưỡng này thường được đưa vào như một thành phần của hàm truyền. ▪ Hàm truyền (Transfer function): được dùng để giới hạn phạm vi đầu ra của mỗi nơ-ron.
Hàm truyền nhận đầu vào là kết quả của hàm tổng và ngưỡng. ▪ Đầu ra: Là tín hiệu đầu ra của một nơ-ron, mỗi nơ-ron có tối đa là một đầu ra. Xét về mặt toán học, cấu trúc của một nơ-ron k, được mô tả bằng 2 biểu thức dưới đây: [1] 𝑝 𝑢𝑘 = ∑ 𝑤𝑘𝐽 𝑥𝐽 𝐽=1 𝑣à 𝑦𝑘 = ∫(𝑏1 − 𝑏2 ) 9 Trong đó: x1, x2, ., xp: là các tín hiệu vào; (w k1, wk2,., wkp) là các trọng số liên kết của nơ-ron thứ k; uk là hàm tổng; bk là một ngưỡng; f là hàm truyền và yk là tín hiệu đầu ra của nơ-ron. Dưới đây là mô phỏng cụ thể hơn về tính toán một nơ-ron [1]: Nơ-ron nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền) sau đó cho một tín hiệu đầu ra là kết quả của hàm truyền.