Chương 1: Tổng quan - Tên đề tài. - Mô tả đề tài. - Lý do chọn đề tài. • Chương 2: Cơ sở lý thuyết và công nghệ sử dụng - Các lý thuyết áp dụng.
- Các công nghệ sử dụng. • Chương 3: Thực nghiệm - Thiết kế mô hình. - Tìm kiếm dữ liệu. - Kết quả huấn luyện.
- Phần mềm demo. 7 Tieu luan • Chương 4: Kết luận - Ưu điểm của mô hình - Nhược điểm của mô hình. - Hướng phát triển. - Tài liệu tham khảo.
8 Tieu luan Chương 2 CƠ SỞ LÝ THUYẾT – CÔNG NGHỆ SỬ DỤNG 2.1 Giới thiệu về deep learning: 2.1 Khái niệm: Deep learning được bắt nguồn từ thuật toán Neural network vốn xuất phát chỉ là một ngành nhỏ của Machine Learning. Deep Learning là một chi của ngành máy học dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều biến đổi phi tuyến. Tương tự như cách chúng ta học hỏi từ kinh nghiệm thuật toán, deep learning sẽ thực hiện một nhiệm vụ nhiều lần mỗi lần tinh chỉnh nhiệm vụ một chút để cải thiện kết quả. Deep Learning chỉ đơn giản là kết nối dữ liệu giữa tất cả các tế bào thần kinh nhân tạo và điều chỉnh chúng theo dữ liệu mẫu.
Tương tự như cách chúng ta học hỏi từ kinh nghiệm thuật toán, deep learning sẽ thực hiện một nhiệm vụ nhiều lần mỗi lần tinh chỉnh nhiệm vụ một chút để cải thiện kết quả. Deep Learning chỉ đơn giản là kết nối dữ liệu giữa tất cả các tế bào thần kinh nhân tạo và điều chỉnh chúng theo dữ liệu mẫu.1: Kiến trúc mạng deep learning Càng có nhiều tế bào thần kinh được thêm vào thì kích thước của dữ liệu sẽ càng lớn. Nó tự động có tính năng học tập ở nhiều cấp độ trừu tượng. Qua đó cho 9 Tieu luan phép một hệ thống học hàm ánh xạ phức tạp mà không phụ thuộc vào bất kỳ thuật 2 toán cụ thể nào.
Không ai thực sự biết những gì xảy ra trong một mạng lưới thần kinh nhân tạo. Vì vậy, hiện tại bạn có thể gọi Deep Learning là một cái hộp đen. Deep Learning đã giúp máy tính thực thi những việc tưởng chừng như không thể vào 15 năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng tác văn, phim, ảnh, âm nhạc.2 Cách thức hoạt động: Cách thức hoạt động của thuật toán Deep Learning diễn ra như sau: Các dòng thông tin sẽ được trải qua nhiều lớp cho đến lớp sau cùng. Lấy quy trình học của con người làm ví dụ cụ thể.
Qua các lớp đầu tiên sẽ tập trung vào việc học các khái niệm cụ thể hơn trong khi các lớp sâu hơn sẽ sử dụng thông tin đã học để nghiên cứu và phân tích sâu hơn trong các khái niệm trừu tượng. Quy trình xây dựng biểu diễn dữ liệu này được gọi là trích xuất tính năng. • Ví dụ về việc nhận diện con vật: Nhiệm vụ của máy tính lúc này là nhận biết hình ảnh đã cho là hình của con mèo hay là của con chó nếu bạn dạy máy tính nhận diện hình ảnh một con mèo thì chúng ta sẽ lập trình ra nhiều lớp trong mạng thần kinh nhân tạo mỗi lớp có khả năng xác định một đặc điểm cụ thể của con mèo như râu, vuốt, chân sau đó, cho máy tính xem hàng ngàn bức ảnh mèo khác nhau (và chỉ ra rằng “Đây là con mèo”) cùng hàng ngàn bức ảnh không phải mèo (và chỉ ra rằng “đây không phải mèo”). Mạng thần kinh nhân tạo này xem hết các bức ảnh các lớp (còn gọi node) của nó sẽ dần nhận ra râu, vuốt, chân…nó có thể biết lớp nào là quan trọng, lớp nào không quan trọng.
Nó cũng sẽ nhận ra rằng mèo luôn có chân nhưng những con vật không phải mèo cũng có chân. Vì vậy, khi cần xác định mèo máy tính sẽ tìm chân và đi kèm với những đặc điểm khác như móng vuốt hay râu…Deep Learning sẽ tự động tìm ra đặc điểm nào quan trọng nhất để phân loại mục tiêu. Trong khi đối với Machine Learning những đặc điểm này phải được đưa ra bởi con người. 10 Tieu luan Hình 2.2: Ví dụ về nhận dạng con vật 2.3 Ứng dụng thực tế: • Ứng dụng deep learning vào hệ thống gợi ý: Các nền tảng lớn hiện nay như Facebook, Lazada, Tiki…đều có hệ thống gợi ý rất mạnh giúp tăng đáng kể độ tương tác của người dùng chúng dựa trên các dữ liệu của người dùng phát sinh ra khi sử dụng và tương tác trên các thiết bị có kết nối internet để gợi ý thêm những sản phẩm họ sẽ thích.
Ví dụ như trên các nền tảng mua sắm, gợi ý các bài quảng cáo hoặc được tài trợ như trên Facebook hay các khóa học mà người học quan tâm như trên các nền tảng học online. • Ứng dụng deep learning vào ứng dụng nhận diện hình ảnh: Mục tiêu của công nghệ nhận diện ảnh là nhận biết và xác định các đối tượng trong ảnh cũng như hiểu được nội dung và ngữ cảnh trong đó. Ví dụ dịch vụ nhận diện và xác định khuôn mặt của AlchemyVision có khả năng phân biệt hai khuôn mặt tương tự nhau giữa nam diễn viên Will Ferrell và tay trống của Red Hot Chili Peppers, Chad Smith. Công nghệ nhận diện hình ảnh cũng được đưa vào Facebook để gợi ý người dùng tag mặt bạn bè hay ứng dụng vào khoa học tội phạm và điều tra.
• Ứng dụng deep learning vào trong y khoa: Chương trình phần mềm trí tuệ nhân tạo có tên là Watson của IBM đã phát hiện ra một loại bệnh mà các bác sĩ đã không thể tìm ra ở một nữ bệnh nhân. 11 Tieu luan Bằng cách so sánh bộ gen của người phụ nữ này với hơn 20 triệu kết quả nghiên cứu bệnh khác. Watson đã đưa ra kết quả là một chứng Leukemia cực kỳ hiếm gặp chỉ trong 10 phút. Và vẫn còn rất nhiều ứng dụng hữu ích khác của deep learning trong thực tế.2 Mạng tích chập – Convolutional Neural Network: 2.1 Khái niệm: 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. CNN được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh. CNN cũng có lịch sử khá lâu đời. Kiến trúc gốc của mô hình CNN được giới thiệu bởi một nhà khoa học máy tính người Nhật vào năm 1980.
Sau đó, năm 1998, Yan LeCun lần đầu huấn luyện mô hình CNN với thuật toán backpropagation cho bài toán nhận dạng chữ viết tay. Tuy nhiên, mãi đến năm 2012, khi một nhà khoa học máy tính người Ukraine Alex Krizhevsky (đệ của Geoffrey Hinton) xây dựng mô hình CNN (AlexNet) và sử dụng GPU để tăng tốc quá trình huấn luyện deep nets để đạt được top 1 trong cuộc thi Computer Vision thường niên ImageNet với độ lỗi phân lớp top 5 giảm hơn 10% so với những mô hình truyền thống trước đó, đã tạo nên làn sóng mãnh mẽ sử dụng deep CNN với sự hỗ trợ của GPU để giải quyết càng nhiều các vấn đề trong Computer Vision.2 Các thành phần trong mạng tích chập 2.1 Lớp tích chập(Convolution) Convolution là một cửa sổ trượt (Sliding Windows) trên một ma trận. 12 Tieu luan Hình 2.3: Cách hoạt động của lớp tích chập Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy ra những thông tin chính xác nhất mà không cần chọn các feature. Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa.
Ma trận có kích thước 5×5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột. Convolution hay tích chập là nhân từng phần tử trong ma trận 3. Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ như trong ví dụ trên là 3×3. Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3×3 với ma trận bên trái.
Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5×5 bên trái.1 Đệm(padding) một vấn đề rắc rối khi áp dụng các tầng tích chập là việc chúng ta có thể mất một số điểm ảnh trên biên của ảnh. Vì chúng ta thường sử dụng các hạt nhân nhỏ, với một phép tích chập ta có thể chỉ mất một ít điểm ảnh, tuy nhiên sự mất mát này có thể tích lũy dần khi ta thực hiện qua nhiều tầng tích chập liên tiếp. Một giải pháp đơn giản cho vấn đề này là chèn thêm các điểm ảnh xung quanh đường biên trên bức ảnh đầu vào, nhờ đó làm tăng kích thước sử dụng của bức ảnh. Thông thường, chúng ta thiết lập các giá trị của các điểm ảnh thêm vào là 0.
13 Tieu luan ta đệm một đầu vào 3x3, làm tăng kích thước lên thành 5×5. Đầu ra tương ứng sẽ tăng lên thành một ma trận 4×4.2 Bước trượt( Stride) Trong tích chập, stride được hiểu là khoảng cách mỗi lần trược của cửa sổ trượt, stride càng cao, khoảng cách mỗi lần trược càng lớn và bản đồ đặc trưng đầu ra càng nhỏ, sử dụng stride sẽ giúp giảm thiểu thời gian tính toán, và tránh được việc lặp các đặc trưng quá nhiều lần.2 Hàm chuẩn hoá( normalization) Hàm chuẩn hoá(normalization) là hàm dùng để biến đổi phân phối đầu vào theo kì vọng bằng 0 và phương sai bằng. Normalization luôn là lĩnh vực nghiên cứu tích cực trong Deep Learning. Các phương pháp Normalization có thể giúp mô hình huấn luyện nhanh và kết quả tốt.
một số lợi ích của hàm chuẩn hoá có thể kể đến như: 14 Tieu luan - Chuẩn hóa dữ liệu mỗi feature sẽ giữ được sự đóng góp của mọi feature trong quá trình huấn luyện trong trường hợp giá trị một số features cao hơn nhiều so với các feature còn lại. Với cách làm này sẽ làm mô hình unbiased (đối với các feature có giá trị cao) - làm giảm Internal Covariate Shift. Việc mô hình càng sâu sẽ có nhiều layer cùng với đó là có nhiều hàm kích hoạt, nó sẽ làm biến đổi đi phân phối của dữ liệu. Do đó chúng ta cần chuẩn hóa lại nó để có được sự đồng bộ phân phối của dữ liệu trong quá trình huấn luyện.
Khái niệm về Internal Covariate Shift mình lấy từ paper này, để hiểu rõ hơn các bạn đọc paper đấy nhá.