Bước tới nội dung

Siêu tham số

Bách khoa toàn thư mở Wikipedia

Trong học máy, một siêu tham số (tiếng Anh: hyperparameter) là một tham số được thiết lập để xác định một phần có thể cấu hình được trong quá trình học của một mô hình. Siêu tham số có thể được phân thành siêu tham số của mô hình (ví dụ như cấu trúc và kích thước của một mạng thần kinh nhân tạo) hoặc siêu tham số của thuật toán (ví dụ như tốc độ học và kích thước lô của một bộ tối ưu hóa).[1] Chúng được gọi là siêu tham số để phân biệt với tham số thông thường mà mô hình trực tiếp học được từ dữ liệu.

Những điều cần cân nhắc khi chọn siêu tham số

Thời gian cần thiết để huấn luyện và kiểm thử một mô hình có thể phụ thuộc vào việc lựa chọn siêu tham số của mô hình đó.[2] Các siêu tham số thường là những giá trị số nguyên, khiến bài toán tối ưu hóa trở thành bài toán tối ưu hóa kiểu hỗn hợp (vừa tối ưu hóa tham số mô hình bình thường, vừa tối ưu hóa siêu tham số).[2] Một số siêu tham số phụ thuộc vào giá trị của các siêu tham số khác, chẳng hạn như việc kích thước của mỗi lớp ẩn trong một mạng thần kinh có thể phụ thuộc vào số lượng lớp.[2] Do đó, các siêu tham số có thể tạo thành không gian tổ hợp theo dạng phân cấp hoặc có điều kiện, trong đó một lựa chọn thiết kế sẽ quyết định liệu những siêu tham số nào có liên quan tới các siêu tham số khác hay không.[3]

Khả năng điều chỉnh

Phần lớn sự biến thiên về hiệu năng có thể quy về chỉ một vài siêu tham số.[4][2][5] Khả năng điều chỉnh của một thuật toán, một siêu tham số, hoặc một tổ hợp siêu tham số tương tác với nhau, là thước đo cho mức độ hiệu năng có thể đạt được nhờ việc điều chỉnh siêu tham số đó.[6]

Đối với LSTM, tốc độ học và tiếp theo là kích thước mạng là những siêu tham số quan trọng nhất,[7] trong khi việc chia lô (batching) và động lượng (momentum) hầu như không ảnh hưởng đến hiệu năng của nó.[8] Đối với mạng neuron tích chập (CNN), một nghiên cứu huấn luyện hơn 10.000 mô hình trên mười bộ dữ liệu phân loại ảnh cho thấy số lớp tích chập, tốc độ học, và tỷ lệ số neuron về giá trị 0 (dropout) là ba siêu tham số quan trọng nhất, trong khi số bộ lọc ở lớp kết nối đầy đủ và kích thước lô ảnh hưởng không đáng kể.[9]

Mặc dù một số nghiên cứu ủng hộ việc dùng kích thước lô nhỏ (mini-batch) lên đến hàng nghìn, các nghiên cứu khác lại cho thấy hiệu năng tốt nhất đạt được với kích thước lô nhỏ trong khoảng từ 2 đến 32.[10]

Tính ổn định

Tính ngẫu nhiên vốn có trong quá trình học có nghĩa là hiệu trên thí nghiệm của một siêu tham số chưa chắc phản ánh đúng hiệu năng thật của nó khi áp dụng trong thực tế.[2] Các phương pháp không ổn định trước những thay đổi đơn giản về siêu tham số, hạt giống ngẫu nhiên (random seed), hoặc thậm chí trước các cách cài đặt khác nhau của cùng một thuật toán, thì không thể tích hợp vào các hệ thống điều khiển có tính then chốt nếu không được đơn giản hóa và làm ổn định đáng kể.[11] Từ đó, việc lựa chọn siêu tham số có thể ảnh hưởng không chỉ đến hiệu năng dự đoán mà còn đến độ ổn định của kết quả đầu ra của mô hình trước các điều kiện đầu vào bị thay đổi hoặc nhiễu.[12][13] Tương tự, các mô hình học sâu trong thị giác máy tính cũng có thể cho kết quả khác biệt đáng kể tùy vào hạt giống ngẫu nhiên được chọn tới mức chênh nhau 2 điểm phần trăm về độ chính xác giữa hạt giống xui xẻo nhất và hạt giống may mắn nhất, ngay cả khi giữ nguyên kiến trúc và dữ liệu huấn luyện.[14]

Các thuật toán học tăng cường đặc biệt cần được đo hiệu năng qua một số lượng lớn hạt giống ngẫu nhiên, đồng thời cần đo độ nhạy của chúng trước các lựa chọn siêu tham số. Việc đánh giá các thuật toán này với một số lượng nhỏ hạt giống ngẫu nhiên sẽ không phản ánh đầy đủ hiệu năng do phương sai cao.[11] Một số phương pháp học tăng cường, ví dụ như DDPG (Deep Deterministic Policy Gradient, Gradient chính sách xác định sâu), nhạy cảm với lựa chọn siêu tham số hơn các phương pháp khác.[11]

Tối ưu hóa siêu tham số

