Fine Tune Là Gì?
Nhiệm vụ nguồn mô hình và định nghĩa nhiệm vụ mục tiêu học tập tính năng Fine tune lợi ích cơ sở và giới hạn giới hạn lợi ích? lời tựa Bạn quá lười để đào tạo lại mạng từ đầu? Bạn mệt mỏi với việc tạo các mạng end-to-end mới để thực hiện các tác vụ nhiều phần? Không có GPU mạnh và không muốn đăng ký AWS hoặc sử dụng Google Cloud? Hoặc bạn không có một tập dữ liệu lớn cho các nhiệm vụ bạn phải giải quyết? Chà, đã đến lúc chuyển sang học chuyển giao, một kỹ thuật có thể xây dựng trên các mạng hiện có để tạo ra một mạng đủ tốt chỉ với một tập dữ liệu nhỏ. Sử dụng các mạng tiền lọc này là một nghệ thuật đã được nghiên cứu từ những năm 90. Khi Lorien Pratt lần đầu tiên tiến hành thí nghiệm vào năm 1993 và sau đó viết lại nó thành một lý thuyết toán học (phân tích chính thức) vào năm 1998. Đây sẽ là bài học đầu tiên của việc học chuyển tiếp, giúp bạn có cái nhìn tổng quan về mọi khía cạnh của việc học chuyển tiếp trước khi đi vào thực tế trong bài viết tiếp theo;) Điều kiện tiên quyết - Trước khi tìm hiểu về học chuyển tiếp, tôi khuyến khích bạn nên biết: Mạng nơ ron cơ bản. Tập dữ liệu và các bước tạo mô hình. Tham Khảo Thêm: Kick Boxing Là Gì?
So sánh các hình thức cổ điển của phương pháp nuôi lông và học sâu hiện đại
Phân loại chính sách tinh chỉnh Khi tập dữ liệu của nhiệm vụ đích lớn và tương tự với tập dữ liệu của tác vụ nguồn: đây là trường hợp lý tưởng, bạn có thể sử dụng trọng số của mô hình được đào tạo trước để khởi tạo phần được đào tạo trước và sau đó đào tạo mô hình đã chuyển hoặc chỉ phần được thêm vào . Bây giờ, tùy thuộc vào bạn. Khi tập dữ liệu của tác vụ đích nhỏ và tương tự với tập dữ liệu của tác vụ nguồn: Vì tập dữ liệu nhỏ, việc đào tạo lại phần được đào tạo trước sẽ dẫn đến việc trang bị quá mức, vì vậy chúng tôi chỉ đào tạo các lớp đã thêm với trọng số của phần khởi tạo trước đào tạo ở trên. Khi tập dữ liệu của tác vụ mục tiêu lớn và khác với tập dữ liệu của tác vụ nguồn: vì tập dữ liệu của chúng tôi khác nhau, việc sử dụng trọng số của mô hình được đào tạo trước sẽ làm giảm độ chính xác do sự khác biệt giữa tác vụ và tập dữ liệu và vì tập dữ liệu lớn, vì vậy việc huấn luyện toàn bộ mô hình được chuyển từ đầu là hiệu quả nhất, giúp mô hình phù hợp hơn với tập dữ liệu này. Khi tập dữ liệu của tác vụ đích nhỏ và khác với tập dữ liệu của tác vụ nguồn: đây là trường hợp khó nhất, những gì bạn nên làm có lẽ là: chỉnh sửa mô hình được đào tạo trước, thay thế các lớp được đào tạo trước ở xa đầu vào để phù hợp với mô hình mới tập dữ liệu (các tính năng cấp cao sẽ được thay đổi thành các tính năng cấp thấp được lấy từ các lớp trước đó) nhưng không huấn luyện các lớp gần đầu vào đào tạo trước, bởi vì các tập dữ liệu nhỏ sẽ không thể huấn luyện các lớp này một cách hiệu quả và lớp sẽ chỉ được bắt nguồn từ tập dữ liệu, nó sẽ không ảnh hưởng đến nhiệm vụ đích. Để biết thêm các phương pháp khác, vui lòng tham khảo ý kiến của chuyên gia hoặc người có kinh nghiệm.
So sánh tương quan hiệu quả của mô hình đào tạo từ đầu và mô hình chuyển giao
Giới thiệu Fine tune
Ngày xưa, trước khi nền văn minh nhân loại phát triển, một nhóm nhỏ người sống trong các hang động. Khi con người học cách trồng trọt, họ chuyển đến vùng đồng bằng, nơi họ gặp gỡ các bộ lạc khác. Khi số lượng người tăng lên, việc hiểu nhau ngày càng trở nên khó khăn. Vì vậy, chúng tôi đã phát minh ra ngôn ngữ, một cách truyền đạt ý tưởng của chúng tôi với những người xung quanh. Điều quan trọng nhất là phải nghiên cứu khoa học, đưa ra những ý tưởng mới, đừng làm lại những gì đã làm mà không tiến bộ, vì thời gian sẽ không cho phép sự lãng phí như vậy xảy ra. Đặc biệt là trong ngành học sâu đang phát triển nhanh chóng, ý tưởng mà tôi nghĩ ra có lẽ vẫn chưa thành hiện thực, phải không? Học sâu trải rộng khắp mọi lĩnh vực, vì vậy điều quan trọng là phải tận dụng công việc hiện có trước đó để tạo ra các mô hình mới tốt hơn, vì điều này vốn đã rất khó khăn và tốn thời gian, chưa nói đến việc nghiên cứu. Mọi thứ bắt đầu từ đầu.Định nghĩa
Mô hình
Tất nhiên, nhiều bạn đã biết các mô hình nổi tiếng được đào tạo trên các tập dữ liệu lớn (MNIST, CIFAR-100, ImageNet, v.v.), mã nguồn và trọng số của các mô hình được công bố rộng rãi cho cộng đồng (chủ yếu trên thienmaonline). .vn). Chúng tôi gọi mô hình có trọng số này là mô hình được đào tạo trước. Mô hình mới sử dụng một số hoặc tất cả mô hình được đào tạo trước như một phần của nó để học một nhiệm vụ mới được gọi là mô hình chuyển giao.Nhiệm vụ nguồn và mục tiêu
Một mô hình đào tạo trước như vậy thường được đào tạo trên một hoặc một vài bộ dữ liệu cụ thể tương thích và cung cấp độ chính xác cao cho nhiệm vụ hoặc các nhiệm vụ mà nó được đào tạo (học sâu đa tác vụ). Chúng tôi đề cập đến tác vụ mà mô hình đào tạo trước được đào tạo để thực hiện như tác vụ nguồn. Nhiệm vụ của chúng ta là tạo một mô hình mới để thực hiện một hoặc nhiều tác vụ cụ thể. Nhiệm vụ được thực hiện bởi mô hình có thể giống hoặc không giống với tác vụ được sử dụng để đào tạo mô hình được đào tạo trước (thường là không) và chúng tôi gọi những tác vụ này là nhiệm vụ đích.Chuyển giao học tập
Học tập chuyển giao cũng là một cách để các mô hình trao đổi với nhau những gì mà mỗi mô hình có thể làm được. Một mô hình có thể học một số tác vụ nguồn, và sau đó mô hình được đào tạo trước này được sử dụng cho một mô hình khác để mô hình mới học tác vụ đích nhanh hơn. Cụ thể, học chuyển tiếp trong học sâu là một kỹ thuật trong đó:- Một mô hình đào tạo trước đã được đào tạo cho một tác vụ nguồn cụ thể và sau đó một số hoặc tất cả mô hình đào tạo trước có thể được sử dụng lại tùy thuộc vào nhiệm vụ của từng lớp trong mô hình. Mô hình mới sử dụng một số hoặc tất cả mô hình được đào tạo trước để tìm hiểu nhiệm vụ mục tiêu và tùy thuộc vào nhiệm vụ của từng lớp, mô hình mới có thể thêm các lớp bổ sung vào mô hình đào tạo trước hiện có.
- Sử dụng các mô hình đã được huấn luyện trước là một bước tiến lớn trong việc đi theo bước chân của những người đi trước, và việc sử dụng các mô hình đã được huấn luyện trước để tạo ra các mô hình mới cho các nhiệm vụ mục tiêu cụ thể hơn sẽ thiết thực hơn.
- Đây không phải là để sao chép một ý tưởng trong đó những người tạo ra các mô hình được đào tạo trước công khai thành công của họ với hy vọng rằng những người theo dõi có thể hưởng lợi từ các mô hình đó hoặc ít nhất là sử dụng nó để cải thiện hiệu suất và giải quyết các vấn đề của họ.
Cơ sở vật chất
Tính năng
Trước năm 2012, hầu hết mọi mô hình AI đều bao gồm hai giai đoạn riêng biệt:- Kỹ thuật tính năng: là một quá trình dựa trên sự hiểu biết của con người về vấn đề cần giải quyết (kiến thức miền), từ đó các tính năng (tính năng) của tập dữ liệu có thể được sử dụng để giải quyết vấn đề đó được suy ra. Do đó, các tính năng này được gọi là tính năng thủ công. Bộ trích xuất tính năng là một phần của mô hình thường được sử dụng để trích xuất các tính năng. Bộ phân loại / Bộ điều chỉnh: Sử dụng các thuật toán học máy để tìm hiểu và dự đoán kết quả từ các tính năng được tạo trong các bước ở trên.
- Bản thân mô hình học sâu kết hợp hai giai đoạn này, lớp ở trên cùng của mô hình được gọi là trình trích xuất tính năng và các lớp còn lại được sử dụng cho các tính năng phân loại / hồi quy của trình trích xuất tính năng để tạo ra kết quả. Do đó, trình trích xuất tính năng này có thể tự động trích xuất các tính năng từ tập dữ liệu trong quá trình học mà không cần phải xác định các tính năng theo cách thủ công như trong các phương pháp kỹ thuật tính năng.
- Mạng sâu là một mô hình có thể đào tạo từ đầu đến cuối: điều này cho phép lớp tính năng tự điều chỉnh các tính năng mà nó cần trích xuất để phù hợp với các tác vụ tương ứng của chúng (vì kết quả lan truyền ngược từ trình phân loại / trình hồi quy cho phép trình trích xuất thích ứng ). yêu cầu của họ), trong khi các phương pháp cổ điển chỉ trích xuất các tính năng một cách cố định dựa trên trí óc của con người. Khả năng mã hóa: Bất kỳ ai đã học Autoencoder đều biết rằng các Lớp đầu tiên sẽ mã hóa một tập dữ liệu thành một tập hợp các biến tiềm ẩn, điều này có thể thực hiện được vì Lớp Tính năng đã lọc ra các tính năng cần thiết và mã hóa chúng (đơn giản hóa Câu trả lời ngắn gọn (nói ngắn gọn) là nén nó) thành một tập dữ liệu nhỏ hơn mà chỉ các lớp giải mã của cùng một mạng mới có thể giải quyết được. Tương tự như các bộ giải nén tính năng khác, nó có nhiệm vụ mã hóa đầu vào thành một mẫu phù hợp với lớp tiếp theo, thay đổi khi cần thiết để đảm bảo rằng lớp tiếp theo sẽ nhận được đầu vào tốt nhất. Tính năng: Mỗi loại mạng sâu có nền tảng lý thuyết cụ thể của riêng nó, điều này giải thích tại sao loại mạng này là một công cụ trích xuất tính năng tốt trên một số loại tập dữ liệu nhất định. Chi tiết về điều này được để lại trong một bài báo riêng biệt.
- Đây là cơ sở của việc học tập chuyển giao: chúng ta có thể sử dụng trình trích xuất tính năng được đào tạo để trích xuất các tính năng cho mô hình của mình mà không cần phải tạo trình trích xuất tính năng mới và đào tạo nó từ đầu. Có thể nói, thay vì chạy bộ từ đầu đường đến cuối, chúng tôi bắt taxi đến nơi taxi không thể đi và tự mình tiếp tục. Hãy tưởng tượng sẽ như thế nào nếu taxi đã gần hết quãng đường mà chúng ta cần để di chuyển? :)
Tinh chỉnh
Để sử dụng các mô hình được đào tạo trước một cách hiệu quả, chúng ta cần hai điều: Thêm các lớp phù hợp với nhiệm vụ mục tiêu của chúng tôi, xóa các lớp của các mô hình được đào tạo trước mà chúng tôi không sử dụng (có thể bạn đã biết), nhưng làm cho mô hình hiệu quả hơn là một vấn đề khó (rất rất khó) đòi hỏi phải nghiên cứu sâu thành từng lớp và công dụng của chúng. Với một chiến lược đào tạo tốt cũng không hề dễ dàng, vì nếu đào tạo không tốt, bạn sẽ mất hiệu quả của mô hình đào tạo trước, làm giảm sức mạnh của mô hình mà chúng ta đang đào tạo, thậm chí tệ hơn là đào tạo lại. Vì vậy, việc tinh chỉnh sẽ giúp bạn phát triển một chiến lược đào tạo hiệu quả cho mô hình chuyển giao của mình (điều đầu tiên theo tôi biết, nó không tạo ra một kỹ thuật nói chung). Tinh chỉnh không chỉ giúp bạn điều chỉnh trọng lượng của mô hình chuyển giao để phù hợp với nhiệm vụ mục tiêu của bạn. Nó không chỉ là tinh chỉnh như tinh chỉnh bản dịch, mà ngoài ra, nó cung cấp một cách tối ưu để đào tạo mô hình được đào tạo trước và chuyển các bộ phận mới trong mô hình để đạt được độ chính xác cao về nhiệm vụ mục tiêu, làm cho cả hai Các bộ phận khớp với nhau tạo thành một mô hình mới. Tóm lại, tinh chỉnh là đào tạo một mô hình chuyển giao với mục tiêu tối ưu hóa độ chính xác của mô hình đối với nhiệm vụ mục tiêu. Sau đây là các chiến lược được sử dụng phổ biến nhất:Lợi ích và Hạn chế
Lợi ích
Một loại. thời gian Bản thân việc sử dụng mô hình được đào tạo trước không chỉ làm giảm thời gian tạo mô hình mới dựa trên tác vụ nguồn hiện có để thực hiện tác vụ đích mà còn giảm thời gian đào tạo mô hình từ đầu do trọng lượng của các bộ phận. Các tác vụ nguồn có sẵn.Có hiệu lực
Bạn có nghĩ rằng bạn có thể tạo một mô hình mới tốt hơn mô hình được đào tạo trước trên cùng một tác vụ nguồn không? Bạn có muốn tạo một mô hình mới mà tác vụ nguồn phải có độ chính xác cao hơn so với mô hình hiện đại được đào tạo trước không? Nếu bạn quá lười biếng để làm điều này, mô hình được đào tạo trước đã mang lại cho bạn độ chính xác cao ngay từ đầu, vì vậy khi bạn đào tạo về nhiệm vụ mục tiêu, mô hình đã chuyển của bạn sẽ tiếp tục cải thiện độ chính xác đó mà không nhất thiết phải bắt đầu từ mô hình chính xác. Nhấp để bắt đầu. .Những hạn chế?
Chuyển giao học tập không phải là một kỹ thuật dễ sử dụng, nếu bạn mắc lỗi hoặc thêm / bớt sai các lớp trong kiến trúc chuyển giao được đào tạo trước của bạn, độ chính xác sẽ thấp không thể tưởng tượng được tại thời điểm đào tạo, sau đó bạn sẽ phải kiểm tra lại. Trình chỉnh sửa lớp hoặc làm lại từ đầu. Lưu ý: Chúng tôi không gọi quá trình đào tạo là tinh chỉnh khi bạn nhận được độ chính xác thấp như vậy vì nó không phù hợp với định nghĩa. Bạn chỉ có thể sử dụng học chuyển giao nếu có các mô hình được đào tạo trước liên quan trực tiếp đến nhiệm vụ mục tiêu của bạn, không phải tất cả các mô hình đào tạo trước đều có thể được sử dụng để chuyển sang nhiệm vụ mục tiêu mong muốn của bạn. Ví dụ: bạn không nên sử dụng mô hình hình ảnh màu được xử lý trước để tinh chỉnh nhận dạng chữ viết tay. Trước khi sử dụng phương pháp học chuyển giao và nhiều hướng khác khi học tập và nghiên cứu, bạn phải xác định:- Học chuyển tiếp có cần thiết không? Mô hình tiền xử lý nào là tốt nhất? Lựa chọn tập dữ liệu này có phù hợp với mô hình được đào tạo trước không? Phương pháp tinh chỉnh nào hiệu quả nhất? Liệu độ chính xác của mô hình sau khi huấn luyện có cao hơn bình thường không? Vâng, vâng, mây mù ...
- Như bạn thấy, có rất nhiều điều cần phải xem xét trước khi chuyển giao việc học vì nhiều lý do khác nhau (không phải tất cả các mã nguồn đều hoạt động hoặc cung cấp độ chính xác như trong bài báo? Mã nguồn là công khai, nhưng bạn phải được đào tạo để có nó). mô hình đào tạo trước, vậy mục đích của việc học chuyển giao là gì? Kho cung cấp đầy đủ mã nguồn, được đào tạo trước, nhưng bạn phải cài đặt ngôn ngữ mới để chạy và bạn phải viết mã bằng ngôn ngữ đó khi bạn chuyển giao học tập, vì vậy bạn phải học ngôn ngữ mới ngôn ngữ đó? ... các vấn đề khác nhau khi sử dụng mô hình đào tạo trước).
Nhận xét
Đăng nhận xét