Công nghệ Deep Learning là gì?

Công nghệ Deep Learning là gì?

Deep Learning là gì?

Deep Learning (tiếng việt là Học sâu) là một kỹ thuật máy học dạy máy tính làm những gì giống với con người. Công nghệ này cho phép ô tô tự lái, cảnh báo biển báo dừng, phân biệt người đi bộ với cột đèn hay để điều khiển bằng giọng nói trên điện thoại, máy tính bảng, TV và loa thông minh. Deep Learning đang được rất nhiều người chú ý gần đây bởi vì nó đạt được kết quả mà trước đây không thể thực hiện được.

Trong Deep Learning, một mô hình máy tính học cách thực hiện các nhiệm vụ phân loại trực tiếp từ hình ảnh, văn bản hoặc âm thanh. Các mô hình học sâu có thể đạt được độ chính xác cao, đôi khi vượt quá hiệu suất ở cấp độ con người. Các mô hình được đào tạo bằng cách sử dụng một tập hợp lớn dữ liệu được gắn nhãn và kiến ​​trúc mạng nơ-ron chứa nhiều lớp.

Tại sao Deep Learning lại quan trọng

Làm thế nào mà Deep Learning lại đạt được kết quả ấn tượng như vậy?

Trả lời cho câu hỏi trên, đó là độ chính xác. Deep Learning đạt được độ chính xác nhận dạng ở cấp độ cao hơn bao giờ hết. Điều này giúp thiết bị điện tử tiêu dùng đáp ứng được kỳ vọng của người dùng và nó rất quan trọng đối với các ứng dụng quan trọng về an toàn như ô tô không người lái. Những tiến bộ gần đây trong Deep Learning đã được cải thiện đến mức Deep Learning vượt trội hơn con người trong một số nhiệm vụ như phân loại đối tượng trong hình ảnh.

Trong khi Deep Learning lần đầu tiên được đưa ra lý thuyết vào những năm 1980, có hai lý do chính khiến nó chỉ trở nên hữu ích trong thời gian gần đây:

  1. Deep Learning yêu cầu một lượng lớn dữ liệu được thu thập. Ví dụ, phát triển ô tô không người lái đòi hỏi hàng triệu hình ảnh và hàng nghìn giờ video.
  2. Deep Learning đòi hỏi khả năng tính toán đáng kể . GPU hiệu suất cao có kiến ​​trúc song song hiệu quả cho việc học sâu. Khi được kết hợp với các cụm hoặc điện toán đám mây, điều này cho phép các nhóm phát triển giảm thời gian đào tạo cho một mạng học sâu từ vài tuần xuống còn vài giờ hoặc ít hơn.

Một số ví dụ áp dụng trong công việc của Deeap Learning

Ứng dụng Deep Learning được sử dụng trong các ngành công nghiệp từ lái xe tự động đến các thiết bị y tế.

Lái xe tự động: Các nhà nghiên cứu ô tô đang sử dụng Deep Learning để tự động phát hiện các đối tượng như biển báo dừng và đèn giao thông. Ngoài ra, học sâu được sử dụng để phát hiện người đi bộ, giúp giảm thiểu tai nạn.

Không gian vũ trụ và quốc phòng: Deep Learning được sử dụng để xác định các đối tượng từ vệ tinh định vị các khu vực quan tâm và xác định các khu vực an toàn hoặc không an toàn cho quân đội.

Nghiên cứu y tế: Các nhà nghiên cứu ung thư đang sử dụng Deep Learning để tự động phát hiện các tế bào ung thư. Các nhóm tại UCLA đã chế tạo một kính hiển vi tiên tiến cung cấp tập dữ liệu chiều cao được sử dụng để đào tạo ứng dụng học sâu nhằm xác định chính xác các tế bào ung thư.

Tự động hóa công nghiệp: Deep Learning đang giúp cải thiện sự an toàn của người lao động xung quanh máy móc hạng nặng bằng cách tự động phát hiện khi người hoặc vật ở trong khoảng cách không an toàn với máy móc.

Điện tử: Deep Learning đang được sử dụng trong việc dịch giọng nói và nghe tự động. Ví dụ: các thiết bị hỗ trợ gia đình phản hồi giọng nói của bạn và biết tùy chọn của bạn được cung cấp bởi các ứng dụng Deep Learning.

