Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để tăng cường có thể được sử dụng để giảm trang bị quá mức bằng cách sử dụng Tensorflow và Python?

Tăng cường có thể được sử dụng để giảm tình trạng quá sức bằng cách thêm dữ liệu đào tạo bổ sung. Điều này được thực hiện bằng cách tạo mô hình tuần tự sử dụng lớp 'RandomFlip'.

Đọc thêm: TensorFlow là gì và cách Keras làm việc với TensorFlow để tạo Mạng thần kinh?

Chúng tôi sẽ sử dụng API tuần tự Keras, hữu ích trong việc xây dựng mô hình tuần tự được sử dụng để làm việc với một chồng lớp đơn giản, trong đó mỗi lớp có chính xác một tensor đầu vào và một tensor đầu ra.

Mạng nơ-ron chứa ít nhất một lớp được gọi là lớp chập. Chúng ta có thể sử dụng Mạng thần kinh hợp pháp để xây dựng mô hình học tập.

Bộ phân loại hình ảnh được tạo bằng mô hình keras.Sequential và dữ liệu được tải bằng preprocessing.image_dataset_from_directory. Dữ liệu được tải ra khỏi đĩa một cách hiệu quả. Việc trang bị quá nhiều được xác định và áp dụng các kỹ thuật để giảm thiểu nó. Những kỹ thuật này bao gồm tăng dữ liệu và bỏ cuộc. Có hình ảnh của 3700 bông hoa. Tập dữ liệu này có 5 thư mục con và có một thư mục con cho mỗi lớp. Đó là:

hoa cúc, bồ công anh, hoa hồng, hoa hướng dương và hoa tulip.

Chúng tôi đang sử dụng Google Colaboratory để chạy đoạn mã dưới đây. Google Colab hoặc Colaboratory giúp chạy mã Python qua trình duyệt và không yêu cầu cấu hình cũng như quyền truy cập miễn phí vào GPU (Đơn vị xử lý đồ họa). Colaboratory đã được xây dựng trên Jupyter Notebook.

Khi số lượng ví dụ đào tạo ít, mô hình học hỏi từ các tiếng ồn hoặc các chi tiết không mong muốn từ các ví dụ đào tạo. Điều này tác động tiêu cực đến hiệu suất của mô hình đối với các ví dụ mới.

Do trang bị quá nhiều, mô hình sẽ không thể tổng quát hóa tốt trên tập dữ liệu mới. Có nhiều cách để tránh mặc trang phục quá lố. Chúng tôi sẽ sử dụng tăng cường dữ liệu để khắc phục tình trạng overfitting. Tăng cường dữ liệu tạo ra dữ liệu đào tạo bổ sung từ các ví dụ hiện có bằng cách tăng cường chúng với sự trợ giúp của các phép biến đổi ngẫu nhiên sẽ mang lại hình ảnh trông đáng tin cậy.

Điều này giúp mô hình tiếp xúc với nhiều khía cạnh của dữ liệu hơn, từ đó giúp mô hình khái quát hóa tốt hơn. Sau đây là một ví dụ:

Ví dụ

print("Using data augmentation to eliminate overfitting")
data_augmentation = keras.Sequential(
   [
      layers.experimental.preprocessing.RandomFlip("horizontal",input_shape=(img_height,
      img_width,3)),
      layers.experimental.preprocessing.RandomRotation(0.1),
      layers.experimental.preprocessing.RandomZoom(0.1),
   ]
)

Mã tín dụng −https://www.tensorflow.org/tutorials/images/classification

Đầu ra

Using data augmentation to eliminate overfitting

Giải thích

  • Tăng dữ liệu có thể được triển khai bằng cách sử dụng các lớp từ tf.keras.layers.experimental.preprocessing.

  • Các lớp này được đưa vào bên trong mô hình giống như các lớp khác và chạy trên GPU.

  • Điều này được thực hiện để loại bỏ hoặc giảm bớt việc mặc quá nhiều.