Thủ Thuật về Keras python là gì Chi Tiết

Bạn đang tìm kiếm từ khóa Keras python là gì được Cập Nhật vào lúc : 2022-08-19 05:36:40 . Với phương châm chia sẻ Mẹo Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Ad lý giải và hướng dẫn lại nha.

Bài trước đã trình làng về convolutional neural network (CNN) cho bài toán với input là ảnh. Bài này sẽ trình làng về thư viện keras và ứng dụng keras để xây dựng quy mô CNN cho bài toán phân loại ảnh.

Nội dung chính

    Giới thiệu về kerasMNIST DatasetXây dựng bài toánChuẩn bị dữ liệuXây dựng modelLoss functionỨng dụng keras cho MNIST datasetỨng dụng của việc phân loại ảnhVideo liên quan

Giới thiệu về keras

Bản chất của bài toán Deep learning: Bạn có tài liệu, bạn muốn máy tính học được những quy mô (model) từ tài liệu, tiếp theo đó dùng quy mô đấy để Dự kiến được những tài liệu mới. Các bước cơ bản làm một bài toán deep learning :

    Xây dựng bài toánChuẩn bị tài liệu (dataset)Xây dựng modelĐịnh nghĩa loss functionThực hiện backpropagation và vận dụng gradient descent để tìm những parameter gồm weight và bias để tối ưu loss function.Dự đoán tài liệu mới bằng model với những thông số tìm kiếm được ở trên

Bước xây dựng model thì vận dụng những kiến thức và kỹ năng được trình diễn trong bài neural network và convolutional neural network ta hoàn toàn có thể xây dựng model hoàn hảo nhất từ trên đầu bằng python. Tuy nhiên bước backpropagation trở nên phức tạp hơn rất thật nhiều. Khó để implement và tối ưu được vận tốc tính toán. Đấy là nguyên do những framework về deep learning Ra đời với những điểm lưu ý:

    Người dùng chỉ việc định nghĩa model và loss function, framework sẽ lo phần backpropagation.Việc định nghĩa layer, activation function, loss function đơn thuần và giản dị hơn cho những người dân tiêu dùng. Ví dụ để thêm layer trong neural network chỉ việc báo là layer có bao nhiêu node và dùng hàm activation gì. Tối ưu việc tính toán trên CPU và GPU.

Có thể thấy tensorflow là framework phổ cập nhất tuy nhiên tensorflow khá khó sử dụng cho những người dân mới khởi đầu. Nên mình sẽ trình làng về keras: dễ sử dụng, thân thiện với những người tiêu dùng nhưng đủ tốt để làm những bài toán về deep learning.

Keras là một framework mã nguồn mở cho deep learning được viết bằng Python. Nó hoàn toàn có thể chạy trên nền của những deep learning framework khác ví như: tensorflow, theano, CNTK. Với những API bậc cao, dễ sử dụng, dễ mở rộng, keras giúp người tiêu dùng xây dựng những deep learning model một cách đơn thuần và giản dị.

MNIST Dataset

Xây dựng bài toán

Bạn có ảnh xám kích thước 28*28 của chữ số từ là 1 đến 9 và bạn muốn Dự kiến số đấy là số mấy. Ví dụ:

Dữ liệu thứ nhất trong MNIST dataset.

Chuẩn bị tài liệu

MNIST là bộ cơ sở tài liệu về chữ số viết tay, gồm có 2 tập con: training set gồm 60.000 ảnh những chữ số viết tay và test set gồm 10.000 ảnh những chữ số.

Training set, test set là gì?

Giả sử bạn đang luyện thi ĐH và bạn có 10 bộ đề để luyện thi. Nếu bạn học và chữa cả 10 đề một cách rõ ràng thì bạn sẽ không còn thể ước lượng được điểm thi của bạn khoảng chừng bao nhiêu, dẫn đến bạn không chọn được trường thích hợp. Thế là bạn nghĩ ra một giải pháp tốt hơn, trong 10 đề đấy chỉ lấy 8 đề học và chữa rõ ràng thôi còn để 2 đề lại coi như thể đề thi thật. Như vậy bạn hoàn toàn có thể ước lượng điểm thi của tớ bằng phương pháp nhìn nhận điểm ở cả 2 đề đấy.

Trong ví dụ trên thì:

    8 đề ôn luyện được gọi là training set, hoàn toàn có thể hiểu là tài liệu dùng để dạy cho model học.2 đề để rành gọi là validation set, là để xem nhận xem model hiện tại có tốt không, thường được sử dụng để chỉnh những tham số của model.đề thi ĐH thật là test set, là để xem nhận xem model hoạt động và sinh hoạt giải trí với tài liệu thực tiễn có tốt không.

Như vậy MNIST dataset có 60.000 tài liệu ở training set ở trong MNIST, ta sẽ chia ra 50.000 tài liệu cho training set và 10.000 tài liệu cho validation set. Vẫn không thay đổi 10.000 tài liệu của test set.

Xây dựng model

Vì input của model là ảnh nên nghĩ ngay đến convolutional neural network (CNN).

Mô hình chung bài toán CNN: Input image -> Convolutional layer (Conv) + Pooling layer (Pool) -> Fully connected layer (FC) -> Output.

Model cho bài toán

Input của model là ảnh xám kích thước 28*28.

Softmax function

