Huấn luyện mơ hình

Một phần của tài liệu Phân loại phong cách thiết kế nội thất dùng học sâu và ứng dụng thực tế đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin (Trang 133 - 138)

CHƯƠNG 4 THỰC NGHIỆM VÀ KẾT QUẢ

4.5. Quy trình thực nghiệm lần 2

4.5.5. Huấn luyện mơ hình

Dữ liệu sau khi được tiền xử lý nhóm thực hiện ghi nhận lại các đường dẫn thông tin cho từng tập dữ liệu trong tệp metadata sau đó đưa dữ liệu lên Github sau đó liên kết và tải lên trên nền tảng Kaggle. Sau các bước chuẩn bị dữ liệu, nhóm thực hiện quy trình huấn luyện các mơ hình như sau:

4.5.5.1. Đọc thơng tin và hiển thị các thông tin số liệu của dữ liệu cung cấp.

• Ở bước này cần kiểm tra lại dữ liệu khi sử dụng có đúng đắn chưa. Đồng thời hiển thị các thông tin của bộ dữ liệu.

Hình 4.54: Mơ tả đơn giản tập huấn luyện trong quá trình huấn luyện.

Trang | 117

Hình 4.56: Mơ tả đơn giản tập thử nghiệm trong q trình huấn luyện.

4.5.5.2. Cài đặt bổ sung thêm kỹ thuật tăng cường dữ liệu.

• Sử dụng hàm ImageDataGenerator trong thư viện Keras có cung cấp. Ta cần phải cài đặt một số thông số như sau:

- Ta cần phải bình thường hóa (normalization) dữ liệu, hay còn gọi là đưa về khoảng giá trị nhất định. Ở đây ta sử dụng khoảng [0, 1]. Và cài đăng bằng cách cho tham số 𝑟𝑒𝑠𝑐𝑎𝑙𝑒 = 1./255.

- Chỉ số xoay ảnh một góc bao nhiêu độ cũng ảnh hưởng đến khơng gian cần dự đốn chí vì thế ta cho một thơng số xoay tối đa là 7° tương ứng với 𝑟𝑜𝑡𝑎𝑡𝑖𝑜𝑛_𝑟𝑎𝑛𝑔𝑒 = 7.

- Giống với xoay ảnh thì lật ảnh cũng ảnh hưởng rất lớn, thông thường một kiến trúc sẽ ở dạng tĩnh và không dịch chuyển nhiều (khơng tính các thường hợp ngoại lệ như xoay góc chụp) thì hầu như lật ảnh theo chiều ngang (ví dụ như: trần nhà lại ở phía dưới ảnh) là trường hợp không thể xảy ra. Nhưng với lật ảnh ngang thì mẫu ảnh vẫn được chấp nhận. Ta có thể cài đặt: ℎ𝑜𝑟𝑖𝑧𝑜𝑛𝑡𝑎𝑙_𝑓𝑙𝑖𝑝 = 𝑇𝑟𝑢𝑒.

- Ngồi ra ta có thêm rất nhiều sự lựa chọn như: dịch chuyển ảnh (width_shift_range, height_shift_range) hoặc cũng có thể phóng to ảnh (zoom_range) nhưng hãy lưu ý rằng các giá trị này khơng được q lớn. Ví dụ như phóng to ảnh, có thể chỉ số thu phóng quá lớn dẫn đến mất đi tính khơng gian của ảnh, nó sẽ ảnh hướng lớn đến q trình huấn luyện.

Trang | 118

Hình 4.57: Các ảnh được áp dụng kỹ thuật tăng cường dữ liệu trước khi đưa vào huấn luyện.

• Việc huấn luyện ở quá trình thực nghiệm 1 chúng ta sử dụng tồn bộ dữ liệu được tải cùng lúc lên bộ nhớ RAM và khơng có bất cứ việc tăng cường dữ liệu vì vậy tốc độ huấn luyện rất nhanh, nhưng ở q trình huấn luyện lần này đã có áp dụng kỹ thuật tăng cường dữ liệu, việc này tiêu tốn rất nhiều tài nguyên GPU để xử lý ảnh và đồng thời cũng phụ thuộc vào số lượng mẫu trên một batch (hay còn gọi là batch size).

Trang | 119

4.5.5.3. Cài đặt mơ hình.

• Đối với các mơ hình SOTAs nhóm sử dụng kỹ thuật học tập chuyển giao, bằng thư viện Keras gọi các hàm chức năng để khởi tạo mơ hình ban đầu (Xception, DenseNet201, InceptionV3), các tham số cài đặt giống như lần thực nghiệm thứ nhất, ta cần cung cấp các tham số như sau:

- Ta sẽ đặt các trọng số mà mơ hình đã huấn luyện trên tập ImageNet trước đó: 𝑤𝑒𝑖𝑔ℎ𝑡𝑠 = "𝑖𝑚𝑎𝑔𝑒𝑛𝑒𝑡".

- Không nhận các FC layer: 𝑖𝑛𝑐𝑙𝑢𝑑𝑒_𝑡𝑜𝑝 = 𝐹𝑎𝑙𝑠𝑒, thay vào đó ra sẽ tự

