Cần tìm kiếm mô hình AI tốt nhất cho vấn đề của bạn? Hãy thử Neural Architecture Search
Deep neural networks mang lại lợi thế lớn: Chúng thay thế 'kỹ thuật kỹ thuật đặc trưng' - một phần khó khăn và gian khổ của chu kỳ học máy cổ điển - bằng một quá trình từ đầu đến cuối tự động học cách trích xuất đặc trưng.
Tuy nhiên, việc tìm kiếm kiến trúc học sâu phù hợp cho ứng dụng của bạn có thể thách thức. Có nhiều cách bạn có thể cấu trúc và cấu hình một mạng neural, sử dụng các loại và kích thước lớp khác nhau, chức năng kích hoạt và các phép toán khác nhau. Mỗi kiến trúc đều có điểm mạnh và điểm yếu của nó. Và tùy thuộc vào ứng dụng và môi trường mà bạn muốn triển khai mạng neural của mình, bạn có thể có yêu cầu đặc biệt, như ràng buộc về bộ nhớ và tính toán.
Cách cổ điển để tìm kiếm một kiến trúc học sâu phù hợp là bắt đầu với một mô hình có vẻ hứa hẹn và dần dần sửa đổi và huấn luyện nó cho đến khi bạn tìm thấy cấu hình tốt nhất. Tuy nhiên, điều này có thể mất nhiều thời gian, với số lượng cấu hình đồ sộ và thời gian mà mỗi vòng huấn luyện và kiểm thử có thể mất.
Một lựa chọn thay thế cho thiết kế thủ công là “neural architecture search” (NAS), một loạt các kỹ thuật học máy có thể giúp khám phá các mạng neural tối ưu cho một vấn đề cụ thể. Neural architecture search là một lĩnh vực nghiên cứu lớn và hứa hẹn nhiều ứng dụng trong tương lai của học sâu.
Không gian tìm kiếm cho học sâu

Mặc dù có nhiều kỹ thuật tìm kiếm kiến trúc neural, chúng chủ yếu có một số điểm chung. Trong một bài báo có tựa đề “Neural Architecture Search: A Survey,” các nhà nghiên cứu tại Bosch và Đại học Freiburg phân tích NAS thành ba thành phần: không gian tìm kiếm, chiến lược tìm kiếm và chiến lược đánh giá hiệu suất.
Phần đầu tiên của chiến lược NAS là định nghĩa không gian tìm kiếm cho mạng neural mục tiêu. Thành phần cơ bản của mọi mô hình học sâu là lớp neural. Bạn có thể xác định số lượng và loại lớp để khám phá. Ví dụ, bạn có thể muốn mô hình học sâu của mình được tạo thành từ một loạt các lớp convolutional (CNN) và lớp kết nối đầy đủ. Bạn cũng có thể xác định cấu hình của các lớp, như số đơn vị, hoặc trong trường hợp của CNN, kích thước kernel, số bộ lọc và bước. Các yếu tố khác có thể được bao gồm trong không gian tìm kiếm như chức năng kích hoạt và các phép toán (các lớp pooling, các lớp dropout, v.v.).
Càng thêm các yếu tố vào không gian tìm kiếm, bạn sẽ có được tính linh hoạt hơn. Nhưng tự nhiên, các bậc tự do thêm vào mở rộng không gian tìm kiếm và tăng chi phí tìm kiếm kiến trúc học sâu tối ưu.
Các kiến trúc tiên tiến thường có nhiều nhánh của các lớp và yếu tố khác. Ví dụ, ResNet, một mô hình nhận diện hình ảnh phổ biến, sử dụng kết nối trực tiếp, trong đó đầu ra của một lớp không chỉ được cung cấp cho lớp tiếp theo mà còn cho các lớp nằm xa hơn. Các loại kiến trúc như vậy khó khăn hơn để khám phá với NAS vì chúng có nhiều bộ phận chuyển động hơn.
Một trong những kỹ thuật giúp giảm độ phức tạp của không gian tìm kiếm trong khi vẫn duy trì độ phức tạp của kiến trúc mạng neural là sử dụng “cells.” Trong trường hợp này, thuật toán NAS có thể tối ưu hóa các khối nhỏ một cách riêng biệt và sau đó sử dụng chúng kết hợp. Ví dụ, VGGNet, một mạng nhận diện hình ảnh nổi tiếng khác, được tạo thành từ các khối lặp lại bao gồm một lớp convolution, một chức năng kích hoạt và một lớp pooling. Thuật toán NAS có thể tối ưu hóa từng khối một cách riêng biệt và sau đó tìm ra cấu hình tốt nhất của các khối trong một mạng lớn.
Chiến lược tìm kiếm