Tối ưu hóa siêu tham số là bài toán lựa chọn một bộ siêu tham số tối ưu cho một thuật toán học nhằm tìm ra bộ giá trị siêu tham số giúp tạo ra một mô hình tối ưu.[15][2] Hàm mục tiêu trong bài toán này nhận đầu vào là một bộ giá trị siêu tham số và trả về giá trị mất mát tương ứng.[2] Để chọn ra bộ giá trị tối ưu, thông thường kiểm chứng chéo sẽ được sử dụng để ước lượng hiệu năng tổng quát hóa cho mô hình.[16]

Tìm kiếm lưới

Tìm kiếm lưới qua các giá trị khác nhau của hai siêu tham số. Với mỗi siêu tham số, 10 giá trị khác nhau được xem xét, do đó tổng cộng 100 tổ hợp khác nhau được đánh giá và so sánh. Đường viền màu xanh biểu thị các vùng cho kết quả tốt, trong khi đường viền màu đỏ biểu thị các vùng cho kết quả kém.

Phương pháp truyền thống cho việc tối ưu hóa siêu tham số là tìm kiếm lưới (grid search), hay còn gọi là quét tham số (parameter sweep). Đây đơn giản là một phép tìm kiếm vét cạn (brute-force search) bằng việc thử toàn bộ các tổ hợp trong một tập con các siêu tham số được xác định thủ công. Một thuật toán tìm kiếm lưới phải được dẫn dắt bởi một thước đo hiệu năng nào đó, thường được đo bằng kiểm chứng chéo trên tập huấn luyện[17] hoặc bằng cách đánh giá trên một tập kiểm định riêng.

Vì không gian tham số của một mô hình học máy có thể bao gồm các không gian giá trị liên tục hoặc không giới hạn đối với một số tham số nhất định, việc thiết lập giới hạn thủ công và rời rạc hóa có thể cần thiết trước khi áp dụng tìm kiếm lưới. Ví dụ, một bộ phân loại SVM biên mềm thông thường được trang bị hạt nhân RBF (radial basis function kernel) có ít nhất hai siêu tham số cần được điều chỉnh để đạt hiệu năng tốt trên dữ liệu chưa từng thấy: hằng số điều chuẩn C và siêu tham số hạt nhân γ.[18] Cả hai tham số đều liên tục, nên để thực hiện tìm kiếm lưới, ta cần chọn một tập hữu hạn các giá trị "hợp lý" cho mỗi tham số, ví dụ:

C{10,100,1000}
γ{0.1,0.2,0.5,1.0}

Tìm kiếm lưới khi đó sẽ huấn luyện một SVM với từng cặp (C, γ) trong tích Descartes của hai tập này, rồi đánh giá hiệu năng của chúng trên một tập kiểm định giữ lại riêng hoặc bằng kiểm chứng chéo nội bộ trên tập huấn luyện. Cuối cùng, thuật toán tìm kiếm lưới trả về bộ thiết lập đạt điểm số cao nhất trong quy trình kiểm định.

Tìm kiếm lưới gặp phải "lời nguyền chiều" (curse of dimensionality): khi có nhiều siêu tham số, số lượng tổ hợp các siêu tham số sẽ gia tăng đột biến. Mặc dù vậy, việc tính toán có thể được song song hóa dễ dàng vì các bộ thiết lập siêu tham số mà nó đánh giá thường độc lập với nhau.[16]

Tìm kiếm ngẫu nhiên

Tìm kiếm ngẫu nhiên qua các tổ hợp giá trị khác nhau của hai siêu tham số. Trong ví dụ này, 100 lựa chọn ngẫu nhiên khác nhau được đánh giá. Các thanh màu xanh lá cho thấy nhiều giá trị riêng lẻ hơn cho mỗi siêu tham số được xem xét so với tìm kiếm lưới.

Tìm kiếm ngẫu nhiên thay thế việc liệt kê vét cạn mọi tổ hợp bằng cách chọn chúng một cách ngẫu nhiên. Cách này có thể áp dụng đơn giản cho các siêu tham số rời rạc, nhưng cũng khái quát được sang các không gian liên tục và hỗn hợp. Một lợi thế so với tìm kiếm lưới là tìm kiếm ngẫu nhiên có thể khảo sát nhiều giá trị hơn cho các siêu tham số liên tục. Nó có thể vượt trội hơn tìm kiếm lưới, nhất là trong trường hợp chỉ một số ít siêu tham số thực sự ảnh hưởng đến hiệu năng cuối cùng của thuật toán học máy.[16][19]

Tìm kiếm ngẫu nhiên cũng có thể song song hóa dễ dàng, đồng thời cho phép đưa vào kiến thức có sẵn bằng cách chỉ định phân phối để lấy mẫu. Dù đơn giản, tìm kiếm ngẫu nhiên vẫn là một trong những cơ sở so sánh quan trọng để đánh giá hiệu năng của các phương pháp tối ưu hóa siêu tham số mới.[16]

Tối ưu hóa Bayes

Tập tin:Hyperparameter Optimization using Tree-Structured Parzen Estimators.svg
Các phương pháp như tối ưu hóa Bayes khảo sát không gian các lựa chọn siêu tham số một cách thông minh, bằng cách quyết định tổ hợp nào cần khảo sát tiếp theo dựa trên các quan sát trước đó.