Cách hoạt động của Deep Learning

Hầu hết các phương pháp Deep Learning sử dụng kiến ​​trúc mạng nơ-ron , đó là lý do tại sao các mô hình Deep Learning thường được gọi là mạng nơ-ron sâu.

Thuật ngữ "sâu" thường đề cập đến số lượng các lớp ẩn trong mạng nơ-ron. Mạng nơ-ron truyền thống chỉ chứa 2-3 lớp ẩn, trong khi mạng sâu có thể có tới 150 lớp.

Các mô hình Deep Learning được đào tạo bằng cách sử dụng tập hợp lớn dữ liệu được gắn nhãn và kiến ​​trúc mạng nơ-ron học các tính năng trực tiếp từ dữ liệu mà không cần trích xuất tính năng thủ công.

Cách hoạt động của Deep Learning

Hình 1: Mạng nơ-ron, được tổ chức theo lớp bao gồm một tập hợp các nút được kết nối với nhau. Mạng có thể có hàng chục hoặc hàng trăm lớp ẩn.

Một trong những loại mạng nơ-ron sâu phổ biến nhất được biết đến là mạng nơ-ron tích tụ (CNN hoặc ConvNet) . CNN kết hợp các tính năng đã học với dữ liệu đầu vào và sử dụng các lớp tích hợp 2D, làm cho kiến ​​trúc này rất phù hợp để xử lý dữ liệu 2D, chẳng hạn như hình ảnh.

CNN loại bỏ nhu cầu trích xuất đối tượng địa lý thủ công , vì vậy bạn không cần xác định các đối tượng địa lý được sử dụng để phân loại hình ảnh. CNN hoạt động bằng cách trích xuất các tính năng trực tiếp từ hình ảnh. Các tính năng liên quan không được đào tạo trước; chúng được học trong khi mạng đào tạo về bộ sưu tập hình ảnh. Việc trích xuất tính năng tự động này làm cho các mô hình Deep Learning có độ chính xác cao đối với các tác vụ thị giác máy tính như phân loại đối tượng.

Cách hoạt động của Deep Learning

Hình 2: Ví dụ về một mạng có nhiều lớp chập. Các bộ lọc được áp dụng cho mỗi hình ảnh đào tạo ở các độ phân giải khác nhau và đầu ra của mỗi hình ảnh biến đổi đóng vai trò là đầu vào cho lớp tiếp theo.

 CNN học cách phát hiện các đặc điểm khác nhau của hình ảnh bằng cách sử dụng hàng chục hoặc hàng trăm lớp ẩn. Mỗi lớp ẩn làm tăng độ phức tạp của các tính năng hình ảnh đã học. Ví dụ: lớp ẩn đầu tiên có thể học cách phát hiện các cạnh và lớp cuối cùng học cách phát hiện các hình dạng phức tạp hơn đặc biệt dành cho hình dạng của đối tượng mà chúng ta đang cố gắng nhận ra.

Sự khác biệt giữa Machine Learning và Deep Learning là gì?

Deep Learning (Học sâu) khác với Machine Learning (Máy học) bởi nó là một hình thức học máy chuyên biệt. Quy trình công việc học máy bắt đầu với các tính năng có liên quan được trích xuất thủ công từ hình ảnh. Các tính năng sau đó được sử dụng để tạo ra một mô hình phân loại các đối tượng trong hình ảnh. Với quy trình học tập sâu, các tính năng liên quan được tự động trích xuất từ ​​hình ảnh. Ngoài ra, Deep Learning (Học sâu) thực hiện “học từ đầu đến cuối” - nơi một mạng được cung cấp dữ liệu thô và một nhiệm vụ phải thực hiện, chẳng hạn như phân loại và nó học cách thực hiện điều này một cách tự động.
Một điểm khác biệt chính khác là thuật toán học sâu mở rộng quy mô với dữ liệu, trong khi học tập nông hội tụ. Học nông đề cập đến các phương pháp học máy cố định ở một mức hiệu suất nhất định khi bạn thêm nhiều ví dụ và dữ liệu đào tạo vào mạng.
Một ưu điểm chính của mạng Deep Learning (Học sâu) là chúng thường tiếp tục cải thiện khi kích thước dữ liệu của bạn tăng lên.

Sự khác biệt giữa Machine Learning và Deep Learning

