DAT301MChưa đo Cập nhật 2 ngày trước

DAT301m - Phát triển UDTTNT với TensorFlow

DAT301m - Phát triển UDTTNT với TensorFlow là môn 3 tín chỉ bậc cử nhân của Đại học FPT, học sau CPV301 và DPL302m. Môn đưa người học từ chỗ hiểu học sâu trên lý thuyết tới chỗ tự dựng, huấn luyện và kiểm tra được mô hình chạy thật bằng TensorFlow và Keras. Văn bản là ví dụ rõ nhất cho việc dữ liệu phải được chuẩn bị trước khi mạng nơ-ron đọc được: câu chữ được tách thành từ, đánh số theo một bộ từ vựng, đệm hoặc cắt cho cùng độ dài, rồi ánh xạ sang vector nhúng, nơi các từ gần nghĩa nằm gần nhau. Khi thứ tự từ quyết định nghĩa của câu, mô hình cần lớp hồi quy như LSTM để nhớ ngữ cảnh xa, và cũng chính cơ chế đó cho phép sinh văn bản bằng cách dự đoán từ kế tiếp. Nền móng của mọi bài toán vẫn là vòng học cơ bản: khai báo các lớp, chọn hàm mất mát và bộ tối ưu, huấn luyện rồi đo trên dữ liệu mô hình chưa từng thấy, với bài toán nhận diện ảnh làm ví dụ mở đầu. Chuỗi thời gian là loại dữ liệu thứ ba: một chuỗi được tách thành xu hướng, tính mùa vụ và nhiễu, được chia theo mốc thời gian thay vì xáo ngẫu nhiên, và được đo bằng sai số tuyệt đối hoặc bình phương trung bình trước khi giao cho mạng sâu hay mạng hồi quy dự báo. Với ảnh thật, kích thước lớn và đa dạng, mô hình rất dễ học thuộc dữ liệu huấn luyện; tăng cường ảnh, dropout và học chuyển giao từ một mạng đã huấn luyện sẵn là ba cách chống lại hiện tượng quá khớp đó. Cốt lõi của thị giác máy tính là phép tích chập và gộp, giúp mạng tự rút ra đường nét và hình dạng thay vì nhìn từng điểm ảnh rời rạc. Các thuật ngữ người học dùng thường xuyên gồm tensor, lớp Dense, Conv2D, MaxPooling2D, Tokenizer, Embedding, LSTM và cửa sổ trượt. Môn cũng rèn quy trình của một ứng dụng trí tuệ nhân tạo hoàn chỉnh: thu thập, làm sạch và khám phá dữ liệu, xây dựng và đánh giá mô hình, rồi báo cáo kết quả. Học xong, người học đọc được kiến trúc một mô hình Keras và tính được kích thước đầu ra của từng lớp, chọn được cách biểu diễn phù hợp cho ảnh, văn bản và chuỗi thời gian, nhận ra dấu hiệu quá khớp và biết cách xử lý, đồng thời đủ nền để tự triển khai một bài toán học sâu nhỏ từ dữ liệu thô tới kết quả có thể giải thích.

100Câu hỏi
2Bộ đề
4Chủ đề
Thử sức tại chỗ

Trả lời ngay tại đây

Chưa trả lời câu nào
1DAT301M - Phần 3: Xử lý ngôn ngữ tự nhiên với TensorFlow
How is the softmax activation function typically used in next-word prediction models?
2DAT301M - Phần 1: TensorFlow và mạng nơ-ron cho thị giác máy tính
Which activation has range [0, ∞)?
3DAT301M - Phần 4: Chuỗi thời gian và dự báo
How can seasonality be addressed in time series analysis?
Còn 3 câu nữa ở trên

Trả lời hết các câu trên để xem tổng kết, hoặc vào phiên học ngay.

Học từ ngân hàng câu hỏi

Bắt đầu một phiên học theo môn

Tiến độ của bạn luôn được tính và đồng bộ trực tiếp theo tổng số lượng câu hỏi mới nhất của môn học này.

100Ngân hàng hiện tại--Tiến độ môn

Câu hỏi của môn

