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

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)

Trang | 117

Hình 4.56: Mơ tả đơn giản tập thử nghiệm trong quá 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 quá 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 toà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 ở quá 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

• Ngoà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.

4.5.6. Kết quả huấn luyện

Khi huấn luyện các mơ hình thường xun xảy ra những vấn đề lỗi phát sinh nên các thống kê bên dưới chỉ đề cập đế những kết quả huấn luyện đạt kết quả tốt nhất.

4.5.6.1. Các mơ hình SOTAs

Các đặt điểm khi thực hiện huấn luyện các mơ hình SOTAs:

• Khi thực hiện đọc dữ liệu và tạo mơ hình hồn chính bao gồm đã đính kèm các FC layer với mơ hình ban đầu (model base – những SOTAs) thì tiến hành tìm chỉ số tốc độ học tập, các đồ thì của các mơ hình hầu hết có dạng gần với chữ U hoặc V với độ mịn khơng cao và có xu hướng cao hơn khi chỉ số tốc độ học tập càng nhỏ hoặc càng lớn, khi ta chọn vị trí có chỉ số mất mát (loss) thấp nhất cũng chính là chọn vị trí gần trung tâm của biểu đồ, thực sự ta đã có hàm tính tốn cung cấp cho việc đó.

• Sau khi tìm chỉ số tốc độ học tập, thì việc lập lịch cho nó “giảm” đi một cách hợp lý cũng là một phép hợp lý để huấn luyện mơ hình tốt hơn, nhóm đã chọn cách giảm nhanh chỉ số tốc độ học tập chỉ sau 1 chỉ nguyên không thực sự cải thiện hiệu suất, bởi vì mơ hình ban đầu có thể học rất tốt các đặc điểm của hình ảnh (cụ thể là đã được huấn luyện bộ dữ liệu ImageNet) nên ta chỉ ứng dụng huấn luyện lại nên thời gian huấn cho mỗi mơ hình này khá nhanh và số kỷ ngun khơng q lớn.

• Hiệu quả mà các mơ hình đạt được rất tốt. Cụ thể ta xem kết quả huấn luyện bên dưới:

Trang | 122

Mơ hình InceptionV3:

Hình 4.58: Tìm tốc độ học theo cấp số nhân mơ hình InceptionV3.

Hình 4.59: Chỉ số mất mát trên tập huấn luyện và tập thẩm định mơ hình InceptionV3.

Trang | 123 Mơ hình DenseNet201:

Hình 4.61: Tìm tốc độ học theo cấp số nhân mơ hình DenseNet201.

Hình 4.62: Chỉ số mất mát trên tập huấn luyện và tập thẩm định mơ hình DenseNet201.

Trang | 124

Mơ hình Xception:

Hình 4.64: Tìm tốc độ học theo cấp số nhân mơ hình Xception.

Hình 4.65: Chỉ số mất mát trên tập huấn luyện và tập thẩm định mơ hình Xception.

Trang | 125

4.5.6.2. Các mơ hình tự tạo

Ở mơ những mơ hình này nhóm đã thực hiện 2 lần huấn luyện, lần thứ nhất nhất là huấn luyện trên tập dữ liệu ban đầu khi chưa thêm mới và lần sau dùng kỹ thuận học tập chuyển giao để sử dụng lại mơ hình đã huấn luyện trước đó.

Các đặc điểm ở các bước huấn luyện:

• Các bước thực hiện khá giống với SOTAs nhưng thời gian huấn luyện cũng như các chỉ số huấn luyện gần như khác với quy trình huấn luyện SOTAs bởi mơ hình tự tạo mới này. Cụ thể như số kỷ nguyên (epochs ~ 100) gần như rất lớn, và đặt kỳ vọng dừng sớm cũng lớn hơn rất nhiều (patience ~ 25) và chỉ số tốc độ học nhóm cũng cho hệ số nhỏ hơn một chút so với SOTAs (factor ~ 0.5), điều này được khảo sát bởi vì quảng đường hội tụ của mơ hình mới sẽ dài hơn so với các mơ hình đã đào tạo trước.

• Sau khi huấn luyện được mơ hình tự tạo ta được mơ hình F1 trên bộ dữ liệu ban đầu và sau đó chúng ta tiếp tục sử dụng lại để huấn luyện trên bộ dữ liệu mới, điều này giúp nhóm cải thiện được thời gian huấn luyện xuống và cũng đạt kết quả tốt hơn so với việc phải chờ đợi huấn luyện lại từ đầu. Ở lần huấn luyện lần 2 thì ta sử dụng lại phương pháp tương tự như huấn luyện với các mơ hình SOTAs.

• Ở quy trình huấn luyện lần 2 thời gian huấn luyện sẽ nhanh hơn rất nhiều bởi mơ hình đào tạo trước đó đã tiến gần đến miền hội tụ trên tập dữ liệu ban đầu.

Trang | 126

Mơ hình thứ nhất:

Hình 4.67: Chỉ số mất mát trên tập huấn luyện và tập thẩm định mô hình tự tạo thứ nhất (lần 1).

Hình 4.68: Chỉ số chính xác trên tập huấn luyện và tập thẩm định mơ hình tự tạo thứ nhất (lần 1).

Sau khi đào tạo lần thứ nhất nhóm đã ghi nhận được độ chính xác của mơ hình trên tập thẩm định là 86% và ta tiếp tục huấn luyện trên tập dữ liệu mới và kết quả lần 2 huấn luyện được ghi nhận như sau:

Trang | 127

Hình 4.69: Tìm tốc độ học theo cấp số nhân mơ hình thứ nhất (lần 2).