Tối ưu hóa Bayes là một phương pháp tối ưu hóa toàn cục cho các hàm hộp đen có nhiễu. Khi áp dụng vào tối ưu hóa siêu tham số, tối ưu hóa Bayes xây dựng một mô hình xác suất ánh xạ từ giá trị siêu tham số đến hàm mục tiêu được đánh giá trên một tập kiểm định. Bằng cách liên tục đánh giá một bộ tổ hợp siêu tham số có triển vọng dựa trên mô hình hiện tại, rồi cập nhật lại mô hình đó, tối ưu hóa Bayes nhằm thu thập các quan sát tiết lộ nhiều thông tin nhất có thể về hàm này, đặc biệt là vị trí của điểm tối ưu. Nó cố gắng cân bằng giữa khám phá (các siêu tham số có kết quả không chắc chắn nhất) và khai thác (các siêu tham số được kỳ vọng gần với điểm tối ưu). Trong thực tế, tối ưu hóa Bayes đã được chứng minh giúp đạt kết quả tốt hơn với ít lần đánh giá hơn so với tìm kiếm lưới và tìm kiếm ngẫu nhiên, nhờ khả năng suy luận về chất lượng của các thử nghiệm trước khi chúng thực sự được chạy.[20][21][22][23]

Tuy nhiên, tối ưu hóa Bayes khó có thể được tính toán song song hóa hơn so với tìm kiếm lưới hay tìm kiếm ngẫu nhiêm vốn sử dụng các tổ hợp siêu tham số độc lập nhau, vì để tìm tổ hợp siêu tham số có triển vọng cho vòng sau cần giá trị hàm mục tiêu của tổ hợp siêu tham số từ vòng trước đó.[15][20]

Tối ưu hóa dựa trên gradient

Đối với một số thuật toán học cụ thể, có thể tính gradient của hàm mất mát cho mô hình hiện tại dựa theo siêu tham số rồi tối ưu hóa siêu tham số bằng suy giảm độ dốc tương tự như cách tính toán tham số thông thường. Kỹ thuật này vốn được áp dụng đối với mạng thần kinh nhân tạo,[24] nhưng cũng được mở rộng sang các mô hình khác như máy vectơ hỗ trợ[25] hoặc hồi quy logistic.[26]

Một hướng tiếp cận khác để thu được gradient theo siêu tham số là tính đạo hàm qua từng bước của quá trình huấn luyện. Khi huấn luyện một mô hình bằng suy giảm độ dốc với một siêu tham số λ cố định, mỗi bước cập nhật trọng số (từ wt sang wt+1) là một phép tính cụ thể phụ thuộc vào λ. Vì đây là một chuỗi phép tính khả vi nối tiếp nhau, ta có thể áp dụng quy tắc chuỗi (chính là công thức toán học đứng sau thuật toán lan truyền ngược dùng để huấn luyện mạng neuron) để tính đạo hàm của hàm mất mát cuối cùng theo λ, bằng cách đi ngược lại qua toàn bộ các bước huấn luyện đó.[27][28][29][30] Nhược điểm của cách này là cần lưu lại giá trị trọng số ở mọi bước huấn luyện, nên bộ nhớ sử dụng tăng theo số bước huấn luyện.

Một hướng tiếp cận khác không cần lưu lại từng bước huấn luyện, mà dựa trên định lý hàm ẩn: khi huấn luyện đã hội tụ đến trọng số tối ưu w, đạo hàm của hàm mất mát theo trọng số tại w phải bằng 0. Phương trình này liên hệ trực tiếp giữa wλ, cho phép tính ra đạo hàm của w theo λ mà không cần biết quá trình huấn luyện đã đi qua những bước nào. Tuy nhiên, công thức từ định lý hàm ẩn yêu cầu nghịch đảo ma trận Hessian. Trong khi đó, kích thước của ma trận này tăng theo bình phương số trọng số của mô hình, nên việc nghịch đảo trực tiếp là bất khả thi với các mô hình có hàng triệu trọng số. Một nghiên cứu gần đây đã đề xuất một cách xấp xỉ ổn định cho phép nghịch đảo ma trận đó mà không cần tính toán và lưu trữ toàn bộ ma trận, giúp phương pháp này áp dụng được cho các mô hình có hàng triệu siêu tham số.[31]

