Thuật toán thiết kế các mô hình học máy (Machine learning) tối ưu hóa nhanh hơn tới 200 lần so với các phương pháp truyền thống.
Một lĩnh vực mới trong trí tuệ nhân tạo (AI) liên quan đến việc sử dụng các thuật toán để tự động thiết kế các hệ thống máy học (Machine learning) được gọi là mạng thần kinh, chính xác và hiệu quả hơn các hệ thống được phát triển bởi các kỹ sư của con người. Nhưng cái gọi là kỹ thuật tìm kiếm kiến trúc thần kinh (NAS) này rất “đắt tiền” về mặt tính toán.
Một thuật toán NAS tiên tiến được Google phát triển gần đây để chạy trên một nhóm các đơn vị xử lý đồ họa (GPU) đã mất 48.000 giờ GPU (Graphics Processing Unit) để tạo ra một mạng thần kinh tích chập duy nhất, được sử dụng cho các nhiệm vụ phát hiện và phân loại hình ảnh. Google có thể chạy song song hàng trăm GPU và phần cứng chuyên dụng khác, nhưng điều đó nằm ngoài tầm với của nhiều người khác.
Trong một bài báo được trình bày tại Hội nghị quốc tế về đại diện học tập vào tháng 5, các nhà nghiên cứu MIT đã mô tả một thuật toán NAS có thể trực tiếp học các mạng thần kinh tích chập chuyên dụng (CNNs) cho các nền tảng phần cứng đích – khi chạy trên bộ dữ liệu hình ảnh khổng lồ – chỉ trong 200 giờ GPU , có thể cho phép sử dụng rộng rãi hơn các loại thuật toán này.
Các nhà nghiên cứu và các công ty thiếu tài nguyên có thể được hưởng lợi từ thuật toán để tiết kiệm thời gian và chi phí, các nhà nghiên cứu nói. Mục tiêu rộng lớn là thành công trong việc dân chủ hóa AI, ông cho biết, đồng tác giả Song Han, trợ lý giáo sư về kỹ thuật điện và khoa học máy tính và là nhà nghiên cứu tại Phòng thí nghiệm Công nghệ Microsystems tại MIT. “Chúng tôi muốn cho phép cả chuyên gia AI và không chuyên gia thiết kế hiệu quả các kiến trúc mạng thần kinh với giải pháp nút nhấn chạy nhanh trên một phần cứng cụ thể”.
Han nói thêm rằng các thuật toán NAS như vậy sẽ không bao giờ thay thế các kỹ sư của con người. Mục đích là để giảm tải công việc tẻ nhạt lặp đi lặp lại đi kèm với việc thiết kế và hoàn thiện kiến trúc mạng thần kinh, ông nói, Han, người được hai nhà nghiên cứu trong nhóm của mình, Han Cai và Ligeng Zhu tham gia.
Trong công việc của họ, các nhà nghiên cứu đã phát triển các cách để xóa các thành phần thiết kế mạng thần kinh không cần thiết, để giảm thời gian tính toán và chỉ sử dụng một phần bộ nhớ phần cứng để chạy thuật toán NAS. Một cải tiến bổ sung đảm bảo mỗi CNN xuất ra chạy hiệu quả hơn trên các nền tảng phần cứng cụ thể – CPU, GPU và thiết bị di động – so với các thiết kế theo phương pháp truyền thống. Trong các thử nghiệm, CNN của các nhà nghiên cứu được đo nhanh hơn 1,8 lần trên điện thoại di động so với các mẫu tiêu chuẩn vàng theo truyền thống với độ chính xác tương tự.
Kiến trúc của CNN bao gồm các lớp tính toán với các tham số có thể điều chỉnh, được gọi là bộ lọc, bộ lọc và các kết nối có thể có giữa các bộ lọc đó. Các bộ lọc xử lý các pixel hình ảnh trong các ô vuông – chẳng hạn như 3×3, 5×5 hoặc 7×7 – với mỗi bộ lọc bao phủ một hình vuông. Các bộ lọc về cơ bản di chuyển trên hình ảnh và kết hợp tất cả các màu của lưới pixel được bao phủ của chúng thành một pixel. Các lớp khác nhau có thể có các bộ lọc có kích thước khác nhau và kết nối để chia sẻ dữ liệu theo những cách khác nhau. Đầu ra là một hình ảnh cô đọng – từ thông tin kết hợp với tất cả các bộ lọc – có thể dễ dàng phân tích hơn bằng máy tính.
Bởi vì số lượng kiến trúc có thể lựa chọn – được gọi là không gian tìm kiếm trên mạng – rất lớn, nên việc áp dụng NAS để tạo một mạng lưới thần kinh trên các bộ dữ liệu hình ảnh lớn bị cấm tính toán. Các kỹ sư thường chạy NAS trên các bộ dữ liệu proxy nhỏ hơn và chuyển các kiến trúc CNN đã học của họ sang tác vụ đích. Phương pháp khái quát hóa này làm giảm độ chính xác của mô hình, tuy nhiên. Hơn nữa, kiến trúc xuất ra tương tự cũng được áp dụng cho tất cả các nền tảng phần cứng, dẫn đến các vấn đề hiệu quả.
Các nhà nghiên cứu đã đào tạo và thử nghiệm thuật toán NAS mới của họ về một nhiệm vụ phân loại hình ảnh trực tiếp trong bộ dữ liệu ImageNet, chứa hàng triệu hình ảnh trong một nghìn lớp. Trước tiên, họ đã tạo một không gian tìm kiếm chứa tất cả các “ứng cử viên” có thể là CNN, đường dẫn – nghĩa là cách các lớp và bộ lọc kết nối để xử lý dữ liệu. Điều này cho phép thuật toán NAS “trị vì” miễn phí để tìm một kiến trúc tối ưu.
Điều này thường có nghĩa là tất cả các đường dẫn có thể phải được lưu trữ trong bộ nhớ, vượt quá giới hạn bộ nhớ GPU. Để giải quyết vấn đề này, các nhà nghiên cứu tận dụng một kỹ thuật gọi là binarization cấp độ đường dẫn, chỉ lưu trữ một đường dẫn được lấy mẫu tại một thời điểm và tiết kiệm một mức độ lớn trong mức tiêu thụ bộ nhớ. Họ kết hợp việc tạo nhị phân này với việc cắt tỉa mức đường dẫn, một kỹ thuật mà theo truyền thống là học những nơ ron thần kinh nào trong mạng lưới thần kinh có thể bị xóa mà không ảnh hưởng đến đầu ra. Tuy nhiên, thay vì loại bỏ các nơ-ron thần kinh, thuật toán NAS của các nhà nghiên cứu sẽ cắt xén toàn bộ các đường dẫn, thay đổi hoàn toàn kiến trúc của mạng nơ-ron.
Trong đào tạo, tất cả các đường dẫn ban đầu được đưa ra cùng một xác suất để lựa chọn. Sau đó, thuật toán theo dõi các đường dẫn – chỉ lưu trữ một đường dẫn – để lưu ý độ chính xác và mất (một hình phạt bằng số được chỉ định cho các dự đoán không chính xác) của các kết quả đầu ra của chúng. Sau đó, nó điều chỉnh xác suất của các đường dẫn để tối ưu hóa cả độ chính xác và hiệu quả. Cuối cùng, thuật toán cắt xén tất cả các đường dẫn có xác suất thấp và chỉ giữ đường dẫn có xác suất cao nhất – đó là kiến trúc CNN cuối cùng.
Một cải tiến quan trọng khác là làm cho thuật toán NAS nhận thức được phần cứng, theo Han Han, có nghĩa là nó sử dụng độ trễ trên mỗi nền tảng phần cứng làm tín hiệu phản hồi để tối ưu hóa kiến trúc. Ví dụ, để đo độ trễ này trên các thiết bị di động, các công ty lớn như Google sẽ phải sử dụng như một “trang trại” trên thiết bị di động, rất tốn kém. Thay vào đó, các nhà nghiên cứu đã xây dựng một mô hình dự đoán độ trễ chỉ bằng một điện thoại di động.
Đối với mỗi lớp được chọn của mạng, thuật toán lấy mẫu kiến trúc trên mô hình dự đoán độ trễ đó. Sau đó, nó sử dụng thông tin đó để thiết kế một kiến trúc chạy càng nhanh càng tốt, trong khi đạt được độ chính xác cao. Trong các thí nghiệm, CNN của các nhà nghiên cứu đã chạy nhanh gần gấp đôi so với mô hình tiêu chuẩn vàng trên thiết bị di động.
Một kết quả thú vị, Han nói, là thuật toán NAS của họ đã thiết kế các kiến trúc CNN từ lâu đã bị coi là quá kém hiệu quả – nhưng, trong các thử nghiệm của các nhà nghiên cứu, chúng thực sự được tối ưu hóa cho một số phần cứng nhất định. Chẳng hạn, các kỹ sư về cơ bản đã ngừng sử dụng các bộ lọc 7×7, vì chúng đắt hơn về mặt tính toán so với nhiều bộ lọc nhỏ hơn. Tuy nhiên, thuật toán NAS của các nhà nghiên cứu đã tìm thấy kiến trúc với một số lớp bộ lọc 7×7 chạy tối ưu trên GPU. Đó là bởi vì GPU có độ song song cao – có nghĩa là chúng tính toán nhiều phép tính đồng thời – vì vậy có thể xử lý một bộ lọc lớn cùng một lúc hiệu quả hơn là xử lý nhiều bộ lọc nhỏ cùng một lúc.
“Điều này đi ngược lại với suy nghĩ của con người trước đây”, Han nói. “Không gian tìm kiếm càng lớn, bạn càng có thể tìm thấy nhiều thứ chưa biết. Bạn không biết liệu thứ gì đó sẽ tốt hơn trải nghiệm của con người trong quá khứ hay không. Hãy để AI tìm ra nó.”
Nguồn truyện:
Tài liệu được cung cấp bởi Viện Công nghệ Massachusetts . Bản gốc được viết bởi Rob Matheson. Lưu ý: Nội dung có thể được chỉnh sửa cho kiểu dáng và độ dài.
Tạp chí tham khảo :