2.2. Phương pháp học chuyển giao trên CNN
2.2.2. Một số biện pháp học chuyển giao trên CNN
Cĩ 2 loại học chuyển giao [8]
• Feature extractor: Sau khi lấy ra các đặc điểm của ảnh bằng việc sử dụng
ConvNet của mơ hình đào tạo trước, thì ta sẽ dùng linear classifier (linear SVM, softmax classifier, ...) để phân loại ảnh. Hiểu đơn giản thì các đặc điểm ảnh (tai, mũi, tĩc, …) giờ như input của bài tốn linear regression hay logistic regression.
Ta chỉ giữ lại phần ConvNet trong CNN và bỏ đi FCs. Sau đĩ dùng output của ConvNet cịn lại để làm input cho Logistic Regression với nhiều output.
52
Hình 2.7. Mơ hình VGG ban đầu và mơ hình VGG mới
(Bên trái là mơ hình VGG16, bên phải là mơ hình VGG16 chỉ bao gồm ConvNet - bỏ Fully conencted layer)
• Fine tuning: Sau khi lấy ra các đặc điểm của ảnh bằng việc sử dụng ConvNet
của mơ hình huấn luyện trước đĩ, thì ta sẽ coi đây là input của 1 CNN mới bằng cách thêm các ConvNet và Fully Connected layer.
Ta chỉ giữ lại phần ConvNet trong CNN và bỏ đi FCs. Sau đĩ thêm các Fully Connected layer mới vào output của ConvNet.
53
Hình 2.8. Bỏ các fully connected layer ở model VGG16 đi và thêm vào các Fully connected layer mới
Khi nào nên dùng học chuyển giao?
Cĩ 2 yếu tố quan trọng nhất để dùng học chuyển giao đĩ là kích thước của dữ liệu bạn cĩ và sự tương đồng của dữ liệu giữa mơ hình bạn cần huấn luyện và mơ hình đào tạo trước
• Dữ liệu bạn cĩ nhỏ và tương tự với dữ liệu được huấn luyện trước đĩ. Vì dữ liệu nhỏ nên nếu dùng fine-tuning thì mơ hình sẽ bị overfitting. Hơn nữa là dữ liệu tương tự nhau nên là ConvNet của mơ hình đào tạo trước đĩ cũng lấy ra các đặc điểm ở dữ liệu của chúng ta. Do đĩ nên dùng feature extractor.
54
• Dữ liệu bạn cĩ lớn và tương tự với dữ liệu được huấn luyện trước đĩ. Giờ cĩ nhiều dữ liệu ta khơng sợ overfitting do đĩ nên dùng fine-tuning.
• Dữ liệu bạn cĩ nhỏ nhưng khác với dữ liệu được huấn luyện trước đĩ. Vì dữ liệu nhỏ nên ta lên dùng feature extractor để tránh overfitting. Tuy nhiên do dữ liệu ta cĩ và dữ liệu huấn luyến trước đĩ khác nhau, nên khơng nên dùng feature extractor với tồn bộ ConvNet của mơ hình huấn luyện trước mà chỉ dùng các layer đầu. Lý do là vì các layer ở phía trước sẽ học các đặc điểm chung chung hơn (cạnh, gĩc, …), cịn các layer phía sau trong ConvNet sẽ học các đặc điểm cụ thể hơn trong tập dữ liệu (ví dụ mắt, mũi, ...)
• Dữ liệu bạn cĩ lớn và khác với dữ liệu huấn luyện trước đĩ. Ta cĩ thể huấn luyện mơ hình từ đầu, tuy nhiên sẽ tốt hơn nếu ta khởi tạo các giá trị trọng số của mơ hình hiện tại với giá trị của mơ hình đào tạo trước và sau đĩ huấn luyện bình thường.
Lưu ý
• Vì mơ hình huấn luyện trước đĩ đã được đào tạo với kích thước ảnh cố định, nên khi dùng mơ hình đào tạo trước đĩ ta cần thay đổi lại kích thước ảnh bằng kích thước mà ConvNet của mơ hình đào tạo u cầu.
• Hệ số tốc độ học của ConvNet của mơ hình đào tạo trước nên được đặt với giá trị nhỏ vì nĩ đã được học ở mơ hình trước nên ít cần cập nhật hơn so với các layer mới thêm.