Trong một hướng tiếp cận khác, một siêu mạng (hypernetwork)—một mạng neuron riêng biệt nhận đầu vào là một giá trị siêu tham số λ và trả về trọng số tương ứng của mô hình chính—có thể được huấn luyện để dự đoán trọng số mà mô hình chính sẽ đạt được nếu huấn luyện đầy đủ với giá trị λ đó. Sau khi huấn luyện xong, chỉ cần một lượt tính toán qua siêu mạng để lấy trọng số ứng với một giá trị λ mới, thay vì phải huấn luyện lại toàn bộ mô hình chính từ đầu. Một ưu điểm của phương pháp này là nó có thể xử lý cả siêu tham số rời rạc.[32] Vì một siêu mạng phải dự đoán chính xác trên toàn bộ không gian giá trị của λ sẽ cần kích thước rất lớn, mạng tự điều chỉnh (self-tuning network) tiết kiệm bộ nhớ hơn bằng cách chỉ yêu cầu siêu mạng dự đoán chính xác trong một vùng nhỏ xung quanh giá trị λ hiện tại.[33] Δ-STN cải thiện thêm phương pháp này bằng cách nhận ra rằng việc tính gradient theo λ chỉ cần đến đạo hàm của trọng số theo λ (biểu diễn bằng ma trận Jacobian), chứ không cần giá trị trọng số tuyệt đối; do đó Δ-STN tập trung xấp xỉ đúng ma trận đạo hàm này, đồng thời giả định mối quan hệ giữa trọng số và λ là gần đúng tuyến tính để tránh dao động hoặc mất ổn định khi trọng số thay đổi lớn trong quá trình huấn luyện.[34]

Ngoài các phương pháp dùng siêu mạng, các phương pháp dựa trên gradient cũng có thể được dùng để tối ưu hóa siêu tham số rời rạc, bằng cách áp dụng một phép nới lỏng liên tục (continuous relaxation) cho các tham số.[35] Các phương pháp như vậy đã được sử dụng rộng rãi để tối ưu hóa siêu tham số kiến trúc trong bài toán tìm kiếm kiến trúc mạng neuron tối ưu.

Tối ưu hóa tiến hóa

Tối ưu hóa tiến hóa là một phương pháp luận cho việc tối ưu hóa toàn cục các hàm hộp đen có nhiễu. Trong tối ưu hóa siêu tham số, tối ưu hóa tiến hóa sử dụng thuật toán tiến hóa (evolution algorithm) để tìm kiếm không gian siêu tham số cho một thuật toán cho trước.[21] Tối ưu hóa siêu tham số bằng tiến hóa tuân theo một quy trình lấy cảm hứng từ khái niệm sinh học về tiến hóa:

  1. Tạo một quần thể ban đầu gồm các nghiệm ngẫu nhiên (tức là tạo ngẫu nhiên các bộ giá trị siêu tham số, thường trên 100 bộ)
  2. Đánh giá các bộ giá trị siêu tham số và thu được hàm thích nghi (fitness function) của chúng. Ví dụ như độ chính xác kiểm chứng chéo 10 phần của thuật toán học máy với các siêu tham số đó
  3. Xếp hạng các bộ giá trị siêu tham số theo độ thích nghi tương đối
  4. Thay thế các bộ giá trị siêu tham số có hiệu năng kém nhất bằng các bộ mới được tạo ra thông qua lai tạo giữa những bộ siêu tham số có hiệu năng tốt nhất và đột biến thay đổi giá trị ngẫu nhiên
  5. Lặp lại bước 2–4 cho đến khi đạt được hiệu năng thuật toán thỏa đáng hoặc không còn cải thiện thêm

Tối ưu hóa tiến hóa đã được dùng trong tối ưu hóa siêu tham số cho các thuật toán học máy thống kê,[21] tìm kiếm kiến trúc mạng neuron thông thường[36] và mạng neuron sâu,[37] cũng như việc huấn luyện trọng số trong mạng neuron sâu.[38]

Dựa trên dừng sớm

Tập tin:Successive-halving-for-eight-arbitrary-hyperparameter-configurations.png
Thuật toán Chia nửa liên tiếp cho tám bộ tổ hợp siêu tham số ngẫu nhiên, liên tục áp dụng thuật toán này cho đến khi chỉ còn lại một mô hình.

Thay vì chờt thuật toán chạy đến khi hoàn tất mới so sánh hiệu quả của từng tổ hợp siêu tham số, các thuật toán dừng sớm tận dụng thông tin về hiệu năng thu được ở giai đoạn sớm để loại bỏ các tổ hợp rõ ràng là kém, từ đó tập trung tài nguyên tính toán còn lại vào những tổ hợp có triển vọng hơn.

Irace triển khai thuật toán "cuộc đua lặp lại" (iterated racing): nhiều tổ hợp được chạy song song qua một chuỗi các bài kiểm thử, và sau mỗi bài kiểm thử, một kiểm định thống kê được dùng để so sánh hiệu năng giữa các tổ hợp đang được đánh giá. Một tổ hợp bị loại khỏi "cuộc đua" ngay khi được xác định là kém hơn đáng kể so với tổ hợp tốt nhất hiện tại, mà không cần chờ hoàn tất toàn bộ chuỗi bài kiểm thử; các tổ hợp mới có thể được sinh ra để thay thế chúng dựa trên phân phối xác suất cập nhật từ các tổ hợp còn lại.[39][40]