Hình 4.70: Chỉ số mất mát trên tập huấn luyện và tập thẩm định mơ hình thứ nhất (lần 2).

Trang | 128

Mơ hình thứ hai:

Sau khi đào tạo lần thứ nhất trên bộ dữ liệu ban đầu ta được kết quả như sau:

Hình 4.72: Chỉ số mất mát trên tập huấn luyện và tập thẩm định mơ hình tự tạo thứ hai (lần 1).

Hình 4.73: Chỉ số chính xác trên tập huấn luyện và tập thẩm định mơ hình tự tạo thứ hai (lần 1).

Sau khi đào tạo lần thứ nhất ta sử dụng lại và tiếp tục đào tạo trên bộ dữ liệu mới đã được tiền xử lý, trong bộ dữ liệu này ta có được dữ liệu mới và có sử dụng kỹ thuật tăng cường dữ liệu. Bên dưới là kết quả huấn luyện mơ hình hai sau khi:

Trang | 129

Hình 4.74: Tìm tốc độ học theo cấp số nhân mơ hình thứ hai (lần 2).

Hình 4.75: Chỉ số mất mát trên tập huấn luyện và tập thẩm định mơ hình thứ hai (lần 2).

Trang | 130

4.5.7. Đánh giá mơ hình

Việc đánh giá mơ hình rất quan trọng trước khi ứng dụng mơ hình đó được ứng dụng mơ hình cho các sản phẩm thực tế khác, chính vì vậy quy trình đánh giá mơ hình nhóm đã thực hiện như sau:

• Sau khi đào tạo mơ hình xong nhóm cần thử đánh giá trên tập thử nghiệm, tập thử nghiệm này cần phải hồn tồn có có dữ liệu giống với tập huấn lun.

• Sau khi đánh giá nhóm đánh giá các giá trị tốc độ tải mơ hình lên và tốc độ dự đốn của mỗi mơ hình.

• Tổng quát hóa lên các biểu đồ để so sánh hiệu suất.

Trang | 131

4.5.7.1. Các mơ hình SOTAs

Mơ hình InceptionV3:

• Số epochs đã huấn luyện: 21

• Tốc độ huấn luyện trung bình 1 epochs: ≅ 137.88𝑠

• Độ chính xác trên tập thẩm đinh: 96.63%

• Độ chính xác trên tập thử nghiệm: 98.00%

Trang | 132

Mơ hình DenseNet201:

• Số epochs đã huấn luyện: 14

• Tốc độ huấn luyện trung bình 1 epochs: ≅ 144.07𝑠

• Độ chính xác trên tập thẩm đinh: 98.86%

• Độ chính xác trên tập thử nghiệm: 98.84%

Trang | 133

Mơ hình Xception:

• Số epochs đã huấn luyện: 21

• Tốc độ huấn luyện trung bình 1 epochs: ≅ 160.72𝑠

• Độ chính xác trên tập thẩm đinh: 97.62%

• Độ chính xác trên tập thử nghiệm: 98.56%

Trang | 134

4.5.7.2. Các mơ hình tự tạo

Mơ hình thứ nhất (ghi nhận kết quả lần 2):

• Số epochs đã huấn luyện: 10

• Tốc độ huấn luyện trung bình 1 epochs: ≅ 1276.66𝑠

• Độ chính xác trên tập thẩm đinh: 87.51%

• Độ chính xác trên tập thử nghiệm: 93.64%

Trang | 135

Mơ hình thứ hai (ghi nhận kết quả lần 2):

• Số epochs đã huấn luyện: 14

• Tốc độ huấn luyện trung bình 1 epochs: ≅ 138.74𝑠

• Độ chính xác trên tập thẩm đinh: 86. 68%

• Độ chính xác trên tập thử nghiệm: 94.48%

Trang | 136

4.5.7.3. Áp dụng phương pháp biểu quyết tổng hợp.

Soft Voting:

Bảng 4.11: Classification report Soft Voting.

CLASSIFICATION REPORT SOFT VOTING

precision recall f1-score support

ArtDecor 0.99 0.98 0.98 500 Hitech 0.99 1.00 1.00 500 Indochina 0.99 1.00 0.99 500 Industrial 0.99 0.98 0.99 500 Scandinavian 0.98 0.98 0.98 500 accuracy 0.99 2500 macro avg 0.99 0.99 0.99 2500 weighted avg 0.99 0.99 0.99 2500

Trang | 137

Hard Voting:

Bảng 4.12: Classification report Hard Voting.

CLASSIFICATION REPORT HARD VOTING

precision recall f1-score support

ArtDecor 0.99 0.98 0.99 500 Hitech 0.99 0.98 0.99 500 Indochina 0.99 1.00 0.99 500 Industrial 0.99 0.98 0.98 500 Scandinavian 0.99 0.98 0.98 500 accuracy 0.99 2500 macro avg 0.99 0.99 0.99 2500 weighted avg 0.99 0.99 0.99 2500

Trang | 138

4.5.7.4. So sánh hiệu suất của các mơ hình.

Trang | 139

4.5.8. Tối ưu hóa về dung lượng vật lý với TF Lite

Sau khi quy trình huấn luyện hồn thành ta có được các mơ hình ở định dạng file *.h5 và nhìn nhận một cách tổng quan thì con số kích thước của các mơ hình đã đào tạo ra rất lớn, chúng thì khơng thể nào triển khai cho các ứng dụng đơn giản và nhỏ gọn, chính vì thế nhóm đã tìm hiểu và biết thêm được thư viện nhỏ trong thư viện Tensorflow

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)