Giống như bài logistic regression, thay vì chỉ muốn kết quả là ảnh là số mấy, ta muốn Dự kiến Phần Trăm của ảnh là số nào. Ví dụ: 90% ảnh là số 5, 1% ảnh là số 1,…

Nhắc lại bài neural network, ở mỗi layer sẽ thực thi 2 bước: tính tổng linear những node ở layer trước và thực thi activation function (ví dụ sigmoid function, softmax function). Do sau bước tính tổng linear cho ra những giá trị thực nên cần dùng softmax function dùng để quy đổi giá trị thực trong những node ở output layer sang giá trị Phần Trăm.

Vì mỗi ảnh sẽ thuộc 1 class từ 0 đến 9, nên toàn bộ sẽ có được 10 class. Nên output layer sẽ có được 10 node để tương ứng với Phần Trăm ảnh là số 0,1,..,9. Ví dụ: a_6 là xác xuất ảnh là số 5. (Sự khác lạ chỉ số do những số bắt nguồn từ 0 trong lúc chỉ số của node trong layer bắt nguồn từ là 1)

Softmax function

Tổng quát sau hàm activation: displaystyle a_k = frace^z_ksum_i=1^10 e^z_i.

Nhận xét:

    displaystyle sum_i=1^10 a_i = 10 < a_i < 1

Do đó ta hoàn toàn có thể coi a_i là xác xuất ảnh là số (i-1).

Với những bài toán classification (phân loại) thì nếu có 2 lớp thì hàm activation ở output layer là hàm sigmoid, còn nhiều hơn nữa 2 lớp thì hàm activation ở ouput layer là hàm softmax

=> Output layer có 10 nodes và activation là softmax function.

Loss function

Để định nghĩa loss function, trước hết ta dùng one-hot encoding quy đổi label của ảnh từ giá trị số sang vector cùng kích thước với output của model. Ví dụ:

Để ý là label của data là số i là vector v kích thước 10*1 với v_i+1= 1 và những giá trị khác bằng 0. So với quy ước về Phần Trăm ở trên thì one-hot encoding có ý nghĩa là ta chắc như đinh 100% ảnh này là số 5.

Giờ ta có mức giá trị thật (label) dạng one-hot encoding giá trị Dự kiến ở output layer sau hàm softmax function cùng kích thước 10*1. Ta cần định nghĩa hàm loss function để xem nhận độ tốt của model.

Mong muốn là a_6 gần 1 còn những giá trị a khác gần 0 vì như vậy nghĩa là model Dự kiến đúng được ảnh nguồn vào là ảnh số 5. Ta định nghĩa loss function:

displaystyle L = -sum_i=1^10 y_i * log(haty_i)

Thử nhìn nhận hàm L. Giả sử ảnh là số 5 thì displaystyle L = – log( haty_6).

Nhận xét:

    Hàm L giảm dần từ 0 đến 1Khi model Dự kiến haty_6 gần 1, tức giá trị Dự kiến gần với giá trị thật y_6 thì L nhỏ, xấp xỉ 0 Khi model Dự kiến haty_6 gần 0, tức giá trị Dự kiến ngược lại giá trị thật y_6 thì L rất rộng

=> Hàm L nhỏ khi giá trị model Dự kiến gần với giá trị thật và rất rộng khi model Dự kiến sai, hay nói cách khác L càng nhỏ thì model Dự kiến càng gần với giá trị thật. => Bài toán tìm model trở thành tìm giá trị nhỏ nhất của L.

Hàm loss function định nghĩa như trên trong keras gọi là “categorical_crossentropy

Ứng dụng keras cho MNIST dataset

Code mọi người lấy ở đây và hoàn toàn có thể dùng google colab (không cần setup trên máy và hoàn toàn có thể dùng được luôn) để chạy code với hướng dẫn sử dụng ở đây.

Ứng dụng của việc phân loại ảnh

    Chuẩn đoán ảnh X-ray của bệnh nhân có bị ung thư hay khôngPhân loại, nhận diện được những chữ, số viết tay => tự động hóa đọc được biển số xe, văn bản.Phân loại được những biển báo giao thông vận tải lối đi bộ => tương hỗ cho xe hơi tự lái…

Mọi người hoàn toàn có thể rèn luyện tự xây dựng model cho CIFAR10 dataset gồm có 50,000 training set và 10.000 test set ảnh màu kích thước 32×32 cho 10 thể loại rất khác nhau (máy bay, xe hơi, thuyền, chim, chó, mèo, ngựa,…).

# Load tài liệu cifar10
from keras.datasets import cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

Bài 8: Ứng dụng CNN cho xe hơi tự lái

Bài 6: Convolutional neural network

Tải thêm tài liệu liên quan đến nội dung bài viết Keras python là gì

4087

Review Keras python là gì ?

Bạn vừa Read nội dung bài viết Với Một số hướng dẫn một cách rõ ràng hơn về Clip Keras python là gì tiên tiến và phát triển nhất

Share Link Download Keras python là gì miễn phí

Hero đang tìm một số trong những Chia SẻLink Tải Keras python là gì miễn phí.

Thảo Luận vướng mắc về Keras python là gì

Nếu sau khi đọc nội dung bài viết Keras python là gì vẫn chưa hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Tác giả lý giải và hướng dẫn lại nha
#Keras #python #là #gì