Một thuật toán dừng sớm khác là "chia nửa liên tiếp" (successive halving, SHA). Thuật toán bắt đầu bằng cách đánh giá đồng thời toàn bộ các tổ hợp ứng viên với một "ngân sách" tính toán nhỏ như nhau cho mỗi tổ hợp. Sau mỗi vòng đánh giá, các tổ hợp siêu tham số được xếp hạng theo hiệu năng, phân nửa có hiệu năng kém nhất bị loại bỏ, và ngân sách tính toán cho vòng tiếp theo được tăng gấp đôi cho các tổ hợp còn lại. Quá trình lặp lại cho đến khi chỉ còn một tổ hợp duy nhất, và chỉ đến lúc đó được đánh giá với ngân sách tính toán đầy đủ. Nhờ loại bỏ các tổ hợp kém trước khi chúng tiêu tốn nhiều ngân sách tính toán, tổng tài nguyên tính toán được sử dụng bởi SHA thấp hơn đáng kể so với việc đánh giá đầy đủ toàn bộ tổ hợp ứng viên ngay từ đầu.[41]

Một hạn chế của SHA là các vòng đánh giá phải được thực hiện đồng bộ do toàn bộ tổ hợp trong một vòng phải hoàn tất trước khi thuật toán có thể xếp hạng và loại bỏ, rồi chuyển sang vòng tiếp theo. Khi chạy song song trên nhiều tài nguyên tính toán, yêu cầu đồng bộ này khiến toàn hệ thống phải chờ tổ hợp chạy chậm nhất trong mỗi vòng, gây lãng phí tài nguyên nhàn rỗi. Chia nửa liên tiếp bất đồng bộ (ASHA) loại bỏ yêu cầu này: một tổ hợp siêu tham số được thăng cấp lên mức ngân sách kế tiếp ngay khi nó được xác định là đủ tốt so với các tổ hợp khác đã hoàn tất cùng mức ngân sách, không cần chờ toàn bộ vòng hiện tại kết thúc; nhờ đó, tài nguyên tính toán song song được sử dụng hiệu quả hơn.[42]

Hiệu quả của SHA và ASHA phụ thuộc vào việc lựa chọn trước số lượng tổ hợp siêu tham số ban đầu và ngân sách tính toán tối thiểu cho vòng đầu tiên; lựa chọn không phù hợp có thể khiến các tổ hợp cần nhiều thời gian và tài nguyên huấn luyện hơn để bộc lộ tiềm năng thực sự bị loại bỏ quá sớm. Hyperband là một thuật toán dựa trên dừng sớm ở cấp cao hơn, giải quyết vấn đề này bằng cách chạy SHA (hoặc ASHA) nhiều lần, mỗi lần với một tổ hợp khác nhau giữa số lượng tổ hợp ban đầu và ngân sách vòng đầu tiên; qua đó áp dụng được rộng rãi hơn cho nhiều loại bài toán và cần ít thông tin đầu vào từ người dùng hơn.[43]

Khác

Các phương pháp tiếp cận dựa trên hàm cơ sở bán kính (radial basis function, RBF) xây dựng một mô hình đại diện cho hàm mục tiêu bằng phép nội suy hàm cơ sở bán kính, tương tự về ý tưởng với tối ưu hóa Bayes nhưng dùng một công cụ toán học khác để xấp xỉ hàm mục tiêu; mô hình đại diện này được dùng để ước lượng nhanh bộ siêu tham số có triển vọng trước khi đánh giá đầy đủ.[44] Một phương pháp khác dựa trên phân tích phổ (spectral) giả định rằng hàm mục tiêu có thể được xấp xỉ bằng một đa thức thưa và bậc thấp trong miền Fourier, rồi dùng kỹ thuật lấy mẫu nén (compressed sensing) để khôi phục các hệ số Fourier của đa thức đó từ một tập bộ giá trị siêu tham số được lấy mẫu đồng đều. Vì việc lấy mẫu không cần thực hiện tuần tự, phương pháp này có thể song song hóa dễ dàng.[45]

Kiến trúc của một mạng neuron—ví dụ số lượng lớp, số lượng neuron của mỗi lớp, hay cách các lớp kết nối với nhau—cũng là một dạng siêu tham số, và bài toán tìm ra kiến trúc tối ưu được gọi là tìm kiếm kiến trúc mạng neuron. Một hướng tiếp cận cho bài toán này dùng học tăng cường: một mạng neuron hồi quy đóng vai trò "bộ điều khiển" được huấn luyện để sinh ra mô tả kiến trúc mạng, lấy độ chính xác trên tập kiểm định của kiến trúc được sinh ra làm phần thưởng để cập nhật bộ điều khiển đó.[46] Vì cách này đòi hỏi huấn luyện lại từ đầu cho mỗi kiến trúc ứng viên nên rất tốn chi phí tính toán, các phương pháp sau này đã được phát triển dựa trên gradient bằng cách áp dụng một phép nới lỏng liên tục (continuous relaxation) để biến không gian kiến trúc rời rạc thành không gian liên tục khả vi, cho phép tối ưu hóa kiến trúc chỉ với một lần huấn luyện duy nhất.[47]

Khả năng tái tạo nghiên cứu