Ngân hàng này trùng 100% với Cuối kỳ · FE · DAT301M.

24/100 câuCòn 76
AExpanding words to their full forms
BReducing words to their root or base form
CAnalyzing sentence structure
DIdentifying entities in text
Lời giải
Đáp án đúng: "Reducing words to their root or base form". Stemming (rút gọn về gốc từ) là bước tiền xử lý văn bản cắt bỏ hậu tố để đưa các biến thể về cùng một dạng gốc, ví dụ "running", "runs" đều thành "run"; nhờ vậy từ vựng nhỏ lại và các từ cùng nghĩa được đếm chung, có ích cho mô hình túi từ hay tìm kiếm. "Expanding words to their full forms" sai vì đó là mở rộng từ viết tắt hoặc dạng rút gọn (như "don't" thành "do not"), ngược hướng với việc cắt từ về gốc. "Analyzing sentence structure" sai vì phân tích cấu trúc câu là parsing (phân tích cú pháp), làm việc ở mức quan hệ giữa các từ chứ không biến đổi hình thái từng từ. "Identifying entities in text" sai vì nhận diện thực thể như tên người, địa danh là nhiệm vụ Named Entity Recognition (NER), không liên quan tới việc rút gọn hình thái từ.
Mở trang câu hỏi này →
AA single line indicating both training and validation accuracies
BTwo separate lines for training and validation accuracies
CA bar chart comparing training and validation accuracies
DA scatter plot showing individual data points
Lời giải
Đáp án đúng: "Two separate lines for training and validation accuracies". Sau khi gọi model.fit với dữ liệu kiểm định, đối tượng history lưu accuracy và val_accuracy theo từng epoch; cách vẽ chuẩn là hai đường trên cùng một trục, trục hoành là epoch, để thấy hai đường cùng đi lên hay tách xa nhau, từ đó nhận ra overfitting (quá khớp) khi độ chính xác huấn luyện tiếp tục tăng còn độ chính xác kiểm định chững lại hoặc giảm. "A single line indicating both training and validation accuracies" không thể hiện được hai đại lượng khác nhau nên mất đúng thông tin cần so sánh. "A bar chart comparing training and validation accuracies" hợp để so sánh vài con số cuối cùng, nhưng không cho thấy diễn biến liên tục qua các epoch. "A scatter plot showing individual data points" dùng để xem phân bố của từng mẫu dữ liệu, không phải để theo dõi đường học của mô hình.
Mở trang câu hỏi này →
A224×224
B256×256
C299×299
D331×331
Lời giải
Đáp án đúng: "299×299". InceptionV3 được thiết kế và huấn luyện trên ImageNet với ảnh đầu vào 299×299×3, nên khi gọi tf.keras.applications.InceptionV3 với include_top=True, input_shape mặc định là (299, 299, 3); khi dùng làm mô hình nền cho transfer learning, ta thường resize ảnh về đúng kích thước này và chuẩn hoá bằng hàm preprocess_input đi kèm. "224×224" sai vì đây là kích thước chuẩn của các mạng khác như VGG16, ResNet50 hay MobileNet chứ không phải InceptionV3. "256×256" sai vì đó thường là kích thước ảnh được thu nhỏ trước khi cắt giữa lấy vùng 224 trong quy trình tiền xử lý ImageNet kinh điển, không phải đầu vào của InceptionV3. "331×331" sai vì đó là kích thước đầu vào của NASNetLarge, một kiến trúc lớn hơn trong cùng bộ tf.keras.applications.
Mở trang câu hỏi này →
AIt repeats the dataset multiple times during training.
BIt adds noise to the dataset.
CIt repeats the feature-label pairs within each batch.
DIt reshapes the dataset.
Lời giải
Đáp án đúng: "It repeats the dataset multiple times during training.". Phương thức repeat của tf.data.Dataset nối dữ liệu với chính nó: dataset.repeat(n) lặp toàn bộ tập n lần, còn repeat() không đối số lặp vô hạn, nhờ đó vòng huấn luyện có thể đi qua dữ liệu nhiều epoch (lượt) mà không phải tạo lại pipeline; khi lặp vô hạn thì cần steps_per_epoch để model.fit biết lúc kết thúc một epoch. "It adds noise to the dataset." sai vì repeat không thay đổi giá trị phần tử nào; muốn thêm nhiễu phải dùng map với một hàm biến đổi hoặc lớp GaussianNoise. "It repeats the feature-label pairs within each batch." sai vì repeat thao tác trên cả tập dữ liệu chứ không nhân bản cặp đặc trưng–nhãn bên trong một batch; việc gom batch do batch đảm nhận. "It reshapes the dataset." sai vì đổi hình dạng tensor phải dùng tf.reshape trong map, repeat giữ nguyên shape của từng phần tử.
Mở trang câu hỏi này →
ATokenizing text into subword units for language modeling
BTokenizing multilingual text with different scripts
CTokenizing text into individual words based on whitespaces
DTokenizing text based on learned subword units for WordPiece models
Lời giải
Đáp án đúng: "Tokenizing multilingual text with different scripts". SplitMergeTokenizer trong TensorFlow Text tách văn bản dựa trên nhãn split/merge gán cho từng ký tự: nhãn cho biết ký tự đó bắt đầu một token mới hay được gộp vào token trước, nên nó hữu ích với các hệ chữ không dùng khoảng trắng giữa các từ như tiếng Trung hay tiếng Nhật, nơi một văn bản đa ngôn ngữ có thể trộn nhiều kiểu chữ. "Tokenizing text into subword units for language modeling" là việc của các bộ tách đơn vị dưới từ như SentencepieceTokenizer, còn SplitMergeTokenizer không tự tạo đơn vị dưới từ. "Tokenizing text into individual words based on whitespaces" là chức năng của WhitespaceTokenizer, trong khi điểm mạnh của SplitMergeTokenizer chính là không phụ thuộc khoảng trắng. "Tokenizing text based on learned subword units for WordPiece models" mô tả WordpieceTokenizer, vốn dùng một bộ từ vựng WordPiece đã học sẵn chứ không dựa vào nhãn split/merge từng ký tự.
Mở trang câu hỏi này →
AThe length of each word in a document
BThe number of words in a sentence or document
CThe size of the vocabulary
DThe embedding dimension of the vectors
Lời giải
Đáp án đúng: "The number of words in a sentence or document". Khi chuyển văn bản thành chuỗi số bằng Tokenizer và texts_to_sequences, mỗi từ được thay bằng một chỉ số nguyên, nên độ dài chuỗi (sequence length) chính là số token, tức số từ trong câu hay văn bản; vì các câu dài ngắn khác nhau, ta dùng pad_sequences với maxlen để đệm hoặc cắt cho mọi chuỗi cùng độ dài trước khi đưa vào mạng. "The length of each word in a document" sai vì đó là số ký tự trong một từ, trong khi một từ chỉ ứng với một chỉ số duy nhất trong chuỗi. "The size of the vocabulary" sai vì kích thước từ vựng là số từ khác nhau mà Tokenizer quản lý (giới hạn bằng num_words), không phụ thuộc độ dài từng câu. "The embedding dimension of the vectors" sai vì đó là số chiều của vector biểu diễn mỗi từ, đặt bằng output_dim của lớp Embedding, không phải số từ trong chuỗi.
Mở trang câu hỏi này →
AIt has no impact on overfitting.
BIt increases the risk of overfitting.
CIt helps the model generalize better to new data.
DIt makes the model more prone to memorizing noise.
Lời giải
Đáp án đúng: "It helps the model generalize better to new data.". Overfitting (quá khớp) xảy ra khi mô hình học thuộc cả nhiễu và chi tiết ngẫu nhiên của tập huấn luyện nhỏ thay vì quy luật chung; khi có nhiều mẫu hơn, các đặc điểm ngẫu nhiên khó lặp lại nhất quán nên mô hình buộc phải nắm mẫu hình thật sự, nhờ đó khả năng generalization (tổng quát hoá) lên dữ liệu chưa thấy tăng. Đây cũng là lý do data augmentation (tăng cường dữ liệu) được dùng như cách "tạo thêm" dữ liệu. "It has no impact on overfitting." sai vì kích thước dữ liệu là một trong những yếu tố tác động mạnh nhất tới quá khớp. "It increases the risk of overfitting." sai vì đi ngược cơ chế: nhiều dữ liệu hơn làm giảm, không làm tăng, rủi ro quá khớp. "It makes the model more prone to memorizing noise." sai vì nhiễu ngẫu nhiên bị pha loãng bởi lượng mẫu lớn, mô hình khó ghi nhớ nhiễu hơn chứ không dễ hơn.
Mở trang câu hỏi này →
AImage classification
BNamed entity recognition
CText categorization
DSpeech synthesis
Lời giải
Đáp án đúng: "Text categorization". Sentiment analysis (phân tích cảm xúc) nhận một đoạn văn bản và gán cho nó một nhãn như tích cực, tiêu cực hoặc trung tính, tức là một bài toán phân loại văn bản; trong Keras thường dựng bằng Embedding, một lớp tổng hợp như GlobalAveragePooling1D hoặc LSTM, rồi một lớp Dense với sigmoid cho hai lớp hoặc softmax cho nhiều lớp. "Image classification" cũng là phân loại nhưng đầu vào là ảnh, không phải chuỗi từ. "Named entity recognition" (nhận dạng thực thể có tên) gán nhãn cho từng token như tên người, địa điểm, tổ chức, tức là gán nhãn chuỗi chứ không phải gán một nhãn cảm xúc cho cả văn bản. "Speech synthesis" (tổng hợp giọng nói) biến văn bản thành âm thanh, là bài toán sinh dữ liệu chứ không phải phân loại.
Mở trang câu hỏi này →
AAs strings
BAs integer values
CUsing one-hot encoding
DUsing floating-point numbers
Lời giải
Đáp án đúng: "Using one-hot encoding". Với bài toán phân loại nhiều lớp, nhãn thường được biểu diễn bằng one-hot encoding (mã hoá một-nóng): mỗi nhãn là vector dài bằng số lớp, vị trí của lớp đúng bằng 1, còn lại bằng 0, tạo bằng tf.keras.utils.to_categorical hoặc label_mode='categorical'; dạng này khớp với đầu ra softmax và hàm mất mát categorical_crossentropy. "As integer values" chỉ hợp khi dùng sparse_categorical_crossentropy, đó là một biến thể tiết kiệm bộ nhớ chứ không phải cách biểu diễn được hỏi ở đây, và số nguyên đứng một mình dễ khiến mô hình hiểu nhầm là có thứ tự giữa các lớp. "As strings" sai vì mạng nơ-ron chỉ tính toán trên số, nhãn chữ phải được chuyển đổi (ví dụ qua StringLookup) trước khi huấn luyện. "Using floating-point numbers" sai vì một số thực đơn lẻ biểu diễn đại lượng liên tục như bài toán hồi quy, không mô tả được việc thuộc về một trong nhiều lớp rời rạc.
Mở trang câu hỏi này →
AUse the 'horizontal_flip' parameter
BUse the 'flip' parameter and set 'horizontal'
CUse the 'flip_vertical' parameter around the Y axis
DUse the 'flip' parameter
Lời giải
Đáp án đúng: "Use the 'horizontal_flip' parameter". Trong ImageDataGenerator của Keras, tham số horizontal_flip=True lật ngẫu nhiên ảnh theo chiều ngang (lấy trục dọc làm gương), biến người quay mặt sang trái thành người quay mặt sang phải; nhờ vậy mô hình thấy cả hai hướng dù dữ liệu gốc chỉ có một hướng, giảm overfitting (quá khớp) vào hướng mặt. "Use the 'flip' parameter and set 'horizontal'" sai vì ImageDataGenerator không có tham số flip nhận giá trị 'horizontal'; chuỗi "horizontal" chỉ xuất hiện ở lớp RandomFlip mới hơn chứ không phải cách viết này. "Use the 'flip_vertical' parameter around the Y axis" sai vì không có tham số tên flip_vertical, và lật dọc (vertical_flip) đảo trên dưới, biến người thành lộn ngược chứ không đổi hướng trái phải. "Use the 'flip' parameter" sai vì ImageDataGenerator không có tham số flip chung; phải chỉ rõ horizontal_flip hoặc vertical_flip.
Mở trang câu hỏi này →
AThe window before the input window
BThe window after the input window
CThe window at the same time as the input window
DThe entire time series without windowing
Lời giải
Đáp án đúng: "The window after the input window". Khi dựng windowed dataset (tập dữ liệu chia cửa sổ) cho dự báo chuỗi thời gian, ta lấy một đoạn liên tiếp các giá trị quá khứ làm đặc trưng đầu vào và giá trị hoặc đoạn giá trị ngay sau nó làm nhãn, vì mô hình phải học cách đoán tương lai từ quá khứ; trong tf.data thường dùng window với kích thước window_size + 1 rồi map để tách phần đầu làm đầu vào và phần tử cuối làm nhãn. "The window before the input window" đảo ngược chiều thời gian, khiến mô hình học suy ngược quá khứ thay vì dự báo. "The window at the same time as the input window" làm nhãn trùng với chính đầu vào, mô hình chỉ cần chép lại nên không học được gì về dự báo. "The entire time series without windowing" không tạo ra được cặp đầu vào và nhãn nào, nên không có mục tiêu để huấn luyện có giám sát.
Mở trang câu hỏi này →
ACopying and pasting code from one project to another
BTraining a model on a specific task and then using it as a starting point for a different but related task
CMoving data from one storage location to another
DAdjusting the brightness and contrast of images during preprocessing
Lời giải
Đáp án đúng: "Training a model on a specific task and then using it as a starting point for a different but related task". Trong thị giác máy tính, transfer learning (học chuyển giao) lấy một mạng tích chập đã học trên tập lớn như ImageNet, ví dụ MobileNetV2 hay InceptionV3 trong tf.keras.applications, đóng băng các lớp tích chập đã học đặc trưng tổng quát rồi thêm và huấn luyện lớp phân loại mới, có thể fine-tune (tinh chỉnh) vài lớp trên cùng cho bài toán mới. "Copying and pasting code from one project to another" sai vì thứ được chuyển giao là trọng số và đặc trưng đã học, không phải mã nguồn. "Moving data from one storage location to another" sai vì đó là thao tác di chuyển dữ liệu thuần tuý, không có mô hình nào học gì. "Adjusting the brightness and contrast of images during preprocessing" sai vì đó là tiền xử lý hoặc tăng cường dữ liệu (data augmentation), giúp đa dạng tập huấn luyện chứ không tái sử dụng tri thức của mô hình khác.
Mở trang câu hỏi này →
ATokenizing based on whitespace
BTokenizing using pre-trained models from TensorFlow Hub
CTokenizing using Sentencepiece
DTokenizing by splitting and merging text
Lời giải
Đáp án đúng: "Tokenizing by splitting and merging text". SplitMergeTokenizer trong thư viện TensorFlow Text nhận chuỗi kèm một dãy nhãn cho từng ký tự cho biết ký tự đó bắt đầu một token mới (split) hay được nối vào token đang dựng (merge); cách này hợp với các ngôn ngữ không dùng khoảng trắng như tiếng Trung, khi nhãn tách/gộp đến từ một mô hình phân đoạn. "Tokenizing based on whitespace" sai vì đó là việc của WhitespaceTokenizer, chỉ cắt tại khoảng trắng. "Tokenizing using pre-trained models from TensorFlow Hub" sai vì việc dùng mô hình phân đoạn tải từ TensorFlow Hub thuộc về HubModuleTokenizer, không phải SplitMergeTokenizer. "Tokenizing using Sentencepiece" sai vì đó là SentencepieceTokenizer, chia văn bản thành đơn vị subword (từ con) theo mô hình SentencePiece đã huấn luyện.
Mở trang câu hỏi này →
AIt restricts access to only one user at a time.
BIt allows real-time collaboration with multiple users on the same notebook.
CIt requires users to download and upload notebooks for sharing.
DIt only supports offline collaboration.
Lời giải
Đáp án đúng: "It allows real-time collaboration with multiple users on the same notebook.". Google Colab lưu notebook trên Google Drive, nên có thể chia sẻ bằng liên kết hoặc cấp quyền như một tài liệu Google; nhiều người cùng mở, chỉnh sửa ô mã, ô văn bản và để lại bình luận trên cùng một notebook mà không phải gửi tệp qua lại, rất tiện cho nhóm cùng làm một mô hình TensorFlow. "It restricts access to only one user at a time." trái với cơ chế chia sẻ của Drive, vốn cho phép nhiều người truy cập cùng lúc. "It requires users to download and upload notebooks for sharing." mô tả đúng cách làm thủ công với notebook chạy cục bộ, còn Colab chia sẻ trực tiếp trên đám mây nên không cần tải xuống rồi tải lên. "It only supports offline collaboration." sai vì Colab là dịch vụ chạy trên trình duyệt, cần kết nối mạng để dùng runtime và để cộng tác.
Mở trang câu hỏi này →
AZero padding
BSame padding
CValid padding
DSymmetric padding
Lời giải
Đáp án đúng: "Same padding". Trong Conv2D, đặt padding='same' thì Keras tự đệm thêm viền quanh ảnh sao cho với stride bằng 1, đầu ra có cùng chiều cao và chiều rộng với đầu vào; ví dụ ảnh 28×28 qua bộ lọc 3×3 được đệm mỗi phía 1 điểm ảnh nên vẫn ra 28×28. "Valid padding" sai vì padding='valid' nghĩa là không đệm, đầu ra co lại theo công thức n − k + 1, ví dụ 28 − 3 + 1 = 26. "Zero padding" sai vì đây chỉ nói giá trị dùng để đệm là số 0 mà không quy định đệm bao nhiêu; đệm ít hơn mức cần thì kích thước vẫn giảm, nên thuật ngữ này không bảo đảm giữ nguyên kích thước như same padding. "Symmetric padding" sai vì đó là kiểu đệm lấy giá trị phản chiếu từ mép ảnh (chế độ SYMMETRIC của tf.pad), mô tả nội dung phần đệm chứ không phải tùy chọn padding của lớp tích chập, và tự nó không cam kết giữ kích thước.
Mở trang câu hỏi này →
AIt drops neurons during training to prevent overfitting.
BIt adjusts the learning rate dynamically.
CIt adds random noise to the input data.
DIt reduces the spatial dimensions of the input.
Lời giải
Đáp án đúng: "It drops neurons during training to prevent overfitting.". Lớp Dropout(rate) trong Keras, ở mỗi bước huấn luyện, đặt ngẫu nhiên một tỉ lệ rate đơn vị đầu ra về 0 và phóng to phần còn lại theo hệ số 1/(1 − rate); mạng không thể dựa vào vài nơ-ron cố định nên học đặc trưng dư thừa, bền hơn, giảm overfitting (quá khớp). Khi suy luận Dropout tự tắt. "It adjusts the learning rate dynamically." sai vì điều chỉnh learning rate (tốc độ học) là việc của bộ tối ưu như Adam hoặc callback như ReduceLROnPlateau, không phải một lớp trong mạng. "It adds random noise to the input data." sai vì thêm nhiễu cộng vào dữ liệu là lớp GaussianNoise; Dropout nhân với mặt nạ 0/1 chứ không cộng nhiễu. "It reduces the spatial dimensions of the input." sai vì giảm kích thước không gian là việc của lớp pooling như MaxPooling2D hoặc tích chập có stride; Dropout giữ nguyên shape.
Mở trang câu hỏi này →
Atf.reshape(v, (3, 4))
Btf.resize(v, (3, 4))
Ctf.transform(v, (3, 4))
Dtf.matrixize(v, (3, 4))
Lời giải
Đáp án đúng: "tf.reshape(v, (3, 4))". tf.reshape đổi hình dạng (shape) của tensor mà giữ nguyên các phần tử và thứ tự của chúng, với điều kiện tổng số phần tử không đổi; vector dài 12 thành ma trận 3×4 hợp lệ vì 3 × 4 = 12, và có thể viết (3, -1) để TensorFlow tự suy ra chiều còn lại là 12 / 3 = 4. "tf.resize(v, (3, 4))" không phải hàm của TensorFlow; hàm gần tên là tf.image.resize dùng để co giãn ảnh bằng nội suy, làm thay đổi giá trị điểm ảnh chứ không chỉ sắp xếp lại phần tử. "tf.transform(v, (3, 4))" không tồn tại trong API TensorFlow. "tf.matrixize(v, (3, 4))" cũng không tồn tại; TensorFlow không có hàm riêng để biến vector thành ma trận vì việc đó chính là đổi shape bằng tf.reshape.
Mở trang câu hỏi này →
AGenerating random numbers for image pixel values
BPreprocessing image data for model training
CCreating animated GIFs from image sequences
DDesigning custom image filters
Lời giải
Đáp án đúng: "Preprocessing image data for model training". ImageDataGenerator trong tf.keras.preprocessing.image đọc ảnh theo lô (ví dụ bằng flow_from_directory, tự gán nhãn theo tên thư mục con), chuẩn hoá điểm ảnh bằng rescale, đưa ảnh về target_size và áp dụng tăng cường dữ liệu như rotation_range, zoom_range, horizontal_flip ngay trong lúc huấn luyện, nhờ đó vừa tiết kiệm bộ nhớ vừa giảm overfitting (quá khớp). "Generating random numbers for image pixel values" sai vì nó không tạo ảnh ngẫu nhiên, nó biến đổi ảnh thật có sẵn. "Creating animated GIFs from image sequences" sai vì việc ghép ảnh thành GIF động thuộc về thư viện xử lý ảnh, không liên quan tới chuẩn bị dữ liệu huấn luyện. "Designing custom image filters" sai vì các bộ lọc trích đặc trưng do lớp Conv2D tự học trong quá trình huấn luyện, ImageDataGenerator không thiết kế bộ lọc nào.
Mở trang câu hỏi này →
AAccuracy Score
BCompression Ratio
CSignal-to-Noise Ratio (SNR)
DLearning Rate
Lời giải
Đáp án đúng: "Signal-to-Noise Ratio (SNR)". Khi nén ảnh có mất mát, phần sai lệch giữa ảnh gốc và ảnh giải nén được coi như nhiễu; tỉ số tín hiệu trên nhiễu, thường dùng ở dạng PSNR (Peak SNR, tính theo decibel từ sai số bình phương trung bình), đo xem chất lượng còn giữ được bao nhiêu sau khi nén, nên đặt nó cạnh mức nén cho thấy sự đánh đổi giữa nén mạnh và chất lượng. "Accuracy Score" sai vì độ chính xác là thước đo của bài toán phân loại, không đo độ giống nhau giữa hai ảnh. "Compression Ratio" chỉ cho biết dung lượng giảm bao nhiêu lần, tức một vế của sự đánh đổi; bản thân nó không nói gì về chất lượng ảnh nên không đo được trade-off mà câu hỏi nói tới. "Learning Rate" sai vì đó là siêu tham số điều khiển bước cập nhật trọng số khi huấn luyện, không phải thước đo chất lượng ảnh.
Mở trang câu hỏi này →
Arescale
Bnormalize_image
Cnormalize
Drescale_image
Lời giải
Đáp án đúng: "rescale". Trong ImageDataGenerator, tham số rescale là hệ số nhân áp lên mọi giá trị điểm ảnh trước các phép biến đổi khác; đặt rescale=1./255 đưa giá trị từ khoảng 0–255 về 0–1, giúp đầu vào có thang đo nhỏ và đồng đều để gradient ổn định và mạng hội tụ nhanh hơn. "normalize_image" không phải tham số hay phương thức của ImageDataGenerator, nên truyền vào sẽ báo lỗi. "normalize" cũng không có trong ImageDataGenerator; các tham số chuẩn hoá thật của nó mang tên khác như samplewise_center hay featurewise_std_normalization, còn việc chia cho 255 vẫn do rescale đảm nhiệm. "rescale_image" là tên bịa gần giống rescale nhưng không tồn tại trong API, nên không thực hiện được việc chuẩn hoá.
Mở trang câu hỏi này →