cài đặt lại lớp này.

- Và cuối cùng ta đặt khung đầu vào với: 𝑖𝑛𝑝𝑢𝑡_𝑠ℎ𝑎𝑝𝑒 = (224, 224, 3) - Sau có được mơ hình ban đầu ta cài đặt thêm phần FC layer cho mơ hình

với phần code như sau:

# build model def define_model(): base_model = Xception(weights="imagenet", include_top=False, input_shape=(224, 224, 3)) model = Sequential([ base_model, # FC layer GlobalAveragePooling2D(), Flatten(),

Dense(128, activation='elu', kernel_initializer='he_uniform'), BatchNormalization(),

Dropout(0.5),

Dense(5, activation='softmax') ])

return model

• Đối với các mơ hình tự tạo, nhóm thay thế hàm định nghĩa của các mơ hình SOTAs thành các hàm định nghĩa mơ hình có ở Các mơ hình tự tạo đã định

nghĩa từ phần trước.

4.5.5.4. Điều chỉnh các siêu tham số.

• Kích thước một lơ mẫu (batch size) là số lượng sample được đưa vào trong một lần train. Batch size nhỏ q thì ảnh hướng đến kết quả tính đạo hàm nhưng q trình tính tốn sẽ rất nhanh. Khi q lớn điều thuận lợi là kết quả chính xác hơn nhưng lại tính tốn q chậm. Nhóm đã cố gắng thử trên nhiều số lượng khác nhau và phù hợp với tài nguyên mà Kaggle cấp phát.

Trang | 120

• Một trong những kỹ thuật giúp mơ hình tối ưu mơ hình và tốc độ huấn luyện đó là có một có một chỉ số tốc độ học tập đủ tốt để giúp cho mơ hình có thể tiến nhanh hơn đến miền hội tụ, việc này giúp việc đào tạo nhanh hơn. Một trong những phương pháp nhóm đã áp dụng để tìm ra chỉ số học tập đó là Tăng chỉ số học tập theo cấp số nhân (Exponential Learning Rate). Cách thức hoạt động của nó như sau:

- Hàm sẽ thực hiện huấn luyện toàn bộ dữ liệu trong tập dữ liệu huấn luyện và có thẩm định trên tập thẩm định.

- Khi kết thúc ở mỗi một batch dữ liệu hàm sẽ tính chỉ số mất mát (loss) sau đó lưu giữ lại.

- Sau khi huấn luyện xong hàm sẽ trả về giá trị các trọng số ban đầu cho mơ hình.

- Sau dùng hàm sẽ hiển thị chỉ số mất mát theo từng chỉ số tốc độ học tập. - Và trả về cho ta một chỉ số với chỉ số mất mát thấp nhất có thể.

Về lý thuyết các batch học tập ở mỗi lần đào tạo là khác nhau nên chỉ số

tốc độ học tập chỉ phần nào đó tiệm cận với chỉ số tốc độ học tập tốt nhất. Nhưng vậy là khá đủ để cho mơ hình học tập.

• Và nhằm tối ưu hóa các trọng số đầu vào nhóm đã sử dụng một trong hai optimizer sau để thử nghiệm:

- Adam − Adam optimizer.

- Nadam − Nesterov Adam optimizer.

4.5.5.5. Cài đặt các hàm gọi lại (Callback)

• Nhằm giảm thiểu khả năng mơ hình bị vấn đề overfiting và mơ hình khơng được cải thiện sau nhiều lần đào tạo nhóm đã cài đặt thêm hàm gọi lại Dừng sớm (Early Stopping) để khắc phục vấn đề trên.

• Kèm theo đó nhóm cũng cài đặt thêm hàm gọi lại Kiểm sốt mơ hình (Model Checkpoint) giúp ta có thể lưu giữ mơ hình ở trạng thái tốt nhất mà không phải lo về các vấn đề lỗi phát sinh, chính vì thế ta khơng phải mất thời gian để đào tạo lại.

Trang | 121

• Ngồi ra một giải pháp hiệu quả hơn trong việc thay đổi chỉ số tốc độ học tập tốt nhờ hiệu suất. Sau mỗi n bước nếu hiệu suất khơng cải thiện thì chỉ số tốc độ học tập sẽ giảm theo một hệ số (factor) do ta quy định.

4.5.5.6. Đào tạo mơ hình.

• Sao khi ta đã cài đặt mọi thứ ở phía trên ta bắt đầu tiến hành đào tạo mơ hình bằng cách gọi hàm “fit” của mơ hình.

• Trong q trình đào tạo ta sẽ quan sát được các chỉ số mất mát (loss) trên tập huấn luyện và tập thẩm định, cùng lúc đó ta cũng thấy được chỉ số tốc độ học tập hiển thị nếu q trình học tập khơng cải thiện hiệu suất.

Một phần của tài liệu Phân loại phong cách thiết kế nội thất dùng học sâu và ứng dụng thực tế đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin (Trang 133 - 138)