Ngoài việc điều chỉnh siêu tham số, học máy còn đòi hỏi việc lưu trữ các tham số cùng kết quả của các thí nghiệm, đồng thời đảm bảo rằng những kết quả này có thể được tái tạo bởi những nhà khoa học khác.[48] Khi thiếu một cơ sở hạ tầng vững chắc cho mục đích này, các bộ mã nguồn được dùng trong nghiên cứu thường phát triển các thuật toán một cách qua loa và bỏ qua những khía cạnh thiết yếu như việc ghi chép có hệ thống và khả năng tái tạo các thí nghiệm của họ.[49] Khả năng tái tạo có thể đặc biệt khó khăn đối với các mô hình học sâu, khi hiệu suất của các mô hình học sâu bị ảnh hưởng rất nhiều vào việc lựa chọn hạt giống ngẫu nhiên của bộ sinh số ngẫu nhiên.[50][14] Do đó, các nền tảng cộng tác trực tuyến cho học máy được phát triển nhằm cho phép các nhà khoa học chia sẻ, tổ chức, và thảo luận về các thực hiện thí nghiệm với nhau.[51]

Tham khảo

  1. ^ Yang, Li; Shami, Abdallah (ngày 20 tháng 11 năm 2020). "On hyperparameter optimization of machine learning algorithms: Theory and practice". Neurocomputing. Quyển 415. tr. 295–316. arXiv:2007.15745. doi:10.1016/j.neucom.2020.07.061. ISSN 0925-2312.
  2. ^ a b c d e f g Claesen, Marc; De Moor, Bart (2015). "Hyperparameter Search in Machine Learning". arXiv:1502.02127.
  3. ^ Wittscher, Ladyna (ngày 24 tháng 2 năm 2026). "A survey on design choices for self-supervised learning in computer vision". Artificial Intelligence Review. Quyển 59 số 4. tr. 1. doi:10.1007/s10462-026-11506-9. Truy cập ngày 9 tháng 7 năm 2026.
  4. ^ Leyton-Brown, Kevin; Hoos, Holger; Hutter, Frank (ngày 27 tháng 1 năm 2014). An Efficient Approach for Assessing Hyperparameter Importance. Proceedings of the 31st International Conference on Machine Learning (ICML). tr. 754–762.
  5. ^ van Rijn, Jan N.; Hutter, Frank (2018). Hyperparameter Importance Across Datasets. Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD '18). tr. 2367–2376. doi:10.1145/3219819.3220058.
  6. ^ Probst, Philipp; Bischl, Bernd; Boulesteix, Anne-Laure (2019). "Tunability: Importance of Hyperparameters of Machine Learning Algorithms". Journal of Machine Learning Research. Quyển 20 số 53. tr. 1–32.
  7. ^ Greff, K.; Srivastava, R. K.; Koutník, J.; Steunebrink, B. R.; Schmidhuber, J. (ngày 23 tháng 10 năm 2017). "LSTM: A Search Space Odyssey". IEEE Transactions on Neural Networks and Learning Systems. Quyển 28 số 10. tr. 2222–2232. arXiv:1503.04069. doi:10.1109/TNNLS.2016.2582924. PMID 27411231.
  8. ^ Breuel, Thomas M. (2015). "Benchmarking of LSTM networks". arXiv:1508.02774.
  9. ^ Wang, Ruinan; Nabney, Ian; Golbabaee, Mohammad (2025). Efficient Hyperparameter Importance Assessment for CNNs. International Conference on Neural Information Processing (ICONIP) 2024. Communications in Computer and Information Science. Quyển 2282. Springer. doi:10.1007/978-981-96-6948-6_2.
  10. ^ Masters, Dominic; Luschi, Carlo (2018). "Revisiting Small Batch Training for Deep Neural Networks". arXiv:1804.07612.
  11. ^ a b c Mania, Horia; Guy, Aurelia; Recht, Benjamin (2018). Simple random search of static linear policies is competitive for reinforcement learning. Advances in Neural Information Processing Systems 31 (NeurIPS 2018). tr. 1805–1814.
  12. ^ Bischl, Bernd; Binder, Martin; Lang, Michel; Pielok, Tobias; Richter, Jakob; Coors, Stefan; Thomas, Janek; Ullmann, Theresa; Becker, Marc; Boulesteix, Anne-Laure; Deng, Difan; Lindauer, Marius (2023). "Hyperparameter optimization: Foundations, algorithms, best practices, and open challenges". Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery. Quyển 13 số 2. doi:10.1002/widm.1484.
  13. ^ Rebuffi, Sylvestre-Alvise; Gowal, Sven; Calian, Dan A.; Stimberg, Florian; Wiles, Olivia; Mann, Timothy (2021). Data Augmentation Can Improve Robustness. Advances in Neural Information Processing Systems.
  14. ^ a b Picard, David (2021). "Torch.manual_seed(3407) is all you need: On the influence of random seeds in deep learning architectures for computer vision". arXiv:2109.08203.
  15. ^ a b Feurer, Matthias; Hutter, Frank (2019). "Hyperparameter Optimization". Trong Hutter, Frank; Kotthoff, Lars; Vanschoren, Joaquin (biên tập). Automated Machine Learning: Methods, Systems, Challenges. The Springer Series on Challenges in Machine Learning. Springer. tr. 3–33. doi:10.1007/978-3-030-05318-5. ISBN 978-3-030-05317-8.
  16. ^ a b c d Bergstra, James; Bengio, Yoshua (2012). "Random Search for Hyper-Parameter Optimization" (PDF). Journal of Machine Learning Research. Quyển 13. tr. 281–305.
  17. ^ Chin-Wei Hsu, Chih-Chung Chang và Chih-Jen Lin (2010). A practical guide to support vector classification. Báo cáo kỹ thuật, Đại học Quốc gia Đài Loan.
  18. ^ Chang, Yin-Wen; Hsieh, Cho-Jui; Chang, Kai-Wei; Ringgaard, Michael; Lin, Chih-Jen (2010). "Training and Testing Low-degree Polynomial Data Mappings via Linear SVM". Journal of Machine Learning Research. Quyển 11 số 48. tr. 1471–1490. ISSN 1533-7928.
  19. ^ Ziyu, Wang; Frank, Hutter; Masrour, Zoghi; David, Matheson; Nando, de Feitas (2016). "Bayesian Optimization in a Billion Dimensions via Random Embeddings". Journal of Artificial Intelligence Research. Quyển 55. tr. 361–387. arXiv:1301.1942. doi:10.1613/jair.4806.
  20. ^ a b Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2011). "Sequential Model-Based Optimization for General Algorithm Configuration". Learning and Intelligent Optimization. Lecture Notes in Computer Science. Quyển 6683. tr. 507–523. doi:10.1007/978-3-642-25566-3_40. ISBN 978-3-642-25565-6.
  21. ^ a b c Bergstra, James; Bardenet, Rémi; Bengio, Yoshua; Kégl, Balázs (2011). Algorithms for Hyper-Parameter Optimization. Advances in Neural Information Processing Systems 24 (NeurIPS 2011). Curran Associates. tr. 2546–2554.
  22. ^ Snoek, Jasper; Larochelle, Hugo; Adams, Ryan P. (2012). Practical Bayesian Optimization of Machine Learning Algorithms. Advances in Neural Information Processing Systems 25 (NeurIPS 2012). Curran Associates. tr. 2960–2968.
  23. ^ Thornton, Chris; Hutter, Frank; Hoos, Holger H.; Leyton-Brown, Kevin (2013). Auto-WEKA: Combined Selection and Hyperparameter Optimization of Classification Algorithms. 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD '13). tr. 847–855. doi:10.1145/2487575.2487629.
  24. ^ Larsen, Jan; Hansen, Lars Kai; Svarer, Claus; Ohlsson, M. (1996). "Design and regularization of neural networks: The optimal use of a validation set". Neural Networks for Signal Processing VI. Proceedings of the 1996 IEEE Signal Processing Society Workshop. tr. 62–71. doi:10.1109/NNSP.1996.548336. ISBN 0-7803-3550-3.
  25. ^ Chapelle, Olivier; Vapnik, Vladimir; Bousquet, Olivier; Mukherjee, Sayan (2002). "Choosing multiple parameters for support vector machines". Machine Learning. Quyển 46 số 1–3. tr. 131–159. doi:10.1023/a:1012450327387.
  26. ^ Do, Chuong B.; Foo, Chuan-Sheng; Ng, Andrew Y. (2007). Efficient multiple hyperparameter learning for log-linear models. Advances in Neural Information Processing Systems 20 (NeurIPS 2007). Curran Associates. tr. 377–384.
  27. ^ Domke, Justin (2012). Generic Methods for Optimization-Based Modeling. Proceedings of the 15th International Conference on Artificial Intelligence and Statistics (AISTATS). Quyển 22. tr. 318–326.
  28. ^ Maclaurin, Dougal; Duvenaud, David; Adams, Ryan P. (2015). Gradient-based Hyperparameter Optimization through Reversible Learning. Proceedings of the 32nd International Conference on Machine Learning (ICML). Proceedings of Machine Learning Research. Quyển 37. tr. 2113–2122. arXiv:1502.03492.
  29. ^ Franceschi, Luca; Donini, Michele; Frasconi, Paolo; Pontil, Massimiliano (2017). Forward and Reverse Gradient-Based Hyperparameter Optimization. Proceedings of the 34th International Conference on Machine Learning (ICML). Proceedings of Machine Learning Research. Quyển 70. tr. 1165–1173. arXiv:1703.01785.
  30. ^ Shaban, Amirreza; Cheng, Ching-An; Hatch, Nathan; Boots, Byron (2019). Truncated Back-propagation for Bilevel Optimization. Proceedings of the 22nd International Conference on Artificial Intelligence and Statistics (AISTATS). tr. 1723–1732. arXiv:1810.10667.
  31. ^ Lorraine, Jonathan; Vicol, Paul; Duvenaud, David (2020). Optimizing Millions of Hyperparameters by Implicit Differentiation. Proceedings of the 23rd International Conference on Artificial Intelligence and Statistics (AISTATS). Proceedings of Machine Learning Research. Quyển 108. tr. 1540–1552. arXiv:1911.02590.
  32. ^ Lorraine, Jonathan; Duvenaud, David (2018). Stochastic Hyperparameter Optimization through Hypernetworks. International Conference on Learning Representations (ICLR). arXiv:1802.09419.
  33. ^ MacKay, Matthew; Vicol, Paul; Lorraine, Jonathan; Duvenaud, David; Grosse, Roger (2019). Self-Tuning Networks: Bilevel Optimization of Hyperparameters using Structured Best-Response Functions. International Conference on Learning Representations (ICLR). arXiv:1903.03088.
  34. ^ Bae, Juhan; Grosse, Roger (2020). Delta-STN: Efficient Bilevel Optimization for Neural Networks using Structured Response Jacobians. Advances in Neural Information Processing Systems 33 (NeurIPS 2020). arXiv:2010.13514.
  35. ^ Liu, Hanxiao; Simonyan, Karen; Yang, Yiming (2019). DARTS: Differentiable Architecture Search. International Conference on Learning Representations (ICLR). arXiv:1806.09055.
  36. ^ Kousiouris, G.; Cuccinotta, T.; Varvarigou, T. (2011). "The effects of scheduling, workload type and consolidation scenarios on virtual machine performance and their prediction through optimized artificial neural networks". Journal of Systems and Software. Quyển 84 số 8. tr. 1270–1291. doi:10.1016/j.jss.2011.04.013. hdl:11382/361472.
  37. ^ Miikkulainen, Risto; Liang, Jason; Meyerson, Elliot; Rawal, Aditya; Fink, Daniel; Francon, Olivier; Raju, Bala; Shahrzad, Hormoz; Navruzyan, Arshak; Duffy, Nigel; Hodjat, Babak (2019). "Evolving Deep Neural Networks". Artificial Intelligence in the Age of Neural Networks and Brain Computing. Elsevier. tr. 293–312. arXiv:1703.00548.
  38. ^ Such, Felipe Petroski; Madhavan, Vashisht; Conti, Edoardo; Lehman, Joel; Stanley, Kenneth O.; Clune, Jeff (2017). "Deep Neuroevolution: Genetic Algorithms Are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning". arXiv:1712.06567.
  39. ^ López-Ibáñez, Manuel; Dubois-Lacoste, Jérémie; Pérez Cáceres, Leslie; Stützle, Thomas; Birattari, Mauro (2016). "The irace package: Iterated Racing for Automatic Algorithm Configuration". Operations Research Perspective. Quyển 3 số 3. tr. 43–58. doi:10.1016/j.orp.2016.09.002. hdl:10419/178265.
  40. ^ Birattari, Mauro; Stützle, Thomas; Paquete, Luis; Varrentrapp, Klaus (2002). A Racing Algorithm for Configuring Metaheuristics. GECCO 2002. tr. 11–18.
  41. ^ Jamieson, Kevin; Talwalkar, Ameet (ngày 11 tháng 5 năm 2016). "Non-stochastic Best Arm Identification and Hyperparameter Optimization". Proceedings of the 19th International Conference on Artificial Intelligence and Statistics (PMLR). tr. 240–248.
  42. ^ Li, Liam; Jamieson, Kevin; Rostamizadeh, Afshin; Gonina, Ekaterina; Ben-tzur, Jonathan; Hardt, Moritz; Recht, Benjamin; Talwalkar, Ameet (2020). A System for Massively Parallel Hyperparameter Tuning. Proceedings of Machine Learning and Systems (MLSys) 2. arXiv:1810.05934.
  43. ^ Li, Lisha; Jamieson, Kevin; DeSalvo, Giulia; Rostamizadeh, Afshin; Talwalkar, Ameet (ngày 16 tháng 3 năm 2020). "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization". Journal of Machine Learning Research. Quyển 18. tr. 1–52. arXiv:1603.06560.
  44. ^ Diaz, Gonzalo I.; Fokoue-Nkoutche, Achille; Nannicini, Giacomo; Samulowitz, Horst (2017). "An effective algorithm for hyperparameter optimization of neural networks". IBM Journal of Research and Development. Quyển 61 số 4/5. tr. 9:1–9:11. doi:10.1147/JRD.2017.2709578.
  45. ^ Hazan, Elad; Klivans, Adam; Yuan, Yang (2018). Hyperparameter Optimization: A Spectral Approach. International Conference on Learning Representations (ICLR). arXiv:1706.00764.
  46. ^ Zoph, Barret; Le, Quoc V. (2017). Neural Architecture Search with Reinforcement Learning. International Conference on Learning Representations (ICLR). arXiv:1611.01578.
  47. ^ Liu, Hanxiao; Simonyan, Karen; Yang, Yiming (2019). DARTS: Differentiable Architecture Search. International Conference on Learning Representations (ICLR). arXiv:1806.09055.
  48. ^ Greff, Klaus; Schmidhuber, Jürgen (2015). Introducing Sacred: A Tool to Facilitate Reproducible Research. ICML 2015 AutoML Workshop.
  49. ^ Greff, Klaus; Klein, Aaron; Chovanec, Martin; Hutter, Frank; Schmidhuber, Jürgen (2017). The Sacred Infrastructure for Computational Research. Proceedings of the 15th Python in Science Conference (SciPy 2017).
  50. ^ Bethard, Steven (2022). "We need to talk about random seeds". arXiv:2210.13393.
  51. ^ Vanschoren, Joaquin; van Rijn, Jan N.; Bischl, Bernd; Torgo, Luis (2013). "OpenML: Networked Science in Machine Learning". ACM SIGKDD Explorations Newsletter. Quyển 15 số 2. tr. 49–60. doi:10.1145/2641190.2641198.