Hình 3. So sánh phương pháp học máy để phân loại phương tiện (trái) với học sâu (phải).
Trong Machine Learning (Máy học),bạn chọn các tính năng và bộ phân loại theo cách thủ công để sắp xếp hình ảnh. Với học sâu, các bước trích xuất tính năng và mô hình hóa là tự động.

Nên chọn giữa Học máy hay Học sâu

Machine Learning (Máy học) cung cấp nhiều kỹ thuật và mô hình khác nhau mà bạn có thể chọn dựa trên ứng dụng của mình, kích thước dữ liệu bạn đang xử lý và loại vấn đề bạn muốn giải quyết. Một ứng dụng học sâu thành công yêu cầu một lượng dữ liệu rất lớn (hàng nghìn hình ảnh) để đào tạo mô hình, cũng như GPU hoặc đơn vị xử lý đồ họa, xử lý nhanh dữ liệu của bạn.

Khi lựa chọn giữa Machine Learning (Máy học) và Deep Learning (Học sâu),hãy cân nhắc xem bạn có GPU hiệu suất cao và nhiều dữ liệu được gắn nhãn hay không. Nếu bạn không có một trong hai thứ đó, bạn có thể sử dụng Machine Learning (Máy học) thay vì Deep Learning (Học sâu). Deep Learning (Học sâu) thường phức tạp hơn, vì vậy bạn sẽ cần ít nhất vài nghìn hình ảnh để có được kết quả đáng tin cậy. Có một GPU hiệu suất cao có nghĩa là mô hình sẽ mất ít thời gian hơn để phân tích tất cả những hình ảnh đó.

Cách tạo và đào tạo mô hình học sâu

Ba cách phổ biến nhất mà mọi người sử dụng Deep Learning (Học sâu) để thực hiện phân loại đối tượng là:

Đào tạo từ Scratch

Để đào tạo một mạng sâu từ đầu, bạn thu thập một tập dữ liệu có nhãn rất lớn và thiết kế một kiến ​​trúc mạng sẽ tìm hiểu các tính năng và mô hình. Điều này tốt cho các ứng dụng mới hoặc các ứng dụng sẽ có một số lượng lớn các danh mục đầu ra. Đây là cách tiếp cận ít phổ biến hơn vì với lượng lớn dữ liệu và tốc độ học, các mạng này thường mất vài ngày hoặc vài tuần để đào tạo.

Chuyển giao học tập

Hầu hết các ứng dụng học sâu sử dụng cách tiếp cận học tập chuyển giao , một quá trình bao gồm việc tinh chỉnh một mô hình được đào tạo trước. Bạn bắt đầu với một mạng hiện có, chẳng hạn như AlexNet hoặc GoogLeNet và cấp dữ liệu mới chứa các lớp chưa biết trước đây. Sau khi thực hiện một số chỉnh sửa đối với mạng, bây giờ bạn có thể thực hiện một tác vụ mới, chẳng hạn như chỉ phân loại chó hoặc mèo thay vì 1000 đối tượng khác nhau. Điều này cũng có lợi thế là cần ít dữ liệu hơn nhiều (xử lý hàng nghìn hình ảnh, thay vì hàng triệu hình ảnh),do đó thời gian tính toán giảm xuống còn vài phút hoặc vài giờ.

Học chuyển giao yêu cầu một giao diện với phần bên trong của mạng đã có từ trước, vì vậy nó có thể được sửa đổi và nâng cao một cách phẫu thuật cho nhiệm vụ mới. MATLAB ® có các công cụ và chức năng được thiết kế để giúp bạn thực hiện việc học chuyển tiếp.

Khai thác tính năng

Một cách tiếp cận ít phổ biến hơn, chuyên biệt hơn để học sâu là sử dụng mạng làm công cụ trích xuất tính năng . Vì tất cả các lớp có nhiệm vụ học các tính năng nhất định từ hình ảnh, chúng tôi có thể kéo các tính năng này ra khỏi mạng bất kỳ lúc nào trong quá trình đào tạo. Sau đó, các tính năng này có thể được sử dụng làm đầu vào cho mô hình học máy như máy vectơ hỗ trợ (SVM).

Tăng tốc mô hình học sâu với GPU

