CHƯƠNG 1: TÌM HIỂU DEEP LEARNING 1. LỊCH SỬ SƠ LƯỢC VỀ DEEP LEARNING Học sâu là một lĩnh vực con của học máy, và học máy là một lĩnh vực con của trí tuệ nhân tạo (AI). Mục tiêu trọng tâm của AI là cung cấp một tập hợp các thuật toán và kỹ thuật được sử dụng để giải quyết các vấn đề mà con người có thể thực hiện nó một cách dễ dàng, tự động, nhưng mặt khác rất thách thức cho máy tính. Một ví dụ điển hình về một vấn đề AI như vậy là giải thích và hiểu rõ nội dung của một hình ảnh - nhiệm vụ này là điều mà con người có thể làm một cách dễ dàng với ít hoặc không cần có sự nỗ lực nào, nhưng nó đã được chứng minh là khó khăn cho máy móc để hoàn thành.
Trong khi AI thể hiện một tập hợp lớn, đa dạng các công việc liên quan đến lý luận máy móc tự động (suy luận, lập kế hoạch, heuristics, v.), lĩnh vực học máy có xu hướng đặc biệt quan tâm đến nhận dạng mẫu và học hỏi từ dữ liệu. Mạng thần kinh nhân tạo (ANNs) là một lớp thuật toán học máy học hỏi từ dữ liệu và chuyên nhận dạng mẫu, lấy cảm hứng từ cấu trúc và chức năng của não. Học sâu thuộc về họ thuật toán ANN, và trong hầu hết các trường hợp, hai thuật ngữ có thể được sử dụng thay thế cho nhau. Lĩnh vực học sâu đã tồn tại hơn 60 năm, đi theo các tên và hóa thân khác nhau dựa trên xu hướng nghiên cứu, phần cứng và bộ dữ liệu có sẵn và các tùy chọn phổ biến của các nhà nghiên cứu nổi tiếng vào thời điểm đó.1: Mối quan hệ giữa DL, ML, AL [1] 14 CHƯƠNG 1: TÌM HIỂU DEEP LEARNING Lịch sử của mạng nơ-ron và học sâu là một lịch sử lâu dài.
Thực chất "học sâu" đã tồn tại từ những năm 1940 và trải qua nhiều lần thay đổi tên khác nhau, bao gồm cả thuật điều khiển học - cybernetics, chủ nghĩa kết nối - connectionism và quen thuộc nhất là mạng thần kinh nhân tạo - Artificial Neural Networks (ANNs). Trong khi lấy cảm hứng từ bộ não con người và cách các tế bào thần kinh của nó tương tác với nhau, ANN không có nghĩa là mô hình thực tế của não. Thay vào đó, chúng là một nguồn cảm hứng, cho phép chúng ta vẽ ra sự tương đồng giữa một mô hình rất cơ bản của não và cách chúng ta có thể bắt chước một số hành vi này thông qua các mạng thần kinh nhân tạo. Mô hình mạng lưới thần kinh đầu tiên đến từ McCulloch và Pitts vào năm 1943.
Mạng này là một phân loại nhị phân, có khả năng nhận ra hai loại khác nhau dựa trên một số đầu vào. Vấn đề là các trọng số được sử dụng để xác định nhãn lớp cho một đầu vào nhất định cần phải được điều chỉnh thủ công bởi con người - loại mô hình này rõ ràng không mở rộng quy mô tốt nếu một người vận hành được yêu cầu can thiệp. Sau đó, vào những năm 1950, thuật toán Perceptron đã được Rosenblatt ra đời - mô hình này có thể tự động tìm hiểu trọng số cần thiết để phân loại đầu vào (không cần sự can thiệp của con người). Một ví dụ về kiến trúc Perceptron có thể được nhìn thấy ở hình 1.
Trên thực tế, quy trình huấn luyện tự động này đã hình thành cơ sở của Stochastic Gradient Descent (SGD) vẫn được sử dụng để huấn luyện các mạng thần kinh rất sâu ngày nay.2: Ví dụ về kiến trúc Perceptron [1] 15 CHƯƠNG 1: TÌM HIỂU DEEP LEARNING Trong khoảng thời gian này, các kỹ thuật dựa trên Perceptron gặp phải những phản ứng trái chiều trong cộng đồng mạng thần kinh. Tuy nhiên, một chứng minh vào năm 1969 của Minsky và Papert đã trì trệ các nghiên cứu về mạng thần kinh trong gần một thập kỷ. Công trình của họ đã chứng minh rằng một Perceptron với hàm kích hoạt tuyến tính (bất kể độ sâu) chỉ đơn thuần là một bộ phân loại tuyến tính, không thể giải quyết các bài toán phi tuyến. Ví dụ kinh điển của một bài toán phi tuyến là bộ dữ liệu XOR trong hình 1.3: Bài toán phi tuyến trong bộ dữ liệu XOR [1] Hơn nữa, các lập luận rằng (vào thời điểm đó) không có các tài nguyên tính toán cần thiết để xây dựng các mạng thần kinh lớn, sâu (trong nhận thức muộn màng, chúng hoàn toàn chính xác).
Chỉ riêng điều này đã gần như giết chết các nghiên cứu về mạng thần kinh. May mắn thay, thuật toán backpropagation và nghiên cứu của Werbos (1974), Rumelhart (1986), và LeCun (1998) đã có thể hồi sinh các mạng thần kinh từ những gì có thể là một sự sụp đổ sớm. Nghiên cứu của họ trong thuật toán backpropagation cho phép các mạng thần kinh chuyển tiếp nhiều lớp có thể được huấn luyện (Hình 1. 16 CHƯƠNG 1: TÌM HIỂU DEEP LEARNING Hình 1.4: Mạng thần kinh chuyển tiếp nhiều lớp [1] Kết hợp với các hàm kích hoạt phi tuyến, các nhà nghiên cứu giờ đây có thể tìm hiểu các chức năng phi tuyến và giải quyết bài toán XOR, mở ra cánh cổng cho một lĩnh vực nghiên cứu hoàn toàn mới trong mạng thần kinh.
Thuật toán backpropagation là nền tảng của các mạng thần kinh hiện đại cho phép chúng ta huấn luyện hiệu quả các mạng thần kinh và 'dạy' chúng học hỏi từ những sai lầm của chúng. Nhưng ngay cả như vậy, tại thời điểm này: (1) máy tính chậm (so với các máy hiện đại) (2) thiếu các bộ huấn luyện lớn, được dán nhãn, các nhà nghiên cứu đã không thể huấn luyện các mạng thần kinh có nhiều hơn hai lớp ẩn. Ngày nay, hóa thân mới nhất của các mạng thần kinh, như chúng ta biết, là học sâu. Điều khiến học sâu khác biệt với các hóa thân trước đây của nó là chúng ta có phần cứng nhanh hơn, chuyên biệt hơn với dữ liệu huấn luyện có sẵn nhiều hơn.
Bây giờ chúng ta có thể huấn luyện các mạng với nhiều lớp ẩn hơn, có khả năng học tập phân cấp. Trong đó, các khái niệm đơn giản được học ở các lớp dưới, và các mẫu trừu tượng hơn so với các lớp cao hơn của mạng. Trong nhiều ứng dụng, CNN hiện được coi là phương pháp phân loại hình ảnh mạnh nhất và hiện đang chịu trách nhiệm thúc đẩy sự tiến lên hiện đại trong các lĩnh vực thị giác máy tính. 17 CHƯƠNG 1: TÌM HIỂU DEEP LEARNING 1.
HỌC PHÂN CẤP Các thuật toán học máy (nói chung) có 3 loại - học tập có giám sát, không giám sát và bán giám sát. Trong trường hợp được giám sát, một thuật toán học máy được đưa vào cả một tập hợp đầu vào và đầu ra mục tiêu. Thuật toán sau đó cố gắng tìm hiểu các mẫu có thể được sử dụng để tự động lập bản đồ các điểm dữ liệu đầu vào đến đầu ra mục tiêu chính xác của chúng. Học tập có giám sát tương tự như có một giáo viên xem bạn làm bài kiểm tra.
Với kiến thức trước đây, bạn cố gắng hết sức để đánh dấu câu trả lời đúng trong bài kiểm tra của bạn; tuy nhiên, nếu bạn không chính xác, giáo viên của bạn hướng dẫn bạn hướng tới một dự đoán tốt hơn, có giáo dục hơn vào lần tới. Trong trường hợp không được giám sát, các thuật toán học máy cố gắng tự động khám phá và học hỏi chỉ với dữ liệu đầu vào, mà không có bất kì gợi ý. Trong trường hợp này, học sinh cố gắng nhóm các câu hỏi và câu trả lời tương tự với nhau, mặc dù học sinh không biết câu trả lời chính xác là gì và giáo viên không ở đó để cung cấp cho họ câu trả lời thực sự. Học tập không giám sát rõ ràng là một vấn đề khó khăn hơn so với học tập có giám sát.
Trong bối cảnh học máy được áp dụng để phân loại hình ảnh, mục tiêu của thuật toán học máy là lấy các bộ hình ảnh này và xác định các mẫu có thể được sử dụng để phân biệt các lớp/đối tượng hình ảnh khác nhau. Trước đây, chúng ta đã sử dụng các đặc trưng được thiết kế thủ công để định lượng nội dung của một hình ảnh - chúng ta hiếm khi sử dụng cường độ pixel thô làm đầu vào cho các mô hình học máy, vốn phổ biến với học sâu hiện nay. Đối với mỗi hình ảnh trong bộ dữ liệu, chúng ta đã thực hiện trích xuất đặc trưng hoặc quá trình lấy hình ảnh đầu vào, định lượng nó theo một số thuật toán (được gọi là trình trích xuất đặc trưng hoặc mô tả hình ảnh) và trả về vector nhằm định lượng nội dung của hình ảnh.1 mô tả quá trình định lượng một hình ảnh có chứa thuốc viên theo toa thông qua một loạt các bộ mô tả màu sắc, kết cấu và hình dạng. 18 CHƯƠNG 1: TÌM HIỂU DEEP LEARNING Hình 1.1: Mô tả quá trình định lượng một hình ảnh thuốc viên [1] Trong mỗi tình huống này, một thuật toán được xác định bằng tay để định lượng và mã hóa một khía cạnh cụ thể của một hình ảnh (ví dụ: hình dạng, kết cấu, màu sắc, v.
Với hình ảnh đầu vào pixel, chúng ta sẽ áp dụng thuật toán được xác định bằng tay cho các pixel và đổi lại nhận được một vector đặc trưng định lượng nội dung hình ảnh - bản thân các pixel hình ảnh không phục vụ mục đích nào khác ngoài việc là đầu vào cho quá trình trích xuất đặc trưng. Học sâu, và đặc biệt là mạng thần kinh tích chập, có một cách tiếp cận khác. Thay vì xác định bằng tay một bộ quy tắc và thuật toán để trích xuất các đặc trưng từ hình ảnh, các đặc trưng này thay vào đó được tự động học hỏi từ quá trình huấn luyện. Sử dụng học sâu, chúng ta cố gắng hiểu vấn đề về mặt phân cấp các khái niệm.
Mỗi khái niệm được xây dựng trên những khái niệm khác. Các khái niệm trong các lớp cấp thấp hơn của mạng mã hóa một số đại diện cơ bản của vấn đề, trong khi các lớp cấp cao hơn sử dụng các lớp cơ bản này để tạo thành các khái niệm trừu tượng hơn. Việc học phân cấp này cho phép loại bỏ hoàn toàn quy trình trích xuất đặc trưng được thiết kế thủ công và coi CNN là người học đầu cuối. Với một hình ảnh, chúng ta cung cấp các giá trị cường độ pixel làm đầu vào cho CNN.
Một loạt các lớp ẩn được sử dụng để trích xuất các đặc trưng từ hình ảnh đầu vào. Những lớp ẩn này xây dựng trên nhau theo cách phân cấp.