Ngay cả không gian tìm kiếm cơ bản thường đòi hỏi nhiều thử nghiệm và lỗi để tìm ra kiến trúc học sâu tối ưu. Do đó, thuật toán tìm kiếm kiến trúc neural cũng cần một “chiến lược tìm kiếm.” Chiến lược tìm kiếm quyết định cách thuật toán NAS thử nghiệm với các mạng neural khác nhau.
Chiến lược cơ bản nhất là “tìm kiếm ngẫu nhiên,” trong đó thuật toán NAS ngẫu nhiên chọn một mạng neural từ không gian tìm kiếm, huấn luyện và kiểm tra nó, ghi lại kết quả và chuyển sang mạng tiếp theo. Tìm kiếm ngẫu nhiên rất tốn kém vì thuật toán NAS về cơ bản là cố gắng bằng mọi giá đi qua không gian tìm kiếm, lãng phí nguồn lực đắt đỏ để kiểm tra các giải pháp có thể được loại bỏ bằng các phương pháp dễ dàng hơn. Tùy thuộc vào sự phức tạp của không gian tìm kiếm, tìm kiếm ngẫu nhiên có thể mất nhiều ngày hoặc nhiều tuần GPU để xác minh mọi kiến trúc mạng neural có thể.
Có các kỹ thuật khác giúp tăng tốc quá trình tìm kiếm. Một ví dụ là tối ưu hóa Bayesian, bắt đầu với các lựa chọn ngẫu nhiên và dần dần điều chỉnh hướng tìm kiếm của mình khi thu thập thông tin về hiệu suất của các kiến trúc khác nhau.
Một chiến lược khác là đặt vấn đề tìm kiếm kiến trúc neural như một vấn đề học củng cố. Trong trường hợp này, môi trường của tác nhân học củng cố là không gian tìm kiếm, các hành động là cấu hình khác nhau của mạng neural và phần thưởng là hiệu suất của mạng. Tác nhân học củng cố bắt đầu với các sửa đổi ngẫu nhiên, nhưng theo thời gian, nó học chọn các cấu hình tạo ra cải thiện tốt hơn cho hiệu suất của mạng neural.
Các chiến lược tìm kiếm khác bao gồm thuật toán tiến hóa và tìm kiếm cây Monte Carlo. Mỗi chiến lược tìm kiếm có những ưu điểm và nhược điểm riêng, và kỹ sư phải tìm ra sự cân bằng phù hợp giữa “khám phá và khai thác,” có nghĩa là thử nghiệm các kiến trúc hoàn toàn mới hoặc điều chỉnh những kiến trúc đã chứng minh là hứa hẹn cho đến nay.
Chiến lược đánh giá hiệu suất
Khi thuật toán NAS đi qua không gian tìm kiếm, nó phải huấn luyện và kiểm tra mô hình học sâu để so sánh hiệu suất và chọn ra mạng neural tối ưu. Rõ ràng, việc huấn luyện đầy đủ trên mỗi mạng neural mất rất nhiều thời gian và đòi hỏi tài nguyên tính toán rất lớn.
Để giảm chi phí đánh giá mô hình học sâu, kỹ sư thuật toán NAS sử dụng “thước đo thay thế” có thể đo lường được mà không đòi hỏi huấn luyện đầy đủ của mạng neural.
Ví dụ, họ có thể huấn luyện mô hình của họ ít epoch hơn, trên bộ dữ liệu nhỏ hơn, hoặc trên dữ liệu độ phân giải thấp hơn. Mặc dù mô hình học sâu kết quả sẽ không đạt đến tiềm năng đầy đủ, những chế độ huấn luyện chất lượng thấp này cung cấp một cơ sở để so sánh các mô hình khác nhau với chi phí thấp hơn. Khi tập hợp các kiến trúc đã được chọn lọc thành một số mạng neural triển vọng, thuật toán NAS có thể thực hiện huấn luyện và kiểm tra chi tiết hơn của các mô hình.
Một cách khác để giảm chi phí đánh giá hiệu suất là khởi tạo các mô hình mới trên trọng số của các mô hình đã được huấn luyện trước đó. Được biết đến là học chuyển giao, thực hành này dẫn đến một sự hội tụ nhanh chóng hơn nhiều, điều này có nghĩa là mô hình học sâu sẽ cần ít epoch huấn luyện hơn. Học chuyển giao áp dụng khi mô hình nguồn và đích có kiến trúc tương thích.
Một công việc đang tiến triển
Tìm kiếm kiến trúc neural vẫn còn những thách thức cần vượt qua, như cung cấp giải thích vì sao một số kiến trúc tốt hơn các kiến trúc khác và giải quyết các ứng dụng phức tạp vượt xa khả năng phân loại hình ảnh đơn giản.
NAS vẫn là một lĩnh vực rất hữu ích và hấp dẫn đối với cộng đồng học sâu và có ứng dụng tuyệt vời cả về nghiên cứu học thuật lẫn máy học áp dụng.
Đôi khi, các công nghệ như NAS được mô tả như trí tuệ nhân tạo tạo ra trí tuệ nhân tạo của chính nó, làm cho con người trở nên dư thừa và đưa chúng ta đến gần đỉnh điểm trí tuệ nhân tạo. Nhưng trong thực tế, NAS là một ví dụ hoàn hảo về cách con người và hệ thống trí tuệ nhân tạo hiện đại có thể cùng nhau làm việc để giải quyết các vấn đề phức tạp. Con người sử dụng trực giác, kiến thức và lẽ thường để tìm ra các không gian vấn đề thú vị và định rõ ranh giới và kết quả dự kiến của chúng. Ngược lại, thuật toán NAS là những người giải quyết vấn đề rất hiệu quả có thể tìm kiếm không gian giải pháp và tìm ra kiến trúc mạng neural tốt nhất cho ứng dụng dự kiến.
Bài viết này được đăng ban đầu bởi Ben Dickson trên TechTalks, một xuất bản phẩm nghiên cứu xu hướng công nghệ, cách chúng ảnh hưởng đến cuộc sống và kinh doanh của chúng ta, và những vấn đề mà chúng giải quyết. Nhưng chúng tôi cũng thảo luận về mặt xấu của công nghệ, những hậu quả tối tăm của công nghệ mới và điều chúng ta cần phải chú ý. Bạn có thể đọc bài viết gốc tại đây.