Việc đào tạo một mô hình học sâu có thể mất nhiều thời gian, từ vài ngày đến vài tuần. Sử dụng tăng tốc GPU có thể tăng tốc quá trình một cách đáng kể. Sử dụng MATLAB với GPU giúp giảm thời gian cần thiết để đào tạo mạng và có thể cắt giảm thời gian đào tạo cho vấn đề phân loại hình ảnh từ ngày xuống còn giờ. Trong việc đào tạo các mô hình học sâu, MATLAB sử dụng GPU (khi có sẵn) mà không yêu cầu bạn hiểu cách lập trình GPU một cách rõ ràng.

Ứng dụng Deep Learning (Học sâu)

Mô hình mạng nơ ron sâu được đào tạo trước có thể được sử dụng để nhanh chóng áp dụng Deep Learning (Học sâu) vào các vấn đề của bạn bằng cách thực hiện học chuyển giao hoặc trích xuất tính năng. Đối với người dùng MATLAB, một số mô hình có sẵn bao gồm AlexNet, VGG-16 và VGG-19, cũng như các mô hình Caffe (ví dụ: từ Caffe Model Zoo) được nhập bằng importCaffeNetwork.

Deep Learning (Học sâu) với MATLAB

MATLAB giúp việc học sâu trở nên dễ dàng. Với các công cụ và chức năng để quản lý các tập dữ liệu lớn, MATLAB cũng cung cấp các hộp công cụ chuyên biệt để làm việc với máy học, mạng nơ-ron, thị giác máy tính và lái xe tự động.

Chỉ với một vài dòng mã, MATLAB cho phép bạn học sâu mà không cần phải là một chuyên gia. Bắt đầu nhanh chóng, tạo và trực quan hóa các mô hình cũng như triển khai các mô hình tới các máy chủ và thiết bị nhúng.

Các nhóm thành công khi sử dụng MATLAB để Deep Learning (Học sâu) vì nó cho phép bạn:

1. Tạo và Trực quan hóa Mô hình Chỉ với Một vài Dòng Mã
MATLAB cho phép bạn xây dựng các mô hình Deep Learning (Học sâu) với mã tối thiểu. Với MATLAB, bạn có thể nhanh chóng nhập các mô hình được đào tạo trước và trực quan hóa và gỡ lỗi các kết quả trung gian khi bạn điều chỉnh các thông số đào tạo.
2. Thực hiện Học sâu mà không cần phải là một chuyên gia
Bạn có thể sử dụng MATLAB để tìm hiểu và đạt được kiến ​​thức chuyên môn trong lĩnh vực Deep Learning (Học sâu). Hầu hết chúng ta chưa bao giờ tham gia một khóa học về học sâu. Chúng tôi phải học trong công việc. MATLAB làm cho việc học về lĩnh vực này trở nên thực tế và dễ tiếp cận. Ngoài ra, MATLAB cho phép các chuyên gia miền thực hiện học sâu - thay vì giao nhiệm vụ cho các nhà khoa học dữ liệu, những người có thể không biết ngành hoặc ứng dụng của bạn.
3. Tự động hóa việc ghi nhãn sự thật trên mặt đất cho hình ảnh và video
MATLAB cho phép người dùng gắn nhãn tương tác các đối tượng trong hình ảnh và có thể tự động hóa việc gắn nhãn sự thật cơ bản trong video để đào tạo và thử nghiệm các mô hình Deep Learning (Học sâu). Cách tiếp cận tương tác và tự động này có thể dẫn đến kết quả tốt hơn trong thời gian ngắn hơn.
4. Tích hợp Học sâu trong một Quy trình làm việc
MATLAB có thể hợp nhất nhiều miền trong một quy trình làm việc. Với MATLAB, bạn có thể thực hiện suy nghĩ và lập trình của mình trong một môi trường. Nó cung cấp các công cụ và chức năng cho Deep Learning (Học sâu) và cũng cho một loạt các miền hỗ trợ cho các thuật toán học sâu, chẳng hạn như xử lý tín hiệu, thị giác máy tính và phân tích dữ liệu.
Với MATLAB, bạn có thể tích hợp kết quả vào các ứng dụng hiện có của mình. MATLAB tự động hóa việc triển khai các mô hình Deep Learning (Học sâu) của bạn trên các hệ thống doanh nghiệp, cụm, đám mây và thiết bị nhúng.

Tìm hiểu thêm: