Câu hỏi: DAT301m Phát triển UDTTNT với TensorFlow – Bộ ôn tập cuối kỳ số 2
50 câu trắc nghiệm kèm lời giải của môn DAT301m - Phát triển UDTTNT với TensorFlow, xếp đúng thứ tự trong đề.
Danh sách câu hỏi
20/50 câuCòn 30
A148x148
B153x153
C150x150
D450x450
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "148x148". Lớp Conv2D với padding mặc định 'valid' (không đệm) và stride 1 chỉ đặt bộ lọc ở những vị trí nằm trọn trong ảnh, nên mỗi chiều đầu ra bằng kích thước vào − kích thước kernel + 1, tức 150 − 3 + 1 = 148; ảnh 150x150 qua kernel 3x3 cho bản đồ đặc trưng 148x148, mất một điểm ảnh ở mỗi viền. "153x153" sai vì tích chập không đệm không bao giờ làm ảnh lớn hơn; con số này là cộng thêm kích thước kernel thay vì trừ. "150x150" sai vì giữ nguyên kích thước chỉ xảy ra khi đặt padding='same', còn câu hỏi mô tả tích chập 3x3 thông thường. "450x450" sai vì đó là nhân 150 với 3, nhầm phép tích chập với phóng to ảnh; kích thước kernel không nhân vào kích thước đầu ra.
Atf.add(MaxPooling2D())
Btf.layers.add(MaxPooling2D())
Ctf.keras.layers.MaxPooling2D()
Dtf.pooling.add(MaxPooling2D())
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "tf.keras.layers.MaxPooling2D()". Trong Keras, max pooling là một lớp nằm trong module tf.keras.layers và được khởi tạo như mọi lớp khác, rồi đặt vào danh sách của tf.keras.Sequential hoặc thêm bằng model.add; mặc định pool_size=(2, 2) lấy giá trị lớn nhất trong mỗi ô 2×2, làm chiều rộng và chiều cao bản đồ đặc trưng giảm một nửa, ví dụ 26×26 thành 13×13. "tf.add(MaxPooling2D())" dùng nhầm tf.add, vốn là phép cộng từng phần tử giữa hai tensor chứ không phải thao tác thêm lớp. "tf.layers.add(MaxPooling2D())" không phải API hợp lệ; việc thêm lớp là phương thức add của đối tượng mô hình chứ không nằm trong module lớp. "tf.pooling.add(MaxPooling2D())" cũng không tồn tại vì TensorFlow không có module tf.pooling với hàm add.
3How can you increase the depth of a ConvNet in TensorFlow to handle more complex image data?4 lựa chọn
ABy adding more neurons to the dense layers
BBy increasing the number of convolutional layers
CBy reducing the number of pooling layers
DBy removing the activation functions from the layers
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "By increasing the number of convolutional layers". Độ sâu của ConvNet là số lớp xếp chồng; thêm các khối Conv2D (thường đi kèm MaxPooling2D) giúp các lớp đầu học cạnh và góc, các lớp sau ghép chúng thành họa tiết, bộ phận rồi cả vật thể, nên mạng nắm được đặc trưng phân cấp phức tạp hơn của ảnh lớn hay ảnh màu. "By adding more neurons to the dense layers" sai vì làm vậy chỉ mở rộng bề ngang phần phân loại phía sau, không tăng số tầng trích xuất đặc trưng và còn làm số tham số phình to. "By reducing the number of pooling layers" sai vì bớt pooling chỉ làm bản đồ đặc trưng giữ kích thước lớn hơn, tốn tính toán hơn, chứ không thêm tầng học nào. "By removing the activation functions from the layers" sai vì không có hàm kích hoạt phi tuyến như ReLU thì nhiều lớp tuyến tính chồng lên nhau tương đương một lớp tuyến tính duy nhất, khiến mạng kém biểu diễn hơn chứ không sâu hơn.
ATransferring images between different devices for processing
BTransferring knowledge gained from pre-trained models to new tasks
CTransferring image features to generate artistic designs
DTransferring data between training and validation sets
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Transferring knowledge gained from pre-trained models to new tasks". Transfer learning (học chuyển giao) dùng lại trọng số của một CNN đã huấn luyện trên tập lớn như ImageNet (ví dụ InceptionV3, MobileNet): các lớp tích chập đã học được đặc trưng chung như cạnh, kết cấu, hình dạng, ta đóng băng chúng (trainable=False) rồi chỉ huấn luyện vài lớp mới ở đầu ra cho bài toán của mình, nhờ đó cần ít dữ liệu và ít thời gian hơn. "Transferring images between different devices for processing" sai vì đó là truyền dữ liệu giữa thiết bị, không phải chuyển tri thức của mô hình. "Transferring image features to generate artistic designs" sai vì đó gần với neural style transfer (chuyển phong cách), một ứng dụng khác chứ không phải định nghĩa học chuyển giao. "Transferring data between training and validation sets" sai vì chuyển mẫu giữa tập huấn luyện và tập kiểm định chỉ là cách chia dữ liệu, còn làm rò rỉ dữ liệu kiểm định.
A%install tensorflow
B!pip install tensorflow
C#install tensorflow
D$conda install tensorflow
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "!pip install tensorflow". Trong ô mã Colab, dấu chấm than ở đầu dòng báo cho notebook chạy phần còn lại như một lệnh shell của máy ảo, nên lệnh pip cài gói TensorFlow vào môi trường Python của runtime; thực tế Colab đã cài sẵn TensorFlow, lệnh này thường dùng để cài hoặc đổi phiên bản cụ thể. "%install tensorflow" dùng tiền tố phần trăm của magic command nhưng không có magic nào tên install; magic thật cho việc này là pip với tiền tố phần trăm. "#install tensorflow" chỉ là một dòng chú thích Python, trình thông dịch bỏ qua nên không cài gì cả. "$conda install tensorflow" sai vì dấu đô la không phải tiền tố lệnh trong notebook, và runtime Colab mặc định dùng pip chứ không có conda.
A
EarlyStoppingB
ModelCheckpointC
CustomCallbackD
TensorBoardLời giải
Mở trang câu hỏi này →Đáp án đúng: "CustomCallback". Đây là câu phủ định: trong tf.keras.callbacks không có lớp dựng sẵn tên CustomCallback; muốn có hành vi riêng, ta tự viết lớp con kế thừa tf.keras.callbacks.Callback và ghi đè các phương thức như on_epoch_end hay on_batch_end, tên lớp do người dùng tự đặt. "EarlyStopping" là callback có sẵn, dừng huấn luyện khi chỉ số theo dõi như val_loss không cải thiện sau số epoch bằng patience, nên không phải đáp án. "ModelCheckpoint" cũng có sẵn, lưu mô hình hoặc trọng số trong quá trình huấn luyện, có thể chỉ giữ bản tốt nhất bằng save_best_only, nên không được chọn. "TensorBoard" là callback dựng sẵn ghi log loss, metric và biểu đồ vào thư mục log_dir để xem trên công cụ TensorBoard, vì vậy cũng không phải đáp án.
AExport it to a PDF file and share the file manually.
BUse the "Share" button to generate a shareable link.
CColab does not support collaboration features.
DCopy and paste the code into an email.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Use the "Share" button to generate a shareable link.". Google Colab lưu notebook trên Google Drive, nên nút Share ở góc trên cho phép mời người khác qua email hoặc tạo đường liên kết chia sẻ, kèm quyền xem, nhận xét hay chỉnh sửa giống tài liệu Google Docs; người nhận mở link là thấy cả mã lẫn kết quả chạy. "Export it to a PDF file and share the file manually." sai vì PDF chỉ là bản chụp tĩnh, người nhận không chạy hay sửa mã được, nên không phải cộng tác. "Colab does not support collaboration features." sai vì Colab có sẵn chia sẻ, phân quyền và nhận xét. "Copy and paste the code into an email." sai vì cách đó làm mất cấu trúc ô, kết quả đầu ra và không cho cùng chỉnh sửa một bản; đó là chép mã chứ không phải chia sẻ notebook.
8What is the function of ReLU?4 lựa chọn
AIt only returns x if x is greater than zero
BFor a value x, it returns 1/x
CIt only returns x if x is less than zero
DIt returns the negative of x
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It only returns x if x is greater than zero". ReLU (Rectified Linear Unit, hàm kích hoạt tuyến tính chỉnh lưu) được định nghĩa là max(0, x): giữ nguyên x khi x dương và trả về 0 với mọi giá trị còn lại, nhờ vậy tạo tính phi tuyến cho mạng, tính rất nhanh và giảm hiện tượng gradient biến mất so với sigmoid; trong Keras dùng bằng activation='relu'. "For a value x, it returns 1/x" mô tả phép nghịch đảo, không liên quan đến ReLU và còn không xác định khi x bằng 0. "It only returns x if x is less than zero" đảo ngược ngưỡng, ReLU giữ phần dương và chặn phần âm về 0 chứ không làm điều ngược lại. "It returns the negative of x" là phép đổi dấu, một hàm tuyến tính nên không tạo được tính phi tuyến như hàm kích hoạt cần có.
9What is TensorFlow Lite used for?4 lựa chọn
ADeveloping large-scale distributed machine learning models.
BOptimizing and deploying machine learning models on mobile and embedded devices.
CVisualizing the computation graph of a TensorFlow model.
DImplementing natural language processing tasks.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Optimizing and deploying machine learning models on mobile and embedded devices.". TensorFlow Lite chuyển mô hình đã huấn luyện sang định dạng .tflite nhỏ gọn bằng TFLiteConverter, có thể lượng tử hoá (quantization) trọng số để giảm kích thước và tăng tốc, rồi chạy bằng trình thông dịch trên Android, iOS, vi điều khiển hay thiết bị biên mà không cần máy chủ. "Developing large-scale distributed machine learning models." sai vì huấn luyện phân tán quy mô lớn dùng các chiến lược của tf.distribute trên cụm GPU hoặc TPU, ngược hẳn với mục tiêu thiết bị nhỏ. "Visualizing the computation graph of a TensorFlow model." sai vì trực quan hoá đồ thị tính toán là việc của TensorBoard. "Implementing natural language processing tasks." sai vì TensorFlow Lite có thể chạy mô hình xử lý ngôn ngữ đã chuyển đổi, nhưng nó là công cụ triển khai cho mọi loại mô hình, không phải thư viện chuyên để xây dựng bài toán ngôn ngữ.
ATensorFlow Core
BTensorFlow Lite
CTensorFlow Keras
DTensorFlow Graph
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "TensorFlow Keras". Keras, truy cập qua tf.keras, là API cấp cao chính thức của TensorFlow từ phiên bản 2: nó cung cấp Sequential, các lớp như Dense, Conv2D, LSTM và chu trình compile, fit, evaluate, predict, giúp dựng và huấn luyện mô hình chỉ với vài dòng mã. "TensorFlow Core" sai vì đó là tầng cấp thấp với tensor, phép toán và tf.GradientTape, cho kiểm soát chi tiết nhưng không phải API cấp cao. "TensorFlow Lite" sai vì đó là bộ công cụ chuyển đổi và chạy mô hình đã huấn luyện trên thiết bị di động hoặc nhúng, không dùng để xây và huấn luyện. "TensorFlow Graph" sai vì đồ thị tính toán (tf.Graph, tf.function) là cách TensorFlow biểu diễn và tối ưu phép tính bên dưới, không phải một API cấp cao để dựng mô hình.
AA widening gap between training and validation loss.
BConsistent decrease in both training and validation accuracy.
CAn abrupt increase in the number of epochs.
DStable and parallel learning curves for training and validation.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A widening gap between training and validation loss.". Learning curves (đường học) vẽ loss theo epoch cho cả tập huấn luyện và tập kiểm định; khi quá khớp, loss huấn luyện tiếp tục giảm vì mô hình học thuộc dữ liệu đã thấy, còn loss kiểm định chững lại rồi tăng, nên khoảng cách giữa hai đường ngày càng rộng, và đó là lúc nên dừng sớm bằng EarlyStopping. "Consistent decrease in both training and validation accuracy." cho thấy mô hình đang kém đi trên cả hai tập, giống lỗi huấn luyện như learning rate quá lớn hơn là quá khớp. "An abrupt increase in the number of epochs." là thiết lập do người huấn luyện chọn, không phải triệu chứng đọc từ đường học. "Stable and parallel learning curves for training and validation." là dấu hiệu mô hình tổng quát hoá tốt, hai tập cùng tiến bộ như nhau.
AIt manipulates the training set to generate more scenarios for the features in the images
BIt slows down the training process
CIt manipulates the validation set to generate more scenarios for features in the images
DIt automatically fits features to images by finding them through image processing techniques
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It manipulates the training set to generate more scenarios for the features in the images". Image augmentation (tăng cường ảnh) áp dụng ngẫu nhiên các phép xoay, dịch, phóng to, lật, cắt xiên lên ảnh huấn luyện ở mỗi epoch, nên mô hình gặp cùng một đặc trưng ở nhiều vị trí, góc và tỉ lệ khác nhau thay vì học thuộc lòng đúng những ảnh gốc, nhờ đó khái quát tốt hơn và giảm overfitting (quá khớp). "It manipulates the validation set to generate more scenarios for features in the images" sai vì tập validation phải giữ nguyên, thường chỉ rescale, để phản ánh trung thực hiệu năng trên dữ liệu thật. "It slows down the training process" sai vì việc mỗi epoch chậm hơn chỉ là tác dụng phụ của biến đổi ảnh, không phải cơ chế chống quá khớp. "It automatically fits features to images by finding them through image processing techniques" sai vì việc tìm đặc trưng do các lớp tích chập tự học, augmentation chỉ tạo ra biến thể của dữ liệu đầu vào.
AWhen the source and target tasks are similar.
BWhen there is a lack of pre-trained models available.
CWhen the datasets for the source and target tasks are small and dissimilar.
DTransfer learning is always effective, regardless of the scenario.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "When the datasets for the source and target tasks are small and dissimilar.". Học chuyển giao hiệu quả vì đặc trưng học được ở bài toán nguồn vẫn hữu ích cho bài toán đích; khi hai miền khác xa nhau (ví dụ ảnh vật thể tự nhiên với ảnh y khoa) thì đặc trưng chuyển sang ít giá trị, và nếu dữ liệu lại ít thì cũng không đủ để tinh chỉnh lại các lớp sâu, nên hiệu quả giảm, thậm chí xảy ra negative transfer (chuyển giao âm). "When the source and target tasks are similar." sai vì đó là trường hợp lý tưởng, học chuyển giao phát huy tốt nhất. "When there is a lack of pre-trained models available." mô tả việc không có gì để chuyển giao chứ không phải học chuyển giao kém hiệu quả; ngoài ra tf.keras.applications và TensorFlow Hub cung cấp rất nhiều mô hình sẵn. "Transfer learning is always effective, regardless of the scenario." sai vì hiệu quả phụ thuộc vào độ tương đồng miền và lượng dữ liệu.
14How does the shear_range parameter in ImageDataGenerator impact image augmentation in TensorFlow?4 lựa chọn
AIt controls the degree of rotation applied to the images.
BIt adjusts the brightness of augmented images.
CIt specifies the range for horizontal and vertical shifting.
DIt controls the intensity of shearing transformations.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It controls the intensity of shearing transformations.". Shear (biến dạng cắt) giữ cố định một trục và trượt các điểm theo trục kia tỉ lệ với khoảng cách, làm ảnh bị nghiêng như hình bình hành; shear_range trong ImageDataGenerator là góc cắt tối đa tính bằng độ, mỗi ảnh được cắt với một góc ngẫu nhiên trong khoảng đó, ví dụ shear_range=0.2, giúp mô hình quen với vật thể nhìn xiên. "It controls the degree of rotation applied to the images." là việc của rotation_range, phép xoay quay cả ảnh quanh tâm chứ không làm nghiêng một trục. "It adjusts the brightness of augmented images." là việc của brightness_range, thay đổi độ sáng chứ không biến dạng hình học. "It specifies the range for horizontal and vertical shifting." là việc của width_shift_range và height_shift_range, dịch chuyển cả ảnh mà không làm méo hình dạng.
15What parameter in TensorFlow's image augmentation methods controls the degree of rotation applied to images?4 lựa chọn
A
rotation_rateB
angle_rangeC
rotation_angleD
rotation_rangeLời giải
Mở trang câu hỏi này →Đáp án đúng: "rotation_range". Trong ImageDataGenerator, rotation_range là một số nguyên tính bằng độ, ví dụ rotation_range=40 thì mỗi ảnh được xoay ngẫu nhiên một góc trong khoảng từ −40 tới 40 độ ở mỗi lần lấy mẫu, giúp mô hình nhận ra vật thể bị nghiêng; nó thường đi cùng width_shift_range, zoom_range và horizontal_flip. "rotation_rate" sai vì không có tham số này, chữ rate gợi một tốc độ chứ không phải biên độ góc. "angle_range" sai vì tuy nghe hợp lý nhưng ImageDataGenerator không có tham số mang tên đó. "rotation_angle" sai vì nó gợi một góc cố định, trong khi augmentation cần một khoảng để chọn góc ngẫu nhiên, và Keras cũng không định nghĩa tham số này; ở dạng lớp tiền xử lý mới, phép xoay ngẫu nhiên dùng RandomRotation với tham số factor.
16In a scenario where overfitting is present, what might you observe in the learning curves?4 lựa chọn
ALearning curves are always smooth without fluctuations.
BA large gap between training and validation curves.
CThe training and validation curves overlap perfectly.
DThe absence of learning curves as overfitting is not visualized.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A large gap between training and validation curves.". Đường học (learning curve) vẽ loss hoặc accuracy của tập huấn luyện và tập kiểm định theo epoch; khi overfitting (quá khớp), accuracy huấn luyện tiếp tục tăng gần 100% trong khi accuracy kiểm định chững lại hoặc giảm, nên hai đường tách xa nhau, đó là dấu hiệu mô hình học thuộc dữ liệu huấn luyện. "Learning curves are always smooth without fluctuations." sai vì độ mượt của đường không liên quan tới quá khớp; đường thường dao động do mini-batch và nhiễu. "The training and validation curves overlap perfectly." sai vì hai đường trùng khít cho thấy mô hình tổng quát tốt, ngược với quá khớp. "The absence of learning curves as overfitting is not visualized." sai vì quá khớp nhìn thấy rõ nhất chính trên đường học, từ đối tượng History trả về khi gọi model.fit.
17What is transfer learning in TensorFlow?4 lựa chọn
AA technique to transfer models between different programming languages.
BA method to copy the weights of one model directly to another.
CA way to apply knowledge gained from solving one problem to a different but related problem.
DA process of transferring data from one TensorFlow version to another.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A way to apply knowledge gained from solving one problem to a different but related problem.". Transfer learning (học chuyển giao) tận dụng một mô hình đã học các đặc trưng tổng quát từ tập dữ liệu lớn, ví dụ InceptionV3 hay MobileNetV2 huấn luyện trên ImageNet, rồi dùng lại các lớp đó cho bài toán mới có liên quan như phân loại chó mèo, thường đóng băng phần nền và chỉ huấn luyện các lớp mới phía trên, nên cần ít dữ liệu và thời gian hơn nhiều. "A technique to transfer models between different programming languages." nói về chuyển đổi định dạng hay môi trường triển khai, như xuất mô hình sang TensorFlow.js, không phải chuyển giao tri thức. "A method to copy the weights of one model directly to another." chỉ là thao tác sao chép trọng số, không có ý tái sử dụng tri thức cho một bài toán khác và không kèm bước học tiếp. "A process of transferring data from one TensorFlow version to another." là việc nâng cấp hay chuyển mã giữa các phiên bản thư viện, không liên quan đến học.
AIt measures the dissimilarity between predicted and true class distributions.
BIt calculates the mean squared error between predictions and true labels.
CIt evaluates the cosine similarity between feature vectors.
DThe categorical_crossentropy loss is not used for multiclass classification.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It measures the dissimilarity between predicted and true class distributions.". categorical_crossentropy tính L = −Σ y_i·log(p_i) giữa nhãn one-hot y và phân phối xác suất p do lớp Dense softmax đưa ra; vì y chỉ có một vị trí bằng 1 nên loss bằng −log của xác suất gán cho lớp đúng, càng gần 0 khi mô hình tự tin đúng và tăng mạnh khi đoán sai, nhờ đó gradient đẩy xác suất lớp đúng lên. "It calculates the mean squared error between predictions and true labels." sai vì đó là mean_squared_error, phù hợp cho hồi quy chứ không phải hàm này. "It evaluates the cosine similarity between feature vectors." sai vì độ tương đồng cosin đo góc giữa hai vector, ứng với loss CosineSimilarity dùng cho embedding, không phải entropy chéo. "The categorical_crossentropy loss is not used for multiclass classification." sai vì đây chính là hàm mất mát chuẩn cho phân loại nhiều lớp với nhãn one-hot.
19What role does the include_top parameter play when loading the Inception model for transfer learning?4 lựa chọn
AIt controls the learning rate during training.
BIt includes the fully-connected layers at the top of the model.
CIt adjusts the target size for input images.
DIt excludes the convolutional layers from the top of the model.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It includes the fully-connected layers at the top of the model.". Khi tải InceptionV3 bằng tf.keras.applications, include_top=True giữ lại phần đầu phân loại gồm các lớp fully-connected (kết nối đầy đủ) cho 1000 lớp ImageNet; đặt include_top=False sẽ bỏ phần này để chỉ lấy khối tích chập làm bộ trích đặc trưng, rồi ta gắn lớp Dense mới cho bài toán của mình, và khi đó được tự chọn kích thước ảnh vào. "It controls the learning rate during training." sai vì learning rate do bộ tối ưu như RMSprop quy định khi compile. "It adjusts the target size for input images." sai vì kích thước ảnh vào đặt qua input_shape hoặc target_size; include_top chỉ ảnh hưởng gián tiếp vì khi giữ phần đầu thì phải dùng kích thước chuẩn. "It excludes the convolutional layers from the top of the model." sai vì tham số này không đụng tới các lớp tích chập; phần trên cùng của mạng là các lớp kết nối đầy đủ chứ không phải tích chập.
ATo increase the number of training epochs
BTo randomly drop neurons during training to reduce reliance on specific features
CTo set a fixed learning rate for the entire training process
DTo eliminate regularization effects
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To randomly drop neurons during training to reduce reliance on specific features". Lớp Dropout trong Keras, ví dụ Dropout(0.2), mỗi bước huấn luyện đặt ngẫu nhiên một tỉ lệ đầu ra nơ-ron về 0, nên mạng không thể dựa mãi vào một vài nơ-ron hay đặc trưng cụ thể mà phải phân tán thông tin, giống như huấn luyện nhiều mạng con khác nhau; khi suy luận, dropout tự tắt và toàn bộ nơ-ron được dùng. "To increase the number of training epochs" sai vì số epoch là tham số của model.fit, dropout không thay đổi nó, dù mạng có dropout đôi khi cần thêm epoch để hội tụ. "To set a fixed learning rate for the entire training process" là việc của optimizer, không liên quan đến việc tắt nơ-ron. "To eliminate regularization effects" nói ngược bản chất, vì dropout chính là một kỹ thuật regularization (chuẩn hoá chống quá khớp).